@progress/kendo-angular-dropdowns 7.1.0-dev.202208301349 → 7.2.0-dev.202209121509
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 +0 -1
- package/bundles/kendo-angular-dropdowns.umd.js +1 -1
- package/comboboxes/combobox.component.d.ts +0 -1
- package/common/data.service.d.ts +5 -0
- package/common/list.component.d.ts +4 -1
- package/common/navigation/navigation-action.d.ts +6 -1
- package/common/navigation/navigation.service.d.ts +5 -0
- package/common/searchbar.component.d.ts +17 -6
- package/common/selection/selection.service.d.ts +18 -4
- package/common/shared.module.d.ts +1 -1
- package/common/util.d.ts +4 -0
- package/dropdownlist/dropdownlist.component.d.ts +22 -10
- package/esm2015/autocomplete/autocomplete.component.js +12 -8
- package/esm2015/comboboxes/combobox.component.js +14 -8
- package/esm2015/comboboxes/multicolumncombobox.component.js +13 -3
- package/esm2015/common/data.service.js +11 -1
- package/esm2015/common/list.component.js +17 -2
- package/esm2015/common/navigation/navigation-action.js +5 -0
- package/esm2015/common/navigation/navigation.service.js +22 -0
- package/esm2015/common/searchbar.component.js +79 -19
- package/esm2015/common/selection/selectable.directive.js +2 -1
- package/esm2015/common/selection/selection.service.js +70 -7
- package/esm2015/common/shared.module.js +6 -6
- package/esm2015/common/util.js +4 -0
- package/esm2015/dropdownlist/dropdownlist.component.js +73 -42
- package/esm2015/multiselect/multiselect.component.js +160 -44
- package/esm2015/package-metadata.js +1 -1
- package/fesm2015/kendo-angular-dropdowns.js +595 -251
- package/multiselect/multiselect.component.d.ts +14 -4
- package/package.json +1 -1
|
@@ -7,12 +7,12 @@ import { EventEmitter, Component, Input, Output, ViewChild, HostBinding, Directi
|
|
|
7
7
|
import * as i9 from '@progress/kendo-angular-common';
|
|
8
8
|
import { isDocumentAvailable, Keys, isChanged, hasObservers, KendoInput, anyChanged, guid as guid$1, ResizeSensorModule, EventsModule } from '@progress/kendo-angular-common';
|
|
9
9
|
import * as i12 from '@angular/forms';
|
|
10
|
-
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
10
|
+
import { NgControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
11
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
12
12
|
import { getter as getter$1, pointers, touchEnabled } from '@progress/kendo-common';
|
|
13
|
+
import { Subscription, merge, fromEvent, Subject, of, interval } from 'rxjs';
|
|
13
14
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
14
15
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
15
|
-
import { merge, fromEvent, Subject, Subscription, of, interval } from 'rxjs';
|
|
16
16
|
import * as i2 from '@progress/kendo-angular-popup';
|
|
17
17
|
import { PopupModule } from '@progress/kendo-angular-popup';
|
|
18
18
|
export { PopupComponent } from '@progress/kendo-angular-popup';
|
|
@@ -29,7 +29,7 @@ const packageMetadata = {
|
|
|
29
29
|
name: '@progress/kendo-angular-dropdowns',
|
|
30
30
|
productName: 'Kendo UI for Angular',
|
|
31
31
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
32
|
-
publishDate:
|
|
32
|
+
publishDate: 1662995282,
|
|
33
33
|
version: '',
|
|
34
34
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
35
35
|
};
|
|
@@ -354,13 +354,18 @@ const getFillModeClass = (component, fillMode) => {
|
|
|
354
354
|
};
|
|
355
355
|
return FILLMODE_CLASSES[fillMode];
|
|
356
356
|
};
|
|
357
|
+
/**
|
|
358
|
+
* @hidden
|
|
359
|
+
*/
|
|
360
|
+
const filterAndMap = (arr, predicate, mapper) => arr.reduce((acc, curr) => predicate(curr) ? [...acc, mapper(curr)] : acc, []);
|
|
357
361
|
|
|
358
362
|
/**
|
|
359
363
|
* @hidden
|
|
360
364
|
*/
|
|
361
365
|
class SearchBarComponent {
|
|
362
|
-
constructor(localization, renderer) {
|
|
366
|
+
constructor(localization, renderer, injector) {
|
|
363
367
|
this.localization = localization;
|
|
368
|
+
this.injector = injector;
|
|
364
369
|
this.valueChange = new EventEmitter();
|
|
365
370
|
this.onBlur = new EventEmitter();
|
|
366
371
|
this.onFocus = new EventEmitter();
|
|
@@ -370,9 +375,30 @@ class SearchBarComponent {
|
|
|
370
375
|
this._userInput = "";
|
|
371
376
|
this._previousValue = "";
|
|
372
377
|
this._placeholder = "";
|
|
378
|
+
this._isSuggestable = false;
|
|
379
|
+
this._isFilterable = false;
|
|
380
|
+
this.subs = new Subscription();
|
|
373
381
|
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
374
382
|
this.renderer = renderer;
|
|
375
383
|
}
|
|
384
|
+
set isSuggestable(isSuggestable) {
|
|
385
|
+
this._isSuggestable = isSuggestable;
|
|
386
|
+
this.setAriaAutocomplete();
|
|
387
|
+
}
|
|
388
|
+
;
|
|
389
|
+
get isSuggestable() {
|
|
390
|
+
return this._isSuggestable;
|
|
391
|
+
}
|
|
392
|
+
;
|
|
393
|
+
set isFilterable(isFilterable) {
|
|
394
|
+
this._isFilterable = isFilterable;
|
|
395
|
+
this.setAriaAutocomplete();
|
|
396
|
+
}
|
|
397
|
+
;
|
|
398
|
+
get isFilterable() {
|
|
399
|
+
return this._isFilterable;
|
|
400
|
+
}
|
|
401
|
+
;
|
|
376
402
|
get userInput() {
|
|
377
403
|
return this._userInput;
|
|
378
404
|
}
|
|
@@ -393,8 +419,19 @@ class SearchBarComponent {
|
|
|
393
419
|
return this.role === 'combobox' ? this.popupOpen : null;
|
|
394
420
|
}
|
|
395
421
|
ngOnInit() {
|
|
396
|
-
this.
|
|
397
|
-
.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
422
|
+
this.subs.add(this.localization
|
|
423
|
+
.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
424
|
+
}
|
|
425
|
+
ngAfterContentChecked() {
|
|
426
|
+
var _a;
|
|
427
|
+
const formControl = (_a = this.injector.get(NgControl, null)) === null || _a === void 0 ? void 0 : _a.control;
|
|
428
|
+
this.control = formControl;
|
|
429
|
+
if (formControl) {
|
|
430
|
+
this.subs.add(formControl.valueChanges.subscribe(() => {
|
|
431
|
+
this.control = formControl;
|
|
432
|
+
}));
|
|
433
|
+
}
|
|
434
|
+
this.setAriaInvalid();
|
|
398
435
|
}
|
|
399
436
|
ngOnChanges(changes) {
|
|
400
437
|
let previousUserInput;
|
|
@@ -426,9 +463,7 @@ class SearchBarComponent {
|
|
|
426
463
|
}
|
|
427
464
|
}
|
|
428
465
|
ngOnDestroy() {
|
|
429
|
-
|
|
430
|
-
this.localizationChangeSubscription.unsubscribe();
|
|
431
|
-
}
|
|
466
|
+
this.subs.unsubscribe();
|
|
432
467
|
}
|
|
433
468
|
writeInputValue(text) {
|
|
434
469
|
if (isDocumentAvailable()) {
|
|
@@ -445,6 +480,33 @@ class SearchBarComponent {
|
|
|
445
480
|
}
|
|
446
481
|
}
|
|
447
482
|
}
|
|
483
|
+
setAriaInvalid() {
|
|
484
|
+
if (this.control) {
|
|
485
|
+
if (this.control.invalid) {
|
|
486
|
+
this.renderer.setAttribute(this.input.nativeElement, 'aria-invalid', 'true');
|
|
487
|
+
}
|
|
488
|
+
else {
|
|
489
|
+
this.renderer.setAttribute(this.input.nativeElement, 'aria-invalid', 'false');
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
this.renderer.removeAttribute(this.input.nativeElement, 'aria-invalid');
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
setAriaAutocomplete() {
|
|
497
|
+
if (this.isFilterable) {
|
|
498
|
+
this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'list');
|
|
499
|
+
}
|
|
500
|
+
if (this.isSuggestable) {
|
|
501
|
+
this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'inline');
|
|
502
|
+
}
|
|
503
|
+
if (this.isFilterable && this.isSuggestable) {
|
|
504
|
+
this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'both');
|
|
505
|
+
}
|
|
506
|
+
if (!this.isFilterable && !this.isSuggestable) {
|
|
507
|
+
this.renderer.removeAttribute(this.input.nativeElement, 'aria-autocomplete');
|
|
508
|
+
}
|
|
509
|
+
}
|
|
448
510
|
handleInput(event) {
|
|
449
511
|
const value = event.target.value;
|
|
450
512
|
if (value !== this.userInput) {
|
|
@@ -485,8 +547,8 @@ class SearchBarComponent {
|
|
|
485
547
|
this.renderer.setAttribute(input, 'size', size.toString());
|
|
486
548
|
}
|
|
487
549
|
}
|
|
488
|
-
SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
489
|
-
SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SearchBarComponent, selector: "kendo-searchbar", inputs: { id: "id", listId: "listId", tagListId: "tagListId", activeDescendant: "activeDescendant",
|
|
550
|
+
SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
551
|
+
SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SearchBarComponent, selector: "kendo-searchbar", inputs: { 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" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "class.k-searchbar": "this.searchBarClass" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
490
552
|
<input #input
|
|
491
553
|
autocomplete="off"
|
|
492
554
|
[id]="id"
|
|
@@ -504,14 +566,12 @@ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
504
566
|
[attr.tabIndex]="tabIndex"
|
|
505
567
|
[attr.dir]="direction"
|
|
506
568
|
[attr.role]="role"
|
|
507
|
-
[attr.aria-disabled]="disabled"
|
|
508
|
-
[attr.aria-readonly]="readonly"
|
|
509
569
|
aria-haspopup="listbox"
|
|
510
570
|
[attr.aria-expanded]="ariaExpanded"
|
|
511
|
-
[attr.aria-
|
|
571
|
+
[attr.aria-controls]="listId"
|
|
512
572
|
[attr.aria-describedby]="tagListId"
|
|
513
573
|
[attr.aria-activedescendant]="activeDescendant"
|
|
514
|
-
[attr.aria-
|
|
574
|
+
[attr.aria-busy]="isLoading"
|
|
515
575
|
/>
|
|
516
576
|
`, isInline: true, directives: [{ type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
517
577
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SearchBarComponent, decorators: [{
|
|
@@ -536,18 +596,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
536
596
|
[attr.tabIndex]="tabIndex"
|
|
537
597
|
[attr.dir]="direction"
|
|
538
598
|
[attr.role]="role"
|
|
539
|
-
[attr.aria-disabled]="disabled"
|
|
540
|
-
[attr.aria-readonly]="readonly"
|
|
541
599
|
aria-haspopup="listbox"
|
|
542
600
|
[attr.aria-expanded]="ariaExpanded"
|
|
543
|
-
[attr.aria-
|
|
601
|
+
[attr.aria-controls]="listId"
|
|
544
602
|
[attr.aria-describedby]="tagListId"
|
|
545
603
|
[attr.aria-activedescendant]="activeDescendant"
|
|
546
|
-
[attr.aria-
|
|
604
|
+
[attr.aria-busy]="isLoading"
|
|
547
605
|
/>
|
|
548
606
|
`
|
|
549
607
|
}]
|
|
550
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }]; }, propDecorators: { id: [{
|
|
608
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { id: [{
|
|
551
609
|
type: Input
|
|
552
610
|
}], listId: [{
|
|
553
611
|
type: Input
|
|
@@ -555,8 +613,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
555
613
|
type: Input
|
|
556
614
|
}], activeDescendant: [{
|
|
557
615
|
type: Input
|
|
558
|
-
}], noDataLabel: [{
|
|
559
|
-
type: Input
|
|
560
616
|
}], disabled: [{
|
|
561
617
|
type: Input
|
|
562
618
|
}], readonly: [{
|
|
@@ -567,6 +623,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
567
623
|
type: Input
|
|
568
624
|
}], role: [{
|
|
569
625
|
type: Input
|
|
626
|
+
}], isLoading: [{
|
|
627
|
+
type: Input
|
|
628
|
+
}], isSuggestable: [{
|
|
629
|
+
type: Input
|
|
630
|
+
}], isFilterable: [{
|
|
631
|
+
type: Input
|
|
570
632
|
}], userInput: [{
|
|
571
633
|
type: Input
|
|
572
634
|
}], suggestedText: [{
|
|
@@ -812,123 +874,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
812
874
|
}]
|
|
813
875
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
814
876
|
|
|
815
|
-
/**
|
|
816
|
-
* @hidden
|
|
817
|
-
*/
|
|
818
|
-
class SelectionService {
|
|
819
|
-
constructor() {
|
|
820
|
-
this.onSelect = new EventEmitter();
|
|
821
|
-
this.onChange = new EventEmitter();
|
|
822
|
-
this.onFocus = new EventEmitter();
|
|
823
|
-
this.total = 0;
|
|
824
|
-
this.selectedIndices = [];
|
|
825
|
-
}
|
|
826
|
-
getTotal() {
|
|
827
|
-
return this.total;
|
|
828
|
-
}
|
|
829
|
-
isSelected(index) {
|
|
830
|
-
return isPresent(this.selectedIndices.find(current => current === index));
|
|
831
|
-
}
|
|
832
|
-
isFocused(index) {
|
|
833
|
-
return index === this.focused;
|
|
834
|
-
}
|
|
835
|
-
focus(index) {
|
|
836
|
-
if (this.isFocused(index)) {
|
|
837
|
-
return;
|
|
838
|
-
}
|
|
839
|
-
this.focused = index;
|
|
840
|
-
this.onFocus.emit(index);
|
|
841
|
-
}
|
|
842
|
-
select(index) {
|
|
843
|
-
if (this.isSelected(index)) {
|
|
844
|
-
return;
|
|
845
|
-
}
|
|
846
|
-
this.selectedIndices = [index];
|
|
847
|
-
this.focused = index;
|
|
848
|
-
this.onSelect.emit({
|
|
849
|
-
indices: [index],
|
|
850
|
-
newSelection: isPresent(index)
|
|
851
|
-
});
|
|
852
|
-
}
|
|
853
|
-
add(index) {
|
|
854
|
-
if (this.isSelected(index)) {
|
|
855
|
-
return;
|
|
856
|
-
}
|
|
857
|
-
this.selectedIndices.push(index);
|
|
858
|
-
this.focused = index;
|
|
859
|
-
this.onChange.emit({
|
|
860
|
-
added: index,
|
|
861
|
-
indices: this.selectedIndices.slice()
|
|
862
|
-
});
|
|
863
|
-
}
|
|
864
|
-
unselect(index) {
|
|
865
|
-
if (!this.isSelected(index)) {
|
|
866
|
-
return;
|
|
867
|
-
}
|
|
868
|
-
const position = this.selectedIndices.indexOf(index);
|
|
869
|
-
this.selectedIndices.splice(position, 1);
|
|
870
|
-
this.focused = index;
|
|
871
|
-
this.onChange.emit({
|
|
872
|
-
indices: this.selectedIndices.slice(),
|
|
873
|
-
removed: index
|
|
874
|
-
});
|
|
875
|
-
}
|
|
876
|
-
change(index) {
|
|
877
|
-
const newSelection = isPresent(index) && !this.isSelected(index);
|
|
878
|
-
this.selectedIndices = [index];
|
|
879
|
-
this.focused = index;
|
|
880
|
-
this.onChange.emit({
|
|
881
|
-
indices: [index],
|
|
882
|
-
newSelection: newSelection
|
|
883
|
-
});
|
|
884
|
-
}
|
|
885
|
-
resetSelection(index) {
|
|
886
|
-
this.selectedIndices = index instanceof Array ? index : [index];
|
|
887
|
-
this.focused = this.selectedIndices[this.selectedIndices.length - 1];
|
|
888
|
-
}
|
|
889
|
-
get selected() {
|
|
890
|
-
return this.selectedIndices.slice();
|
|
891
|
-
}
|
|
892
|
-
get focused() {
|
|
893
|
-
return this.focusedIndex;
|
|
894
|
-
}
|
|
895
|
-
set focused(index) {
|
|
896
|
-
if (this.focusedIndex !== index) {
|
|
897
|
-
this.focusedIndex = index;
|
|
898
|
-
this.onFocus.emit(index);
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
}
|
|
902
|
-
SelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
903
|
-
SelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SelectionService });
|
|
904
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SelectionService, decorators: [{
|
|
905
|
-
type: Injectable
|
|
906
|
-
}] });
|
|
907
|
-
|
|
908
|
-
/**
|
|
909
|
-
* @hidden
|
|
910
|
-
*/
|
|
911
|
-
var NavigationAction;
|
|
912
|
-
(function (NavigationAction) {
|
|
913
|
-
// eslint-disable-next-line id-denylist
|
|
914
|
-
NavigationAction[NavigationAction["Undefined"] = 0] = "Undefined";
|
|
915
|
-
NavigationAction[NavigationAction["Open"] = 1] = "Open";
|
|
916
|
-
NavigationAction[NavigationAction["Close"] = 2] = "Close";
|
|
917
|
-
NavigationAction[NavigationAction["Enter"] = 3] = "Enter";
|
|
918
|
-
NavigationAction[NavigationAction["Tab"] = 4] = "Tab";
|
|
919
|
-
NavigationAction[NavigationAction["Esc"] = 5] = "Esc";
|
|
920
|
-
NavigationAction[NavigationAction["Delete"] = 6] = "Delete";
|
|
921
|
-
NavigationAction[NavigationAction["Backspace"] = 7] = "Backspace";
|
|
922
|
-
NavigationAction[NavigationAction["Home"] = 8] = "Home";
|
|
923
|
-
NavigationAction[NavigationAction["End"] = 9] = "End";
|
|
924
|
-
NavigationAction[NavigationAction["Up"] = 10] = "Up";
|
|
925
|
-
NavigationAction[NavigationAction["Down"] = 11] = "Down";
|
|
926
|
-
NavigationAction[NavigationAction["Left"] = 12] = "Left";
|
|
927
|
-
NavigationAction[NavigationAction["Right"] = 13] = "Right";
|
|
928
|
-
NavigationAction[NavigationAction["PageDown"] = 14] = "PageDown";
|
|
929
|
-
NavigationAction[NavigationAction["PageUp"] = 15] = "PageUp";
|
|
930
|
-
})(NavigationAction || (NavigationAction = {}));
|
|
931
|
-
|
|
932
877
|
/**
|
|
933
878
|
* @hidden
|
|
934
879
|
*/
|
|
@@ -1102,6 +1047,16 @@ class DataService {
|
|
|
1102
1047
|
}
|
|
1103
1048
|
return this._flatData.find((item) => item.header && item.index === index);
|
|
1104
1049
|
}
|
|
1050
|
+
/**
|
|
1051
|
+
* @hidden
|
|
1052
|
+
* Used to get all group items indices.
|
|
1053
|
+
*/
|
|
1054
|
+
groupItemsIndices() {
|
|
1055
|
+
if (this.isGrouped) {
|
|
1056
|
+
return filterAndMap(this.data, item => item.header, mappedItem => mappedItem.index);
|
|
1057
|
+
}
|
|
1058
|
+
return [];
|
|
1059
|
+
}
|
|
1105
1060
|
/**
|
|
1106
1061
|
* @hidden
|
|
1107
1062
|
* Used to get the field by which the data is grouped.
|
|
@@ -1197,6 +1152,190 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1197
1152
|
type: Injectable
|
|
1198
1153
|
}], ctorParameters: function () { return [{ type: DataService }]; } });
|
|
1199
1154
|
|
|
1155
|
+
/**
|
|
1156
|
+
* @hidden
|
|
1157
|
+
*/
|
|
1158
|
+
class SelectionService {
|
|
1159
|
+
constructor(disabledItemsService) {
|
|
1160
|
+
this.disabledItemsService = disabledItemsService;
|
|
1161
|
+
this.onSelect = new EventEmitter();
|
|
1162
|
+
this.onChange = new EventEmitter();
|
|
1163
|
+
this.onFocus = new EventEmitter();
|
|
1164
|
+
this.total = 0;
|
|
1165
|
+
this.selectedIndices = [];
|
|
1166
|
+
this.indicesToBeRemoved = [];
|
|
1167
|
+
this.indicesToBeAdded = [];
|
|
1168
|
+
}
|
|
1169
|
+
getTotal() {
|
|
1170
|
+
return this.total;
|
|
1171
|
+
}
|
|
1172
|
+
isSelected(index) {
|
|
1173
|
+
return isPresent(this.selectedIndices.find(current => current === index));
|
|
1174
|
+
}
|
|
1175
|
+
isFocused(index) {
|
|
1176
|
+
return index === this.focused;
|
|
1177
|
+
}
|
|
1178
|
+
focus(index) {
|
|
1179
|
+
if (this.isFocused(index)) {
|
|
1180
|
+
return;
|
|
1181
|
+
}
|
|
1182
|
+
this.focused = index;
|
|
1183
|
+
this.onFocus.emit(index);
|
|
1184
|
+
}
|
|
1185
|
+
select(index) {
|
|
1186
|
+
if (this.isSelected(index)) {
|
|
1187
|
+
return;
|
|
1188
|
+
}
|
|
1189
|
+
this.selectedIndices = [index];
|
|
1190
|
+
this.focused = index;
|
|
1191
|
+
this.onSelect.emit({
|
|
1192
|
+
indices: [index],
|
|
1193
|
+
newSelection: isPresent(index)
|
|
1194
|
+
});
|
|
1195
|
+
}
|
|
1196
|
+
add(index, preventClosingPopup) {
|
|
1197
|
+
if (this.isSelected(index)) {
|
|
1198
|
+
return;
|
|
1199
|
+
}
|
|
1200
|
+
this.selectedIndices.push(index);
|
|
1201
|
+
this.focused = index;
|
|
1202
|
+
this.onChange.emit({
|
|
1203
|
+
added: index,
|
|
1204
|
+
indices: this.selectedIndices.slice(),
|
|
1205
|
+
preventClosingPopup: preventClosingPopup
|
|
1206
|
+
});
|
|
1207
|
+
}
|
|
1208
|
+
emitMultipleAddedRemoved() {
|
|
1209
|
+
this.onChange.emit({
|
|
1210
|
+
added: this.indicesToBeAdded,
|
|
1211
|
+
removed: this.indicesToBeRemoved,
|
|
1212
|
+
indices: this.selectedIndices.slice(),
|
|
1213
|
+
preventClosingPopup: true,
|
|
1214
|
+
isMultipleSelection: true
|
|
1215
|
+
});
|
|
1216
|
+
this.indicesToBeAdded = [];
|
|
1217
|
+
this.indicesToBeRemoved = [];
|
|
1218
|
+
}
|
|
1219
|
+
addMultiple(indices) {
|
|
1220
|
+
this.indicesToBeAdded = indices.slice();
|
|
1221
|
+
this.selectedIndices.push(...indices);
|
|
1222
|
+
}
|
|
1223
|
+
deselect(index, preventClosingPopup) {
|
|
1224
|
+
if (!this.isSelected(index)) {
|
|
1225
|
+
return;
|
|
1226
|
+
}
|
|
1227
|
+
const position = this.selectedIndices.indexOf(index);
|
|
1228
|
+
this.selectedIndices.splice(position, 1);
|
|
1229
|
+
this.focused = index;
|
|
1230
|
+
if (this.selected.length === 0) {
|
|
1231
|
+
this.lastClickedIndex = null;
|
|
1232
|
+
}
|
|
1233
|
+
this.onChange.emit({
|
|
1234
|
+
indices: this.selectedIndices.slice(),
|
|
1235
|
+
removed: index,
|
|
1236
|
+
preventClosingPopup: preventClosingPopup
|
|
1237
|
+
});
|
|
1238
|
+
}
|
|
1239
|
+
unselectMultiple(indices) {
|
|
1240
|
+
indices.forEach((index) => {
|
|
1241
|
+
const position = this.selectedIndices.indexOf(index);
|
|
1242
|
+
this.selectedIndices.splice(position, 1);
|
|
1243
|
+
});
|
|
1244
|
+
this.indicesToBeRemoved = indices.slice();
|
|
1245
|
+
}
|
|
1246
|
+
change(index) {
|
|
1247
|
+
const newSelection = isPresent(index) && !this.isSelected(index);
|
|
1248
|
+
this.selectedIndices = [index];
|
|
1249
|
+
this.focused = index;
|
|
1250
|
+
this.onChange.emit({
|
|
1251
|
+
indices: [index],
|
|
1252
|
+
newSelection: newSelection
|
|
1253
|
+
});
|
|
1254
|
+
}
|
|
1255
|
+
resetSelection(index) {
|
|
1256
|
+
this.selectedIndices = index instanceof Array ? index : [index];
|
|
1257
|
+
this.focused = this.selectedIndices[this.selectedIndices.length - 1];
|
|
1258
|
+
}
|
|
1259
|
+
get selected() {
|
|
1260
|
+
return this.selectedIndices.slice();
|
|
1261
|
+
}
|
|
1262
|
+
get focused() {
|
|
1263
|
+
return this.focusedIndex;
|
|
1264
|
+
}
|
|
1265
|
+
set focused(index) {
|
|
1266
|
+
if (this.focusedIndex !== index) {
|
|
1267
|
+
this.focusedIndex = index;
|
|
1268
|
+
this.onFocus.emit(index);
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1271
|
+
selectFromTo(from, to) {
|
|
1272
|
+
let addedIndices = [];
|
|
1273
|
+
for (let i = from; i <= to; i++) {
|
|
1274
|
+
if (!this.isSelected(i) && !this.disabledItemsService.isIndexDisabled(i)) {
|
|
1275
|
+
addedIndices.push(i);
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
this.addMultiple(addedIndices);
|
|
1279
|
+
}
|
|
1280
|
+
unselectFromTo(from, to) {
|
|
1281
|
+
let indicesToBeUnselected = [];
|
|
1282
|
+
for (let i = from; i >= to; i--) {
|
|
1283
|
+
if (this.isSelected(i) && !this.disabledItemsService.isIndexDisabled(i)) {
|
|
1284
|
+
indicesToBeUnselected.push(i);
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
this.unselectMultiple(indicesToBeUnselected);
|
|
1288
|
+
}
|
|
1289
|
+
unselectNotNeededIndices(startOfSelection, endOfSelection, totalItems) {
|
|
1290
|
+
let indicesToBeUnselected = [];
|
|
1291
|
+
for (let i = 0; i < startOfSelection; i++) {
|
|
1292
|
+
if (this.isSelected(i)) {
|
|
1293
|
+
indicesToBeUnselected.push(i);
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
for (let i = endOfSelection + 1; i < totalItems; i++) {
|
|
1297
|
+
if (this.isSelected(i)) {
|
|
1298
|
+
indicesToBeUnselected.push(i);
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
this.unselectMultiple(indicesToBeUnselected);
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
SelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SelectionService, deps: [{ token: DisabledItemsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1305
|
+
SelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SelectionService });
|
|
1306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SelectionService, decorators: [{
|
|
1307
|
+
type: Injectable
|
|
1308
|
+
}], ctorParameters: function () { return [{ type: DisabledItemsService }]; } });
|
|
1309
|
+
|
|
1310
|
+
/**
|
|
1311
|
+
* @hidden
|
|
1312
|
+
*/
|
|
1313
|
+
var NavigationAction;
|
|
1314
|
+
(function (NavigationAction) {
|
|
1315
|
+
// eslint-disable-next-line id-denylist
|
|
1316
|
+
NavigationAction[NavigationAction["Undefined"] = 0] = "Undefined";
|
|
1317
|
+
NavigationAction[NavigationAction["Open"] = 1] = "Open";
|
|
1318
|
+
NavigationAction[NavigationAction["Close"] = 2] = "Close";
|
|
1319
|
+
NavigationAction[NavigationAction["Enter"] = 3] = "Enter";
|
|
1320
|
+
NavigationAction[NavigationAction["Tab"] = 4] = "Tab";
|
|
1321
|
+
NavigationAction[NavigationAction["Esc"] = 5] = "Esc";
|
|
1322
|
+
NavigationAction[NavigationAction["Delete"] = 6] = "Delete";
|
|
1323
|
+
NavigationAction[NavigationAction["Backspace"] = 7] = "Backspace";
|
|
1324
|
+
NavigationAction[NavigationAction["Home"] = 8] = "Home";
|
|
1325
|
+
NavigationAction[NavigationAction["End"] = 9] = "End";
|
|
1326
|
+
NavigationAction[NavigationAction["Up"] = 10] = "Up";
|
|
1327
|
+
NavigationAction[NavigationAction["Down"] = 11] = "Down";
|
|
1328
|
+
NavigationAction[NavigationAction["Left"] = 12] = "Left";
|
|
1329
|
+
NavigationAction[NavigationAction["Right"] = 13] = "Right";
|
|
1330
|
+
NavigationAction[NavigationAction["PageDown"] = 14] = "PageDown";
|
|
1331
|
+
NavigationAction[NavigationAction["PageUp"] = 15] = "PageUp";
|
|
1332
|
+
NavigationAction[NavigationAction["SelectPrevious"] = 16] = "SelectPrevious";
|
|
1333
|
+
NavigationAction[NavigationAction["SelectNext"] = 17] = "SelectNext";
|
|
1334
|
+
NavigationAction[NavigationAction["SelectAll"] = 18] = "SelectAll";
|
|
1335
|
+
NavigationAction[NavigationAction["SelectAllToBeginning"] = 19] = "SelectAllToBeginning";
|
|
1336
|
+
NavigationAction[NavigationAction["SelectAllToEnd"] = 20] = "SelectAllToEnd";
|
|
1337
|
+
})(NavigationAction || (NavigationAction = {}));
|
|
1338
|
+
|
|
1200
1339
|
const MIN_INDEX = 0;
|
|
1201
1340
|
/**
|
|
1202
1341
|
* @hidden
|
|
@@ -1232,10 +1371,17 @@ class NavigationService {
|
|
|
1232
1371
|
this.end = new EventEmitter();
|
|
1233
1372
|
this.pagedown = new EventEmitter();
|
|
1234
1373
|
this.pageup = new EventEmitter();
|
|
1374
|
+
this.selectnext = new EventEmitter();
|
|
1375
|
+
this.selectprevious = new EventEmitter();
|
|
1376
|
+
this.selectall = new EventEmitter();
|
|
1377
|
+
this.selectalltobeginning = new EventEmitter();
|
|
1378
|
+
this.selectalltoend = new EventEmitter();
|
|
1235
1379
|
}
|
|
1236
1380
|
process(args) {
|
|
1237
1381
|
const keyCode = args.originalEvent.keyCode;
|
|
1238
1382
|
const altKey = args.originalEvent.altKey;
|
|
1383
|
+
const shiftKey = args.originalEvent.shiftKey;
|
|
1384
|
+
const ctrlKey = args.originalEvent.ctrlKey;
|
|
1239
1385
|
let index;
|
|
1240
1386
|
let action = NavigationAction.Undefined;
|
|
1241
1387
|
if (altKey && keyCode === Keys.ArrowDown) {
|
|
@@ -1244,6 +1390,21 @@ class NavigationService {
|
|
|
1244
1390
|
else if (altKey && keyCode === Keys.ArrowUp) {
|
|
1245
1391
|
action = NavigationAction.Close;
|
|
1246
1392
|
}
|
|
1393
|
+
else if (shiftKey && keyCode === Keys.ArrowUp) {
|
|
1394
|
+
action = NavigationAction.SelectPrevious;
|
|
1395
|
+
}
|
|
1396
|
+
else if (shiftKey && keyCode === Keys.ArrowDown) {
|
|
1397
|
+
action = NavigationAction.SelectNext;
|
|
1398
|
+
}
|
|
1399
|
+
else if (ctrlKey && keyCode === Keys.KeyA) {
|
|
1400
|
+
action = NavigationAction.SelectAll;
|
|
1401
|
+
}
|
|
1402
|
+
else if (ctrlKey && shiftKey && keyCode === Keys.Home) {
|
|
1403
|
+
action = NavigationAction.SelectAllToBeginning;
|
|
1404
|
+
}
|
|
1405
|
+
else if (ctrlKey && shiftKey && keyCode === Keys.End) {
|
|
1406
|
+
action = NavigationAction.SelectAllToEnd;
|
|
1407
|
+
}
|
|
1247
1408
|
else if (keyCode === Keys.Enter) {
|
|
1248
1409
|
action = NavigationAction.Enter;
|
|
1249
1410
|
}
|
|
@@ -1504,12 +1665,13 @@ class SelectableDirective {
|
|
|
1504
1665
|
}
|
|
1505
1666
|
onClick(event) {
|
|
1506
1667
|
event.stopPropagation();
|
|
1668
|
+
this.selectionService.lastClickedIndex = this.index;
|
|
1507
1669
|
if (this.checkboxes.enabled && !this.checkboxes.checkOnClick) {
|
|
1508
1670
|
return;
|
|
1509
1671
|
}
|
|
1510
1672
|
if (this.multipleSelection) {
|
|
1511
1673
|
if (this.selectionService.isSelected(this.index)) {
|
|
1512
|
-
this.selectionService.
|
|
1674
|
+
this.selectionService.deselect(this.index);
|
|
1513
1675
|
}
|
|
1514
1676
|
else {
|
|
1515
1677
|
this.selectionService.add(this.index);
|
|
@@ -1679,7 +1841,7 @@ class ListComponent {
|
|
|
1679
1841
|
this.selectionService.add(index);
|
|
1680
1842
|
}
|
|
1681
1843
|
if (!isChecked && this.selectionService.isSelected(index)) {
|
|
1682
|
-
this.selectionService.
|
|
1844
|
+
this.selectionService.deselect(index);
|
|
1683
1845
|
}
|
|
1684
1846
|
}
|
|
1685
1847
|
prepareClasses() {
|
|
@@ -1861,6 +2023,9 @@ class ListComponent {
|
|
|
1861
2023
|
const hasVirtualScroll = isPresent(this.virtual) && this.hasVirtualScrollbar();
|
|
1862
2024
|
return hasVirtualScroll || this.list.nativeElement.scrollHeight > this.content.nativeElement.offsetHeight;
|
|
1863
2025
|
}
|
|
2026
|
+
isItemSelected(index) {
|
|
2027
|
+
return this.selectionService.isSelected(index) || null;
|
|
2028
|
+
}
|
|
1864
2029
|
/**
|
|
1865
2030
|
* Sets the list's content overflow (hides/shows scrollbar)
|
|
1866
2031
|
*/
|
|
@@ -1906,7 +2071,7 @@ class ListComponent {
|
|
|
1906
2071
|
}
|
|
1907
2072
|
}
|
|
1908
2073
|
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
1909
|
-
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListComponent, 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", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2074
|
+
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListComponent, 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", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
1910
2075
|
<div *ngIf="dataService.grouped"
|
|
1911
2076
|
[class]="listGroupStickyHeaderClass"
|
|
1912
2077
|
[ngStyle]="{
|
|
@@ -1931,6 +2096,8 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
1931
2096
|
role="listbox"
|
|
1932
2097
|
[class]="listClass"
|
|
1933
2098
|
[attr.id]="id"
|
|
2099
|
+
[attr.aria-live]="ariaLive"
|
|
2100
|
+
[attr.aria-multiselectable]="isMultiselect"
|
|
1934
2101
|
[attr.aria-hidden]="!show">
|
|
1935
2102
|
<ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
|
|
1936
2103
|
<li
|
|
@@ -1942,6 +2109,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
1942
2109
|
[multipleSelection]="multipleSelection"
|
|
1943
2110
|
[attr.id]="optionPrefix + '-' + getValue(dataItem)"
|
|
1944
2111
|
[attr.tabIndex]="-1"
|
|
2112
|
+
[attr.aria-selected]="isItemSelected(itemIndex)"
|
|
1945
2113
|
[class]="listItemClass"
|
|
1946
2114
|
[ngClass]="{
|
|
1947
2115
|
'k-disabled': isDisabled(itemIndex),
|
|
@@ -1998,6 +2166,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
1998
2166
|
[attr.absolute-index]="dataItem.index"
|
|
1999
2167
|
[attr.id]="optionPrefix + '-' + getValue(dataItem.value)"
|
|
2000
2168
|
[attr.tabIndex]="-1"
|
|
2169
|
+
[attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
|
|
2001
2170
|
[class]="listItemClass"
|
|
2002
2171
|
[ngClass]="{
|
|
2003
2172
|
'k-disabled': isDisabled(dataItem.offsetIndex),
|
|
@@ -2055,6 +2224,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2055
2224
|
role="listbox"
|
|
2056
2225
|
[class]="listClass"
|
|
2057
2226
|
[attr.id]="id"
|
|
2227
|
+
[attr.aria-live]="ariaLive"
|
|
2228
|
+
[attr.aria-multiselectable]="isMultiselect"
|
|
2058
2229
|
[attr.aria-hidden]="!show">
|
|
2059
2230
|
<ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
|
|
2060
2231
|
<li
|
|
@@ -2066,6 +2237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2066
2237
|
[multipleSelection]="multipleSelection"
|
|
2067
2238
|
[attr.id]="optionPrefix + '-' + getValue(dataItem)"
|
|
2068
2239
|
[attr.tabIndex]="-1"
|
|
2240
|
+
[attr.aria-selected]="isItemSelected(itemIndex)"
|
|
2069
2241
|
[class]="listItemClass"
|
|
2070
2242
|
[ngClass]="{
|
|
2071
2243
|
'k-disabled': isDisabled(itemIndex),
|
|
@@ -2122,6 +2294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2122
2294
|
[attr.absolute-index]="dataItem.index"
|
|
2123
2295
|
[attr.id]="optionPrefix + '-' + getValue(dataItem.value)"
|
|
2124
2296
|
[attr.tabIndex]="-1"
|
|
2297
|
+
[attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
|
|
2125
2298
|
[class]="listItemClass"
|
|
2126
2299
|
[ngClass]="{
|
|
2127
2300
|
'k-disabled': isDisabled(dataItem.offsetIndex),
|
|
@@ -2181,6 +2354,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2181
2354
|
type: Input
|
|
2182
2355
|
}], checkboxes: [{
|
|
2183
2356
|
type: Input
|
|
2357
|
+
}], ariaLive: [{
|
|
2358
|
+
type: Input
|
|
2359
|
+
}], isMultiselect: [{
|
|
2360
|
+
type: Input
|
|
2184
2361
|
}], data: [{
|
|
2185
2362
|
type: Input
|
|
2186
2363
|
}], size: [{
|
|
@@ -2498,11 +2675,6 @@ class AutoCompleteComponent {
|
|
|
2498
2675
|
const dataItem = this.dataService.itemAt(this.selectionService.focused);
|
|
2499
2676
|
return this.optionPrefix + "-" + getter(dataItem, this.valueField);
|
|
2500
2677
|
}
|
|
2501
|
-
get noDataLabel() {
|
|
2502
|
-
if (this.data.length === 0) {
|
|
2503
|
-
return this.messageFor('noDataText');
|
|
2504
|
-
}
|
|
2505
|
-
}
|
|
2506
2678
|
/**
|
|
2507
2679
|
* Sets the data of the AutoComplete.
|
|
2508
2680
|
*
|
|
@@ -3055,6 +3227,11 @@ class AutoCompleteComponent {
|
|
|
3055
3227
|
popupWrapper.style.width = max;
|
|
3056
3228
|
popupWrapper.style.height = this.height;
|
|
3057
3229
|
popupWrapper.setAttribute("dir", this.direction);
|
|
3230
|
+
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
3231
|
+
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
3232
|
+
if (ariaLabel) {
|
|
3233
|
+
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
3234
|
+
}
|
|
3058
3235
|
this.popupRef.popupOpen.subscribe(() => {
|
|
3059
3236
|
this.cdr.detectChanges();
|
|
3060
3237
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
@@ -3158,10 +3335,12 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3158
3335
|
</ng-container>
|
|
3159
3336
|
<kendo-searchbar #searchbar
|
|
3160
3337
|
[role]="'combobox'"
|
|
3338
|
+
[isSuggestable]="suggest"
|
|
3339
|
+
[isFilterable]="filterable"
|
|
3340
|
+
[isLoading]="isLoading"
|
|
3161
3341
|
[id]="focusableId"
|
|
3162
3342
|
[listId]="listBoxId"
|
|
3163
3343
|
[activeDescendant]="activeDescendant"
|
|
3164
|
-
[noDataLabel]="noDataLabel"
|
|
3165
3344
|
[userInput]="text"
|
|
3166
3345
|
[suggestedText]="suggestion"
|
|
3167
3346
|
[disabled]="disabled"
|
|
@@ -3235,7 +3414,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3235
3414
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
3236
3415
|
</ng-template>
|
|
3237
3416
|
<ng-container #container></ng-container>
|
|
3238
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
3417
|
+
`, isInline: true, components: [{ type: 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: 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: 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
3239
3418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
3240
3419
|
type: Component,
|
|
3241
3420
|
args: [{
|
|
@@ -3272,10 +3451,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
3272
3451
|
</ng-container>
|
|
3273
3452
|
<kendo-searchbar #searchbar
|
|
3274
3453
|
[role]="'combobox'"
|
|
3454
|
+
[isSuggestable]="suggest"
|
|
3455
|
+
[isFilterable]="filterable"
|
|
3456
|
+
[isLoading]="isLoading"
|
|
3275
3457
|
[id]="focusableId"
|
|
3276
3458
|
[listId]="listBoxId"
|
|
3277
3459
|
[activeDescendant]="activeDescendant"
|
|
3278
|
-
[noDataLabel]="noDataLabel"
|
|
3279
3460
|
[userInput]="text"
|
|
3280
3461
|
[suggestedText]="suggestion"
|
|
3281
3462
|
[disabled]="disabled"
|
|
@@ -3760,11 +3941,6 @@ class ComboBoxComponent {
|
|
|
3760
3941
|
const dataItem = this.dataService.itemAt(this.selectionService.focused);
|
|
3761
3942
|
return this.optionPrefix + "-" + (dataItem ? getter(dataItem, this.valueField) : "");
|
|
3762
3943
|
}
|
|
3763
|
-
get noDataLabel() {
|
|
3764
|
-
if (this.data.length === 0) {
|
|
3765
|
-
return this.messageFor('noDataText');
|
|
3766
|
-
}
|
|
3767
|
-
}
|
|
3768
3944
|
get appendTo() {
|
|
3769
3945
|
const { appendTo } = this.popupSettings;
|
|
3770
3946
|
if (!appendTo || appendTo === 'root') {
|
|
@@ -4682,6 +4858,11 @@ class ComboBoxComponent {
|
|
|
4682
4858
|
popupWrapper.style.width = max;
|
|
4683
4859
|
popupWrapper.style.height = this.popupHeight;
|
|
4684
4860
|
popupWrapper.setAttribute("dir", this.direction);
|
|
4861
|
+
const listBox = this.popupRef.popupElement.querySelector('ul.k-list-ul');
|
|
4862
|
+
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
4863
|
+
if (ariaLabel) {
|
|
4864
|
+
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
4865
|
+
}
|
|
4685
4866
|
this.popupRef.popupOpen.subscribe(() => {
|
|
4686
4867
|
this.cdr.detectChanges();
|
|
4687
4868
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
@@ -4786,8 +4967,10 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
4786
4967
|
[role]="'combobox'"
|
|
4787
4968
|
[id]="focusableId"
|
|
4788
4969
|
[listId]="listBoxId"
|
|
4970
|
+
[isLoading]="loading"
|
|
4971
|
+
[isSuggestable]="suggest"
|
|
4972
|
+
[isFilterable]="filterable"
|
|
4789
4973
|
[activeDescendant]="activeDescendant"
|
|
4790
|
-
[noDataLabel]="noDataLabel"
|
|
4791
4974
|
[userInput]="text"
|
|
4792
4975
|
[suggestedText]="getSuggestion()"
|
|
4793
4976
|
[disabled]="disabled"
|
|
@@ -4815,6 +4998,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
4815
4998
|
</span>
|
|
4816
4999
|
<button
|
|
4817
5000
|
#select
|
|
5001
|
+
tabindex="-1"
|
|
4818
5002
|
unselectable="on"
|
|
4819
5003
|
type="button"
|
|
4820
5004
|
class="k-input-button k-button k-icon-button"
|
|
@@ -4874,7 +5058,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
4874
5058
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
4875
5059
|
</ng-template>
|
|
4876
5060
|
<ng-container #container></ng-container>
|
|
4877
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
5061
|
+
`, isInline: true, components: [{ type: 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: 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: 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
4878
5062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
4879
5063
|
type: Component,
|
|
4880
5064
|
args: [{
|
|
@@ -4914,8 +5098,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4914
5098
|
[role]="'combobox'"
|
|
4915
5099
|
[id]="focusableId"
|
|
4916
5100
|
[listId]="listBoxId"
|
|
5101
|
+
[isLoading]="loading"
|
|
5102
|
+
[isSuggestable]="suggest"
|
|
5103
|
+
[isFilterable]="filterable"
|
|
4917
5104
|
[activeDescendant]="activeDescendant"
|
|
4918
|
-
[noDataLabel]="noDataLabel"
|
|
4919
5105
|
[userInput]="text"
|
|
4920
5106
|
[suggestedText]="getSuggestion()"
|
|
4921
5107
|
[disabled]="disabled"
|
|
@@ -4943,6 +5129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4943
5129
|
</span>
|
|
4944
5130
|
<button
|
|
4945
5131
|
#select
|
|
5132
|
+
tabindex="-1"
|
|
4946
5133
|
unselectable="on"
|
|
4947
5134
|
type="button"
|
|
4948
5135
|
class="k-input-button k-button k-icon-button"
|
|
@@ -5231,7 +5418,7 @@ const DEFAULT_FILL_MODE$3 = 'solid';
|
|
|
5231
5418
|
* ```
|
|
5232
5419
|
*/
|
|
5233
5420
|
class DropDownListComponent {
|
|
5234
|
-
constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, cdr, touchEnabled) {
|
|
5421
|
+
constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, cdr, touchEnabled, injector) {
|
|
5235
5422
|
this.wrapper = wrapper;
|
|
5236
5423
|
this.localization = localization;
|
|
5237
5424
|
this.popupService = popupService;
|
|
@@ -5243,6 +5430,7 @@ class DropDownListComponent {
|
|
|
5243
5430
|
this.renderer = renderer;
|
|
5244
5431
|
this.cdr = cdr;
|
|
5245
5432
|
this.touchEnabled = touchEnabled;
|
|
5433
|
+
this.injector = injector;
|
|
5246
5434
|
/**
|
|
5247
5435
|
* Sets the height of the options list. By default, `listHeight` is 200px.
|
|
5248
5436
|
*
|
|
@@ -5250,10 +5438,6 @@ class DropDownListComponent {
|
|
|
5250
5438
|
* > To set the height of the popup container, use `popupSettings.height`.
|
|
5251
5439
|
*/
|
|
5252
5440
|
this.listHeight = 200;
|
|
5253
|
-
/**
|
|
5254
|
-
* Sets the disabled state of the component.
|
|
5255
|
-
*/
|
|
5256
|
-
this.disabled = false;
|
|
5257
5441
|
/**
|
|
5258
5442
|
* Sets the read-only state of the component.
|
|
5259
5443
|
*/
|
|
@@ -5325,7 +5509,8 @@ class DropDownListComponent {
|
|
|
5325
5509
|
* @hidden
|
|
5326
5510
|
*/
|
|
5327
5511
|
this.focusableId = `k-${guid()}`;
|
|
5328
|
-
this.role = '
|
|
5512
|
+
this.role = 'combobox';
|
|
5513
|
+
this.haspopup = 'listbox';
|
|
5329
5514
|
this.groupIndices = [];
|
|
5330
5515
|
this.listBoxId = guid();
|
|
5331
5516
|
this.optionPrefix = guid();
|
|
@@ -5375,7 +5560,7 @@ class DropDownListComponent {
|
|
|
5375
5560
|
get ariaExpanded() {
|
|
5376
5561
|
return this.isOpen;
|
|
5377
5562
|
}
|
|
5378
|
-
get
|
|
5563
|
+
get ariaControls() {
|
|
5379
5564
|
if (!this.isOpen) {
|
|
5380
5565
|
return;
|
|
5381
5566
|
}
|
|
@@ -5387,11 +5572,6 @@ class DropDownListComponent {
|
|
|
5387
5572
|
}
|
|
5388
5573
|
return this.optionPrefix + "-" + getter(this.dataItem, this.valueField);
|
|
5389
5574
|
}
|
|
5390
|
-
get noDataLabel() {
|
|
5391
|
-
if (this.dataService.itemsCount === 0) {
|
|
5392
|
-
return this.messageFor('noDataText');
|
|
5393
|
-
}
|
|
5394
|
-
}
|
|
5395
5575
|
get appendTo() {
|
|
5396
5576
|
const { appendTo } = this.popupSettings;
|
|
5397
5577
|
if (!appendTo || appendTo === 'root') {
|
|
@@ -5399,6 +5579,12 @@ class DropDownListComponent {
|
|
|
5399
5579
|
}
|
|
5400
5580
|
return appendTo === 'component' ? this.container : appendTo;
|
|
5401
5581
|
}
|
|
5582
|
+
/**
|
|
5583
|
+
* @hidden
|
|
5584
|
+
*/
|
|
5585
|
+
get ariaLive() {
|
|
5586
|
+
return this.filterable ? 'polite' : 'off';
|
|
5587
|
+
}
|
|
5402
5588
|
/**
|
|
5403
5589
|
* Sets the data of the DropDownList.
|
|
5404
5590
|
*
|
|
@@ -5607,9 +5793,12 @@ class DropDownListComponent {
|
|
|
5607
5793
|
popupWrapper.style.width = max;
|
|
5608
5794
|
}
|
|
5609
5795
|
}
|
|
5610
|
-
get
|
|
5796
|
+
get isDisabledClass() {
|
|
5611
5797
|
return this.disabled;
|
|
5612
5798
|
}
|
|
5799
|
+
get isDisabledAttribute() {
|
|
5800
|
+
return this.disabled ? '' : null;
|
|
5801
|
+
}
|
|
5613
5802
|
get isLoading() {
|
|
5614
5803
|
return this.loading;
|
|
5615
5804
|
}
|
|
@@ -5619,21 +5808,28 @@ class DropDownListComponent {
|
|
|
5619
5808
|
get hostTabIndex() {
|
|
5620
5809
|
return this.widgetTabIndex;
|
|
5621
5810
|
}
|
|
5622
|
-
get
|
|
5811
|
+
get readonlyClass() {
|
|
5623
5812
|
return this.readonly;
|
|
5624
5813
|
}
|
|
5814
|
+
get readonlyAttr() {
|
|
5815
|
+
return this.readonly ? '' : null;
|
|
5816
|
+
}
|
|
5817
|
+
get isBusy() {
|
|
5818
|
+
return this.isLoading;
|
|
5819
|
+
}
|
|
5625
5820
|
get isAriaExpanded() {
|
|
5626
5821
|
return this.ariaExpanded;
|
|
5627
5822
|
}
|
|
5628
|
-
get
|
|
5629
|
-
return this.
|
|
5823
|
+
get hostAriaControls() {
|
|
5824
|
+
return this.ariaControls;
|
|
5825
|
+
}
|
|
5826
|
+
get hostAriaInvalid() {
|
|
5827
|
+
var _a;
|
|
5828
|
+
return this.formControl ? (_a = this.formControl) === null || _a === void 0 ? void 0 : _a.invalid.toString() : null;
|
|
5630
5829
|
}
|
|
5631
5830
|
get hostAriaActivedescendant() {
|
|
5632
5831
|
return this.ariaActivedescendant;
|
|
5633
5832
|
}
|
|
5634
|
-
get hostNoDataLabel() {
|
|
5635
|
-
return this.noDataLabel;
|
|
5636
|
-
}
|
|
5637
5833
|
/**
|
|
5638
5834
|
* @hidden
|
|
5639
5835
|
*/
|
|
@@ -5760,6 +5956,13 @@ class DropDownListComponent {
|
|
|
5760
5956
|
ngAfterContentChecked() {
|
|
5761
5957
|
this.verifySettings();
|
|
5762
5958
|
}
|
|
5959
|
+
/**
|
|
5960
|
+
* @hidden
|
|
5961
|
+
*/
|
|
5962
|
+
get formControl() {
|
|
5963
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
5964
|
+
return (ngControl === null || ngControl === void 0 ? void 0 : ngControl.control) || null;
|
|
5965
|
+
}
|
|
5763
5966
|
/**
|
|
5764
5967
|
* Focuses a specific item of the DropDownList based on a provided index.
|
|
5765
5968
|
* If there is a default item it is positioned at index -1.
|
|
@@ -5789,6 +5992,7 @@ class DropDownListComponent {
|
|
|
5789
5992
|
blur() {
|
|
5790
5993
|
if (!this.disabled) {
|
|
5791
5994
|
this.wrapper.nativeElement.blur();
|
|
5995
|
+
this.cdr.detectChanges();
|
|
5792
5996
|
}
|
|
5793
5997
|
}
|
|
5794
5998
|
/**
|
|
@@ -5960,6 +6164,11 @@ class DropDownListComponent {
|
|
|
5960
6164
|
popupWrapper.style.width = max;
|
|
5961
6165
|
popupWrapper.style.height = this.height;
|
|
5962
6166
|
popupWrapper.setAttribute("dir", this.direction);
|
|
6167
|
+
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
6168
|
+
const ariaLabel = this.wrapper.nativeElement.getAttribute('aria-labelledby');
|
|
6169
|
+
if (ariaLabel) {
|
|
6170
|
+
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
6171
|
+
}
|
|
5963
6172
|
this.subs.add(this.popupRef.popupOpen.subscribe(() => {
|
|
5964
6173
|
this.cdr.detectChanges();
|
|
5965
6174
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
@@ -6362,8 +6571,8 @@ class DropDownListComponent {
|
|
|
6362
6571
|
}
|
|
6363
6572
|
}
|
|
6364
6573
|
}
|
|
6365
|
-
DropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
6366
|
-
DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: { 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", "focusableId"] }, outputs: { valueChange: "valueChange", filterChange: "filterChange", selectionChange: "selectionChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keypress": "keypress($event)", "click": "click($event)" }, properties: { "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.
|
|
6574
|
+
DropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: TOUCH_ENABLED, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
6575
|
+
DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: { 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", "focusableId"] }, outputs: { valueChange: "valueChange", filterChange: "filterChange", selectionChange: "selectionChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keypress": "keypress($event)", "click": "click($event)" }, properties: { "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.disabled": "this.isDisabledAttribute", "class.k-loading": "this.isLoading", "attr.id": "this.focusableId", "attr.dir": "this.dir", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.readonlyAttr", "attr.aria-busy": "this.isBusy", "attr.role": "this.role", "attr.aria-haspopup": "this.haspopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-controls": "this.hostAriaControls", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-activedescendant": "this.hostAriaActivedescendant" } }, providers: [
|
|
6367
6576
|
DROPDOWNLIST_VALUE_ACCESSOR,
|
|
6368
6577
|
DataService,
|
|
6369
6578
|
SelectionService,
|
|
@@ -6389,7 +6598,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6389
6598
|
selectButtonText="Select"
|
|
6390
6599
|
>
|
|
6391
6600
|
</ng-container>
|
|
6392
|
-
<span class="k-input-inner" unselectable="on"
|
|
6601
|
+
<span class="k-input-inner" unselectable="on" [id]="valueLabelId">
|
|
6393
6602
|
<span class="k-input-value-text">
|
|
6394
6603
|
<ng-template *ngIf="valueTemplate"
|
|
6395
6604
|
[templateContext]="{
|
|
@@ -6428,9 +6637,11 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6428
6637
|
>
|
|
6429
6638
|
<span class="k-input-icon k-icon k-i-search" unselectable="on"></span>
|
|
6430
6639
|
<input
|
|
6431
|
-
|
|
6640
|
+
role="searchbox"
|
|
6641
|
+
aria-autocomplete="list"
|
|
6642
|
+
aria-haspopup="listbox"
|
|
6643
|
+
[attr.aria-controls]="ariaControls"
|
|
6432
6644
|
[attr.aria-activedescendant]="ariaActivedescendant"
|
|
6433
|
-
[attr.aria-label]="noDataLabel"
|
|
6434
6645
|
tabindex="-1"
|
|
6435
6646
|
[filterInput]="isFocused && !touchEnabled"
|
|
6436
6647
|
[dir]="direction"
|
|
@@ -6491,6 +6702,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6491
6702
|
[height]="listHeight"
|
|
6492
6703
|
[show]="isOpen"
|
|
6493
6704
|
[virtual]="virtual"
|
|
6705
|
+
[ariaLive]="ariaLive"
|
|
6494
6706
|
(pageChange)="pageChange($event)"
|
|
6495
6707
|
>
|
|
6496
6708
|
</kendo-list>
|
|
@@ -6516,7 +6728,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6516
6728
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
6517
6729
|
</ng-template>
|
|
6518
6730
|
<ng-container #container></ng-container>
|
|
6519
|
-
`, isInline: true, components: [{ type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
|
|
6731
|
+
`, isInline: true, components: [{ type: 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: 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
|
|
6520
6732
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DropDownListComponent, decorators: [{
|
|
6521
6733
|
type: Component,
|
|
6522
6734
|
args: [{
|
|
@@ -6549,7 +6761,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
6549
6761
|
selectButtonText="Select"
|
|
6550
6762
|
>
|
|
6551
6763
|
</ng-container>
|
|
6552
|
-
<span class="k-input-inner" unselectable="on"
|
|
6764
|
+
<span class="k-input-inner" unselectable="on" [id]="valueLabelId">
|
|
6553
6765
|
<span class="k-input-value-text">
|
|
6554
6766
|
<ng-template *ngIf="valueTemplate"
|
|
6555
6767
|
[templateContext]="{
|
|
@@ -6588,9 +6800,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
6588
6800
|
>
|
|
6589
6801
|
<span class="k-input-icon k-icon k-i-search" unselectable="on"></span>
|
|
6590
6802
|
<input
|
|
6591
|
-
|
|
6803
|
+
role="searchbox"
|
|
6804
|
+
aria-autocomplete="list"
|
|
6805
|
+
aria-haspopup="listbox"
|
|
6806
|
+
[attr.aria-controls]="ariaControls"
|
|
6592
6807
|
[attr.aria-activedescendant]="ariaActivedescendant"
|
|
6593
|
-
[attr.aria-label]="noDataLabel"
|
|
6594
6808
|
tabindex="-1"
|
|
6595
6809
|
[filterInput]="isFocused && !touchEnabled"
|
|
6596
6810
|
[dir]="direction"
|
|
@@ -6651,6 +6865,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
6651
6865
|
[height]="listHeight"
|
|
6652
6866
|
[show]="isOpen"
|
|
6653
6867
|
[virtual]="virtual"
|
|
6868
|
+
[ariaLive]="ariaLive"
|
|
6654
6869
|
(pageChange)="pageChange($event)"
|
|
6655
6870
|
>
|
|
6656
6871
|
</kendo-list>
|
|
@@ -6683,7 +6898,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
6683
6898
|
}, {
|
|
6684
6899
|
type: Inject,
|
|
6685
6900
|
args: [TOUCH_ENABLED]
|
|
6686
|
-
}] }]; }, propDecorators: { iconClass: [{
|
|
6901
|
+
}] }, { type: i0.Injector }]; }, propDecorators: { iconClass: [{
|
|
6687
6902
|
type: Input
|
|
6688
6903
|
}], loading: [{
|
|
6689
6904
|
type: Input
|
|
@@ -6784,12 +6999,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
6784
6999
|
}, {
|
|
6785
7000
|
type: HostBinding,
|
|
6786
7001
|
args: ['class.k-picker']
|
|
6787
|
-
}],
|
|
7002
|
+
}], isDisabledClass: [{
|
|
6788
7003
|
type: HostBinding,
|
|
6789
7004
|
args: ['class.k-disabled']
|
|
6790
|
-
}, {
|
|
7005
|
+
}], isDisabledAttribute: [{
|
|
6791
7006
|
type: HostBinding,
|
|
6792
|
-
args: ['attr.
|
|
7007
|
+
args: ['attr.disabled']
|
|
6793
7008
|
}], isLoading: [{
|
|
6794
7009
|
type: HostBinding,
|
|
6795
7010
|
args: ['class.k-loading']
|
|
@@ -6805,30 +7020,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
6805
7020
|
}], hostTabIndex: [{
|
|
6806
7021
|
type: HostBinding,
|
|
6807
7022
|
args: ['attr.tabindex']
|
|
6808
|
-
}],
|
|
7023
|
+
}], readonlyClass: [{
|
|
6809
7024
|
type: HostBinding,
|
|
6810
7025
|
args: ['attr.readonly']
|
|
6811
|
-
}, {
|
|
7026
|
+
}], readonlyAttr: [{
|
|
6812
7027
|
type: HostBinding,
|
|
6813
|
-
args: ['attr.
|
|
7028
|
+
args: ['attr.readonly']
|
|
7029
|
+
}], isBusy: [{
|
|
7030
|
+
type: HostBinding,
|
|
7031
|
+
args: ['attr.aria-busy']
|
|
6814
7032
|
}], role: [{
|
|
6815
7033
|
type: HostBinding,
|
|
6816
7034
|
args: ['attr.role']
|
|
6817
|
-
}, {
|
|
7035
|
+
}], haspopup: [{
|
|
6818
7036
|
type: HostBinding,
|
|
6819
7037
|
args: ['attr.aria-haspopup']
|
|
6820
7038
|
}], isAriaExpanded: [{
|
|
6821
7039
|
type: HostBinding,
|
|
6822
7040
|
args: ['attr.aria-expanded']
|
|
6823
|
-
}],
|
|
7041
|
+
}], hostAriaControls: [{
|
|
6824
7042
|
type: HostBinding,
|
|
6825
|
-
args: ['attr.aria-
|
|
7043
|
+
args: ['attr.aria-controls']
|
|
7044
|
+
}], hostAriaInvalid: [{
|
|
7045
|
+
type: HostBinding,
|
|
7046
|
+
args: ['attr.aria-invalid']
|
|
6826
7047
|
}], hostAriaActivedescendant: [{
|
|
6827
7048
|
type: HostBinding,
|
|
6828
7049
|
args: ['attr.aria-activedescendant']
|
|
6829
|
-
}], hostNoDataLabel: [{
|
|
6830
|
-
type: HostBinding,
|
|
6831
|
-
args: ['attr.aria-label']
|
|
6832
7050
|
}], keydown: [{
|
|
6833
7051
|
type: HostListener,
|
|
6834
7052
|
args: ['keydown', ['$event']]
|
|
@@ -7426,7 +7644,6 @@ class MultiSelectComponent {
|
|
|
7426
7644
|
*/
|
|
7427
7645
|
this.removeTag = new EventEmitter();
|
|
7428
7646
|
this.hostClasses = true;
|
|
7429
|
-
this.role = 'combobox';
|
|
7430
7647
|
this.initialized = false;
|
|
7431
7648
|
this._size = 'medium';
|
|
7432
7649
|
this._rounded = 'medium';
|
|
@@ -7739,8 +7956,15 @@ class MultiSelectComponent {
|
|
|
7739
7956
|
get isLoading() {
|
|
7740
7957
|
return this.loading;
|
|
7741
7958
|
}
|
|
7742
|
-
|
|
7743
|
-
|
|
7959
|
+
/**
|
|
7960
|
+
* @hidden
|
|
7961
|
+
*/
|
|
7962
|
+
handleKeyboardEvent(event) {
|
|
7963
|
+
if (event.ctrlKey && event.keyCode === Keys.KeyA) {
|
|
7964
|
+
event.preventDefault();
|
|
7965
|
+
event.stopImmediatePropagation();
|
|
7966
|
+
this.handleSelectAll();
|
|
7967
|
+
}
|
|
7744
7968
|
}
|
|
7745
7969
|
/**
|
|
7746
7970
|
* @hidden
|
|
@@ -7803,11 +8027,6 @@ class MultiSelectComponent {
|
|
|
7803
8027
|
}
|
|
7804
8028
|
return prefix + "-" + getter(item, this.valueField);
|
|
7805
8029
|
}
|
|
7806
|
-
get noDataLabel() {
|
|
7807
|
-
if (this.dataService.itemsCount === 0) {
|
|
7808
|
-
return this.messageFor('noDataText');
|
|
7809
|
-
}
|
|
7810
|
-
}
|
|
7811
8030
|
get clearButtonVisiblity() {
|
|
7812
8031
|
if (this.touchEnabled) {
|
|
7813
8032
|
return 'visible';
|
|
@@ -7838,23 +8057,45 @@ class MultiSelectComponent {
|
|
|
7838
8057
|
* @hidden
|
|
7839
8058
|
*/
|
|
7840
8059
|
change(event) {
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
|
|
7846
|
-
|
|
7847
|
-
|
|
7848
|
-
|
|
7849
|
-
|
|
7850
|
-
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
7854
|
-
|
|
7855
|
-
|
|
7856
|
-
|
|
7857
|
-
|
|
8060
|
+
if (event.isMultipleSelection) {
|
|
8061
|
+
// Existing items.
|
|
8062
|
+
if (isPresent(event.added) && event.added.length > 0) {
|
|
8063
|
+
event.added.forEach((itemIndex) => {
|
|
8064
|
+
const dataItem = this.dataService.itemAt(itemIndex);
|
|
8065
|
+
const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
|
|
8066
|
+
if (newItem) {
|
|
8067
|
+
this.value = [...this.value, newItem];
|
|
8068
|
+
}
|
|
8069
|
+
});
|
|
8070
|
+
}
|
|
8071
|
+
if (isPresent(event.removed) && event.removed.length > 0) {
|
|
8072
|
+
event.removed.forEach((itemIndex) => {
|
|
8073
|
+
const dataItem = this.dataService.itemAt(itemIndex);
|
|
8074
|
+
const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
|
|
8075
|
+
this.value = this.value.filter(filter);
|
|
8076
|
+
});
|
|
8077
|
+
this.cdr.detectChanges();
|
|
8078
|
+
}
|
|
8079
|
+
}
|
|
8080
|
+
else {
|
|
8081
|
+
const isCustomItem = (isPresent(event.added) || isPresent(event.removed)) && (event.added === -1 || event.removed === -1);
|
|
8082
|
+
if (isCustomItem) {
|
|
8083
|
+
this.addCustomValue(this.text);
|
|
8084
|
+
return; // The change is emited asynchronosly.
|
|
8085
|
+
}
|
|
8086
|
+
// Existing items.
|
|
8087
|
+
if (isPresent(event.added)) {
|
|
8088
|
+
const dataItem = this.dataService.itemAt(event.added);
|
|
8089
|
+
const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
|
|
8090
|
+
this.value = [...this.value, newItem];
|
|
8091
|
+
}
|
|
8092
|
+
if (isPresent(event.removed)) {
|
|
8093
|
+
const dataItem = this.dataService.itemAt(event.removed);
|
|
8094
|
+
const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
|
|
8095
|
+
this.value = this.value.filter(filter);
|
|
8096
|
+
this.selectionService.focused = event.removed;
|
|
8097
|
+
this.cdr.detectChanges();
|
|
8098
|
+
}
|
|
7858
8099
|
}
|
|
7859
8100
|
this.emitValueChange();
|
|
7860
8101
|
}
|
|
@@ -7987,10 +8228,11 @@ class MultiSelectComponent {
|
|
|
7987
8228
|
* @hidden
|
|
7988
8229
|
*/
|
|
7989
8230
|
clearAll(event) {
|
|
7990
|
-
event.stopImmediatePropagation();
|
|
7991
|
-
event.preventDefault();
|
|
8231
|
+
event === null || event === void 0 ? void 0 : event.stopImmediatePropagation();
|
|
8232
|
+
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
7992
8233
|
this.focus();
|
|
7993
8234
|
this.clearFilter();
|
|
8235
|
+
this.selectionService.lastClickedIndex = null;
|
|
7994
8236
|
const selected = this.selectionService.selected;
|
|
7995
8237
|
this.value = this.value.filter((_item, index) => this.disabledItemsService.isIndexDisabled(selected[index]));
|
|
7996
8238
|
this.emitValueChange();
|
|
@@ -8139,7 +8381,11 @@ class MultiSelectComponent {
|
|
|
8139
8381
|
this.navigationService.delete.pipe(filter(isTagFocused)).subscribe(this.handleDelete.bind(this)),
|
|
8140
8382
|
this.navigationService.left.subscribe(this.direction === 'rtl' ? this.handleRightKey.bind(this) : this.handleLeftKey.bind(this)),
|
|
8141
8383
|
this.navigationService.right.subscribe(this.direction === 'rtl' ? this.handleLeftKey.bind(this) : this.handleRightKey.bind(this)),
|
|
8142
|
-
this.navigationService.down.subscribe((event) => this.handleDownKey(event.index))
|
|
8384
|
+
this.navigationService.down.subscribe((event) => this.handleDownKey(event.index)),
|
|
8385
|
+
this.navigationService.selectprevious.pipe(filter(isOpen)).subscribe((event) => this.handleSelectUpDown(event)),
|
|
8386
|
+
this.navigationService.selectnext.pipe(filter(isOpen)).subscribe((event) => this.handleSelectUpDown(event)),
|
|
8387
|
+
this.navigationService.selectalltobeginning.pipe(filter(isOpen)).subscribe(() => this.handleSelectAllToBeginning()),
|
|
8388
|
+
this.navigationService.selectalltoend.pipe(filter(isOpen)).subscribe(() => this.handleSelectAllToEnd())
|
|
8143
8389
|
].forEach(s => this.observableSubscriptions.add(s));
|
|
8144
8390
|
}
|
|
8145
8391
|
subscribeTouchEvents() {
|
|
@@ -8198,7 +8444,7 @@ class MultiSelectComponent {
|
|
|
8198
8444
|
return;
|
|
8199
8445
|
}
|
|
8200
8446
|
if (isNumber(index)) {
|
|
8201
|
-
this.selectionService.
|
|
8447
|
+
this.selectionService.deselect(index);
|
|
8202
8448
|
this.selectionService.focused = index;
|
|
8203
8449
|
this.togglePopup(false);
|
|
8204
8450
|
}
|
|
@@ -8263,7 +8509,7 @@ class MultiSelectComponent {
|
|
|
8263
8509
|
}
|
|
8264
8510
|
else {
|
|
8265
8511
|
if (!customItem && this.selectionService.isSelected(itemIndex)) {
|
|
8266
|
-
this.selectionService.
|
|
8512
|
+
this.selectionService.deselect(itemIndex);
|
|
8267
8513
|
this.selectionService.focused = itemIndex;
|
|
8268
8514
|
}
|
|
8269
8515
|
else {
|
|
@@ -8285,7 +8531,7 @@ class MultiSelectComponent {
|
|
|
8285
8531
|
}
|
|
8286
8532
|
handleItemChange(event) {
|
|
8287
8533
|
this.change(event);
|
|
8288
|
-
if (this.autoClose) {
|
|
8534
|
+
if (this.autoClose && !event.preventClosingPopup) {
|
|
8289
8535
|
this.togglePopup(false);
|
|
8290
8536
|
}
|
|
8291
8537
|
if (this.autoClose || !this.filterable) {
|
|
@@ -8295,6 +8541,7 @@ class MultiSelectComponent {
|
|
|
8295
8541
|
handleEnter(event) {
|
|
8296
8542
|
const service = this.selectionService;
|
|
8297
8543
|
const focusedIndex = this.selectionService.focused;
|
|
8544
|
+
this.selectionService.lastClickedIndex = focusedIndex;
|
|
8298
8545
|
if (this.isOpen) {
|
|
8299
8546
|
event.originalEvent.preventDefault();
|
|
8300
8547
|
}
|
|
@@ -8305,7 +8552,7 @@ class MultiSelectComponent {
|
|
|
8305
8552
|
return; // Clear filter & close are done at customValueSubscription due to race conditions.
|
|
8306
8553
|
}
|
|
8307
8554
|
if (service.isSelected(focusedIndex)) {
|
|
8308
|
-
service.
|
|
8555
|
+
service.deselect(focusedIndex);
|
|
8309
8556
|
service.focused = focusedIndex;
|
|
8310
8557
|
}
|
|
8311
8558
|
else {
|
|
@@ -8328,6 +8575,85 @@ class MultiSelectComponent {
|
|
|
8328
8575
|
handleHome() {
|
|
8329
8576
|
this.focusedTagIndex = 0;
|
|
8330
8577
|
}
|
|
8578
|
+
sortSelectionAscending() {
|
|
8579
|
+
return this.selectionService.selected.sort((a, b) => a - b);
|
|
8580
|
+
}
|
|
8581
|
+
handleSelectAll() {
|
|
8582
|
+
const selectedItemsCount = this.selectionService.selected.length;
|
|
8583
|
+
const dataItemsCount = this.dataService.data.length;
|
|
8584
|
+
const dataItemsWithoutHeadersCount = this.dataService.data.filter(i => !i.header).length;
|
|
8585
|
+
if ((!this.dataService.grouped && selectedItemsCount === dataItemsCount) ||
|
|
8586
|
+
(this.dataService.grouped && selectedItemsCount === dataItemsWithoutHeadersCount)) {
|
|
8587
|
+
this.clearAll();
|
|
8588
|
+
}
|
|
8589
|
+
else {
|
|
8590
|
+
this.selectionService.selectFromTo(0, dataItemsCount - 1);
|
|
8591
|
+
this.selectionService.emitMultipleAddedRemoved();
|
|
8592
|
+
}
|
|
8593
|
+
}
|
|
8594
|
+
handleSelectAllToBeginning() {
|
|
8595
|
+
const selectedItemsCount = this.selectionService.selected.length;
|
|
8596
|
+
const dataItemsCount = this.dataService.data.length;
|
|
8597
|
+
const focusedItem = this.selectionService.focused;
|
|
8598
|
+
const largestIndex = this.sortSelectionAscending()[selectedItemsCount - 1];
|
|
8599
|
+
if (selectedItemsCount !== dataItemsCount) {
|
|
8600
|
+
this.selectionService.unselectFromTo(largestIndex, focusedItem + 1);
|
|
8601
|
+
this.selectionService.selectFromTo(0, focusedItem);
|
|
8602
|
+
}
|
|
8603
|
+
this.nextTick(() => this.selectionService.focus(0));
|
|
8604
|
+
this.selectionService.emitMultipleAddedRemoved();
|
|
8605
|
+
}
|
|
8606
|
+
handleSelectAllToEnd() {
|
|
8607
|
+
const selectedItemsCount = this.selectionService.selected.length;
|
|
8608
|
+
const dataItemsCount = this.dataService.data.length;
|
|
8609
|
+
const focusedItem = this.selectionService.focused;
|
|
8610
|
+
if (selectedItemsCount !== dataItemsCount) {
|
|
8611
|
+
this.selectionService.unselectFromTo(focusedItem - 1, 0);
|
|
8612
|
+
this.selectionService.selectFromTo(focusedItem, dataItemsCount - 1);
|
|
8613
|
+
}
|
|
8614
|
+
if (this.dataService.grouped) {
|
|
8615
|
+
const lastItemIndex = this.dataService.groupIndices[this.dataService.groupIndices.length - 1] - 1;
|
|
8616
|
+
this.nextTick(() => this.selectionService.focus(lastItemIndex));
|
|
8617
|
+
}
|
|
8618
|
+
else {
|
|
8619
|
+
this.nextTick(() => this.selectionService.focus(dataItemsCount - 1));
|
|
8620
|
+
}
|
|
8621
|
+
this.selectionService.emitMultipleAddedRemoved();
|
|
8622
|
+
}
|
|
8623
|
+
handleSelectUpDown(event) {
|
|
8624
|
+
const focusedIndex = this.selectionService.focused;
|
|
8625
|
+
if (!isPresent(focusedIndex)) {
|
|
8626
|
+
return;
|
|
8627
|
+
}
|
|
8628
|
+
let indexToSelect;
|
|
8629
|
+
if (event.originalEvent.key === 'ArrowUp') {
|
|
8630
|
+
indexToSelect = focusedIndex > 0 ? focusedIndex - 1 : focusedIndex;
|
|
8631
|
+
}
|
|
8632
|
+
else {
|
|
8633
|
+
indexToSelect = focusedIndex < this.dataService.data.length - 1 ? focusedIndex + 1 : focusedIndex;
|
|
8634
|
+
}
|
|
8635
|
+
if (!isPresent(this.selectionService.lastClickedIndex)) {
|
|
8636
|
+
this.selectionService.lastClickedIndex = focusedIndex;
|
|
8637
|
+
}
|
|
8638
|
+
this.selectRangeFromTo(indexToSelect);
|
|
8639
|
+
}
|
|
8640
|
+
/**
|
|
8641
|
+
* Selects all items between the focused item and the last clicked item (index). Also removes all other selected items.
|
|
8642
|
+
*/
|
|
8643
|
+
selectRangeFromTo(indexToSelect) {
|
|
8644
|
+
const lastClickedIndex = this.selectionService.lastClickedIndex;
|
|
8645
|
+
if (lastClickedIndex > indexToSelect) {
|
|
8646
|
+
this.selectionService.unselectNotNeededIndices(indexToSelect, lastClickedIndex, this.dataService.data.length);
|
|
8647
|
+
this.selectionService.selectFromTo(indexToSelect, this.selectionService.lastClickedIndex);
|
|
8648
|
+
this.selectionService.emitMultipleAddedRemoved();
|
|
8649
|
+
}
|
|
8650
|
+
else {
|
|
8651
|
+
this.selectionService.unselectNotNeededIndices(lastClickedIndex, indexToSelect, this.dataService.data.length);
|
|
8652
|
+
this.selectionService.selectFromTo(lastClickedIndex, indexToSelect);
|
|
8653
|
+
this.selectionService.emitMultipleAddedRemoved();
|
|
8654
|
+
}
|
|
8655
|
+
this.nextTick(() => this.selectionService.focus(indexToSelect));
|
|
8656
|
+
}
|
|
8331
8657
|
handleUp(index) {
|
|
8332
8658
|
this.selectionService.focused = index;
|
|
8333
8659
|
}
|
|
@@ -8463,6 +8789,11 @@ class MultiSelectComponent {
|
|
|
8463
8789
|
popupWrapper.style.width = max;
|
|
8464
8790
|
popupWrapper.style.height = this.height;
|
|
8465
8791
|
popupWrapper.setAttribute("dir", this.direction);
|
|
8792
|
+
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
8793
|
+
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
8794
|
+
if (ariaLabel) {
|
|
8795
|
+
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
8796
|
+
}
|
|
8466
8797
|
this.popupRef.popupOpen.subscribe(() => {
|
|
8467
8798
|
this.cdr.detectChanges();
|
|
8468
8799
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
@@ -8521,7 +8852,7 @@ class MultiSelectComponent {
|
|
|
8521
8852
|
}
|
|
8522
8853
|
}
|
|
8523
8854
|
MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: DataService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
8524
|
-
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MultiSelectComponent, selector: "kendo-multiselect", inputs: { focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", removeTag: "removeTag" }, host: { listeners: { "mousedown": "hostMousedown($event)" }, properties: { "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading"
|
|
8855
|
+
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MultiSelectComponent, selector: "kendo-multiselect", inputs: { focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", removeTag: "removeTag" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)", "mousedown": "hostMousedown($event)" }, properties: { "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
|
|
8525
8856
|
MULTISELECT_VALUE_ACCESSOR,
|
|
8526
8857
|
DataService,
|
|
8527
8858
|
SelectionService,
|
|
@@ -8566,10 +8897,12 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8566
8897
|
<kendo-searchbar
|
|
8567
8898
|
#searchbar
|
|
8568
8899
|
[id]="focusableId"
|
|
8569
|
-
[role]="'
|
|
8900
|
+
[role]="'combobox'"
|
|
8570
8901
|
[tagListId]="tagListId"
|
|
8902
|
+
[listId]="listBoxId"
|
|
8903
|
+
[isLoading]="loading"
|
|
8904
|
+
[isFilterable]="filterable"
|
|
8571
8905
|
[activeDescendant]="activeDescendant"
|
|
8572
|
-
[noDataLabel]="noDataLabel"
|
|
8573
8906
|
[userInput]="text"
|
|
8574
8907
|
[disabled]="disabled"
|
|
8575
8908
|
[readonly]="readonly"
|
|
@@ -8643,6 +8976,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8643
8976
|
[virtual]="virtual"
|
|
8644
8977
|
(pageChange)="pageChange($event)"
|
|
8645
8978
|
[checkboxes]="checkboxes"
|
|
8979
|
+
[isMultiselect]="true"
|
|
8646
8980
|
>
|
|
8647
8981
|
</kendo-list>
|
|
8648
8982
|
<!--no data template-->
|
|
@@ -8667,7 +9001,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8667
9001
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
8668
9002
|
</ng-template>
|
|
8669
9003
|
<ng-container #container></ng-container>
|
|
8670
|
-
`, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
9004
|
+
`, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: 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: 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: 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
|
|
8671
9005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
8672
9006
|
type: Component,
|
|
8673
9007
|
args: [{
|
|
@@ -8719,10 +9053,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
8719
9053
|
<kendo-searchbar
|
|
8720
9054
|
#searchbar
|
|
8721
9055
|
[id]="focusableId"
|
|
8722
|
-
[role]="'
|
|
9056
|
+
[role]="'combobox'"
|
|
8723
9057
|
[tagListId]="tagListId"
|
|
9058
|
+
[listId]="listBoxId"
|
|
9059
|
+
[isLoading]="loading"
|
|
9060
|
+
[isFilterable]="filterable"
|
|
8724
9061
|
[activeDescendant]="activeDescendant"
|
|
8725
|
-
[noDataLabel]="noDataLabel"
|
|
8726
9062
|
[userInput]="text"
|
|
8727
9063
|
[disabled]="disabled"
|
|
8728
9064
|
[readonly]="readonly"
|
|
@@ -8796,6 +9132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
8796
9132
|
[virtual]="virtual"
|
|
8797
9133
|
(pageChange)="pageChange($event)"
|
|
8798
9134
|
[checkboxes]="checkboxes"
|
|
9135
|
+
[isMultiselect]="true"
|
|
8799
9136
|
>
|
|
8800
9137
|
</kendo-list>
|
|
8801
9138
|
<!--no data template-->
|
|
@@ -8954,12 +9291,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
8954
9291
|
}], isLoading: [{
|
|
8955
9292
|
type: HostBinding,
|
|
8956
9293
|
args: ['class.k-loading']
|
|
8957
|
-
}],
|
|
8958
|
-
type:
|
|
8959
|
-
args: ['
|
|
8960
|
-
}], isAriaExpanded: [{
|
|
8961
|
-
type: HostBinding,
|
|
8962
|
-
args: ['attr.aria-expanded']
|
|
9294
|
+
}], handleKeyboardEvent: [{
|
|
9295
|
+
type: HostListener,
|
|
9296
|
+
args: ['document:keydown', ['$event']]
|
|
8963
9297
|
}], hostMousedown: [{
|
|
8964
9298
|
type: HostListener,
|
|
8965
9299
|
args: ['mousedown', ['$event']]
|
|
@@ -9266,6 +9600,9 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9266
9600
|
|
|
9267
9601
|
i18n-clearTitle="kendo.multicolumncombobox.clearTitle|The title of the clear button"
|
|
9268
9602
|
clearTitle="clear"
|
|
9603
|
+
|
|
9604
|
+
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
9605
|
+
selectButtonText="Select"
|
|
9269
9606
|
>
|
|
9270
9607
|
</ng-container>
|
|
9271
9608
|
<kendo-searchbar
|
|
@@ -9273,8 +9610,10 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9273
9610
|
[role]="'combobox'"
|
|
9274
9611
|
[id]="focusableId"
|
|
9275
9612
|
[listId]="listBoxId"
|
|
9613
|
+
[isLoading]="loading"
|
|
9614
|
+
[isSuggestable]="suggest"
|
|
9615
|
+
[isFilterable]="filterable"
|
|
9276
9616
|
[activeDescendant]="activeDescendant"
|
|
9277
|
-
[noDataLabel]="noDataLabel"
|
|
9278
9617
|
[userInput]="text"
|
|
9279
9618
|
[suggestedText]="getSuggestion()"
|
|
9280
9619
|
[disabled]="disabled"
|
|
@@ -9472,7 +9811,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9472
9811
|
|
|
9473
9812
|
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
9474
9813
|
<ng-container #container></ng-container>
|
|
9475
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "
|
|
9814
|
+
`, isInline: true, components: [{ type: 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: 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: 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: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
9476
9815
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
|
|
9477
9816
|
type: Component,
|
|
9478
9817
|
args: [{
|
|
@@ -9510,6 +9849,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
9510
9849
|
|
|
9511
9850
|
i18n-clearTitle="kendo.multicolumncombobox.clearTitle|The title of the clear button"
|
|
9512
9851
|
clearTitle="clear"
|
|
9852
|
+
|
|
9853
|
+
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
9854
|
+
selectButtonText="Select"
|
|
9513
9855
|
>
|
|
9514
9856
|
</ng-container>
|
|
9515
9857
|
<kendo-searchbar
|
|
@@ -9517,8 +9859,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
9517
9859
|
[role]="'combobox'"
|
|
9518
9860
|
[id]="focusableId"
|
|
9519
9861
|
[listId]="listBoxId"
|
|
9862
|
+
[isLoading]="loading"
|
|
9863
|
+
[isSuggestable]="suggest"
|
|
9864
|
+
[isFilterable]="filterable"
|
|
9520
9865
|
[activeDescendant]="activeDescendant"
|
|
9521
|
-
[noDataLabel]="noDataLabel"
|
|
9522
9866
|
[userInput]="text"
|
|
9523
9867
|
[suggestedText]="getSuggestion()"
|
|
9524
9868
|
[disabled]="disabled"
|
|
@@ -13839,21 +14183,21 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
|
13839
14183
|
TemplateContextDirective,
|
|
13840
14184
|
TagListComponent,
|
|
13841
14185
|
CheckDirective,
|
|
13842
|
-
CheckAllDirective], imports: [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], exports: [ListComponent,
|
|
14186
|
+
CheckAllDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], exports: [ListComponent,
|
|
13843
14187
|
ListItemDirective,
|
|
13844
14188
|
SelectableDirective,
|
|
13845
14189
|
SearchBarComponent,
|
|
13846
14190
|
TemplateContextDirective,
|
|
13847
14191
|
TagListComponent,
|
|
13848
14192
|
CheckDirective,
|
|
13849
|
-
CheckAllDirective, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
|
|
13850
|
-
SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
|
|
14193
|
+
CheckAllDirective, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
|
|
14194
|
+
SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
|
|
13851
14195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, decorators: [{
|
|
13852
14196
|
type: NgModule,
|
|
13853
14197
|
args: [{
|
|
13854
14198
|
declarations: [INTERNAL_DIRECTIVES],
|
|
13855
|
-
exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule],
|
|
13856
|
-
imports: [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]
|
|
14199
|
+
exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule],
|
|
14200
|
+
imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]
|
|
13857
14201
|
}]
|
|
13858
14202
|
}] });
|
|
13859
14203
|
|