@danielgindi/selectbox 2.0.26 → 2.0.27

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/vue/SelectBox.vue CHANGED
@@ -35,241 +35,250 @@ const isVue3 = version > '3.';
35
35
  * list-item, single-item, multi-item, rest-multi-item, no-results-item
36
36
  */
37
37
 
38
- export default {
39
- inheritAttrs: false,
40
-
41
- props: {
42
- disabled: {
43
- type: Boolean,
44
- default: false,
45
- },
46
- clearable: {
47
- type: Boolean,
48
- default: true,
49
- },
50
- hasOpenIndicator: {
51
- type: Boolean,
52
- default: true,
53
- },
54
- placeholder: {
55
- type: String,
56
- default: '',
57
- },
58
- sortSelectedItems: {
59
- type: Boolean,
60
- default: true,
61
- },
62
- sortListItems: {
63
- type: Boolean,
64
- default: false,
65
- },
66
- sortListCheckedFirst: {
67
- type: Boolean,
68
- default: true,
69
- },
70
- stickyValues: {
71
- type: Array,
72
- required: false,
73
- },
74
- sortItemComparator: {
75
- type: Function,
76
- required: false,
77
- },
78
- splitListCheckedGroups: {
79
- type: Boolean,
80
- default: true,
81
- },
82
- showSelection: {
83
- type: Boolean,
84
- default: true,
85
- },
86
- showPlaceholderInTooltip: {
87
- type: Boolean,
88
- default: true,
89
- },
90
- multiPlaceholderFormatter: {
91
- type: Function,
92
- required: false,
93
- default: undefined,
94
- },
95
- blurOnSingleSelection: {
96
- type: [Boolean, String],
97
- default: 'touch',
98
- validator: value => {
99
- return [true, false, 'touch', null].includes(value);
100
- },
101
- },
102
- multi: {
103
- type: Boolean,
104
- default: false,
105
- },
106
- searchable: {
107
- type: Boolean,
108
- default: true,
109
- },
110
- noResultsText: {
111
- type: String,
112
- default: 'No matching results',
113
- },
114
- filterThrottleWindow: {
115
- type: Number,
116
- default: 300,
117
- },
118
- filterOnEmptyTerm: {
119
- type: Boolean,
120
- default: false,
121
- },
122
- filterFn: {
123
- type: Function,
124
- default: undefined,
125
- },
126
- // eslint-disable-next-line vue/require-prop-types
127
- filterDependencies: {
128
- default: undefined,
129
- },
130
- labelProp: {
131
- type: String,
132
- default: 'label',
133
- },
134
- valueProp: {
135
- type: String,
136
- default: 'value',
137
- },
138
- multiItemLabelProp: {
139
- type: String,
140
- default: 'short_label',
141
- },
142
- items: {
143
- type: Array,
144
- default: () => [],
145
- },
146
- [isVue3 ? 'modelValue' : 'value']: {
147
- type: [String, Number, Boolean, Object, Array, Symbol],
148
- default: undefined,
149
- },
150
- maxMultiItems: {
151
- type: Number,
152
- required: false,
153
- },
154
- multiItemsRestLabelProvider: {
155
- type: Function,
156
- required: false,
157
- },
158
- renderSingleItem: {
159
- type: Function,
160
- default: undefined,
161
- },
162
- unrenderSingleItem: {
163
- type: Function,
164
- default: undefined,
165
- },
166
- renderMultiItem: {
167
- type: Function,
168
- default: undefined,
169
- },
170
- unrenderMultiItem: {
171
- type: Function,
172
- default: undefined,
173
- },
174
- renderRestMultiItem: {
175
- type: Function,
176
- default: undefined,
177
- },
178
- unrenderRestMultiItem: {
179
- type: Function,
180
- default: undefined,
181
- },
182
- renderNoResultsItem: {
183
- type: Function,
184
- default: undefined,
185
- },
186
- unrenderNoResultsItem: {
187
- type: Function,
188
- default: undefined,
189
- },
190
- renderListItem: {
191
- type: Function,
192
- default: undefined,
193
- },
194
- unrenderListItem: {
195
- type: Function,
196
- default: undefined,
197
- },
198
- virtualMinItems: {
199
- type: Number,
200
- default: 10,
201
- },
202
- baseClass: {
203
- type: String,
204
- default: undefined,
205
- },
206
- droplistBaseClass: {
207
- type: String,
208
- default: undefined,
209
- },
210
- additionalClasses: {
211
- type: [Object, Array, String],
212
- default: undefined,
213
- },
214
- additionalDroplistClasses: {
215
- type: [Object, Array, String],
216
- default: undefined,
217
- },
218
- direction: {
219
- type: String,
220
- default: undefined,
221
- },
222
- fixedDroplistWidth: {
223
- type: Boolean,
224
- default: false,
225
- },
226
- acceptNullAsValue: {
227
- type: Boolean,
228
- default: false,
229
- },
230
- emitNullForEmptyValue: {
231
- type: Boolean,
232
- default: false,
233
- },
234
- isLoadingMode: {
235
- type: Boolean,
236
- default: false,
38
+ export const PropTypes = {
39
+ disabled: {
40
+ type: Boolean,
41
+ default: false,
42
+ },
43
+ clearable: {
44
+ type: Boolean,
45
+ default: true,
46
+ },
47
+ hasOpenIndicator: {
48
+ type: Boolean,
49
+ default: true,
50
+ },
51
+ placeholder: {
52
+ type: String,
53
+ default: '',
54
+ },
55
+ sortSelectedItems: {
56
+ type: Boolean,
57
+ default: true,
58
+ },
59
+ sortListItems: {
60
+ type: Boolean,
61
+ default: false,
62
+ },
63
+ sortListCheckedFirst: {
64
+ type: Boolean,
65
+ default: true,
66
+ },
67
+ stickyValues: {
68
+ type: Array,
69
+ required: false,
70
+ },
71
+ sortItemComparator: {
72
+ type: Function,
73
+ required: false,
74
+ },
75
+ splitListCheckedGroups: {
76
+ type: Boolean,
77
+ default: true,
78
+ },
79
+ showSelection: {
80
+ type: Boolean,
81
+ default: true,
82
+ },
83
+ showPlaceholderInTooltip: {
84
+ type: Boolean,
85
+ default: true,
86
+ },
87
+ multiPlaceholderFormatter: {
88
+ type: Function,
89
+ required: false,
90
+ default: undefined,
91
+ },
92
+ blurOnSingleSelection: {
93
+ type: [Boolean, String],
94
+ default: 'touch',
95
+ validator: value => {
96
+ return [true, false, 'touch', null].includes(value);
237
97
  },
238
- closeListWhenLoading: {
239
- type: Boolean,
240
- default: true,
98
+ },
99
+ multi: {
100
+ type: Boolean,
101
+ default: false,
102
+ },
103
+ searchable: {
104
+ type: Boolean,
105
+ default: true,
106
+ },
107
+ noResultsText: {
108
+ type: String,
109
+ default: 'No matching results',
110
+ },
111
+ filterThrottleWindow: {
112
+ type: Number,
113
+ default: 300,
114
+ },
115
+ filterOnEmptyTerm: {
116
+ type: Boolean,
117
+ default: false,
118
+ },
119
+ filterFn: {
120
+ type: Function,
121
+ default: undefined,
122
+ },
123
+ filterDependencies: {
124
+ type: [Array, String, Number, Boolean, Object],
125
+ default: undefined,
126
+ },
127
+ labelProp: {
128
+ type: String,
129
+ default: 'label',
130
+ },
131
+ valueProp: {
132
+ type: String,
133
+ default: 'value',
134
+ },
135
+ multiItemLabelProp: {
136
+ type: String,
137
+ default: 'short_label',
138
+ },
139
+ multiItemRemovePosition: {
140
+ type: String,
141
+ default: 'after',
142
+ validator: value => {
143
+ return ['before', 'after', 'none'].includes(value);
241
144
  },
242
- clearInputWhen: {
243
- type: Array,
244
- required: false,
245
- default: () => ['single_close', 'multi_select_single'],
246
- validator: value => {
247
- if (value && !Array.isArray(value))
145
+ },
146
+ items: {
147
+ type: Array,
148
+ default: () => [],
149
+ },
150
+ [isVue3 ? 'modelValue' : 'value']: {
151
+ type: [String, Number, Boolean, Object, Array, Symbol],
152
+ default: undefined,
153
+ },
154
+ maxMultiItems: {
155
+ type: Number,
156
+ required: false,
157
+ },
158
+ multiItemsRestLabelProvider: {
159
+ type: Function,
160
+ required: false,
161
+ },
162
+ renderSingleItem: {
163
+ type: Function,
164
+ default: undefined,
165
+ },
166
+ unrenderSingleItem: {
167
+ type: Function,
168
+ default: undefined,
169
+ },
170
+ renderMultiItem: {
171
+ type: Function,
172
+ default: undefined,
173
+ },
174
+ unrenderMultiItem: {
175
+ type: Function,
176
+ default: undefined,
177
+ },
178
+ renderRestMultiItem: {
179
+ type: Function,
180
+ default: undefined,
181
+ },
182
+ unrenderRestMultiItem: {
183
+ type: Function,
184
+ default: undefined,
185
+ },
186
+ renderNoResultsItem: {
187
+ type: Function,
188
+ default: undefined,
189
+ },
190
+ unrenderNoResultsItem: {
191
+ type: Function,
192
+ default: undefined,
193
+ },
194
+ renderListItem: {
195
+ type: Function,
196
+ default: undefined,
197
+ },
198
+ unrenderListItem: {
199
+ type: Function,
200
+ default: undefined,
201
+ },
202
+ virtualMinItems: {
203
+ type: Number,
204
+ default: 10,
205
+ },
206
+ baseClass: {
207
+ type: String,
208
+ default: undefined,
209
+ },
210
+ droplistBaseClass: {
211
+ type: String,
212
+ default: undefined,
213
+ },
214
+ additionalClasses: {
215
+ type: [Object, Array, String],
216
+ default: undefined,
217
+ },
218
+ additionalDroplistClasses: {
219
+ type: [Object, Array, String],
220
+ default: undefined,
221
+ },
222
+ direction: {
223
+ type: String,
224
+ default: undefined,
225
+ },
226
+ fixedDroplistWidth: {
227
+ type: Boolean,
228
+ default: false,
229
+ },
230
+ acceptNullAsValue: {
231
+ type: Boolean,
232
+ default: false,
233
+ },
234
+ emitNullForEmptyValue: {
235
+ type: Boolean,
236
+ default: false,
237
+ },
238
+ isLoadingMode: {
239
+ type: Boolean,
240
+ default: false,
241
+ },
242
+ closeListWhenLoading: {
243
+ type: Boolean,
244
+ default: true,
245
+ },
246
+ clearInputWhen: {
247
+ type: Array,
248
+ required: false,
249
+ default: () => ['single_close', 'multi_select_single'],
250
+ validator: value => {
251
+ if (value && !Array.isArray(value))
252
+ return false;
253
+ for (let v of value) {
254
+ if (!['single_close', 'multi_close', 'multi_select_single'].includes(v))
248
255
  return false;
249
- for (let v of value) {
250
- if (!['single_close', 'multi_close', 'multi_select_single'].includes(v))
251
- return false;
252
- }
253
- return true;
254
- },
255
- },
256
- treatGroupSelectionAsItems: {
257
- type: Boolean,
258
- default: false,
259
- },
260
- autoCheckGroupChildren: {
261
- type: Boolean,
262
- default: true,
263
- },
264
- constrainListToWindow: {
265
- type: Boolean,
266
- default: true,
267
- },
268
- autoFlipListDirection: {
269
- type: Boolean,
270
- default: true,
256
+ }
257
+ return true;
271
258
  },
272
259
  },
260
+ treatGroupSelectionAsItems: {
261
+ type: Boolean,
262
+ default: false,
263
+ },
264
+ autoCheckGroupChildren: {
265
+ type: Boolean,
266
+ default: true,
267
+ },
268
+ constrainListToWindow: {
269
+ type: Boolean,
270
+ default: true,
271
+ },
272
+ autoFlipListDirection: {
273
+ type: Boolean,
274
+ default: true,
275
+ },
276
+ };
277
+
278
+ export default {
279
+ inheritAttrs: false,
280
+
281
+ props: PropTypes,
273
282
 
274
283
  emits: [
275
284
  'update:modelValue',
@@ -584,6 +593,11 @@ export default {
584
593
  this.nonReactive.instance.setMultiItemLabelProp(value);
585
594
  },
586
595
 
596
+ multiItemRemovePosition(value) {
597
+ if (this.nonReactive.instance)
598
+ this.nonReactive.instance.setMultiItemRemovePosition(value);
599
+ },
600
+
587
601
  maxMultiItems(value) {
588
602
  if (this.nonReactive.instance)
589
603
  this.nonReactive.instance.setMaxMultiItems(value);
@@ -808,6 +822,7 @@ export default {
808
822
  labelProp: this.labelProp,
809
823
  valueProp: this.valueProp,
810
824
  multiItemLabelProp: this.multiItemLabelProp,
825
+ multiItemRemovePosition: this.multiItemRemovePosition,
811
826
  maxMultiItems: this.maxMultiItems,
812
827
  multiItemsRestLabelProvider: this.multiItemsRestLabelProvider,
813
828
  items: this.items,