@progress/kendo-angular-dropdowns 12.0.0-develop.6 → 12.0.0-develop.8
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 +82 -20
- package/comboboxes/combobox.component.d.ts +76 -8
- package/comboboxes/multicolumncombobox.component.d.ts +4 -0
- package/common/action-sheet.component.d.ts +43 -0
- package/common/list.component.d.ts +2 -1
- package/common/localization/messages.d.ts +9 -1
- package/common/selection/selectable.directive.d.ts +2 -1
- package/common/shared.module.d.ts +11 -7
- package/common/util.d.ts +39 -2
- package/dropdownlist/dropdownlist.component.d.ts +78 -9
- package/dropdowntrees/dropdowntree.component.d.ts +80 -8
- package/dropdowntrees/multiselecttree.component.d.ts +90 -6
- package/esm2020/autocomplete/autocomplete.component.mjs +294 -116
- package/esm2020/comboboxes/combobox.component.mjs +251 -60
- package/esm2020/comboboxes/multicolumncombobox.component.mjs +110 -119
- package/esm2020/common/action-sheet.component.mjs +243 -0
- package/esm2020/common/list.component.mjs +11 -2
- package/esm2020/common/localization/messages.mjs +5 -1
- package/esm2020/common/selection/selectable.directive.mjs +3 -3
- package/esm2020/common/shared.module.mjs +13 -6
- package/esm2020/common/util.mjs +68 -2
- package/esm2020/dropdownlist/dropdownlist.component.mjs +245 -64
- package/esm2020/dropdowntrees/dropdowntree.component.mjs +254 -56
- package/esm2020/dropdowntrees/multiselecttree.component.mjs +291 -55
- package/esm2020/index.mjs +1 -0
- package/esm2020/multiselect/multiselect.component.mjs +320 -88
- package/esm2020/package-metadata.mjs +2 -2
- package/fesm2015/progress-kendo-angular-dropdowns.mjs +2085 -552
- package/fesm2020/progress-kendo-angular-dropdowns.mjs +2054 -545
- package/index.d.ts +2 -0
- package/multiselect/multiselect.component.d.ts +87 -10
- package/package.json +9 -8
- package/schematics/ngAdd/index.js +2 -2
|
@@ -4,22 +4,28 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { EventEmitter, Component, Input, Output, ViewChild, HostBinding, Directive, Injectable, HostListener, ViewChildren, InjectionToken, forwardRef, isDevMode, ViewContainerRef, Optional, Inject, ContentChild, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i9 from '@progress/kendo-angular-common';
|
|
8
8
|
import { isDocumentAvailable, isSafari, Keys, isChanged, hasObservers, KendoInput, anyChanged, guid as guid$1, ResizeSensorModule, EventsModule } from '@progress/kendo-angular-common';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i14 from '@angular/forms';
|
|
10
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
13
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
14
14
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
15
15
|
import { Subscription, merge, fromEvent, Subject, of, interval } from 'rxjs';
|
|
16
|
-
import * as i2 from '@progress/kendo-angular-popup';
|
|
16
|
+
import * as i2$1 from '@progress/kendo-angular-popup';
|
|
17
17
|
import { PopupModule } from '@progress/kendo-angular-popup';
|
|
18
18
|
export { PopupComponent } from '@progress/kendo-angular-popup';
|
|
19
19
|
import { map, switchMap, take, auditTime, tap, filter, partition, throttleTime, catchError, skipWhile, concatMap, takeUntil, debounceTime } from 'rxjs/operators';
|
|
20
|
-
import * as
|
|
20
|
+
import * as i13 from '@angular/common';
|
|
21
21
|
import { CommonModule } from '@angular/common';
|
|
22
22
|
import { xIcon, caretAltDownIcon, searchIcon, xCircleIcon, plusIcon } from '@progress/kendo-svg-icons';
|
|
23
|
+
import * as i2 from '@progress/kendo-angular-navigation';
|
|
24
|
+
import { ActionSheetComponent, ActionSheetModule } from '@progress/kendo-angular-navigation';
|
|
25
|
+
import * as i4 from '@progress/kendo-angular-inputs';
|
|
26
|
+
import { TextBoxModule } from '@progress/kendo-angular-inputs';
|
|
27
|
+
import * as i3 from '@progress/kendo-angular-buttons';
|
|
28
|
+
import { ButtonModule } from '@progress/kendo-angular-buttons';
|
|
23
29
|
import * as i8 from '@progress/kendo-angular-icons';
|
|
24
30
|
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
25
31
|
import * as i1$1 from '@progress/kendo-angular-treeview';
|
|
@@ -32,8 +38,8 @@ const packageMetadata = {
|
|
|
32
38
|
name: '@progress/kendo-angular-dropdowns',
|
|
33
39
|
productName: 'Kendo UI for Angular',
|
|
34
40
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
35
|
-
publishDate:
|
|
36
|
-
version: '12.0.0-develop.
|
|
41
|
+
publishDate: 1681813981,
|
|
42
|
+
version: '12.0.0-develop.8',
|
|
37
43
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
38
44
|
};
|
|
39
45
|
|
|
@@ -389,13 +395,79 @@ const getTextField = (field, level) => {
|
|
|
389
395
|
/**
|
|
390
396
|
* @hidden
|
|
391
397
|
*/
|
|
392
|
-
const getSearchableItems = (treeViewId,
|
|
398
|
+
const getSearchableItems = (treeViewId, element) => {
|
|
393
399
|
const nodeSeletor = `kendo-treeview[id='${treeViewId}'] li.k-treeview-item`;
|
|
394
|
-
const liElements = Array.from(
|
|
400
|
+
const liElements = Array.from(element.querySelectorAll(nodeSeletor));
|
|
395
401
|
return liElements.map((liElement) => {
|
|
396
402
|
return { text: liElement.innerText, index: liElement.getAttribute('data-treeindex') };
|
|
397
403
|
});
|
|
398
404
|
};
|
|
405
|
+
/**
|
|
406
|
+
* @hidden
|
|
407
|
+
*/
|
|
408
|
+
const windowSize = () => {
|
|
409
|
+
if (typeof window !== 'undefined') {
|
|
410
|
+
if (window.innerWidth > 768) {
|
|
411
|
+
return 'large';
|
|
412
|
+
}
|
|
413
|
+
else if (window.innerWidth > 500) {
|
|
414
|
+
return 'medium';
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
return 'small';
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
};
|
|
421
|
+
/**
|
|
422
|
+
* @hidden
|
|
423
|
+
*/
|
|
424
|
+
const isTruthy = (value) => !!value;
|
|
425
|
+
/**
|
|
426
|
+
* @hidden
|
|
427
|
+
*/
|
|
428
|
+
const updateActionSheetAdaptiveAppearance = (actionSheet, windowSize, renderer) => {
|
|
429
|
+
const element = actionSheet['element'].nativeElement.querySelector('.k-actionsheet');
|
|
430
|
+
const animationContainer = actionSheet['element'].nativeElement.querySelector('.k-child-animation-container');
|
|
431
|
+
if (windowSize === 'medium') {
|
|
432
|
+
renderer.removeClass(element, 'k-actionsheet-fullscreen');
|
|
433
|
+
renderer.addClass(element, 'k-actionsheet-bottom');
|
|
434
|
+
renderer.addClass(element, 'k-adaptive-actionsheet');
|
|
435
|
+
renderer.removeStyle(animationContainer, 'top');
|
|
436
|
+
renderer.removeStyle(animationContainer, 'height');
|
|
437
|
+
renderer.setStyle(animationContainer, 'bottom', '0px');
|
|
438
|
+
}
|
|
439
|
+
else if (windowSize === 'small') {
|
|
440
|
+
renderer.removeClass(element, 'k-actionsheet-bottom');
|
|
441
|
+
renderer.addClass(element, 'k-actionsheet-fullscreen');
|
|
442
|
+
renderer.addClass(element, 'k-adaptive-actionsheet');
|
|
443
|
+
renderer.setStyle(animationContainer, 'bottom', '0px');
|
|
444
|
+
renderer.setStyle(animationContainer, 'height', '100%');
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
/**
|
|
448
|
+
* @hidden
|
|
449
|
+
*/
|
|
450
|
+
const setListBoxAriaLabelLebBy = (optionsList, element, renderer) => {
|
|
451
|
+
const listBox = optionsList.wrapper.nativeElement.querySelector('kendo-list ul');
|
|
452
|
+
const ariaLabel = element.nativeElement.getAttribute('aria-labelledby');
|
|
453
|
+
if (ariaLabel) {
|
|
454
|
+
renderer.setAttribute(listBox, 'aria-labelledby', ariaLabel);
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
/**
|
|
458
|
+
* @hidden
|
|
459
|
+
*/
|
|
460
|
+
const setActionSheetTitle = (element, actionSheetTitle) => {
|
|
461
|
+
const ariaLabel = element.nativeElement.getAttribute('aria-labelledby');
|
|
462
|
+
if (!actionSheetTitle && ariaLabel) {
|
|
463
|
+
return document.getElementById(ariaLabel).innerText;
|
|
464
|
+
}
|
|
465
|
+
return actionSheetTitle;
|
|
466
|
+
};
|
|
467
|
+
/**
|
|
468
|
+
* @hidden
|
|
469
|
+
*/
|
|
470
|
+
const animationDuration = 300;
|
|
399
471
|
|
|
400
472
|
/**
|
|
401
473
|
* @hidden
|
|
@@ -601,7 +673,7 @@ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
601
673
|
[attr.aria-busy]="isLoading"
|
|
602
674
|
[attr.aria-invalid]="formControl?.invalid"
|
|
603
675
|
/>
|
|
604
|
-
`, isInline: true, directives: [{ type:
|
|
676
|
+
`, isInline: true, directives: [{ type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
605
677
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SearchBarComponent, decorators: [{
|
|
606
678
|
type: Component,
|
|
607
679
|
args: [{
|
|
@@ -1655,8 +1727,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1655
1727
|
class SelectableDirective {
|
|
1656
1728
|
constructor(selectionService) {
|
|
1657
1729
|
this.checkboxes = { enabled: false };
|
|
1658
|
-
// @HostBinding('attr.offset-index')
|
|
1659
|
-
// @Input() public offsetIndex: number;
|
|
1660
1730
|
this.multipleSelection = false;
|
|
1661
1731
|
this.selectionService = selectionService;
|
|
1662
1732
|
}
|
|
@@ -1686,7 +1756,7 @@ class SelectableDirective {
|
|
|
1686
1756
|
}
|
|
1687
1757
|
}
|
|
1688
1758
|
SelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectableDirective, deps: [{ token: SelectionService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1689
|
-
SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: { index: "index", checkboxes: "checkboxes", height: "height", multipleSelection: "multipleSelection" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.index": "this.index", "style.height.px": "this.height", "style.minHeight.px": "this.height", "class.k-focus": "this.focusedClassName", "class.k-selected": "this.selectedClassName" } }, ngImport: i0 });
|
|
1759
|
+
SelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: { index: "index", checkboxes: "checkboxes", height: "height", isMultiselect: "isMultiselect", multipleSelection: "multipleSelection" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.index": "this.index", "style.height.px": "this.height", "style.minHeight.px": "this.height", "class.k-focus": "this.focusedClassName", "class.k-selected": "this.selectedClassName" } }, ngImport: i0 });
|
|
1690
1760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectableDirective, decorators: [{
|
|
1691
1761
|
type: Directive,
|
|
1692
1762
|
args: [{
|
|
@@ -1707,6 +1777,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1707
1777
|
args: ['style.minHeight.px']
|
|
1708
1778
|
}, {
|
|
1709
1779
|
type: Input
|
|
1780
|
+
}], isMultiselect: [{
|
|
1781
|
+
type: Input
|
|
1710
1782
|
}], multipleSelection: [{
|
|
1711
1783
|
type: Input
|
|
1712
1784
|
}], focusedClassName: [{
|
|
@@ -2073,13 +2145,16 @@ class ListComponent {
|
|
|
2073
2145
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('list', this.size));
|
|
2074
2146
|
}
|
|
2075
2147
|
}
|
|
2148
|
+
if (this.type === 'dropdowngrid') {
|
|
2149
|
+
this.renderer.setStyle(this.wrapper.nativeElement, 'overflow-y', 'scroll');
|
|
2150
|
+
}
|
|
2076
2151
|
if (isPresent(this.virtual)) {
|
|
2077
2152
|
this.renderer.addClass(this.wrapper.nativeElement, this.listVirtualClass);
|
|
2078
2153
|
}
|
|
2079
2154
|
}
|
|
2080
2155
|
}
|
|
2081
2156
|
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", 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 });
|
|
2082
|
-
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: `
|
|
2157
|
+
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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", isActionSheetExpanded: "isActionSheetExpanded", 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: `
|
|
2083
2158
|
<div *ngIf="dataService.grouped"
|
|
2084
2159
|
[class]="listGroupStickyHeaderClass"
|
|
2085
2160
|
[ngStyle]="{
|
|
@@ -2146,6 +2221,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
2146
2221
|
</ng-template>
|
|
2147
2222
|
<ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
|
|
2148
2223
|
<li
|
|
2224
|
+
#li
|
|
2149
2225
|
*ngIf="dataItem.header && dataItem.index > 0"
|
|
2150
2226
|
role="group"
|
|
2151
2227
|
[class]="listGroupItemClass"
|
|
@@ -2168,6 +2244,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
2168
2244
|
</span>
|
|
2169
2245
|
</li>
|
|
2170
2246
|
<li
|
|
2247
|
+
#li
|
|
2171
2248
|
*ngIf="!dataItem.header"
|
|
2172
2249
|
role="option"
|
|
2173
2250
|
kendoDropDownsSelectable
|
|
@@ -2205,7 +2282,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
2205
2282
|
</div>
|
|
2206
2283
|
</div>
|
|
2207
2284
|
</div>
|
|
2208
|
-
`, isInline: true, components: [{ type:
|
|
2285
|
+
`, isInline: true, components: [{ type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ListItemDirective, selector: "\"li[role=option], li[role=group]\"" }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
2209
2286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ListComponent, decorators: [{
|
|
2210
2287
|
type: Component,
|
|
2211
2288
|
args: [{
|
|
@@ -2277,6 +2354,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2277
2354
|
</ng-template>
|
|
2278
2355
|
<ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
|
|
2279
2356
|
<li
|
|
2357
|
+
#li
|
|
2280
2358
|
*ngIf="dataItem.header && dataItem.index > 0"
|
|
2281
2359
|
role="group"
|
|
2282
2360
|
[class]="listGroupItemClass"
|
|
@@ -2299,6 +2377,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2299
2377
|
</span>
|
|
2300
2378
|
</li>
|
|
2301
2379
|
<li
|
|
2380
|
+
#li
|
|
2302
2381
|
*ngIf="!dataItem.header"
|
|
2303
2382
|
role="option"
|
|
2304
2383
|
kendoDropDownsSelectable
|
|
@@ -2372,6 +2451,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2372
2451
|
type: Input
|
|
2373
2452
|
}], isMultiselect: [{
|
|
2374
2453
|
type: Input
|
|
2454
|
+
}], isActionSheetExpanded: [{
|
|
2455
|
+
type: Input
|
|
2375
2456
|
}], data: [{
|
|
2376
2457
|
type: Input
|
|
2377
2458
|
}], size: [{
|
|
@@ -2424,13 +2505,240 @@ const normalizeVirtualizationSettings = (settings, defaultOverrides) => {
|
|
|
2424
2505
|
*/
|
|
2425
2506
|
const TOUCH_ENABLED = new InjectionToken('dropdowns-touch-enabled');
|
|
2426
2507
|
|
|
2508
|
+
/**
|
|
2509
|
+
* @hidden
|
|
2510
|
+
*/
|
|
2511
|
+
class ResponsiveRendererComponent {
|
|
2512
|
+
constructor(localization) {
|
|
2513
|
+
this.localization = localization;
|
|
2514
|
+
this.closePopup = new EventEmitter();
|
|
2515
|
+
this.textInputChange = new EventEmitter();
|
|
2516
|
+
this.navigate = new EventEmitter();
|
|
2517
|
+
this.onExpand = new EventEmitter();
|
|
2518
|
+
this.onCollapse = new EventEmitter();
|
|
2519
|
+
this.onApply = new EventEmitter();
|
|
2520
|
+
this.onCancel = new EventEmitter();
|
|
2521
|
+
this.searchBarValue = '';
|
|
2522
|
+
this.animationDuration = animationDuration;
|
|
2523
|
+
this.xIcon = xIcon;
|
|
2524
|
+
}
|
|
2525
|
+
messageFor(key) {
|
|
2526
|
+
return this.localization.get(key);
|
|
2527
|
+
}
|
|
2528
|
+
onValueChange(value) {
|
|
2529
|
+
this.searchBarValue = value;
|
|
2530
|
+
this.textInputChange.emit(value);
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
ResponsiveRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ResponsiveRendererComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2534
|
+
ResponsiveRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: { title: "title", showActionButtons: "showActionButtons", subtitle: "subtitle", size: "size", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", isActionSheetExpanded: "isActionSheetExpanded", text: "text", placeholder: "placeholder" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand", onCollapse: "onCollapse", onApply: "onApply", onCancel: "onCancel" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
|
|
2535
|
+
<kendo-actionsheet
|
|
2536
|
+
#actionSheet
|
|
2537
|
+
[animation]="{ duration: animationDuration }"
|
|
2538
|
+
[expanded]="isActionSheetExpanded"
|
|
2539
|
+
(overlayClick)="closePopup.emit()"
|
|
2540
|
+
(keydown)="navigate.emit($event)"
|
|
2541
|
+
(expand)="onExpand.emit()"
|
|
2542
|
+
(collapse)="onCollapse.emit()"
|
|
2543
|
+
>
|
|
2544
|
+
<ng-template kendoActionSheetTemplate>
|
|
2545
|
+
<div class="k-text-center k-actionsheet-titlebar">
|
|
2546
|
+
<div class="k-actionsheet-titlebar-group k-hbox">
|
|
2547
|
+
<div class="k-actionsheet-title">
|
|
2548
|
+
<div class="k-text-center">{{ title }}</div>
|
|
2549
|
+
<div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
|
|
2550
|
+
</div>
|
|
2551
|
+
<div class="k-actionsheet-actions">
|
|
2552
|
+
<button
|
|
2553
|
+
kendoButton
|
|
2554
|
+
icon="x"
|
|
2555
|
+
[attr.title]="messageFor('clearTitle')"
|
|
2556
|
+
[svgIcon]="xIcon"
|
|
2557
|
+
fillMode="flat"
|
|
2558
|
+
[size]="size"
|
|
2559
|
+
[tabIndex]="-1"
|
|
2560
|
+
aria-hidden="true"
|
|
2561
|
+
innerCssClass="k-button-icon"
|
|
2562
|
+
(click)="closePopup.emit()"
|
|
2563
|
+
></button>
|
|
2564
|
+
</div>
|
|
2565
|
+
</div>
|
|
2566
|
+
<div class="k-actionsheet-titlebar-group k-actionsheet-filter">
|
|
2567
|
+
<kendo-textbox
|
|
2568
|
+
*ngIf="showTextInput"
|
|
2569
|
+
#actionSheetSearchBar
|
|
2570
|
+
[value]="searchBarValue"
|
|
2571
|
+
[size]="size"
|
|
2572
|
+
placeholder="Filter"
|
|
2573
|
+
class="k-searchbox"
|
|
2574
|
+
autocomplete="off"
|
|
2575
|
+
(valueChange)="onValueChange($event)"
|
|
2576
|
+
>
|
|
2577
|
+
<ng-template kendoTextBoxPrefixTemplate>
|
|
2578
|
+
<kendo-icon name="search"></kendo-icon>
|
|
2579
|
+
</ng-template>
|
|
2580
|
+
</kendo-textbox>
|
|
2581
|
+
</div>
|
|
2582
|
+
</div>
|
|
2583
|
+
<div class="k-actionsheet-content !k-overflow-hidden">
|
|
2584
|
+
<div class="k-list-container">
|
|
2585
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
2586
|
+
</div>
|
|
2587
|
+
</div>
|
|
2588
|
+
|
|
2589
|
+
<div *ngIf="showActionButtons" class="k-actionsheet-footer k-actions k-actions-stretched">
|
|
2590
|
+
<button kendoButton
|
|
2591
|
+
tabindex="0"
|
|
2592
|
+
aria-disabled="false"
|
|
2593
|
+
[size]="size"
|
|
2594
|
+
themeColor="base"
|
|
2595
|
+
(click)="onCancel.emit()"
|
|
2596
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
2597
|
+
{{messageFor('cancelButton')}}
|
|
2598
|
+
</button>
|
|
2599
|
+
<button kendoButton
|
|
2600
|
+
tabindex="0"
|
|
2601
|
+
aria-disabled="false"
|
|
2602
|
+
[size]="size"
|
|
2603
|
+
themeColor="primary"
|
|
2604
|
+
(click)="onApply.emit()"
|
|
2605
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
2606
|
+
{{messageFor('applyButton')}}
|
|
2607
|
+
</button>
|
|
2608
|
+
</div>
|
|
2609
|
+
</ng-template>
|
|
2610
|
+
</kendo-actionsheet>
|
|
2611
|
+
`, isInline: true, components: [{ type: i2.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i3.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i4.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "errorIcon", "clearButtonIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { type: i8.IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }], directives: [{ type: i2.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]" }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2612
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ResponsiveRendererComponent, decorators: [{
|
|
2613
|
+
type: Component,
|
|
2614
|
+
args: [{
|
|
2615
|
+
selector: 'responsive-renderer',
|
|
2616
|
+
template: `
|
|
2617
|
+
<kendo-actionsheet
|
|
2618
|
+
#actionSheet
|
|
2619
|
+
[animation]="{ duration: animationDuration }"
|
|
2620
|
+
[expanded]="isActionSheetExpanded"
|
|
2621
|
+
(overlayClick)="closePopup.emit()"
|
|
2622
|
+
(keydown)="navigate.emit($event)"
|
|
2623
|
+
(expand)="onExpand.emit()"
|
|
2624
|
+
(collapse)="onCollapse.emit()"
|
|
2625
|
+
>
|
|
2626
|
+
<ng-template kendoActionSheetTemplate>
|
|
2627
|
+
<div class="k-text-center k-actionsheet-titlebar">
|
|
2628
|
+
<div class="k-actionsheet-titlebar-group k-hbox">
|
|
2629
|
+
<div class="k-actionsheet-title">
|
|
2630
|
+
<div class="k-text-center">{{ title }}</div>
|
|
2631
|
+
<div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
|
|
2632
|
+
</div>
|
|
2633
|
+
<div class="k-actionsheet-actions">
|
|
2634
|
+
<button
|
|
2635
|
+
kendoButton
|
|
2636
|
+
icon="x"
|
|
2637
|
+
[attr.title]="messageFor('clearTitle')"
|
|
2638
|
+
[svgIcon]="xIcon"
|
|
2639
|
+
fillMode="flat"
|
|
2640
|
+
[size]="size"
|
|
2641
|
+
[tabIndex]="-1"
|
|
2642
|
+
aria-hidden="true"
|
|
2643
|
+
innerCssClass="k-button-icon"
|
|
2644
|
+
(click)="closePopup.emit()"
|
|
2645
|
+
></button>
|
|
2646
|
+
</div>
|
|
2647
|
+
</div>
|
|
2648
|
+
<div class="k-actionsheet-titlebar-group k-actionsheet-filter">
|
|
2649
|
+
<kendo-textbox
|
|
2650
|
+
*ngIf="showTextInput"
|
|
2651
|
+
#actionSheetSearchBar
|
|
2652
|
+
[value]="searchBarValue"
|
|
2653
|
+
[size]="size"
|
|
2654
|
+
placeholder="Filter"
|
|
2655
|
+
class="k-searchbox"
|
|
2656
|
+
autocomplete="off"
|
|
2657
|
+
(valueChange)="onValueChange($event)"
|
|
2658
|
+
>
|
|
2659
|
+
<ng-template kendoTextBoxPrefixTemplate>
|
|
2660
|
+
<kendo-icon name="search"></kendo-icon>
|
|
2661
|
+
</ng-template>
|
|
2662
|
+
</kendo-textbox>
|
|
2663
|
+
</div>
|
|
2664
|
+
</div>
|
|
2665
|
+
<div class="k-actionsheet-content !k-overflow-hidden">
|
|
2666
|
+
<div class="k-list-container">
|
|
2667
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
2668
|
+
</div>
|
|
2669
|
+
</div>
|
|
2670
|
+
|
|
2671
|
+
<div *ngIf="showActionButtons" class="k-actionsheet-footer k-actions k-actions-stretched">
|
|
2672
|
+
<button kendoButton
|
|
2673
|
+
tabindex="0"
|
|
2674
|
+
aria-disabled="false"
|
|
2675
|
+
[size]="size"
|
|
2676
|
+
themeColor="base"
|
|
2677
|
+
(click)="onCancel.emit()"
|
|
2678
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
2679
|
+
{{messageFor('cancelButton')}}
|
|
2680
|
+
</button>
|
|
2681
|
+
<button kendoButton
|
|
2682
|
+
tabindex="0"
|
|
2683
|
+
aria-disabled="false"
|
|
2684
|
+
[size]="size"
|
|
2685
|
+
themeColor="primary"
|
|
2686
|
+
(click)="onApply.emit()"
|
|
2687
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
2688
|
+
{{messageFor('applyButton')}}
|
|
2689
|
+
</button>
|
|
2690
|
+
</div>
|
|
2691
|
+
</ng-template>
|
|
2692
|
+
</kendo-actionsheet>
|
|
2693
|
+
`,
|
|
2694
|
+
}]
|
|
2695
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { title: [{
|
|
2696
|
+
type: Input
|
|
2697
|
+
}], showActionButtons: [{
|
|
2698
|
+
type: Input
|
|
2699
|
+
}], subtitle: [{
|
|
2700
|
+
type: Input
|
|
2701
|
+
}], size: [{
|
|
2702
|
+
type: Input
|
|
2703
|
+
}], showTextInput: [{
|
|
2704
|
+
type: Input
|
|
2705
|
+
}], sharedPopupActionSheetTemplate: [{
|
|
2706
|
+
type: Input
|
|
2707
|
+
}], isActionSheetExpanded: [{
|
|
2708
|
+
type: Input
|
|
2709
|
+
}], text: [{
|
|
2710
|
+
type: Input
|
|
2711
|
+
}], placeholder: [{
|
|
2712
|
+
type: Input
|
|
2713
|
+
}], closePopup: [{
|
|
2714
|
+
type: Output
|
|
2715
|
+
}], textInputChange: [{
|
|
2716
|
+
type: Output
|
|
2717
|
+
}], navigate: [{
|
|
2718
|
+
type: Output
|
|
2719
|
+
}], onExpand: [{
|
|
2720
|
+
type: Output
|
|
2721
|
+
}], onCollapse: [{
|
|
2722
|
+
type: Output
|
|
2723
|
+
}], onApply: [{
|
|
2724
|
+
type: Output
|
|
2725
|
+
}], onCancel: [{
|
|
2726
|
+
type: Output
|
|
2727
|
+
}], actionSheet: [{
|
|
2728
|
+
type: ViewChild,
|
|
2729
|
+
args: [ActionSheetComponent]
|
|
2730
|
+
}], actionSheetSearchBar: [{
|
|
2731
|
+
type: ViewChild,
|
|
2732
|
+
args: ['actionSheetSearchBar']
|
|
2733
|
+
}] } });
|
|
2734
|
+
|
|
2427
2735
|
/**
|
|
2428
2736
|
* @hidden
|
|
2429
2737
|
*/
|
|
2430
2738
|
class Messages extends ComponentMessages {
|
|
2431
2739
|
}
|
|
2432
2740
|
Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2433
|
-
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel" }, usesInheritance: true, ngImport: i0 });
|
|
2741
|
+
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", applyButton: "applyButton", cancelButton: "cancelButton" }, usesInheritance: true, ngImport: i0 });
|
|
2434
2742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
|
|
2435
2743
|
type: Directive
|
|
2436
2744
|
}], propDecorators: { noDataText: [{
|
|
@@ -2445,6 +2753,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2445
2753
|
type: Input
|
|
2446
2754
|
}], popupLabel: [{
|
|
2447
2755
|
type: Input
|
|
2756
|
+
}], applyButton: [{
|
|
2757
|
+
type: Input
|
|
2758
|
+
}], cancelButton: [{
|
|
2759
|
+
type: Input
|
|
2448
2760
|
}] } });
|
|
2449
2761
|
|
|
2450
2762
|
/**
|
|
@@ -2529,6 +2841,10 @@ class AutoCompleteComponent {
|
|
|
2529
2841
|
this.renderer = renderer;
|
|
2530
2842
|
this.hostElement = hostElement;
|
|
2531
2843
|
this.touchEnabled = touchEnabled;
|
|
2844
|
+
/**
|
|
2845
|
+
* @hidden
|
|
2846
|
+
*/
|
|
2847
|
+
this.animationDuration = animationDuration;
|
|
2532
2848
|
/**
|
|
2533
2849
|
* @hidden
|
|
2534
2850
|
*/
|
|
@@ -2547,12 +2863,15 @@ class AutoCompleteComponent {
|
|
|
2547
2863
|
*/
|
|
2548
2864
|
this.placeholder = "";
|
|
2549
2865
|
/**
|
|
2550
|
-
*
|
|
2551
|
-
*
|
|
2552
|
-
* > The `listHeight` property affects only the list of suggestions and not the whole popup container.
|
|
2553
|
-
* > To set the height of the popup container, use `popupSettings.height`.
|
|
2866
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
2554
2867
|
*/
|
|
2555
|
-
this.
|
|
2868
|
+
this.adaptiveMode = 'none';
|
|
2869
|
+
/**
|
|
2870
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
2871
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
2872
|
+
*/
|
|
2873
|
+
this.title = '';
|
|
2874
|
+
this._listHeight = 200;
|
|
2556
2875
|
/**
|
|
2557
2876
|
* @hidden
|
|
2558
2877
|
*
|
|
@@ -2621,12 +2940,17 @@ class AutoCompleteComponent {
|
|
|
2621
2940
|
this.widgetClasses = true;
|
|
2622
2941
|
this.listBoxId = `k-${guid()}`;
|
|
2623
2942
|
this.optionPrefix = `k-${guid()}`;
|
|
2943
|
+
/**
|
|
2944
|
+
* @hidden
|
|
2945
|
+
*/
|
|
2946
|
+
this.windowSize = 'large';
|
|
2624
2947
|
this.onChangeCallback = noop;
|
|
2625
2948
|
this.onTouchedCallback = noop;
|
|
2626
2949
|
this.popupMouseDownHandler = (event) => event.preventDefault();
|
|
2627
2950
|
this._popupSettings = { animate: true };
|
|
2628
2951
|
this._open = false;
|
|
2629
2952
|
this._value = "";
|
|
2953
|
+
this.subs = new Subscription();
|
|
2630
2954
|
this.valueChangeSubject = new Subject();
|
|
2631
2955
|
this._isFocused = false;
|
|
2632
2956
|
this._size = 'medium';
|
|
@@ -2640,6 +2964,18 @@ class AutoCompleteComponent {
|
|
|
2640
2964
|
this.subscribeTouchEvents();
|
|
2641
2965
|
this.selectionService.resetSelection([-1]);
|
|
2642
2966
|
}
|
|
2967
|
+
/**
|
|
2968
|
+
* @hidden
|
|
2969
|
+
*/
|
|
2970
|
+
get actionSheet() {
|
|
2971
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
2972
|
+
}
|
|
2973
|
+
/**
|
|
2974
|
+
* @hidden
|
|
2975
|
+
*/
|
|
2976
|
+
get actionSheetSearchBar() {
|
|
2977
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
2978
|
+
}
|
|
2643
2979
|
get width() {
|
|
2644
2980
|
let wrapperOffsetWidth = 0;
|
|
2645
2981
|
if (isDocumentAvailable()) {
|
|
@@ -2688,8 +3024,8 @@ class AutoCompleteComponent {
|
|
|
2688
3024
|
return this.isOpen ? this.listBoxId : undefined;
|
|
2689
3025
|
}
|
|
2690
3026
|
/**
|
|
2691
|
-
* Toggles the visibility of the popup.
|
|
2692
|
-
* If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.
|
|
3027
|
+
* Toggles the visibility of the popup or actionSheet.
|
|
3028
|
+
* If you use the `toggle` method to open or close the popup or actionSheet, the `open` and `close` events will not be fired.
|
|
2693
3029
|
*
|
|
2694
3030
|
* @param open - The state of the popup.
|
|
2695
3031
|
*/
|
|
@@ -2700,10 +3036,19 @@ class AutoCompleteComponent {
|
|
|
2700
3036
|
});
|
|
2701
3037
|
}
|
|
2702
3038
|
/**
|
|
2703
|
-
* Returns the current open state
|
|
3039
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
2704
3040
|
*/
|
|
2705
3041
|
get isOpen() {
|
|
2706
|
-
return this._open;
|
|
3042
|
+
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
3043
|
+
}
|
|
3044
|
+
/**
|
|
3045
|
+
* @hidden
|
|
3046
|
+
*/
|
|
3047
|
+
handleClick() {
|
|
3048
|
+
this.windowSize = windowSize();
|
|
3049
|
+
if (this.isAdaptive) {
|
|
3050
|
+
this.togglePopup(true);
|
|
3051
|
+
}
|
|
2707
3052
|
}
|
|
2708
3053
|
/**
|
|
2709
3054
|
* @hidden
|
|
@@ -2766,6 +3111,22 @@ class AutoCompleteComponent {
|
|
|
2766
3111
|
get value() {
|
|
2767
3112
|
return this._value || NO_VALUE;
|
|
2768
3113
|
}
|
|
3114
|
+
/**
|
|
3115
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
3116
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
3117
|
+
*/
|
|
3118
|
+
set subtitle(_subtitle) {
|
|
3119
|
+
this._subtitle = _subtitle;
|
|
3120
|
+
}
|
|
3121
|
+
get subtitle() {
|
|
3122
|
+
return this._subtitle || this.placeholder;
|
|
3123
|
+
}
|
|
3124
|
+
/**
|
|
3125
|
+
* @hidden
|
|
3126
|
+
*/
|
|
3127
|
+
get isAdaptiveModeEnabled() {
|
|
3128
|
+
return this.adaptiveMode === 'auto';
|
|
3129
|
+
}
|
|
2769
3130
|
/**
|
|
2770
3131
|
* Configures the popup of the AutoComplete.
|
|
2771
3132
|
*
|
|
@@ -2782,6 +3143,24 @@ class AutoCompleteComponent {
|
|
|
2782
3143
|
get popupSettings() {
|
|
2783
3144
|
return this._popupSettings;
|
|
2784
3145
|
}
|
|
3146
|
+
/**
|
|
3147
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
3148
|
+
*
|
|
3149
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
3150
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
3151
|
+
*
|
|
3152
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
3153
|
+
*/
|
|
3154
|
+
set listHeight(_listHeight) {
|
|
3155
|
+
this._listHeight = _listHeight;
|
|
3156
|
+
}
|
|
3157
|
+
;
|
|
3158
|
+
get listHeight() {
|
|
3159
|
+
if (this.isAdaptive) {
|
|
3160
|
+
return;
|
|
3161
|
+
}
|
|
3162
|
+
return this._listHeight;
|
|
3163
|
+
}
|
|
2785
3164
|
/**
|
|
2786
3165
|
* Defines a Boolean function that is executed for each data item in the component
|
|
2787
3166
|
* ([see examples]({% slug disableditems_autocomplete %})).
|
|
@@ -2891,21 +3270,39 @@ class AutoCompleteComponent {
|
|
|
2891
3270
|
get dir() {
|
|
2892
3271
|
return this.direction;
|
|
2893
3272
|
}
|
|
3273
|
+
/**
|
|
3274
|
+
* @hidden
|
|
3275
|
+
*/
|
|
3276
|
+
get isActionSheetExpanded() {
|
|
3277
|
+
return this.actionSheet?.expanded;
|
|
3278
|
+
}
|
|
3279
|
+
;
|
|
3280
|
+
/**
|
|
3281
|
+
* @hidden
|
|
3282
|
+
*/
|
|
3283
|
+
get isAdaptive() {
|
|
3284
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
3285
|
+
}
|
|
2894
3286
|
ngOnInit() {
|
|
2895
3287
|
this.renderer.removeAttribute(this.wrapper, "tabindex");
|
|
2896
|
-
this.
|
|
3288
|
+
this.subs.add(this.localization
|
|
2897
3289
|
.changes
|
|
2898
3290
|
.subscribe(({ rtl }) => {
|
|
2899
3291
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
2900
3292
|
this.cdr.detectChanges();
|
|
2901
|
-
});
|
|
3293
|
+
}));
|
|
2902
3294
|
this.setComponentClasses();
|
|
2903
3295
|
}
|
|
3296
|
+
ngAfterViewInit() {
|
|
3297
|
+
this.windowSize = windowSize();
|
|
3298
|
+
this.cdr.detectChanges();
|
|
3299
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
3300
|
+
}
|
|
2904
3301
|
ngOnDestroy() {
|
|
2905
3302
|
this.destroyPopup();
|
|
2906
|
-
this.
|
|
2907
|
-
if (this.
|
|
2908
|
-
this.
|
|
3303
|
+
this.subs.unsubscribe();
|
|
3304
|
+
if (this.touchstartDisposeHandler) {
|
|
3305
|
+
this.touchstartDisposeHandler();
|
|
2909
3306
|
}
|
|
2910
3307
|
}
|
|
2911
3308
|
ngOnChanges(changes) {
|
|
@@ -2929,6 +3326,12 @@ class AutoCompleteComponent {
|
|
|
2929
3326
|
messageFor(key) {
|
|
2930
3327
|
return this.localization.get(key);
|
|
2931
3328
|
}
|
|
3329
|
+
/**
|
|
3330
|
+
* @hidden
|
|
3331
|
+
*/
|
|
3332
|
+
onAdaptiveTextBoxChange(text) {
|
|
3333
|
+
this.search(text);
|
|
3334
|
+
}
|
|
2932
3335
|
/**
|
|
2933
3336
|
* @hidden
|
|
2934
3337
|
*/
|
|
@@ -2998,7 +3401,14 @@ class AutoCompleteComponent {
|
|
|
2998
3401
|
* @hidden
|
|
2999
3402
|
*/
|
|
3000
3403
|
onResize() {
|
|
3001
|
-
if (this.
|
|
3404
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
3405
|
+
if (this.isOpen) {
|
|
3406
|
+
this.togglePopup(false);
|
|
3407
|
+
}
|
|
3408
|
+
this.windowSize = windowSize();
|
|
3409
|
+
this.cdr.detectChanges();
|
|
3410
|
+
}
|
|
3411
|
+
if (this._open && !this.isActionSheetExpanded) {
|
|
3002
3412
|
const popupWrapper = this.popupRef.popupElement;
|
|
3003
3413
|
const { min, max } = this.width;
|
|
3004
3414
|
popupWrapper.style.minWidth = min;
|
|
@@ -3018,13 +3428,7 @@ class AutoCompleteComponent {
|
|
|
3018
3428
|
}
|
|
3019
3429
|
}
|
|
3020
3430
|
search(text, startFrom = 0) {
|
|
3021
|
-
|
|
3022
|
-
if (text.length && this.dataService.itemsCount) {
|
|
3023
|
-
index = this.dataService.findIndex(this.findIndexPredicate(text), startFrom);
|
|
3024
|
-
}
|
|
3025
|
-
else {
|
|
3026
|
-
index = -1;
|
|
3027
|
-
}
|
|
3431
|
+
const index = this.findIndex(text, startFrom);
|
|
3028
3432
|
if (this.disabledItemsService.isIndexDisabled(index)) {
|
|
3029
3433
|
if (index + 1 < this.dataService.itemsCount) {
|
|
3030
3434
|
this.search(text, index + 1);
|
|
@@ -3072,6 +3476,10 @@ class AutoCompleteComponent {
|
|
|
3072
3476
|
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {
|
|
3073
3477
|
event.preventDefault();
|
|
3074
3478
|
}
|
|
3479
|
+
if (action === NavigationAction.Tab && this.isActionSheetExpanded) {
|
|
3480
|
+
event.stopImmediatePropagation();
|
|
3481
|
+
this.togglePopup(false);
|
|
3482
|
+
}
|
|
3075
3483
|
}
|
|
3076
3484
|
handleEnter(event) {
|
|
3077
3485
|
const focused = this.selectionService.focused;
|
|
@@ -3092,6 +3500,9 @@ class AutoCompleteComponent {
|
|
|
3092
3500
|
value = this.searchbar.value;
|
|
3093
3501
|
}
|
|
3094
3502
|
}
|
|
3503
|
+
if (this.isActionSheetExpanded && focused >= 0) {
|
|
3504
|
+
this.togglePopup(false);
|
|
3505
|
+
}
|
|
3095
3506
|
this.change(value);
|
|
3096
3507
|
}
|
|
3097
3508
|
handleEscape() {
|
|
@@ -3122,6 +3533,17 @@ class AutoCompleteComponent {
|
|
|
3122
3533
|
this.search(text);
|
|
3123
3534
|
}
|
|
3124
3535
|
}
|
|
3536
|
+
/**
|
|
3537
|
+
* @hidden
|
|
3538
|
+
*/
|
|
3539
|
+
onFilterChange(text) {
|
|
3540
|
+
if (this.filterable) {
|
|
3541
|
+
this.filterChange.emit(text);
|
|
3542
|
+
}
|
|
3543
|
+
else if (this.highlightFirst) {
|
|
3544
|
+
this.search(text);
|
|
3545
|
+
}
|
|
3546
|
+
}
|
|
3125
3547
|
/**
|
|
3126
3548
|
* @hidden
|
|
3127
3549
|
*/
|
|
@@ -3137,37 +3559,39 @@ class AutoCompleteComponent {
|
|
|
3137
3559
|
* @hidden
|
|
3138
3560
|
*/
|
|
3139
3561
|
handleBlur() {
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3562
|
+
if (!this.isActionSheetExpanded) {
|
|
3563
|
+
const focused = this.filterable ? this.selectionService.focused : -1;
|
|
3564
|
+
this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers
|
|
3565
|
+
let dataItem;
|
|
3566
|
+
let text;
|
|
3567
|
+
if (focused !== -1) {
|
|
3568
|
+
dataItem = this.dataService.itemAt(focused);
|
|
3569
|
+
text = getter(dataItem, this.valueField) || "";
|
|
3570
|
+
}
|
|
3571
|
+
else {
|
|
3572
|
+
text = this.searchbar.value;
|
|
3573
|
+
}
|
|
3574
|
+
const exactMatch = text === this.searchbar.value;
|
|
3575
|
+
const insensitiveMatch = text.toLowerCase() === this.searchbar.value.toLowerCase();
|
|
3576
|
+
if (!exactMatch && insensitiveMatch) {
|
|
3577
|
+
this.selectionService.resetSelection([]);
|
|
3578
|
+
}
|
|
3579
|
+
this.isFocused = false;
|
|
3580
|
+
const valueHasChanged = this.value !== this.text;
|
|
3581
|
+
const runInZone = hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper) || valueHasChanged;
|
|
3582
|
+
if (runInZone) {
|
|
3583
|
+
this._zone.run(() => {
|
|
3584
|
+
if (valueHasChanged) {
|
|
3585
|
+
this.change(this.searchbar.value);
|
|
3586
|
+
}
|
|
3587
|
+
this.onBlur.emit();
|
|
3588
|
+
this.onTouchedCallback();
|
|
3589
|
+
this.togglePopup(false);
|
|
3590
|
+
});
|
|
3591
|
+
}
|
|
3592
|
+
else {
|
|
3166
3593
|
this.togglePopup(false);
|
|
3167
|
-
}
|
|
3168
|
-
}
|
|
3169
|
-
else {
|
|
3170
|
-
this.togglePopup(false);
|
|
3594
|
+
}
|
|
3171
3595
|
}
|
|
3172
3596
|
}
|
|
3173
3597
|
/**
|
|
@@ -3185,29 +3609,42 @@ class AutoCompleteComponent {
|
|
|
3185
3609
|
if (!isDocumentAvailable()) {
|
|
3186
3610
|
return;
|
|
3187
3611
|
}
|
|
3188
|
-
this.
|
|
3612
|
+
this.subs.add(this.valueChangeSubject
|
|
3189
3613
|
.subscribe(value => {
|
|
3190
3614
|
const hasChange = this.value !== value;
|
|
3615
|
+
const index = this.findIndex(value);
|
|
3616
|
+
this.selectionService.focused = index;
|
|
3191
3617
|
this.value = value;
|
|
3192
3618
|
this.text = value;
|
|
3193
3619
|
// emit change after assigning `this.value` => allows the user to modify the component value on `valueChange`
|
|
3194
3620
|
if (hasChange) {
|
|
3195
3621
|
this.emitChange(value);
|
|
3196
3622
|
}
|
|
3197
|
-
});
|
|
3198
|
-
this.
|
|
3199
|
-
this.
|
|
3200
|
-
this.
|
|
3201
|
-
this.
|
|
3202
|
-
this.
|
|
3203
|
-
this.
|
|
3204
|
-
this.
|
|
3205
|
-
this.
|
|
3623
|
+
}));
|
|
3624
|
+
this.subs.add(this.selectionService.onChange.subscribe(this.handleItemChange.bind(this)));
|
|
3625
|
+
this.subs.add(this.selectionService.onFocus.subscribe(this.handleItemFocus.bind(this)));
|
|
3626
|
+
this.subs.add(merge(this.navigationService.up, this.navigationService.down).subscribe((event) => this.navigate(event.index)));
|
|
3627
|
+
this.subs.add(this.navigationService.close.subscribe(() => this.togglePopup(false)));
|
|
3628
|
+
this.subs.add(this.navigationService.open.subscribe(() => this.togglePopup(true)));
|
|
3629
|
+
this.subs.add(this.navigationService.enter.subscribe(this.handleEnter.bind(this)));
|
|
3630
|
+
this.subs.add(this.navigationService.esc.subscribe(this.handleEscape.bind(this)));
|
|
3631
|
+
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
|
3206
3632
|
if (this.isOpen) {
|
|
3207
3633
|
event.originalEvent.preventDefault();
|
|
3208
3634
|
this.optionsList.scrollWithOnePage(NavigationAction[event.originalEvent.code]);
|
|
3209
3635
|
}
|
|
3210
|
-
});
|
|
3636
|
+
}));
|
|
3637
|
+
}
|
|
3638
|
+
findIndex(value, startFrom = 0) {
|
|
3639
|
+
let index;
|
|
3640
|
+
if (value && value.length && this.dataService.itemsCount) {
|
|
3641
|
+
index = this.dataService.findIndex(this.findIndexPredicate(value), startFrom);
|
|
3642
|
+
}
|
|
3643
|
+
else {
|
|
3644
|
+
index = -1;
|
|
3645
|
+
}
|
|
3646
|
+
;
|
|
3647
|
+
return index;
|
|
3211
3648
|
}
|
|
3212
3649
|
subscribeTouchEvents() {
|
|
3213
3650
|
if (!isDocumentAvailable() || !this.touchEnabled) {
|
|
@@ -3222,23 +3659,6 @@ class AutoCompleteComponent {
|
|
|
3222
3659
|
}
|
|
3223
3660
|
}));
|
|
3224
3661
|
}
|
|
3225
|
-
unsubscribeEvents() {
|
|
3226
|
-
if (!isDocumentAvailable()) {
|
|
3227
|
-
return;
|
|
3228
|
-
}
|
|
3229
|
-
this.changeSubscription.unsubscribe();
|
|
3230
|
-
this.navigationSubscription.unsubscribe();
|
|
3231
|
-
this.closeSubscription.unsubscribe();
|
|
3232
|
-
this.openSubscription.unsubscribe();
|
|
3233
|
-
this.enterSubscription.unsubscribe();
|
|
3234
|
-
this.escSubscription.unsubscribe();
|
|
3235
|
-
this.scrollSubscription.unsubscribe();
|
|
3236
|
-
this.valueChangeSubscription.unsubscribe();
|
|
3237
|
-
this.focusSubscription.unsubscribe();
|
|
3238
|
-
if (this.touchstartDisposeHandler) {
|
|
3239
|
-
this.touchstartDisposeHandler();
|
|
3240
|
-
}
|
|
3241
|
-
}
|
|
3242
3662
|
handleItemChange(event) {
|
|
3243
3663
|
const index = event.indices.length ? event.indices[0] : undefined;
|
|
3244
3664
|
this.selectionService.resetSelection([-1]);
|
|
@@ -3247,6 +3667,9 @@ class AutoCompleteComponent {
|
|
|
3247
3667
|
}
|
|
3248
3668
|
const text = getter(this.dataService.itemAt(index), this.valueField);
|
|
3249
3669
|
this.change(text);
|
|
3670
|
+
if (this.isActionSheetExpanded) {
|
|
3671
|
+
this.togglePopup(false);
|
|
3672
|
+
}
|
|
3250
3673
|
}
|
|
3251
3674
|
handleItemFocus(_event) {
|
|
3252
3675
|
const focused = this.selectionService.focused;
|
|
@@ -3259,9 +3682,14 @@ class AutoCompleteComponent {
|
|
|
3259
3682
|
if (this.virtual) {
|
|
3260
3683
|
this.virtual.skip = 0;
|
|
3261
3684
|
}
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3685
|
+
this.windowSize = windowSize();
|
|
3686
|
+
if (this.isAdaptive) {
|
|
3687
|
+
this.openActionSheet();
|
|
3688
|
+
return;
|
|
3689
|
+
}
|
|
3690
|
+
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
3691
|
+
const anchorPosition = { horizontal: horizontalAlign, vertical: "bottom" };
|
|
3692
|
+
const popupPosition = { horizontal: horizontalAlign, vertical: "top" };
|
|
3265
3693
|
this.popupRef = this.popupService.open({
|
|
3266
3694
|
anchor: this.wrapper,
|
|
3267
3695
|
animate: this.popupSettings.animate,
|
|
@@ -3283,20 +3711,17 @@ class AutoCompleteComponent {
|
|
|
3283
3711
|
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
3284
3712
|
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
3285
3713
|
}
|
|
3286
|
-
|
|
3287
|
-
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
3288
|
-
if (ariaLabel) {
|
|
3289
|
-
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
3290
|
-
}
|
|
3291
|
-
this.popupRef.popupOpen.subscribe(() => {
|
|
3714
|
+
this.subs.add(this.popupRef.popupOpen.subscribe(() => {
|
|
3292
3715
|
this.cdr.detectChanges();
|
|
3716
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
3293
3717
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
3718
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
3294
3719
|
this.opened.emit();
|
|
3295
|
-
});
|
|
3296
|
-
this.popupRef.popupClose.subscribe(() => {
|
|
3720
|
+
}));
|
|
3721
|
+
this.subs.add(this.popupRef.popupClose.subscribe(() => {
|
|
3297
3722
|
this.closed.emit();
|
|
3298
|
-
});
|
|
3299
|
-
this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));
|
|
3723
|
+
}));
|
|
3724
|
+
this.subs.add(this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false)));
|
|
3300
3725
|
}
|
|
3301
3726
|
destroyPopup() {
|
|
3302
3727
|
if (this.popupRef) {
|
|
@@ -3309,6 +3734,9 @@ class AutoCompleteComponent {
|
|
|
3309
3734
|
_toggle(open) {
|
|
3310
3735
|
this._open = open;
|
|
3311
3736
|
this.destroyPopup();
|
|
3737
|
+
if (this.isActionSheetExpanded) {
|
|
3738
|
+
this.closeActionSheet();
|
|
3739
|
+
}
|
|
3312
3740
|
if (this._open) {
|
|
3313
3741
|
this.createPopup();
|
|
3314
3742
|
}
|
|
@@ -3359,9 +3787,28 @@ class AutoCompleteComponent {
|
|
|
3359
3787
|
this.renderer.addClass(this.wrapper, getFillModeClass('input', this.fillMode));
|
|
3360
3788
|
}
|
|
3361
3789
|
}
|
|
3790
|
+
closeActionSheet() {
|
|
3791
|
+
this.actionSheet.toggle(false);
|
|
3792
|
+
this.actionSheetSearchBar.value = '';
|
|
3793
|
+
this.filterable && this.filterChange.emit('');
|
|
3794
|
+
this.searchbar.input.nativeElement.focus();
|
|
3795
|
+
this.closed.emit();
|
|
3796
|
+
}
|
|
3797
|
+
openActionSheet() {
|
|
3798
|
+
this.actionSheet.toggle(true);
|
|
3799
|
+
this.cdr.detectChanges();
|
|
3800
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
3801
|
+
this.title = setActionSheetTitle(this.searchbar.input, this.title);
|
|
3802
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
3803
|
+
this.cdr.detectChanges();
|
|
3804
|
+
this.opened.emit();
|
|
3805
|
+
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
3806
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
3807
|
+
this.actionSheetSearchBar.focus();
|
|
3808
|
+
}
|
|
3362
3809
|
}
|
|
3363
|
-
AutoCompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: DataService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3364
|
-
AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
|
|
3810
|
+
AutoCompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: DataService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3811
|
+
AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
|
|
3365
3812
|
AUTOCOMPLETE_VALUE_ACCESSOR,
|
|
3366
3813
|
DataService,
|
|
3367
3814
|
SelectionService,
|
|
@@ -3380,7 +3827,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3380
3827
|
provide: KendoInput,
|
|
3381
3828
|
useExisting: forwardRef(() => AutoCompleteComponent)
|
|
3382
3829
|
}
|
|
3383
|
-
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoAutoComplete"], usesOnChanges: true, ngImport: i0, template: `
|
|
3830
|
+
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoAutoComplete"], usesOnChanges: true, ngImport: i0, template: `
|
|
3384
3831
|
<ng-container kendoAutoCompleteLocalizedMessages
|
|
3385
3832
|
i18n-noDataText="kendo.autocomplete.noDataText|The text displayed in the popup when there are no items"
|
|
3386
3833
|
noDataText="NO DATA FOUND"
|
|
@@ -3395,7 +3842,6 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3395
3842
|
<kendo-searchbar #searchbar
|
|
3396
3843
|
[role]="'combobox'"
|
|
3397
3844
|
[ariaExpanded]="isOpen"
|
|
3398
|
-
[ariaControls]="ariaControls"
|
|
3399
3845
|
[isSuggestable]="suggest"
|
|
3400
3846
|
[isFilterable]="filterable"
|
|
3401
3847
|
[isLoading]="isLoading"
|
|
@@ -3405,13 +3851,14 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3405
3851
|
[userInput]="text"
|
|
3406
3852
|
[suggestedText]="suggestion"
|
|
3407
3853
|
[disabled]="disabled"
|
|
3408
|
-
[readonly]="readonly"
|
|
3854
|
+
[readonly]="readonly || this.isAdaptive"
|
|
3409
3855
|
[tabIndex]="tabIndex"
|
|
3410
3856
|
[placeholder]="placeholder"
|
|
3411
3857
|
(onNavigate)="handleNavigate($event)"
|
|
3412
3858
|
(valueChange)="searchBarChange($event)"
|
|
3413
3859
|
(onBlur)="handleBlur()"
|
|
3414
3860
|
(onFocus)="handleFocus()"
|
|
3861
|
+
(click)="handleClick()"
|
|
3415
3862
|
></kendo-searchbar>
|
|
3416
3863
|
<span
|
|
3417
3864
|
*ngIf="!loading && !readonly && (clearButton && text?.length)"
|
|
@@ -3431,6 +3878,26 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3431
3878
|
</span>
|
|
3432
3879
|
<span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
|
|
3433
3880
|
<ng-template #popupTemplate>
|
|
3881
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
3882
|
+
</ng-template>
|
|
3883
|
+
<ng-container #container></ng-container>
|
|
3884
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
3885
|
+
|
|
3886
|
+
<!--adaptive rendering-->
|
|
3887
|
+
<responsive-renderer
|
|
3888
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
3889
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
3890
|
+
[title]="title"
|
|
3891
|
+
[showTextInput]="true"
|
|
3892
|
+
[subtitle]="subtitle"
|
|
3893
|
+
(closePopup)="togglePopup(false)"
|
|
3894
|
+
(textInputChange)="onFilterChange($event)"
|
|
3895
|
+
(navigate)="handleNavigate($event)"
|
|
3896
|
+
[placeholder]="placeholder"
|
|
3897
|
+
>
|
|
3898
|
+
</responsive-renderer>
|
|
3899
|
+
|
|
3900
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
3434
3901
|
<!--header template-->
|
|
3435
3902
|
<ng-template *ngIf="headerTemplate"
|
|
3436
3903
|
[templateContext]="{
|
|
@@ -3474,11 +3941,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3474
3941
|
}">
|
|
3475
3942
|
</ng-template>
|
|
3476
3943
|
</ng-template>
|
|
3477
|
-
|
|
3478
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
3479
|
-
</ng-template>
|
|
3480
|
-
<ng-container #container></ng-container>
|
|
3481
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { 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: i10.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: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
3944
|
+
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
3482
3945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
3483
3946
|
type: Component,
|
|
3484
3947
|
args: [{
|
|
@@ -3519,7 +3982,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3519
3982
|
<kendo-searchbar #searchbar
|
|
3520
3983
|
[role]="'combobox'"
|
|
3521
3984
|
[ariaExpanded]="isOpen"
|
|
3522
|
-
[ariaControls]="ariaControls"
|
|
3523
3985
|
[isSuggestable]="suggest"
|
|
3524
3986
|
[isFilterable]="filterable"
|
|
3525
3987
|
[isLoading]="isLoading"
|
|
@@ -3529,13 +3991,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3529
3991
|
[userInput]="text"
|
|
3530
3992
|
[suggestedText]="suggestion"
|
|
3531
3993
|
[disabled]="disabled"
|
|
3532
|
-
[readonly]="readonly"
|
|
3994
|
+
[readonly]="readonly || this.isAdaptive"
|
|
3533
3995
|
[tabIndex]="tabIndex"
|
|
3534
3996
|
[placeholder]="placeholder"
|
|
3535
3997
|
(onNavigate)="handleNavigate($event)"
|
|
3536
3998
|
(valueChange)="searchBarChange($event)"
|
|
3537
3999
|
(onBlur)="handleBlur()"
|
|
3538
4000
|
(onFocus)="handleFocus()"
|
|
4001
|
+
(click)="handleClick()"
|
|
3539
4002
|
></kendo-searchbar>
|
|
3540
4003
|
<span
|
|
3541
4004
|
*ngIf="!loading && !readonly && (clearButton && text?.length)"
|
|
@@ -3555,6 +4018,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3555
4018
|
</span>
|
|
3556
4019
|
<span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
|
|
3557
4020
|
<ng-template #popupTemplate>
|
|
4021
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
4022
|
+
</ng-template>
|
|
4023
|
+
<ng-container #container></ng-container>
|
|
4024
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
4025
|
+
|
|
4026
|
+
<!--adaptive rendering-->
|
|
4027
|
+
<responsive-renderer
|
|
4028
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
4029
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
4030
|
+
[title]="title"
|
|
4031
|
+
[showTextInput]="true"
|
|
4032
|
+
[subtitle]="subtitle"
|
|
4033
|
+
(closePopup)="togglePopup(false)"
|
|
4034
|
+
(textInputChange)="onFilterChange($event)"
|
|
4035
|
+
(navigate)="handleNavigate($event)"
|
|
4036
|
+
[placeholder]="placeholder"
|
|
4037
|
+
>
|
|
4038
|
+
</responsive-renderer>
|
|
4039
|
+
|
|
4040
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
3558
4041
|
<!--header template-->
|
|
3559
4042
|
<ng-template *ngIf="headerTemplate"
|
|
3560
4043
|
[templateContext]="{
|
|
@@ -3598,18 +4081,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3598
4081
|
}">
|
|
3599
4082
|
</ng-template>
|
|
3600
4083
|
</ng-template>
|
|
3601
|
-
<ng-template [ngIf]="isOpen">
|
|
3602
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
3603
|
-
</ng-template>
|
|
3604
|
-
<ng-container #container></ng-container>
|
|
3605
4084
|
`
|
|
3606
4085
|
}]
|
|
3607
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: DataService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
4086
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: DataService }, { type: i2$1.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
3608
4087
|
type: Optional
|
|
3609
4088
|
}, {
|
|
3610
4089
|
type: Inject,
|
|
3611
4090
|
args: [TOUCH_ENABLED]
|
|
3612
|
-
}] }]; }, propDecorators: {
|
|
4091
|
+
}] }]; }, propDecorators: { responsiveRendererComponent: [{
|
|
4092
|
+
type: ViewChild,
|
|
4093
|
+
args: [ResponsiveRendererComponent]
|
|
4094
|
+
}], highlightFirst: [{
|
|
3613
4095
|
type: Input
|
|
3614
4096
|
}], focusableId: [{
|
|
3615
4097
|
type: Input
|
|
@@ -3621,6 +4103,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3621
4103
|
type: Input
|
|
3622
4104
|
}], placeholder: [{
|
|
3623
4105
|
type: Input
|
|
4106
|
+
}], adaptiveMode: [{
|
|
4107
|
+
type: Input
|
|
4108
|
+
}], title: [{
|
|
4109
|
+
type: Input
|
|
4110
|
+
}], subtitle: [{
|
|
4111
|
+
type: Input
|
|
3624
4112
|
}], popupSettings: [{
|
|
3625
4113
|
type: Input
|
|
3626
4114
|
}], listHeight: [{
|
|
@@ -3816,6 +4304,10 @@ class ComboBoxComponent {
|
|
|
3816
4304
|
this.cdr = cdr;
|
|
3817
4305
|
this.renderer = renderer;
|
|
3818
4306
|
this.touchEnabled = touchEnabled;
|
|
4307
|
+
/**
|
|
4308
|
+
* @hidden
|
|
4309
|
+
*/
|
|
4310
|
+
this.animationDuration = animationDuration;
|
|
3819
4311
|
/**
|
|
3820
4312
|
* @hidden
|
|
3821
4313
|
*/
|
|
@@ -3885,12 +4377,15 @@ class ComboBoxComponent {
|
|
|
3885
4377
|
*/
|
|
3886
4378
|
this.placeholder = "";
|
|
3887
4379
|
/**
|
|
3888
|
-
*
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
4380
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
4381
|
+
*/
|
|
4382
|
+
this.adaptiveMode = 'none';
|
|
4383
|
+
/**
|
|
4384
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
4385
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
3892
4386
|
*/
|
|
3893
|
-
this.
|
|
4387
|
+
this.title = '';
|
|
4388
|
+
this._listHeight = 200;
|
|
3894
4389
|
/**
|
|
3895
4390
|
* Enables the auto-completion of the text based on the first data item.
|
|
3896
4391
|
*/
|
|
@@ -3965,6 +4460,10 @@ class ComboBoxComponent {
|
|
|
3965
4460
|
this.onBlur = new EventEmitter();
|
|
3966
4461
|
this.widgetClasses = true;
|
|
3967
4462
|
this._isFocused = false;
|
|
4463
|
+
/**
|
|
4464
|
+
* @hidden
|
|
4465
|
+
*/
|
|
4466
|
+
this.windowSize = 'large';
|
|
3968
4467
|
this.listBoxId = `k-${guid()}`;
|
|
3969
4468
|
this.optionPrefix = `k-${guid()}`;
|
|
3970
4469
|
this.onChangeCallback = (_) => { };
|
|
@@ -3994,6 +4493,18 @@ class ComboBoxComponent {
|
|
|
3994
4493
|
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
3995
4494
|
this.data = [];
|
|
3996
4495
|
}
|
|
4496
|
+
/**
|
|
4497
|
+
* @hidden
|
|
4498
|
+
*/
|
|
4499
|
+
get actionSheet() {
|
|
4500
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
4501
|
+
}
|
|
4502
|
+
/**
|
|
4503
|
+
* @hidden
|
|
4504
|
+
*/
|
|
4505
|
+
get actionSheetSearchBar() {
|
|
4506
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
4507
|
+
}
|
|
3997
4508
|
set text(text) {
|
|
3998
4509
|
this._text = isPresent(text) ? text.toString() : "";
|
|
3999
4510
|
}
|
|
@@ -4095,6 +4606,22 @@ class ComboBoxComponent {
|
|
|
4095
4606
|
}
|
|
4096
4607
|
return this._valuePrimitive;
|
|
4097
4608
|
}
|
|
4609
|
+
/**
|
|
4610
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
4611
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
4612
|
+
*/
|
|
4613
|
+
set subtitle(_subtitle) {
|
|
4614
|
+
this._subtitle = _subtitle;
|
|
4615
|
+
}
|
|
4616
|
+
get subtitle() {
|
|
4617
|
+
return this._subtitle || this.placeholder;
|
|
4618
|
+
}
|
|
4619
|
+
/**
|
|
4620
|
+
* @hidden
|
|
4621
|
+
*/
|
|
4622
|
+
get isAdaptiveModeEnabled() {
|
|
4623
|
+
return this.adaptiveMode === 'auto';
|
|
4624
|
+
}
|
|
4098
4625
|
/**
|
|
4099
4626
|
* Configures the popup of the ComboBox.
|
|
4100
4627
|
*
|
|
@@ -4111,6 +4638,24 @@ class ComboBoxComponent {
|
|
|
4111
4638
|
get popupSettings() {
|
|
4112
4639
|
return this._popupSettings;
|
|
4113
4640
|
}
|
|
4641
|
+
/**
|
|
4642
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
4643
|
+
*
|
|
4644
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
4645
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
4646
|
+
*
|
|
4647
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
4648
|
+
*/
|
|
4649
|
+
set listHeight(_listHeight) {
|
|
4650
|
+
this._listHeight = _listHeight;
|
|
4651
|
+
}
|
|
4652
|
+
;
|
|
4653
|
+
get listHeight() {
|
|
4654
|
+
if (this.isAdaptive) {
|
|
4655
|
+
return;
|
|
4656
|
+
}
|
|
4657
|
+
return this._listHeight;
|
|
4658
|
+
}
|
|
4114
4659
|
/**
|
|
4115
4660
|
* Defines a Boolean function that is executed for each data item in the component
|
|
4116
4661
|
* ([see examples]({% slug disableditems_combobox %})). Determines whether the item will be disabled.
|
|
@@ -4227,6 +4772,19 @@ class ComboBoxComponent {
|
|
|
4227
4772
|
return 'visible';
|
|
4228
4773
|
}
|
|
4229
4774
|
}
|
|
4775
|
+
/**
|
|
4776
|
+
* @hidden
|
|
4777
|
+
*/
|
|
4778
|
+
get isActionSheetExpanded() {
|
|
4779
|
+
return this.actionSheet?.expanded;
|
|
4780
|
+
}
|
|
4781
|
+
;
|
|
4782
|
+
/**
|
|
4783
|
+
* @hidden
|
|
4784
|
+
*/
|
|
4785
|
+
get isAdaptive() {
|
|
4786
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
4787
|
+
}
|
|
4230
4788
|
get popupWidth() {
|
|
4231
4789
|
let wrapperOffsetWidth = 0;
|
|
4232
4790
|
if (isDocumentAvailable()) {
|
|
@@ -4249,6 +4807,11 @@ class ComboBoxComponent {
|
|
|
4249
4807
|
this.attachSelectClickHandler();
|
|
4250
4808
|
this.setComponentClasses();
|
|
4251
4809
|
}
|
|
4810
|
+
ngAfterViewInit() {
|
|
4811
|
+
this.windowSize = windowSize();
|
|
4812
|
+
this.cdr.detectChanges();
|
|
4813
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
4814
|
+
}
|
|
4252
4815
|
createValueStream() {
|
|
4253
4816
|
const valueStream = this.valueSubject.pipe(filter((candidate) => {
|
|
4254
4817
|
const current = getter(this.value, this.valueField);
|
|
@@ -4449,7 +5012,7 @@ class ComboBoxComponent {
|
|
|
4449
5012
|
}
|
|
4450
5013
|
}
|
|
4451
5014
|
/**
|
|
4452
|
-
* Toggles the visibility of the popup. If you use the `toggle` method to open or close the popup,
|
|
5015
|
+
* Toggles the visibility of the popup or actionSheet. If you use the `toggle` method to open or close the popup or actionSheet,
|
|
4453
5016
|
* the `open` and `close` events will not be fired.
|
|
4454
5017
|
*
|
|
4455
5018
|
* @param open - The state of the popup.
|
|
@@ -4462,10 +5025,19 @@ class ComboBoxComponent {
|
|
|
4462
5025
|
});
|
|
4463
5026
|
}
|
|
4464
5027
|
/**
|
|
4465
|
-
* Returns the current open state
|
|
5028
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
4466
5029
|
*/
|
|
4467
5030
|
get isOpen() {
|
|
4468
|
-
return this._open;
|
|
5031
|
+
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
5032
|
+
}
|
|
5033
|
+
/**
|
|
5034
|
+
* @hidden
|
|
5035
|
+
*/
|
|
5036
|
+
handleClick() {
|
|
5037
|
+
this.windowSize = windowSize();
|
|
5038
|
+
if (this.isAdaptive) {
|
|
5039
|
+
this.togglePopup(true);
|
|
5040
|
+
}
|
|
4469
5041
|
}
|
|
4470
5042
|
/**
|
|
4471
5043
|
* Resets the value of the ComboBox.
|
|
@@ -4548,7 +5120,14 @@ class ComboBoxComponent {
|
|
|
4548
5120
|
* @hidden
|
|
4549
5121
|
*/
|
|
4550
5122
|
onResize() {
|
|
4551
|
-
if (this.
|
|
5123
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
5124
|
+
if (this.isOpen) {
|
|
5125
|
+
this.togglePopup(false);
|
|
5126
|
+
}
|
|
5127
|
+
this.windowSize = windowSize();
|
|
5128
|
+
this.cdr.detectChanges();
|
|
5129
|
+
}
|
|
5130
|
+
if (this.isOpen && !this.isActionSheetExpanded) {
|
|
4552
5131
|
const popupWrapper = this.popupRef.popupElement;
|
|
4553
5132
|
const { min, max } = this.popupWidth;
|
|
4554
5133
|
popupWrapper.style.minWidth = min;
|
|
@@ -4654,13 +5233,7 @@ class ComboBoxComponent {
|
|
|
4654
5233
|
return result;
|
|
4655
5234
|
}
|
|
4656
5235
|
search(text, startFrom = 0) {
|
|
4657
|
-
|
|
4658
|
-
if (text.length && this.dataService.itemsCount) {
|
|
4659
|
-
index = this.dataService.findIndex(this.findIndexPredicate(text), startFrom);
|
|
4660
|
-
}
|
|
4661
|
-
else {
|
|
4662
|
-
index = -1;
|
|
4663
|
-
}
|
|
5236
|
+
const index = this.findIndex(text, startFrom);
|
|
4664
5237
|
if (this.disabledItemsService.isIndexDisabled(index)) {
|
|
4665
5238
|
if (index + 1 < this.dataService.itemsCount) {
|
|
4666
5239
|
this.search(text, index + 1);
|
|
@@ -4676,6 +5249,18 @@ class ComboBoxComponent {
|
|
|
4676
5249
|
}
|
|
4677
5250
|
}
|
|
4678
5251
|
}
|
|
5252
|
+
/**
|
|
5253
|
+
* @hidden
|
|
5254
|
+
*/
|
|
5255
|
+
onAdaptiveTextBoxChange(text) {
|
|
5256
|
+
if (this.filterable && this.filterText !== text) {
|
|
5257
|
+
this.filterText = text;
|
|
5258
|
+
this.filterChange.emit(text);
|
|
5259
|
+
}
|
|
5260
|
+
else {
|
|
5261
|
+
this.search(text);
|
|
5262
|
+
}
|
|
5263
|
+
}
|
|
4679
5264
|
/**
|
|
4680
5265
|
* @hidden
|
|
4681
5266
|
*/
|
|
@@ -4733,6 +5318,10 @@ class ComboBoxComponent {
|
|
|
4733
5318
|
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {
|
|
4734
5319
|
event.preventDefault();
|
|
4735
5320
|
}
|
|
5321
|
+
if (action === NavigationAction.Tab && this.isActionSheetExpanded) {
|
|
5322
|
+
event.stopImmediatePropagation();
|
|
5323
|
+
this.togglePopup(false);
|
|
5324
|
+
}
|
|
4736
5325
|
}
|
|
4737
5326
|
handleEnter() {
|
|
4738
5327
|
const text = this.text;
|
|
@@ -4764,32 +5353,34 @@ class ComboBoxComponent {
|
|
|
4764
5353
|
* @hidden
|
|
4765
5354
|
*/
|
|
4766
5355
|
handleBlur() {
|
|
4767
|
-
this.
|
|
4768
|
-
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
5356
|
+
if (!this.isActionSheetExpanded) {
|
|
5357
|
+
this._filtering = false;
|
|
5358
|
+
this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers
|
|
5359
|
+
this.isFocused = false;
|
|
5360
|
+
const unresolvedSelection = getter(this.dataItem, this.valueField) !== getter(this.value, this.valueField);
|
|
5361
|
+
const currentText = this.searchbar.value;
|
|
5362
|
+
const textHasChanged = currentText !== (getter(this.dataItem, this.textField) || '');
|
|
5363
|
+
const valueHasChanged = unresolvedSelection || textHasChanged;
|
|
5364
|
+
const runInZone = valueHasChanged || hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper.nativeElement);
|
|
5365
|
+
if (runInZone) {
|
|
5366
|
+
this.zone.run(() => {
|
|
5367
|
+
if (valueHasChanged) {
|
|
5368
|
+
const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
|
|
5369
|
+
if (lowerCaseMatch || unresolvedSelection) {
|
|
5370
|
+
this.selectionService.change(this.selectionService.focused);
|
|
5371
|
+
}
|
|
5372
|
+
else {
|
|
5373
|
+
this.change(currentText, true);
|
|
5374
|
+
}
|
|
4784
5375
|
}
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
5376
|
+
this.onBlur.emit();
|
|
5377
|
+
this.onTouchedCallback();
|
|
5378
|
+
this.togglePopup(false);
|
|
5379
|
+
});
|
|
5380
|
+
}
|
|
5381
|
+
else {
|
|
4788
5382
|
this.togglePopup(false);
|
|
4789
|
-
}
|
|
4790
|
-
}
|
|
4791
|
-
else {
|
|
4792
|
-
this.togglePopup(false);
|
|
5383
|
+
}
|
|
4793
5384
|
}
|
|
4794
5385
|
}
|
|
4795
5386
|
/**
|
|
@@ -4852,6 +5443,9 @@ class ComboBoxComponent {
|
|
|
4852
5443
|
}
|
|
4853
5444
|
else {
|
|
4854
5445
|
this.valueSubject.next(candidate);
|
|
5446
|
+
if (this.isActionSheetExpanded) {
|
|
5447
|
+
this.togglePopup(false);
|
|
5448
|
+
}
|
|
4855
5449
|
}
|
|
4856
5450
|
}
|
|
4857
5451
|
emitValueChange() {
|
|
@@ -4925,6 +5519,11 @@ class ComboBoxComponent {
|
|
|
4925
5519
|
if (this.virtual) {
|
|
4926
5520
|
this.virtual.skip = 0;
|
|
4927
5521
|
}
|
|
5522
|
+
this.windowSize = windowSize();
|
|
5523
|
+
if (this.isAdaptive) {
|
|
5524
|
+
this.openActionSheet();
|
|
5525
|
+
return;
|
|
5526
|
+
}
|
|
4928
5527
|
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
4929
5528
|
const anchorPosition = { horizontal: horizontalAlign, vertical: "bottom" };
|
|
4930
5529
|
const popupPosition = { horizontal: horizontalAlign, vertical: "top" };
|
|
@@ -4956,7 +5555,9 @@ class ComboBoxComponent {
|
|
|
4956
5555
|
}
|
|
4957
5556
|
this.popupRef.popupOpen.subscribe(() => {
|
|
4958
5557
|
this.cdr.detectChanges();
|
|
5558
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
4959
5559
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
5560
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
4960
5561
|
this.opened.emit();
|
|
4961
5562
|
});
|
|
4962
5563
|
this.popupRef.popupClose.subscribe(() => {
|
|
@@ -4967,7 +5568,11 @@ class ComboBoxComponent {
|
|
|
4967
5568
|
_toggle(open) {
|
|
4968
5569
|
this._open = open;
|
|
4969
5570
|
this.destroyPopup();
|
|
5571
|
+
if (this.isActionSheetExpanded) {
|
|
5572
|
+
this.closeActionSheet();
|
|
5573
|
+
}
|
|
4970
5574
|
if (this._open) {
|
|
5575
|
+
this.windowSize = windowSize();
|
|
4971
5576
|
this.createPopup();
|
|
4972
5577
|
}
|
|
4973
5578
|
}
|
|
@@ -5023,9 +5628,40 @@ class ComboBoxComponent {
|
|
|
5023
5628
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
|
|
5024
5629
|
}
|
|
5025
5630
|
}
|
|
5631
|
+
findIndex(value, startFrom = 0) {
|
|
5632
|
+
let index;
|
|
5633
|
+
if (value && value.length && this.dataService.itemsCount) {
|
|
5634
|
+
index = this.dataService.findIndex(this.findIndexPredicate(value), startFrom);
|
|
5635
|
+
}
|
|
5636
|
+
else {
|
|
5637
|
+
index = -1;
|
|
5638
|
+
}
|
|
5639
|
+
;
|
|
5640
|
+
return index;
|
|
5641
|
+
}
|
|
5642
|
+
closeActionSheet() {
|
|
5643
|
+
this.actionSheet.toggle(false);
|
|
5644
|
+
this.actionSheetSearchBar.value = '';
|
|
5645
|
+
this.filterable && this.filterChange.emit('');
|
|
5646
|
+
this.searchbar.input.nativeElement.focus();
|
|
5647
|
+
this.closed.emit();
|
|
5648
|
+
}
|
|
5649
|
+
openActionSheet() {
|
|
5650
|
+
this.windowSize = windowSize();
|
|
5651
|
+
this.actionSheet.toggle(true);
|
|
5652
|
+
this.cdr.detectChanges();
|
|
5653
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
5654
|
+
this.title = setActionSheetTitle(this.searchbar.input, this.title);
|
|
5655
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
5656
|
+
this.cdr.detectChanges();
|
|
5657
|
+
this.opened.emit();
|
|
5658
|
+
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
5659
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
5660
|
+
this.actionSheetSearchBar.focus();
|
|
5661
|
+
}
|
|
5026
5662
|
}
|
|
5027
|
-
ComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
5028
|
-
ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ComboBoxComponent, selector: "kendo-combobox", inputs: { focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", popupSettings: "popupSettings", listHeight: "listHeight", iconClass: "iconClass", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
|
|
5663
|
+
ComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
5664
|
+
ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ComboBoxComponent, selector: "kendo-combobox", inputs: { focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", iconClass: "iconClass", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
|
|
5029
5665
|
COMBOBOX_VALUE_ACCESSOR,
|
|
5030
5666
|
DataService,
|
|
5031
5667
|
SelectionService,
|
|
@@ -5042,7 +5678,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5042
5678
|
{
|
|
5043
5679
|
provide: KendoInput, useExisting: forwardRef(() => ComboBoxComponent)
|
|
5044
5680
|
}
|
|
5045
|
-
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], exportAs: ["kendoComboBox"], usesOnChanges: true, ngImport: i0, template: `
|
|
5681
|
+
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], exportAs: ["kendoComboBox"], usesOnChanges: true, ngImport: i0, template: `
|
|
5046
5682
|
<ng-container kendoComboBoxLocalizedMessages
|
|
5047
5683
|
i18n-noDataText="kendo.combobox.noDataText|The text displayed in the popup when there are no items"
|
|
5048
5684
|
noDataText="NO DATA FOUND"
|
|
@@ -5069,13 +5705,14 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5069
5705
|
[userInput]="text"
|
|
5070
5706
|
[suggestedText]="getSuggestion()"
|
|
5071
5707
|
[disabled]="disabled"
|
|
5072
|
-
[readonly]="readonly"
|
|
5708
|
+
[readonly]="readonly || isAdaptive"
|
|
5073
5709
|
[tabIndex]="tabIndex"
|
|
5074
5710
|
[placeholder]="placeholder"
|
|
5075
5711
|
(onNavigate)="handleNavigate($event)"
|
|
5076
5712
|
(valueChange)="searchBarChange($event)"
|
|
5077
5713
|
(onBlur)="handleBlur()"
|
|
5078
5714
|
(onFocus)="handleFocus()"
|
|
5715
|
+
(click)="handleClick()"
|
|
5079
5716
|
></kendo-searchbar>
|
|
5080
5717
|
<span
|
|
5081
5718
|
*ngIf="clearButton && !loading && !disabled && !readonly && text?.length"
|
|
@@ -5115,6 +5752,25 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5115
5752
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
5116
5753
|
</button>
|
|
5117
5754
|
<ng-template #popupTemplate>
|
|
5755
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
5756
|
+
</ng-template>
|
|
5757
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
5758
|
+
<ng-container #container></ng-container>
|
|
5759
|
+
|
|
5760
|
+
<!--adaptive rendering-->
|
|
5761
|
+
<responsive-renderer
|
|
5762
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
5763
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
5764
|
+
[title]="title"
|
|
5765
|
+
[showTextInput]="true"
|
|
5766
|
+
[subtitle]="subtitle"
|
|
5767
|
+
(closePopup)="togglePopup(false)"
|
|
5768
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
5769
|
+
(navigate)="handleNavigate($event)"
|
|
5770
|
+
[placeholder]="placeholder"
|
|
5771
|
+
>
|
|
5772
|
+
</responsive-renderer>
|
|
5773
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
5118
5774
|
<!--header template-->
|
|
5119
5775
|
<ng-template *ngIf="headerTemplate"
|
|
5120
5776
|
[templateContext]="{
|
|
@@ -5158,11 +5814,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5158
5814
|
}">
|
|
5159
5815
|
</ng-template>
|
|
5160
5816
|
</ng-template>
|
|
5161
|
-
|
|
5162
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
5163
|
-
</ng-template>
|
|
5164
|
-
<ng-container #container></ng-container>
|
|
5165
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { 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: i10.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: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
5817
|
+
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
5166
5818
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
5167
5819
|
type: Component,
|
|
5168
5820
|
args: [{
|
|
@@ -5213,13 +5865,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
5213
5865
|
[userInput]="text"
|
|
5214
5866
|
[suggestedText]="getSuggestion()"
|
|
5215
5867
|
[disabled]="disabled"
|
|
5216
|
-
[readonly]="readonly"
|
|
5868
|
+
[readonly]="readonly || isAdaptive"
|
|
5217
5869
|
[tabIndex]="tabIndex"
|
|
5218
5870
|
[placeholder]="placeholder"
|
|
5219
5871
|
(onNavigate)="handleNavigate($event)"
|
|
5220
5872
|
(valueChange)="searchBarChange($event)"
|
|
5221
5873
|
(onBlur)="handleBlur()"
|
|
5222
5874
|
(onFocus)="handleFocus()"
|
|
5875
|
+
(click)="handleClick()"
|
|
5223
5876
|
></kendo-searchbar>
|
|
5224
5877
|
<span
|
|
5225
5878
|
*ngIf="clearButton && !loading && !disabled && !readonly && text?.length"
|
|
@@ -5259,6 +5912,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
5259
5912
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
5260
5913
|
</button>
|
|
5261
5914
|
<ng-template #popupTemplate>
|
|
5915
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
5916
|
+
</ng-template>
|
|
5917
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
5918
|
+
<ng-container #container></ng-container>
|
|
5919
|
+
|
|
5920
|
+
<!--adaptive rendering-->
|
|
5921
|
+
<responsive-renderer
|
|
5922
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
5923
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
5924
|
+
[title]="title"
|
|
5925
|
+
[showTextInput]="true"
|
|
5926
|
+
[subtitle]="subtitle"
|
|
5927
|
+
(closePopup)="togglePopup(false)"
|
|
5928
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
5929
|
+
(navigate)="handleNavigate($event)"
|
|
5930
|
+
[placeholder]="placeholder"
|
|
5931
|
+
>
|
|
5932
|
+
</responsive-renderer>
|
|
5933
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
5262
5934
|
<!--header template-->
|
|
5263
5935
|
<ng-template *ngIf="headerTemplate"
|
|
5264
5936
|
[templateContext]="{
|
|
@@ -5302,18 +5974,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
5302
5974
|
}">
|
|
5303
5975
|
</ng-template>
|
|
5304
5976
|
</ng-template>
|
|
5305
|
-
<ng-template [ngIf]="isOpen">
|
|
5306
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
5307
|
-
</ng-template>
|
|
5308
|
-
<ng-container #container></ng-container>
|
|
5309
5977
|
`
|
|
5310
5978
|
}]
|
|
5311
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
5979
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2$1.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
5312
5980
|
type: Optional
|
|
5313
5981
|
}, {
|
|
5314
5982
|
type: Inject,
|
|
5315
5983
|
args: [TOUCH_ENABLED]
|
|
5316
|
-
}] }]; }, propDecorators: {
|
|
5984
|
+
}] }]; }, propDecorators: { responsiveRendererComponent: [{
|
|
5985
|
+
type: ViewChild,
|
|
5986
|
+
args: [ResponsiveRendererComponent]
|
|
5987
|
+
}], focusableId: [{
|
|
5317
5988
|
type: Input
|
|
5318
5989
|
}], allowCustom: [{
|
|
5319
5990
|
type: Input
|
|
@@ -5331,6 +6002,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
5331
6002
|
type: Input
|
|
5332
6003
|
}], placeholder: [{
|
|
5333
6004
|
type: Input
|
|
6005
|
+
}], adaptiveMode: [{
|
|
6006
|
+
type: Input
|
|
6007
|
+
}], title: [{
|
|
6008
|
+
type: Input
|
|
6009
|
+
}], subtitle: [{
|
|
6010
|
+
type: Input
|
|
5334
6011
|
}], popupSettings: [{
|
|
5335
6012
|
type: Input
|
|
5336
6013
|
}], listHeight: [{
|
|
@@ -5548,6 +6225,14 @@ class DropDownListComponent {
|
|
|
5548
6225
|
this.cdr = cdr;
|
|
5549
6226
|
this.touchEnabled = touchEnabled;
|
|
5550
6227
|
this.injector = injector;
|
|
6228
|
+
/**
|
|
6229
|
+
* @hidden
|
|
6230
|
+
*/
|
|
6231
|
+
this.animationDuration = animationDuration;
|
|
6232
|
+
/**
|
|
6233
|
+
* @hidden
|
|
6234
|
+
*/
|
|
6235
|
+
this.xIcon = xIcon;
|
|
5551
6236
|
/**
|
|
5552
6237
|
* @hidden
|
|
5553
6238
|
*/
|
|
@@ -5558,12 +6243,24 @@ class DropDownListComponent {
|
|
|
5558
6243
|
this.caretAltDownIcon = caretAltDownIcon;
|
|
5559
6244
|
this.listBoxId = `k-${guid()}`;
|
|
5560
6245
|
/**
|
|
5561
|
-
*
|
|
5562
|
-
|
|
5563
|
-
|
|
5564
|
-
|
|
6246
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
6247
|
+
*/
|
|
6248
|
+
this.adaptiveMode = 'none';
|
|
6249
|
+
/**
|
|
6250
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
6251
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
5565
6252
|
*/
|
|
5566
|
-
this.
|
|
6253
|
+
this.title = '';
|
|
6254
|
+
/**
|
|
6255
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
6256
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
6257
|
+
*/
|
|
6258
|
+
this.subtitle = '';
|
|
6259
|
+
/**
|
|
6260
|
+
* @hidden
|
|
6261
|
+
*/
|
|
6262
|
+
this.windowSize = 'large';
|
|
6263
|
+
this._listHeight = 200;
|
|
5567
6264
|
/**
|
|
5568
6265
|
* Sets the read-only state of the component.
|
|
5569
6266
|
*/
|
|
@@ -5663,6 +6360,18 @@ class DropDownListComponent {
|
|
|
5663
6360
|
this.subscribeFocusEvents();
|
|
5664
6361
|
this.popupMouseDownHandler = this.onMouseDown.bind(this);
|
|
5665
6362
|
}
|
|
6363
|
+
/**
|
|
6364
|
+
* @hidden
|
|
6365
|
+
*/
|
|
6366
|
+
get actionSheet() {
|
|
6367
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
6368
|
+
}
|
|
6369
|
+
/**
|
|
6370
|
+
* @hidden
|
|
6371
|
+
*/
|
|
6372
|
+
get actionSheetSearchBar() {
|
|
6373
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
6374
|
+
}
|
|
5666
6375
|
get width() {
|
|
5667
6376
|
const wrapperWidth = isDocumentAvailable() ? this.wrapper.nativeElement.offsetWidth : 0;
|
|
5668
6377
|
const width = this.popupSettings.width || wrapperWidth;
|
|
@@ -5704,6 +6413,14 @@ class DropDownListComponent {
|
|
|
5704
6413
|
}
|
|
5705
6414
|
return appendTo === 'component' ? this.container : appendTo;
|
|
5706
6415
|
}
|
|
6416
|
+
/**
|
|
6417
|
+
* @hidden
|
|
6418
|
+
*/
|
|
6419
|
+
onFilterChange(text) {
|
|
6420
|
+
if (this.filterable) {
|
|
6421
|
+
this.filterChange.emit(text);
|
|
6422
|
+
}
|
|
6423
|
+
}
|
|
5707
6424
|
/**
|
|
5708
6425
|
* @hidden
|
|
5709
6426
|
*/
|
|
@@ -5751,6 +6468,25 @@ class DropDownListComponent {
|
|
|
5751
6468
|
get value() {
|
|
5752
6469
|
return this._value;
|
|
5753
6470
|
}
|
|
6471
|
+
/**
|
|
6472
|
+
* @hidden
|
|
6473
|
+
*/
|
|
6474
|
+
get isAdaptiveModeEnabled() {
|
|
6475
|
+
return this.adaptiveMode === 'auto';
|
|
6476
|
+
}
|
|
6477
|
+
/**
|
|
6478
|
+
* @hidden
|
|
6479
|
+
*/
|
|
6480
|
+
get isActionSheetExpanded() {
|
|
6481
|
+
return this.actionSheet?.expanded;
|
|
6482
|
+
}
|
|
6483
|
+
;
|
|
6484
|
+
/**
|
|
6485
|
+
* @hidden
|
|
6486
|
+
*/
|
|
6487
|
+
get isAdaptive() {
|
|
6488
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
6489
|
+
}
|
|
5754
6490
|
/**
|
|
5755
6491
|
* Configures the popup of the DropDownList.
|
|
5756
6492
|
*
|
|
@@ -5767,6 +6503,24 @@ class DropDownListComponent {
|
|
|
5767
6503
|
get popupSettings() {
|
|
5768
6504
|
return this._popupSettings;
|
|
5769
6505
|
}
|
|
6506
|
+
/**
|
|
6507
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
6508
|
+
*
|
|
6509
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
6510
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
6511
|
+
*
|
|
6512
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
6513
|
+
*/
|
|
6514
|
+
set listHeight(_listHeight) {
|
|
6515
|
+
this._listHeight = _listHeight;
|
|
6516
|
+
}
|
|
6517
|
+
;
|
|
6518
|
+
get listHeight() {
|
|
6519
|
+
if (this.isAdaptive) {
|
|
6520
|
+
return;
|
|
6521
|
+
}
|
|
6522
|
+
return this._listHeight;
|
|
6523
|
+
}
|
|
5770
6524
|
/**
|
|
5771
6525
|
* Defines a Boolean function that is executed for each data item in the component
|
|
5772
6526
|
* ([see examples]({% slug disableditems_ddl %})). Determines whether the item will be disabled.
|
|
@@ -5911,7 +6665,13 @@ class DropDownListComponent {
|
|
|
5911
6665
|
* @hidden
|
|
5912
6666
|
*/
|
|
5913
6667
|
onResize() {
|
|
5914
|
-
if (this.
|
|
6668
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
6669
|
+
if (this.isOpen) {
|
|
6670
|
+
this.togglePopup(false);
|
|
6671
|
+
}
|
|
6672
|
+
this.windowSize = windowSize();
|
|
6673
|
+
}
|
|
6674
|
+
if (this.isOpen && !this.isActionSheetExpanded) {
|
|
5915
6675
|
const popupWrapper = this.popupRef.popupElement;
|
|
5916
6676
|
const { min, max } = this.width;
|
|
5917
6677
|
popupWrapper.style.minWidth = min;
|
|
@@ -5954,7 +6714,10 @@ class DropDownListComponent {
|
|
|
5954
6714
|
/**
|
|
5955
6715
|
* @hidden
|
|
5956
6716
|
*/
|
|
5957
|
-
keydown(event) {
|
|
6717
|
+
keydown(event, input) {
|
|
6718
|
+
if (input) {
|
|
6719
|
+
event.stopPropagation();
|
|
6720
|
+
}
|
|
5958
6721
|
const firstIndex = isPresent(this.defaultItem) ? -1 : 0;
|
|
5959
6722
|
const focused = isNaN(this.selectionService.focused) ? this.firstFocusableIndex(firstIndex) : this.selectionService.focused;
|
|
5960
6723
|
let offset = 0;
|
|
@@ -5996,6 +6759,9 @@ class DropDownListComponent {
|
|
|
5996
6759
|
) {
|
|
5997
6760
|
eventData.preventDefault();
|
|
5998
6761
|
}
|
|
6762
|
+
if (action === NavigationAction.Tab && this.isActionSheetExpanded) {
|
|
6763
|
+
this.togglePopup(false);
|
|
6764
|
+
}
|
|
5999
6765
|
}
|
|
6000
6766
|
/**
|
|
6001
6767
|
* @hidden
|
|
@@ -6009,10 +6775,11 @@ class DropDownListComponent {
|
|
|
6009
6775
|
/**
|
|
6010
6776
|
* @hidden
|
|
6011
6777
|
*/
|
|
6012
|
-
click(
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
|
|
6778
|
+
click() {
|
|
6779
|
+
if (!this.isActionSheetExpanded) {
|
|
6780
|
+
this.focus();
|
|
6781
|
+
this.togglePopup(!this.isOpen);
|
|
6782
|
+
}
|
|
6016
6783
|
}
|
|
6017
6784
|
set isFocused(isFocused) {
|
|
6018
6785
|
this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
|
|
@@ -6031,6 +6798,10 @@ class DropDownListComponent {
|
|
|
6031
6798
|
this.assignAriaDescribedBy();
|
|
6032
6799
|
this.setComponentClasses();
|
|
6033
6800
|
}
|
|
6801
|
+
ngAfterViewInit() {
|
|
6802
|
+
this.windowSize = windowSize();
|
|
6803
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
6804
|
+
}
|
|
6034
6805
|
/**
|
|
6035
6806
|
* @hidden
|
|
6036
6807
|
* Used by the TextBoxContainer to determine if the component is empty.
|
|
@@ -6118,7 +6889,7 @@ class DropDownListComponent {
|
|
|
6118
6889
|
}
|
|
6119
6890
|
}
|
|
6120
6891
|
/**
|
|
6121
|
-
* Toggles the visibility of the popup
|
|
6892
|
+
* Toggles the visibility of the popup or actionSheet
|
|
6122
6893
|
* ([see example]({% slug openstate_ddl %}#toc-setting-the-initially-opened-component)).
|
|
6123
6894
|
* If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.
|
|
6124
6895
|
*
|
|
@@ -6135,6 +6906,9 @@ class DropDownListComponent {
|
|
|
6135
6906
|
_toggle(open) {
|
|
6136
6907
|
this._open = open;
|
|
6137
6908
|
this.destroyPopup();
|
|
6909
|
+
if (this.isActionSheetExpanded) {
|
|
6910
|
+
this.closeActionSheet();
|
|
6911
|
+
}
|
|
6138
6912
|
if (this._open) {
|
|
6139
6913
|
this.createPopup();
|
|
6140
6914
|
}
|
|
@@ -6167,10 +6941,10 @@ class DropDownListComponent {
|
|
|
6167
6941
|
}
|
|
6168
6942
|
}
|
|
6169
6943
|
/**
|
|
6170
|
-
* Returns the current open state
|
|
6944
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
6171
6945
|
*/
|
|
6172
6946
|
get isOpen() {
|
|
6173
|
-
return this._open;
|
|
6947
|
+
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
6174
6948
|
}
|
|
6175
6949
|
/**
|
|
6176
6950
|
* Resets the value of the DropDownList.
|
|
@@ -6266,6 +7040,11 @@ class DropDownListComponent {
|
|
|
6266
7040
|
if (this.virtual) {
|
|
6267
7041
|
this.virtual.skip = 0;
|
|
6268
7042
|
}
|
|
7043
|
+
this.windowSize = windowSize();
|
|
7044
|
+
if (this.isAdaptive) {
|
|
7045
|
+
this.openActionSheet();
|
|
7046
|
+
return;
|
|
7047
|
+
}
|
|
6269
7048
|
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
6270
7049
|
const anchorPosition = { horizontal: horizontalAlign, vertical: "bottom" };
|
|
6271
7050
|
const popupPosition = { horizontal: horizontalAlign, vertical: "top" };
|
|
@@ -6297,7 +7076,9 @@ class DropDownListComponent {
|
|
|
6297
7076
|
}
|
|
6298
7077
|
this.subs.add(this.popupRef.popupOpen.subscribe(() => {
|
|
6299
7078
|
this.cdr.detectChanges();
|
|
7079
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.wrapper, this.renderer);
|
|
6300
7080
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
7081
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
6301
7082
|
this.opened.emit();
|
|
6302
7083
|
}));
|
|
6303
7084
|
this.subs.add(this.popupRef.popupClose.subscribe(() => {
|
|
@@ -6506,26 +7287,28 @@ class DropDownListComponent {
|
|
|
6506
7287
|
}
|
|
6507
7288
|
}
|
|
6508
7289
|
componentBlur() {
|
|
6509
|
-
this.
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
|
|
6520
|
-
|
|
7290
|
+
if (!this.isActionSheetExpanded) {
|
|
7291
|
+
this.isFocused = false;
|
|
7292
|
+
const selectionPresent = isPresent(this.selectionService.selected[0]);
|
|
7293
|
+
const valueHasChanged = selectionPresent && getter(this.value, this.valueField) !== getter(this.dataService.itemAt(this.selectionService.selected[0]), this.valueField);
|
|
7294
|
+
if (valueHasChanged ||
|
|
7295
|
+
hasObservers(this.close) ||
|
|
7296
|
+
hasObservers(this.onBlur) ||
|
|
7297
|
+
hasObservers(this.filterChange) ||
|
|
7298
|
+
isUntouched(this.wrapper.nativeElement)) {
|
|
7299
|
+
this._zone.run(() => {
|
|
7300
|
+
if (valueHasChanged) {
|
|
7301
|
+
this.selectionService.change(this.selectionService.selected[0]);
|
|
7302
|
+
}
|
|
7303
|
+
this.togglePopup(false);
|
|
7304
|
+
this.clearFilter();
|
|
7305
|
+
this.onBlur.emit();
|
|
7306
|
+
this.onTouchedCallback();
|
|
7307
|
+
});
|
|
7308
|
+
}
|
|
7309
|
+
else {
|
|
6521
7310
|
this.togglePopup(false);
|
|
6522
|
-
|
|
6523
|
-
this.onBlur.emit();
|
|
6524
|
-
this.onTouchedCallback();
|
|
6525
|
-
});
|
|
6526
|
-
}
|
|
6527
|
-
else {
|
|
6528
|
-
this.togglePopup(false);
|
|
7311
|
+
}
|
|
6529
7312
|
}
|
|
6530
7313
|
}
|
|
6531
7314
|
/**
|
|
@@ -6670,6 +7453,15 @@ class DropDownListComponent {
|
|
|
6670
7453
|
handleFilter(event) {
|
|
6671
7454
|
this.filterChange.emit(event.target.value);
|
|
6672
7455
|
}
|
|
7456
|
+
/**
|
|
7457
|
+
* @hidden
|
|
7458
|
+
*/
|
|
7459
|
+
handleClick() {
|
|
7460
|
+
this.windowSize = windowSize();
|
|
7461
|
+
if (this.isAdaptive) {
|
|
7462
|
+
this.togglePopup(true);
|
|
7463
|
+
}
|
|
7464
|
+
}
|
|
6673
7465
|
/**
|
|
6674
7466
|
* @hidden
|
|
6675
7467
|
*/
|
|
@@ -6697,13 +7489,36 @@ class DropDownListComponent {
|
|
|
6697
7489
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', this.fillMode));
|
|
6698
7490
|
}
|
|
6699
7491
|
}
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
7492
|
+
closeActionSheet() {
|
|
7493
|
+
this.actionSheet.toggle(false);
|
|
7494
|
+
if (this.filterable) {
|
|
7495
|
+
this.actionSheetSearchBar.value = '';
|
|
7496
|
+
this.filterChange.emit('');
|
|
7497
|
+
}
|
|
7498
|
+
this.closed.emit();
|
|
7499
|
+
}
|
|
7500
|
+
openActionSheet() {
|
|
7501
|
+
this.windowSize = windowSize();
|
|
7502
|
+
this.actionSheet.toggle(true);
|
|
7503
|
+
this.cdr.detectChanges();
|
|
7504
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.wrapper, this.renderer);
|
|
7505
|
+
this.title = setActionSheetTitle(this.wrapper, this.title);
|
|
7506
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
7507
|
+
this.cdr.detectChanges();
|
|
7508
|
+
this.opened.emit();
|
|
7509
|
+
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
7510
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
7511
|
+
if (this.filterable) {
|
|
7512
|
+
this.actionSheetSearchBar.focus();
|
|
7513
|
+
}
|
|
7514
|
+
}
|
|
7515
|
+
}
|
|
7516
|
+
DropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.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 });
|
|
7517
|
+
DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: { iconClass: "iconClass", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", 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()" }, properties: { "attr.aria-controls": "this.ariaControls", "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-invalid": "this.hostAriaInvalid", "attr.aria-activedescendant": "this.hostAriaActivedescendant" } }, providers: [
|
|
7518
|
+
DROPDOWNLIST_VALUE_ACCESSOR,
|
|
7519
|
+
DataService,
|
|
7520
|
+
SelectionService,
|
|
7521
|
+
NavigationService,
|
|
6707
7522
|
DisabledItemsService,
|
|
6708
7523
|
LocalizationService,
|
|
6709
7524
|
{
|
|
@@ -6716,7 +7531,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6716
7531
|
{
|
|
6717
7532
|
provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)
|
|
6718
7533
|
}
|
|
6719
|
-
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoDropDownList"], usesOnChanges: true, ngImport: i0, template: `
|
|
7534
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoDropDownList"], usesOnChanges: true, ngImport: i0, template: `
|
|
6720
7535
|
<ng-container kendoDropDownListLocalizedMessages
|
|
6721
7536
|
i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
|
|
6722
7537
|
noDataText="NO DATA FOUND"
|
|
@@ -6763,8 +7578,26 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6763
7578
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
6764
7579
|
</button>
|
|
6765
7580
|
<ng-template #popupTemplate>
|
|
7581
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
7582
|
+
</ng-template>
|
|
7583
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
7584
|
+
<ng-container #container></ng-container>
|
|
7585
|
+
|
|
7586
|
+
<!--adaptive rendering-->
|
|
7587
|
+
<responsive-renderer
|
|
7588
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
7589
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
7590
|
+
[title]="title"
|
|
7591
|
+
[showTextInput]="filterable"
|
|
7592
|
+
[subtitle]="subtitle"
|
|
7593
|
+
(closePopup)="togglePopup(false)"
|
|
7594
|
+
(textInputChange)="onFilterChange($event)"
|
|
7595
|
+
>
|
|
7596
|
+
</responsive-renderer>
|
|
7597
|
+
|
|
7598
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
6766
7599
|
<!--filterable-->
|
|
6767
|
-
<ng-template [ngIf]="filterable">
|
|
7600
|
+
<ng-template [ngIf]="filterable && !isActionSheetExpanded">
|
|
6768
7601
|
<div class="k-list-filter" (click)="$event.stopImmediatePropagation()">
|
|
6769
7602
|
<span
|
|
6770
7603
|
class="k-searchbox k-input"
|
|
@@ -6776,6 +7609,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6776
7609
|
[svgIcon]="searchIcon">
|
|
6777
7610
|
</kendo-icon-wrapper>
|
|
6778
7611
|
<input
|
|
7612
|
+
#searchInput
|
|
6779
7613
|
role="searchbox"
|
|
6780
7614
|
aria-autocomplete="list"
|
|
6781
7615
|
aria-haspopup="listbox"
|
|
@@ -6787,10 +7621,11 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6787
7621
|
[dir]="direction"
|
|
6788
7622
|
[(ngModel)]="filterText"
|
|
6789
7623
|
class="k-input-inner"
|
|
6790
|
-
(keydown)="keydown($event)"
|
|
7624
|
+
(keydown)="keydown($event, searchInput)"
|
|
6791
7625
|
(input)="handleFilter($event)"
|
|
6792
7626
|
(focus)="onFilterFocus()"
|
|
6793
|
-
(blur)="blurFilterInput()"
|
|
7627
|
+
(blur)="blurFilterInput()"
|
|
7628
|
+
(click)="handleClick()" />
|
|
6794
7629
|
</span>
|
|
6795
7630
|
</div>
|
|
6796
7631
|
</ng-template>
|
|
@@ -6826,7 +7661,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6826
7661
|
templateRef: headerTemplate.templateRef
|
|
6827
7662
|
}">
|
|
6828
7663
|
</ng-template>
|
|
6829
|
-
<!--list-->
|
|
7664
|
+
<!--list-->
|
|
6830
7665
|
<kendo-list
|
|
6831
7666
|
#optionsList
|
|
6832
7667
|
[id]="listBoxId"
|
|
@@ -6863,11 +7698,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6863
7698
|
}">
|
|
6864
7699
|
</ng-template>
|
|
6865
7700
|
</ng-template>
|
|
6866
|
-
|
|
6867
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
6868
|
-
</ng-template>
|
|
6869
|
-
<ng-container #container></ng-container>
|
|
6870
|
-
`, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { 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: i10.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: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.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: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.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"] }] });
|
|
7701
|
+
`, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.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: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }] });
|
|
6871
7702
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownListComponent, decorators: [{
|
|
6872
7703
|
type: Component,
|
|
6873
7704
|
args: [{
|
|
@@ -6938,8 +7769,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6938
7769
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
6939
7770
|
</button>
|
|
6940
7771
|
<ng-template #popupTemplate>
|
|
7772
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
7773
|
+
</ng-template>
|
|
7774
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
7775
|
+
<ng-container #container></ng-container>
|
|
7776
|
+
|
|
7777
|
+
<!--adaptive rendering-->
|
|
7778
|
+
<responsive-renderer
|
|
7779
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
7780
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
7781
|
+
[title]="title"
|
|
7782
|
+
[showTextInput]="filterable"
|
|
7783
|
+
[subtitle]="subtitle"
|
|
7784
|
+
(closePopup)="togglePopup(false)"
|
|
7785
|
+
(textInputChange)="onFilterChange($event)"
|
|
7786
|
+
>
|
|
7787
|
+
</responsive-renderer>
|
|
7788
|
+
|
|
7789
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
6941
7790
|
<!--filterable-->
|
|
6942
|
-
<ng-template [ngIf]="filterable">
|
|
7791
|
+
<ng-template [ngIf]="filterable && !isActionSheetExpanded">
|
|
6943
7792
|
<div class="k-list-filter" (click)="$event.stopImmediatePropagation()">
|
|
6944
7793
|
<span
|
|
6945
7794
|
class="k-searchbox k-input"
|
|
@@ -6951,6 +7800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6951
7800
|
[svgIcon]="searchIcon">
|
|
6952
7801
|
</kendo-icon-wrapper>
|
|
6953
7802
|
<input
|
|
7803
|
+
#searchInput
|
|
6954
7804
|
role="searchbox"
|
|
6955
7805
|
aria-autocomplete="list"
|
|
6956
7806
|
aria-haspopup="listbox"
|
|
@@ -6962,10 +7812,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6962
7812
|
[dir]="direction"
|
|
6963
7813
|
[(ngModel)]="filterText"
|
|
6964
7814
|
class="k-input-inner"
|
|
6965
|
-
(keydown)="keydown($event)"
|
|
7815
|
+
(keydown)="keydown($event, searchInput)"
|
|
6966
7816
|
(input)="handleFilter($event)"
|
|
6967
7817
|
(focus)="onFilterFocus()"
|
|
6968
|
-
(blur)="blurFilterInput()"
|
|
7818
|
+
(blur)="blurFilterInput()"
|
|
7819
|
+
(click)="handleClick()" />
|
|
6969
7820
|
</span>
|
|
6970
7821
|
</div>
|
|
6971
7822
|
</ng-template>
|
|
@@ -7001,7 +7852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7001
7852
|
templateRef: headerTemplate.templateRef
|
|
7002
7853
|
}">
|
|
7003
7854
|
</ng-template>
|
|
7004
|
-
<!--list-->
|
|
7855
|
+
<!--list-->
|
|
7005
7856
|
<kendo-list
|
|
7006
7857
|
#optionsList
|
|
7007
7858
|
[id]="listBoxId"
|
|
@@ -7038,18 +7889,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7038
7889
|
}">
|
|
7039
7890
|
</ng-template>
|
|
7040
7891
|
</ng-template>
|
|
7041
|
-
<ng-template [ngIf]="isOpen">
|
|
7042
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
7043
|
-
</ng-template>
|
|
7044
|
-
<ng-container #container></ng-container>
|
|
7045
7892
|
`
|
|
7046
7893
|
}]
|
|
7047
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
7894
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2$1.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
7048
7895
|
type: Optional
|
|
7049
7896
|
}, {
|
|
7050
7897
|
type: Inject,
|
|
7051
7898
|
args: [TOUCH_ENABLED]
|
|
7052
|
-
}] }, { type: i0.Injector }]; }, propDecorators: {
|
|
7899
|
+
}] }, { type: i0.Injector }]; }, propDecorators: { responsiveRendererComponent: [{
|
|
7900
|
+
type: ViewChild,
|
|
7901
|
+
args: [ResponsiveRendererComponent]
|
|
7902
|
+
}], ariaControls: [{
|
|
7053
7903
|
type: HostBinding,
|
|
7054
7904
|
args: ['attr.aria-controls']
|
|
7055
7905
|
}], iconClass: [{
|
|
@@ -7064,6 +7914,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7064
7914
|
type: Input
|
|
7065
7915
|
}], valueField: [{
|
|
7066
7916
|
type: Input
|
|
7917
|
+
}], adaptiveMode: [{
|
|
7918
|
+
type: Input
|
|
7919
|
+
}], title: [{
|
|
7920
|
+
type: Input
|
|
7921
|
+
}], subtitle: [{
|
|
7922
|
+
type: Input
|
|
7067
7923
|
}], popupSettings: [{
|
|
7068
7924
|
type: Input
|
|
7069
7925
|
}], listHeight: [{
|
|
@@ -7206,7 +8062,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7206
8062
|
args: ['keypress', ['$event']]
|
|
7207
8063
|
}], click: [{
|
|
7208
8064
|
type: HostListener,
|
|
7209
|
-
args: ['click'
|
|
8065
|
+
args: ['click']
|
|
7210
8066
|
}] } });
|
|
7211
8067
|
|
|
7212
8068
|
/**
|
|
@@ -7497,7 +8353,7 @@ TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
7497
8353
|
</span>
|
|
7498
8354
|
</div>
|
|
7499
8355
|
<ng-content></ng-content>
|
|
7500
|
-
`, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type:
|
|
8356
|
+
`, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
7501
8357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TagListComponent, decorators: [{
|
|
7502
8358
|
type: Component,
|
|
7503
8359
|
args: [{
|
|
@@ -7645,6 +8501,10 @@ class MultiSelectComponent {
|
|
|
7645
8501
|
this.renderer = renderer;
|
|
7646
8502
|
this._zone = _zone;
|
|
7647
8503
|
this.touchEnabled = touchEnabled;
|
|
8504
|
+
/**
|
|
8505
|
+
* @hidden
|
|
8506
|
+
*/
|
|
8507
|
+
this.animationDuration = animationDuration;
|
|
7648
8508
|
/**
|
|
7649
8509
|
* @hidden
|
|
7650
8510
|
*/
|
|
@@ -7672,6 +8532,15 @@ class MultiSelectComponent {
|
|
|
7672
8532
|
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
7673
8533
|
*/
|
|
7674
8534
|
this.tabindex = 0;
|
|
8535
|
+
/**
|
|
8536
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
8537
|
+
*/
|
|
8538
|
+
this.adaptiveMode = 'none';
|
|
8539
|
+
/**
|
|
8540
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
8541
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
8542
|
+
*/
|
|
8543
|
+
this.title = '';
|
|
7675
8544
|
/**
|
|
7676
8545
|
* Sets the disabled state of the component.
|
|
7677
8546
|
*/
|
|
@@ -7684,13 +8553,7 @@ class MultiSelectComponent {
|
|
|
7684
8553
|
* Enables the [filtering]({% slug filtering_multiselect %}) functionality of the MultiSelect.
|
|
7685
8554
|
*/
|
|
7686
8555
|
this.filterable = false;
|
|
7687
|
-
|
|
7688
|
-
* Sets the height of the suggestions list. By default, `listHeight` is 200px.
|
|
7689
|
-
*
|
|
7690
|
-
* > The `listHeight` property affects only the list of suggestions and not the whole popup container.
|
|
7691
|
-
* > To set the height of the popup container, use `popupSettings.height`.
|
|
7692
|
-
*/
|
|
7693
|
-
this.listHeight = 200;
|
|
8556
|
+
this._listHeight = 200;
|
|
7694
8557
|
/**
|
|
7695
8558
|
* If set to `true`, renders a button on hovering over the component.
|
|
7696
8559
|
* Clicking this button resets the value of the component to an empty array and triggers the `change` event.
|
|
@@ -7813,6 +8676,10 @@ class MultiSelectComponent {
|
|
|
7813
8676
|
*/
|
|
7814
8677
|
this.removeTag = new EventEmitter();
|
|
7815
8678
|
this.hostClasses = true;
|
|
8679
|
+
/**
|
|
8680
|
+
* @hidden
|
|
8681
|
+
*/
|
|
8682
|
+
this.windowSize = 'large';
|
|
7816
8683
|
this.initialized = false;
|
|
7817
8684
|
this._size = 'medium';
|
|
7818
8685
|
this._rounded = 'medium';
|
|
@@ -7827,7 +8694,7 @@ class MultiSelectComponent {
|
|
|
7827
8694
|
this._isFocused = false;
|
|
7828
8695
|
this.selectedDataItems = [];
|
|
7829
8696
|
this.customValueSubject = new Subject();
|
|
7830
|
-
this.
|
|
8697
|
+
this.subs = new Subscription();
|
|
7831
8698
|
validatePackage(packageMetadata);
|
|
7832
8699
|
this.popupMouseDownHandler = this.onMouseDown.bind(this);
|
|
7833
8700
|
this.data = [];
|
|
@@ -7835,6 +8702,18 @@ class MultiSelectComponent {
|
|
|
7835
8702
|
this.subscribeEvents();
|
|
7836
8703
|
this.subscribeTouchEvents();
|
|
7837
8704
|
}
|
|
8705
|
+
/**
|
|
8706
|
+
* @hidden
|
|
8707
|
+
*/
|
|
8708
|
+
get actionSheet() {
|
|
8709
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
8710
|
+
}
|
|
8711
|
+
/**
|
|
8712
|
+
* @hidden
|
|
8713
|
+
*/
|
|
8714
|
+
get actionSheetSearchBar() {
|
|
8715
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
8716
|
+
}
|
|
7838
8717
|
/**
|
|
7839
8718
|
* @hidden
|
|
7840
8719
|
*/
|
|
@@ -7877,6 +8756,16 @@ class MultiSelectComponent {
|
|
|
7877
8756
|
}
|
|
7878
8757
|
}
|
|
7879
8758
|
}
|
|
8759
|
+
/**
|
|
8760
|
+
* @hidden
|
|
8761
|
+
*/
|
|
8762
|
+
onAdaptiveTextBoxChange(text) {
|
|
8763
|
+
if (this.filterable) {
|
|
8764
|
+
this.filterChange.emit(text);
|
|
8765
|
+
return;
|
|
8766
|
+
}
|
|
8767
|
+
this.searchTextAndFocus(text);
|
|
8768
|
+
}
|
|
7880
8769
|
/**
|
|
7881
8770
|
* Blurs the MultiSelect.
|
|
7882
8771
|
*/
|
|
@@ -7889,28 +8778,30 @@ class MultiSelectComponent {
|
|
|
7889
8778
|
* @hidden
|
|
7890
8779
|
*/
|
|
7891
8780
|
onSearchBarBlur() {
|
|
7892
|
-
if (!this.
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
hasObservers(this.
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
this.
|
|
7902
|
-
|
|
8781
|
+
if (!this.isActionSheetExpanded) {
|
|
8782
|
+
if (!this.isFocused) {
|
|
8783
|
+
return;
|
|
8784
|
+
}
|
|
8785
|
+
this.isFocused = false;
|
|
8786
|
+
if (hasObservers(this.onBlur) ||
|
|
8787
|
+
hasObservers(this.filterChange) ||
|
|
8788
|
+
hasObservers(this.close) ||
|
|
8789
|
+
isUntouched(this.wrapper.nativeElement)) {
|
|
8790
|
+
this._zone.run(() => {
|
|
8791
|
+
this.closePopup();
|
|
8792
|
+
if (!(this.isOpen && this.allowCustom)) {
|
|
8793
|
+
this.clearFilter();
|
|
8794
|
+
}
|
|
8795
|
+
this.onBlur.emit();
|
|
8796
|
+
this.onTouchedCallback();
|
|
8797
|
+
});
|
|
8798
|
+
}
|
|
8799
|
+
else {
|
|
8800
|
+
if (!this.allowCustom) {
|
|
7903
8801
|
this.clearFilter();
|
|
7904
8802
|
}
|
|
7905
|
-
this.
|
|
7906
|
-
this.onTouchedCallback();
|
|
7907
|
-
});
|
|
7908
|
-
}
|
|
7909
|
-
else {
|
|
7910
|
-
if (!this.allowCustom) {
|
|
7911
|
-
this.clearFilter();
|
|
8803
|
+
this.closePopup();
|
|
7912
8804
|
}
|
|
7913
|
-
this.closePopup();
|
|
7914
8805
|
}
|
|
7915
8806
|
}
|
|
7916
8807
|
/**
|
|
@@ -7923,7 +8814,14 @@ class MultiSelectComponent {
|
|
|
7923
8814
|
* @hidden
|
|
7924
8815
|
*/
|
|
7925
8816
|
onResize() {
|
|
7926
|
-
if (this.
|
|
8817
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
8818
|
+
if (this.isOpen) {
|
|
8819
|
+
this.togglePopup(false);
|
|
8820
|
+
}
|
|
8821
|
+
this.windowSize = windowSize();
|
|
8822
|
+
this.cdr.detectChanges();
|
|
8823
|
+
}
|
|
8824
|
+
if (this.isOpen && !this.isActionSheetExpanded) {
|
|
7927
8825
|
const popupWrapper = this.popupRef.popupElement;
|
|
7928
8826
|
const { min, max } = this.width;
|
|
7929
8827
|
popupWrapper.style.minWidth = min;
|
|
@@ -8064,6 +8962,22 @@ class MultiSelectComponent {
|
|
|
8064
8962
|
get placeholder() {
|
|
8065
8963
|
return this.selectedDataItems.length ? '' : this._placeholder;
|
|
8066
8964
|
}
|
|
8965
|
+
/**
|
|
8966
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
8967
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
8968
|
+
*/
|
|
8969
|
+
set subtitle(_subtitle) {
|
|
8970
|
+
this._subtitle = _subtitle;
|
|
8971
|
+
}
|
|
8972
|
+
get subtitle() {
|
|
8973
|
+
return this._subtitle || this.placeholder;
|
|
8974
|
+
}
|
|
8975
|
+
/**
|
|
8976
|
+
* @hidden
|
|
8977
|
+
*/
|
|
8978
|
+
get isAdaptiveModeEnabled() {
|
|
8979
|
+
return this.adaptiveMode === 'auto';
|
|
8980
|
+
}
|
|
8067
8981
|
/**
|
|
8068
8982
|
* Defines a Boolean function that is executed for each data item in the component
|
|
8069
8983
|
* ([see examples]({% slug disableditems_multiselect %})). Determines whether the item will be disabled.
|
|
@@ -8108,6 +9022,24 @@ class MultiSelectComponent {
|
|
|
8108
9022
|
get popupSettings() {
|
|
8109
9023
|
return this._popupSettings;
|
|
8110
9024
|
}
|
|
9025
|
+
/**
|
|
9026
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
9027
|
+
*
|
|
9028
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
9029
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
9030
|
+
*
|
|
9031
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
9032
|
+
*/
|
|
9033
|
+
set listHeight(_listHeight) {
|
|
9034
|
+
this._listHeight = _listHeight;
|
|
9035
|
+
}
|
|
9036
|
+
;
|
|
9037
|
+
get listHeight() {
|
|
9038
|
+
if (this.isAdaptive) {
|
|
9039
|
+
return;
|
|
9040
|
+
}
|
|
9041
|
+
return this._listHeight;
|
|
9042
|
+
}
|
|
8111
9043
|
/**
|
|
8112
9044
|
* Specifies the type of the selected value.
|
|
8113
9045
|
* If set to `true`, the selected value has to be of the primitive type
|
|
@@ -8131,6 +9063,19 @@ class MultiSelectComponent {
|
|
|
8131
9063
|
get isLoading() {
|
|
8132
9064
|
return this.loading;
|
|
8133
9065
|
}
|
|
9066
|
+
/**
|
|
9067
|
+
* @hidden
|
|
9068
|
+
*/
|
|
9069
|
+
get isActionSheetExpanded() {
|
|
9070
|
+
return this.actionSheet?.expanded;
|
|
9071
|
+
}
|
|
9072
|
+
;
|
|
9073
|
+
/**
|
|
9074
|
+
* @hidden
|
|
9075
|
+
*/
|
|
9076
|
+
get isAdaptive() {
|
|
9077
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
9078
|
+
}
|
|
8134
9079
|
get listContainerClasses() {
|
|
8135
9080
|
const containerClasses = ['k-list-container', 'k-reset'];
|
|
8136
9081
|
if (this.popupSettings.popupClass) {
|
|
@@ -8181,6 +9126,21 @@ class MultiSelectComponent {
|
|
|
8181
9126
|
return 'visible';
|
|
8182
9127
|
}
|
|
8183
9128
|
}
|
|
9129
|
+
/**
|
|
9130
|
+
* @hidden
|
|
9131
|
+
*/
|
|
9132
|
+
applyValue() {
|
|
9133
|
+
this.value = this._valueHolder;
|
|
9134
|
+
this.emitValueChange();
|
|
9135
|
+
this.togglePopup(false);
|
|
9136
|
+
}
|
|
9137
|
+
/**
|
|
9138
|
+
* @hidden
|
|
9139
|
+
*/
|
|
9140
|
+
cancelValue() {
|
|
9141
|
+
this._valueHolder = [];
|
|
9142
|
+
this.togglePopup(false);
|
|
9143
|
+
}
|
|
8184
9144
|
/**
|
|
8185
9145
|
* @hidden
|
|
8186
9146
|
*/
|
|
@@ -8212,8 +9172,12 @@ class MultiSelectComponent {
|
|
|
8212
9172
|
event.added.forEach((itemIndex) => {
|
|
8213
9173
|
const dataItem = this.dataService.itemAt(itemIndex);
|
|
8214
9174
|
const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
|
|
9175
|
+
this._valueHolder = this.value.filter(filter);
|
|
8215
9176
|
if (newItem) {
|
|
8216
|
-
this.
|
|
9177
|
+
this._valueHolder = [...this.value, newItem];
|
|
9178
|
+
if (!this.isAdaptive) {
|
|
9179
|
+
this.value = this._valueHolder;
|
|
9180
|
+
}
|
|
8217
9181
|
}
|
|
8218
9182
|
});
|
|
8219
9183
|
}
|
|
@@ -8221,7 +9185,10 @@ class MultiSelectComponent {
|
|
|
8221
9185
|
event.removed.forEach((itemIndex) => {
|
|
8222
9186
|
const dataItem = this.dataService.itemAt(itemIndex);
|
|
8223
9187
|
const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
|
|
8224
|
-
this.
|
|
9188
|
+
this._valueHolder = this.value.filter(filter);
|
|
9189
|
+
if (!this.isAdaptive) {
|
|
9190
|
+
this.value = this._valueHolder;
|
|
9191
|
+
}
|
|
8225
9192
|
});
|
|
8226
9193
|
this.cdr.detectChanges();
|
|
8227
9194
|
}
|
|
@@ -8236,17 +9203,25 @@ class MultiSelectComponent {
|
|
|
8236
9203
|
if (isPresent(event.added)) {
|
|
8237
9204
|
const dataItem = this.dataService.itemAt(event.added);
|
|
8238
9205
|
const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
|
|
8239
|
-
this.
|
|
9206
|
+
this._valueHolder = [...this.value, newItem];
|
|
9207
|
+
if (!this.isAdaptive) {
|
|
9208
|
+
this.value = this._valueHolder;
|
|
9209
|
+
}
|
|
8240
9210
|
}
|
|
8241
9211
|
if (isPresent(event.removed)) {
|
|
8242
9212
|
const dataItem = this.dataService.itemAt(event.removed);
|
|
8243
9213
|
const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
|
|
8244
|
-
this.
|
|
9214
|
+
this._valueHolder = this.value.filter(filter);
|
|
9215
|
+
if (!this.isAdaptive) {
|
|
9216
|
+
this.value = this._valueHolder;
|
|
9217
|
+
}
|
|
8245
9218
|
this.selectionService.focused = event.removed;
|
|
8246
9219
|
this.cdr.detectChanges();
|
|
8247
9220
|
}
|
|
8248
9221
|
}
|
|
8249
|
-
this.
|
|
9222
|
+
if (!this.isAdaptive) {
|
|
9223
|
+
this.emitValueChange();
|
|
9224
|
+
}
|
|
8250
9225
|
}
|
|
8251
9226
|
/**
|
|
8252
9227
|
* @hidden
|
|
@@ -8331,6 +9306,9 @@ class MultiSelectComponent {
|
|
|
8331
9306
|
const navigateInput = this.text && event.keyCode !== Keys.ArrowDown && event.keyCode !== Keys.ArrowUp;
|
|
8332
9307
|
const selectValue = this.text && event.keyCode === Keys.Enter || event.keyCode === Keys.Escape;
|
|
8333
9308
|
const deleteTag = !this.text && event.keyCode === Keys.Backspace && this.tags.length > 0;
|
|
9309
|
+
if (event.keyCode === Keys.Backspace && this.isActionSheetExpanded) {
|
|
9310
|
+
return;
|
|
9311
|
+
}
|
|
8334
9312
|
if (deleteTag) {
|
|
8335
9313
|
this.handleBackspace();
|
|
8336
9314
|
return;
|
|
@@ -8348,7 +9326,8 @@ class MultiSelectComponent {
|
|
|
8348
9326
|
originalEvent: eventData
|
|
8349
9327
|
});
|
|
8350
9328
|
if (action !== NavigationAction.Undefined &&
|
|
8351
|
-
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)
|
|
9329
|
+
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter) &&
|
|
9330
|
+
(!this.isActionSheetExpanded && action === NavigationAction.Tab)) {
|
|
8352
9331
|
event.preventDefault();
|
|
8353
9332
|
}
|
|
8354
9333
|
}
|
|
@@ -8405,11 +9384,11 @@ class MultiSelectComponent {
|
|
|
8405
9384
|
ngOnInit() {
|
|
8406
9385
|
this.renderer.removeAttribute(this.wrapper.nativeElement, "tabindex");
|
|
8407
9386
|
this.createCustomValueStream();
|
|
8408
|
-
this.
|
|
9387
|
+
this.subs.add(this.localization
|
|
8409
9388
|
.changes.subscribe(({ rtl }) => {
|
|
8410
9389
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
8411
9390
|
this.cdr.markForCheck();
|
|
8412
|
-
});
|
|
9391
|
+
}));
|
|
8413
9392
|
this.setState(this.value);
|
|
8414
9393
|
this.setComponentClasses();
|
|
8415
9394
|
this.initialized = true;
|
|
@@ -8428,18 +9407,21 @@ class MultiSelectComponent {
|
|
|
8428
9407
|
}
|
|
8429
9408
|
}
|
|
8430
9409
|
ngAfterViewInit() {
|
|
9410
|
+
this.windowSize = windowSize();
|
|
9411
|
+
this.cdr.detectChanges();
|
|
8431
9412
|
this.searchbar.setInputSize();
|
|
8432
|
-
this.
|
|
8433
|
-
this.
|
|
9413
|
+
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'mousedown', this.handleMousedown.bind(this)));
|
|
9414
|
+
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
9415
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
8434
9416
|
}
|
|
8435
9417
|
ngOnDestroy() {
|
|
8436
9418
|
this._toggle(false);
|
|
8437
9419
|
this.unsubscribeEvents();
|
|
8438
9420
|
}
|
|
8439
9421
|
/**
|
|
8440
|
-
* Toggles the visibility of the popup
|
|
9422
|
+
* Toggles the visibility of the popup or actionSheet
|
|
8441
9423
|
* ([see example]({% slug openstate_multiselect %}#toc-setting-the-initially-opened-component)).
|
|
8442
|
-
* If you use the `toggle` method to open or close the popup, the respective `open` and `close` events will not be fired.
|
|
9424
|
+
* If you use the `toggle` method to open or close the popup or actionSheet, the respective `open` and `close` events will not be fired.
|
|
8443
9425
|
*
|
|
8444
9426
|
* @param open - The state of the popup.
|
|
8445
9427
|
*/
|
|
@@ -8453,10 +9435,10 @@ class MultiSelectComponent {
|
|
|
8453
9435
|
});
|
|
8454
9436
|
}
|
|
8455
9437
|
/**
|
|
8456
|
-
* Returns the current open state
|
|
9438
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
8457
9439
|
*/
|
|
8458
9440
|
get isOpen() {
|
|
8459
|
-
return this._open;
|
|
9441
|
+
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
8460
9442
|
}
|
|
8461
9443
|
/**
|
|
8462
9444
|
* Resets the value of the MultiSelect.
|
|
@@ -8505,6 +9487,15 @@ class MultiSelectComponent {
|
|
|
8505
9487
|
this.tags = this.tagMapper(this.selectedDataItems.slice(0));
|
|
8506
9488
|
this.cdr.markForCheck();
|
|
8507
9489
|
}
|
|
9490
|
+
/**
|
|
9491
|
+
* @hidden
|
|
9492
|
+
*/
|
|
9493
|
+
handleClick() {
|
|
9494
|
+
this.windowSize = windowSize();
|
|
9495
|
+
if (this.isAdaptive) {
|
|
9496
|
+
this.togglePopup(true);
|
|
9497
|
+
}
|
|
9498
|
+
}
|
|
8508
9499
|
set isFocused(isFocused) {
|
|
8509
9500
|
this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
|
|
8510
9501
|
this._isFocused = isFocused;
|
|
@@ -8543,7 +9534,7 @@ class MultiSelectComponent {
|
|
|
8543
9534
|
this.optionsList.scrollWithOnePage(NavigationAction[event.originalEvent.code]);
|
|
8544
9535
|
}
|
|
8545
9536
|
})
|
|
8546
|
-
].forEach(s => this.
|
|
9537
|
+
].forEach(s => this.subs.add(s));
|
|
8547
9538
|
}
|
|
8548
9539
|
subscribeTouchEvents() {
|
|
8549
9540
|
if (!isDocumentAvailable() || !this.touchEnabled) {
|
|
@@ -8567,13 +9558,10 @@ class MultiSelectComponent {
|
|
|
8567
9558
|
if (!isDocumentAvailable()) {
|
|
8568
9559
|
return;
|
|
8569
9560
|
}
|
|
8570
|
-
this.
|
|
9561
|
+
this.subs.unsubscribe();
|
|
8571
9562
|
if (this.customValueSubscription) {
|
|
8572
9563
|
this.customValueSubscription.unsubscribe();
|
|
8573
9564
|
}
|
|
8574
|
-
if (this.localizationChangeSubscription) {
|
|
8575
|
-
this.localizationChangeSubscription.unsubscribe();
|
|
8576
|
-
}
|
|
8577
9565
|
if (this.touchstartDisposeHandler) {
|
|
8578
9566
|
this.touchstartDisposeHandler();
|
|
8579
9567
|
}
|
|
@@ -8688,7 +9676,7 @@ class MultiSelectComponent {
|
|
|
8688
9676
|
}
|
|
8689
9677
|
handleItemChange(event) {
|
|
8690
9678
|
this.change(event);
|
|
8691
|
-
if (this.autoClose && !event.preventClosingPopup) {
|
|
9679
|
+
if (this.autoClose && !event.preventClosingPopup && !this.isActionSheetExpanded) {
|
|
8692
9680
|
this.togglePopup(false);
|
|
8693
9681
|
}
|
|
8694
9682
|
if (this.autoClose || !this.filterable) {
|
|
@@ -8696,21 +9684,23 @@ class MultiSelectComponent {
|
|
|
8696
9684
|
}
|
|
8697
9685
|
}
|
|
8698
9686
|
handleMousedown(event) {
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
if (
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
this.
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
9687
|
+
if (!this.isActionSheetExpanded) {
|
|
9688
|
+
const inputElement = this.searchbar.input.nativeElement;
|
|
9689
|
+
if (event.button === 0) {
|
|
9690
|
+
if (this.isFocused && this.isOpen && event.target === inputElement) {
|
|
9691
|
+
return;
|
|
9692
|
+
}
|
|
9693
|
+
if (!this.touchEnabled || (this.touchEnabled && event.target.tagName !== 'SPAN')) {
|
|
9694
|
+
this.searchbar.focus();
|
|
9695
|
+
}
|
|
9696
|
+
// The check is needed otherwise when appended to the component, the popup reopens on click
|
|
9697
|
+
// https://github.com/telerik/kendo-angular/issues/3738
|
|
9698
|
+
if ((this.popupRef && this.popupRef.popupElement.contains(event.target))) {
|
|
9699
|
+
return;
|
|
9700
|
+
}
|
|
9701
|
+
event.preventDefault();
|
|
9702
|
+
this.togglePopup(!this.isOpen);
|
|
8711
9703
|
}
|
|
8712
|
-
event.preventDefault();
|
|
8713
|
-
this.togglePopup(!this.isOpen);
|
|
8714
9704
|
}
|
|
8715
9705
|
}
|
|
8716
9706
|
handleKeydown(event) {
|
|
@@ -8739,7 +9729,7 @@ class MultiSelectComponent {
|
|
|
8739
9729
|
else {
|
|
8740
9730
|
service.add(focusedIndex);
|
|
8741
9731
|
}
|
|
8742
|
-
if (this.autoClose) {
|
|
9732
|
+
if (this.autoClose && !this.isActionSheetExpanded) {
|
|
8743
9733
|
this.togglePopup(false);
|
|
8744
9734
|
}
|
|
8745
9735
|
if (this.autoClose || !this.filterable) {
|
|
@@ -8910,6 +9900,9 @@ class MultiSelectComponent {
|
|
|
8910
9900
|
this.togglePopup(true);
|
|
8911
9901
|
this.focusedTagIndex = undefined;
|
|
8912
9902
|
}
|
|
9903
|
+
/**
|
|
9904
|
+
* @hidden
|
|
9905
|
+
*/
|
|
8913
9906
|
togglePopup(open) {
|
|
8914
9907
|
const isDisabled = this.disabled || this.readonly;
|
|
8915
9908
|
const sameState = this.isOpen === open;
|
|
@@ -8934,6 +9927,10 @@ class MultiSelectComponent {
|
|
|
8934
9927
|
_toggle(open) {
|
|
8935
9928
|
this._open = open;
|
|
8936
9929
|
this.destroyPopup();
|
|
9930
|
+
if (this.isActionSheetExpanded) {
|
|
9931
|
+
this.closeActionSheet();
|
|
9932
|
+
this.focus();
|
|
9933
|
+
}
|
|
8937
9934
|
if (this._open) {
|
|
8938
9935
|
this.createPopup();
|
|
8939
9936
|
}
|
|
@@ -8950,6 +9947,11 @@ class MultiSelectComponent {
|
|
|
8950
9947
|
if (this.virtual) {
|
|
8951
9948
|
this.virtual.skip = 0;
|
|
8952
9949
|
}
|
|
9950
|
+
this.windowSize = windowSize();
|
|
9951
|
+
if (this.isAdaptive) {
|
|
9952
|
+
this.openActionSheet();
|
|
9953
|
+
return;
|
|
9954
|
+
}
|
|
8953
9955
|
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
8954
9956
|
const anchorPosition = { horizontal: horizontalAlign, vertical: "bottom" };
|
|
8955
9957
|
const popupPosition = { horizontal: horizontalAlign, vertical: "top" };
|
|
@@ -8981,7 +9983,9 @@ class MultiSelectComponent {
|
|
|
8981
9983
|
}
|
|
8982
9984
|
this.popupRef.popupOpen.subscribe(() => {
|
|
8983
9985
|
this.cdr.detectChanges();
|
|
9986
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
8984
9987
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
9988
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
8985
9989
|
this.opened.emit();
|
|
8986
9990
|
});
|
|
8987
9991
|
this.popupRef.popupClose.subscribe(() => {
|
|
@@ -9035,9 +10039,28 @@ class MultiSelectComponent {
|
|
|
9035
10039
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
|
|
9036
10040
|
}
|
|
9037
10041
|
}
|
|
10042
|
+
closeActionSheet() {
|
|
10043
|
+
this.actionSheet.toggle(false);
|
|
10044
|
+
this.actionSheetSearchBar.value = '';
|
|
10045
|
+
this.filterable && this.filterChange.emit('');
|
|
10046
|
+
this.closed.emit();
|
|
10047
|
+
}
|
|
10048
|
+
openActionSheet() {
|
|
10049
|
+
this.windowSize = windowSize();
|
|
10050
|
+
this.actionSheet.toggle(true);
|
|
10051
|
+
this.cdr.detectChanges();
|
|
10052
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
10053
|
+
this.title = setActionSheetTitle(this.searchbar.input, this.title);
|
|
10054
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
10055
|
+
this.cdr.detectChanges();
|
|
10056
|
+
this.opened.emit();
|
|
10057
|
+
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
10058
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
10059
|
+
this.actionSheetSearchBar.focus();
|
|
10060
|
+
}
|
|
9038
10061
|
}
|
|
9039
|
-
MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", 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 });
|
|
9040
|
-
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: { 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: [
|
|
10062
|
+
MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.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 });
|
|
10063
|
+
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", removeTag: "removeTag" }, host: { 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: [
|
|
9041
10064
|
MULTISELECT_VALUE_ACCESSOR,
|
|
9042
10065
|
DataService,
|
|
9043
10066
|
SelectionService,
|
|
@@ -9054,7 +10077,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9054
10077
|
{
|
|
9055
10078
|
provide: KendoInput, useExisting: forwardRef(() => MultiSelectComponent)
|
|
9056
10079
|
}
|
|
9057
|
-
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "customItemTemplate", first: true, predicate: CustomItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoMultiSelect"], usesOnChanges: true, ngImport: i0, template: `
|
|
10080
|
+
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "customItemTemplate", first: true, predicate: CustomItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoMultiSelect"], usesOnChanges: true, ngImport: i0, template: `
|
|
9058
10081
|
<ng-container kendoMultiSelectLocalizedMessages
|
|
9059
10082
|
i18n-noDataText="kendo.multiselect.noDataText|The text displayed in the popup when there are no items"
|
|
9060
10083
|
noDataText="NO DATA FOUND"
|
|
@@ -9064,6 +10087,12 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9064
10087
|
|
|
9065
10088
|
i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
9066
10089
|
popupLabel="Options list"
|
|
10090
|
+
|
|
10091
|
+
i18n-applyButton="kendo.multiselect.applyButton|The text of the Apply button in the action sheet"
|
|
10092
|
+
applyButton="Apply"
|
|
10093
|
+
|
|
10094
|
+
i18n-cancelButton="kendo.multiselect.cancelButton|The text of the Cancel button in the action sheet"
|
|
10095
|
+
cancelButton="Cancel"
|
|
9067
10096
|
>
|
|
9068
10097
|
</ng-container>
|
|
9069
10098
|
<kendo-taglist
|
|
@@ -9094,13 +10123,14 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9094
10123
|
[activeDescendant]="activeDescendant"
|
|
9095
10124
|
[userInput]="text"
|
|
9096
10125
|
[disabled]="disabled"
|
|
9097
|
-
[readonly]="readonly"
|
|
10126
|
+
[readonly]="readonly || this.isAdaptive"
|
|
9098
10127
|
[tabIndex]="tabIndex"
|
|
9099
10128
|
[placeholder]="placeholder"
|
|
9100
10129
|
(onNavigate)="handleNavigate($event)"
|
|
9101
10130
|
(valueChange)="handleFilter($event)"
|
|
9102
10131
|
(onBlur)="onSearchBarBlur()"
|
|
9103
10132
|
(onFocus)="onSearchBarFocus()"
|
|
10133
|
+
(click)="handleClick()"
|
|
9104
10134
|
>
|
|
9105
10135
|
</kendo-searchbar>
|
|
9106
10136
|
</kendo-taglist>
|
|
@@ -9127,6 +10157,29 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9127
10157
|
>
|
|
9128
10158
|
</span>
|
|
9129
10159
|
<ng-template #popupTemplate>
|
|
10160
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
10161
|
+
</ng-template>
|
|
10162
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
10163
|
+
<ng-container #container></ng-container>
|
|
10164
|
+
|
|
10165
|
+
<!--adaptive rendering-->
|
|
10166
|
+
<responsive-renderer
|
|
10167
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
10168
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
10169
|
+
[title]="title"
|
|
10170
|
+
[showTextInput]="true"
|
|
10171
|
+
[showActionButtons]="true"
|
|
10172
|
+
[subtitle]="subtitle"
|
|
10173
|
+
(closePopup)="togglePopup(false)"
|
|
10174
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
10175
|
+
[placeholder]="placeholder"
|
|
10176
|
+
(navigate)="handleNavigate($event)"
|
|
10177
|
+
(onApply)="applyValue()"
|
|
10178
|
+
(onCancel)="cancelValue()"
|
|
10179
|
+
>
|
|
10180
|
+
</responsive-renderer>
|
|
10181
|
+
|
|
10182
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
9130
10183
|
<!--header template-->
|
|
9131
10184
|
<ng-template *ngIf="headerTemplate"
|
|
9132
10185
|
[templateContext]="{
|
|
@@ -9165,17 +10218,18 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9165
10218
|
[data]="data"
|
|
9166
10219
|
[textField]="textField"
|
|
9167
10220
|
[valueField]="valueField"
|
|
9168
|
-
[height]="listHeight"
|
|
9169
10221
|
[template]="template"
|
|
9170
10222
|
[groupTemplate]="groupTemplate"
|
|
9171
10223
|
[fixedGroupTemplate]="fixedGroupTemplate"
|
|
10224
|
+
[height]="listHeight"
|
|
9172
10225
|
[show]="isOpen"
|
|
9173
10226
|
[multipleSelection]="true"
|
|
9174
10227
|
[virtual]="virtual"
|
|
9175
10228
|
(pageChange)="pageChange($event)"
|
|
9176
10229
|
[checkboxes]="checkboxes"
|
|
9177
10230
|
[isMultiselect]="true"
|
|
9178
|
-
|
|
10231
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
10232
|
+
>
|
|
9179
10233
|
</kendo-list>
|
|
9180
10234
|
<!--no data template-->
|
|
9181
10235
|
<div class="k-no-data" *ngIf="data.length === 0">
|
|
@@ -9195,11 +10249,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9195
10249
|
}">
|
|
9196
10250
|
</ng-template>
|
|
9197
10251
|
</ng-template>
|
|
9198
|
-
|
|
9199
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9200
|
-
</ng-template>
|
|
9201
|
-
<ng-container #container></ng-container>
|
|
9202
|
-
`, 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", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { 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: i10.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: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
|
|
10252
|
+
`, 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", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }] });
|
|
9203
10253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
9204
10254
|
type: Component,
|
|
9205
10255
|
args: [{
|
|
@@ -9233,6 +10283,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9233
10283
|
|
|
9234
10284
|
i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
9235
10285
|
popupLabel="Options list"
|
|
10286
|
+
|
|
10287
|
+
i18n-applyButton="kendo.multiselect.applyButton|The text of the Apply button in the action sheet"
|
|
10288
|
+
applyButton="Apply"
|
|
10289
|
+
|
|
10290
|
+
i18n-cancelButton="kendo.multiselect.cancelButton|The text of the Cancel button in the action sheet"
|
|
10291
|
+
cancelButton="Cancel"
|
|
9236
10292
|
>
|
|
9237
10293
|
</ng-container>
|
|
9238
10294
|
<kendo-taglist
|
|
@@ -9263,13 +10319,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9263
10319
|
[activeDescendant]="activeDescendant"
|
|
9264
10320
|
[userInput]="text"
|
|
9265
10321
|
[disabled]="disabled"
|
|
9266
|
-
[readonly]="readonly"
|
|
10322
|
+
[readonly]="readonly || this.isAdaptive"
|
|
9267
10323
|
[tabIndex]="tabIndex"
|
|
9268
10324
|
[placeholder]="placeholder"
|
|
9269
10325
|
(onNavigate)="handleNavigate($event)"
|
|
9270
10326
|
(valueChange)="handleFilter($event)"
|
|
9271
10327
|
(onBlur)="onSearchBarBlur()"
|
|
9272
10328
|
(onFocus)="onSearchBarFocus()"
|
|
10329
|
+
(click)="handleClick()"
|
|
9273
10330
|
>
|
|
9274
10331
|
</kendo-searchbar>
|
|
9275
10332
|
</kendo-taglist>
|
|
@@ -9296,6 +10353,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9296
10353
|
>
|
|
9297
10354
|
</span>
|
|
9298
10355
|
<ng-template #popupTemplate>
|
|
10356
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
10357
|
+
</ng-template>
|
|
10358
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
10359
|
+
<ng-container #container></ng-container>
|
|
10360
|
+
|
|
10361
|
+
<!--adaptive rendering-->
|
|
10362
|
+
<responsive-renderer
|
|
10363
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
10364
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
10365
|
+
[title]="title"
|
|
10366
|
+
[showTextInput]="true"
|
|
10367
|
+
[showActionButtons]="true"
|
|
10368
|
+
[subtitle]="subtitle"
|
|
10369
|
+
(closePopup)="togglePopup(false)"
|
|
10370
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
10371
|
+
[placeholder]="placeholder"
|
|
10372
|
+
(navigate)="handleNavigate($event)"
|
|
10373
|
+
(onApply)="applyValue()"
|
|
10374
|
+
(onCancel)="cancelValue()"
|
|
10375
|
+
>
|
|
10376
|
+
</responsive-renderer>
|
|
10377
|
+
|
|
10378
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
9299
10379
|
<!--header template-->
|
|
9300
10380
|
<ng-template *ngIf="headerTemplate"
|
|
9301
10381
|
[templateContext]="{
|
|
@@ -9334,17 +10414,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9334
10414
|
[data]="data"
|
|
9335
10415
|
[textField]="textField"
|
|
9336
10416
|
[valueField]="valueField"
|
|
9337
|
-
[height]="listHeight"
|
|
9338
10417
|
[template]="template"
|
|
9339
10418
|
[groupTemplate]="groupTemplate"
|
|
9340
10419
|
[fixedGroupTemplate]="fixedGroupTemplate"
|
|
10420
|
+
[height]="listHeight"
|
|
9341
10421
|
[show]="isOpen"
|
|
9342
10422
|
[multipleSelection]="true"
|
|
9343
10423
|
[virtual]="virtual"
|
|
9344
10424
|
(pageChange)="pageChange($event)"
|
|
9345
10425
|
[checkboxes]="checkboxes"
|
|
9346
10426
|
[isMultiselect]="true"
|
|
9347
|
-
|
|
10427
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
10428
|
+
>
|
|
9348
10429
|
</kendo-list>
|
|
9349
10430
|
<!--no data template-->
|
|
9350
10431
|
<div class="k-no-data" *ngIf="data.length === 0">
|
|
@@ -9364,18 +10445,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9364
10445
|
}">
|
|
9365
10446
|
</ng-template>
|
|
9366
10447
|
</ng-template>
|
|
9367
|
-
<ng-template [ngIf]="isOpen">
|
|
9368
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9369
|
-
</ng-template>
|
|
9370
|
-
<ng-container #container></ng-container>
|
|
9371
10448
|
`
|
|
9372
10449
|
}]
|
|
9373
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: DataService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
10450
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2$1.PopupService }, { type: DataService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
9374
10451
|
type: Optional
|
|
9375
10452
|
}, {
|
|
9376
10453
|
type: Inject,
|
|
9377
10454
|
args: [TOUCH_ENABLED]
|
|
9378
|
-
}] }]; }, propDecorators: {
|
|
10455
|
+
}] }]; }, propDecorators: { responsiveRendererComponent: [{
|
|
10456
|
+
type: ViewChild,
|
|
10457
|
+
args: [ResponsiveRendererComponent]
|
|
10458
|
+
}], focusableId: [{
|
|
9379
10459
|
type: Input
|
|
9380
10460
|
}], autoClose: [{
|
|
9381
10461
|
type: Input
|
|
@@ -9402,6 +10482,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9402
10482
|
type: Input
|
|
9403
10483
|
}], placeholder: [{
|
|
9404
10484
|
type: Input
|
|
10485
|
+
}], adaptiveMode: [{
|
|
10486
|
+
type: Input
|
|
10487
|
+
}], title: [{
|
|
10488
|
+
type: Input
|
|
10489
|
+
}], subtitle: [{
|
|
10490
|
+
type: Input
|
|
9405
10491
|
}], disabled: [{
|
|
9406
10492
|
type: Input
|
|
9407
10493
|
}], itemDisabled: [{
|
|
@@ -9658,6 +10744,10 @@ const getRowWidthFromColumnsMeta = (columns) => {
|
|
|
9658
10744
|
class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
9659
10745
|
constructor(localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, wrapper, touchEnabled) {
|
|
9660
10746
|
super(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, touchEnabled);
|
|
10747
|
+
/**
|
|
10748
|
+
* @hidden
|
|
10749
|
+
*/
|
|
10750
|
+
this.animationDuration = animationDuration;
|
|
9661
10751
|
/**
|
|
9662
10752
|
* @hidden
|
|
9663
10753
|
*/
|
|
@@ -9698,14 +10788,14 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
9698
10788
|
* @hidden
|
|
9699
10789
|
*/
|
|
9700
10790
|
get listContainerClasses() {
|
|
9701
|
-
return [
|
|
9702
|
-
'k-popup',
|
|
9703
|
-
'k-dropdowngrid-popup'
|
|
9704
|
-
].concat(this.popupSettings.popupClass || []);
|
|
10791
|
+
return ['k-popup', 'k-dropdowngrid-popup'].concat(this.popupSettings.popupClass || []);
|
|
9705
10792
|
}
|
|
9706
10793
|
ngAfterViewInit() {
|
|
9707
10794
|
this.updateColumnsMediaState();
|
|
9708
10795
|
this.addWindowResizeListener();
|
|
10796
|
+
this.windowSize = windowSize();
|
|
10797
|
+
this.cdr.detectChanges();
|
|
10798
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
9709
10799
|
}
|
|
9710
10800
|
ngOnDestroy() {
|
|
9711
10801
|
super.ngOnDestroy();
|
|
@@ -9741,7 +10831,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
9741
10831
|
if (!isDevMode()) {
|
|
9742
10832
|
return;
|
|
9743
10833
|
}
|
|
9744
|
-
if (isPresent(this.data) && this.data.length > 0 && this.data.some(item => !isObject(item))) {
|
|
10834
|
+
if (isPresent(this.data) && this.data.length > 0 && this.data.some((item) => !isObject(item))) {
|
|
9745
10835
|
throw new Error(MultiColumnComboBoxMessages.data);
|
|
9746
10836
|
}
|
|
9747
10837
|
if (!isPresent(this.valueField) || !isPresent(this.textField)) {
|
|
@@ -9753,26 +10843,26 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
9753
10843
|
if (!isDocumentAvailable()) {
|
|
9754
10844
|
return;
|
|
9755
10845
|
}
|
|
9756
|
-
this.zone.runOutsideAngular(() => this.removeWindowResizeListener = this.renderer.listen(window, 'resize', this.updateColumnsMediaState.bind(this)));
|
|
10846
|
+
this.zone.runOutsideAngular(() => (this.removeWindowResizeListener = this.renderer.listen(window, 'resize', this.updateColumnsMediaState.bind(this))));
|
|
9757
10847
|
}
|
|
9758
10848
|
updateColumnsMediaState() {
|
|
9759
|
-
if (!(isPresent(this.columns) && isDocumentAvailable())) {
|
|
10849
|
+
if (!(isPresent(this.columns) && isDocumentAvailable()) || this.isActionSheetExpanded) {
|
|
9760
10850
|
return;
|
|
9761
10851
|
}
|
|
9762
|
-
this.columns.forEach(column => {
|
|
10852
|
+
this.columns.forEach((column) => {
|
|
9763
10853
|
const matchesMedia = !column.media || window.matchMedia(column.media).matches;
|
|
9764
10854
|
if (column.matchesMedia !== matchesMedia) {
|
|
9765
10855
|
column.matchesMedia = matchesMedia;
|
|
9766
10856
|
if (this.isOpen) {
|
|
9767
10857
|
// enter the zone only if the popup is actually open
|
|
9768
10858
|
// update its width in case it's dependent on the columns' width
|
|
9769
|
-
this.zone.run(() => this.popupRef.popupElement.style.width = this.popupWidth.max);
|
|
10859
|
+
this.zone.run(() => (this.popupRef.popupElement.style.width = this.popupWidth.max));
|
|
9770
10860
|
}
|
|
9771
10861
|
}
|
|
9772
10862
|
});
|
|
9773
10863
|
}
|
|
9774
10864
|
}
|
|
9775
|
-
MultiColumnComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED }], target: i0.ɵɵFactoryTarget.Component });
|
|
10865
|
+
MultiColumnComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED }], target: i0.ɵɵFactoryTarget.Component });
|
|
9776
10866
|
MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MultiColumnComboBoxComponent, selector: "kendo-multicolumncombobox", host: { properties: { "class.k-dropdowngrid": "this.hostClasses", "class.k-disabled": "this.isDisabled" } }, providers: [
|
|
9777
10867
|
SelectionService,
|
|
9778
10868
|
DataService,
|
|
@@ -9781,35 +10871,36 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9781
10871
|
LocalizationService,
|
|
9782
10872
|
{
|
|
9783
10873
|
provide: L10N_PREFIX,
|
|
9784
|
-
useValue: 'kendo.multicolumncombobox'
|
|
10874
|
+
useValue: 'kendo.multicolumncombobox',
|
|
9785
10875
|
},
|
|
9786
10876
|
{
|
|
9787
10877
|
multi: true,
|
|
9788
10878
|
provide: NG_VALUE_ACCESSOR,
|
|
9789
|
-
useExisting: forwardRef(() => MultiColumnComboBoxComponent)
|
|
10879
|
+
useExisting: forwardRef(() => MultiColumnComboBoxComponent),
|
|
9790
10880
|
},
|
|
9791
10881
|
{
|
|
9792
10882
|
provide: KendoInput,
|
|
9793
|
-
useExisting: forwardRef(() => MultiColumnComboBoxComponent)
|
|
10883
|
+
useExisting: forwardRef(() => MultiColumnComboBoxComponent),
|
|
9794
10884
|
},
|
|
9795
10885
|
{
|
|
9796
10886
|
provide: FilterableComponent,
|
|
9797
|
-
useExisting: forwardRef(() => MultiColumnComboBoxComponent)
|
|
9798
|
-
}
|
|
10887
|
+
useExisting: forwardRef(() => MultiColumnComboBoxComponent),
|
|
10888
|
+
},
|
|
9799
10889
|
], queries: [{ propertyName: "columns", predicate: ComboBoxColumnComponent }], viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
9800
10890
|
<ng-container
|
|
9801
10891
|
kendoMultiColumnComboBoxLocalizedMessages
|
|
9802
|
-
|
|
9803
|
-
|
|
10892
|
+
i18n-noDataText="
|
|
10893
|
+
kendo.multicolumncombobox.noDataText|The text displayed in the popup when there are no items
|
|
10894
|
+
"
|
|
9804
10895
|
noDataText="NO DATA FOUND"
|
|
9805
|
-
|
|
9806
10896
|
i18n-clearTitle="kendo.multicolumncombobox.clearTitle|The title of the clear button"
|
|
9807
10897
|
clearTitle="clear"
|
|
9808
|
-
|
|
9809
10898
|
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
9810
10899
|
selectButtonText="Select"
|
|
9811
|
-
|
|
9812
|
-
|
|
10900
|
+
i18n-popupLabel="
|
|
10901
|
+
kendo.multicolumncombobox.popupLabel|The label of the popup element that contains the list of options
|
|
10902
|
+
when its role is 'region'
|
|
10903
|
+
"
|
|
9813
10904
|
popupLabel="Options list"
|
|
9814
10905
|
></ng-container>
|
|
9815
10906
|
<kendo-searchbar
|
|
@@ -9832,11 +10923,12 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9832
10923
|
(valueChange)="searchBarChange($event)"
|
|
9833
10924
|
(onBlur)="handleBlur()"
|
|
9834
10925
|
(onFocus)="handleFocus()"
|
|
10926
|
+
(click)="handleClick()"
|
|
9835
10927
|
>
|
|
9836
10928
|
</kendo-searchbar>
|
|
9837
10929
|
|
|
9838
10930
|
<span
|
|
9839
|
-
*ngIf="clearButton && !loading && !disabled && !readonly && text?.length"
|
|
10931
|
+
*ngIf="clearButton && !loading && !disabled && (!readonly || readonly && isAdaptiveModeEnabled && windowSize !== 'large') && text?.length"
|
|
9840
10932
|
class="k-clear-value"
|
|
9841
10933
|
[style.visibility]="clearButtonVisiblity"
|
|
9842
10934
|
aria-hidden="true"
|
|
@@ -9846,11 +10938,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9846
10938
|
mousedown: preventEventDefault
|
|
9847
10939
|
}"
|
|
9848
10940
|
>
|
|
9849
|
-
<kendo-icon-wrapper
|
|
9850
|
-
name="x"
|
|
9851
|
-
[svgIcon]="xIcon"
|
|
9852
|
-
>
|
|
9853
|
-
</kendo-icon-wrapper>
|
|
10941
|
+
<kendo-icon-wrapper name="x" [svgIcon]="xIcon"> </kendo-icon-wrapper>
|
|
9854
10942
|
</span>
|
|
9855
10943
|
|
|
9856
10944
|
<button
|
|
@@ -9866,16 +10954,36 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9866
10954
|
mousedown: preventEventDefault
|
|
9867
10955
|
}"
|
|
9868
10956
|
>
|
|
9869
|
-
<kendo-icon-wrapper
|
|
9870
|
-
*ngIf="!loading && !iconClass"
|
|
9871
|
-
name="caret-alt-down"
|
|
9872
|
-
[svgIcon]="caretAltDownIcon"
|
|
9873
|
-
>
|
|
10957
|
+
<kendo-icon-wrapper *ngIf="!loading && !iconClass" name="caret-alt-down" [svgIcon]="caretAltDownIcon">
|
|
9874
10958
|
</kendo-icon-wrapper>
|
|
9875
10959
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
9876
10960
|
</button>
|
|
9877
10961
|
|
|
9878
10962
|
<ng-template #popupTemplate>
|
|
10963
|
+
<!--popup/actionsheet content-->
|
|
10964
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
10965
|
+
</ng-template>
|
|
10966
|
+
|
|
10967
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"> </kendo-resize-sensor>
|
|
10968
|
+
|
|
10969
|
+
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
10970
|
+
<ng-container #container></ng-container>
|
|
10971
|
+
|
|
10972
|
+
<!--adaptive rendering-->
|
|
10973
|
+
<responsive-renderer
|
|
10974
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
10975
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
10976
|
+
[title]="title"
|
|
10977
|
+
[showTextInput]="true"
|
|
10978
|
+
[subtitle]="subtitle"
|
|
10979
|
+
(closePopup)="togglePopup(false)"
|
|
10980
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
10981
|
+
(navigate)="handleNavigate($event)"
|
|
10982
|
+
[placeholder]="placeholder"
|
|
10983
|
+
>
|
|
10984
|
+
</responsive-renderer>
|
|
10985
|
+
|
|
10986
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
9879
10987
|
<!--user-defined header template -->
|
|
9880
10988
|
<ng-template
|
|
9881
10989
|
*ngIf="headerTemplate"
|
|
@@ -9884,23 +10992,15 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9884
10992
|
}"
|
|
9885
10993
|
>
|
|
9886
10994
|
</ng-template>
|
|
9887
|
-
|
|
9888
10995
|
<!--data table-->
|
|
9889
10996
|
<div class="k-data-table" [ngClass]="tableSizeClass">
|
|
9890
|
-
|
|
9891
10997
|
<!--grid header-->
|
|
9892
|
-
<div
|
|
9893
|
-
#header
|
|
9894
|
-
class="k-table-header"
|
|
9895
|
-
>
|
|
10998
|
+
<div #header class="k-table-header">
|
|
9896
10999
|
<div class="k-table-header-wrap">
|
|
9897
11000
|
<table class="k-table" role="presentation">
|
|
9898
11001
|
<colgroup>
|
|
9899
11002
|
<ng-container *ngFor="let column of columns">
|
|
9900
|
-
<col
|
|
9901
|
-
*ngIf="!column.hidden && column.matchesMedia"
|
|
9902
|
-
[style.width.px]="column.width"
|
|
9903
|
-
/>
|
|
11003
|
+
<col *ngIf="!column.hidden && column.matchesMedia" [style.width.px]="column.width" />
|
|
9904
11004
|
</ng-container>
|
|
9905
11005
|
</colgroup>
|
|
9906
11006
|
<thead class="k-table-thead">
|
|
@@ -9931,7 +11031,6 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9931
11031
|
</table>
|
|
9932
11032
|
</div>
|
|
9933
11033
|
</div>
|
|
9934
|
-
|
|
9935
11034
|
<!-- item template -->
|
|
9936
11035
|
<ng-template #rowTemplate let-dataItem>
|
|
9937
11036
|
<ng-container *ngFor="let column of columns">
|
|
@@ -9958,8 +11057,6 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9958
11057
|
</span>
|
|
9959
11058
|
</ng-container>
|
|
9960
11059
|
</ng-template>
|
|
9961
|
-
|
|
9962
|
-
<!--list-->
|
|
9963
11060
|
<kendo-list
|
|
9964
11061
|
#optionsList
|
|
9965
11062
|
[optionPrefix]="optionPrefix"
|
|
@@ -9979,10 +11076,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9979
11076
|
</kendo-list>
|
|
9980
11077
|
|
|
9981
11078
|
<!--no-data template-->
|
|
9982
|
-
<div
|
|
9983
|
-
class="k-no-data"
|
|
9984
|
-
*ngIf="data.length === 0"
|
|
9985
|
-
>
|
|
11079
|
+
<div class="k-no-data" *ngIf="data.length === 0">
|
|
9986
11080
|
<ng-template
|
|
9987
11081
|
[ngIf]="noDataTemplate"
|
|
9988
11082
|
[templateContext]="{
|
|
@@ -10013,21 +11107,10 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
10013
11107
|
</tfoot>
|
|
10014
11108
|
</table>
|
|
10015
11109
|
</div>
|
|
10016
|
-
</ng-container>
|
|
10017
|
-
|
|
11110
|
+
</ng-container>
|
|
10018
11111
|
</div>
|
|
10019
|
-
|
|
10020
11112
|
</ng-template>
|
|
10021
|
-
|
|
10022
|
-
<kendo-resize-sensor
|
|
10023
|
-
*ngIf="isOpen"
|
|
10024
|
-
(resize)="onResize()"
|
|
10025
|
-
>
|
|
10026
|
-
</kendo-resize-sensor>
|
|
10027
|
-
|
|
10028
|
-
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
10029
|
-
<ng-container #container></ng-container>
|
|
10030
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { 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: i10.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: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
11113
|
+
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
10031
11114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
|
|
10032
11115
|
type: Component,
|
|
10033
11116
|
args: [{
|
|
@@ -10039,37 +11122,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10039
11122
|
LocalizationService,
|
|
10040
11123
|
{
|
|
10041
11124
|
provide: L10N_PREFIX,
|
|
10042
|
-
useValue: 'kendo.multicolumncombobox'
|
|
11125
|
+
useValue: 'kendo.multicolumncombobox',
|
|
10043
11126
|
},
|
|
10044
11127
|
{
|
|
10045
11128
|
multi: true,
|
|
10046
11129
|
provide: NG_VALUE_ACCESSOR,
|
|
10047
|
-
useExisting: forwardRef(() => MultiColumnComboBoxComponent)
|
|
11130
|
+
useExisting: forwardRef(() => MultiColumnComboBoxComponent),
|
|
10048
11131
|
},
|
|
10049
11132
|
{
|
|
10050
11133
|
provide: KendoInput,
|
|
10051
|
-
useExisting: forwardRef(() => MultiColumnComboBoxComponent)
|
|
11134
|
+
useExisting: forwardRef(() => MultiColumnComboBoxComponent),
|
|
10052
11135
|
},
|
|
10053
11136
|
{
|
|
10054
11137
|
provide: FilterableComponent,
|
|
10055
|
-
useExisting: forwardRef(() => MultiColumnComboBoxComponent)
|
|
10056
|
-
}
|
|
11138
|
+
useExisting: forwardRef(() => MultiColumnComboBoxComponent),
|
|
11139
|
+
},
|
|
10057
11140
|
],
|
|
10058
11141
|
selector: 'kendo-multicolumncombobox',
|
|
10059
11142
|
template: `
|
|
10060
11143
|
<ng-container
|
|
10061
11144
|
kendoMultiColumnComboBoxLocalizedMessages
|
|
10062
|
-
|
|
10063
|
-
|
|
11145
|
+
i18n-noDataText="
|
|
11146
|
+
kendo.multicolumncombobox.noDataText|The text displayed in the popup when there are no items
|
|
11147
|
+
"
|
|
10064
11148
|
noDataText="NO DATA FOUND"
|
|
10065
|
-
|
|
10066
11149
|
i18n-clearTitle="kendo.multicolumncombobox.clearTitle|The title of the clear button"
|
|
10067
11150
|
clearTitle="clear"
|
|
10068
|
-
|
|
10069
11151
|
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
10070
11152
|
selectButtonText="Select"
|
|
10071
|
-
|
|
10072
|
-
|
|
11153
|
+
i18n-popupLabel="
|
|
11154
|
+
kendo.multicolumncombobox.popupLabel|The label of the popup element that contains the list of options
|
|
11155
|
+
when its role is 'region'
|
|
11156
|
+
"
|
|
10073
11157
|
popupLabel="Options list"
|
|
10074
11158
|
></ng-container>
|
|
10075
11159
|
<kendo-searchbar
|
|
@@ -10092,11 +11176,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10092
11176
|
(valueChange)="searchBarChange($event)"
|
|
10093
11177
|
(onBlur)="handleBlur()"
|
|
10094
11178
|
(onFocus)="handleFocus()"
|
|
11179
|
+
(click)="handleClick()"
|
|
10095
11180
|
>
|
|
10096
11181
|
</kendo-searchbar>
|
|
10097
11182
|
|
|
10098
11183
|
<span
|
|
10099
|
-
*ngIf="clearButton && !loading && !disabled && !readonly && text?.length"
|
|
11184
|
+
*ngIf="clearButton && !loading && !disabled && (!readonly || readonly && isAdaptiveModeEnabled && windowSize !== 'large') && text?.length"
|
|
10100
11185
|
class="k-clear-value"
|
|
10101
11186
|
[style.visibility]="clearButtonVisiblity"
|
|
10102
11187
|
aria-hidden="true"
|
|
@@ -10106,11 +11191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10106
11191
|
mousedown: preventEventDefault
|
|
10107
11192
|
}"
|
|
10108
11193
|
>
|
|
10109
|
-
<kendo-icon-wrapper
|
|
10110
|
-
name="x"
|
|
10111
|
-
[svgIcon]="xIcon"
|
|
10112
|
-
>
|
|
10113
|
-
</kendo-icon-wrapper>
|
|
11194
|
+
<kendo-icon-wrapper name="x" [svgIcon]="xIcon"> </kendo-icon-wrapper>
|
|
10114
11195
|
</span>
|
|
10115
11196
|
|
|
10116
11197
|
<button
|
|
@@ -10126,16 +11207,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10126
11207
|
mousedown: preventEventDefault
|
|
10127
11208
|
}"
|
|
10128
11209
|
>
|
|
10129
|
-
<kendo-icon-wrapper
|
|
10130
|
-
*ngIf="!loading && !iconClass"
|
|
10131
|
-
name="caret-alt-down"
|
|
10132
|
-
[svgIcon]="caretAltDownIcon"
|
|
10133
|
-
>
|
|
11210
|
+
<kendo-icon-wrapper *ngIf="!loading && !iconClass" name="caret-alt-down" [svgIcon]="caretAltDownIcon">
|
|
10134
11211
|
</kendo-icon-wrapper>
|
|
10135
11212
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
10136
11213
|
</button>
|
|
10137
11214
|
|
|
10138
11215
|
<ng-template #popupTemplate>
|
|
11216
|
+
<!--popup/actionsheet content-->
|
|
11217
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
11218
|
+
</ng-template>
|
|
11219
|
+
|
|
11220
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"> </kendo-resize-sensor>
|
|
11221
|
+
|
|
11222
|
+
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
11223
|
+
<ng-container #container></ng-container>
|
|
11224
|
+
|
|
11225
|
+
<!--adaptive rendering-->
|
|
11226
|
+
<responsive-renderer
|
|
11227
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
11228
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
11229
|
+
[title]="title"
|
|
11230
|
+
[showTextInput]="true"
|
|
11231
|
+
[subtitle]="subtitle"
|
|
11232
|
+
(closePopup)="togglePopup(false)"
|
|
11233
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
11234
|
+
(navigate)="handleNavigate($event)"
|
|
11235
|
+
[placeholder]="placeholder"
|
|
11236
|
+
>
|
|
11237
|
+
</responsive-renderer>
|
|
11238
|
+
|
|
11239
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
10139
11240
|
<!--user-defined header template -->
|
|
10140
11241
|
<ng-template
|
|
10141
11242
|
*ngIf="headerTemplate"
|
|
@@ -10144,23 +11245,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10144
11245
|
}"
|
|
10145
11246
|
>
|
|
10146
11247
|
</ng-template>
|
|
10147
|
-
|
|
10148
11248
|
<!--data table-->
|
|
10149
11249
|
<div class="k-data-table" [ngClass]="tableSizeClass">
|
|
10150
|
-
|
|
10151
11250
|
<!--grid header-->
|
|
10152
|
-
<div
|
|
10153
|
-
#header
|
|
10154
|
-
class="k-table-header"
|
|
10155
|
-
>
|
|
11251
|
+
<div #header class="k-table-header">
|
|
10156
11252
|
<div class="k-table-header-wrap">
|
|
10157
11253
|
<table class="k-table" role="presentation">
|
|
10158
11254
|
<colgroup>
|
|
10159
11255
|
<ng-container *ngFor="let column of columns">
|
|
10160
|
-
<col
|
|
10161
|
-
*ngIf="!column.hidden && column.matchesMedia"
|
|
10162
|
-
[style.width.px]="column.width"
|
|
10163
|
-
/>
|
|
11256
|
+
<col *ngIf="!column.hidden && column.matchesMedia" [style.width.px]="column.width" />
|
|
10164
11257
|
</ng-container>
|
|
10165
11258
|
</colgroup>
|
|
10166
11259
|
<thead class="k-table-thead">
|
|
@@ -10191,7 +11284,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10191
11284
|
</table>
|
|
10192
11285
|
</div>
|
|
10193
11286
|
</div>
|
|
10194
|
-
|
|
10195
11287
|
<!-- item template -->
|
|
10196
11288
|
<ng-template #rowTemplate let-dataItem>
|
|
10197
11289
|
<ng-container *ngFor="let column of columns">
|
|
@@ -10218,8 +11310,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10218
11310
|
</span>
|
|
10219
11311
|
</ng-container>
|
|
10220
11312
|
</ng-template>
|
|
10221
|
-
|
|
10222
|
-
<!--list-->
|
|
10223
11313
|
<kendo-list
|
|
10224
11314
|
#optionsList
|
|
10225
11315
|
[optionPrefix]="optionPrefix"
|
|
@@ -10239,10 +11329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10239
11329
|
</kendo-list>
|
|
10240
11330
|
|
|
10241
11331
|
<!--no-data template-->
|
|
10242
|
-
<div
|
|
10243
|
-
class="k-no-data"
|
|
10244
|
-
*ngIf="data.length === 0"
|
|
10245
|
-
>
|
|
11332
|
+
<div class="k-no-data" *ngIf="data.length === 0">
|
|
10246
11333
|
<ng-template
|
|
10247
11334
|
[ngIf]="noDataTemplate"
|
|
10248
11335
|
[templateContext]="{
|
|
@@ -10273,23 +11360,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10273
11360
|
</tfoot>
|
|
10274
11361
|
</table>
|
|
10275
11362
|
</div>
|
|
10276
|
-
</ng-container>
|
|
10277
|
-
|
|
11363
|
+
</ng-container>
|
|
10278
11364
|
</div>
|
|
10279
|
-
|
|
10280
11365
|
</ng-template>
|
|
10281
|
-
|
|
10282
|
-
<kendo-resize-sensor
|
|
10283
|
-
*ngIf="isOpen"
|
|
10284
|
-
(resize)="onResize()"
|
|
10285
|
-
>
|
|
10286
|
-
</kendo-resize-sensor>
|
|
10287
|
-
|
|
10288
|
-
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
10289
|
-
<ng-container #container></ng-container>
|
|
10290
|
-
`
|
|
11366
|
+
`,
|
|
10291
11367
|
}]
|
|
10292
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
11368
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2$1.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
10293
11369
|
type: Inject,
|
|
10294
11370
|
args: [TOUCH_ENABLED]
|
|
10295
11371
|
}] }]; }, propDecorators: { hostClasses: [{
|
|
@@ -10351,6 +11427,10 @@ class DropDownTreeComponent {
|
|
|
10351
11427
|
this.cdr = cdr;
|
|
10352
11428
|
this.localization = localization;
|
|
10353
11429
|
this.touchEnabled = touchEnabled;
|
|
11430
|
+
/**
|
|
11431
|
+
* @hidden
|
|
11432
|
+
*/
|
|
11433
|
+
this.animationDuration = animationDuration;
|
|
10354
11434
|
/**
|
|
10355
11435
|
* @hidden
|
|
10356
11436
|
*/
|
|
@@ -10428,13 +11508,7 @@ class DropDownTreeComponent {
|
|
|
10428
11508
|
* The hint which is displayed when the component is empty.
|
|
10429
11509
|
*/
|
|
10430
11510
|
this.placeholder = "";
|
|
10431
|
-
|
|
10432
|
-
* Sets the height of the options list. By default, `listHeight` is 200px.
|
|
10433
|
-
*
|
|
10434
|
-
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
10435
|
-
* > To set the height of the popup container, use `popupSettings.height`.
|
|
10436
|
-
*/
|
|
10437
|
-
this.listHeight = 200;
|
|
11511
|
+
this._listHeight = 200;
|
|
10438
11512
|
/**
|
|
10439
11513
|
* Sets the disabled state of the component.
|
|
10440
11514
|
*/
|
|
@@ -10483,6 +11557,28 @@ class DropDownTreeComponent {
|
|
|
10483
11557
|
* @hidden
|
|
10484
11558
|
*/
|
|
10485
11559
|
this.selectedKeys = [];
|
|
11560
|
+
/**
|
|
11561
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
11562
|
+
*/
|
|
11563
|
+
this.adaptiveMode = 'none';
|
|
11564
|
+
/**
|
|
11565
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
11566
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
11567
|
+
*/
|
|
11568
|
+
this.title = '';
|
|
11569
|
+
/**
|
|
11570
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
11571
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
11572
|
+
*/
|
|
11573
|
+
this.subtitle = '';
|
|
11574
|
+
/**
|
|
11575
|
+
* @hidden
|
|
11576
|
+
*/
|
|
11577
|
+
this.windowSize = 'large';
|
|
11578
|
+
/**
|
|
11579
|
+
* @hidden
|
|
11580
|
+
*/
|
|
11581
|
+
this.isActionSheetExpanded = false;
|
|
10486
11582
|
/**
|
|
10487
11583
|
* @hidden
|
|
10488
11584
|
*/
|
|
@@ -10515,6 +11611,21 @@ class DropDownTreeComponent {
|
|
|
10515
11611
|
this.subscribeTouchEvents();
|
|
10516
11612
|
this.subscribeFocusEvents();
|
|
10517
11613
|
}
|
|
11614
|
+
/**
|
|
11615
|
+
* @hidden
|
|
11616
|
+
*/
|
|
11617
|
+
get actionSheet() {
|
|
11618
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
11619
|
+
}
|
|
11620
|
+
/**
|
|
11621
|
+
* @hidden
|
|
11622
|
+
*/
|
|
11623
|
+
get actionSheetSearchBar() {
|
|
11624
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
11625
|
+
}
|
|
11626
|
+
get isReadonly() {
|
|
11627
|
+
return this.readonly ? '' : null;
|
|
11628
|
+
}
|
|
10518
11629
|
get hostAriaInvalid() {
|
|
10519
11630
|
return this.formControl ? this.formControl.invalid.toString() : null;
|
|
10520
11631
|
}
|
|
@@ -10545,9 +11656,6 @@ class DropDownTreeComponent {
|
|
|
10545
11656
|
get hostAriaAutocomplete() {
|
|
10546
11657
|
return this.filterable ? 'list' : null;
|
|
10547
11658
|
}
|
|
10548
|
-
get isReadonly() {
|
|
10549
|
-
return this.readonly ? '' : null;
|
|
10550
|
-
}
|
|
10551
11659
|
set treeview(treeview) {
|
|
10552
11660
|
if (treeview) {
|
|
10553
11661
|
if (this.isFocused && !this.filterable || this.touchEnabled) {
|
|
@@ -10614,6 +11722,24 @@ class DropDownTreeComponent {
|
|
|
10614
11722
|
get dataItem() {
|
|
10615
11723
|
return this._dataItem ? this._dataItem : this.value;
|
|
10616
11724
|
}
|
|
11725
|
+
/**
|
|
11726
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
11727
|
+
*
|
|
11728
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
11729
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
11730
|
+
*
|
|
11731
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
11732
|
+
*/
|
|
11733
|
+
set listHeight(_listHeight) {
|
|
11734
|
+
this._listHeight = _listHeight;
|
|
11735
|
+
}
|
|
11736
|
+
;
|
|
11737
|
+
get listHeight() {
|
|
11738
|
+
if (this.isAdaptive) {
|
|
11739
|
+
return;
|
|
11740
|
+
}
|
|
11741
|
+
return this._listHeight;
|
|
11742
|
+
}
|
|
10617
11743
|
/**
|
|
10618
11744
|
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
10619
11745
|
*/
|
|
@@ -10708,10 +11834,10 @@ class DropDownTreeComponent {
|
|
|
10708
11834
|
return isPresent(popupHeight) ? `${popupHeight}px` : 'auto';
|
|
10709
11835
|
}
|
|
10710
11836
|
/**
|
|
10711
|
-
* Returns the current open state
|
|
11837
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
10712
11838
|
*/
|
|
10713
11839
|
get isOpen() {
|
|
10714
|
-
return isPresent(this.popupRef);
|
|
11840
|
+
return isTruthy(isPresent(this.popupRef) || this.isActionSheetExpanded);
|
|
10715
11841
|
}
|
|
10716
11842
|
get clearButtonVisiblity() {
|
|
10717
11843
|
if (this.touchEnabled) {
|
|
@@ -10721,6 +11847,26 @@ class DropDownTreeComponent {
|
|
|
10721
11847
|
get isFilterActive() {
|
|
10722
11848
|
return this.filterInput && document.activeElement === this.filterInput.nativeElement;
|
|
10723
11849
|
}
|
|
11850
|
+
/**
|
|
11851
|
+
* @hidden
|
|
11852
|
+
*/
|
|
11853
|
+
onFilterChange(text) {
|
|
11854
|
+
if (this.filterable) {
|
|
11855
|
+
this.filterChange.emit(text);
|
|
11856
|
+
}
|
|
11857
|
+
}
|
|
11858
|
+
/**
|
|
11859
|
+
* @hidden
|
|
11860
|
+
*/
|
|
11861
|
+
get isAdaptiveModeEnabled() {
|
|
11862
|
+
return this.adaptiveMode === 'auto';
|
|
11863
|
+
}
|
|
11864
|
+
/**
|
|
11865
|
+
* @hidden
|
|
11866
|
+
*/
|
|
11867
|
+
get isAdaptive() {
|
|
11868
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
11869
|
+
}
|
|
10724
11870
|
/**
|
|
10725
11871
|
* @hidden
|
|
10726
11872
|
*
|
|
@@ -10835,8 +11981,27 @@ class DropDownTreeComponent {
|
|
|
10835
11981
|
this.verifySettings();
|
|
10836
11982
|
}
|
|
10837
11983
|
ngAfterViewInit() {
|
|
11984
|
+
this.windowSize = windowSize();
|
|
10838
11985
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'click', this.handleClick.bind(this)));
|
|
10839
11986
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
11987
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
11988
|
+
}
|
|
11989
|
+
/**
|
|
11990
|
+
* @hidden
|
|
11991
|
+
*/
|
|
11992
|
+
onResize() {
|
|
11993
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
11994
|
+
if (this.isOpen) {
|
|
11995
|
+
this.togglePopup(false);
|
|
11996
|
+
}
|
|
11997
|
+
this.windowSize = windowSize();
|
|
11998
|
+
}
|
|
11999
|
+
if (this.isOpen && !this.isActionSheetExpanded) {
|
|
12000
|
+
const popupWrapper = this.popupRef.popupElement;
|
|
12001
|
+
const { min, max } = this.width;
|
|
12002
|
+
popupWrapper.style.minWidth = min;
|
|
12003
|
+
popupWrapper.style.width = max;
|
|
12004
|
+
}
|
|
10840
12005
|
}
|
|
10841
12006
|
/**
|
|
10842
12007
|
* @hidden
|
|
@@ -10887,19 +12052,21 @@ class DropDownTreeComponent {
|
|
|
10887
12052
|
* @hidden
|
|
10888
12053
|
*/
|
|
10889
12054
|
handleBlur(e) {
|
|
10890
|
-
|
|
10891
|
-
|
|
10892
|
-
(this.
|
|
10893
|
-
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
|
|
10900
|
-
this.
|
|
10901
|
-
|
|
10902
|
-
|
|
12055
|
+
if (!this.isActionSheetExpanded) {
|
|
12056
|
+
const relatedTarget = e && e.relatedTarget;
|
|
12057
|
+
if (this.wrapper.nativeElement.contains(relatedTarget) ||
|
|
12058
|
+
(this.isOpen && this.popupRef.popupElement.contains(relatedTarget))) {
|
|
12059
|
+
return;
|
|
12060
|
+
}
|
|
12061
|
+
this.isFocused = false;
|
|
12062
|
+
this.togglePopup(false);
|
|
12063
|
+
if (hasObservers(this.onBlur) ||
|
|
12064
|
+
isUntouched(this.wrapper.nativeElement)) {
|
|
12065
|
+
this._zone.run(() => {
|
|
12066
|
+
this.onBlur.emit();
|
|
12067
|
+
this.onTouchedCallback();
|
|
12068
|
+
});
|
|
12069
|
+
}
|
|
10903
12070
|
}
|
|
10904
12071
|
}
|
|
10905
12072
|
/**
|
|
@@ -10909,7 +12076,11 @@ class DropDownTreeComponent {
|
|
|
10909
12076
|
if (this.disabled || this.readonly) {
|
|
10910
12077
|
return;
|
|
10911
12078
|
}
|
|
10912
|
-
if (
|
|
12079
|
+
if (event.keyCode === Keys.Tab && this.isActionSheetExpanded) {
|
|
12080
|
+
this.togglePopup(false);
|
|
12081
|
+
return;
|
|
12082
|
+
}
|
|
12083
|
+
if (!this.isFilterActive && isLetter(event.key) && !this.actionSheetSearchBar?.onFocus) {
|
|
10913
12084
|
this.printableCharacters.next(event.key);
|
|
10914
12085
|
}
|
|
10915
12086
|
const eventData = event;
|
|
@@ -10957,9 +12128,9 @@ class DropDownTreeComponent {
|
|
|
10957
12128
|
this.dataItem = undefined;
|
|
10958
12129
|
}
|
|
10959
12130
|
/**
|
|
10960
|
-
* Toggles the visibility of the popup
|
|
12131
|
+
* Toggles the visibility of the popup or actionSheet.
|
|
10961
12132
|
* ([see example]({% slug openstate_ddt %})).
|
|
10962
|
-
* If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.
|
|
12133
|
+
* If you use the `toggle` method to open or close the popup or actionSheet, the `open` and `close` events will not be fired.
|
|
10963
12134
|
*
|
|
10964
12135
|
* @param open - The state of the popup.
|
|
10965
12136
|
*/
|
|
@@ -11069,7 +12240,7 @@ class DropDownTreeComponent {
|
|
|
11069
12240
|
* @hidden
|
|
11070
12241
|
*/
|
|
11071
12242
|
handleFilterInputChange(input) {
|
|
11072
|
-
this.filterChange.next(input.value);
|
|
12243
|
+
this.filterChange.next(typeof (input) === 'string' ? input : input.value);
|
|
11073
12244
|
this.allNodesHidden = this.nodes.every((node, index) => !this.isVisible(node, String(index)));
|
|
11074
12245
|
}
|
|
11075
12246
|
/**
|
|
@@ -11129,8 +12300,24 @@ class DropDownTreeComponent {
|
|
|
11129
12300
|
if (this.popupRef) {
|
|
11130
12301
|
this._searchableNodes = getSearchableItems(this.treeViewId, this.popupRef.popupElement);
|
|
11131
12302
|
}
|
|
12303
|
+
if (this.isActionSheetExpanded) {
|
|
12304
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.actionSheet.element.nativeElement);
|
|
12305
|
+
}
|
|
11132
12306
|
});
|
|
11133
12307
|
}
|
|
12308
|
+
/**
|
|
12309
|
+
* @hidden
|
|
12310
|
+
*/
|
|
12311
|
+
onExpand() {
|
|
12312
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.actionSheet.element.nativeElement);
|
|
12313
|
+
this.isActionSheetExpanded = true;
|
|
12314
|
+
}
|
|
12315
|
+
/**
|
|
12316
|
+
* @hidden
|
|
12317
|
+
*/
|
|
12318
|
+
onCollapse() {
|
|
12319
|
+
this.isActionSheetExpanded = false;
|
|
12320
|
+
}
|
|
11134
12321
|
/**
|
|
11135
12322
|
* @hidden
|
|
11136
12323
|
*
|
|
@@ -11165,6 +12352,12 @@ class DropDownTreeComponent {
|
|
|
11165
12352
|
return eventArgs.isDefaultPrevented();
|
|
11166
12353
|
}
|
|
11167
12354
|
createPopup() {
|
|
12355
|
+
this.windowSize = windowSize();
|
|
12356
|
+
if (this.isAdaptive) {
|
|
12357
|
+
this.openActionSheet();
|
|
12358
|
+
this.cdr.detectChanges();
|
|
12359
|
+
return;
|
|
12360
|
+
}
|
|
11168
12361
|
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
11169
12362
|
const anchorPosition = { horizontal: horizontalAlign, vertical: 'bottom' };
|
|
11170
12363
|
const popupPosition = { horizontal: horizontalAlign, vertical: 'top' };
|
|
@@ -11197,6 +12390,9 @@ class DropDownTreeComponent {
|
|
|
11197
12390
|
});
|
|
11198
12391
|
}
|
|
11199
12392
|
destroyPopup() {
|
|
12393
|
+
if (this.isActionSheetExpanded) {
|
|
12394
|
+
this.closeActionSheet();
|
|
12395
|
+
}
|
|
11200
12396
|
if (this.popupRef) {
|
|
11201
12397
|
this.popupRef.close();
|
|
11202
12398
|
this.popupRef = null;
|
|
@@ -11213,10 +12409,13 @@ class DropDownTreeComponent {
|
|
|
11213
12409
|
}
|
|
11214
12410
|
handleClick(e) {
|
|
11215
12411
|
// The check is needed otherwise when appended to the component, the popup reopens on click
|
|
11216
|
-
// https://github.com/telerik/kendo-angular/issues/3738
|
|
11217
|
-
|
|
11218
|
-
|
|
11219
|
-
this.
|
|
12412
|
+
// https://github.com/telerik/kendo-angular/issues/3738
|
|
12413
|
+
this.windowSize = windowSize();
|
|
12414
|
+
if (!this.isActionSheetExpanded) {
|
|
12415
|
+
if ((this.popupRef && !this.popupRef.popupElement.contains(e.target))
|
|
12416
|
+
|| (!this.popupRef && !e.target.className.includes('k-treeview-leaf'))) {
|
|
12417
|
+
this.togglePopup(!this.isOpen);
|
|
12418
|
+
}
|
|
11220
12419
|
}
|
|
11221
12420
|
}
|
|
11222
12421
|
handleEscape() {
|
|
@@ -11286,7 +12485,12 @@ class DropDownTreeComponent {
|
|
|
11286
12485
|
}
|
|
11287
12486
|
event.originalEvent.preventDefault();
|
|
11288
12487
|
if (this.filterable && this.treeview['navigationService']['activeIndex'] === '0') {
|
|
11289
|
-
this.
|
|
12488
|
+
if (this.isActionSheetExpanded) {
|
|
12489
|
+
this.actionSheetSearchBar.focus();
|
|
12490
|
+
}
|
|
12491
|
+
else {
|
|
12492
|
+
this.filterInput.nativeElement.focus();
|
|
12493
|
+
}
|
|
11290
12494
|
}
|
|
11291
12495
|
})
|
|
11292
12496
|
].forEach(sub => this.subs.add(sub));
|
|
@@ -11371,9 +12575,30 @@ class DropDownTreeComponent {
|
|
|
11371
12575
|
}
|
|
11372
12576
|
});
|
|
11373
12577
|
}
|
|
12578
|
+
closeActionSheet() {
|
|
12579
|
+
this.actionSheet.toggle(false);
|
|
12580
|
+
if (this.filterable) {
|
|
12581
|
+
this.actionSheetSearchBar.value = '';
|
|
12582
|
+
this.filterChange.emit('');
|
|
12583
|
+
}
|
|
12584
|
+
this.wrapper.nativeElement.focus();
|
|
12585
|
+
this.closed.emit();
|
|
12586
|
+
}
|
|
12587
|
+
openActionSheet() {
|
|
12588
|
+
this.windowSize = windowSize();
|
|
12589
|
+
this.isActionSheetExpanded = true;
|
|
12590
|
+
this.actionSheet.toggle(true);
|
|
12591
|
+
this.title = setActionSheetTitle(this.wrapper, this.title);
|
|
12592
|
+
this.cdr.detectChanges();
|
|
12593
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
12594
|
+
this.cdr.detectChanges();
|
|
12595
|
+
this.opened.emit();
|
|
12596
|
+
this.removeTreeViewFromTabOrder();
|
|
12597
|
+
this.filterable && this.actionSheetSearchBar.focus();
|
|
12598
|
+
}
|
|
11374
12599
|
}
|
|
11375
|
-
DropDownTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11376
|
-
DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DropDownTreeComponent, selector: "kendo-dropdowntree", inputs: { loading: "loading", clearButton: "clearButton", data: "data", value: "value", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", hasChildren: "hasChildren", fetchChildren: "fetchChildren", placeholder: "placeholder", popupSettings: "popupSettings", dataItem: "dataItem", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", itemDisabled: "itemDisabled", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", loadOnDemand: "loadOnDemand", filterable: "filterable", filter: "filter", focusableId: "focusableId" }, outputs: { open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", onFocus: "focus", onBlur: "blur", valueChange: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.k-dropdowntree": "this.hostClasses", "class.k-picker": "this.hostClasses", "attr.aria-invalid": "this.hostAriaInvalid", "class.k-disabled": "this.isDisabled", "attr.disabled": "this.isDisabledAttribute", "class.k-loading": "this.isLoading", "attr.aria-busy": "this.isBusy", "attr.aria-controls": "this.hostAriaControls", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-autocomplete": "this.hostAriaAutocomplete"
|
|
12600
|
+
DropDownTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2$1.PopupService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
12601
|
+
DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DropDownTreeComponent, selector: "kendo-dropdowntree", inputs: { loading: "loading", clearButton: "clearButton", data: "data", value: "value", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", hasChildren: "hasChildren", fetchChildren: "fetchChildren", placeholder: "placeholder", popupSettings: "popupSettings", dataItem: "dataItem", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", itemDisabled: "itemDisabled", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", loadOnDemand: "loadOnDemand", filterable: "filterable", filter: "filter", focusableId: "focusableId", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle" }, outputs: { open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", onFocus: "focus", onBlur: "blur", valueChange: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.k-dropdowntree": "this.hostClasses", "class.k-picker": "this.hostClasses", "attr.readonly": "this.isReadonly", "attr.aria-invalid": "this.hostAriaInvalid", "class.k-disabled": "this.isDisabled", "attr.disabled": "this.isDisabledAttribute", "class.k-loading": "this.isLoading", "attr.aria-busy": "this.isBusy", "attr.aria-controls": "this.hostAriaControls", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-autocomplete": "this.hostAriaAutocomplete" } }, providers: [
|
|
11377
12602
|
DataService,
|
|
11378
12603
|
SelectionService,
|
|
11379
12604
|
NavigationService,
|
|
@@ -11400,7 +12625,7 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11400
12625
|
provide: ExpandableComponent,
|
|
11401
12626
|
useExisting: forwardRef(() => DropDownTreeComponent)
|
|
11402
12627
|
}
|
|
11403
|
-
], queries: [{ propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "nodeTemplate", first: true, predicate: NodeTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "treeview", first: true, predicate: ["treeview"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], exportAs: ["kendoDropDownTree"], usesOnChanges: true, ngImport: i0, template: `
|
|
12628
|
+
], queries: [{ propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "nodeTemplate", first: true, predicate: NodeTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "treeview", first: true, predicate: ["treeview"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], exportAs: ["kendoDropDownTree"], usesOnChanges: true, ngImport: i0, template: `
|
|
11404
12629
|
<ng-container kendoDropDownTreeLocalizedMessages
|
|
11405
12630
|
i18n-noDataText="kendo.dropdowntree.noDataText|The text displayed in the popup when there are no items"
|
|
11406
12631
|
noDataText="NO DATA FOUND"
|
|
@@ -11464,8 +12689,26 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11464
12689
|
</kendo-icon-wrapper>
|
|
11465
12690
|
</button>
|
|
11466
12691
|
<ng-template #popupTemplate>
|
|
11467
|
-
<
|
|
11468
|
-
|
|
12692
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
12693
|
+
</ng-template>
|
|
12694
|
+
<ng-container #container></ng-container>
|
|
12695
|
+
|
|
12696
|
+
<!--adaptive rendering-->
|
|
12697
|
+
<responsive-renderer
|
|
12698
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
12699
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
12700
|
+
[title]="title"
|
|
12701
|
+
[showTextInput]="filterable"
|
|
12702
|
+
[subtitle]="subtitle"
|
|
12703
|
+
(closePopup)="togglePopup(false)"
|
|
12704
|
+
(onExpand)="onExpand()"
|
|
12705
|
+
(onCollapse)="onCollapse()"
|
|
12706
|
+
(textInputChange)="handleFilterInputChange($event)"
|
|
12707
|
+
>
|
|
12708
|
+
</responsive-renderer>
|
|
12709
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
12710
|
+
<span
|
|
12711
|
+
*ngIf="filterable && !isActionSheetExpanded"
|
|
11469
12712
|
class="k-list-filter"
|
|
11470
12713
|
>
|
|
11471
12714
|
<span
|
|
@@ -11551,8 +12794,9 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11551
12794
|
</ng-template>
|
|
11552
12795
|
</div>
|
|
11553
12796
|
</ng-template>
|
|
11554
|
-
|
|
11555
|
-
|
|
12797
|
+
|
|
12798
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
12799
|
+
`, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: i1$1.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { 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: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.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: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i1$1.SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11556
12800
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownTreeComponent, decorators: [{
|
|
11557
12801
|
type: Component,
|
|
11558
12802
|
args: [{
|
|
@@ -11650,8 +12894,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11650
12894
|
</kendo-icon-wrapper>
|
|
11651
12895
|
</button>
|
|
11652
12896
|
<ng-template #popupTemplate>
|
|
11653
|
-
<
|
|
11654
|
-
|
|
12897
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
12898
|
+
</ng-template>
|
|
12899
|
+
<ng-container #container></ng-container>
|
|
12900
|
+
|
|
12901
|
+
<!--adaptive rendering-->
|
|
12902
|
+
<responsive-renderer
|
|
12903
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
12904
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
12905
|
+
[title]="title"
|
|
12906
|
+
[showTextInput]="filterable"
|
|
12907
|
+
[subtitle]="subtitle"
|
|
12908
|
+
(closePopup)="togglePopup(false)"
|
|
12909
|
+
(onExpand)="onExpand()"
|
|
12910
|
+
(onCollapse)="onCollapse()"
|
|
12911
|
+
(textInputChange)="handleFilterInputChange($event)"
|
|
12912
|
+
>
|
|
12913
|
+
</responsive-renderer>
|
|
12914
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
12915
|
+
<span
|
|
12916
|
+
*ngIf="filterable && !isActionSheetExpanded"
|
|
11655
12917
|
class="k-list-filter"
|
|
11656
12918
|
>
|
|
11657
12919
|
<span
|
|
@@ -11737,21 +12999,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11737
12999
|
</ng-template>
|
|
11738
13000
|
</div>
|
|
11739
13001
|
</ng-template>
|
|
11740
|
-
|
|
13002
|
+
|
|
13003
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
11741
13004
|
`,
|
|
11742
13005
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
11743
13006
|
}]
|
|
11744
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2.PopupService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: undefined, decorators: [{
|
|
13007
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2$1.PopupService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: undefined, decorators: [{
|
|
11745
13008
|
type: Optional
|
|
11746
13009
|
}, {
|
|
11747
13010
|
type: Inject,
|
|
11748
13011
|
args: [TOUCH_ENABLED]
|
|
11749
|
-
}] }]; }, propDecorators: {
|
|
13012
|
+
}] }]; }, propDecorators: { responsiveRendererComponent: [{
|
|
13013
|
+
type: ViewChild,
|
|
13014
|
+
args: [ResponsiveRendererComponent]
|
|
13015
|
+
}], hostClasses: [{
|
|
11750
13016
|
type: HostBinding,
|
|
11751
13017
|
args: ['class.k-dropdowntree']
|
|
11752
13018
|
}, {
|
|
11753
13019
|
type: HostBinding,
|
|
11754
13020
|
args: ['class.k-picker']
|
|
13021
|
+
}], isReadonly: [{
|
|
13022
|
+
type: HostBinding,
|
|
13023
|
+
args: ['attr.readonly']
|
|
11755
13024
|
}], hostAriaInvalid: [{
|
|
11756
13025
|
type: HostBinding,
|
|
11757
13026
|
args: ['attr.aria-invalid']
|
|
@@ -11791,9 +13060,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11791
13060
|
}], hostAriaAutocomplete: [{
|
|
11792
13061
|
type: HostBinding,
|
|
11793
13062
|
args: ['attr.aria-autocomplete']
|
|
11794
|
-
}], isReadonly: [{
|
|
11795
|
-
type: HostBinding,
|
|
11796
|
-
args: ['attr.readonly']
|
|
11797
13063
|
}], noDataTemplate: [{
|
|
11798
13064
|
type: ContentChild,
|
|
11799
13065
|
args: [NoDataTemplateDirective, { static: false }]
|
|
@@ -11897,6 +13163,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11897
13163
|
type: Input
|
|
11898
13164
|
}], focusableId: [{
|
|
11899
13165
|
type: Input
|
|
13166
|
+
}], adaptiveMode: [{
|
|
13167
|
+
type: Input
|
|
13168
|
+
}], title: [{
|
|
13169
|
+
type: Input
|
|
13170
|
+
}], subtitle: [{
|
|
13171
|
+
type: Input
|
|
11900
13172
|
}] } });
|
|
11901
13173
|
|
|
11902
13174
|
/**
|
|
@@ -12351,6 +13623,10 @@ class MultiSelectTreeComponent {
|
|
|
12351
13623
|
this.cdr = cdr;
|
|
12352
13624
|
this.lookup = lookup;
|
|
12353
13625
|
this.touchEnabled = touchEnabled;
|
|
13626
|
+
/**
|
|
13627
|
+
* @hidden
|
|
13628
|
+
*/
|
|
13629
|
+
this.animationDuration = animationDuration;
|
|
12354
13630
|
/**
|
|
12355
13631
|
* @hidden
|
|
12356
13632
|
*/
|
|
@@ -12363,6 +13639,23 @@ class MultiSelectTreeComponent {
|
|
|
12363
13639
|
this.treeViewId = `k-${guid$1()}`;
|
|
12364
13640
|
this.role = 'combobox';
|
|
12365
13641
|
this.ariaHasPopup = 'tree';
|
|
13642
|
+
/**
|
|
13643
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
13644
|
+
*/
|
|
13645
|
+
this.adaptiveMode = 'none';
|
|
13646
|
+
/**
|
|
13647
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
13648
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
13649
|
+
*/
|
|
13650
|
+
this.title = '';
|
|
13651
|
+
/**
|
|
13652
|
+
* @hidden
|
|
13653
|
+
*/
|
|
13654
|
+
this.windowSize = 'large';
|
|
13655
|
+
/**
|
|
13656
|
+
* @hidden
|
|
13657
|
+
*/
|
|
13658
|
+
this.isActionSheetExpanded = false;
|
|
12366
13659
|
/**
|
|
12367
13660
|
* Sets the levels in the data set where the values can be found when `valueField` is an Array.
|
|
12368
13661
|
* The field serves to correctly allocate a data item used when the MultiSelectTree is initialized with a value.
|
|
@@ -12371,14 +13664,8 @@ class MultiSelectTreeComponent {
|
|
|
12371
13664
|
/**
|
|
12372
13665
|
* The hint which is displayed when the component is empty.
|
|
12373
13666
|
*/
|
|
12374
|
-
this.placeholder =
|
|
12375
|
-
|
|
12376
|
-
* Sets the height of the options list. By default, `listHeight` is 200px.
|
|
12377
|
-
*
|
|
12378
|
-
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
12379
|
-
* > To set the height of the popup container, use `popupSettings.height`.
|
|
12380
|
-
*/
|
|
12381
|
-
this.listHeight = 200;
|
|
13667
|
+
this.placeholder = '';
|
|
13668
|
+
this._listHeight = 200;
|
|
12382
13669
|
/**
|
|
12383
13670
|
* Sets the disabled state of the component.
|
|
12384
13671
|
*/
|
|
@@ -12521,6 +13808,7 @@ class MultiSelectTreeComponent {
|
|
|
12521
13808
|
this._popupSettings = DEFAULT_POPUP_SETTINGS;
|
|
12522
13809
|
this._checkableSettings = DEFAULT_CHECKABLE_SETTINGS;
|
|
12523
13810
|
this._isFocused = false;
|
|
13811
|
+
this._initiallyCheckedItems = [];
|
|
12524
13812
|
this._size = 'medium';
|
|
12525
13813
|
this._rounded = 'medium';
|
|
12526
13814
|
this._fillMode = 'solid';
|
|
@@ -12581,7 +13869,47 @@ class MultiSelectTreeComponent {
|
|
|
12581
13869
|
/**
|
|
12582
13870
|
* @hidden
|
|
12583
13871
|
*/
|
|
12584
|
-
|
|
13872
|
+
onFilterChange(text) {
|
|
13873
|
+
if (this.filterable) {
|
|
13874
|
+
this.filterChange.emit(text);
|
|
13875
|
+
}
|
|
13876
|
+
}
|
|
13877
|
+
/**
|
|
13878
|
+
* @hidden
|
|
13879
|
+
*/
|
|
13880
|
+
onExpand() {
|
|
13881
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.actionSheet.element.nativeElement);
|
|
13882
|
+
this.isActionSheetExpanded = true;
|
|
13883
|
+
}
|
|
13884
|
+
/**
|
|
13885
|
+
* @hidden
|
|
13886
|
+
*/
|
|
13887
|
+
onCollapse() {
|
|
13888
|
+
this.isActionSheetExpanded = false;
|
|
13889
|
+
}
|
|
13890
|
+
/**
|
|
13891
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
13892
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
13893
|
+
*/
|
|
13894
|
+
set subtitle(_subtitle) {
|
|
13895
|
+
this._subtitle = _subtitle;
|
|
13896
|
+
}
|
|
13897
|
+
get subtitle() {
|
|
13898
|
+
return this._subtitle || this.placeholder;
|
|
13899
|
+
}
|
|
13900
|
+
/**
|
|
13901
|
+
* @hidden
|
|
13902
|
+
*/
|
|
13903
|
+
get isAdaptiveModeEnabled() {
|
|
13904
|
+
return this.adaptiveMode === 'auto';
|
|
13905
|
+
}
|
|
13906
|
+
/**
|
|
13907
|
+
* @hidden
|
|
13908
|
+
*/
|
|
13909
|
+
handleKeydown(event, input) {
|
|
13910
|
+
if (input) {
|
|
13911
|
+
event.stopImmediatePropagation();
|
|
13912
|
+
}
|
|
12585
13913
|
const deleteTag = this.isWrapperActive && event.keyCode === Keys.Backspace && this.tags.length > 0;
|
|
12586
13914
|
if (deleteTag) {
|
|
12587
13915
|
this.handleBackspace();
|
|
@@ -12590,7 +13918,7 @@ class MultiSelectTreeComponent {
|
|
|
12590
13918
|
if (this.disabled || this.readonly) {
|
|
12591
13919
|
return;
|
|
12592
13920
|
}
|
|
12593
|
-
if (!this.isFilterActive && isLetter(event.key)) {
|
|
13921
|
+
if (!this.isFilterActive && isLetter(event.key) && !this.actionSheetSearchBar?.onFocus) {
|
|
12594
13922
|
this.printableCharacters.next(event.key);
|
|
12595
13923
|
}
|
|
12596
13924
|
const eventData = event;
|
|
@@ -12605,6 +13933,24 @@ class MultiSelectTreeComponent {
|
|
|
12605
13933
|
this.treeview?.element.nativeElement.dispatchEvent(spaceKeyDownEvent);
|
|
12606
13934
|
}
|
|
12607
13935
|
}
|
|
13936
|
+
/**
|
|
13937
|
+
* @hidden
|
|
13938
|
+
*/
|
|
13939
|
+
get actionSheet() {
|
|
13940
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
13941
|
+
}
|
|
13942
|
+
/**
|
|
13943
|
+
* @hidden
|
|
13944
|
+
*/
|
|
13945
|
+
get actionSheetSearchBar() {
|
|
13946
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
13947
|
+
}
|
|
13948
|
+
/**
|
|
13949
|
+
* @hidden
|
|
13950
|
+
*/
|
|
13951
|
+
get isAdaptive() {
|
|
13952
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
13953
|
+
}
|
|
12608
13954
|
set treeview(treeview) {
|
|
12609
13955
|
this._treeview = treeview;
|
|
12610
13956
|
if (treeview) {
|
|
@@ -12790,6 +14136,24 @@ class MultiSelectTreeComponent {
|
|
|
12790
14136
|
};
|
|
12791
14137
|
});
|
|
12792
14138
|
}
|
|
14139
|
+
/**
|
|
14140
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
14141
|
+
*
|
|
14142
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
14143
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
14144
|
+
*
|
|
14145
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
14146
|
+
*/
|
|
14147
|
+
set listHeight(_listHeight) {
|
|
14148
|
+
this._listHeight = _listHeight;
|
|
14149
|
+
}
|
|
14150
|
+
;
|
|
14151
|
+
get listHeight() {
|
|
14152
|
+
if (this.isAdaptive) {
|
|
14153
|
+
return;
|
|
14154
|
+
}
|
|
14155
|
+
return this._listHeight;
|
|
14156
|
+
}
|
|
12793
14157
|
/**
|
|
12794
14158
|
* @hidden
|
|
12795
14159
|
*/
|
|
@@ -12808,10 +14172,10 @@ class MultiSelectTreeComponent {
|
|
|
12808
14172
|
return this._isFocused;
|
|
12809
14173
|
}
|
|
12810
14174
|
/**
|
|
12811
|
-
* Returns the current open state
|
|
14175
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
12812
14176
|
*/
|
|
12813
14177
|
get isOpen() {
|
|
12814
|
-
return isPresent(this.popupRef);
|
|
14178
|
+
return isTruthy(isPresent(this.popupRef) || this.isActionSheetExpanded);
|
|
12815
14179
|
}
|
|
12816
14180
|
get width() {
|
|
12817
14181
|
const wrapperWidth = this.wrapper.nativeElement.offsetWidth;
|
|
@@ -12922,6 +14286,23 @@ class MultiSelectTreeComponent {
|
|
|
12922
14286
|
get isCheckAllActive() {
|
|
12923
14287
|
return this.checkAllInput && document.activeElement === this.checkAllInput.nativeElement;
|
|
12924
14288
|
}
|
|
14289
|
+
/**
|
|
14290
|
+
* @hidden
|
|
14291
|
+
*/
|
|
14292
|
+
onResize() {
|
|
14293
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
14294
|
+
if (this.isOpen) {
|
|
14295
|
+
this.togglePopup(false);
|
|
14296
|
+
}
|
|
14297
|
+
this.windowSize = windowSize();
|
|
14298
|
+
}
|
|
14299
|
+
if (this.isOpen && !this.isActionSheetExpanded) {
|
|
14300
|
+
const popupWrapper = this.popupRef.popupElement;
|
|
14301
|
+
const { min, max } = this.width;
|
|
14302
|
+
popupWrapper.style.minWidth = min;
|
|
14303
|
+
popupWrapper.style.width = max;
|
|
14304
|
+
}
|
|
14305
|
+
}
|
|
12925
14306
|
ngOnInit() {
|
|
12926
14307
|
this.subs.add(this.printableCharacters.pipe(tap((char) => {
|
|
12927
14308
|
this._typedValue += char;
|
|
@@ -12940,10 +14321,13 @@ class MultiSelectTreeComponent {
|
|
|
12940
14321
|
this.cdr.markForCheck();
|
|
12941
14322
|
}));
|
|
12942
14323
|
this.setComponentClasses();
|
|
14324
|
+
this._initiallyCheckedItems = [...this.checkedItems];
|
|
12943
14325
|
}
|
|
12944
14326
|
ngAfterViewInit() {
|
|
14327
|
+
this.windowSize = windowSize();
|
|
12945
14328
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'click', this.handleClick.bind(this)));
|
|
12946
14329
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
14330
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
12947
14331
|
}
|
|
12948
14332
|
/**
|
|
12949
14333
|
* @hidden
|
|
@@ -12986,6 +14370,23 @@ class MultiSelectTreeComponent {
|
|
|
12986
14370
|
ngAfterContentChecked() {
|
|
12987
14371
|
this.verifySettings();
|
|
12988
14372
|
}
|
|
14373
|
+
/**
|
|
14374
|
+
* @hidden
|
|
14375
|
+
*/
|
|
14376
|
+
applyValue() {
|
|
14377
|
+
this.value = this._tempValue;
|
|
14378
|
+
this._initiallyCheckedItems = [...this.checkedItems];
|
|
14379
|
+
this.emitValueChange(this.value);
|
|
14380
|
+
this.setTags();
|
|
14381
|
+
this.toggle(false);
|
|
14382
|
+
}
|
|
14383
|
+
/**
|
|
14384
|
+
* @hidden
|
|
14385
|
+
*/
|
|
14386
|
+
cancelValue() {
|
|
14387
|
+
this.checkedItems = [...this._initiallyCheckedItems];
|
|
14388
|
+
this.togglePopup(false);
|
|
14389
|
+
}
|
|
12989
14390
|
ngAfterContentInit() {
|
|
12990
14391
|
this.isContentInit = true;
|
|
12991
14392
|
// Still need to keep the call of 'registerLookupItems()' from ngAfterContentInit in the cases when the data is passed initially
|
|
@@ -13042,7 +14443,7 @@ class MultiSelectTreeComponent {
|
|
|
13042
14443
|
this.valueDepth = [];
|
|
13043
14444
|
}
|
|
13044
14445
|
/**
|
|
13045
|
-
* Toggles the visibility of the popup
|
|
14446
|
+
* Toggles the visibility of the popup or actionSheet
|
|
13046
14447
|
* ([see example]({% slug openstate_multiselecttree %})).
|
|
13047
14448
|
* If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.
|
|
13048
14449
|
*
|
|
@@ -13087,19 +14488,21 @@ class MultiSelectTreeComponent {
|
|
|
13087
14488
|
* @hidden
|
|
13088
14489
|
*/
|
|
13089
14490
|
handleBlur(e) {
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
(this.
|
|
13093
|
-
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
|
|
13097
|
-
|
|
13098
|
-
|
|
13099
|
-
|
|
13100
|
-
this.
|
|
13101
|
-
|
|
13102
|
-
|
|
14491
|
+
if (!this.isActionSheetExpanded) {
|
|
14492
|
+
const relatedTarget = e && e.relatedTarget;
|
|
14493
|
+
if (this.wrapper.nativeElement.contains(relatedTarget) ||
|
|
14494
|
+
(this.isOpen && this.popupRef.popupElement.contains(relatedTarget))) {
|
|
14495
|
+
return;
|
|
14496
|
+
}
|
|
14497
|
+
this.isFocused = false;
|
|
14498
|
+
this.togglePopup(false);
|
|
14499
|
+
if (hasObservers(this.onBlur) ||
|
|
14500
|
+
isUntouched(this.wrapper.nativeElement)) {
|
|
14501
|
+
this._zone.run(() => {
|
|
14502
|
+
this.onBlur.emit();
|
|
14503
|
+
this.onTouchedCallback();
|
|
14504
|
+
});
|
|
14505
|
+
}
|
|
13103
14506
|
}
|
|
13104
14507
|
}
|
|
13105
14508
|
/**
|
|
@@ -13326,6 +14729,12 @@ class MultiSelectTreeComponent {
|
|
|
13326
14729
|
return eventArgs.isDefaultPrevented();
|
|
13327
14730
|
}
|
|
13328
14731
|
createPopup() {
|
|
14732
|
+
this.windowSize = windowSize();
|
|
14733
|
+
if (this.isAdaptive) {
|
|
14734
|
+
this.openActionSheet();
|
|
14735
|
+
this.cdr.detectChanges();
|
|
14736
|
+
return;
|
|
14737
|
+
}
|
|
13329
14738
|
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
13330
14739
|
const anchorPosition = { horizontal: horizontalAlign, vertical: 'bottom' };
|
|
13331
14740
|
const popupPosition = { horizontal: horizontalAlign, vertical: 'top' };
|
|
@@ -13359,6 +14768,9 @@ class MultiSelectTreeComponent {
|
|
|
13359
14768
|
});
|
|
13360
14769
|
}
|
|
13361
14770
|
destroyPopup() {
|
|
14771
|
+
if (this.isActionSheetExpanded) {
|
|
14772
|
+
this.closeActionSheet();
|
|
14773
|
+
}
|
|
13362
14774
|
if (this.popupRef) {
|
|
13363
14775
|
this.popupRef.close();
|
|
13364
14776
|
this.popupRef = null;
|
|
@@ -13377,7 +14789,7 @@ class MultiSelectTreeComponent {
|
|
|
13377
14789
|
handleClick(e) {
|
|
13378
14790
|
// The check is needed otherwise when appended to the component, the popup reopens on click
|
|
13379
14791
|
// https://github.com/telerik/kendo-angular/issues/3738
|
|
13380
|
-
if ((this.popupRef && this.popupRef.popupElement.contains(e.target))) {
|
|
14792
|
+
if ((this.popupRef && this.popupRef.popupElement.contains(e.target)) || this.isActionSheetExpanded) {
|
|
13381
14793
|
return;
|
|
13382
14794
|
}
|
|
13383
14795
|
this.togglePopup(!this.isOpen);
|
|
@@ -13437,7 +14849,9 @@ class MultiSelectTreeComponent {
|
|
|
13437
14849
|
this.handleBlur(event);
|
|
13438
14850
|
}
|
|
13439
14851
|
handleTabKey() {
|
|
13440
|
-
this.
|
|
14852
|
+
if (!this.isActionSheetExpanded) {
|
|
14853
|
+
this.focus();
|
|
14854
|
+
}
|
|
13441
14855
|
if (this.isOpen) {
|
|
13442
14856
|
this.treeview.blur();
|
|
13443
14857
|
this.removeTreeViewFromTabOrder();
|
|
@@ -13465,7 +14879,7 @@ class MultiSelectTreeComponent {
|
|
|
13465
14879
|
}
|
|
13466
14880
|
else if (this.isCheckAllActive || isFirstNodeActive) {
|
|
13467
14881
|
if (this.filterable) {
|
|
13468
|
-
this.filterInput.nativeElement.focus();
|
|
14882
|
+
this.isActionSheetExpanded ? this.actionSheetSearchBar.focus() : this.filterInput.nativeElement.focus();
|
|
13469
14883
|
}
|
|
13470
14884
|
else {
|
|
13471
14885
|
this.focus();
|
|
@@ -13558,7 +14972,9 @@ class MultiSelectTreeComponent {
|
|
|
13558
14972
|
}
|
|
13559
14973
|
setState() {
|
|
13560
14974
|
if (isPresent(this.dataItems) && isPresent(this.valueField)) {
|
|
13561
|
-
this.
|
|
14975
|
+
if (!this.isActionSheetExpanded) {
|
|
14976
|
+
this.setTags();
|
|
14977
|
+
}
|
|
13562
14978
|
this.checkedItems = this.dataItems.slice();
|
|
13563
14979
|
}
|
|
13564
14980
|
this.cdr.markForCheck();
|
|
@@ -13572,8 +14988,13 @@ class MultiSelectTreeComponent {
|
|
|
13572
14988
|
const newValue = this.valuePrimitive ?
|
|
13573
14989
|
value.map(item => valueFrom(item, this.valueField)) :
|
|
13574
14990
|
value.map(item => item.dataItem);
|
|
13575
|
-
this.
|
|
13576
|
-
|
|
14991
|
+
if (this.isActionSheetExpanded) {
|
|
14992
|
+
this._tempValue = newValue.slice();
|
|
14993
|
+
}
|
|
14994
|
+
else {
|
|
14995
|
+
this.value = newValue;
|
|
14996
|
+
this.emitValueChange(this.value);
|
|
14997
|
+
}
|
|
13577
14998
|
}
|
|
13578
14999
|
/**
|
|
13579
15000
|
* @hidden
|
|
@@ -13583,6 +15004,9 @@ class MultiSelectTreeComponent {
|
|
|
13583
15004
|
if (this.popupRef) {
|
|
13584
15005
|
this._searchableNodes = getSearchableItems(this.treeViewId, this.popupRef.popupElement);
|
|
13585
15006
|
}
|
|
15007
|
+
if (this.isActionSheetExpanded) {
|
|
15008
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.actionSheet.element.nativeElement);
|
|
15009
|
+
}
|
|
13586
15010
|
});
|
|
13587
15011
|
}
|
|
13588
15012
|
/**
|
|
@@ -13647,9 +15071,28 @@ class MultiSelectTreeComponent {
|
|
|
13647
15071
|
});
|
|
13648
15072
|
}
|
|
13649
15073
|
}
|
|
15074
|
+
closeActionSheet() {
|
|
15075
|
+
this.wrapper.nativeElement.focus();
|
|
15076
|
+
this.actionSheet.toggle(false);
|
|
15077
|
+
if (this.filterable) {
|
|
15078
|
+
this.actionSheetSearchBar.value = '';
|
|
15079
|
+
this.filterChange.emit('');
|
|
15080
|
+
}
|
|
15081
|
+
this.closed.emit();
|
|
15082
|
+
}
|
|
15083
|
+
openActionSheet() {
|
|
15084
|
+
this.windowSize = windowSize();
|
|
15085
|
+
this.actionSheet.toggle(true);
|
|
15086
|
+
this.title = setActionSheetTitle(this.wrapper, this.title);
|
|
15087
|
+
this.cdr.detectChanges();
|
|
15088
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
15089
|
+
this.cdr.detectChanges();
|
|
15090
|
+
this.opened.emit();
|
|
15091
|
+
this.filterable && this.actionSheetSearchBar.focus();
|
|
15092
|
+
}
|
|
13650
15093
|
}
|
|
13651
|
-
MultiSelectTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: i0.Renderer2 }, { token: NavigationService }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: MultiSelectTreeLookupService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
13652
|
-
MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MultiSelectTreeComponent, selector: "kendo-multiselecttree", inputs: { tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-multiselect-tree": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.isDisabled", "attr.aria-disabled": "this.isDisabled", "attr.aria-controls": "this.hostAriaControls", "attr.aria-autocomplete": "this.hostAriaAutocomplete", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-haspopup": "this.ariaHasPopup", "attr.readonly": "this.isReadonly", "attr.aria-describedby": "this.ariaDescribedBy", "attr.aria-activedescendant": "this.ariaActiveDescendant" } }, providers: [
|
|
15094
|
+
MultiSelectTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2$1.PopupService }, { token: i0.Renderer2 }, { token: NavigationService }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: MultiSelectTreeLookupService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
15095
|
+
MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MultiSelectTreeComponent, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-multiselect-tree": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.isDisabled", "attr.aria-disabled": "this.isDisabled", "attr.aria-controls": "this.hostAriaControls", "attr.aria-autocomplete": "this.hostAriaAutocomplete", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-haspopup": "this.ariaHasPopup", "attr.readonly": "this.isReadonly", "attr.aria-describedby": "this.ariaDescribedBy", "attr.aria-activedescendant": "this.ariaActiveDescendant" } }, providers: [
|
|
13653
15096
|
LocalizationService,
|
|
13654
15097
|
NavigationService,
|
|
13655
15098
|
DataService,
|
|
@@ -13677,7 +15120,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13677
15120
|
provide: KendoInput,
|
|
13678
15121
|
useExisting: forwardRef(() => MultiSelectTreeComponent)
|
|
13679
15122
|
}
|
|
13680
|
-
], queries: [{ propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "nodeTemplate", first: true, predicate: NodeTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "treeview", first: true, predicate: ["treeview"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "checkAllInput", first: true, predicate: ["checkAllInput"], descendants: true }], exportAs: ["kendoMultiSelectTree"], usesOnChanges: true, ngImport: i0, template: `
|
|
15123
|
+
], queries: [{ propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "nodeTemplate", first: true, predicate: NodeTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "treeview", first: true, predicate: ["treeview"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "checkAllInput", first: true, predicate: ["checkAllInput"], descendants: true }], exportAs: ["kendoMultiSelectTree"], usesOnChanges: true, ngImport: i0, template: `
|
|
13681
15124
|
<ng-container kendoMultiSelectTreeLocalizedMessages
|
|
13682
15125
|
i18n-noDataText="kendo.multiselecttree.noDataText|The text displayed in the popup when there are no items"
|
|
13683
15126
|
noDataText="NO DATA FOUND"
|
|
@@ -13693,6 +15136,12 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13693
15136
|
|
|
13694
15137
|
i18n-popupLabel="kendo.multiselecttree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
13695
15138
|
popupLabel="Options list"
|
|
15139
|
+
|
|
15140
|
+
i18n-applyButton="kendo.multiselecttree.applyButton|The text of the Apply button in the action sheet"
|
|
15141
|
+
applyButton="Apply"
|
|
15142
|
+
|
|
15143
|
+
i18n-cancelButton="kendo.multiselecttree.cancelButton|The text of the Cancel button in the action sheet"
|
|
15144
|
+
cancelButton="Cancel"
|
|
13696
15145
|
>
|
|
13697
15146
|
</ng-container>
|
|
13698
15147
|
<kendo-taglist
|
|
@@ -13739,10 +15188,30 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13739
15188
|
>
|
|
13740
15189
|
</span>
|
|
13741
15190
|
<ng-template #popupTemplate>
|
|
15191
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
15192
|
+
</ng-template>
|
|
15193
|
+
<ng-container #container></ng-container>
|
|
15194
|
+
<!--adaptive rendering-->
|
|
15195
|
+
<responsive-renderer
|
|
15196
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
15197
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
15198
|
+
[title]="title"
|
|
15199
|
+
[showTextInput]="filterable"
|
|
15200
|
+
[showActionButtons]="true"
|
|
15201
|
+
[subtitle]="subtitle"
|
|
15202
|
+
(closePopup)="togglePopup(false)"
|
|
15203
|
+
(onExpand)="onExpand()"
|
|
15204
|
+
(onCollapse)="onCollapse()"
|
|
15205
|
+
(textInputChange)="onFilterChange($event)"
|
|
15206
|
+
(onApply)="applyValue()"
|
|
15207
|
+
(onCancel)="cancelValue()"
|
|
15208
|
+
>
|
|
15209
|
+
</responsive-renderer>
|
|
15210
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
13742
15211
|
<span
|
|
13743
|
-
*ngIf="filterable"
|
|
15212
|
+
*ngIf="filterable && !isActionSheetExpanded"
|
|
13744
15213
|
class="k-list-filter"
|
|
13745
|
-
|
|
15214
|
+
>
|
|
13746
15215
|
<span
|
|
13747
15216
|
class="k-textbox k-input"
|
|
13748
15217
|
[ngClass]="filterInputClasses"
|
|
@@ -13760,7 +15229,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13760
15229
|
(input)="handleFilterInputChange($event.target)"
|
|
13761
15230
|
[filterInput]="filterable && !touchEnabled"
|
|
13762
15231
|
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
13763
|
-
(keydown)="handleKeydown($event)"
|
|
15232
|
+
(keydown)="handleKeydown($event, filterInput)"
|
|
13764
15233
|
[(ngModel)]="filter"
|
|
13765
15234
|
class="k-input-inner"
|
|
13766
15235
|
role="textbox"
|
|
@@ -13782,7 +15251,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13782
15251
|
[templateContext]="{
|
|
13783
15252
|
templateRef: headerTemplate?.templateRef
|
|
13784
15253
|
}">
|
|
13785
|
-
</ng-template>
|
|
15254
|
+
</ng-template>
|
|
13786
15255
|
<div *ngIf="checkAll" class="k-check-all">
|
|
13787
15256
|
<input
|
|
13788
15257
|
#checkAllInput
|
|
@@ -13865,8 +15334,9 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13865
15334
|
</ng-template>
|
|
13866
15335
|
</div>
|
|
13867
15336
|
</ng-template>
|
|
13868
|
-
|
|
13869
|
-
|
|
15337
|
+
|
|
15338
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
15339
|
+
`, 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: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: i1$1.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { 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: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.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: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }] });
|
|
13870
15340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
|
|
13871
15341
|
type: Component,
|
|
13872
15342
|
args: [{
|
|
@@ -13917,6 +15387,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13917
15387
|
|
|
13918
15388
|
i18n-popupLabel="kendo.multiselecttree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
13919
15389
|
popupLabel="Options list"
|
|
15390
|
+
|
|
15391
|
+
i18n-applyButton="kendo.multiselecttree.applyButton|The text of the Apply button in the action sheet"
|
|
15392
|
+
applyButton="Apply"
|
|
15393
|
+
|
|
15394
|
+
i18n-cancelButton="kendo.multiselecttree.cancelButton|The text of the Cancel button in the action sheet"
|
|
15395
|
+
cancelButton="Cancel"
|
|
13920
15396
|
>
|
|
13921
15397
|
</ng-container>
|
|
13922
15398
|
<kendo-taglist
|
|
@@ -13963,10 +15439,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13963
15439
|
>
|
|
13964
15440
|
</span>
|
|
13965
15441
|
<ng-template #popupTemplate>
|
|
15442
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
15443
|
+
</ng-template>
|
|
15444
|
+
<ng-container #container></ng-container>
|
|
15445
|
+
<!--adaptive rendering-->
|
|
15446
|
+
<responsive-renderer
|
|
15447
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
15448
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
15449
|
+
[title]="title"
|
|
15450
|
+
[showTextInput]="filterable"
|
|
15451
|
+
[showActionButtons]="true"
|
|
15452
|
+
[subtitle]="subtitle"
|
|
15453
|
+
(closePopup)="togglePopup(false)"
|
|
15454
|
+
(onExpand)="onExpand()"
|
|
15455
|
+
(onCollapse)="onCollapse()"
|
|
15456
|
+
(textInputChange)="onFilterChange($event)"
|
|
15457
|
+
(onApply)="applyValue()"
|
|
15458
|
+
(onCancel)="cancelValue()"
|
|
15459
|
+
>
|
|
15460
|
+
</responsive-renderer>
|
|
15461
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
13966
15462
|
<span
|
|
13967
|
-
*ngIf="filterable"
|
|
15463
|
+
*ngIf="filterable && !isActionSheetExpanded"
|
|
13968
15464
|
class="k-list-filter"
|
|
13969
|
-
|
|
15465
|
+
>
|
|
13970
15466
|
<span
|
|
13971
15467
|
class="k-textbox k-input"
|
|
13972
15468
|
[ngClass]="filterInputClasses"
|
|
@@ -13984,7 +15480,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13984
15480
|
(input)="handleFilterInputChange($event.target)"
|
|
13985
15481
|
[filterInput]="filterable && !touchEnabled"
|
|
13986
15482
|
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
13987
|
-
(keydown)="handleKeydown($event)"
|
|
15483
|
+
(keydown)="handleKeydown($event, filterInput)"
|
|
13988
15484
|
[(ngModel)]="filter"
|
|
13989
15485
|
class="k-input-inner"
|
|
13990
15486
|
role="textbox"
|
|
@@ -14006,7 +15502,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
14006
15502
|
[templateContext]="{
|
|
14007
15503
|
templateRef: headerTemplate?.templateRef
|
|
14008
15504
|
}">
|
|
14009
|
-
</ng-template>
|
|
15505
|
+
</ng-template>
|
|
14010
15506
|
<div *ngIf="checkAll" class="k-check-all">
|
|
14011
15507
|
<input
|
|
14012
15508
|
#checkAllInput
|
|
@@ -14089,10 +15585,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
14089
15585
|
</ng-template>
|
|
14090
15586
|
</div>
|
|
14091
15587
|
</ng-template>
|
|
14092
|
-
|
|
15588
|
+
|
|
15589
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
14093
15590
|
`
|
|
14094
15591
|
}]
|
|
14095
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2.PopupService }, { type: i0.Renderer2 }, { type: NavigationService }, { type: i0.NgZone }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: MultiSelectTreeLookupService }, { type: undefined, decorators: [{
|
|
15592
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2$1.PopupService }, { type: i0.Renderer2 }, { type: NavigationService }, { type: i0.NgZone }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: MultiSelectTreeLookupService }, { type: undefined, decorators: [{
|
|
14096
15593
|
type: Optional
|
|
14097
15594
|
}, {
|
|
14098
15595
|
type: Inject,
|
|
@@ -14151,6 +15648,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
14151
15648
|
}], ariaActiveDescendant: [{
|
|
14152
15649
|
type: HostBinding,
|
|
14153
15650
|
args: ['attr.aria-activedescendant']
|
|
15651
|
+
}], adaptiveMode: [{
|
|
15652
|
+
type: Input
|
|
15653
|
+
}], title: [{
|
|
15654
|
+
type: Input
|
|
15655
|
+
}], subtitle: [{
|
|
15656
|
+
type: Input
|
|
15657
|
+
}], responsiveRendererComponent: [{
|
|
15658
|
+
type: ViewChild,
|
|
15659
|
+
args: [ResponsiveRendererComponent]
|
|
14154
15660
|
}], headerTemplate: [{
|
|
14155
15661
|
type: ContentChild,
|
|
14156
15662
|
args: [HeaderTemplateDirective, { static: false }]
|
|
@@ -14688,7 +16194,8 @@ const INTERNAL_DIRECTIVES = [
|
|
|
14688
16194
|
TemplateContextDirective,
|
|
14689
16195
|
TagListComponent,
|
|
14690
16196
|
CheckDirective,
|
|
14691
|
-
CheckAllDirective
|
|
16197
|
+
CheckAllDirective,
|
|
16198
|
+
ResponsiveRendererComponent
|
|
14692
16199
|
];
|
|
14693
16200
|
/**
|
|
14694
16201
|
* @hidden
|
|
@@ -14703,21 +16210,23 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
|
14703
16210
|
TemplateContextDirective,
|
|
14704
16211
|
TagListComponent,
|
|
14705
16212
|
CheckDirective,
|
|
14706
|
-
CheckAllDirective
|
|
16213
|
+
CheckAllDirective,
|
|
16214
|
+
ResponsiveRendererComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule, ActionSheetModule, ButtonModule, TextBoxModule], exports: [ListComponent,
|
|
14707
16215
|
ListItemDirective,
|
|
14708
16216
|
SelectableDirective,
|
|
14709
16217
|
SearchBarComponent,
|
|
14710
16218
|
TemplateContextDirective,
|
|
14711
16219
|
TagListComponent,
|
|
14712
16220
|
CheckDirective,
|
|
14713
|
-
CheckAllDirective,
|
|
14714
|
-
|
|
16221
|
+
CheckAllDirective,
|
|
16222
|
+
ResponsiveRendererComponent, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule, ActionSheetModule, ButtonModule, TextBoxModule] });
|
|
16223
|
+
SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule, ActionSheetModule, ButtonModule, TextBoxModule], CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule, ActionSheetModule, ButtonModule, TextBoxModule] });
|
|
14715
16224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, decorators: [{
|
|
14716
16225
|
type: NgModule,
|
|
14717
16226
|
args: [{
|
|
14718
16227
|
declarations: [INTERNAL_DIRECTIVES],
|
|
14719
|
-
exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule],
|
|
14720
|
-
imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule]
|
|
16228
|
+
exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule, ActionSheetModule, ButtonModule, TextBoxModule],
|
|
16229
|
+
imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule, ActionSheetModule, ButtonModule, TextBoxModule]
|
|
14721
16230
|
}]
|
|
14722
16231
|
}] });
|
|
14723
16232
|
|
|
@@ -15064,5 +16573,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15064
16573
|
* Generated bundle index. Do not edit.
|
|
15065
16574
|
*/
|
|
15066
16575
|
|
|
15067
|
-
export { AutoCompleteComponent, AutoCompleteModule, CheckAllDirective, CheckDirective, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, ComboBoxColumnComponent, ComboBoxComponent, ComboBoxModule, CustomItemTemplateDirective, CustomMessagesComponent, DropDownListComponent, DropDownListModule, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, DropDownTreesModule, DropDownsModule, FilterDirective, FilterInputDirective, FilterableComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTagTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ListComponent, ListItemDirective, LocalizedMessagesDirective, MultiColumnComboBoxComponent, MultiSelectComponent, MultiSelectModule, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, MultiSelectTreeSummaryTagDirective, NoDataTemplateDirective, NodeTemplateDirective, PreventableEvent, RemoveTagEvent, SearchBarComponent, SelectableDirective, SharedDirectivesModule, SharedModule, SummaryTagDirective, TagListComponent, TagTemplateDirective, TemplateContextDirective, ValueTemplateDirective };
|
|
16576
|
+
export { AutoCompleteComponent, AutoCompleteModule, CheckAllDirective, CheckDirective, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, ComboBoxColumnComponent, ComboBoxComponent, ComboBoxModule, CustomItemTemplateDirective, CustomMessagesComponent, DropDownListComponent, DropDownListModule, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, DropDownTreesModule, DropDownsModule, FilterDirective, FilterInputDirective, FilterableComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTagTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ListComponent, ListItemDirective, LocalizedMessagesDirective, MultiColumnComboBoxComponent, MultiSelectComponent, MultiSelectModule, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, MultiSelectTreeSummaryTagDirective, NoDataTemplateDirective, NodeTemplateDirective, PreventableEvent, RemoveTagEvent, ResponsiveRendererComponent, SearchBarComponent, SelectableDirective, SharedDirectivesModule, SharedModule, SummaryTagDirective, TagListComponent, TagTemplateDirective, TemplateContextDirective, ValueTemplateDirective };
|
|
15068
16577
|
|