@zohodesk/components 1.4.8 → 1.4.9
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.
- package/.cli/propValidation_report.html +1 -1
- package/README.md +6 -0
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +16 -8
- package/es/MultiSelect/AdvancedMultiSelect.js +13 -6
- package/es/MultiSelect/EmptyState.js +2 -1
- package/es/MultiSelect/MultiSelect.js +26 -15
- package/es/MultiSelect/MultiSelectWithAvatar.js +9 -2
- package/es/MultiSelect/SelectedOptions.js +4 -2
- package/es/MultiSelect/Suggestions.js +10 -2
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +25 -0
- package/es/MultiSelect/__tests__/Suggestions.spec.js +58 -0
- package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +253 -0
- package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +343 -0
- package/es/MultiSelect/constants.js +6 -0
- package/es/MultiSelect/props/propTypes.js +15 -55
- package/es/utils/dropDownUtils.js +25 -6
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +94 -83
- package/lib/MultiSelect/AdvancedMultiSelect.js +16 -7
- package/lib/MultiSelect/EmptyState.js +3 -1
- package/lib/MultiSelect/MultiSelect.js +28 -15
- package/lib/MultiSelect/MultiSelectWithAvatar.js +11 -3
- package/lib/MultiSelect/SelectedOptions.js +4 -2
- package/lib/MultiSelect/Suggestions.js +10 -2
- package/lib/MultiSelect/__tests__/MultiSelect.spec.js +25 -0
- package/lib/MultiSelect/__tests__/Suggestions.spec.js +58 -0
- package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +253 -0
- package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +343 -0
- package/lib/MultiSelect/constants.js +13 -0
- package/lib/MultiSelect/props/propTypes.js +14 -55
- package/lib/utils/dropDownUtils.js +24 -3
- package/package.json +7 -6
|
@@ -18,3 +18,346 @@ exports[`Suggestions rendering the defult props 1`] = `
|
|
|
18
18
|
</div>
|
|
19
19
|
</DocumentFragment>
|
|
20
20
|
`;
|
|
21
|
+
|
|
22
|
+
exports[`Suggestions rendering with limit props 1`] = `
|
|
23
|
+
<DocumentFragment>
|
|
24
|
+
<div
|
|
25
|
+
class="flex coldir"
|
|
26
|
+
data-id="containerComponent"
|
|
27
|
+
data-selector-id="container"
|
|
28
|
+
data-test-id="containerComponent"
|
|
29
|
+
tabindex="0"
|
|
30
|
+
>
|
|
31
|
+
<div
|
|
32
|
+
class="shrinkOff"
|
|
33
|
+
data-id="undefined"
|
|
34
|
+
data-selector-id="box"
|
|
35
|
+
data-test-id="undefined"
|
|
36
|
+
>
|
|
37
|
+
<li
|
|
38
|
+
aria-label="text2"
|
|
39
|
+
aria-selected="true"
|
|
40
|
+
class="list medium default activedefault activewithBorder flex rowdir vCenter"
|
|
41
|
+
data-a11y-inset-focus="true"
|
|
42
|
+
data-a11y-list-active="false"
|
|
43
|
+
data-id="text2"
|
|
44
|
+
data-selected="true"
|
|
45
|
+
data-selector-id="listItem"
|
|
46
|
+
data-test-id="text2"
|
|
47
|
+
data-title="text2"
|
|
48
|
+
role="option"
|
|
49
|
+
style="color: red;"
|
|
50
|
+
tabindex="0"
|
|
51
|
+
>
|
|
52
|
+
<div
|
|
53
|
+
class="leftBox grow basis shrinkOff"
|
|
54
|
+
data-id="boxComponent"
|
|
55
|
+
data-selector-id="box"
|
|
56
|
+
data-test-id="boxComponent"
|
|
57
|
+
>
|
|
58
|
+
<div
|
|
59
|
+
class="titleBox shrinkOff"
|
|
60
|
+
data-id="boxComponent"
|
|
61
|
+
data-selector-id="box"
|
|
62
|
+
data-test-id="boxComponent"
|
|
63
|
+
>
|
|
64
|
+
<div
|
|
65
|
+
class="value basisAuto shrinkOn"
|
|
66
|
+
data-id="boxComponent"
|
|
67
|
+
data-selector-id="box"
|
|
68
|
+
data-test-id="boxComponent"
|
|
69
|
+
>
|
|
70
|
+
text2
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</li>
|
|
75
|
+
<li
|
|
76
|
+
aria-label="text3"
|
|
77
|
+
aria-selected="true"
|
|
78
|
+
class="list medium default activedefault activewithBorder flex rowdir vCenter"
|
|
79
|
+
data-a11y-inset-focus="true"
|
|
80
|
+
data-a11y-list-active="false"
|
|
81
|
+
data-id="text3"
|
|
82
|
+
data-selected="true"
|
|
83
|
+
data-selector-id="listItem"
|
|
84
|
+
data-test-id="text3"
|
|
85
|
+
data-title="text3"
|
|
86
|
+
role="option"
|
|
87
|
+
style="color: blue;"
|
|
88
|
+
tabindex="0"
|
|
89
|
+
>
|
|
90
|
+
<div
|
|
91
|
+
class="leftBox grow basis shrinkOff"
|
|
92
|
+
data-id="boxComponent"
|
|
93
|
+
data-selector-id="box"
|
|
94
|
+
data-test-id="boxComponent"
|
|
95
|
+
>
|
|
96
|
+
<div
|
|
97
|
+
class="titleBox shrinkOff"
|
|
98
|
+
data-id="boxComponent"
|
|
99
|
+
data-selector-id="box"
|
|
100
|
+
data-test-id="boxComponent"
|
|
101
|
+
>
|
|
102
|
+
<div
|
|
103
|
+
class="value basisAuto shrinkOn"
|
|
104
|
+
data-id="boxComponent"
|
|
105
|
+
data-selector-id="box"
|
|
106
|
+
data-test-id="boxComponent"
|
|
107
|
+
>
|
|
108
|
+
text3
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</li>
|
|
113
|
+
<li
|
|
114
|
+
aria-label="text4"
|
|
115
|
+
aria-selected="true"
|
|
116
|
+
class="list medium default activedefault activewithBorder flex rowdir vCenter"
|
|
117
|
+
data-a11y-inset-focus="true"
|
|
118
|
+
data-a11y-list-active="false"
|
|
119
|
+
data-id="text4"
|
|
120
|
+
data-selected="true"
|
|
121
|
+
data-selector-id="listItem"
|
|
122
|
+
data-test-id="text4"
|
|
123
|
+
data-title="text4"
|
|
124
|
+
role="option"
|
|
125
|
+
tabindex="0"
|
|
126
|
+
>
|
|
127
|
+
<div
|
|
128
|
+
class="leftBox grow basis shrinkOff"
|
|
129
|
+
data-id="boxComponent"
|
|
130
|
+
data-selector-id="box"
|
|
131
|
+
data-test-id="boxComponent"
|
|
132
|
+
>
|
|
133
|
+
<div
|
|
134
|
+
class="titleBox shrinkOff"
|
|
135
|
+
data-id="boxComponent"
|
|
136
|
+
data-selector-id="box"
|
|
137
|
+
data-test-id="boxComponent"
|
|
138
|
+
>
|
|
139
|
+
<div
|
|
140
|
+
class="value basisAuto shrinkOn"
|
|
141
|
+
data-id="boxComponent"
|
|
142
|
+
data-selector-id="box"
|
|
143
|
+
data-test-id="boxComponent"
|
|
144
|
+
>
|
|
145
|
+
text4
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</li>
|
|
150
|
+
<li
|
|
151
|
+
aria-label="text5"
|
|
152
|
+
aria-selected="false"
|
|
153
|
+
class="list medium default disable withBorder flex rowdir vCenter"
|
|
154
|
+
data-a11y-inset-focus="true"
|
|
155
|
+
data-a11y-list-active="false"
|
|
156
|
+
data-id="text5"
|
|
157
|
+
data-selector-id="listItem"
|
|
158
|
+
data-test-id="text5"
|
|
159
|
+
data-title="Limit Reached"
|
|
160
|
+
role="option"
|
|
161
|
+
>
|
|
162
|
+
<div
|
|
163
|
+
class="leftBox grow basis shrinkOff"
|
|
164
|
+
data-id="boxComponent"
|
|
165
|
+
data-selector-id="box"
|
|
166
|
+
data-test-id="boxComponent"
|
|
167
|
+
>
|
|
168
|
+
<div
|
|
169
|
+
class="titleBox shrinkOff"
|
|
170
|
+
data-id="boxComponent"
|
|
171
|
+
data-selector-id="box"
|
|
172
|
+
data-test-id="boxComponent"
|
|
173
|
+
>
|
|
174
|
+
<div
|
|
175
|
+
class="value basisAuto shrinkOn"
|
|
176
|
+
data-id="boxComponent"
|
|
177
|
+
data-selector-id="box"
|
|
178
|
+
data-test-id="boxComponent"
|
|
179
|
+
>
|
|
180
|
+
text5
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</li>
|
|
185
|
+
<li
|
|
186
|
+
aria-label="text6"
|
|
187
|
+
aria-selected="false"
|
|
188
|
+
class="list medium default disable withBorder flex rowdir vCenter"
|
|
189
|
+
data-a11y-inset-focus="true"
|
|
190
|
+
data-a11y-list-active="false"
|
|
191
|
+
data-id="text6"
|
|
192
|
+
data-selector-id="listItem"
|
|
193
|
+
data-test-id="text6"
|
|
194
|
+
data-title="Limit Reached"
|
|
195
|
+
role="option"
|
|
196
|
+
>
|
|
197
|
+
<div
|
|
198
|
+
class="leftBox grow basis shrinkOff"
|
|
199
|
+
data-id="boxComponent"
|
|
200
|
+
data-selector-id="box"
|
|
201
|
+
data-test-id="boxComponent"
|
|
202
|
+
>
|
|
203
|
+
<div
|
|
204
|
+
class="titleBox shrinkOff"
|
|
205
|
+
data-id="boxComponent"
|
|
206
|
+
data-selector-id="box"
|
|
207
|
+
data-test-id="boxComponent"
|
|
208
|
+
>
|
|
209
|
+
<div
|
|
210
|
+
class="value basisAuto shrinkOn"
|
|
211
|
+
data-id="boxComponent"
|
|
212
|
+
data-selector-id="box"
|
|
213
|
+
data-test-id="boxComponent"
|
|
214
|
+
>
|
|
215
|
+
text6
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
</div>
|
|
219
|
+
</li>
|
|
220
|
+
<li
|
|
221
|
+
aria-label="text7"
|
|
222
|
+
aria-selected="false"
|
|
223
|
+
class="list medium default disable withBorder flex rowdir vCenter"
|
|
224
|
+
data-a11y-inset-focus="true"
|
|
225
|
+
data-a11y-list-active="false"
|
|
226
|
+
data-id="text7"
|
|
227
|
+
data-selector-id="listItem"
|
|
228
|
+
data-test-id="text7"
|
|
229
|
+
data-title="Limit Reached"
|
|
230
|
+
role="option"
|
|
231
|
+
>
|
|
232
|
+
<div
|
|
233
|
+
class="leftBox grow basis shrinkOff"
|
|
234
|
+
data-id="boxComponent"
|
|
235
|
+
data-selector-id="box"
|
|
236
|
+
data-test-id="boxComponent"
|
|
237
|
+
>
|
|
238
|
+
<div
|
|
239
|
+
class="titleBox shrinkOff"
|
|
240
|
+
data-id="boxComponent"
|
|
241
|
+
data-selector-id="box"
|
|
242
|
+
data-test-id="boxComponent"
|
|
243
|
+
>
|
|
244
|
+
<div
|
|
245
|
+
class="value basisAuto shrinkOn"
|
|
246
|
+
data-id="boxComponent"
|
|
247
|
+
data-selector-id="box"
|
|
248
|
+
data-test-id="boxComponent"
|
|
249
|
+
>
|
|
250
|
+
text7
|
|
251
|
+
</div>
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
</li>
|
|
255
|
+
<li
|
|
256
|
+
aria-label="text8"
|
|
257
|
+
aria-selected="false"
|
|
258
|
+
class="list medium default disable withBorder flex rowdir vCenter"
|
|
259
|
+
data-a11y-inset-focus="true"
|
|
260
|
+
data-a11y-list-active="false"
|
|
261
|
+
data-id="text8"
|
|
262
|
+
data-selector-id="listItem"
|
|
263
|
+
data-test-id="text8"
|
|
264
|
+
data-title="Limit Reached"
|
|
265
|
+
role="option"
|
|
266
|
+
>
|
|
267
|
+
<div
|
|
268
|
+
class="leftBox grow basis shrinkOff"
|
|
269
|
+
data-id="boxComponent"
|
|
270
|
+
data-selector-id="box"
|
|
271
|
+
data-test-id="boxComponent"
|
|
272
|
+
>
|
|
273
|
+
<div
|
|
274
|
+
class="titleBox shrinkOff"
|
|
275
|
+
data-id="boxComponent"
|
|
276
|
+
data-selector-id="box"
|
|
277
|
+
data-test-id="boxComponent"
|
|
278
|
+
>
|
|
279
|
+
<div
|
|
280
|
+
class="value basisAuto shrinkOn"
|
|
281
|
+
data-id="boxComponent"
|
|
282
|
+
data-selector-id="box"
|
|
283
|
+
data-test-id="boxComponent"
|
|
284
|
+
>
|
|
285
|
+
text8
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
</li>
|
|
290
|
+
<li
|
|
291
|
+
aria-label="text9"
|
|
292
|
+
aria-selected="false"
|
|
293
|
+
class="list medium default disable withBorder flex rowdir vCenter"
|
|
294
|
+
data-a11y-inset-focus="true"
|
|
295
|
+
data-a11y-list-active="false"
|
|
296
|
+
data-id="text9"
|
|
297
|
+
data-selector-id="listItem"
|
|
298
|
+
data-test-id="text9"
|
|
299
|
+
data-title="Limit Reached"
|
|
300
|
+
role="option"
|
|
301
|
+
>
|
|
302
|
+
<div
|
|
303
|
+
class="leftBox grow basis shrinkOff"
|
|
304
|
+
data-id="boxComponent"
|
|
305
|
+
data-selector-id="box"
|
|
306
|
+
data-test-id="boxComponent"
|
|
307
|
+
>
|
|
308
|
+
<div
|
|
309
|
+
class="titleBox shrinkOff"
|
|
310
|
+
data-id="boxComponent"
|
|
311
|
+
data-selector-id="box"
|
|
312
|
+
data-test-id="boxComponent"
|
|
313
|
+
>
|
|
314
|
+
<div
|
|
315
|
+
class="value basisAuto shrinkOn"
|
|
316
|
+
data-id="boxComponent"
|
|
317
|
+
data-selector-id="box"
|
|
318
|
+
data-test-id="boxComponent"
|
|
319
|
+
>
|
|
320
|
+
text9
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
</li>
|
|
325
|
+
<li
|
|
326
|
+
aria-label="text10"
|
|
327
|
+
aria-selected="false"
|
|
328
|
+
class="list medium default disable withBorder flex rowdir vCenter"
|
|
329
|
+
data-a11y-inset-focus="true"
|
|
330
|
+
data-a11y-list-active="false"
|
|
331
|
+
data-id="text10"
|
|
332
|
+
data-selector-id="listItem"
|
|
333
|
+
data-test-id="text10"
|
|
334
|
+
data-title="Limit Reached"
|
|
335
|
+
role="option"
|
|
336
|
+
>
|
|
337
|
+
<div
|
|
338
|
+
class="leftBox grow basis shrinkOff"
|
|
339
|
+
data-id="boxComponent"
|
|
340
|
+
data-selector-id="box"
|
|
341
|
+
data-test-id="boxComponent"
|
|
342
|
+
>
|
|
343
|
+
<div
|
|
344
|
+
class="titleBox shrinkOff"
|
|
345
|
+
data-id="boxComponent"
|
|
346
|
+
data-selector-id="box"
|
|
347
|
+
data-test-id="boxComponent"
|
|
348
|
+
>
|
|
349
|
+
<div
|
|
350
|
+
class="value basisAuto shrinkOn"
|
|
351
|
+
data-id="boxComponent"
|
|
352
|
+
data-selector-id="box"
|
|
353
|
+
data-test-id="boxComponent"
|
|
354
|
+
>
|
|
355
|
+
text10
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</li>
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
</DocumentFragment>
|
|
363
|
+
`;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MULTISELECT_I18N_KEYS = void 0;
|
|
7
|
+
var MULTISELECT_I18N_KEYS = {
|
|
8
|
+
limitReachedMessage: 'Limit reached',
|
|
9
|
+
searchText: 'Searching...',
|
|
10
|
+
clearText: 'Clear all',
|
|
11
|
+
loadingText: 'Loading'
|
|
12
|
+
};
|
|
13
|
+
exports.MULTISELECT_I18N_KEYS = MULTISELECT_I18N_KEYS;
|
|
@@ -56,11 +56,13 @@ var MultiSelect_propTypes = {
|
|
|
56
56
|
getRef: _propTypes["default"].func,
|
|
57
57
|
getTargetRef: _propTypes["default"].func,
|
|
58
58
|
i18nKeys: _propTypes["default"].shape({
|
|
59
|
+
searchText: _propTypes["default"].string,
|
|
59
60
|
clearText: _propTypes["default"].string,
|
|
60
61
|
loadingText: _propTypes["default"].string,
|
|
61
62
|
emptyText: _propTypes["default"].string,
|
|
62
63
|
noMoreText: _propTypes["default"].string,
|
|
63
|
-
searchEmptyText: _propTypes["default"].string
|
|
64
|
+
searchEmptyText: _propTypes["default"].string,
|
|
65
|
+
limitReachedMessage: _propTypes["default"].string
|
|
64
66
|
}),
|
|
65
67
|
a11y: _propTypes["default"].shape({
|
|
66
68
|
clearLabel: _propTypes["default"].string
|
|
@@ -135,7 +137,8 @@ var MultiSelect_propTypes = {
|
|
|
135
137
|
isFocus: _propTypes["default"].bool,
|
|
136
138
|
allowValueFallback: _propTypes["default"].bool,
|
|
137
139
|
renderCustomClearComponent: _propTypes["default"].func,
|
|
138
|
-
renderCustomToggleIndicator: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node])
|
|
140
|
+
renderCustomToggleIndicator: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
|
|
141
|
+
limit: _propTypes["default"].number
|
|
139
142
|
};
|
|
140
143
|
exports.MultiSelect_propTypes = MultiSelect_propTypes;
|
|
141
144
|
var MultiSelectHeader_propTypes = {
|
|
@@ -176,7 +179,8 @@ var SelectedOptions_propTypes = {
|
|
|
176
179
|
})),
|
|
177
180
|
size: _propTypes["default"].oneOf(['medium', 'xmedium']),
|
|
178
181
|
palette: _propTypes["default"].string,
|
|
179
|
-
dataId: _propTypes["default"].string
|
|
182
|
+
dataId: _propTypes["default"].string,
|
|
183
|
+
limit: _propTypes["default"].number
|
|
180
184
|
};
|
|
181
185
|
exports.SelectedOptions_propTypes = SelectedOptions_propTypes;
|
|
182
186
|
var Suggestions_propTypes = {
|
|
@@ -207,7 +211,9 @@ var Suggestions_propTypes = {
|
|
|
207
211
|
logo: _propTypes["default"].string,
|
|
208
212
|
optionType: _propTypes["default"].string,
|
|
209
213
|
listItemProps: _propTypes["default"].object
|
|
210
|
-
}))
|
|
214
|
+
})),
|
|
215
|
+
limit: _propTypes["default"].number,
|
|
216
|
+
limitReachedMessage: _propTypes["default"].string
|
|
211
217
|
};
|
|
212
218
|
exports.Suggestions_propTypes = Suggestions_propTypes;
|
|
213
219
|
var AdvancedGroupMultiSelect_propTypes = (_AdvancedGroupMultiSe = {
|
|
@@ -226,7 +232,8 @@ var AdvancedGroupMultiSelect_propTypes = (_AdvancedGroupMultiSe = {
|
|
|
226
232
|
loadingText: _propTypes["default"].string,
|
|
227
233
|
emptyText: _propTypes["default"].string,
|
|
228
234
|
noMoreText: _propTypes["default"].string,
|
|
229
|
-
searchEmptyText: _propTypes["default"].string
|
|
235
|
+
searchEmptyText: _propTypes["default"].string,
|
|
236
|
+
limitReachedMessage: _propTypes["default"].string
|
|
230
237
|
}),
|
|
231
238
|
a11y: _propTypes["default"].shape({
|
|
232
239
|
clearLabel: _propTypes["default"].string
|
|
@@ -278,7 +285,7 @@ var AdvancedGroupMultiSelect_propTypes = (_AdvancedGroupMultiSe = {
|
|
|
278
285
|
needToCloseOnSelect: _propTypes["default"].func,
|
|
279
286
|
searchStr: _propTypes["default"].string,
|
|
280
287
|
children: _propTypes["default"].node
|
|
281
|
-
}, _defineProperty(_AdvancedGroupMultiSe, "dataSelectorId", _propTypes["default"].string), _defineProperty(_AdvancedGroupMultiSe, "isFocus", _propTypes["default"].bool), _defineProperty(_AdvancedGroupMultiSe, "allowValueFallback", _propTypes["default"].bool), _AdvancedGroupMultiSe);
|
|
288
|
+
}, _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
289
|
exports.AdvancedGroupMultiSelect_propTypes = AdvancedGroupMultiSelect_propTypes;
|
|
283
290
|
|
|
284
291
|
var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_propTypes), {}, {
|
|
@@ -293,70 +300,22 @@ var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_
|
|
|
293
300
|
selectedOptions: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])).isRequired,
|
|
294
301
|
selectedOptionsLimit: _propTypes["default"].number,
|
|
295
302
|
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
303
|
imageField: _propTypes["default"].string,
|
|
308
304
|
iconName: _propTypes["default"].string,
|
|
309
305
|
prefixText: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
310
306
|
//For grouping multiSelect
|
|
311
307
|
optionType: _propTypes["default"].oneOf(['default', 'avatar', 'icon']),
|
|
312
|
-
needEffect: _propTypes["default"].bool,
|
|
313
308
|
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
309
|
dataIdClearIcon: _propTypes["default"].string,
|
|
323
310
|
dataIdLoading: _propTypes["default"].string,
|
|
324
311
|
dataIdMultiSelectComp: _propTypes["default"].string,
|
|
325
312
|
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
313
|
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
314
|
customProps: _propTypes["default"].shape({
|
|
353
315
|
SuggestionsProps: _propTypes["default"].object,
|
|
354
316
|
DropBoxProps: _propTypes["default"].object
|
|
355
317
|
}),
|
|
356
|
-
|
|
357
|
-
dataSelectorId: _propTypes["default"].string,
|
|
358
|
-
customClass: _propTypes["default"].object,
|
|
359
|
-
isFocus: _propTypes["default"].bool
|
|
318
|
+
customClass: _propTypes["default"].object
|
|
360
319
|
});
|
|
361
320
|
|
|
362
321
|
exports.AdvancedMultiSelect_propTypes = AdvancedMultiSelect_propTypes;
|
|
@@ -52,6 +52,10 @@ var getOptionsOrder = function getOptionsOrder(props) {
|
|
|
52
52
|
return props.optionsOrder || dummyArray;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
+
var getLimit = function getLimit(props) {
|
|
56
|
+
return props.limit || 0;
|
|
57
|
+
};
|
|
58
|
+
|
|
55
59
|
var getSelectedOptionsSel = function getSelectedOptionsSel(props) {
|
|
56
60
|
return props.selectedOptions || dummyArray;
|
|
57
61
|
};
|
|
@@ -339,7 +343,7 @@ var makeFormatOptions = function makeFormatOptions() {
|
|
|
339
343
|
exports.makeFormatOptions = makeFormatOptions;
|
|
340
344
|
|
|
341
345
|
var makeGetMultiSelectSelectedOptions = function makeGetMultiSelectSelectedOptions() {
|
|
342
|
-
return (0, _reselect.createSelector)([getSelectedOptionsSel, getNormalizedFormatOptions, getSelectedOptionsLength, getAllowValueFallback], function (selectedOptions, normalizedFormatOptions, selectedOptionsLength, allowValueFallback) {
|
|
346
|
+
return (0, _reselect.createSelector)([getSelectedOptionsSel, getNormalizedFormatOptions, getSelectedOptionsLength, getAllowValueFallback, getLimit], function (selectedOptions, normalizedFormatOptions, selectedOptionsLength, allowValueFallback, limit) {
|
|
343
347
|
var output = [];
|
|
344
348
|
var revampSelectedOptions = [];
|
|
345
349
|
var normalizedSelectedOptions = {};
|
|
@@ -367,6 +371,12 @@ var makeGetMultiSelectSelectedOptions = function makeGetMultiSelectSelectedOptio
|
|
|
367
371
|
}
|
|
368
372
|
}
|
|
369
373
|
|
|
374
|
+
if (limit && limit > 0) {
|
|
375
|
+
output = output.slice(0, limit);
|
|
376
|
+
revampSelectedOptions = revampSelectedOptions.slice(0, limit);
|
|
377
|
+
normalizedSelectedOptions = Object.fromEntries(Object.entries(normalizedSelectedOptions).slice(0, limit));
|
|
378
|
+
}
|
|
379
|
+
|
|
370
380
|
return {
|
|
371
381
|
formatSelectedOptions: output,
|
|
372
382
|
normalizedSelectedOptions: normalizedSelectedOptions,
|
|
@@ -593,7 +603,8 @@ var filterSelectedOptions = function filterSelectedOptions() {
|
|
|
593
603
|
_ref4$propSelectedOpt = _ref4.propSelectedOptions,
|
|
594
604
|
propSelectedOptions = _ref4$propSelectedOpt === void 0 ? dummyArray : _ref4$propSelectedOpt,
|
|
595
605
|
_ref4$disabledOptions = _ref4.disabledOptions,
|
|
596
|
-
disabledOptions = _ref4$disabledOptions === void 0 ? dummyArray : _ref4$disabledOptions
|
|
606
|
+
disabledOptions = _ref4$disabledOptions === void 0 ? dummyArray : _ref4$disabledOptions,
|
|
607
|
+
limit = _ref4.limit;
|
|
597
608
|
|
|
598
609
|
// eslint-disable-next-line no-param-reassign
|
|
599
610
|
selectedOptions = selectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
|
|
@@ -617,8 +628,18 @@ var filterSelectedOptions = function filterSelectedOptions() {
|
|
|
617
628
|
|
|
618
629
|
return true;
|
|
619
630
|
});
|
|
631
|
+
var totalSelectedOptions = [].concat(_toConsumableArray(oldValidSelectedOptions), _toConsumableArray(newlyAddedOptions));
|
|
632
|
+
|
|
633
|
+
if (limit && limit > 0) {
|
|
634
|
+
if (totalSelectedOptions.length > limit) {
|
|
635
|
+
return {
|
|
636
|
+
newSelectedOptions: totalSelectedOptions.slice(0, limit)
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
|
|
620
641
|
return {
|
|
621
|
-
newSelectedOptions:
|
|
642
|
+
newSelectedOptions: totalSelectedOptions
|
|
622
643
|
};
|
|
623
644
|
};
|
|
624
645
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zohodesk/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.9",
|
|
4
4
|
"main": "es/index.js",
|
|
5
5
|
"module": "es/index.js",
|
|
6
6
|
"private": false,
|
|
@@ -77,18 +77,19 @@
|
|
|
77
77
|
"@zohodesk-private/css-variable-migrator": "1.0.9",
|
|
78
78
|
"@zohodesk-private/node-plugins": "1.1.13",
|
|
79
79
|
"@zohodesk-private/react-prop-validator": "1.2.3",
|
|
80
|
-
"@zohodesk/a11y": "2.3.
|
|
80
|
+
"@zohodesk/a11y": "2.3.7",
|
|
81
81
|
"@zohodesk/docstool": "1.0.0-alpha-2",
|
|
82
82
|
"@zohodesk/dotkit": "1.0.3",
|
|
83
83
|
"@zohodesk/hooks": "2.0.5",
|
|
84
84
|
"@zohodesk/icons": "1.1.0",
|
|
85
85
|
"@zohodesk/layout": "3.1.0",
|
|
86
|
-
"@zohodesk/svg": "1.2.
|
|
86
|
+
"@zohodesk/svg": "1.2.2",
|
|
87
87
|
"@zohodesk/utils": "1.3.14",
|
|
88
88
|
"@zohodesk/variables": "1.1.0",
|
|
89
89
|
"@zohodesk/virtualizer": "1.0.3",
|
|
90
90
|
"react-sortable-hoc": "^0.8.3",
|
|
91
|
-
"velocity-react": "1.4.3"
|
|
91
|
+
"velocity-react": "1.4.3",
|
|
92
|
+
"@zohodesk/react-cli": "1.1.27"
|
|
92
93
|
},
|
|
93
94
|
"dependencies": {
|
|
94
95
|
"hoist-non-react-statics": "3.0.1",
|
|
@@ -99,13 +100,13 @@
|
|
|
99
100
|
"peerDependencies": {
|
|
100
101
|
"@zohodesk/icons": "1.1.0",
|
|
101
102
|
"@zohodesk/variables": "1.1.0",
|
|
102
|
-
"@zohodesk/svg": "1.2.
|
|
103
|
+
"@zohodesk/svg": "1.2.2",
|
|
103
104
|
"@zohodesk/virtualizer": "1.0.3",
|
|
104
105
|
"velocity-react": "1.4.3",
|
|
105
106
|
"react-sortable-hoc": "^0.8.3",
|
|
106
107
|
"@zohodesk/hooks": "2.0.5",
|
|
107
108
|
"@zohodesk/utils": "1.3.14",
|
|
108
|
-
"@zohodesk/a11y": "2.3.
|
|
109
|
+
"@zohodesk/a11y": "2.3.7",
|
|
109
110
|
"@zohodesk/layout": "3.1.0",
|
|
110
111
|
"@zohodesk/dotkit": "1.0.3"
|
|
111
112
|
}
|