@progress/kendo-angular-dropdowns 25.0.0-develop.1 → 25.0.0-develop.12
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/fesm2022/progress-kendo-angular-dropdowns.mjs +628 -317
- package/index.d.ts +48 -23
- package/package-metadata.mjs +2 -2
- package/package.json +10 -10
- package/schematics/ngAdd/index.js +2 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, ViewChild, ViewChildren, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
6
|
+
import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, afterNextRender, ViewChild, ViewChildren, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, signal, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
7
7
|
import * as i10 from '@progress/kendo-angular-common';
|
|
8
8
|
import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, normalizeKeys, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, hasFocusableParent, parseCSSClassNames, isControlRequired, guid, hasObservers, SeparatorComponent, SuffixTemplateDirective, PrefixTemplateDirective, KendoInput, KENDO_WEBMCP_HOST, MultiTabStop, anyChanged, EventsOutsideAngularDirective, scrollbarWidth, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
|
|
9
9
|
export { PrefixTemplateDirective, SeparatorComponent, SuffixTemplateDirective, ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
|
|
@@ -20,8 +20,8 @@ import { map, switchMap, take, auditTime, tap, filter, partition, throttleTime,
|
|
|
20
20
|
import * as i2 from '@progress/kendo-angular-popup';
|
|
21
21
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
22
22
|
import { NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
23
|
-
import { checkIcon, xIcon, chevronDownIcon,
|
|
24
|
-
import {
|
|
23
|
+
import { checkIcon, searchIcon, xIcon, chevronDownIcon, xCircleIcon } from '@progress/kendo-svg-icons';
|
|
24
|
+
import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
|
|
25
25
|
import { ActionSheetComponent, ActionSheetTemplateDirective } from '@progress/kendo-angular-navigation';
|
|
26
26
|
import { TextBoxComponent, TextBoxPrefixTemplateDirective } from '@progress/kendo-angular-inputs';
|
|
27
27
|
import { ButtonComponent } from '@progress/kendo-angular-buttons';
|
|
@@ -37,8 +37,8 @@ const packageMetadata = {
|
|
|
37
37
|
productName: 'Kendo UI for Angular',
|
|
38
38
|
productCode: 'KENDOUIANGULAR',
|
|
39
39
|
productCodes: ['KENDOUIANGULAR'],
|
|
40
|
-
publishDate:
|
|
41
|
-
version: '25.0.0-develop.
|
|
40
|
+
publishDate: 1785317924,
|
|
41
|
+
version: '25.0.0-develop.12',
|
|
42
42
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
43
43
|
};
|
|
44
44
|
|
|
@@ -211,6 +211,17 @@ const hasProps = (obj, props) => {
|
|
|
211
211
|
}
|
|
212
212
|
return props.every(prop => obj.hasOwnProperty(prop));
|
|
213
213
|
};
|
|
214
|
+
/**
|
|
215
|
+
* @hidden
|
|
216
|
+
*
|
|
217
|
+
* Checks whether an array contains grouped data.
|
|
218
|
+
* GroupResult { aggregates: AggregateResult, field: string, items: object[], value: any }
|
|
219
|
+
* https://www.telerik.com/kendo-angular-ui/components/dataquery/api/GroupResult/
|
|
220
|
+
*/
|
|
221
|
+
const isGroupedData = (data) => {
|
|
222
|
+
return isPresent(data) && data.length > 0 && isPresent(data[0])
|
|
223
|
+
&& hasProps(data[0], ['aggregates', 'field', 'items', 'value']);
|
|
224
|
+
};
|
|
214
225
|
/**
|
|
215
226
|
* @hidden
|
|
216
227
|
*
|
|
@@ -466,12 +477,12 @@ class SearchBarComponent {
|
|
|
466
477
|
get isSuggestable() {
|
|
467
478
|
return this._isSuggestable;
|
|
468
479
|
}
|
|
469
|
-
set
|
|
470
|
-
this.
|
|
480
|
+
set hasListAutocomplete(hasListAutocomplete) {
|
|
481
|
+
this._hasListAutocomplete = hasListAutocomplete;
|
|
471
482
|
this.setAriaAutocomplete();
|
|
472
483
|
}
|
|
473
|
-
get
|
|
474
|
-
return this.
|
|
484
|
+
get hasListAutocomplete() {
|
|
485
|
+
return this._hasListAutocomplete;
|
|
475
486
|
}
|
|
476
487
|
get userInput() {
|
|
477
488
|
return this._userInput;
|
|
@@ -510,7 +521,7 @@ class SearchBarComponent {
|
|
|
510
521
|
ariaControls;
|
|
511
522
|
ariaExpanded = null;
|
|
512
523
|
get attrAriaInvalid() {
|
|
513
|
-
return this.formControl?.invalid ? true : null;
|
|
524
|
+
return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
|
|
514
525
|
}
|
|
515
526
|
set placeholder(text) {
|
|
516
527
|
this._placeholder = text || '';
|
|
@@ -538,7 +549,7 @@ class SearchBarComponent {
|
|
|
538
549
|
_previousValue = "";
|
|
539
550
|
_placeholder = "";
|
|
540
551
|
_isSuggestable = false;
|
|
541
|
-
|
|
552
|
+
_hasListAutocomplete = false;
|
|
542
553
|
renderer;
|
|
543
554
|
subs = new Subscription();
|
|
544
555
|
_inputAttributes;
|
|
@@ -558,7 +569,7 @@ class SearchBarComponent {
|
|
|
558
569
|
'aria-controls': this.ariaControls,
|
|
559
570
|
'aria-activedescendant': this.activeDescendant,
|
|
560
571
|
'aria-busy': this.isLoading,
|
|
561
|
-
'aria-invalid': this.formControl?.invalid
|
|
572
|
+
'aria-invalid': this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)
|
|
562
573
|
};
|
|
563
574
|
}
|
|
564
575
|
get mutableAttributes() {
|
|
@@ -643,16 +654,16 @@ class SearchBarComponent {
|
|
|
643
654
|
}
|
|
644
655
|
}
|
|
645
656
|
setAriaAutocomplete() {
|
|
646
|
-
if (this.
|
|
657
|
+
if (this.hasListAutocomplete) {
|
|
647
658
|
this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'list');
|
|
648
659
|
}
|
|
649
660
|
if (this.isSuggestable) {
|
|
650
661
|
this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'inline');
|
|
651
662
|
}
|
|
652
|
-
if (this.
|
|
663
|
+
if (this.hasListAutocomplete && this.isSuggestable) {
|
|
653
664
|
this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'both');
|
|
654
665
|
}
|
|
655
|
-
if (!this.
|
|
666
|
+
if (!this.hasListAutocomplete && !this.isSuggestable) {
|
|
656
667
|
this.renderer.removeAttribute(this.input.nativeElement, 'aria-autocomplete');
|
|
657
668
|
}
|
|
658
669
|
}
|
|
@@ -702,10 +713,10 @@ class SearchBarComponent {
|
|
|
702
713
|
}
|
|
703
714
|
setInputAttributes() {
|
|
704
715
|
const attributesToRender = Object.assign({}, this.mutableAttributes, this.parsedAttributes);
|
|
705
|
-
setHTMLAttributes(attributesToRender, this.renderer, this.input.nativeElement, this.
|
|
716
|
+
setHTMLAttributes(attributesToRender, this.renderer, this.input.nativeElement, this.injector);
|
|
706
717
|
}
|
|
707
718
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
708
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: SearchBarComponent, isStandalone: true, selector: "input[kendoSearchbar]", inputs: { tagListId: "tagListId", readonly: "readonly", disabled: "disabled", isRequired: "isRequired", isSuggestable: "isSuggestable",
|
|
719
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: SearchBarComponent, isStandalone: true, selector: "input[kendoSearchbar]", inputs: { tagListId: "tagListId", readonly: "readonly", disabled: "disabled", isRequired: "isRequired", isSuggestable: "isSuggestable", hasListAutocomplete: "hasListAutocomplete", userInput: "userInput", suggestedText: "suggestedText", inputAttributes: "inputAttributes", id: "id", activeDescendant: "activeDescendant", tabIndex: "tabIndex", isLoading: "isLoading", ariaControls: "ariaControls", ariaExpanded: "ariaExpanded", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "attr.id": "this.id", "attr.aria-activedescendant": "this.activeDescendant", "attr.tabindex": "this.tabIndex", "attr.aria-busy": "this.isLoading", "attr.aria-controls": "this.ariaControls", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-invalid": "this.attrAriaInvalid", "attr.placeholder": "this.placeholder", "attr.role": "this.role", "attr.dir": "this.dir" } }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
|
|
709
720
|
}
|
|
710
721
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SearchBarComponent, decorators: [{
|
|
711
722
|
type: Component,
|
|
@@ -724,7 +735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
724
735
|
type: Input
|
|
725
736
|
}], isSuggestable: [{
|
|
726
737
|
type: Input
|
|
727
|
-
}],
|
|
738
|
+
}], hasListAutocomplete: [{
|
|
728
739
|
type: Input
|
|
729
740
|
}], userInput: [{
|
|
730
741
|
type: Input
|
|
@@ -1058,9 +1069,7 @@ class DataService {
|
|
|
1058
1069
|
* Used to determine if the component received grouped data.
|
|
1059
1070
|
*/
|
|
1060
1071
|
isGrouped(data) {
|
|
1061
|
-
|
|
1062
|
-
// https://www.telerik.com/kendo-angular-ui/components/dataquery/api/GroupResult/
|
|
1063
|
-
return (isPresent(data) && data.length !== 0) && isPresent(data[0]) && hasProps(data[0], ['aggregates', 'field', 'items', 'value']);
|
|
1072
|
+
return isGroupedData(data);
|
|
1064
1073
|
}
|
|
1065
1074
|
/**
|
|
1066
1075
|
* @hidden
|
|
@@ -1911,6 +1920,7 @@ class ListComponent {
|
|
|
1911
1920
|
zone;
|
|
1912
1921
|
renderer;
|
|
1913
1922
|
localization;
|
|
1923
|
+
injector;
|
|
1914
1924
|
selected = [];
|
|
1915
1925
|
focused = -1;
|
|
1916
1926
|
textField;
|
|
@@ -1927,10 +1937,12 @@ class ListComponent {
|
|
|
1927
1937
|
type = 'list';
|
|
1928
1938
|
checkboxes = { enabled: false };
|
|
1929
1939
|
ariaLive;
|
|
1940
|
+
ariaLabel;
|
|
1930
1941
|
isMultiselect;
|
|
1931
1942
|
isActionSheetExpanded;
|
|
1932
1943
|
showStickyHeader;
|
|
1933
1944
|
rowWidth;
|
|
1945
|
+
columnsWidths;
|
|
1934
1946
|
customItemTemplate;
|
|
1935
1947
|
text;
|
|
1936
1948
|
allowCustom;
|
|
@@ -1955,12 +1967,12 @@ class ListComponent {
|
|
|
1955
1967
|
}
|
|
1956
1968
|
set size(size) {
|
|
1957
1969
|
if (this.type === 'list') {
|
|
1958
|
-
this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this.
|
|
1970
|
+
this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this._size));
|
|
1959
1971
|
if (size) {
|
|
1960
1972
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('list', size));
|
|
1961
1973
|
}
|
|
1962
|
-
this._size = size;
|
|
1963
1974
|
}
|
|
1975
|
+
this._size = size;
|
|
1964
1976
|
}
|
|
1965
1977
|
get size() {
|
|
1966
1978
|
return this._size;
|
|
@@ -2022,7 +2034,7 @@ class ListComponent {
|
|
|
2022
2034
|
return `${this.size ? getSizeClass('checkbox', this.size) : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;
|
|
2023
2035
|
}
|
|
2024
2036
|
/* tslint:disable:member-ordering */
|
|
2025
|
-
constructor(dataService, wrapper, selectionService, disabledItemsService, cdr, zone, renderer, localization) {
|
|
2037
|
+
constructor(dataService, wrapper, selectionService, disabledItemsService, cdr, zone, renderer, localization, injector) {
|
|
2026
2038
|
this.dataService = dataService;
|
|
2027
2039
|
this.wrapper = wrapper;
|
|
2028
2040
|
this.selectionService = selectionService;
|
|
@@ -2031,6 +2043,7 @@ class ListComponent {
|
|
|
2031
2043
|
this.zone = zone;
|
|
2032
2044
|
this.renderer = renderer;
|
|
2033
2045
|
this.localization = localization;
|
|
2046
|
+
this.injector = injector;
|
|
2034
2047
|
this.selectSubscription = merge(this.selectionService.onSelect.pipe(map((args) => args.indices[0])), this.selectionService.onFocus)
|
|
2035
2048
|
.pipe(
|
|
2036
2049
|
// handle only the very last onSelect/onFocus emission
|
|
@@ -2273,6 +2286,10 @@ class ListComponent {
|
|
|
2273
2286
|
isItemSelected(index) {
|
|
2274
2287
|
return this.selectionService.isSelected(index) || null;
|
|
2275
2288
|
}
|
|
2289
|
+
itemAriaSelected(index) {
|
|
2290
|
+
const selected = this.isItemSelected(index);
|
|
2291
|
+
return this.type === 'list' ? (selected ?? false) : selected;
|
|
2292
|
+
}
|
|
2276
2293
|
get isDisabledDefaultItem() {
|
|
2277
2294
|
return this.disabledItemsService.isItemDisabled(this.defaultItem);
|
|
2278
2295
|
}
|
|
@@ -2284,8 +2301,10 @@ class ListComponent {
|
|
|
2284
2301
|
*/
|
|
2285
2302
|
setOverflow() {
|
|
2286
2303
|
if (this.virtual) {
|
|
2287
|
-
|
|
2288
|
-
|
|
2304
|
+
afterNextRender(() => {
|
|
2305
|
+
const overflow = this.hasVirtualScrollbar() ? 'scroll' : 'hidden';
|
|
2306
|
+
this.renderer.setStyle(this.content.nativeElement, 'overflow-y', overflow);
|
|
2307
|
+
}, { injector: this.injector });
|
|
2289
2308
|
}
|
|
2290
2309
|
}
|
|
2291
2310
|
/**
|
|
@@ -2299,7 +2318,7 @@ class ListComponent {
|
|
|
2299
2318
|
positionItems() {
|
|
2300
2319
|
this.items.forEach((item, index) => {
|
|
2301
2320
|
const offsetY = (index + this.startFrom) * this.virtual.itemHeight;
|
|
2302
|
-
this.renderer.setStyle(item.element.nativeElement, "transform", `translateY(${offsetY}px`);
|
|
2321
|
+
this.renderer.setStyle(item.element.nativeElement, "transform", `translateY(${offsetY}px)`);
|
|
2303
2322
|
});
|
|
2304
2323
|
}
|
|
2305
2324
|
setComponentClasses() {
|
|
@@ -2311,13 +2330,16 @@ class ListComponent {
|
|
|
2311
2330
|
}
|
|
2312
2331
|
if (this.type === 'dropdowngrid') {
|
|
2313
2332
|
this.renderer.setStyle(this.wrapper.nativeElement, 'overflow-y', 'scroll');
|
|
2333
|
+
if (this.size) {
|
|
2334
|
+
this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this.size));
|
|
2335
|
+
}
|
|
2314
2336
|
}
|
|
2315
2337
|
if (isPresent(this.virtual)) {
|
|
2316
2338
|
this.renderer.addClass(this.wrapper.nativeElement, this.listVirtualClass);
|
|
2317
2339
|
}
|
|
2318
2340
|
}
|
|
2319
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2320
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ListComponent, isStandalone: true, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", rowWidth: "rowWidth", customItemTemplate: "customItemTemplate", text: "text", allowCustom: "allowCustom", defaultItem: "defaultItem", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
2342
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ListComponent, isStandalone: true, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", ariaLabel: "ariaLabel", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", rowWidth: "rowWidth", columnsWidths: "columnsWidths", customItemTemplate: "customItemTemplate", text: "text", allowCustom: "allowCustom", defaultItem: "defaultItem", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2321
2343
|
@if (defaultItem && !template) {
|
|
2322
2344
|
<div
|
|
2323
2345
|
class="k-list-optionlabel"
|
|
@@ -2387,11 +2409,12 @@ class ListComponent {
|
|
|
2387
2409
|
[style.maxHeight.px]="height"
|
|
2388
2410
|
unselectable="on"
|
|
2389
2411
|
(scroll)="popupListScroll.emit($event)"
|
|
2390
|
-
[attr.role]="dataService.grouped ? 'listbox' : null"
|
|
2391
|
-
[attr.id]="dataService.grouped ? id : null"
|
|
2392
|
-
[attr.aria-live]="dataService.grouped ? ariaLive : null"
|
|
2393
|
-
[attr.aria-multiselectable]="dataService.grouped ? isMultiselect : null"
|
|
2394
|
-
[attr.aria-hidden]="dataService.grouped ? !show : null"
|
|
2412
|
+
[attr.role]="(dataService.grouped && type === 'list') ? 'listbox' : null"
|
|
2413
|
+
[attr.id]="(dataService.grouped && type === 'list') ? id : null"
|
|
2414
|
+
[attr.aria-live]="(dataService.grouped && type === 'list') ? ariaLive : null"
|
|
2415
|
+
[attr.aria-multiselectable]="(dataService.grouped && type === 'list') ? isMultiselect : null"
|
|
2416
|
+
[attr.aria-hidden]="(dataService.grouped && type === 'list') ? (!show ? true : null) : null"
|
|
2417
|
+
[attr.aria-label]="(dataService.grouped && type === 'list') ? (ariaLabel || null) : null"
|
|
2395
2418
|
>
|
|
2396
2419
|
@if (!dataService.grouped) {
|
|
2397
2420
|
<ul #list
|
|
@@ -2400,7 +2423,8 @@ class ListComponent {
|
|
|
2400
2423
|
[attr.id]="id"
|
|
2401
2424
|
[attr.aria-live]="ariaLive"
|
|
2402
2425
|
[attr.aria-multiselectable]="isMultiselect"
|
|
2403
|
-
[attr.aria-hidden]="!show"
|
|
2426
|
+
[attr.aria-hidden]="!show ? true : null"
|
|
2427
|
+
[attr.aria-label]="ariaLabel || null">
|
|
2404
2428
|
@for (dataItem of data; track $index; let itemIndex = $index) {
|
|
2405
2429
|
<li
|
|
2406
2430
|
role="option"
|
|
@@ -2411,7 +2435,7 @@ class ListComponent {
|
|
|
2411
2435
|
[multipleSelection]="multipleSelection"
|
|
2412
2436
|
[attr.id]="optionPrefix + '-' + itemIndex"
|
|
2413
2437
|
[attr.tabIndex]="-1"
|
|
2414
|
-
[attr.aria-selected]="
|
|
2438
|
+
[attr.aria-selected]="itemAriaSelected(itemIndex)"
|
|
2415
2439
|
[class]="listItemClass"
|
|
2416
2440
|
[ngClass]="{
|
|
2417
2441
|
'k-disabled': isDisabled(itemIndex),
|
|
@@ -2452,7 +2476,7 @@ class ListComponent {
|
|
|
2452
2476
|
</ul>
|
|
2453
2477
|
}
|
|
2454
2478
|
|
|
2455
|
-
@if (dataService.grouped) {
|
|
2479
|
+
@if (dataService.grouped && type === 'list') {
|
|
2456
2480
|
<ng-container #list>
|
|
2457
2481
|
@for (dataItem of groupedData; track dataItem.groupIndex) {
|
|
2458
2482
|
<ul
|
|
@@ -2499,7 +2523,7 @@ class ListComponent {
|
|
|
2499
2523
|
[attr.absolute-index]="item.index"
|
|
2500
2524
|
[attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
|
|
2501
2525
|
[attr.tabIndex]="-1"
|
|
2502
|
-
[attr.aria-selected]="
|
|
2526
|
+
[attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
|
|
2503
2527
|
[class]="listItemClass"
|
|
2504
2528
|
[ngClass]="{
|
|
2505
2529
|
'k-disabled': isDisabled(item.offsetIndex),
|
|
@@ -2529,14 +2553,96 @@ class ListComponent {
|
|
|
2529
2553
|
}
|
|
2530
2554
|
</ng-container>
|
|
2531
2555
|
}
|
|
2556
|
+
|
|
2557
|
+
@if (dataService.grouped && type === 'dropdowngrid') {
|
|
2558
|
+
<ul #list
|
|
2559
|
+
[attr.role]="'listbox'"
|
|
2560
|
+
[class]="listClass"
|
|
2561
|
+
[attr.id]="id"
|
|
2562
|
+
[attr.aria-live]="ariaLive"
|
|
2563
|
+
[attr.aria-label]="ariaLabel || null">
|
|
2564
|
+
@if (columnsWidths?.length) {
|
|
2565
|
+
<div
|
|
2566
|
+
role="presentation"
|
|
2567
|
+
aria-hidden="true"
|
|
2568
|
+
[style.display]="'table-column-group'"
|
|
2569
|
+
>
|
|
2570
|
+
@for (columnWidth of columnsWidths; track $index) {
|
|
2571
|
+
<div [style.display]="'table-column'" [style.width.px]="columnWidth ?? null"></div>
|
|
2572
|
+
}
|
|
2573
|
+
</div>
|
|
2574
|
+
}
|
|
2575
|
+
@for (dataItem of groupedData; track dataItem.groupIndex) {
|
|
2576
|
+
@if (dataItem.header) {
|
|
2577
|
+
<li
|
|
2578
|
+
role="presentation"
|
|
2579
|
+
[class]="listGroupItemClass"
|
|
2580
|
+
[attr.group-index]="dataItem.index"
|
|
2581
|
+
[style.width.px]="rowWidth ?? null"
|
|
2582
|
+
>
|
|
2583
|
+
<span [class]="listGroupItemTextClass">
|
|
2584
|
+
@if (groupTemplate) {
|
|
2585
|
+
<ng-template
|
|
2586
|
+
[templateContext]="{
|
|
2587
|
+
templateRef: groupTemplate.templateRef,
|
|
2588
|
+
$implicit: dataItem.value
|
|
2589
|
+
}">
|
|
2590
|
+
</ng-template>
|
|
2591
|
+
}
|
|
2592
|
+
@if (!groupTemplate) {
|
|
2593
|
+
{{ dataItem.value }}
|
|
2594
|
+
}
|
|
2595
|
+
</span>
|
|
2596
|
+
</li>
|
|
2597
|
+
}
|
|
2598
|
+
@for (item of dataItem.items; track item.offsetIndex) {
|
|
2599
|
+
<li
|
|
2600
|
+
role="option"
|
|
2601
|
+
kendoDropDownsSelectable
|
|
2602
|
+
[height]="virtual?.itemHeight"
|
|
2603
|
+
[index]="item.offsetIndex"
|
|
2604
|
+
[multipleSelection]="multipleSelection"
|
|
2605
|
+
[attr.absolute-index]="item.index"
|
|
2606
|
+
[attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
|
|
2607
|
+
[attr.tabIndex]="-1"
|
|
2608
|
+
[attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
|
|
2609
|
+
[class]="listItemClass"
|
|
2610
|
+
[ngClass]="{
|
|
2611
|
+
'k-disabled': isDisabled(item.offsetIndex),
|
|
2612
|
+
'k-table-alt-row': isAltRow(item.index - 1)
|
|
2613
|
+
}"
|
|
2614
|
+
[style.width.px]="rowWidth ?? null">
|
|
2615
|
+
@if (template) {
|
|
2616
|
+
<ng-template
|
|
2617
|
+
[templateContext]="{
|
|
2618
|
+
templateRef: template.templateRef,
|
|
2619
|
+
$implicit: item.value
|
|
2620
|
+
}">
|
|
2621
|
+
</ng-template>
|
|
2622
|
+
}
|
|
2623
|
+
@if (!template) {
|
|
2624
|
+
<span class="k-list-item-text">{{ getText(item.value) }}</span>
|
|
2625
|
+
}
|
|
2626
|
+
</li>
|
|
2627
|
+
}
|
|
2628
|
+
}
|
|
2629
|
+
@if (!virtual) {
|
|
2630
|
+
<kendo-resize-sensor
|
|
2631
|
+
(resize)="listResize.emit()"
|
|
2632
|
+
>
|
|
2633
|
+
</kendo-resize-sensor>
|
|
2634
|
+
}
|
|
2635
|
+
</ul>
|
|
2636
|
+
}
|
|
2532
2637
|
@if (virtual) {
|
|
2533
|
-
<div #virtualContainer class="k-height-container"
|
|
2638
|
+
<div #virtualContainer class="k-height-container">
|
|
2534
2639
|
<div [style.height.px]="scrollHeight">
|
|
2535
2640
|
<kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
|
|
2536
2641
|
</div>
|
|
2537
2642
|
</div>
|
|
2538
2643
|
}
|
|
2539
2644
|
</div>
|
|
2645
|
+
<ng-content select=".k-no-data"></ng-content>
|
|
2540
2646
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: ListItemDirective, selector: "\"li[role=option], li[role=group], li[role=presentation]\"" }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
|
|
2541
2647
|
}
|
|
2542
2648
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListComponent, decorators: [{
|
|
@@ -2613,11 +2719,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2613
2719
|
[style.maxHeight.px]="height"
|
|
2614
2720
|
unselectable="on"
|
|
2615
2721
|
(scroll)="popupListScroll.emit($event)"
|
|
2616
|
-
[attr.role]="dataService.grouped ? 'listbox' : null"
|
|
2617
|
-
[attr.id]="dataService.grouped ? id : null"
|
|
2618
|
-
[attr.aria-live]="dataService.grouped ? ariaLive : null"
|
|
2619
|
-
[attr.aria-multiselectable]="dataService.grouped ? isMultiselect : null"
|
|
2620
|
-
[attr.aria-hidden]="dataService.grouped ? !show : null"
|
|
2722
|
+
[attr.role]="(dataService.grouped && type === 'list') ? 'listbox' : null"
|
|
2723
|
+
[attr.id]="(dataService.grouped && type === 'list') ? id : null"
|
|
2724
|
+
[attr.aria-live]="(dataService.grouped && type === 'list') ? ariaLive : null"
|
|
2725
|
+
[attr.aria-multiselectable]="(dataService.grouped && type === 'list') ? isMultiselect : null"
|
|
2726
|
+
[attr.aria-hidden]="(dataService.grouped && type === 'list') ? (!show ? true : null) : null"
|
|
2727
|
+
[attr.aria-label]="(dataService.grouped && type === 'list') ? (ariaLabel || null) : null"
|
|
2621
2728
|
>
|
|
2622
2729
|
@if (!dataService.grouped) {
|
|
2623
2730
|
<ul #list
|
|
@@ -2626,7 +2733,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2626
2733
|
[attr.id]="id"
|
|
2627
2734
|
[attr.aria-live]="ariaLive"
|
|
2628
2735
|
[attr.aria-multiselectable]="isMultiselect"
|
|
2629
|
-
[attr.aria-hidden]="!show"
|
|
2736
|
+
[attr.aria-hidden]="!show ? true : null"
|
|
2737
|
+
[attr.aria-label]="ariaLabel || null">
|
|
2630
2738
|
@for (dataItem of data; track $index; let itemIndex = $index) {
|
|
2631
2739
|
<li
|
|
2632
2740
|
role="option"
|
|
@@ -2637,7 +2745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2637
2745
|
[multipleSelection]="multipleSelection"
|
|
2638
2746
|
[attr.id]="optionPrefix + '-' + itemIndex"
|
|
2639
2747
|
[attr.tabIndex]="-1"
|
|
2640
|
-
[attr.aria-selected]="
|
|
2748
|
+
[attr.aria-selected]="itemAriaSelected(itemIndex)"
|
|
2641
2749
|
[class]="listItemClass"
|
|
2642
2750
|
[ngClass]="{
|
|
2643
2751
|
'k-disabled': isDisabled(itemIndex),
|
|
@@ -2678,7 +2786,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2678
2786
|
</ul>
|
|
2679
2787
|
}
|
|
2680
2788
|
|
|
2681
|
-
@if (dataService.grouped) {
|
|
2789
|
+
@if (dataService.grouped && type === 'list') {
|
|
2682
2790
|
<ng-container #list>
|
|
2683
2791
|
@for (dataItem of groupedData; track dataItem.groupIndex) {
|
|
2684
2792
|
<ul
|
|
@@ -2725,7 +2833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2725
2833
|
[attr.absolute-index]="item.index"
|
|
2726
2834
|
[attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
|
|
2727
2835
|
[attr.tabIndex]="-1"
|
|
2728
|
-
[attr.aria-selected]="
|
|
2836
|
+
[attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
|
|
2729
2837
|
[class]="listItemClass"
|
|
2730
2838
|
[ngClass]="{
|
|
2731
2839
|
'k-disabled': isDisabled(item.offsetIndex),
|
|
@@ -2755,19 +2863,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2755
2863
|
}
|
|
2756
2864
|
</ng-container>
|
|
2757
2865
|
}
|
|
2866
|
+
|
|
2867
|
+
@if (dataService.grouped && type === 'dropdowngrid') {
|
|
2868
|
+
<ul #list
|
|
2869
|
+
[attr.role]="'listbox'"
|
|
2870
|
+
[class]="listClass"
|
|
2871
|
+
[attr.id]="id"
|
|
2872
|
+
[attr.aria-live]="ariaLive"
|
|
2873
|
+
[attr.aria-label]="ariaLabel || null">
|
|
2874
|
+
@if (columnsWidths?.length) {
|
|
2875
|
+
<div
|
|
2876
|
+
role="presentation"
|
|
2877
|
+
aria-hidden="true"
|
|
2878
|
+
[style.display]="'table-column-group'"
|
|
2879
|
+
>
|
|
2880
|
+
@for (columnWidth of columnsWidths; track $index) {
|
|
2881
|
+
<div [style.display]="'table-column'" [style.width.px]="columnWidth ?? null"></div>
|
|
2882
|
+
}
|
|
2883
|
+
</div>
|
|
2884
|
+
}
|
|
2885
|
+
@for (dataItem of groupedData; track dataItem.groupIndex) {
|
|
2886
|
+
@if (dataItem.header) {
|
|
2887
|
+
<li
|
|
2888
|
+
role="presentation"
|
|
2889
|
+
[class]="listGroupItemClass"
|
|
2890
|
+
[attr.group-index]="dataItem.index"
|
|
2891
|
+
[style.width.px]="rowWidth ?? null"
|
|
2892
|
+
>
|
|
2893
|
+
<span [class]="listGroupItemTextClass">
|
|
2894
|
+
@if (groupTemplate) {
|
|
2895
|
+
<ng-template
|
|
2896
|
+
[templateContext]="{
|
|
2897
|
+
templateRef: groupTemplate.templateRef,
|
|
2898
|
+
$implicit: dataItem.value
|
|
2899
|
+
}">
|
|
2900
|
+
</ng-template>
|
|
2901
|
+
}
|
|
2902
|
+
@if (!groupTemplate) {
|
|
2903
|
+
{{ dataItem.value }}
|
|
2904
|
+
}
|
|
2905
|
+
</span>
|
|
2906
|
+
</li>
|
|
2907
|
+
}
|
|
2908
|
+
@for (item of dataItem.items; track item.offsetIndex) {
|
|
2909
|
+
<li
|
|
2910
|
+
role="option"
|
|
2911
|
+
kendoDropDownsSelectable
|
|
2912
|
+
[height]="virtual?.itemHeight"
|
|
2913
|
+
[index]="item.offsetIndex"
|
|
2914
|
+
[multipleSelection]="multipleSelection"
|
|
2915
|
+
[attr.absolute-index]="item.index"
|
|
2916
|
+
[attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
|
|
2917
|
+
[attr.tabIndex]="-1"
|
|
2918
|
+
[attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
|
|
2919
|
+
[class]="listItemClass"
|
|
2920
|
+
[ngClass]="{
|
|
2921
|
+
'k-disabled': isDisabled(item.offsetIndex),
|
|
2922
|
+
'k-table-alt-row': isAltRow(item.index - 1)
|
|
2923
|
+
}"
|
|
2924
|
+
[style.width.px]="rowWidth ?? null">
|
|
2925
|
+
@if (template) {
|
|
2926
|
+
<ng-template
|
|
2927
|
+
[templateContext]="{
|
|
2928
|
+
templateRef: template.templateRef,
|
|
2929
|
+
$implicit: item.value
|
|
2930
|
+
}">
|
|
2931
|
+
</ng-template>
|
|
2932
|
+
}
|
|
2933
|
+
@if (!template) {
|
|
2934
|
+
<span class="k-list-item-text">{{ getText(item.value) }}</span>
|
|
2935
|
+
}
|
|
2936
|
+
</li>
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2939
|
+
@if (!virtual) {
|
|
2940
|
+
<kendo-resize-sensor
|
|
2941
|
+
(resize)="listResize.emit()"
|
|
2942
|
+
>
|
|
2943
|
+
</kendo-resize-sensor>
|
|
2944
|
+
}
|
|
2945
|
+
</ul>
|
|
2946
|
+
}
|
|
2758
2947
|
@if (virtual) {
|
|
2759
|
-
<div #virtualContainer class="k-height-container"
|
|
2948
|
+
<div #virtualContainer class="k-height-container">
|
|
2760
2949
|
<div [style.height.px]="scrollHeight">
|
|
2761
2950
|
<kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
|
|
2762
2951
|
</div>
|
|
2763
2952
|
</div>
|
|
2764
2953
|
}
|
|
2765
2954
|
</div>
|
|
2955
|
+
<ng-content select=".k-no-data"></ng-content>
|
|
2766
2956
|
`,
|
|
2767
2957
|
standalone: true,
|
|
2768
2958
|
imports: [NgStyle, TemplateContextDirective, ListItemDirective, SelectableDirective, NgClass, ResizeSensorComponent]
|
|
2769
2959
|
}]
|
|
2770
|
-
}], ctorParameters: () => [{ type: DataService }, { type: i0.ElementRef }, { type: SelectionService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }], propDecorators: { selected: [{
|
|
2960
|
+
}], ctorParameters: () => [{ type: DataService }, { type: i0.ElementRef }, { type: SelectionService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.Injector }], propDecorators: { selected: [{
|
|
2771
2961
|
type: Input
|
|
2772
2962
|
}], focused: [{
|
|
2773
2963
|
type: Input
|
|
@@ -2799,6 +2989,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2799
2989
|
type: Input
|
|
2800
2990
|
}], ariaLive: [{
|
|
2801
2991
|
type: Input
|
|
2992
|
+
}], ariaLabel: [{
|
|
2993
|
+
type: Input
|
|
2802
2994
|
}], isMultiselect: [{
|
|
2803
2995
|
type: Input
|
|
2804
2996
|
}], isActionSheetExpanded: [{
|
|
@@ -2807,6 +2999,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2807
2999
|
type: Input
|
|
2808
3000
|
}], rowWidth: [{
|
|
2809
3001
|
type: Input
|
|
3002
|
+
}], columnsWidths: [{
|
|
3003
|
+
type: Input
|
|
2810
3004
|
}], customItemTemplate: [{
|
|
2811
3005
|
type: Input
|
|
2812
3006
|
}], text: [{
|
|
@@ -2878,6 +3072,7 @@ class AdaptiveRendererComponent {
|
|
|
2878
3072
|
placeholder;
|
|
2879
3073
|
searchBarValue;
|
|
2880
3074
|
filterable;
|
|
3075
|
+
showListContainer = true;
|
|
2881
3076
|
closePopup = new EventEmitter();
|
|
2882
3077
|
textInputChange = new EventEmitter();
|
|
2883
3078
|
navigate = new EventEmitter();
|
|
@@ -2890,6 +3085,7 @@ class AdaptiveRendererComponent {
|
|
|
2890
3085
|
}
|
|
2891
3086
|
animationDuration = animationDuration;
|
|
2892
3087
|
checkIcon = checkIcon;
|
|
3088
|
+
searchIcon = searchIcon;
|
|
2893
3089
|
expanded = false;
|
|
2894
3090
|
messageFor(key) {
|
|
2895
3091
|
return this.localization.get(key);
|
|
@@ -2915,7 +3111,7 @@ class AdaptiveRendererComponent {
|
|
|
2915
3111
|
return this.adaptiveService.size;
|
|
2916
3112
|
}
|
|
2917
3113
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AdaptiveRendererComponent, deps: [{ token: i1.LocalizationService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2918
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AdaptiveRendererComponent, isStandalone: true, selector: "kendo-adaptive-renderer", inputs: { title: "title", subtitle: "subtitle", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", text: "text", placeholder: "placeholder", searchBarValue: "searchBarValue", filterable: "filterable" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
|
|
3114
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AdaptiveRendererComponent, isStandalone: true, selector: "kendo-adaptive-renderer", inputs: { title: "title", subtitle: "subtitle", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", text: "text", placeholder: "placeholder", searchBarValue: "searchBarValue", filterable: "filterable", showListContainer: "showListContainer" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
|
|
2919
3115
|
<kendo-actionsheet
|
|
2920
3116
|
#actionSheet
|
|
2921
3117
|
[animation]="{ duration: animationDuration }"
|
|
@@ -2934,7 +3130,7 @@ class AdaptiveRendererComponent {
|
|
|
2934
3130
|
(collapse)="closePopup.emit()"
|
|
2935
3131
|
>
|
|
2936
3132
|
<ng-template kendoActionSheetTemplate>
|
|
2937
|
-
<div class="k-
|
|
3133
|
+
<div class="k-actionsheet-titlebar">
|
|
2938
3134
|
<div class="k-actionsheet-titlebar-group">
|
|
2939
3135
|
<div class="k-actionsheet-title">
|
|
2940
3136
|
@if (title) {
|
|
@@ -2950,6 +3146,7 @@ class AdaptiveRendererComponent {
|
|
|
2950
3146
|
icon="check"
|
|
2951
3147
|
type="button"
|
|
2952
3148
|
[attr.title]="messageFor('adaptiveCloseButtonTitle')"
|
|
3149
|
+
[attr.aria-label]="messageFor('adaptiveCloseButtonTitle')"
|
|
2953
3150
|
[svgIcon]="checkIcon"
|
|
2954
3151
|
fillMode="flat"
|
|
2955
3152
|
themeColor="primary"
|
|
@@ -2967,13 +3164,13 @@ class AdaptiveRendererComponent {
|
|
|
2967
3164
|
[value]="searchBarValue || ''"
|
|
2968
3165
|
size="large"
|
|
2969
3166
|
[placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
|
|
2970
|
-
|
|
3167
|
+
[inputAttributes]="{'aria-label': title}"
|
|
2971
3168
|
autocomplete="off"
|
|
2972
3169
|
(valueChange)="onValueChange($event)"
|
|
2973
3170
|
>
|
|
2974
3171
|
@if (filterable) {
|
|
2975
3172
|
<ng-template kendoTextBoxPrefixTemplate>
|
|
2976
|
-
<kendo-icon name="search"></kendo-icon>
|
|
3173
|
+
<kendo-icon-wrapper name="search" [svgIcon]="searchIcon"></kendo-icon-wrapper>
|
|
2977
3174
|
</ng-template>
|
|
2978
3175
|
}
|
|
2979
3176
|
</kendo-textbox>
|
|
@@ -2981,13 +3178,17 @@ class AdaptiveRendererComponent {
|
|
|
2981
3178
|
}
|
|
2982
3179
|
</div>
|
|
2983
3180
|
<div class="k-actionsheet-content">
|
|
3181
|
+
@if (showListContainer) {
|
|
2984
3182
|
<div class="k-list-container">
|
|
2985
3183
|
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
2986
3184
|
</div>
|
|
3185
|
+
} @else {
|
|
3186
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
3187
|
+
}
|
|
2987
3188
|
</div>
|
|
2988
3189
|
</ng-template>
|
|
2989
3190
|
</kendo-actionsheet>
|
|
2990
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type:
|
|
3191
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
2991
3192
|
}
|
|
2992
3193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
|
|
2993
3194
|
type: Component,
|
|
@@ -3012,7 +3213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3012
3213
|
(collapse)="closePopup.emit()"
|
|
3013
3214
|
>
|
|
3014
3215
|
<ng-template kendoActionSheetTemplate>
|
|
3015
|
-
<div class="k-
|
|
3216
|
+
<div class="k-actionsheet-titlebar">
|
|
3016
3217
|
<div class="k-actionsheet-titlebar-group">
|
|
3017
3218
|
<div class="k-actionsheet-title">
|
|
3018
3219
|
@if (title) {
|
|
@@ -3028,6 +3229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3028
3229
|
icon="check"
|
|
3029
3230
|
type="button"
|
|
3030
3231
|
[attr.title]="messageFor('adaptiveCloseButtonTitle')"
|
|
3232
|
+
[attr.aria-label]="messageFor('adaptiveCloseButtonTitle')"
|
|
3031
3233
|
[svgIcon]="checkIcon"
|
|
3032
3234
|
fillMode="flat"
|
|
3033
3235
|
themeColor="primary"
|
|
@@ -3045,13 +3247,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3045
3247
|
[value]="searchBarValue || ''"
|
|
3046
3248
|
size="large"
|
|
3047
3249
|
[placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
|
|
3048
|
-
|
|
3250
|
+
[inputAttributes]="{'aria-label': title}"
|
|
3049
3251
|
autocomplete="off"
|
|
3050
3252
|
(valueChange)="onValueChange($event)"
|
|
3051
3253
|
>
|
|
3052
3254
|
@if (filterable) {
|
|
3053
3255
|
<ng-template kendoTextBoxPrefixTemplate>
|
|
3054
|
-
<kendo-icon name="search"></kendo-icon>
|
|
3256
|
+
<kendo-icon-wrapper name="search" [svgIcon]="searchIcon"></kendo-icon-wrapper>
|
|
3055
3257
|
</ng-template>
|
|
3056
3258
|
}
|
|
3057
3259
|
</kendo-textbox>
|
|
@@ -3059,15 +3261,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3059
3261
|
}
|
|
3060
3262
|
</div>
|
|
3061
3263
|
<div class="k-actionsheet-content">
|
|
3264
|
+
@if (showListContainer) {
|
|
3062
3265
|
<div class="k-list-container">
|
|
3063
3266
|
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
3064
3267
|
</div>
|
|
3268
|
+
} @else {
|
|
3269
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
3270
|
+
}
|
|
3065
3271
|
</div>
|
|
3066
3272
|
</ng-template>
|
|
3067
3273
|
</kendo-actionsheet>
|
|
3068
3274
|
`,
|
|
3069
3275
|
standalone: true,
|
|
3070
|
-
imports: [ActionSheetComponent, ActionSheetTemplateDirective, ButtonComponent, TextBoxComponent, TextBoxPrefixTemplateDirective,
|
|
3276
|
+
imports: [ActionSheetComponent, ActionSheetTemplateDirective, ButtonComponent, TextBoxComponent, TextBoxPrefixTemplateDirective, IconWrapperComponent, NgTemplateOutlet]
|
|
3071
3277
|
}]
|
|
3072
3278
|
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i7.AdaptiveService }], propDecorators: { title: [{
|
|
3073
3279
|
type: Input
|
|
@@ -3085,6 +3291,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3085
3291
|
type: Input
|
|
3086
3292
|
}], filterable: [{
|
|
3087
3293
|
type: Input
|
|
3294
|
+
}], showListContainer: [{
|
|
3295
|
+
type: Input
|
|
3088
3296
|
}], closePopup: [{
|
|
3089
3297
|
type: Output
|
|
3090
3298
|
}], textInputChange: [{
|
|
@@ -3219,15 +3427,15 @@ class Messages extends ComponentMessages {
|
|
|
3219
3427
|
*/
|
|
3220
3428
|
clearTitle;
|
|
3221
3429
|
/**
|
|
3222
|
-
|
|
3430
|
+
* The text displayed for the check-all checkbox. Available for MultiSelectTree.
|
|
3223
3431
|
*/
|
|
3224
3432
|
checkAllText;
|
|
3225
3433
|
/**
|
|
3226
|
-
|
|
3434
|
+
* The text set as aria-label on the select button. Available for DropDownList, ComboBox, MultiColumnComboBox, and DropDownTree.
|
|
3227
3435
|
*/
|
|
3228
3436
|
selectButtonText;
|
|
3229
3437
|
/**
|
|
3230
|
-
|
|
3438
|
+
* The text set as aria-label on the list filter input. Available for DropDownList, DropDownTree, and MultiSelectTree.
|
|
3231
3439
|
*/
|
|
3232
3440
|
filterInputLabel;
|
|
3233
3441
|
/**
|
|
@@ -3239,11 +3447,15 @@ class Messages extends ComponentMessages {
|
|
|
3239
3447
|
*/
|
|
3240
3448
|
adaptiveCloseButtonTitle;
|
|
3241
3449
|
/**
|
|
3242
|
-
|
|
3450
|
+
* The text for the input's placeholder when filtering is enabled. Available for DropDownTree and MultiSelectTree.
|
|
3243
3451
|
*/
|
|
3244
3452
|
filterInputPlaceholder;
|
|
3245
3453
|
/**
|
|
3246
|
-
|
|
3454
|
+
* The accessible label of the tag list element that contains the selected items. Available for MultiSelect and MultiSelectTree.
|
|
3455
|
+
*/
|
|
3456
|
+
chipListLabel;
|
|
3457
|
+
/**
|
|
3458
|
+
* The text displayed when the user types a custom value that is not in the list of options. Available for ComboBox and MultiSelect.
|
|
3247
3459
|
*
|
|
3248
3460
|
* The text includes a localizable string and the custom value.
|
|
3249
3461
|
* For example, when adding a custom value **Test**, the default text is **Use "Test"**.
|
|
@@ -3252,8 +3464,16 @@ class Messages extends ComponentMessages {
|
|
|
3252
3464
|
* Use `{customValue}` to insert the value, for example, **Add: {customValue}**.
|
|
3253
3465
|
*/
|
|
3254
3466
|
useCustomValueText;
|
|
3467
|
+
/**
|
|
3468
|
+
* The accessible label of the listbox that contains the list of options. Available for DropDownList, ComboBox, MultiColumnComboBox, AutoComplete, and MultiSelect.
|
|
3469
|
+
*/
|
|
3470
|
+
listboxLabel;
|
|
3471
|
+
/**
|
|
3472
|
+
* The accessible label of the input element. Available for MultiSelectTree.
|
|
3473
|
+
*/
|
|
3474
|
+
inputLabel;
|
|
3255
3475
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
3256
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: Messages, isStandalone: true, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder", useCustomValueText: "useCustomValueText" }, usesInheritance: true, ngImport: i0 });
|
|
3476
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: Messages, isStandalone: true, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder", chipListLabel: "chipListLabel", useCustomValueText: "useCustomValueText", listboxLabel: "listboxLabel", inputLabel: "inputLabel" }, usesInheritance: true, ngImport: i0 });
|
|
3257
3477
|
}
|
|
3258
3478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Messages, decorators: [{
|
|
3259
3479
|
type: Directive
|
|
@@ -3273,8 +3493,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3273
3493
|
type: Input
|
|
3274
3494
|
}], filterInputPlaceholder: [{
|
|
3275
3495
|
type: Input
|
|
3496
|
+
}], chipListLabel: [{
|
|
3497
|
+
type: Input
|
|
3276
3498
|
}], useCustomValueText: [{
|
|
3277
3499
|
type: Input
|
|
3500
|
+
}], listboxLabel: [{
|
|
3501
|
+
type: Input
|
|
3502
|
+
}], inputLabel: [{
|
|
3503
|
+
type: Input
|
|
3278
3504
|
}] } });
|
|
3279
3505
|
|
|
3280
3506
|
/**
|
|
@@ -3431,7 +3657,7 @@ class AutoCompleteComponent {
|
|
|
3431
3657
|
* @hidden
|
|
3432
3658
|
*/
|
|
3433
3659
|
get ariaControls() {
|
|
3434
|
-
return this.isOpen ? this.listBoxId : undefined;
|
|
3660
|
+
return (!this.isAdaptive && this.isOpen) ? this.listBoxId : undefined;
|
|
3435
3661
|
}
|
|
3436
3662
|
/**
|
|
3437
3663
|
* @hidden
|
|
@@ -4485,6 +4711,9 @@ class AutoCompleteComponent {
|
|
|
4485
4711
|
|
|
4486
4712
|
i18n-adaptiveCloseButtonTitle="kendo.autocomplete.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
|
|
4487
4713
|
adaptiveCloseButtonTitle="Close"
|
|
4714
|
+
|
|
4715
|
+
i18n-listboxLabel="kendo.autocomplete.listboxLabel|The accessible label of the list of suggestions"
|
|
4716
|
+
listboxLabel="Suggestions"
|
|
4488
4717
|
>
|
|
4489
4718
|
</ng-container>
|
|
4490
4719
|
|
|
@@ -4506,9 +4735,9 @@ class AutoCompleteComponent {
|
|
|
4506
4735
|
}
|
|
4507
4736
|
<input
|
|
4508
4737
|
kendoSearchbar
|
|
4509
|
-
[ariaExpanded]="isOpen"
|
|
4738
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
4510
4739
|
[isSuggestable]="suggest"
|
|
4511
|
-
[
|
|
4740
|
+
[hasListAutocomplete]="filterable"
|
|
4512
4741
|
[isLoading]="isLoading"
|
|
4513
4742
|
[ariaControls]="ariaControls"
|
|
4514
4743
|
[id]="focusableId"
|
|
@@ -4604,24 +4833,25 @@ class AutoCompleteComponent {
|
|
|
4604
4833
|
[show]="isOpen"
|
|
4605
4834
|
[virtual]="virtual"
|
|
4606
4835
|
[showStickyHeader]="showStickyHeader"
|
|
4836
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
4607
4837
|
(pageChange)="pageChange($event)"
|
|
4608
4838
|
>
|
|
4839
|
+
<!--no-data template-->
|
|
4840
|
+
@if (data.length === 0) {
|
|
4841
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
4842
|
+
@if (noDataTemplate) {
|
|
4843
|
+
<ng-template
|
|
4844
|
+
[templateContext]="{
|
|
4845
|
+
templateRef: noDataTemplate?.templateRef
|
|
4846
|
+
}">
|
|
4847
|
+
</ng-template>
|
|
4848
|
+
}
|
|
4849
|
+
@if (!noDataTemplate) {
|
|
4850
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
4851
|
+
}
|
|
4852
|
+
</div>
|
|
4853
|
+
}
|
|
4609
4854
|
</kendo-list>
|
|
4610
|
-
<!--no-data template-->
|
|
4611
|
-
@if (data.length === 0) {
|
|
4612
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
4613
|
-
@if (noDataTemplate) {
|
|
4614
|
-
<ng-template
|
|
4615
|
-
[templateContext]="{
|
|
4616
|
-
templateRef: noDataTemplate?.templateRef
|
|
4617
|
-
}">
|
|
4618
|
-
</ng-template>
|
|
4619
|
-
}
|
|
4620
|
-
@if (!noDataTemplate) {
|
|
4621
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
4622
|
-
}
|
|
4623
|
-
</div>
|
|
4624
|
-
}
|
|
4625
4855
|
<!--footer template-->
|
|
4626
4856
|
@if (footerTemplate) {
|
|
4627
4857
|
<ng-template
|
|
@@ -4631,7 +4861,7 @@ class AutoCompleteComponent {
|
|
|
4631
4861
|
</ng-template>
|
|
4632
4862
|
}
|
|
4633
4863
|
</ng-template>
|
|
4634
|
-
`, 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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "
|
|
4864
|
+
`, 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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "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: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
4635
4865
|
}
|
|
4636
4866
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
4637
4867
|
type: Component,
|
|
@@ -4672,6 +4902,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
4672
4902
|
|
|
4673
4903
|
i18n-adaptiveCloseButtonTitle="kendo.autocomplete.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
|
|
4674
4904
|
adaptiveCloseButtonTitle="Close"
|
|
4905
|
+
|
|
4906
|
+
i18n-listboxLabel="kendo.autocomplete.listboxLabel|The accessible label of the list of suggestions"
|
|
4907
|
+
listboxLabel="Suggestions"
|
|
4675
4908
|
>
|
|
4676
4909
|
</ng-container>
|
|
4677
4910
|
|
|
@@ -4693,9 +4926,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
4693
4926
|
}
|
|
4694
4927
|
<input
|
|
4695
4928
|
kendoSearchbar
|
|
4696
|
-
[ariaExpanded]="isOpen"
|
|
4929
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
4697
4930
|
[isSuggestable]="suggest"
|
|
4698
|
-
[
|
|
4931
|
+
[hasListAutocomplete]="filterable"
|
|
4699
4932
|
[isLoading]="isLoading"
|
|
4700
4933
|
[ariaControls]="ariaControls"
|
|
4701
4934
|
[id]="focusableId"
|
|
@@ -4791,24 +5024,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
4791
5024
|
[show]="isOpen"
|
|
4792
5025
|
[virtual]="virtual"
|
|
4793
5026
|
[showStickyHeader]="showStickyHeader"
|
|
5027
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
4794
5028
|
(pageChange)="pageChange($event)"
|
|
4795
5029
|
>
|
|
5030
|
+
<!--no-data template-->
|
|
5031
|
+
@if (data.length === 0) {
|
|
5032
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
5033
|
+
@if (noDataTemplate) {
|
|
5034
|
+
<ng-template
|
|
5035
|
+
[templateContext]="{
|
|
5036
|
+
templateRef: noDataTemplate?.templateRef
|
|
5037
|
+
}">
|
|
5038
|
+
</ng-template>
|
|
5039
|
+
}
|
|
5040
|
+
@if (!noDataTemplate) {
|
|
5041
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
5042
|
+
}
|
|
5043
|
+
</div>
|
|
5044
|
+
}
|
|
4796
5045
|
</kendo-list>
|
|
4797
|
-
<!--no-data template-->
|
|
4798
|
-
@if (data.length === 0) {
|
|
4799
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
4800
|
-
@if (noDataTemplate) {
|
|
4801
|
-
<ng-template
|
|
4802
|
-
[templateContext]="{
|
|
4803
|
-
templateRef: noDataTemplate?.templateRef
|
|
4804
|
-
}">
|
|
4805
|
-
</ng-template>
|
|
4806
|
-
}
|
|
4807
|
-
@if (!noDataTemplate) {
|
|
4808
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
4809
|
-
}
|
|
4810
|
-
</div>
|
|
4811
|
-
}
|
|
4812
5046
|
<!--footer template-->
|
|
4813
5047
|
@if (footerTemplate) {
|
|
4814
5048
|
<ng-template
|
|
@@ -5092,7 +5326,7 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5092
5326
|
* @hidden
|
|
5093
5327
|
*/
|
|
5094
5328
|
get ariaControls() {
|
|
5095
|
-
return this.isOpen ? this.listBoxId : undefined;
|
|
5329
|
+
return (!this.isAdaptive && this.isOpen) ? this.listBoxId : undefined;
|
|
5096
5330
|
}
|
|
5097
5331
|
/**
|
|
5098
5332
|
* @hidden
|
|
@@ -5915,7 +6149,7 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5915
6149
|
* @hidden
|
|
5916
6150
|
*/
|
|
5917
6151
|
get selectButtonClasses() {
|
|
5918
|
-
return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''}`;
|
|
6152
|
+
return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''} ${this.disabled ? 'k-disabled' : ''}`;
|
|
5919
6153
|
}
|
|
5920
6154
|
/**
|
|
5921
6155
|
* @hidden
|
|
@@ -6182,7 +6416,7 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6182
6416
|
this.zone.run(() => {
|
|
6183
6417
|
if (valueHasChanged) {
|
|
6184
6418
|
const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
|
|
6185
|
-
if (lowerCaseMatch || unresolvedSelection) {
|
|
6419
|
+
if ((lowerCaseMatch && this.shouldResolveSuggestedItem(currentText)) || unresolvedSelection) {
|
|
6186
6420
|
this.selectionService.change(this.selectionService.focused);
|
|
6187
6421
|
}
|
|
6188
6422
|
else {
|
|
@@ -6315,6 +6549,9 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6315
6549
|
const itemText = getter(this.dataService.itemAt(focused), this.textField);
|
|
6316
6550
|
return !isPresent(itemText) ? "" : itemText.toString();
|
|
6317
6551
|
}
|
|
6552
|
+
shouldResolveSuggestedItem(currentText) {
|
|
6553
|
+
return !(this.allowCustom && this.suggest && this.focusedItemText !== currentText);
|
|
6554
|
+
}
|
|
6318
6555
|
/**
|
|
6319
6556
|
* Focuses the first match when there's text in the input field, but no focused item.
|
|
6320
6557
|
*/
|
|
@@ -6503,7 +6740,7 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6503
6740
|
this.zone.run(() => {
|
|
6504
6741
|
if (valueHasChanged) {
|
|
6505
6742
|
const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
|
|
6506
|
-
if (lowerCaseMatch || unresolvedSelection) {
|
|
6743
|
+
if ((lowerCaseMatch && this.shouldResolveSuggestedItem(currentText)) || unresolvedSelection) {
|
|
6507
6744
|
this.selectionService.change(this.selectionService.focused);
|
|
6508
6745
|
}
|
|
6509
6746
|
else {
|
|
@@ -6557,6 +6794,12 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6557
6794
|
|
|
6558
6795
|
i18n-adaptiveCloseButtonTitle="kendo.combobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
|
|
6559
6796
|
adaptiveCloseButtonTitle="Close"
|
|
6797
|
+
|
|
6798
|
+
i18n-listboxLabel="kendo.combobox.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
6799
|
+
listboxLabel="Options"
|
|
6800
|
+
|
|
6801
|
+
i18n-useCustomValueText="kendo.combobox.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
|
|
6802
|
+
useCustomValueText="{{ 'Use "{customValue}"' }}"
|
|
6560
6803
|
>
|
|
6561
6804
|
</ng-container>
|
|
6562
6805
|
|
|
@@ -6578,12 +6821,12 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6578
6821
|
}
|
|
6579
6822
|
<input
|
|
6580
6823
|
kendoSearchbar
|
|
6581
|
-
[ariaExpanded]="isOpen"
|
|
6824
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
6582
6825
|
[ariaControls]="ariaControls"
|
|
6583
6826
|
[id]="focusableId"
|
|
6584
6827
|
[isLoading]="loading"
|
|
6585
6828
|
[isSuggestable]="suggest"
|
|
6586
|
-
[
|
|
6829
|
+
[hasListAutocomplete]="filterable"
|
|
6587
6830
|
[activeDescendant]="activeDescendant"
|
|
6588
6831
|
[userInput]="text"
|
|
6589
6832
|
[suggestedText]="getSuggestion()"
|
|
@@ -6603,7 +6846,6 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6603
6846
|
<span
|
|
6604
6847
|
class="k-clear-value"
|
|
6605
6848
|
[style.visibility]="clearButtonVisibility"
|
|
6606
|
-
aria-hidden="true"
|
|
6607
6849
|
[attr.title]="messageFor('clearTitle')"
|
|
6608
6850
|
(click)="clearValue($event)"
|
|
6609
6851
|
[kendoEventsOutsideAngular]="{
|
|
@@ -6698,24 +6940,27 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6698
6940
|
[show]="isOpen"
|
|
6699
6941
|
[virtual]="virtual"
|
|
6700
6942
|
[showStickyHeader]="showStickyHeader"
|
|
6943
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
6944
|
+
[text]="text"
|
|
6945
|
+
[allowCustom]="allowCustom"
|
|
6701
6946
|
(pageChange)="pageChange($event)"
|
|
6702
6947
|
>
|
|
6948
|
+
<!--no-data template-->
|
|
6949
|
+
@if (data.length === 0) {
|
|
6950
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
6951
|
+
@if (noDataTemplate) {
|
|
6952
|
+
<ng-template
|
|
6953
|
+
[templateContext]="{
|
|
6954
|
+
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
6955
|
+
}">
|
|
6956
|
+
</ng-template>
|
|
6957
|
+
}
|
|
6958
|
+
@if (!noDataTemplate) {
|
|
6959
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
6960
|
+
}
|
|
6961
|
+
</div>
|
|
6962
|
+
}
|
|
6703
6963
|
</kendo-list>
|
|
6704
|
-
<!--no-data template-->
|
|
6705
|
-
@if (data.length === 0) {
|
|
6706
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
6707
|
-
@if (noDataTemplate) {
|
|
6708
|
-
<ng-template
|
|
6709
|
-
[templateContext]="{
|
|
6710
|
-
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
6711
|
-
}">
|
|
6712
|
-
</ng-template>
|
|
6713
|
-
}
|
|
6714
|
-
@if (!noDataTemplate) {
|
|
6715
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
6716
|
-
}
|
|
6717
|
-
</div>
|
|
6718
|
-
}
|
|
6719
6964
|
<!--footer template-->
|
|
6720
6965
|
@if (footerTemplate) {
|
|
6721
6966
|
<ng-template
|
|
@@ -6725,7 +6970,7 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6725
6970
|
</ng-template>
|
|
6726
6971
|
}
|
|
6727
6972
|
</ng-template>
|
|
6728
|
-
`, 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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "
|
|
6973
|
+
`, 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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
6729
6974
|
}
|
|
6730
6975
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
6731
6976
|
type: Component,
|
|
@@ -6770,6 +7015,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
6770
7015
|
|
|
6771
7016
|
i18n-adaptiveCloseButtonTitle="kendo.combobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
|
|
6772
7017
|
adaptiveCloseButtonTitle="Close"
|
|
7018
|
+
|
|
7019
|
+
i18n-listboxLabel="kendo.combobox.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
7020
|
+
listboxLabel="Options"
|
|
7021
|
+
|
|
7022
|
+
i18n-useCustomValueText="kendo.combobox.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
|
|
7023
|
+
useCustomValueText="{{ 'Use "{customValue}"' }}"
|
|
6773
7024
|
>
|
|
6774
7025
|
</ng-container>
|
|
6775
7026
|
|
|
@@ -6791,12 +7042,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
6791
7042
|
}
|
|
6792
7043
|
<input
|
|
6793
7044
|
kendoSearchbar
|
|
6794
|
-
[ariaExpanded]="isOpen"
|
|
7045
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
6795
7046
|
[ariaControls]="ariaControls"
|
|
6796
7047
|
[id]="focusableId"
|
|
6797
7048
|
[isLoading]="loading"
|
|
6798
7049
|
[isSuggestable]="suggest"
|
|
6799
|
-
[
|
|
7050
|
+
[hasListAutocomplete]="filterable"
|
|
6800
7051
|
[activeDescendant]="activeDescendant"
|
|
6801
7052
|
[userInput]="text"
|
|
6802
7053
|
[suggestedText]="getSuggestion()"
|
|
@@ -6816,7 +7067,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
6816
7067
|
<span
|
|
6817
7068
|
class="k-clear-value"
|
|
6818
7069
|
[style.visibility]="clearButtonVisibility"
|
|
6819
|
-
aria-hidden="true"
|
|
6820
7070
|
[attr.title]="messageFor('clearTitle')"
|
|
6821
7071
|
(click)="clearValue($event)"
|
|
6822
7072
|
[kendoEventsOutsideAngular]="{
|
|
@@ -6911,24 +7161,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
6911
7161
|
[show]="isOpen"
|
|
6912
7162
|
[virtual]="virtual"
|
|
6913
7163
|
[showStickyHeader]="showStickyHeader"
|
|
7164
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
7165
|
+
[text]="text"
|
|
7166
|
+
[allowCustom]="allowCustom"
|
|
6914
7167
|
(pageChange)="pageChange($event)"
|
|
6915
7168
|
>
|
|
7169
|
+
<!--no-data template-->
|
|
7170
|
+
@if (data.length === 0) {
|
|
7171
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
7172
|
+
@if (noDataTemplate) {
|
|
7173
|
+
<ng-template
|
|
7174
|
+
[templateContext]="{
|
|
7175
|
+
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
7176
|
+
}">
|
|
7177
|
+
</ng-template>
|
|
7178
|
+
}
|
|
7179
|
+
@if (!noDataTemplate) {
|
|
7180
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
7181
|
+
}
|
|
7182
|
+
</div>
|
|
7183
|
+
}
|
|
6916
7184
|
</kendo-list>
|
|
6917
|
-
<!--no-data template-->
|
|
6918
|
-
@if (data.length === 0) {
|
|
6919
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
6920
|
-
@if (noDataTemplate) {
|
|
6921
|
-
<ng-template
|
|
6922
|
-
[templateContext]="{
|
|
6923
|
-
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
6924
|
-
}">
|
|
6925
|
-
</ng-template>
|
|
6926
|
-
}
|
|
6927
|
-
@if (!noDataTemplate) {
|
|
6928
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
6929
|
-
}
|
|
6930
|
-
</div>
|
|
6931
|
-
}
|
|
6932
7185
|
<!--footer template-->
|
|
6933
7186
|
@if (footerTemplate) {
|
|
6934
7187
|
<ng-template
|
|
@@ -7287,7 +7540,7 @@ class DropDownListComponent {
|
|
|
7287
7540
|
* @hidden
|
|
7288
7541
|
*/
|
|
7289
7542
|
get ariaLive() {
|
|
7290
|
-
return this.filterable ? 'polite' :
|
|
7543
|
+
return this.filterable ? 'polite' : null;
|
|
7291
7544
|
}
|
|
7292
7545
|
/**
|
|
7293
7546
|
* Shows or hides the current group sticky header when using grouped data.
|
|
@@ -7676,7 +7929,7 @@ class DropDownListComponent {
|
|
|
7676
7929
|
role = 'combobox';
|
|
7677
7930
|
haspopup = 'listbox';
|
|
7678
7931
|
get hostAriaInvalid() {
|
|
7679
|
-
return this.formControl?.invalid ? true : null;
|
|
7932
|
+
return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
|
|
7680
7933
|
}
|
|
7681
7934
|
/**
|
|
7682
7935
|
* @hidden
|
|
@@ -8525,8 +8778,6 @@ class DropDownListComponent {
|
|
|
8525
8778
|
}
|
|
8526
8779
|
closeActionSheet() {
|
|
8527
8780
|
this.actionSheet.toggle(false);
|
|
8528
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
|
|
8529
|
-
this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
|
|
8530
8781
|
if (this.filterable) {
|
|
8531
8782
|
this.adaptiveRenderer.searchBarValue = '';
|
|
8532
8783
|
this.filterChange.emit('');
|
|
@@ -8536,8 +8787,6 @@ class DropDownListComponent {
|
|
|
8536
8787
|
openActionSheet() {
|
|
8537
8788
|
this.actionSheet.toggle(true);
|
|
8538
8789
|
this.cdr.detectChanges();
|
|
8539
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
|
|
8540
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
|
|
8541
8790
|
if (!this.dataService.grouped) {
|
|
8542
8791
|
setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
|
|
8543
8792
|
}
|
|
@@ -8589,6 +8838,9 @@ class DropDownListComponent {
|
|
|
8589
8838
|
|
|
8590
8839
|
i18n-filterPlaceholder="kendo.dropdownlist.filterPlaceholder|The text for the input's placeholder when filtering is enabled"
|
|
8591
8840
|
filterInputPlaceholder="Filter"
|
|
8841
|
+
|
|
8842
|
+
i18n-listboxLabel="kendo.dropdownlist.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
8843
|
+
listboxLabel="Options"
|
|
8592
8844
|
>
|
|
8593
8845
|
</ng-container>
|
|
8594
8846
|
<span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
|
|
@@ -8653,7 +8905,6 @@ class DropDownListComponent {
|
|
|
8653
8905
|
class="k-searchbox k-input"
|
|
8654
8906
|
[ngClass]="filterInputClasses">
|
|
8655
8907
|
<kendo-icon-wrapper
|
|
8656
|
-
class="k-icon"
|
|
8657
8908
|
innerCssClass="k-input-icon"
|
|
8658
8909
|
name="search"
|
|
8659
8910
|
[svgIcon]="searchIcon">
|
|
@@ -8704,24 +8955,25 @@ class DropDownListComponent {
|
|
|
8704
8955
|
[virtual]="virtual"
|
|
8705
8956
|
[ariaLive]="ariaLive"
|
|
8706
8957
|
[showStickyHeader]="showStickyHeader"
|
|
8958
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
8707
8959
|
(pageChange)="pageChange($event)"
|
|
8708
8960
|
[defaultItem]="defaultItem">
|
|
8961
|
+
<!--no-data template-->
|
|
8962
|
+
@if (data.length === 0) {
|
|
8963
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
8964
|
+
@if (noDataTemplate) {
|
|
8965
|
+
<ng-template
|
|
8966
|
+
[templateContext]="{
|
|
8967
|
+
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
8968
|
+
}">
|
|
8969
|
+
</ng-template>
|
|
8970
|
+
}
|
|
8971
|
+
@if (!noDataTemplate) {
|
|
8972
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
8973
|
+
}
|
|
8974
|
+
</div>
|
|
8975
|
+
}
|
|
8709
8976
|
</kendo-list>
|
|
8710
|
-
<!--no-data template-->
|
|
8711
|
-
@if (data.length === 0) {
|
|
8712
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
8713
|
-
@if (noDataTemplate) {
|
|
8714
|
-
<ng-template
|
|
8715
|
-
[templateContext]="{
|
|
8716
|
-
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
8717
|
-
}">
|
|
8718
|
-
</ng-template>
|
|
8719
|
-
}
|
|
8720
|
-
@if (!noDataTemplate) {
|
|
8721
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
8722
|
-
}
|
|
8723
|
-
</div>
|
|
8724
|
-
}
|
|
8725
8977
|
<!--footer template-->
|
|
8726
8978
|
@if (footerTemplate) {
|
|
8727
8979
|
<ng-template
|
|
@@ -8731,7 +8983,7 @@ class DropDownListComponent {
|
|
|
8731
8983
|
</ng-template>
|
|
8732
8984
|
}
|
|
8733
8985
|
</ng-template>
|
|
8734
|
-
`, 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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", "rowWidth", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
8986
|
+
`, 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
8735
8987
|
}
|
|
8736
8988
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownListComponent, decorators: [{
|
|
8737
8989
|
type: Component,
|
|
@@ -8776,6 +9028,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
8776
9028
|
|
|
8777
9029
|
i18n-filterPlaceholder="kendo.dropdownlist.filterPlaceholder|The text for the input's placeholder when filtering is enabled"
|
|
8778
9030
|
filterInputPlaceholder="Filter"
|
|
9031
|
+
|
|
9032
|
+
i18n-listboxLabel="kendo.dropdownlist.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
9033
|
+
listboxLabel="Options"
|
|
8779
9034
|
>
|
|
8780
9035
|
</ng-container>
|
|
8781
9036
|
<span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
|
|
@@ -8840,7 +9095,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
8840
9095
|
class="k-searchbox k-input"
|
|
8841
9096
|
[ngClass]="filterInputClasses">
|
|
8842
9097
|
<kendo-icon-wrapper
|
|
8843
|
-
class="k-icon"
|
|
8844
9098
|
innerCssClass="k-input-icon"
|
|
8845
9099
|
name="search"
|
|
8846
9100
|
[svgIcon]="searchIcon">
|
|
@@ -8891,24 +9145,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
8891
9145
|
[virtual]="virtual"
|
|
8892
9146
|
[ariaLive]="ariaLive"
|
|
8893
9147
|
[showStickyHeader]="showStickyHeader"
|
|
9148
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
8894
9149
|
(pageChange)="pageChange($event)"
|
|
8895
9150
|
[defaultItem]="defaultItem">
|
|
9151
|
+
<!--no-data template-->
|
|
9152
|
+
@if (data.length === 0) {
|
|
9153
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
9154
|
+
@if (noDataTemplate) {
|
|
9155
|
+
<ng-template
|
|
9156
|
+
[templateContext]="{
|
|
9157
|
+
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
9158
|
+
}">
|
|
9159
|
+
</ng-template>
|
|
9160
|
+
}
|
|
9161
|
+
@if (!noDataTemplate) {
|
|
9162
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
9163
|
+
}
|
|
9164
|
+
</div>
|
|
9165
|
+
}
|
|
8896
9166
|
</kendo-list>
|
|
8897
|
-
<!--no-data template-->
|
|
8898
|
-
@if (data.length === 0) {
|
|
8899
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
8900
|
-
@if (noDataTemplate) {
|
|
8901
|
-
<ng-template
|
|
8902
|
-
[templateContext]="{
|
|
8903
|
-
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
8904
|
-
}">
|
|
8905
|
-
</ng-template>
|
|
8906
|
-
}
|
|
8907
|
-
@if (!noDataTemplate) {
|
|
8908
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
8909
|
-
}
|
|
8910
|
-
</div>
|
|
8911
|
-
}
|
|
8912
9167
|
<!--footer template-->
|
|
8913
9168
|
@if (footerTemplate) {
|
|
8914
9169
|
<ng-template
|
|
@@ -9229,6 +9484,7 @@ class TagListComponent {
|
|
|
9229
9484
|
disabled;
|
|
9230
9485
|
tagPrefix;
|
|
9231
9486
|
id;
|
|
9487
|
+
ariaLabel;
|
|
9232
9488
|
set size(size) {
|
|
9233
9489
|
this.renderer.removeClass(this.hostElement.nativeElement, getSizeClass('chip-list', this.size));
|
|
9234
9490
|
if (size) {
|
|
@@ -9251,7 +9507,11 @@ class TagListComponent {
|
|
|
9251
9507
|
return this.id;
|
|
9252
9508
|
}
|
|
9253
9509
|
taglistRole = 'listbox';
|
|
9510
|
+
get hostAriaLabel() {
|
|
9511
|
+
return this.ariaLabel || null;
|
|
9512
|
+
}
|
|
9254
9513
|
multiselectable = true;
|
|
9514
|
+
ariaOrientation = 'horizontal';
|
|
9255
9515
|
_size;
|
|
9256
9516
|
constructor(renderer, hostElement) {
|
|
9257
9517
|
this.renderer = renderer;
|
|
@@ -9306,7 +9566,7 @@ class TagListComponent {
|
|
|
9306
9566
|
}
|
|
9307
9567
|
}
|
|
9308
9568
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
9309
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TagListComponent, isStandalone: true, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClass", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable" } }, ngImport: i0, template: `
|
|
9569
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TagListComponent, isStandalone: true, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", ariaLabel: "ariaLabel", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClass", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-label": "this.hostAriaLabel", "attr.aria-multiselectable": "this.multiselectable", "attr.aria-orientation": "this.ariaOrientation" } }, ngImport: i0, template: `
|
|
9310
9570
|
@for (tag of tags; track $index; let index = $index) {
|
|
9311
9571
|
<div
|
|
9312
9572
|
[attr.id]="itemId(tag, index)"
|
|
@@ -9332,7 +9592,7 @@ class TagListComponent {
|
|
|
9332
9592
|
>
|
|
9333
9593
|
<span class="k-chip-content">
|
|
9334
9594
|
@if (isGroupTag(tag)) {
|
|
9335
|
-
<span class="k-chip-label
|
|
9595
|
+
<span class="k-chip-label">
|
|
9336
9596
|
@if (groupTemplate) {
|
|
9337
9597
|
<ng-template
|
|
9338
9598
|
[templateContext]="{
|
|
@@ -9346,7 +9606,7 @@ class TagListComponent {
|
|
|
9346
9606
|
}
|
|
9347
9607
|
</span>
|
|
9348
9608
|
} @else {
|
|
9349
|
-
<span class="k-chip-label
|
|
9609
|
+
<span class="k-chip-label">
|
|
9350
9610
|
@if (template) {
|
|
9351
9611
|
<ng-template
|
|
9352
9612
|
[templateContext]="{
|
|
@@ -9362,11 +9622,13 @@ class TagListComponent {
|
|
|
9362
9622
|
}
|
|
9363
9623
|
</span>
|
|
9364
9624
|
<span class="k-chip-actions">
|
|
9365
|
-
<span
|
|
9625
|
+
<span class="k-chip-action k-chip-remove-action">
|
|
9366
9626
|
<kendo-icon-wrapper
|
|
9627
|
+
[attr.aria-hidden]="index !== focused"
|
|
9367
9628
|
(mousedown)="deleteTag($event, tag, index)"
|
|
9368
9629
|
name="x-circle"
|
|
9369
9630
|
[svgIcon]="xCircleIcon"
|
|
9631
|
+
size="small"
|
|
9370
9632
|
>
|
|
9371
9633
|
</kendo-icon-wrapper>
|
|
9372
9634
|
</span>
|
|
@@ -9406,7 +9668,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
9406
9668
|
>
|
|
9407
9669
|
<span class="k-chip-content">
|
|
9408
9670
|
@if (isGroupTag(tag)) {
|
|
9409
|
-
<span class="k-chip-label
|
|
9671
|
+
<span class="k-chip-label">
|
|
9410
9672
|
@if (groupTemplate) {
|
|
9411
9673
|
<ng-template
|
|
9412
9674
|
[templateContext]="{
|
|
@@ -9420,7 +9682,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
9420
9682
|
}
|
|
9421
9683
|
</span>
|
|
9422
9684
|
} @else {
|
|
9423
|
-
<span class="k-chip-label
|
|
9685
|
+
<span class="k-chip-label">
|
|
9424
9686
|
@if (template) {
|
|
9425
9687
|
<ng-template
|
|
9426
9688
|
[templateContext]="{
|
|
@@ -9436,11 +9698,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
9436
9698
|
}
|
|
9437
9699
|
</span>
|
|
9438
9700
|
<span class="k-chip-actions">
|
|
9439
|
-
<span
|
|
9701
|
+
<span class="k-chip-action k-chip-remove-action">
|
|
9440
9702
|
<kendo-icon-wrapper
|
|
9703
|
+
[attr.aria-hidden]="index !== focused"
|
|
9441
9704
|
(mousedown)="deleteTag($event, tag, index)"
|
|
9442
9705
|
name="x-circle"
|
|
9443
9706
|
[svgIcon]="xCircleIcon"
|
|
9707
|
+
size="small"
|
|
9444
9708
|
>
|
|
9445
9709
|
</kendo-icon-wrapper>
|
|
9446
9710
|
</span>
|
|
@@ -9472,6 +9736,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
9472
9736
|
type: Input
|
|
9473
9737
|
}], id: [{
|
|
9474
9738
|
type: Input
|
|
9739
|
+
}], ariaLabel: [{
|
|
9740
|
+
type: Input
|
|
9475
9741
|
}], size: [{
|
|
9476
9742
|
type: Input
|
|
9477
9743
|
}], rounded: [{
|
|
@@ -9491,9 +9757,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
9491
9757
|
}], taglistRole: [{
|
|
9492
9758
|
type: HostBinding,
|
|
9493
9759
|
args: ['attr.role']
|
|
9760
|
+
}], hostAriaLabel: [{
|
|
9761
|
+
type: HostBinding,
|
|
9762
|
+
args: ['attr.aria-label']
|
|
9494
9763
|
}], multiselectable: [{
|
|
9495
9764
|
type: HostBinding,
|
|
9496
9765
|
args: ['attr.aria-multiselectable']
|
|
9766
|
+
}], ariaOrientation: [{
|
|
9767
|
+
type: HostBinding,
|
|
9768
|
+
args: ['attr.aria-orientation']
|
|
9497
9769
|
}] } });
|
|
9498
9770
|
|
|
9499
9771
|
const MULTISELECT_VALUE_ACCESSOR = {
|
|
@@ -9581,7 +9853,7 @@ class MultiSelectComponent {
|
|
|
9581
9853
|
* @hidden
|
|
9582
9854
|
*/
|
|
9583
9855
|
get ariaControls() {
|
|
9584
|
-
return this.isOpen ? this.listBoxId : undefined;
|
|
9856
|
+
return (!this.isAdaptive && this.isOpen) ? this.listBoxId : undefined;
|
|
9585
9857
|
}
|
|
9586
9858
|
/**
|
|
9587
9859
|
* @hidden
|
|
@@ -11265,6 +11537,9 @@ class MultiSelectComponent {
|
|
|
11265
11537
|
i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
|
|
11266
11538
|
clearTitle="clear"
|
|
11267
11539
|
|
|
11540
|
+
i18n-chipListLabel="kendo.multiselect.chipListLabel|The accessible label of the tag list element that contains the selected items"
|
|
11541
|
+
chipListLabel="chip list"
|
|
11542
|
+
|
|
11268
11543
|
i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
11269
11544
|
popupLabel="Options list"
|
|
11270
11545
|
|
|
@@ -11272,7 +11547,10 @@ class MultiSelectComponent {
|
|
|
11272
11547
|
adaptiveCloseButtonTitle="Close"
|
|
11273
11548
|
|
|
11274
11549
|
i18n-useCustomValueText="kendo.multiselect.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
|
|
11275
|
-
useCustomValueText="
|
|
11550
|
+
useCustomValueText="Use "[[customValue]]""
|
|
11551
|
+
|
|
11552
|
+
i18n-listboxLabel="kendo.multiselect.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
11553
|
+
listboxLabel="Options"
|
|
11276
11554
|
>
|
|
11277
11555
|
</ng-container>
|
|
11278
11556
|
|
|
@@ -11307,17 +11585,18 @@ class MultiSelectComponent {
|
|
|
11307
11585
|
[groupTemplate]="groupTagTemplate"
|
|
11308
11586
|
[tagPrefix]="tagPrefix"
|
|
11309
11587
|
[disabledIndices]="disabledIndices"
|
|
11588
|
+
[ariaLabel]="messageFor('chipListLabel')"
|
|
11310
11589
|
(removeTag)="handleRemoveTag($event)"
|
|
11311
11590
|
>
|
|
11312
11591
|
</kendo-taglist>
|
|
11313
11592
|
<input
|
|
11314
11593
|
kendoSearchbar
|
|
11315
11594
|
[ariaControls]="ariaControls"
|
|
11316
|
-
[ariaExpanded]="isOpen"
|
|
11595
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
11317
11596
|
[id]="focusableId"
|
|
11318
11597
|
[tagListId]="tagListId"
|
|
11319
11598
|
[isLoading]="loading"
|
|
11320
|
-
[
|
|
11599
|
+
[hasListAutocomplete]="filterable"
|
|
11321
11600
|
[activeDescendant]="activeDescendant"
|
|
11322
11601
|
[userInput]="text"
|
|
11323
11602
|
[disabled]="disabled"
|
|
@@ -11344,7 +11623,6 @@ class MultiSelectComponent {
|
|
|
11344
11623
|
(mousedown)="clearAll($event)"
|
|
11345
11624
|
>
|
|
11346
11625
|
<kendo-icon-wrapper
|
|
11347
|
-
class="k-icon"
|
|
11348
11626
|
name="x"
|
|
11349
11627
|
[svgIcon]="xIcon"
|
|
11350
11628
|
>
|
|
@@ -11422,23 +11700,24 @@ class MultiSelectComponent {
|
|
|
11422
11700
|
[customItemTemplate]="customItemTemplate"
|
|
11423
11701
|
[text]="text"
|
|
11424
11702
|
[allowCustom]="allowCustom"
|
|
11703
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
11425
11704
|
>
|
|
11705
|
+
<!--no data template-->
|
|
11706
|
+
@if (data.length === 0) {
|
|
11707
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
11708
|
+
@if (noDataTemplate) {
|
|
11709
|
+
<ng-template
|
|
11710
|
+
[templateContext]="{
|
|
11711
|
+
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
11712
|
+
}">
|
|
11713
|
+
</ng-template>
|
|
11714
|
+
}
|
|
11715
|
+
@if (!noDataTemplate) {
|
|
11716
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
11717
|
+
}
|
|
11718
|
+
</div>
|
|
11719
|
+
}
|
|
11426
11720
|
</kendo-list>
|
|
11427
|
-
<!--no data template-->
|
|
11428
|
-
@if (data.length === 0) {
|
|
11429
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
11430
|
-
@if (noDataTemplate) {
|
|
11431
|
-
<ng-template
|
|
11432
|
-
[templateContext]="{
|
|
11433
|
-
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
11434
|
-
}">
|
|
11435
|
-
</ng-template>
|
|
11436
|
-
}
|
|
11437
|
-
@if (!noDataTemplate) {
|
|
11438
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
11439
|
-
}
|
|
11440
|
-
</div>
|
|
11441
|
-
}
|
|
11442
11721
|
<!--footer template-->
|
|
11443
11722
|
@if (footerTemplate) {
|
|
11444
11723
|
<ng-template
|
|
@@ -11448,7 +11727,7 @@ class MultiSelectComponent {
|
|
|
11448
11727
|
</ng-template>
|
|
11449
11728
|
}
|
|
11450
11729
|
</ng-template>
|
|
11451
|
-
`, 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: 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", "
|
|
11730
|
+
`, 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: 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", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "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: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
11452
11731
|
}
|
|
11453
11732
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
11454
11733
|
type: Component,
|
|
@@ -11484,6 +11763,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
11484
11763
|
i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
|
|
11485
11764
|
clearTitle="clear"
|
|
11486
11765
|
|
|
11766
|
+
i18n-chipListLabel="kendo.multiselect.chipListLabel|The accessible label of the tag list element that contains the selected items"
|
|
11767
|
+
chipListLabel="chip list"
|
|
11768
|
+
|
|
11487
11769
|
i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
11488
11770
|
popupLabel="Options list"
|
|
11489
11771
|
|
|
@@ -11491,7 +11773,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
11491
11773
|
adaptiveCloseButtonTitle="Close"
|
|
11492
11774
|
|
|
11493
11775
|
i18n-useCustomValueText="kendo.multiselect.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
|
|
11494
|
-
useCustomValueText="
|
|
11776
|
+
useCustomValueText="Use "[[customValue]]""
|
|
11777
|
+
|
|
11778
|
+
i18n-listboxLabel="kendo.multiselect.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
11779
|
+
listboxLabel="Options"
|
|
11495
11780
|
>
|
|
11496
11781
|
</ng-container>
|
|
11497
11782
|
|
|
@@ -11526,17 +11811,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
11526
11811
|
[groupTemplate]="groupTagTemplate"
|
|
11527
11812
|
[tagPrefix]="tagPrefix"
|
|
11528
11813
|
[disabledIndices]="disabledIndices"
|
|
11814
|
+
[ariaLabel]="messageFor('chipListLabel')"
|
|
11529
11815
|
(removeTag)="handleRemoveTag($event)"
|
|
11530
11816
|
>
|
|
11531
11817
|
</kendo-taglist>
|
|
11532
11818
|
<input
|
|
11533
11819
|
kendoSearchbar
|
|
11534
11820
|
[ariaControls]="ariaControls"
|
|
11535
|
-
[ariaExpanded]="isOpen"
|
|
11821
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
11536
11822
|
[id]="focusableId"
|
|
11537
11823
|
[tagListId]="tagListId"
|
|
11538
11824
|
[isLoading]="loading"
|
|
11539
|
-
[
|
|
11825
|
+
[hasListAutocomplete]="filterable"
|
|
11540
11826
|
[activeDescendant]="activeDescendant"
|
|
11541
11827
|
[userInput]="text"
|
|
11542
11828
|
[disabled]="disabled"
|
|
@@ -11563,7 +11849,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
11563
11849
|
(mousedown)="clearAll($event)"
|
|
11564
11850
|
>
|
|
11565
11851
|
<kendo-icon-wrapper
|
|
11566
|
-
class="k-icon"
|
|
11567
11852
|
name="x"
|
|
11568
11853
|
[svgIcon]="xIcon"
|
|
11569
11854
|
>
|
|
@@ -11641,23 +11926,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
11641
11926
|
[customItemTemplate]="customItemTemplate"
|
|
11642
11927
|
[text]="text"
|
|
11643
11928
|
[allowCustom]="allowCustom"
|
|
11929
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
11644
11930
|
>
|
|
11931
|
+
<!--no data template-->
|
|
11932
|
+
@if (data.length === 0) {
|
|
11933
|
+
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
11934
|
+
@if (noDataTemplate) {
|
|
11935
|
+
<ng-template
|
|
11936
|
+
[templateContext]="{
|
|
11937
|
+
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
11938
|
+
}">
|
|
11939
|
+
</ng-template>
|
|
11940
|
+
}
|
|
11941
|
+
@if (!noDataTemplate) {
|
|
11942
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
11943
|
+
}
|
|
11944
|
+
</div>
|
|
11945
|
+
}
|
|
11645
11946
|
</kendo-list>
|
|
11646
|
-
<!--no data template-->
|
|
11647
|
-
@if (data.length === 0) {
|
|
11648
|
-
<div class="k-no-data" [attr.aria-live]="'polite'">
|
|
11649
|
-
@if (noDataTemplate) {
|
|
11650
|
-
<ng-template
|
|
11651
|
-
[templateContext]="{
|
|
11652
|
-
templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
|
|
11653
|
-
}">
|
|
11654
|
-
</ng-template>
|
|
11655
|
-
}
|
|
11656
|
-
@if (!noDataTemplate) {
|
|
11657
|
-
<div>{{ messageFor('noDataText') }}</div>
|
|
11658
|
-
}
|
|
11659
|
-
</div>
|
|
11660
|
-
}
|
|
11661
11947
|
<!--footer template-->
|
|
11662
11948
|
@if (footerTemplate) {
|
|
11663
11949
|
<ng-template
|
|
@@ -12113,6 +12399,17 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12113
12399
|
* @hidden
|
|
12114
12400
|
*/
|
|
12115
12401
|
totalColumnsWidth;
|
|
12402
|
+
/**
|
|
12403
|
+
* @hidden
|
|
12404
|
+
*/
|
|
12405
|
+
get visibleColumnsWidths() {
|
|
12406
|
+
return this.columns.reduce((widths, column, index) => {
|
|
12407
|
+
if (!column.hidden && column.matchesMedia) {
|
|
12408
|
+
widths.push(this.getColumnWidth(index));
|
|
12409
|
+
}
|
|
12410
|
+
return widths;
|
|
12411
|
+
}, []);
|
|
12412
|
+
}
|
|
12116
12413
|
get popupWidth() {
|
|
12117
12414
|
const wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;
|
|
12118
12415
|
const min = `${wrapperOffsetWidth}px`;
|
|
@@ -12127,7 +12424,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12127
12424
|
* @hidden
|
|
12128
12425
|
*/
|
|
12129
12426
|
get tableSizeClass() {
|
|
12130
|
-
|
|
12427
|
+
const effectiveSize = this.isAdaptive ? 'large' : this.size;
|
|
12428
|
+
return `${effectiveSize ? getSizeClass('table', effectiveSize) : ''}`;
|
|
12131
12429
|
}
|
|
12132
12430
|
/**
|
|
12133
12431
|
* @hidden
|
|
@@ -12296,6 +12594,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12296
12594
|
popupLabel="Options list"
|
|
12297
12595
|
i18n-adaptiveCloseButtonTitle="kendo.multicolumncombobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
|
|
12298
12596
|
adaptiveCloseButtonTitle="Close"
|
|
12597
|
+
i18n-listboxLabel="kendo.multicolumncombobox.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
12598
|
+
listboxLabel="Options"
|
|
12299
12599
|
></ng-container>
|
|
12300
12600
|
|
|
12301
12601
|
<ng-container
|
|
@@ -12317,11 +12617,11 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12317
12617
|
<input
|
|
12318
12618
|
kendoSearchbar
|
|
12319
12619
|
[ariaControls]="ariaControls"
|
|
12320
|
-
[ariaExpanded]="isOpen"
|
|
12620
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
12321
12621
|
[id]="focusableId"
|
|
12322
12622
|
[isLoading]="loading"
|
|
12323
12623
|
[isSuggestable]="suggest"
|
|
12324
|
-
[
|
|
12624
|
+
[hasListAutocomplete]="filterable"
|
|
12325
12625
|
[activeDescendant]="activeDescendant"
|
|
12326
12626
|
[userInput]="text"
|
|
12327
12627
|
[suggestedText]="getSuggestion()"
|
|
@@ -12425,7 +12725,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12425
12725
|
<!--grid header-->
|
|
12426
12726
|
<div #header class="k-table-header">
|
|
12427
12727
|
<div #headerWrap class="k-table-header-wrap">
|
|
12428
|
-
<table #headerTable class="k-table"
|
|
12728
|
+
<table #headerTable class="k-table">
|
|
12429
12729
|
<colgroup>
|
|
12430
12730
|
@for (column of columns; track column) {
|
|
12431
12731
|
@if (!column.hidden && column.matchesMedia) {
|
|
@@ -12509,7 +12809,9 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12509
12809
|
[virtual]="virtual"
|
|
12510
12810
|
[type]="'dropdowngrid'"
|
|
12511
12811
|
[rowWidth]="rowWidth"
|
|
12812
|
+
[columnsWidths]="visibleColumnsWidths"
|
|
12512
12813
|
[showStickyHeader]="showStickyHeader"
|
|
12814
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
12513
12815
|
(pageChange)="pageChange($event)"
|
|
12514
12816
|
(listResize)="updateHeaderPadding(header)"
|
|
12515
12817
|
(popupListScroll)="headerWrap.scrollLeft = $event.target.scrollLeft;"
|
|
@@ -12536,25 +12838,19 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12536
12838
|
<!--user-defined footer template-->
|
|
12537
12839
|
@if (footerTemplate) {
|
|
12538
12840
|
<div class="k-table-footer">
|
|
12539
|
-
<
|
|
12540
|
-
<
|
|
12541
|
-
<tr class="k-table-row">
|
|
12542
|
-
<td class="k-table-td">
|
|
12543
|
-
<ng-template
|
|
12841
|
+
<span class="k-table-td">
|
|
12842
|
+
<ng-template
|
|
12544
12843
|
[templateContext]="{
|
|
12545
12844
|
templateRef: footerTemplate.templateRef
|
|
12546
12845
|
}"
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
</tr>
|
|
12551
|
-
</tfoot>
|
|
12552
|
-
</table>
|
|
12846
|
+
>
|
|
12847
|
+
</ng-template>
|
|
12848
|
+
</span>
|
|
12553
12849
|
</div>
|
|
12554
12850
|
}
|
|
12555
12851
|
</div>
|
|
12556
12852
|
</ng-template>
|
|
12557
|
-
`, 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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "
|
|
12853
|
+
`, 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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
12558
12854
|
}
|
|
12559
12855
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
|
|
12560
12856
|
type: Component,
|
|
@@ -12610,6 +12906,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12610
12906
|
popupLabel="Options list"
|
|
12611
12907
|
i18n-adaptiveCloseButtonTitle="kendo.multicolumncombobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
|
|
12612
12908
|
adaptiveCloseButtonTitle="Close"
|
|
12909
|
+
i18n-listboxLabel="kendo.multicolumncombobox.listboxLabel|The accessible label of the listbox that contains the list of options"
|
|
12910
|
+
listboxLabel="Options"
|
|
12613
12911
|
></ng-container>
|
|
12614
12912
|
|
|
12615
12913
|
<ng-container
|
|
@@ -12631,11 +12929,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12631
12929
|
<input
|
|
12632
12930
|
kendoSearchbar
|
|
12633
12931
|
[ariaControls]="ariaControls"
|
|
12634
|
-
[ariaExpanded]="isOpen"
|
|
12932
|
+
[ariaExpanded]="isAdaptive ? false : isOpen"
|
|
12635
12933
|
[id]="focusableId"
|
|
12636
12934
|
[isLoading]="loading"
|
|
12637
12935
|
[isSuggestable]="suggest"
|
|
12638
|
-
[
|
|
12936
|
+
[hasListAutocomplete]="filterable"
|
|
12639
12937
|
[activeDescendant]="activeDescendant"
|
|
12640
12938
|
[userInput]="text"
|
|
12641
12939
|
[suggestedText]="getSuggestion()"
|
|
@@ -12739,7 +13037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12739
13037
|
<!--grid header-->
|
|
12740
13038
|
<div #header class="k-table-header">
|
|
12741
13039
|
<div #headerWrap class="k-table-header-wrap">
|
|
12742
|
-
<table #headerTable class="k-table"
|
|
13040
|
+
<table #headerTable class="k-table">
|
|
12743
13041
|
<colgroup>
|
|
12744
13042
|
@for (column of columns; track column) {
|
|
12745
13043
|
@if (!column.hidden && column.matchesMedia) {
|
|
@@ -12823,7 +13121,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12823
13121
|
[virtual]="virtual"
|
|
12824
13122
|
[type]="'dropdowngrid'"
|
|
12825
13123
|
[rowWidth]="rowWidth"
|
|
13124
|
+
[columnsWidths]="visibleColumnsWidths"
|
|
12826
13125
|
[showStickyHeader]="showStickyHeader"
|
|
13126
|
+
[ariaLabel]="messageFor('listboxLabel')"
|
|
12827
13127
|
(pageChange)="pageChange($event)"
|
|
12828
13128
|
(listResize)="updateHeaderPadding(header)"
|
|
12829
13129
|
(popupListScroll)="headerWrap.scrollLeft = $event.target.scrollLeft;"
|
|
@@ -12850,20 +13150,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12850
13150
|
<!--user-defined footer template-->
|
|
12851
13151
|
@if (footerTemplate) {
|
|
12852
13152
|
<div class="k-table-footer">
|
|
12853
|
-
<
|
|
12854
|
-
<
|
|
12855
|
-
<tr class="k-table-row">
|
|
12856
|
-
<td class="k-table-td">
|
|
12857
|
-
<ng-template
|
|
13153
|
+
<span class="k-table-td">
|
|
13154
|
+
<ng-template
|
|
12858
13155
|
[templateContext]="{
|
|
12859
13156
|
templateRef: footerTemplate.templateRef
|
|
12860
13157
|
}"
|
|
12861
|
-
|
|
12862
|
-
|
|
12863
|
-
|
|
12864
|
-
</tr>
|
|
12865
|
-
</tfoot>
|
|
12866
|
-
</table>
|
|
13158
|
+
>
|
|
13159
|
+
</ng-template>
|
|
13160
|
+
</span>
|
|
12867
13161
|
</div>
|
|
12868
13162
|
}
|
|
12869
13163
|
</div>
|
|
@@ -12993,7 +13287,7 @@ class DropDownTreeComponent {
|
|
|
12993
13287
|
return this.readonly ? '' : null;
|
|
12994
13288
|
}
|
|
12995
13289
|
get hostAriaInvalid() {
|
|
12996
|
-
return this.formControl?.invalid ? true : null;
|
|
13290
|
+
return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
|
|
12997
13291
|
}
|
|
12998
13292
|
get isDisabled() {
|
|
12999
13293
|
return this.disabled || null;
|
|
@@ -13005,7 +13299,7 @@ class DropDownTreeComponent {
|
|
|
13005
13299
|
return this.loading ? 'true' : null;
|
|
13006
13300
|
}
|
|
13007
13301
|
get hostAriaControls() {
|
|
13008
|
-
return this.isOpen ? this.treeViewId : null;
|
|
13302
|
+
return (!this.isAdaptive && this.isOpen) ? this.treeViewId : null;
|
|
13009
13303
|
}
|
|
13010
13304
|
get id() {
|
|
13011
13305
|
return this.focusableId;
|
|
@@ -13017,7 +13311,7 @@ class DropDownTreeComponent {
|
|
|
13017
13311
|
role = 'combobox';
|
|
13018
13312
|
ariaHasPopup = 'tree';
|
|
13019
13313
|
get isAriaExpanded() {
|
|
13020
|
-
return this.isOpen;
|
|
13314
|
+
return this.isAdaptive ? false : this.isOpen;
|
|
13021
13315
|
}
|
|
13022
13316
|
get hostAriaAutocomplete() {
|
|
13023
13317
|
return this.filterable ? 'list' : null;
|
|
@@ -13037,6 +13331,7 @@ class DropDownTreeComponent {
|
|
|
13037
13331
|
// the treeview animations are initially disabled (we don't want expand animations during popup opening)
|
|
13038
13332
|
// re-enables the animations for user interaction
|
|
13039
13333
|
treeview.animate = true;
|
|
13334
|
+
treeview.loadMoreButtonRole = 'treeitem';
|
|
13040
13335
|
this._treeview = treeview;
|
|
13041
13336
|
}
|
|
13042
13337
|
}
|
|
@@ -13337,7 +13632,12 @@ class DropDownTreeComponent {
|
|
|
13337
13632
|
get isFilterActive() {
|
|
13338
13633
|
return this.filterInput && document.activeElement === this.filterInput.nativeElement;
|
|
13339
13634
|
}
|
|
13340
|
-
popupRef
|
|
13635
|
+
set popupRef(value) {
|
|
13636
|
+
this._popupRef.set(value);
|
|
13637
|
+
}
|
|
13638
|
+
get popupRef() {
|
|
13639
|
+
return this._popupRef();
|
|
13640
|
+
}
|
|
13341
13641
|
/**
|
|
13342
13642
|
* @hidden
|
|
13343
13643
|
*/
|
|
@@ -13492,6 +13792,7 @@ class DropDownTreeComponent {
|
|
|
13492
13792
|
_size;
|
|
13493
13793
|
_rounded;
|
|
13494
13794
|
_fillMode;
|
|
13795
|
+
_popupRef = signal(null, ...(ngDevMode ? [{ debugName: "_popupRef" }] : []));
|
|
13495
13796
|
_searchableNodes = [];
|
|
13496
13797
|
_typedValue = '';
|
|
13497
13798
|
printableCharacters = new Subject();
|
|
@@ -13736,7 +14037,7 @@ class DropDownTreeComponent {
|
|
|
13736
14037
|
* @hidden
|
|
13737
14038
|
*/
|
|
13738
14039
|
get popupContainerClasses() {
|
|
13739
|
-
const containerClasses = ['k-dropdowntree-popup'];
|
|
14040
|
+
const containerClasses = ['k-list-container', 'k-dropdowntree-popup'];
|
|
13740
14041
|
if (!this.popupSettings.popupClass) {
|
|
13741
14042
|
return containerClasses;
|
|
13742
14043
|
}
|
|
@@ -14314,6 +14615,7 @@ class DropDownTreeComponent {
|
|
|
14314
14615
|
[title]="adaptiveTitle"
|
|
14315
14616
|
[showTextInput]="filterable"
|
|
14316
14617
|
[subtitle]="adaptiveSubtitle"
|
|
14618
|
+
[showListContainer]="false"
|
|
14317
14619
|
(closePopup)="togglePopup(false)"
|
|
14318
14620
|
(textInputChange)="handleFilterInputChange($event)"
|
|
14319
14621
|
[placeholder]="placeholder"
|
|
@@ -14330,14 +14632,14 @@ class DropDownTreeComponent {
|
|
|
14330
14632
|
class="k-textbox k-input"
|
|
14331
14633
|
[ngClass]="filterInputClasses"
|
|
14332
14634
|
>
|
|
14333
|
-
<span class="k-input-prefix">
|
|
14635
|
+
<span class="k-input-prefix k-input-prefix-horizontal">
|
|
14334
14636
|
<kendo-icon-wrapper
|
|
14335
|
-
class="k-icon"
|
|
14336
14637
|
name="search"
|
|
14337
14638
|
[svgIcon]="searchIcon"
|
|
14338
14639
|
>
|
|
14339
14640
|
</kendo-icon-wrapper>
|
|
14340
14641
|
</span>
|
|
14642
|
+
<kendo-separator></kendo-separator>
|
|
14341
14643
|
<input
|
|
14342
14644
|
#filterInput
|
|
14343
14645
|
(input)="handleFilterInputChange($event.target)"
|
|
@@ -14369,7 +14671,7 @@ class DropDownTreeComponent {
|
|
|
14369
14671
|
<kendo-treeview
|
|
14370
14672
|
#treeview
|
|
14371
14673
|
[attr.id]="treeViewId"
|
|
14372
|
-
[size]="
|
|
14674
|
+
[size]="isAdaptive ? 'large' : size"
|
|
14373
14675
|
[nodes]="data"
|
|
14374
14676
|
[style.maxHeight.px]="listHeight"
|
|
14375
14677
|
[animate]="false"
|
|
@@ -14422,7 +14724,7 @@ class DropDownTreeComponent {
|
|
|
14422
14724
|
@if (isOpen || isAdaptiveModeEnabled) {
|
|
14423
14725
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
14424
14726
|
}
|
|
14425
|
-
`, 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14727
|
+
`, 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14426
14728
|
}
|
|
14427
14729
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeComponent, decorators: [{
|
|
14428
14730
|
type: Component,
|
|
@@ -14549,6 +14851,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
14549
14851
|
[title]="adaptiveTitle"
|
|
14550
14852
|
[showTextInput]="filterable"
|
|
14551
14853
|
[subtitle]="adaptiveSubtitle"
|
|
14854
|
+
[showListContainer]="false"
|
|
14552
14855
|
(closePopup)="togglePopup(false)"
|
|
14553
14856
|
(textInputChange)="handleFilterInputChange($event)"
|
|
14554
14857
|
[placeholder]="placeholder"
|
|
@@ -14565,14 +14868,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
14565
14868
|
class="k-textbox k-input"
|
|
14566
14869
|
[ngClass]="filterInputClasses"
|
|
14567
14870
|
>
|
|
14568
|
-
<span class="k-input-prefix">
|
|
14871
|
+
<span class="k-input-prefix k-input-prefix-horizontal">
|
|
14569
14872
|
<kendo-icon-wrapper
|
|
14570
|
-
class="k-icon"
|
|
14571
14873
|
name="search"
|
|
14572
14874
|
[svgIcon]="searchIcon"
|
|
14573
14875
|
>
|
|
14574
14876
|
</kendo-icon-wrapper>
|
|
14575
14877
|
</span>
|
|
14878
|
+
<kendo-separator></kendo-separator>
|
|
14576
14879
|
<input
|
|
14577
14880
|
#filterInput
|
|
14578
14881
|
(input)="handleFilterInputChange($event.target)"
|
|
@@ -14604,7 +14907,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
14604
14907
|
<kendo-treeview
|
|
14605
14908
|
#treeview
|
|
14606
14909
|
[attr.id]="treeViewId"
|
|
14607
|
-
[size]="
|
|
14910
|
+
[size]="isAdaptive ? 'large' : size"
|
|
14608
14911
|
[nodes]="data"
|
|
14609
14912
|
[style.maxHeight.px]="listHeight"
|
|
14610
14913
|
[animate]="false"
|
|
@@ -14660,7 +14963,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
14660
14963
|
`,
|
|
14661
14964
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14662
14965
|
standalone: true,
|
|
14663
|
-
imports: [LocalizedMessagesDirective, TemplateContextDirective, IconWrapperComponent, NgClass, NgTemplateOutlet, AdaptiveRendererComponent, FilterInputDirective, EventsOutsideAngularDirective, TreeViewComponent, SelectDirective, ResizeSensorComponent]
|
|
14966
|
+
imports: [LocalizedMessagesDirective, TemplateContextDirective, IconWrapperComponent, NgClass, NgTemplateOutlet, AdaptiveRendererComponent, FilterInputDirective, EventsOutsideAngularDirective, TreeViewComponent, SelectDirective, ResizeSensorComponent, SeparatorComponent]
|
|
14664
14967
|
}]
|
|
14665
14968
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2.PopupService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: i7.AdaptiveService }], propDecorators: { icon: [{
|
|
14666
14969
|
type: Input
|
|
@@ -15364,14 +15667,11 @@ class MultiSelectTreeComponent {
|
|
|
15364
15667
|
return this.disabled || null;
|
|
15365
15668
|
}
|
|
15366
15669
|
treeViewId = `k-${guid()}`;
|
|
15367
|
-
get hostAriaAutocomplete() {
|
|
15368
|
-
return this.filterable ? 'list' : null;
|
|
15369
|
-
}
|
|
15370
15670
|
get isLoading() {
|
|
15371
15671
|
return this.loading;
|
|
15372
15672
|
}
|
|
15373
15673
|
get hostAriaInvalid() {
|
|
15374
|
-
return this.formControl?.invalid ? true : null;
|
|
15674
|
+
return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
|
|
15375
15675
|
}
|
|
15376
15676
|
get isBusy() {
|
|
15377
15677
|
return this.loading ? 'true' : null;
|
|
@@ -15383,14 +15683,9 @@ class MultiSelectTreeComponent {
|
|
|
15383
15683
|
get hostTabIndex() {
|
|
15384
15684
|
return this.tabindex;
|
|
15385
15685
|
}
|
|
15386
|
-
role = 'combobox';
|
|
15387
|
-
ariaHasPopup = 'tree';
|
|
15388
15686
|
get isReadonly() {
|
|
15389
15687
|
return this.readonly ? '' : null;
|
|
15390
15688
|
}
|
|
15391
|
-
get ariaDescribedBy() {
|
|
15392
|
-
return this.tagListId;
|
|
15393
|
-
}
|
|
15394
15689
|
get ariaActiveDescendant() {
|
|
15395
15690
|
return this.focusedTagId;
|
|
15396
15691
|
}
|
|
@@ -16085,7 +16380,6 @@ class MultiSelectTreeComponent {
|
|
|
16085
16380
|
this._typedValue = '';
|
|
16086
16381
|
}));
|
|
16087
16382
|
this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
|
|
16088
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', String(this.isOpen));
|
|
16089
16383
|
this.subs.add(this.localization
|
|
16090
16384
|
.changes.subscribe(({ rtl }) => {
|
|
16091
16385
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
@@ -16539,9 +16833,7 @@ class MultiSelectTreeComponent {
|
|
|
16539
16833
|
popupWrapper.style.minWidth = min;
|
|
16540
16834
|
popupWrapper.style.width = max;
|
|
16541
16835
|
popupWrapper.style.height = this.height;
|
|
16542
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
|
|
16543
16836
|
this.renderer.setAttribute(popupWrapper, 'dir', this.direction);
|
|
16544
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
|
|
16545
16837
|
this.popupRef.popupOpen.subscribe(() => {
|
|
16546
16838
|
this.cdr.detectChanges();
|
|
16547
16839
|
this.opened.emit();
|
|
@@ -16562,8 +16854,6 @@ class MultiSelectTreeComponent {
|
|
|
16562
16854
|
if (this.popupRef) {
|
|
16563
16855
|
this.popupRef.close();
|
|
16564
16856
|
this.popupRef = null;
|
|
16565
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
|
|
16566
|
-
this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
|
|
16567
16857
|
this.clearFilter();
|
|
16568
16858
|
}
|
|
16569
16859
|
}
|
|
@@ -16877,8 +17167,6 @@ class MultiSelectTreeComponent {
|
|
|
16877
17167
|
closeActionSheet() {
|
|
16878
17168
|
this.wrapper.nativeElement.focus();
|
|
16879
17169
|
this.actionSheet.toggle(false);
|
|
16880
|
-
this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
|
|
16881
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
|
|
16882
17170
|
this.clearFilter();
|
|
16883
17171
|
this.closed.emit();
|
|
16884
17172
|
}
|
|
@@ -16886,13 +17174,11 @@ class MultiSelectTreeComponent {
|
|
|
16886
17174
|
this.actionSheet.toggle(true);
|
|
16887
17175
|
this.adaptiveTitle = setActionSheetTitle(this.wrapper, this.adaptiveTitle);
|
|
16888
17176
|
this.cdr.detectChanges();
|
|
16889
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
|
|
16890
|
-
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
|
|
16891
17177
|
this.cdr.detectChanges();
|
|
16892
17178
|
this.opened.emit();
|
|
16893
17179
|
}
|
|
16894
17180
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: i0.Renderer2 }, { token: NavigationService }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: MultiSelectTreeLookupService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16895
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-disabled": "this.isDisabled", "
|
|
17181
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.isReadonly", "attr.aria-activedescendant": "this.ariaActiveDescendant", "class.k-readonly": "this.readonly" } }, providers: [
|
|
16896
17182
|
LocalizationService,
|
|
16897
17183
|
NavigationService,
|
|
16898
17184
|
DataService,
|
|
@@ -16928,6 +17214,9 @@ class MultiSelectTreeComponent {
|
|
|
16928
17214
|
i18n-clearTitle="kendo.multiselecttree.clearTitle|The title of the clear button"
|
|
16929
17215
|
clearTitle="clear"
|
|
16930
17216
|
|
|
17217
|
+
i18n-chipListLabel="kendo.multiselecttree.chipListLabel|The accessible label of the tag list element that contains the selected items"
|
|
17218
|
+
chipListLabel="chip list"
|
|
17219
|
+
|
|
16931
17220
|
i18n-checkAllText="kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox"
|
|
16932
17221
|
checkAllText="Check all"
|
|
16933
17222
|
|
|
@@ -16942,6 +17231,9 @@ class MultiSelectTreeComponent {
|
|
|
16942
17231
|
|
|
16943
17232
|
i18n-filterInputPlaceholder="kendo.multiselecttree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
|
|
16944
17233
|
filterInputPlaceholder="Filter"
|
|
17234
|
+
|
|
17235
|
+
i18n-inputLabel="kendo.multiselecttree.inputLabel|The text set as aria-label on the combobox input element"
|
|
17236
|
+
inputLabel="Select items"
|
|
16945
17237
|
>
|
|
16946
17238
|
</ng-container>
|
|
16947
17239
|
<kendo-taglist
|
|
@@ -16960,10 +17252,19 @@ class MultiSelectTreeComponent {
|
|
|
16960
17252
|
[template]="tagTemplate"
|
|
16961
17253
|
[groupTemplate]="groupTagTemplate"
|
|
16962
17254
|
[disabledIndices]="disabledIndices"
|
|
17255
|
+
[ariaLabel]="messageFor('chipListLabel')"
|
|
16963
17256
|
(removeTag)="handleRemoveTag($event)"
|
|
16964
17257
|
>
|
|
16965
17258
|
</kendo-taglist>
|
|
16966
|
-
<span class="k-input-inner"
|
|
17259
|
+
<span class="k-input-inner"
|
|
17260
|
+
role="combobox"
|
|
17261
|
+
aria-haspopup="tree"
|
|
17262
|
+
[attr.aria-expanded]="isOpen"
|
|
17263
|
+
[attr.aria-autocomplete]="filterable ? 'list' : null"
|
|
17264
|
+
[attr.aria-controls]="isOpen ? treeViewId : null"
|
|
17265
|
+
[attr.aria-describedby]="tags?.length ? tagListId : null"
|
|
17266
|
+
[attr.aria-disabled]="disabled || null"
|
|
17267
|
+
[attr.aria-label]="messageFor('inputLabel')">
|
|
16967
17268
|
@if (!tags || !tags.length) {
|
|
16968
17269
|
<span
|
|
16969
17270
|
class="k-input-value-text"
|
|
@@ -16981,7 +17282,6 @@ class MultiSelectTreeComponent {
|
|
|
16981
17282
|
(click)="clearAll($event)"
|
|
16982
17283
|
>
|
|
16983
17284
|
<kendo-icon-wrapper
|
|
16984
|
-
class="k-icon"
|
|
16985
17285
|
name="x"
|
|
16986
17286
|
[svgIcon]="xIcon"
|
|
16987
17287
|
>
|
|
@@ -17004,6 +17304,7 @@ class MultiSelectTreeComponent {
|
|
|
17004
17304
|
[title]="adaptiveTitle"
|
|
17005
17305
|
[showTextInput]="filterable"
|
|
17006
17306
|
[subtitle]="adaptiveSubtitle"
|
|
17307
|
+
[showListContainer]="false"
|
|
17007
17308
|
(closePopup)="togglePopup(false)"
|
|
17008
17309
|
(textInputChange)="onFilterChange($event)"
|
|
17009
17310
|
[searchBarValue]="filter"
|
|
@@ -17020,7 +17321,7 @@ class MultiSelectTreeComponent {
|
|
|
17020
17321
|
class="k-textbox k-input"
|
|
17021
17322
|
[ngClass]="filterInputClasses"
|
|
17022
17323
|
>
|
|
17023
|
-
<span class="k-input-prefix">
|
|
17324
|
+
<span class="k-input-prefix k-input-prefix-horizontal">
|
|
17024
17325
|
<kendo-icon-wrapper
|
|
17025
17326
|
class="k-icon"
|
|
17026
17327
|
name="search"
|
|
@@ -17028,6 +17329,7 @@ class MultiSelectTreeComponent {
|
|
|
17028
17329
|
>
|
|
17029
17330
|
</kendo-icon-wrapper>
|
|
17030
17331
|
</span>
|
|
17332
|
+
<kendo-separator></kendo-separator>
|
|
17031
17333
|
<input
|
|
17032
17334
|
#filterInput
|
|
17033
17335
|
(input)="handleFilterInputChange($event.target)"
|
|
@@ -17151,7 +17453,7 @@ class MultiSelectTreeComponent {
|
|
|
17151
17453
|
@if (isOpen || isAdaptiveModeEnabled) {
|
|
17152
17454
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
17153
17455
|
}
|
|
17154
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { 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: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
|
|
17456
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }] });
|
|
17155
17457
|
}
|
|
17156
17458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
|
|
17157
17459
|
type: Component,
|
|
@@ -17195,6 +17497,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17195
17497
|
i18n-clearTitle="kendo.multiselecttree.clearTitle|The title of the clear button"
|
|
17196
17498
|
clearTitle="clear"
|
|
17197
17499
|
|
|
17500
|
+
i18n-chipListLabel="kendo.multiselecttree.chipListLabel|The accessible label of the tag list element that contains the selected items"
|
|
17501
|
+
chipListLabel="chip list"
|
|
17502
|
+
|
|
17198
17503
|
i18n-checkAllText="kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox"
|
|
17199
17504
|
checkAllText="Check all"
|
|
17200
17505
|
|
|
@@ -17209,6 +17514,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17209
17514
|
|
|
17210
17515
|
i18n-filterInputPlaceholder="kendo.multiselecttree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
|
|
17211
17516
|
filterInputPlaceholder="Filter"
|
|
17517
|
+
|
|
17518
|
+
i18n-inputLabel="kendo.multiselecttree.inputLabel|The text set as aria-label on the combobox input element"
|
|
17519
|
+
inputLabel="Select items"
|
|
17212
17520
|
>
|
|
17213
17521
|
</ng-container>
|
|
17214
17522
|
<kendo-taglist
|
|
@@ -17227,10 +17535,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17227
17535
|
[template]="tagTemplate"
|
|
17228
17536
|
[groupTemplate]="groupTagTemplate"
|
|
17229
17537
|
[disabledIndices]="disabledIndices"
|
|
17538
|
+
[ariaLabel]="messageFor('chipListLabel')"
|
|
17230
17539
|
(removeTag)="handleRemoveTag($event)"
|
|
17231
17540
|
>
|
|
17232
17541
|
</kendo-taglist>
|
|
17233
|
-
<span class="k-input-inner"
|
|
17542
|
+
<span class="k-input-inner"
|
|
17543
|
+
role="combobox"
|
|
17544
|
+
aria-haspopup="tree"
|
|
17545
|
+
[attr.aria-expanded]="isOpen"
|
|
17546
|
+
[attr.aria-autocomplete]="filterable ? 'list' : null"
|
|
17547
|
+
[attr.aria-controls]="isOpen ? treeViewId : null"
|
|
17548
|
+
[attr.aria-describedby]="tags?.length ? tagListId : null"
|
|
17549
|
+
[attr.aria-disabled]="disabled || null"
|
|
17550
|
+
[attr.aria-label]="messageFor('inputLabel')">
|
|
17234
17551
|
@if (!tags || !tags.length) {
|
|
17235
17552
|
<span
|
|
17236
17553
|
class="k-input-value-text"
|
|
@@ -17248,7 +17565,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17248
17565
|
(click)="clearAll($event)"
|
|
17249
17566
|
>
|
|
17250
17567
|
<kendo-icon-wrapper
|
|
17251
|
-
class="k-icon"
|
|
17252
17568
|
name="x"
|
|
17253
17569
|
[svgIcon]="xIcon"
|
|
17254
17570
|
>
|
|
@@ -17271,6 +17587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17271
17587
|
[title]="adaptiveTitle"
|
|
17272
17588
|
[showTextInput]="filterable"
|
|
17273
17589
|
[subtitle]="adaptiveSubtitle"
|
|
17590
|
+
[showListContainer]="false"
|
|
17274
17591
|
(closePopup)="togglePopup(false)"
|
|
17275
17592
|
(textInputChange)="onFilterChange($event)"
|
|
17276
17593
|
[searchBarValue]="filter"
|
|
@@ -17287,7 +17604,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17287
17604
|
class="k-textbox k-input"
|
|
17288
17605
|
[ngClass]="filterInputClasses"
|
|
17289
17606
|
>
|
|
17290
|
-
<span class="k-input-prefix">
|
|
17607
|
+
<span class="k-input-prefix k-input-prefix-horizontal">
|
|
17291
17608
|
<kendo-icon-wrapper
|
|
17292
17609
|
class="k-icon"
|
|
17293
17610
|
name="search"
|
|
@@ -17295,6 +17612,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17295
17612
|
>
|
|
17296
17613
|
</kendo-icon-wrapper>
|
|
17297
17614
|
</span>
|
|
17615
|
+
<kendo-separator></kendo-separator>
|
|
17298
17616
|
<input
|
|
17299
17617
|
#filterInput
|
|
17300
17618
|
(input)="handleFilterInputChange($event.target)"
|
|
@@ -17420,17 +17738,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17420
17738
|
}
|
|
17421
17739
|
`,
|
|
17422
17740
|
standalone: true,
|
|
17423
|
-
imports: [LocalizedMessagesDirective, TagListComponent, IconWrapperComponent, NgTemplateOutlet, AdaptiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent]
|
|
17741
|
+
imports: [LocalizedMessagesDirective, TagListComponent, IconWrapperComponent, NgTemplateOutlet, AdaptiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent, SeparatorComponent]
|
|
17424
17742
|
}]
|
|
17425
17743
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2.PopupService }, { type: i0.Renderer2 }, { type: NavigationService }, { type: i0.NgZone }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: MultiSelectTreeLookupService }, { type: i7.AdaptiveService }], propDecorators: { isDisabled: [{
|
|
17426
17744
|
type: HostBinding,
|
|
17427
17745
|
args: ['class.k-disabled']
|
|
17428
|
-
}, {
|
|
17429
|
-
type: HostBinding,
|
|
17430
|
-
args: ['attr.aria-disabled']
|
|
17431
|
-
}], hostAriaAutocomplete: [{
|
|
17432
|
-
type: HostBinding,
|
|
17433
|
-
args: ['attr.aria-autocomplete']
|
|
17434
17746
|
}], isLoading: [{
|
|
17435
17747
|
type: HostBinding,
|
|
17436
17748
|
args: ['class.k-loading']
|
|
@@ -17449,18 +17761,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
17449
17761
|
}], hostTabIndex: [{
|
|
17450
17762
|
type: HostBinding,
|
|
17451
17763
|
args: ['attr.tabindex']
|
|
17452
|
-
}], role: [{
|
|
17453
|
-
type: HostBinding,
|
|
17454
|
-
args: ['attr.role']
|
|
17455
|
-
}], ariaHasPopup: [{
|
|
17456
|
-
type: HostBinding,
|
|
17457
|
-
args: ['attr.aria-haspopup']
|
|
17458
17764
|
}], isReadonly: [{
|
|
17459
17765
|
type: HostBinding,
|
|
17460
17766
|
args: ['attr.readonly']
|
|
17461
|
-
}], ariaDescribedBy: [{
|
|
17462
|
-
type: HostBinding,
|
|
17463
|
-
args: ['attr.aria-describedby']
|
|
17464
17767
|
}], ariaActiveDescendant: [{
|
|
17465
17768
|
type: HostBinding,
|
|
17466
17769
|
args: ['attr.aria-activedescendant']
|
|
@@ -17881,7 +18184,6 @@ const DEFAULT_FILTER_SETTINGS = {
|
|
|
17881
18184
|
/**
|
|
17882
18185
|
* Implements an event handler for the `filterChange` event of a DropDowns component
|
|
17883
18186
|
* which performs simple data filtering.
|
|
17884
|
-
* Currently, the built-in filtering does not work with [grouped data](https://www.telerik.com/kendo-angular-ui/components/data-query/api/groupby).
|
|
17885
18187
|
*
|
|
17886
18188
|
* @example
|
|
17887
18189
|
* ```ts
|
|
@@ -17941,7 +18243,14 @@ class FilterDirective {
|
|
|
17941
18243
|
}
|
|
17942
18244
|
}
|
|
17943
18245
|
handleFilterChange(query) {
|
|
17944
|
-
|
|
18246
|
+
if (isGroupedData(this.data)) {
|
|
18247
|
+
this.component.data = this.data
|
|
18248
|
+
.map(group => ({ ...group, items: group.items.filter(item => this.matchesAnyField(item, query)) }))
|
|
18249
|
+
.filter(group => group.items.length > 0);
|
|
18250
|
+
}
|
|
18251
|
+
else {
|
|
18252
|
+
this.component.data = this.data.filter(item => this.matchesAnyField(item, query));
|
|
18253
|
+
}
|
|
17945
18254
|
}
|
|
17946
18255
|
matchesAnyField(item, query) {
|
|
17947
18256
|
const normalizedQuery = this.normalizeValue(query);
|
|
@@ -18018,7 +18327,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
18018
18327
|
* <kendo-combobox>
|
|
18019
18328
|
* <kendo-combobox-messages
|
|
18020
18329
|
* noDataText="No items found"
|
|
18021
|
-
* filterInputPlaceholder="Search items"
|
|
18330
|
+
* filterInputPlaceholder="Search items"
|
|
18331
|
+
* clearTitle="Clear selection">
|
|
18022
18332
|
* </kendo-combobox-messages>
|
|
18023
18333
|
* </kendo-combobox>
|
|
18024
18334
|
*
|
|
@@ -18032,7 +18342,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
18032
18342
|
* <kendo-autocomplete>
|
|
18033
18343
|
* <kendo-autocomplete-messages
|
|
18034
18344
|
* noDataText="No items found"
|
|
18035
|
-
* filterInputPlaceholder="Type to search"
|
|
18345
|
+
* filterInputPlaceholder="Type to search"
|
|
18346
|
+
* clearTitle="Clear input">
|
|
18036
18347
|
* </kendo-autocomplete-messages>
|
|
18037
18348
|
* </kendo-autocomplete>
|
|
18038
18349
|
*
|