@progress/kendo-angular-dropdowns 7.0.3 → 7.1.0-dev.202208301423
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/autocomplete/autocomplete.component.d.ts +2 -1
- package/bundles/kendo-angular-dropdowns.umd.js +1 -1
- package/comboboxes/combobox.component.d.ts +1 -2
- package/common/list.component.d.ts +6 -1
- package/common/navigation/navigation-action.d.ts +3 -1
- package/common/navigation/navigation.service.d.ts +2 -0
- package/common/searchbar.component.d.ts +17 -6
- package/common/shared.module.d.ts +1 -1
- package/dropdownlist/dropdownlist.component.d.ts +23 -20
- package/esm2015/autocomplete/autocomplete.component.js +28 -9
- package/esm2015/comboboxes/combobox.component.js +27 -13
- package/esm2015/comboboxes/multicolumncombobox.component.js +13 -3
- package/esm2015/common/list.component.js +27 -1
- package/esm2015/common/navigation/navigation-action.js +2 -0
- package/esm2015/common/navigation/navigation.service.js +8 -0
- package/esm2015/common/searchbar.component.js +80 -20
- package/esm2015/common/shared.module.js +6 -6
- package/esm2015/dropdownlist/dropdownlist.component.js +108 -89
- package/esm2015/dropdowntrees/dropdowntree.component.js +1 -1
- package/esm2015/multiselect/multiselect.component.js +17 -21
- package/esm2015/package-metadata.js +1 -1
- package/fesm2015/kendo-angular-dropdowns.js +315 -164
- package/multiselect/multiselect.component.d.ts +0 -3
- package/package.json +1 -1
|
@@ -69,7 +69,6 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
69
69
|
*/
|
|
70
70
|
togglePopup(open: boolean): void;
|
|
71
71
|
get activeDescendant(): string;
|
|
72
|
-
get noDataLabel(): string;
|
|
73
72
|
get appendTo(): ViewContainerRef;
|
|
74
73
|
dataItem: any;
|
|
75
74
|
selected: any[];
|
|
@@ -432,7 +431,7 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
432
431
|
/**
|
|
433
432
|
* @hidden
|
|
434
433
|
*/
|
|
435
|
-
clearValue(event
|
|
434
|
+
clearValue(event?: any): void;
|
|
436
435
|
/**
|
|
437
436
|
* @hidden
|
|
438
437
|
*/
|
|
@@ -17,6 +17,7 @@ import { MultiSelectCheckableSettings } from './models/checkboxes-settings';
|
|
|
17
17
|
import { DropDownSize } from './models/size';
|
|
18
18
|
import { DropDownRounded } from './models/rounded';
|
|
19
19
|
import { ListType } from './models/list-type';
|
|
20
|
+
import { NavigationAction } from './navigation/navigation-action';
|
|
20
21
|
import * as i0 from "@angular/core";
|
|
21
22
|
/**
|
|
22
23
|
* @hidden
|
|
@@ -44,6 +45,8 @@ export declare class ListComponent implements OnChanges, OnDestroy, AfterViewIni
|
|
|
44
45
|
virtual: VirtualizationSettings;
|
|
45
46
|
type: ListType;
|
|
46
47
|
checkboxes: MultiSelectCheckableSettings;
|
|
48
|
+
ariaLive: string;
|
|
49
|
+
isMultiselect: boolean;
|
|
47
50
|
set data(data: any[]);
|
|
48
51
|
get data(): any[];
|
|
49
52
|
set size(size: DropDownSize);
|
|
@@ -100,12 +103,14 @@ export declare class ListComponent implements OnChanges, OnDestroy, AfterViewIni
|
|
|
100
103
|
isDisabled(index: number): boolean;
|
|
101
104
|
isAltRow(index: number): boolean;
|
|
102
105
|
scrollToItem(index: number): void;
|
|
106
|
+
scrollWithOnePage(action: NavigationAction): void;
|
|
103
107
|
scrollToIndex(index: number): void;
|
|
104
108
|
scroll(item: ElementRef<HTMLElement>): void;
|
|
105
109
|
/**
|
|
106
110
|
* Indicates whether a scrollbar is currently rendered in the list.
|
|
107
111
|
*/
|
|
108
112
|
hasScrollbar(): boolean;
|
|
113
|
+
isItemSelected(index: number): boolean;
|
|
109
114
|
/**
|
|
110
115
|
* Sets the list's content overflow (hides/shows scrollbar)
|
|
111
116
|
*/
|
|
@@ -121,5 +126,5 @@ export declare class ListComponent implements OnChanges, OnDestroy, AfterViewIni
|
|
|
121
126
|
private firstGroupHeaderInTargetedPage;
|
|
122
127
|
private setComponentClasses;
|
|
123
128
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
|
|
124
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "kendo-list", never, { "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"; "data": "data"; "size": "size"; "rounded": "rounded"; }, { "onClick": "onClick"; "pageChange": "pageChange"; "listResize": "listResize"; }, never, never>;
|
|
129
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "kendo-list", never, { "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"; "data": "data"; "size": "size"; "rounded": "rounded"; }, { "onClick": "onClick"; "pageChange": "pageChange"; "listResize": "listResize"; }, never, never>;
|
|
125
130
|
}
|
|
@@ -37,6 +37,8 @@ export declare class NavigationService {
|
|
|
37
37
|
backspace: EventEmitter<NavigationEvent>;
|
|
38
38
|
home: EventEmitter<NavigationEvent>;
|
|
39
39
|
end: EventEmitter<NavigationEvent>;
|
|
40
|
+
pagedown: EventEmitter<NavigationEvent>;
|
|
41
|
+
pageup: EventEmitter<NavigationEvent>;
|
|
40
42
|
constructor(disabledItemsService: DisabledItemsService, selectionService: SelectionService);
|
|
41
43
|
process(args: any): NavigationAction;
|
|
42
44
|
private next;
|
|
@@ -2,26 +2,31 @@
|
|
|
2
2
|
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Renderer2, EventEmitter, ElementRef, OnChanges, OnInit, OnDestroy } from '@angular/core';
|
|
5
|
+
import { Renderer2, EventEmitter, ElementRef, OnChanges, OnInit, OnDestroy, Injector, AfterContentChecked } from '@angular/core';
|
|
6
6
|
import { Direction } from './models/direction';
|
|
7
7
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
/**
|
|
10
10
|
* @hidden
|
|
11
11
|
*/
|
|
12
|
-
export declare class SearchBarComponent implements OnChanges, OnInit, OnDestroy {
|
|
12
|
+
export declare class SearchBarComponent implements OnChanges, OnInit, OnDestroy, AfterContentChecked {
|
|
13
13
|
private localization;
|
|
14
|
+
private injector;
|
|
14
15
|
direction: Direction;
|
|
15
16
|
id: string;
|
|
16
17
|
listId: string;
|
|
17
18
|
tagListId: string;
|
|
18
19
|
activeDescendant: string;
|
|
19
|
-
noDataLabel: string;
|
|
20
20
|
disabled: boolean;
|
|
21
21
|
readonly: boolean;
|
|
22
22
|
tabIndex: number;
|
|
23
23
|
popupOpen: boolean;
|
|
24
24
|
role: string;
|
|
25
|
+
isLoading: boolean;
|
|
26
|
+
set isSuggestable(isSuggestable: boolean);
|
|
27
|
+
get isSuggestable(): boolean;
|
|
28
|
+
set isFilterable(isFilterable: boolean);
|
|
29
|
+
get isFilterable(): boolean;
|
|
25
30
|
get userInput(): string;
|
|
26
31
|
set userInput(userInput: string);
|
|
27
32
|
suggestedText: string;
|
|
@@ -39,14 +44,20 @@ export declare class SearchBarComponent implements OnChanges, OnInit, OnDestroy
|
|
|
39
44
|
private _userInput;
|
|
40
45
|
private _previousValue;
|
|
41
46
|
private _placeholder;
|
|
47
|
+
private _isSuggestable;
|
|
48
|
+
private _isFilterable;
|
|
49
|
+
private control?;
|
|
42
50
|
private renderer;
|
|
43
|
-
private
|
|
44
|
-
constructor(localization: LocalizationService, renderer: Renderer2);
|
|
51
|
+
private subs;
|
|
52
|
+
constructor(localization: LocalizationService, renderer: Renderer2, injector: Injector);
|
|
45
53
|
ngOnInit(): void;
|
|
54
|
+
ngAfterContentChecked(): void;
|
|
46
55
|
ngOnChanges(changes: any): void;
|
|
47
56
|
ngOnDestroy(): void;
|
|
48
57
|
private writeInputValue;
|
|
49
58
|
private setInputSelection;
|
|
59
|
+
private setAriaInvalid;
|
|
60
|
+
private setAriaAutocomplete;
|
|
50
61
|
handleInput(event: any): void;
|
|
51
62
|
handleFocus(event: any): void;
|
|
52
63
|
handleBlur(event: any): void;
|
|
@@ -55,5 +66,5 @@ export declare class SearchBarComponent implements OnChanges, OnInit, OnDestroy
|
|
|
55
66
|
blur(): void;
|
|
56
67
|
setInputSize(): void;
|
|
57
68
|
static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarComponent, never>;
|
|
58
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SearchBarComponent, "kendo-searchbar", never, { "id": "id"; "listId": "listId"; "tagListId": "tagListId"; "activeDescendant": "activeDescendant"; "
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SearchBarComponent, "kendo-searchbar", never, { "id": "id"; "listId": "listId"; "tagListId": "tagListId"; "activeDescendant": "activeDescendant"; "disabled": "disabled"; "readonly": "readonly"; "tabIndex": "tabIndex"; "popupOpen": "popupOpen"; "role": "role"; "isLoading": "isLoading"; "isSuggestable": "isSuggestable"; "isFilterable": "isFilterable"; "userInput": "userInput"; "suggestedText": "suggestedText"; "placeholder": "placeholder"; }, { "valueChange": "valueChange"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onClick": "onClick"; "onNavigate": "onNavigate"; }, never, never>;
|
|
59
70
|
}
|
|
@@ -21,6 +21,6 @@ import * as i13 from "./shared-directives.module";
|
|
|
21
21
|
*/
|
|
22
22
|
export declare class SharedModule {
|
|
23
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, [typeof i1.ListComponent, typeof i2.ListItemDirective, typeof i3.SelectableDirective, typeof i4.SearchBarComponent, typeof i5.TemplateContextDirective, typeof i6.TagListComponent, typeof i7.CheckDirective, typeof i8.CheckAllDirective], [typeof i9.CommonModule, typeof i10.FormsModule, typeof i11.PopupModule, typeof i12.ResizeSensorModule, typeof i13.SharedDirectivesModule, typeof i12.EventsModule], [typeof i1.ListComponent, typeof i2.ListItemDirective, typeof i3.SelectableDirective, typeof i4.SearchBarComponent, typeof i5.TemplateContextDirective, typeof i6.TagListComponent, typeof i7.CheckDirective, typeof i8.CheckAllDirective, typeof i9.CommonModule, typeof i10.FormsModule, typeof i11.PopupModule, typeof i12.ResizeSensorModule, typeof i13.SharedDirectivesModule, typeof i12.EventsModule]>;
|
|
24
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, [typeof i1.ListComponent, typeof i2.ListItemDirective, typeof i3.SelectableDirective, typeof i4.SearchBarComponent, typeof i5.TemplateContextDirective, typeof i6.TagListComponent, typeof i7.CheckDirective, typeof i8.CheckAllDirective], [typeof i9.CommonModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i11.PopupModule, typeof i12.ResizeSensorModule, typeof i13.SharedDirectivesModule, typeof i12.EventsModule], [typeof i1.ListComponent, typeof i2.ListItemDirective, typeof i3.SelectableDirective, typeof i4.SearchBarComponent, typeof i5.TemplateContextDirective, typeof i6.TagListComponent, typeof i7.CheckDirective, typeof i8.CheckAllDirective, typeof i9.CommonModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i11.PopupModule, typeof i12.ResizeSensorModule, typeof i13.SharedDirectivesModule, typeof i12.EventsModule]>;
|
|
25
25
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedModule>;
|
|
26
26
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Renderer2, ElementRef, EventEmitter, ViewContainerRef, OnDestroy, OnChanges, NgZone, TemplateRef, ChangeDetectorRef, OnInit, SimpleChanges, AfterContentChecked } from '@angular/core';
|
|
6
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
+
import { Renderer2, ElementRef, EventEmitter, ViewContainerRef, OnDestroy, OnChanges, NgZone, TemplateRef, ChangeDetectorRef, OnInit, SimpleChanges, AfterContentChecked, Injector } from '@angular/core';
|
|
6
|
+
import { ControlValueAccessor, FormControl } from '@angular/forms';
|
|
7
7
|
import { PopupSettings } from '../common/models/popup-settings';
|
|
8
8
|
import { SelectionService } from '../common/selection/selection.service';
|
|
9
9
|
import { NavigationService } from '../common/navigation/navigation.service';
|
|
@@ -62,14 +62,18 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
62
62
|
private renderer;
|
|
63
63
|
private cdr;
|
|
64
64
|
touchEnabled: boolean;
|
|
65
|
+
private injector;
|
|
65
66
|
get width(): any;
|
|
66
67
|
get height(): any;
|
|
67
68
|
get widgetTabIndex(): number;
|
|
68
69
|
get ariaExpanded(): boolean;
|
|
69
|
-
get
|
|
70
|
+
get ariaControls(): string;
|
|
70
71
|
get ariaActivedescendant(): string;
|
|
71
|
-
get noDataLabel(): string;
|
|
72
72
|
get appendTo(): ViewContainerRef;
|
|
73
|
+
/**
|
|
74
|
+
* @hidden
|
|
75
|
+
*/
|
|
76
|
+
get ariaLive(): string;
|
|
73
77
|
/**
|
|
74
78
|
* @hidden
|
|
75
79
|
*/
|
|
@@ -287,7 +291,8 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
287
291
|
*/
|
|
288
292
|
onResize(): void;
|
|
289
293
|
hostClasses: boolean;
|
|
290
|
-
get
|
|
294
|
+
get isDisabledClass(): boolean;
|
|
295
|
+
get isDisabledAttribute(): string;
|
|
291
296
|
get isLoading(): boolean;
|
|
292
297
|
/**
|
|
293
298
|
* @hidden
|
|
@@ -295,12 +300,15 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
295
300
|
focusableId: string;
|
|
296
301
|
get dir(): string;
|
|
297
302
|
get hostTabIndex(): number;
|
|
298
|
-
get
|
|
303
|
+
get readonlyClass(): boolean;
|
|
304
|
+
get readonlyAttr(): string;
|
|
305
|
+
get isBusy(): boolean;
|
|
299
306
|
role: string;
|
|
307
|
+
haspopup: string;
|
|
300
308
|
get isAriaExpanded(): boolean;
|
|
301
|
-
get
|
|
309
|
+
get hostAriaControls(): string;
|
|
310
|
+
get hostAriaInvalid(): string;
|
|
302
311
|
get hostAriaActivedescendant(): string;
|
|
303
|
-
get hostNoDataLabel(): string;
|
|
304
312
|
/**
|
|
305
313
|
* @hidden
|
|
306
314
|
*/
|
|
@@ -318,6 +326,7 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
318
326
|
optionPrefix: string;
|
|
319
327
|
valueLabelId: string;
|
|
320
328
|
filterText: string;
|
|
329
|
+
private subs;
|
|
321
330
|
private _isFocused;
|
|
322
331
|
set isFocused(isFocused: boolean);
|
|
323
332
|
get isFocused(): boolean;
|
|
@@ -330,18 +339,10 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
330
339
|
private word;
|
|
331
340
|
private last;
|
|
332
341
|
private typingTimeout;
|
|
333
|
-
private navigationSubscription;
|
|
334
|
-
private enterSubscription;
|
|
335
|
-
private escSubscription;
|
|
336
|
-
private openSubscription;
|
|
337
|
-
private closeSubscription;
|
|
338
342
|
private filterFocused;
|
|
339
343
|
private filterBlurred;
|
|
340
344
|
private hostElementFocused;
|
|
341
345
|
private hostElementBlurred;
|
|
342
|
-
private componentBlurredSubscription;
|
|
343
|
-
private filterBlurredSubscription;
|
|
344
|
-
private selectionSubscription;
|
|
345
346
|
private touchstartDisposeHandler;
|
|
346
347
|
private _value;
|
|
347
348
|
private _open;
|
|
@@ -350,11 +351,10 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
350
351
|
private text;
|
|
351
352
|
private _popupSettings;
|
|
352
353
|
private _virtualSettings;
|
|
353
|
-
private localizationChangesSubscription;
|
|
354
354
|
private _size;
|
|
355
355
|
private _rounded;
|
|
356
356
|
private _fillMode;
|
|
357
|
-
constructor(wrapper: ElementRef, localization: LocalizationService, popupService: PopupService, selectionService: SelectionService, navigationService: NavigationService, disabledItemsService: DisabledItemsService, dataService: DataService, _zone: NgZone, renderer: Renderer2, cdr: ChangeDetectorRef, touchEnabled: boolean);
|
|
357
|
+
constructor(wrapper: ElementRef, localization: LocalizationService, popupService: PopupService, selectionService: SelectionService, navigationService: NavigationService, disabledItemsService: DisabledItemsService, dataService: DataService, _zone: NgZone, renderer: Renderer2, cdr: ChangeDetectorRef, touchEnabled: boolean, injector: Injector);
|
|
358
358
|
ngOnInit(): void;
|
|
359
359
|
/**
|
|
360
360
|
* @hidden
|
|
@@ -377,6 +377,10 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
377
377
|
* @hidden
|
|
378
378
|
*/
|
|
379
379
|
ngAfterContentChecked(): void;
|
|
380
|
+
/**
|
|
381
|
+
* @hidden
|
|
382
|
+
*/
|
|
383
|
+
get formControl(): FormControl;
|
|
380
384
|
/**
|
|
381
385
|
* Focuses a specific item of the DropDownList based on a provided index.
|
|
382
386
|
* If there is a default item it is positioned at index -1.
|
|
@@ -477,7 +481,6 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
477
481
|
private subscribeTouchEvents;
|
|
478
482
|
private subscribeFocusEvents;
|
|
479
483
|
private unSubscribeFocusEvents;
|
|
480
|
-
private unsubscribeEvents;
|
|
481
484
|
private itemFromEvent;
|
|
482
485
|
private currentOrDefault;
|
|
483
486
|
private firstFocusableIndex;
|
|
@@ -513,6 +516,6 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
513
516
|
pageChange(event: PageChangeEvent): void;
|
|
514
517
|
private assignAriaDescribedBy;
|
|
515
518
|
private setComponentClasses;
|
|
516
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DropDownListComponent, [null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
519
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DropDownListComponent, [null, null, null, null, null, null, null, null, null, null, { optional: true; }, null]>;
|
|
517
520
|
static ɵcmp: i0.ɵɵComponentDeclaration<DropDownListComponent, "kendo-dropdownlist", ["kendoDropDownList"], { "iconClass": "iconClass"; "loading": "loading"; "data": "data"; "value": "value"; "textField": "textField"; "valueField": "valueField"; "popupSettings": "popupSettings"; "listHeight": "listHeight"; "defaultItem": "defaultItem"; "disabled": "disabled"; "itemDisabled": "itemDisabled"; "readonly": "readonly"; "filterable": "filterable"; "virtual": "virtual"; "ignoreCase": "ignoreCase"; "delay": "delay"; "valuePrimitive": "valuePrimitive"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "size": "size"; "rounded": "rounded"; "fillMode": "fillMode"; "focusableId": "id"; }, { "valueChange": "valueChange"; "filterChange": "filterChange"; "selectionChange": "selectionChange"; "open": "open"; "opened": "opened"; "close": "close"; "closed": "closed"; "onFocus": "focus"; "onBlur": "blur"; }, ["itemTemplate", "groupTemplate", "fixedGroupTemplate", "valueTemplate", "headerTemplate", "footerTemplate", "noDataTemplate"], never>;
|
|
518
521
|
}
|
|
@@ -274,11 +274,6 @@ export class AutoCompleteComponent {
|
|
|
274
274
|
const dataItem = this.dataService.itemAt(this.selectionService.focused);
|
|
275
275
|
return this.optionPrefix + "-" + getter(dataItem, this.valueField);
|
|
276
276
|
}
|
|
277
|
-
get noDataLabel() {
|
|
278
|
-
if (this.data.length === 0) {
|
|
279
|
-
return this.messageFor('noDataText');
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
277
|
/**
|
|
283
278
|
* Sets the data of the AutoComplete.
|
|
284
279
|
*
|
|
@@ -620,6 +615,8 @@ export class AutoCompleteComponent {
|
|
|
620
615
|
action !== NavigationAction.End &&
|
|
621
616
|
action !== NavigationAction.Left &&
|
|
622
617
|
action !== NavigationAction.Right &&
|
|
618
|
+
action !== NavigationAction.PageDown &&
|
|
619
|
+
action !== NavigationAction.PageUp &&
|
|
623
620
|
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {
|
|
624
621
|
event.preventDefault();
|
|
625
622
|
}
|
|
@@ -646,7 +643,12 @@ export class AutoCompleteComponent {
|
|
|
646
643
|
this.change(value);
|
|
647
644
|
}
|
|
648
645
|
handleEscape() {
|
|
649
|
-
this.
|
|
646
|
+
if (this.isOpen) {
|
|
647
|
+
this.togglePopup(false);
|
|
648
|
+
}
|
|
649
|
+
else {
|
|
650
|
+
this.value = '';
|
|
651
|
+
}
|
|
650
652
|
this.selectionService.focused = -1;
|
|
651
653
|
this.suggestedText = null;
|
|
652
654
|
}
|
|
@@ -745,8 +747,14 @@ export class AutoCompleteComponent {
|
|
|
745
747
|
this.focusSubscription = this.selectionService.onFocus.subscribe(this.handleItemFocus.bind(this));
|
|
746
748
|
this.navigationSubscription = merge(this.navigationService.up, this.navigationService.down).subscribe((event) => this.navigate(event.index));
|
|
747
749
|
this.closeSubscription = this.navigationService.close.subscribe(() => this.togglePopup(false));
|
|
750
|
+
this.openSubscription = this.navigationService.open.subscribe(() => this.togglePopup(true));
|
|
748
751
|
this.enterSubscription = this.navigationService.enter.subscribe(this.handleEnter.bind(this));
|
|
749
752
|
this.escSubscription = this.navigationService.esc.subscribe(this.handleEscape.bind(this));
|
|
753
|
+
this.scrollSubscription = merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
|
754
|
+
if (this.isOpen) {
|
|
755
|
+
this.optionsList.scrollWithOnePage(NavigationAction[event.originalEvent.code]);
|
|
756
|
+
}
|
|
757
|
+
});
|
|
750
758
|
}
|
|
751
759
|
subscribeTouchEvents() {
|
|
752
760
|
if (!isDocumentAvailable() || !this.touchEnabled) {
|
|
@@ -768,8 +776,10 @@ export class AutoCompleteComponent {
|
|
|
768
776
|
this.changeSubscription.unsubscribe();
|
|
769
777
|
this.navigationSubscription.unsubscribe();
|
|
770
778
|
this.closeSubscription.unsubscribe();
|
|
779
|
+
this.openSubscription.unsubscribe();
|
|
771
780
|
this.enterSubscription.unsubscribe();
|
|
772
781
|
this.escSubscription.unsubscribe();
|
|
782
|
+
this.scrollSubscription.unsubscribe();
|
|
773
783
|
this.valueChangeSubscription.unsubscribe();
|
|
774
784
|
this.focusSubscription.unsubscribe();
|
|
775
785
|
if (this.touchstartDisposeHandler) {
|
|
@@ -816,6 +826,11 @@ export class AutoCompleteComponent {
|
|
|
816
826
|
popupWrapper.style.width = max;
|
|
817
827
|
popupWrapper.style.height = this.height;
|
|
818
828
|
popupWrapper.setAttribute("dir", this.direction);
|
|
829
|
+
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
830
|
+
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
831
|
+
if (ariaLabel) {
|
|
832
|
+
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
833
|
+
}
|
|
819
834
|
this.popupRef.popupOpen.subscribe(() => {
|
|
820
835
|
this.cdr.detectChanges();
|
|
821
836
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
@@ -919,10 +934,12 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
919
934
|
</ng-container>
|
|
920
935
|
<kendo-searchbar #searchbar
|
|
921
936
|
[role]="'combobox'"
|
|
937
|
+
[isSuggestable]="suggest"
|
|
938
|
+
[isFilterable]="filterable"
|
|
939
|
+
[isLoading]="isLoading"
|
|
922
940
|
[id]="focusableId"
|
|
923
941
|
[listId]="listBoxId"
|
|
924
942
|
[activeDescendant]="activeDescendant"
|
|
925
|
-
[noDataLabel]="noDataLabel"
|
|
926
943
|
[userInput]="text"
|
|
927
944
|
[suggestedText]="suggestion"
|
|
928
945
|
[disabled]="disabled"
|
|
@@ -996,7 +1013,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
996
1013
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
997
1014
|
</ng-template>
|
|
998
1015
|
<ng-container #container></ng-container>
|
|
999
|
-
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
1016
|
+
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i10.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
1000
1017
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
1001
1018
|
type: Component,
|
|
1002
1019
|
args: [{
|
|
@@ -1033,10 +1050,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1033
1050
|
</ng-container>
|
|
1034
1051
|
<kendo-searchbar #searchbar
|
|
1035
1052
|
[role]="'combobox'"
|
|
1053
|
+
[isSuggestable]="suggest"
|
|
1054
|
+
[isFilterable]="filterable"
|
|
1055
|
+
[isLoading]="isLoading"
|
|
1036
1056
|
[id]="focusableId"
|
|
1037
1057
|
[listId]="listBoxId"
|
|
1038
1058
|
[activeDescendant]="activeDescendant"
|
|
1039
|
-
[noDataLabel]="noDataLabel"
|
|
1040
1059
|
[userInput]="text"
|
|
1041
1060
|
[suggestedText]="suggestion"
|
|
1042
1061
|
[disabled]="disabled"
|
|
@@ -281,11 +281,6 @@ export class ComboBoxComponent {
|
|
|
281
281
|
const dataItem = this.dataService.itemAt(this.selectionService.focused);
|
|
282
282
|
return this.optionPrefix + "-" + (dataItem ? getter(dataItem, this.valueField) : "");
|
|
283
283
|
}
|
|
284
|
-
get noDataLabel() {
|
|
285
|
-
if (this.data.length === 0) {
|
|
286
|
-
return this.messageFor('noDataText');
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
284
|
get appendTo() {
|
|
290
285
|
const { appendTo } = this.popupSettings;
|
|
291
286
|
if (!appendTo || appendTo === 'root') {
|
|
@@ -619,6 +614,11 @@ export class ComboBoxComponent {
|
|
|
619
614
|
.subscribe((event) => this.navigate(event.index)));
|
|
620
615
|
this.subs.add(this.navigationService.open.subscribe(this.handleNavigationOpen.bind(this)));
|
|
621
616
|
this.subs.add(this.navigationService.close.subscribe(() => this.togglePopup(false)));
|
|
617
|
+
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
|
618
|
+
if (this.isOpen) {
|
|
619
|
+
this.optionsList.scrollWithOnePage(NavigationAction[event.originalEvent.code]);
|
|
620
|
+
}
|
|
621
|
+
}));
|
|
622
622
|
this.subs.add(this.navigationService.esc.subscribe(this.handleEscape.bind(this)));
|
|
623
623
|
this.subs.add(this.navigationService.enter.pipe(tap((event) => {
|
|
624
624
|
if (this.isOpen) {
|
|
@@ -751,9 +751,10 @@ export class ComboBoxComponent {
|
|
|
751
751
|
* @hidden
|
|
752
752
|
*/
|
|
753
753
|
clearValue(event) {
|
|
754
|
-
event.stopImmediatePropagation();
|
|
755
|
-
|
|
756
|
-
|
|
754
|
+
event === null || event === void 0 ? void 0 : event.stopImmediatePropagation();
|
|
755
|
+
if (event) {
|
|
756
|
+
this.focus();
|
|
757
|
+
}
|
|
757
758
|
this._previousDataItem = undefined;
|
|
758
759
|
this.selectionService.resetSelection([]);
|
|
759
760
|
this.clearValueSubject.next();
|
|
@@ -787,7 +788,7 @@ export class ComboBoxComponent {
|
|
|
787
788
|
* @hidden
|
|
788
789
|
*/
|
|
789
790
|
get buttonClasses() {
|
|
790
|
-
return this.loading ? 'k-i-loading k-input-loading-icon' : this.iconClass || 'k-i-
|
|
791
|
+
return this.loading ? 'k-i-loading k-input-loading-icon' : this.iconClass || 'k-i-caret-alt-down';
|
|
791
792
|
}
|
|
792
793
|
/**
|
|
793
794
|
* @hidden
|
|
@@ -980,6 +981,8 @@ export class ComboBoxComponent {
|
|
|
980
981
|
action !== NavigationAction.Right &&
|
|
981
982
|
action !== NavigationAction.Backspace &&
|
|
982
983
|
action !== NavigationAction.Delete &&
|
|
984
|
+
action !== NavigationAction.PageDown &&
|
|
985
|
+
action !== NavigationAction.PageUp &&
|
|
983
986
|
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {
|
|
984
987
|
event.preventDefault();
|
|
985
988
|
}
|
|
@@ -1046,7 +1049,7 @@ export class ComboBoxComponent {
|
|
|
1046
1049
|
* @hidden
|
|
1047
1050
|
*/
|
|
1048
1051
|
handleEscape() {
|
|
1049
|
-
this.togglePopup(false);
|
|
1052
|
+
this.isOpen ? this.togglePopup(false) : this.clearValue();
|
|
1050
1053
|
// clear the focus only if the focused item is not selected
|
|
1051
1054
|
const hasSelected = this.selectionService.selected.length > 0;
|
|
1052
1055
|
if (!hasSelected) {
|
|
@@ -1195,6 +1198,11 @@ export class ComboBoxComponent {
|
|
|
1195
1198
|
popupWrapper.style.width = max;
|
|
1196
1199
|
popupWrapper.style.height = this.popupHeight;
|
|
1197
1200
|
popupWrapper.setAttribute("dir", this.direction);
|
|
1201
|
+
const listBox = this.popupRef.popupElement.querySelector('ul.k-list-ul');
|
|
1202
|
+
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
1203
|
+
if (ariaLabel) {
|
|
1204
|
+
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
1205
|
+
}
|
|
1198
1206
|
this.popupRef.popupOpen.subscribe(() => {
|
|
1199
1207
|
this.cdr.detectChanges();
|
|
1200
1208
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
@@ -1299,8 +1307,10 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1299
1307
|
[role]="'combobox'"
|
|
1300
1308
|
[id]="focusableId"
|
|
1301
1309
|
[listId]="listBoxId"
|
|
1310
|
+
[isLoading]="loading"
|
|
1311
|
+
[isSuggestable]="suggest"
|
|
1312
|
+
[isFilterable]="filterable"
|
|
1302
1313
|
[activeDescendant]="activeDescendant"
|
|
1303
|
-
[noDataLabel]="noDataLabel"
|
|
1304
1314
|
[userInput]="text"
|
|
1305
1315
|
[suggestedText]="getSuggestion()"
|
|
1306
1316
|
[disabled]="disabled"
|
|
@@ -1328,6 +1338,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1328
1338
|
</span>
|
|
1329
1339
|
<button
|
|
1330
1340
|
#select
|
|
1341
|
+
tabindex="-1"
|
|
1331
1342
|
unselectable="on"
|
|
1332
1343
|
type="button"
|
|
1333
1344
|
class="k-input-button k-button k-icon-button"
|
|
@@ -1387,7 +1398,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1387
1398
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
1388
1399
|
</ng-template>
|
|
1389
1400
|
<ng-container #container></ng-container>
|
|
1390
|
-
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
1401
|
+
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i10.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
1391
1402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
1392
1403
|
type: Component,
|
|
1393
1404
|
args: [{
|
|
@@ -1427,8 +1438,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1427
1438
|
[role]="'combobox'"
|
|
1428
1439
|
[id]="focusableId"
|
|
1429
1440
|
[listId]="listBoxId"
|
|
1441
|
+
[isLoading]="loading"
|
|
1442
|
+
[isSuggestable]="suggest"
|
|
1443
|
+
[isFilterable]="filterable"
|
|
1430
1444
|
[activeDescendant]="activeDescendant"
|
|
1431
|
-
[noDataLabel]="noDataLabel"
|
|
1432
1445
|
[userInput]="text"
|
|
1433
1446
|
[suggestedText]="getSuggestion()"
|
|
1434
1447
|
[disabled]="disabled"
|
|
@@ -1456,6 +1469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1456
1469
|
</span>
|
|
1457
1470
|
<button
|
|
1458
1471
|
#select
|
|
1472
|
+
tabindex="-1"
|
|
1459
1473
|
unselectable="on"
|
|
1460
1474
|
type="button"
|
|
1461
1475
|
class="k-input-button k-button k-icon-button"
|
|
@@ -183,6 +183,9 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
183
183
|
|
|
184
184
|
i18n-clearTitle="kendo.multicolumncombobox.clearTitle|The title of the clear button"
|
|
185
185
|
clearTitle="clear"
|
|
186
|
+
|
|
187
|
+
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
188
|
+
selectButtonText="Select"
|
|
186
189
|
>
|
|
187
190
|
</ng-container>
|
|
188
191
|
<kendo-searchbar
|
|
@@ -190,8 +193,10 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
190
193
|
[role]="'combobox'"
|
|
191
194
|
[id]="focusableId"
|
|
192
195
|
[listId]="listBoxId"
|
|
196
|
+
[isLoading]="loading"
|
|
197
|
+
[isSuggestable]="suggest"
|
|
198
|
+
[isFilterable]="filterable"
|
|
193
199
|
[activeDescendant]="activeDescendant"
|
|
194
|
-
[noDataLabel]="noDataLabel"
|
|
195
200
|
[userInput]="text"
|
|
196
201
|
[suggestedText]="getSuggestion()"
|
|
197
202
|
[disabled]="disabled"
|
|
@@ -389,7 +394,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
389
394
|
|
|
390
395
|
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
391
396
|
<ng-container #container></ng-container>
|
|
392
|
-
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
397
|
+
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i10.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
393
398
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
|
|
394
399
|
type: Component,
|
|
395
400
|
args: [{
|
|
@@ -427,6 +432,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
427
432
|
|
|
428
433
|
i18n-clearTitle="kendo.multicolumncombobox.clearTitle|The title of the clear button"
|
|
429
434
|
clearTitle="clear"
|
|
435
|
+
|
|
436
|
+
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
437
|
+
selectButtonText="Select"
|
|
430
438
|
>
|
|
431
439
|
</ng-container>
|
|
432
440
|
<kendo-searchbar
|
|
@@ -434,8 +442,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
434
442
|
[role]="'combobox'"
|
|
435
443
|
[id]="focusableId"
|
|
436
444
|
[listId]="listBoxId"
|
|
445
|
+
[isLoading]="loading"
|
|
446
|
+
[isSuggestable]="suggest"
|
|
447
|
+
[isFilterable]="filterable"
|
|
437
448
|
[activeDescendant]="activeDescendant"
|
|
438
|
-
[noDataLabel]="noDataLabel"
|
|
439
449
|
[userInput]="text"
|
|
440
450
|
[suggestedText]="getSuggestion()"
|
|
441
451
|
[disabled]="disabled"
|