@progress/kendo-angular-dropdowns 17.0.0-develop.9 → 17.0.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.
- package/README.md +40 -99
- package/autocomplete/autocomplete.component.d.ts +1 -1
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/comboboxes/combobox-column/combobox-column.component.d.ts +1 -1
- package/comboboxes/combobox.component.d.ts +1 -1
- package/comboboxes/combobox.module.d.ts +1 -1
- package/common/action-sheet.component.d.ts +1 -1
- package/common/disabled-items/item-disabled.d.ts +1 -1
- package/common/filter-input.directive.d.ts +1 -1
- package/common/filtering/filter.directive.d.ts +1 -1
- package/common/list.component.d.ts +1 -1
- package/common/localization/messages.d.ts +1 -1
- package/common/models/direction.d.ts +1 -1
- package/common/models/fillmode.d.ts +1 -1
- package/common/models/list-type.d.ts +1 -1
- package/common/models/rounded.d.ts +1 -1
- package/common/models/size.d.ts +1 -1
- package/common/searchbar.component.d.ts +1 -1
- package/common/selection/selectable.directive.d.ts +1 -1
- package/common/shared-events.directive.d.ts +1 -1
- package/common/taglist.component.d.ts +2 -2
- package/common/util.d.ts +2 -2
- package/dropdownlist/dropdownlist.component.d.ts +1 -1
- package/dropdowns.module.d.ts +1 -1
- package/dropdowntrees/checked-state/base-check.directive.d.ts +1 -1
- package/dropdowntrees/checked-state/check-all.directive.d.ts +1 -1
- package/dropdowntrees/checked-state/check.directive.d.ts +1 -1
- package/dropdowntrees/data-binding/dropdowntree/flat-binding.directive.d.ts +1 -1
- package/dropdowntrees/data-binding/dropdowntree/hierarchy-binding.directive.d.ts +1 -1
- package/dropdowntrees/data-binding/multiselecttree/flat-binding.directive.d.ts +1 -1
- package/dropdowntrees/data-binding/multiselecttree/hierarchy-binding.directive.d.ts +1 -1
- package/dropdowntrees/dropdowntree.component.d.ts +1 -1
- package/dropdowntrees/expanded-state/expand.directive.d.ts +1 -1
- package/dropdowntrees/multiselecttree.component.d.ts +1 -1
- package/dropdowntrees/summary-tag/summary-tag.directive.d.ts +1 -1
- package/{esm2020 → esm2022}/autocomplete/autocomplete.component.mjs +235 -173
- package/{esm2020 → esm2022}/autocomplete/autocomplete.module.mjs +11 -11
- package/{esm2020 → esm2022}/comboboxes/combobox-column/column-cell-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/comboboxes/combobox-column/column-header-template.directive.mjs +4 -3
- package/esm2022/comboboxes/combobox-column/combobox-column.component.mjs +105 -0
- package/{esm2020 → esm2022}/comboboxes/combobox.component.mjs +326 -248
- package/{esm2020 → esm2022}/comboboxes/combobox.module.mjs +11 -11
- package/{esm2020 → esm2022}/comboboxes/multicolumncombobox.component.mjs +53 -48
- package/{esm2020 → esm2022}/common/action-sheet.component.mjs +26 -14
- package/{esm2020 → esm2022}/common/data.service.mjs +8 -7
- package/{esm2020 → esm2022}/common/disabled-items/disabled-items.service.mjs +6 -4
- package/{esm2020 → esm2022}/common/filter-input.directive.mjs +6 -3
- package/{esm2020 → esm2022}/common/filtering/filter.directive.mjs +20 -13
- package/{esm2020 → esm2022}/common/filtering/filterable-component.mjs +21 -0
- package/{esm2020 → esm2022}/common/list-item.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/list.component.mjs +72 -36
- package/{esm2020 → esm2022}/common/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/common/localization/localized-messages.directive.mjs +9 -8
- package/esm2022/common/localization/messages.mjs +65 -0
- package/{esm2020 → esm2022}/common/models/preventable-event.mjs +1 -3
- package/{esm2020 → esm2022}/common/models/remove-tag-event.mjs +4 -0
- package/{esm2020 → esm2022}/common/navigation/navigation.service.mjs +27 -23
- package/{esm2020 → esm2022}/common/searchbar.component.mjs +45 -28
- package/{esm2020 → esm2022}/common/selection/selectable.directive.mjs +9 -5
- package/{esm2020 → esm2022}/common/selection/selection.service.mjs +13 -10
- package/{esm2020 → esm2022}/common/shared-events.directive.mjs +13 -7
- package/{esm2020 → esm2022}/common/taglist.component.mjs +36 -27
- package/{esm2020 → esm2022}/common/templates/custom-item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/fixed-group-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/footer-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/group-tag-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/group-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/header-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/no-data-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/tag-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/common/templates/value-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/dropdownlist/dropdownlist.component.mjs +259 -184
- package/{esm2020 → esm2022}/dropdownlist/dropdownlist.module.mjs +8 -8
- package/esm2022/dropdowns.module.mjs +87 -0
- package/{esm2020 → esm2022}/dropdowntrees/checked-state/base-check.directive.mjs +10 -3
- package/{esm2020 → esm2022}/dropdowntrees/checked-state/check-all.directive.mjs +38 -21
- package/{esm2020 → esm2022}/dropdowntrees/checked-state/check.directive.mjs +31 -15
- package/{esm2020 → esm2022}/dropdowntrees/data-binding/dropdowntree/flat-binding.directive.mjs +12 -7
- package/{esm2020 → esm2022}/dropdowntrees/data-binding/dropdowntree/hierarchy-binding.directive.mjs +8 -7
- package/{esm2020 → esm2022}/dropdowntrees/data-binding/multiselecttree/flat-binding.directive.mjs +12 -7
- package/{esm2020 → esm2022}/dropdowntrees/data-binding/multiselecttree/hierarchy-binding.directive.mjs +8 -7
- package/{esm2020 → esm2022}/dropdowntrees/dropdowntree.component.mjs +309 -232
- package/{esm2020 → esm2022}/dropdowntrees/dropdowntrees.module.mjs +12 -12
- package/{esm2020 → esm2022}/dropdowntrees/expanded-state/expand.directive.mjs +8 -7
- package/{esm2020 → esm2022}/dropdowntrees/lookup/lookup.service.mjs +4 -6
- package/{esm2020 → esm2022}/dropdowntrees/multiselecttree.component.mjs +324 -254
- package/{esm2020 → esm2022}/dropdowntrees/summary-tag/summary-tag.directive.mjs +8 -7
- package/{esm2020 → esm2022}/dropdowntrees/templates/node-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/index.mjs +0 -2
- package/{esm2020 → esm2022}/multiselect/multiselect.component.mjs +328 -254
- package/{esm2020 → esm2022}/multiselect/multiselect.module.mjs +11 -11
- package/{esm2020 → esm2022}/multiselect/summary-tag.directive.mjs +8 -7
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{fesm2020 → fesm2022}/progress-kendo-angular-dropdowns.mjs +2528 -1927
- package/index.d.ts +0 -2
- package/multiselect/multiselect.component.d.ts +1 -1
- package/multiselect/multiselect.module.d.ts +1 -1
- package/multiselect/summary-tag.directive.d.ts +1 -1
- package/package.json +18 -24
- package/schematics/ngAdd/index.js +3 -3
- package/common/shared-directives.module.d.ts +0 -37
- package/common/shared.module.d.ts +0 -29
- package/esm2020/comboboxes/combobox-column/combobox-column.component.mjs +0 -60
- package/esm2020/common/localization/messages.mjs +0 -33
- package/esm2020/common/shared-directives.module.mjs +0 -84
- package/esm2020/common/shared.module.mjs +0 -68
- package/esm2020/dropdowns.module.mjs +0 -87
- package/fesm2015/progress-kendo-angular-dropdowns.mjs +0 -17609
- /package/{esm2020 → esm2022}/comboboxes/combobox-column/util.mjs +0 -0
- /package/{esm2020 → esm2022}/common/constants/error-messages.mjs +0 -0
- /package/{esm2020 → esm2022}/common/disabled-items/item-disabled.mjs +0 -0
- /package/{esm2020 → esm2022}/common/filtering/filter-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/checkboxes-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/direction.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/fillmode.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/list-type.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/page-change-event.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/popup-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/rounded.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/size.mjs +0 -0
- /package/{esm2020 → esm2022}/common/models/virtualization-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/common/navigation/navigation-action.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util.mjs +0 -0
- /package/{esm2020 → esm2022}/directives.mjs +0 -0
- /package/{esm2020 → esm2022}/dropdowntrees/checked-state/checkable-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/dropdowntrees/checked-state/checked-item.mjs +0 -0
- /package/{esm2020 → esm2022}/dropdowntrees/lookup/lookup.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-dropdowns.mjs +0 -0
|
@@ -76,239 +76,43 @@ const DEFAULT_FILL_MODE = 'solid';
|
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
78
|
export class MultiSelectComponent {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
* @hidden
|
|
117
|
-
*/
|
|
118
|
-
this.focusableId = `k-${guid()}`;
|
|
119
|
-
/**
|
|
120
|
-
* Determines whether to close the options list of the MultiSelect after the item selection is finished
|
|
121
|
-
* ([see example]({% slug openstate_multiselect %}#toc-keeping-the-options-list-open-while-on-focus)).
|
|
122
|
-
* @default true
|
|
123
|
-
*/
|
|
124
|
-
this.autoClose = true;
|
|
125
|
-
/**
|
|
126
|
-
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
127
|
-
*/
|
|
128
|
-
this.tabindex = 0;
|
|
129
|
-
/**
|
|
130
|
-
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
131
|
-
*/
|
|
132
|
-
this.adaptiveMode = 'none';
|
|
133
|
-
/**
|
|
134
|
-
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
135
|
-
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
136
|
-
*/
|
|
137
|
-
this.title = '';
|
|
138
|
-
/**
|
|
139
|
-
* Sets the disabled state of the component. To learn how to disable the component in reactive forms, refer to the article on [Forms Support](slug:formssupport_multiselect#toc-managing-the-multiselect-disabled-state-in-reactive-forms).
|
|
140
|
-
*/
|
|
141
|
-
this.disabled = false;
|
|
142
|
-
/**
|
|
143
|
-
* Sets the read-only state of the component.
|
|
144
|
-
*
|
|
145
|
-
* @default false
|
|
146
|
-
*/
|
|
147
|
-
this.readonly = false;
|
|
148
|
-
/**
|
|
149
|
-
* Enables the [filtering]({% slug filtering_multiselect %}) functionality of the MultiSelect.
|
|
150
|
-
*/
|
|
151
|
-
this.filterable = false;
|
|
152
|
-
this._listHeight = 200;
|
|
153
|
-
/**
|
|
154
|
-
* If set to `true`, renders a button on hovering over the component.
|
|
155
|
-
* Clicking this button resets the value of the component to an empty array and triggers the `change` event.
|
|
156
|
-
*/
|
|
157
|
-
this.clearButton = true;
|
|
158
|
-
/**
|
|
159
|
-
* A user-defined callback function which receives an array of selected data items and maps them to an array of tags
|
|
160
|
-
* ([see examples]({% slug summarytagmode_multiselect %}#toc-rendering-of-tags)).
|
|
161
|
-
*
|
|
162
|
-
* @param { Any[] } dataItems - The selected data items from the list.
|
|
163
|
-
* @returns { Any[] } - The tags that will be rendered by the component.
|
|
164
|
-
*/
|
|
165
|
-
this.tagMapper = (tags) => tags || [];
|
|
166
|
-
/**
|
|
167
|
-
* Specifies whether the MultiSelect allows user-defined values that are not present in the dataset
|
|
168
|
-
* ([more information and examples]({% slug custom_values_multiselect %})).
|
|
169
|
-
* Defaults to `false`.
|
|
170
|
-
*
|
|
171
|
-
* The feature is not available when using adaptive mode.
|
|
172
|
-
*/
|
|
173
|
-
this.allowCustom = false;
|
|
174
|
-
/**
|
|
175
|
-
* A user-defined callback function which returns normalized custom values.
|
|
176
|
-
* Typically used when the data items are different from type `string`.
|
|
177
|
-
*
|
|
178
|
-
* @param { Any } value - The custom value that is defined by the user.
|
|
179
|
-
* @returns { Any }
|
|
180
|
-
*
|
|
181
|
-
* @example
|
|
182
|
-
* ```ts
|
|
183
|
-
* import { map } from 'rxjs/operators';
|
|
184
|
-
*
|
|
185
|
-
* _@Component({
|
|
186
|
-
* selector: 'my-app',
|
|
187
|
-
* template: `
|
|
188
|
-
* <kendo-multiselect
|
|
189
|
-
* [allowCustom]="true"
|
|
190
|
-
* [data]="listItems"
|
|
191
|
-
* textField="text"
|
|
192
|
-
* valueField="value"
|
|
193
|
-
* [valueNormalizer]="valueNormalizer"
|
|
194
|
-
* (valueChange)="onValueChange($event)"
|
|
195
|
-
* >
|
|
196
|
-
* </kendo-multiselect>
|
|
197
|
-
* `
|
|
198
|
-
* })
|
|
199
|
-
*
|
|
200
|
-
* class AppComponent {
|
|
201
|
-
* public listItems: Array<{ text: string, value: number }> = [
|
|
202
|
-
* { text: "Small", value: 1 },
|
|
203
|
-
* { text: "Medium", value: 2 },
|
|
204
|
-
* { text: "Large", value: 3 }
|
|
205
|
-
* ];
|
|
206
|
-
*
|
|
207
|
-
* public onValueChange(value) {
|
|
208
|
-
* console.log("valueChange : ", value);
|
|
209
|
-
* }
|
|
210
|
-
*
|
|
211
|
-
* public valueNormalizer = (text$: Observable<string>) => text$.pipe(map((text: string) => {
|
|
212
|
-
* return {
|
|
213
|
-
* value: Math.floor(Math.random() * (1000 - 100) + 1000), //generate unique valueField
|
|
214
|
-
* text: text };
|
|
215
|
-
* }));
|
|
216
|
-
*
|
|
217
|
-
* }
|
|
218
|
-
* ```
|
|
219
|
-
*/
|
|
220
|
-
this.valueNormalizer = (text) => text.pipe(map((userInput) => {
|
|
221
|
-
const comparer = (item) => typeof item === 'string' && userInput.toLowerCase() === item.toLowerCase();
|
|
222
|
-
const matchingValue = this.value.find(comparer);
|
|
223
|
-
if (matchingValue) {
|
|
224
|
-
return matchingValue;
|
|
225
|
-
}
|
|
226
|
-
const matchingItem = this.dataService.find(comparer);
|
|
227
|
-
return matchingItem ? matchingItem : userInput;
|
|
228
|
-
}));
|
|
229
|
-
/**
|
|
230
|
-
* Fires each time the user types in the input field.
|
|
231
|
-
* You can filter the source based on the passed filtration value.
|
|
232
|
-
*/
|
|
233
|
-
this.filterChange = new EventEmitter();
|
|
234
|
-
/**
|
|
235
|
-
* Fires each time the value is changed—
|
|
236
|
-
* when the component is blurred or the value is cleared through the **Clear** button
|
|
237
|
-
* ([see example](slug:events_multiselect)).
|
|
238
|
-
* When the value of the component is programmatically changed to `ngModel` or `formControl`
|
|
239
|
-
* through its API or form binding, the `valueChange` event is not triggered because it
|
|
240
|
-
* might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
|
|
241
|
-
*/
|
|
242
|
-
this.valueChange = new EventEmitter();
|
|
243
|
-
/**
|
|
244
|
-
* Fires each time the popup is about to open
|
|
245
|
-
* ([see example]({% slug openstate_multiselect %}#toc-preventing-opening-and-closing)).
|
|
246
|
-
* This event is preventable. If you cancel it, the popup will remain closed.
|
|
247
|
-
*/
|
|
248
|
-
this.open = new EventEmitter();
|
|
249
|
-
/**
|
|
250
|
-
* Fires after the popup has been opened.
|
|
251
|
-
*/
|
|
252
|
-
this.opened = new EventEmitter();
|
|
253
|
-
/**
|
|
254
|
-
* Fires each time the popup is about to close
|
|
255
|
-
* ([see example]({% slug openstate_multiselect %}#toc-preventing-opening-and-closing)).
|
|
256
|
-
* This event is preventable. If you cancel it, the popup will remain open.
|
|
257
|
-
*/
|
|
258
|
-
this.close = new EventEmitter();
|
|
259
|
-
/**
|
|
260
|
-
* Fires after the popup has been closed.
|
|
261
|
-
*/
|
|
262
|
-
this.closed = new EventEmitter();
|
|
263
|
-
/**
|
|
264
|
-
* Fires each time the user focuses the MultiSelect.
|
|
265
|
-
*/
|
|
266
|
-
this.onFocus = new EventEmitter();
|
|
267
|
-
/**
|
|
268
|
-
* Fires each time the MultiSelect gets blurred.
|
|
269
|
-
*/
|
|
270
|
-
this.onBlur = new EventEmitter();
|
|
271
|
-
/**
|
|
272
|
-
* Fires each time the user focuses the `input` element.
|
|
273
|
-
*/
|
|
274
|
-
this.inputFocus = new EventEmitter();
|
|
275
|
-
/**
|
|
276
|
-
* Fires each time the `input` element gets blurred.
|
|
277
|
-
*/
|
|
278
|
-
this.inputBlur = new EventEmitter();
|
|
279
|
-
/**
|
|
280
|
-
* Fires each time a tag is about to be removed([see examples]({% slug summarytagmode_multiselecttree %}#toc-notifying-on-removing-group-tags)).
|
|
281
|
-
* This event is preventable. If you cancel it, the tag will not be removed.
|
|
282
|
-
*/
|
|
283
|
-
this.removeTag = new EventEmitter();
|
|
284
|
-
this.hostClasses = true;
|
|
285
|
-
/**
|
|
286
|
-
* @hidden
|
|
287
|
-
*/
|
|
288
|
-
this.windowSize = 'large';
|
|
289
|
-
this.initialized = false;
|
|
290
|
-
this._size = 'medium';
|
|
291
|
-
this._rounded = 'medium';
|
|
292
|
-
this._fillMode = 'solid';
|
|
293
|
-
this._valueHolder = [];
|
|
294
|
-
this.onChangeCallback = (_) => { };
|
|
295
|
-
this.onTouchedCallback = (_) => { };
|
|
296
|
-
this._placeholder = '';
|
|
297
|
-
this._open = false;
|
|
298
|
-
this._value = [];
|
|
299
|
-
this._popupSettings = { animate: true };
|
|
300
|
-
this._checkboxes = { enabled: false };
|
|
301
|
-
this._isFocused = false;
|
|
302
|
-
this.selectedDataItems = [];
|
|
303
|
-
this.customValueSubject = new Subject();
|
|
304
|
-
this.subs = new Subscription();
|
|
305
|
-
validatePackage(packageMetadata);
|
|
306
|
-
this.popupMouseDownHandler = this.onMouseDown.bind(this);
|
|
307
|
-
this.data = [];
|
|
308
|
-
this.direction = this.localization.rtl ? 'rtl' : 'ltr';
|
|
309
|
-
this.subscribeEvents();
|
|
310
|
-
this.subscribeTouchEvents();
|
|
311
|
-
}
|
|
79
|
+
wrapper;
|
|
80
|
+
localization;
|
|
81
|
+
popupService;
|
|
82
|
+
dataService;
|
|
83
|
+
selectionService;
|
|
84
|
+
navigationService;
|
|
85
|
+
disabledItemsService;
|
|
86
|
+
cdr;
|
|
87
|
+
differs;
|
|
88
|
+
renderer;
|
|
89
|
+
_zone;
|
|
90
|
+
injector;
|
|
91
|
+
hostElement;
|
|
92
|
+
/**
|
|
93
|
+
* @hidden
|
|
94
|
+
*/
|
|
95
|
+
animationDuration = animationDuration;
|
|
96
|
+
/**
|
|
97
|
+
* @hidden
|
|
98
|
+
*/
|
|
99
|
+
xIcon = xIcon;
|
|
100
|
+
/**
|
|
101
|
+
* @hidden
|
|
102
|
+
*/
|
|
103
|
+
plusIcon = plusIcon;
|
|
104
|
+
listBoxId = `k-${guid()}`;
|
|
105
|
+
tagListId = `k-${guid()}`;
|
|
106
|
+
tagPrefix = "tag-" + guid();
|
|
107
|
+
optionPrefix = "option-" + guid();
|
|
108
|
+
popupRef;
|
|
109
|
+
text;
|
|
110
|
+
tags;
|
|
111
|
+
focusedTagIndex = undefined;
|
|
112
|
+
/**
|
|
113
|
+
* @hidden
|
|
114
|
+
*/
|
|
115
|
+
responsiveRendererComponent;
|
|
312
116
|
/**
|
|
313
117
|
* @hidden
|
|
314
118
|
*/
|
|
@@ -494,6 +298,25 @@ export class MultiSelectComponent {
|
|
|
494
298
|
}
|
|
495
299
|
return appendTo === 'component' ? this.container : appendTo;
|
|
496
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Shows or hides the current group sticky header when using grouped data.
|
|
303
|
+
* By default the sticky header is displayed ([see example]({% slug grouping_autocomplete %}#toc-sticky-header)).
|
|
304
|
+
*/
|
|
305
|
+
showStickyHeader = true;
|
|
306
|
+
/**
|
|
307
|
+
* @hidden
|
|
308
|
+
*/
|
|
309
|
+
focusableId = `k-${guid()}`;
|
|
310
|
+
/**
|
|
311
|
+
* Determines whether to close the options list of the MultiSelect after the item selection is finished
|
|
312
|
+
* ([see example]({% slug openstate_multiselect %}#toc-keeping-the-options-list-open-while-on-focus)).
|
|
313
|
+
* @default true
|
|
314
|
+
*/
|
|
315
|
+
autoClose = true;
|
|
316
|
+
/**
|
|
317
|
+
* Sets and gets the loading state of the MultiSelect.
|
|
318
|
+
*/
|
|
319
|
+
loading;
|
|
497
320
|
/**
|
|
498
321
|
* Sets the data of the MultiSelect.
|
|
499
322
|
*
|
|
@@ -538,6 +361,24 @@ export class MultiSelectComponent {
|
|
|
538
361
|
get value() {
|
|
539
362
|
return this._value;
|
|
540
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Sets the data item field that represents the item value.
|
|
366
|
+
* If the data contains only primitive values, do not define it.
|
|
367
|
+
*
|
|
368
|
+
* > The `valueField` property can be set to point to a nested property value - e.g. `category.id`.
|
|
369
|
+
*/
|
|
370
|
+
valueField;
|
|
371
|
+
/**
|
|
372
|
+
* Sets the data item field that represents the item text.
|
|
373
|
+
* If the data contains only primitive values, do not define it.
|
|
374
|
+
*
|
|
375
|
+
* > The `textField` property can be set to point to a nested property value - e.g. `category.name`.
|
|
376
|
+
*/
|
|
377
|
+
textField;
|
|
378
|
+
/**
|
|
379
|
+
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
380
|
+
*/
|
|
381
|
+
tabindex = 0;
|
|
541
382
|
/**
|
|
542
383
|
* @hidden
|
|
543
384
|
*/
|
|
@@ -621,6 +462,15 @@ export class MultiSelectComponent {
|
|
|
621
462
|
get placeholder() {
|
|
622
463
|
return this.selectedDataItems.length ? '' : this._placeholder;
|
|
623
464
|
}
|
|
465
|
+
/**
|
|
466
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
467
|
+
*/
|
|
468
|
+
adaptiveMode = 'none';
|
|
469
|
+
/**
|
|
470
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
471
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
472
|
+
*/
|
|
473
|
+
title = '';
|
|
624
474
|
/**
|
|
625
475
|
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
626
476
|
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
@@ -637,6 +487,10 @@ export class MultiSelectComponent {
|
|
|
637
487
|
get isAdaptiveModeEnabled() {
|
|
638
488
|
return this.adaptiveMode === 'auto';
|
|
639
489
|
}
|
|
490
|
+
/**
|
|
491
|
+
* Sets the disabled state of the component. To learn how to disable the component in reactive forms, refer to the article on [Forms Support](slug:formssupport_multiselect#toc-managing-the-multiselect-disabled-state-in-reactive-forms).
|
|
492
|
+
*/
|
|
493
|
+
disabled = false;
|
|
640
494
|
/**
|
|
641
495
|
* Defines a Boolean function that is executed for each data item in the component
|
|
642
496
|
* ([see examples]({% slug disableditems_multiselect %})). Determines whether the item will be disabled.
|
|
@@ -656,6 +510,16 @@ export class MultiSelectComponent {
|
|
|
656
510
|
get checkboxes() {
|
|
657
511
|
return this._checkboxes;
|
|
658
512
|
}
|
|
513
|
+
/**
|
|
514
|
+
* Sets the read-only state of the component.
|
|
515
|
+
*
|
|
516
|
+
* @default false
|
|
517
|
+
*/
|
|
518
|
+
readonly = false;
|
|
519
|
+
/**
|
|
520
|
+
* Enables the [filtering]({% slug filtering_multiselect %}) functionality of the MultiSelect.
|
|
521
|
+
*/
|
|
522
|
+
filterable = false;
|
|
659
523
|
/**
|
|
660
524
|
* Enables the [virtualization]({% slug virtualization_multiselect %}) functionality.
|
|
661
525
|
*/
|
|
@@ -698,6 +562,7 @@ export class MultiSelectComponent {
|
|
|
698
562
|
}
|
|
699
563
|
return this._listHeight;
|
|
700
564
|
}
|
|
565
|
+
_listHeight = 200;
|
|
701
566
|
/**
|
|
702
567
|
* Specifies the type of the selected value.
|
|
703
568
|
* If set to `true`, the selected value has to be of the primitive type
|
|
@@ -712,6 +577,164 @@ export class MultiSelectComponent {
|
|
|
712
577
|
}
|
|
713
578
|
return this._valuePrimitive;
|
|
714
579
|
}
|
|
580
|
+
/**
|
|
581
|
+
* If set to `true`, renders a button on hovering over the component.
|
|
582
|
+
* Clicking this button resets the value of the component to an empty array and triggers the `change` event.
|
|
583
|
+
*/
|
|
584
|
+
clearButton = true;
|
|
585
|
+
/**
|
|
586
|
+
* A user-defined callback function which receives an array of selected data items and maps them to an array of tags
|
|
587
|
+
* ([see examples]({% slug summarytagmode_multiselect %}#toc-rendering-of-tags)).
|
|
588
|
+
*
|
|
589
|
+
* @param { Any[] } dataItems - The selected data items from the list.
|
|
590
|
+
* @returns { Any[] } - The tags that will be rendered by the component.
|
|
591
|
+
*/
|
|
592
|
+
tagMapper = (tags) => tags || [];
|
|
593
|
+
/**
|
|
594
|
+
* Specifies whether the MultiSelect allows user-defined values that are not present in the dataset
|
|
595
|
+
* ([more information and examples]({% slug custom_values_multiselect %})).
|
|
596
|
+
* Defaults to `false`.
|
|
597
|
+
*
|
|
598
|
+
* The feature is not available when using adaptive mode.
|
|
599
|
+
*/
|
|
600
|
+
allowCustom = false;
|
|
601
|
+
/**
|
|
602
|
+
* A user-defined callback function which returns normalized custom values.
|
|
603
|
+
* Typically used when the data items are different from type `string`.
|
|
604
|
+
*
|
|
605
|
+
* @param { Any } value - The custom value that is defined by the user.
|
|
606
|
+
* @returns { Any }
|
|
607
|
+
*
|
|
608
|
+
* @example
|
|
609
|
+
* ```ts
|
|
610
|
+
* import { map } from 'rxjs/operators';
|
|
611
|
+
*
|
|
612
|
+
* _@Component({
|
|
613
|
+
* selector: 'my-app',
|
|
614
|
+
* template: `
|
|
615
|
+
* <kendo-multiselect
|
|
616
|
+
* [allowCustom]="true"
|
|
617
|
+
* [data]="listItems"
|
|
618
|
+
* textField="text"
|
|
619
|
+
* valueField="value"
|
|
620
|
+
* [valueNormalizer]="valueNormalizer"
|
|
621
|
+
* (valueChange)="onValueChange($event)"
|
|
622
|
+
* >
|
|
623
|
+
* </kendo-multiselect>
|
|
624
|
+
* `
|
|
625
|
+
* })
|
|
626
|
+
*
|
|
627
|
+
* class AppComponent {
|
|
628
|
+
* public listItems: Array<{ text: string, value: number }> = [
|
|
629
|
+
* { text: "Small", value: 1 },
|
|
630
|
+
* { text: "Medium", value: 2 },
|
|
631
|
+
* { text: "Large", value: 3 }
|
|
632
|
+
* ];
|
|
633
|
+
*
|
|
634
|
+
* public onValueChange(value) {
|
|
635
|
+
* console.log("valueChange : ", value);
|
|
636
|
+
* }
|
|
637
|
+
*
|
|
638
|
+
* public valueNormalizer = (text$: Observable<string>) => text$.pipe(map((text: string) => {
|
|
639
|
+
* return {
|
|
640
|
+
* value: Math.floor(Math.random() * (1000 - 100) + 1000), //generate unique valueField
|
|
641
|
+
* text: text };
|
|
642
|
+
* }));
|
|
643
|
+
*
|
|
644
|
+
* }
|
|
645
|
+
* ```
|
|
646
|
+
*/
|
|
647
|
+
valueNormalizer = (text) => text.pipe(map((userInput) => {
|
|
648
|
+
const comparer = (item) => typeof item === 'string' && userInput.toLowerCase() === item.toLowerCase();
|
|
649
|
+
const matchingValue = this.value.find(comparer);
|
|
650
|
+
if (matchingValue) {
|
|
651
|
+
return matchingValue;
|
|
652
|
+
}
|
|
653
|
+
const matchingItem = this.dataService.find(comparer);
|
|
654
|
+
return matchingItem ? matchingItem : userInput;
|
|
655
|
+
}));
|
|
656
|
+
/**
|
|
657
|
+
* Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
|
|
658
|
+
*/
|
|
659
|
+
inputAttributes;
|
|
660
|
+
/**
|
|
661
|
+
* Fires each time the user types in the input field.
|
|
662
|
+
* You can filter the source based on the passed filtration value.
|
|
663
|
+
*/
|
|
664
|
+
filterChange = new EventEmitter();
|
|
665
|
+
/**
|
|
666
|
+
* Fires each time the value is changed—
|
|
667
|
+
* when the component is blurred or the value is cleared through the **Clear** button
|
|
668
|
+
* ([see example](slug:events_multiselect)).
|
|
669
|
+
* When the value of the component is programmatically changed to `ngModel` or `formControl`
|
|
670
|
+
* through its API or form binding, the `valueChange` event is not triggered because it
|
|
671
|
+
* might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
|
|
672
|
+
*/
|
|
673
|
+
valueChange = new EventEmitter();
|
|
674
|
+
/**
|
|
675
|
+
* Fires each time the popup is about to open
|
|
676
|
+
* ([see example]({% slug openstate_multiselect %}#toc-preventing-opening-and-closing)).
|
|
677
|
+
* This event is preventable. If you cancel it, the popup will remain closed.
|
|
678
|
+
*/
|
|
679
|
+
open = new EventEmitter();
|
|
680
|
+
/**
|
|
681
|
+
* Fires after the popup has been opened.
|
|
682
|
+
*/
|
|
683
|
+
opened = new EventEmitter();
|
|
684
|
+
/**
|
|
685
|
+
* Fires each time the popup is about to close
|
|
686
|
+
* ([see example]({% slug openstate_multiselect %}#toc-preventing-opening-and-closing)).
|
|
687
|
+
* This event is preventable. If you cancel it, the popup will remain open.
|
|
688
|
+
*/
|
|
689
|
+
close = new EventEmitter();
|
|
690
|
+
/**
|
|
691
|
+
* Fires after the popup has been closed.
|
|
692
|
+
*/
|
|
693
|
+
closed = new EventEmitter();
|
|
694
|
+
/**
|
|
695
|
+
* Fires each time the user focuses the MultiSelect.
|
|
696
|
+
*/
|
|
697
|
+
onFocus = new EventEmitter();
|
|
698
|
+
/**
|
|
699
|
+
* Fires each time the MultiSelect gets blurred.
|
|
700
|
+
*/
|
|
701
|
+
onBlur = new EventEmitter();
|
|
702
|
+
/**
|
|
703
|
+
* Fires each time the user focuses the `input` element.
|
|
704
|
+
*/
|
|
705
|
+
inputFocus = new EventEmitter();
|
|
706
|
+
/**
|
|
707
|
+
* Fires each time the `input` element gets blurred.
|
|
708
|
+
*/
|
|
709
|
+
inputBlur = new EventEmitter();
|
|
710
|
+
/**
|
|
711
|
+
* Fires each time a tag is about to be removed([see examples]({% slug summarytagmode_multiselecttree %}#toc-notifying-on-removing-group-tags)).
|
|
712
|
+
* This event is preventable. If you cancel it, the tag will not be removed.
|
|
713
|
+
*/
|
|
714
|
+
removeTag = new EventEmitter();
|
|
715
|
+
container;
|
|
716
|
+
searchbar;
|
|
717
|
+
tagList;
|
|
718
|
+
popupTemplate;
|
|
719
|
+
optionsList;
|
|
720
|
+
template;
|
|
721
|
+
customItemTemplate;
|
|
722
|
+
groupTemplate;
|
|
723
|
+
fixedGroupTemplate;
|
|
724
|
+
headerTemplate;
|
|
725
|
+
footerTemplate;
|
|
726
|
+
tagTemplate;
|
|
727
|
+
groupTagTemplate;
|
|
728
|
+
noDataTemplate;
|
|
729
|
+
/**
|
|
730
|
+
* @hidden
|
|
731
|
+
*/
|
|
732
|
+
suffixTemplate;
|
|
733
|
+
/**
|
|
734
|
+
* @hidden
|
|
735
|
+
*/
|
|
736
|
+
prefixTemplate;
|
|
737
|
+
hostClasses = true;
|
|
715
738
|
get dir() {
|
|
716
739
|
return this.direction;
|
|
717
740
|
}
|
|
@@ -721,6 +744,10 @@ export class MultiSelectComponent {
|
|
|
721
744
|
get isLoading() {
|
|
722
745
|
return this.loading;
|
|
723
746
|
}
|
|
747
|
+
/**
|
|
748
|
+
* @hidden
|
|
749
|
+
*/
|
|
750
|
+
windowSize = 'large';
|
|
724
751
|
/**
|
|
725
752
|
* @hidden
|
|
726
753
|
*/
|
|
@@ -733,6 +760,34 @@ export class MultiSelectComponent {
|
|
|
733
760
|
get isAdaptive() {
|
|
734
761
|
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
735
762
|
}
|
|
763
|
+
disabledIndices;
|
|
764
|
+
initialized = false;
|
|
765
|
+
_size = 'medium';
|
|
766
|
+
_rounded = 'medium';
|
|
767
|
+
_fillMode = 'solid';
|
|
768
|
+
_subtitle;
|
|
769
|
+
_valueHolder = [];
|
|
770
|
+
constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, injector, hostElement) {
|
|
771
|
+
this.wrapper = wrapper;
|
|
772
|
+
this.localization = localization;
|
|
773
|
+
this.popupService = popupService;
|
|
774
|
+
this.dataService = dataService;
|
|
775
|
+
this.selectionService = selectionService;
|
|
776
|
+
this.navigationService = navigationService;
|
|
777
|
+
this.disabledItemsService = disabledItemsService;
|
|
778
|
+
this.cdr = cdr;
|
|
779
|
+
this.differs = differs;
|
|
780
|
+
this.renderer = renderer;
|
|
781
|
+
this._zone = _zone;
|
|
782
|
+
this.injector = injector;
|
|
783
|
+
this.hostElement = hostElement;
|
|
784
|
+
validatePackage(packageMetadata);
|
|
785
|
+
this.popupMouseDownHandler = this.onMouseDown.bind(this);
|
|
786
|
+
this.data = [];
|
|
787
|
+
this.direction = this.localization.rtl ? 'rtl' : 'ltr';
|
|
788
|
+
this.subscribeEvents();
|
|
789
|
+
this.subscribeTouchEvents();
|
|
790
|
+
}
|
|
736
791
|
get listContainerClasses() {
|
|
737
792
|
const containerClasses = ['k-list-container', 'k-multiselect-popup'];
|
|
738
793
|
if (this.popupSettings.popupClass) {
|
|
@@ -1173,6 +1228,16 @@ export class MultiSelectComponent {
|
|
|
1173
1228
|
this.togglePopup(true);
|
|
1174
1229
|
}
|
|
1175
1230
|
}
|
|
1231
|
+
onChangeCallback = (_) => { };
|
|
1232
|
+
onTouchedCallback = (_) => { };
|
|
1233
|
+
_placeholder = '';
|
|
1234
|
+
_open = false;
|
|
1235
|
+
_value = [];
|
|
1236
|
+
_popupSettings = { animate: true };
|
|
1237
|
+
_virtualSettings;
|
|
1238
|
+
_valuePrimitive;
|
|
1239
|
+
_checkboxes = { enabled: false };
|
|
1240
|
+
_isFocused = false;
|
|
1176
1241
|
set isFocused(isFocused) {
|
|
1177
1242
|
this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
|
|
1178
1243
|
this._isFocused = isFocused;
|
|
@@ -1180,6 +1245,15 @@ export class MultiSelectComponent {
|
|
|
1180
1245
|
get isFocused() {
|
|
1181
1246
|
return this._isFocused;
|
|
1182
1247
|
}
|
|
1248
|
+
selectedDataItems = [];
|
|
1249
|
+
popupMouseDownHandler;
|
|
1250
|
+
customValueSubject = new Subject();
|
|
1251
|
+
customValueSubscription;
|
|
1252
|
+
subs = new Subscription();
|
|
1253
|
+
touchstartDisposeHandler;
|
|
1254
|
+
direction;
|
|
1255
|
+
differ;
|
|
1256
|
+
valueChangeDetected;
|
|
1183
1257
|
subscribeEvents() {
|
|
1184
1258
|
if (!isDocumentAvailable()) {
|
|
1185
1259
|
return;
|
|
@@ -1736,26 +1810,25 @@ export class MultiSelectComponent {
|
|
|
1736
1810
|
this.selectionService.focus(this.selectionService.focused);
|
|
1737
1811
|
this.actionSheetSearchBar.focus();
|
|
1738
1812
|
}
|
|
1739
|
-
}
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
}
|
|
1758
|
-
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "customItemTemplate", first: true, predicate: CustomItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "tagList", first: true, predicate: TagListComponent, descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoMultiSelect"], usesOnChanges: true, ngImport: i0, template: `
|
|
1813
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: i3.DataService }, { token: i4.SelectionService }, { token: i5.NavigationService }, { token: i6.DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1814
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, isStandalone: true, selector: "kendo-multiselect", inputs: { showStickyHeader: "showStickyHeader", focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer", inputAttributes: "inputAttributes" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur", removeTag: "removeTag" }, host: { properties: { "class.k-readonly": "this.readonly", "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
|
|
1815
|
+
MULTISELECT_VALUE_ACCESSOR,
|
|
1816
|
+
DataService,
|
|
1817
|
+
SelectionService,
|
|
1818
|
+
NavigationService,
|
|
1819
|
+
DisabledItemsService,
|
|
1820
|
+
LocalizationService,
|
|
1821
|
+
{
|
|
1822
|
+
provide: L10N_PREFIX,
|
|
1823
|
+
useValue: 'kendo.multiselect'
|
|
1824
|
+
},
|
|
1825
|
+
{
|
|
1826
|
+
provide: FilterableComponent, useExisting: forwardRef(() => MultiSelectComponent)
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
provide: KendoInput, useExisting: forwardRef(() => MultiSelectComponent)
|
|
1830
|
+
}
|
|
1831
|
+
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "customItemTemplate", first: true, predicate: CustomItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "tagList", first: true, predicate: TagListComponent, descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoMultiSelect"], usesOnChanges: true, ngImport: i0, template: `
|
|
1759
1832
|
<ng-container kendoMultiSelectLocalizedMessages
|
|
1760
1833
|
i18n-noDataText="kendo.multiselect.noDataText|The text displayed in the popup when there are no items"
|
|
1761
1834
|
noDataText="NO DATA FOUND"
|
|
@@ -1951,7 +2024,8 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
1951
2024
|
</ng-template>
|
|
1952
2025
|
</ng-template>
|
|
1953
2026
|
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "isFilterable", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
1954
|
-
|
|
2027
|
+
}
|
|
2028
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
1955
2029
|
type: Component,
|
|
1956
2030
|
args: [{
|
|
1957
2031
|
exportAs: 'kendoMultiSelect',
|