@progress/kendo-angular-dropdowns 25.1.0-develop.15 → 25.1.0-develop.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/progress-kendo-angular-dropdowns.mjs +885 -448
- package/index.d.ts +500 -191
- package/package-metadata.mjs +2 -2
- package/package.json +11 -11
- package/schematics/ngAdd/index.js +2 -2
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, afterNextRender, ViewChild, ViewChildren, forwardRef, isDevMode, ViewContainerRef, ContentChild,
|
|
6
|
+
import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, afterNextRender, ViewChild, ViewChildren, signal, forwardRef, isDevMode, ViewContainerRef, ContentChild, ChangeDetectionStrategy, runInInjectionContext, ContentChildren, NgModule } from '@angular/core';
|
|
7
7
|
import * as i10 from '@progress/kendo-angular-common';
|
|
8
8
|
import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, normalizeKeys, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, hasFocusableParent, parseCSSClassNames, isControlRequired, guid, hasObservers, SeparatorComponent, SuffixTemplateDirective, PrefixTemplateDirective, KendoInput, KENDO_WEBMCP_HOST, provideComponentName, MultiTabStop, anyChanged, EventsOutsideAngularDirective, scrollbarWidth, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
|
|
9
9
|
export { PrefixTemplateDirective, SeparatorComponent, SuffixTemplateDirective, ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
|
|
10
10
|
import * as i7 from '@progress/kendo-angular-utils';
|
|
11
11
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
|
12
12
|
import * as i8 from '@angular/forms';
|
|
13
|
-
import { NgControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
13
|
+
import { NgControl, NG_VALUE_ACCESSOR, TouchedChangeEvent, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
14
14
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
15
15
|
import { getter as getter$1, touchEnabled, pointers } from '@progress/kendo-common';
|
|
16
16
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
17
17
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
18
18
|
import { Subscription, merge, fromEvent, Subject, of, interval } from 'rxjs';
|
|
19
|
-
import { map,
|
|
19
|
+
import { map, auditTime, tap, take, filter, partition, throttleTime, catchError, skipWhile, concatMap, takeUntil, debounceTime } from 'rxjs/operators';
|
|
20
20
|
import * as i2 from '@progress/kendo-angular-popup';
|
|
21
21
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
22
22
|
import { NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
@@ -37,8 +37,8 @@ const packageMetadata = {
|
|
|
37
37
|
productName: 'Kendo UI for Angular',
|
|
38
38
|
productCode: 'KENDOUIANGULAR',
|
|
39
39
|
productCodes: ['KENDOUIANGULAR'],
|
|
40
|
-
publishDate:
|
|
41
|
-
version: '25.1.0-develop.
|
|
40
|
+
publishDate: 1787918880,
|
|
41
|
+
version: '25.1.0-develop.17',
|
|
42
42
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
43
43
|
};
|
|
44
44
|
|
|
@@ -403,7 +403,7 @@ const isTruthy = (value) => !!value;
|
|
|
403
403
|
* @hidden
|
|
404
404
|
*/
|
|
405
405
|
const setListBoxAriaLabelledBy = (optionsList, element, renderer) => {
|
|
406
|
-
const listBox = optionsList
|
|
406
|
+
const listBox = optionsList?.wrapper.nativeElement.querySelector('kendo-list ul');
|
|
407
407
|
const ariaLabel = element.nativeElement.getAttribute('aria-labelledby') || element.nativeElement.getAttribute('data-kendo-label-id');
|
|
408
408
|
if (ariaLabel) {
|
|
409
409
|
renderer.setAttribute(listBox, 'aria-labelledby', ariaLabel);
|
|
@@ -2059,11 +2059,10 @@ class ListComponent {
|
|
|
2059
2059
|
this.renderer = renderer;
|
|
2060
2060
|
this.localization = localization;
|
|
2061
2061
|
this.injector = injector;
|
|
2062
|
-
this.selectSubscription = merge(this.selectionService.onSelect.pipe(map((args) => args.indices[0])), this.selectionService.onFocus)
|
|
2063
|
-
.
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
.subscribe(this.scrollToItem.bind(this));
|
|
2062
|
+
this.selectSubscription = merge(this.selectionService.onSelect.pipe(map((args) => args.indices[0])), this.selectionService.onFocus).subscribe((index) => {
|
|
2063
|
+
this.scrollToItem(index);
|
|
2064
|
+
this.cdr.markForCheck();
|
|
2065
|
+
});
|
|
2067
2066
|
this.prepareClasses();
|
|
2068
2067
|
this.initSelectAllCheckboxState();
|
|
2069
2068
|
}
|
|
@@ -3523,11 +3522,21 @@ class Messages extends ComponentMessages {
|
|
|
3523
3522
|
/**
|
|
3524
3523
|
* The text displayed in the popup when there are no items.
|
|
3525
3524
|
*/
|
|
3526
|
-
noDataText
|
|
3525
|
+
set noDataText(value) {
|
|
3526
|
+
this._noDataText.set(value);
|
|
3527
|
+
}
|
|
3528
|
+
get noDataText() {
|
|
3529
|
+
return this._noDataText();
|
|
3530
|
+
}
|
|
3527
3531
|
/**
|
|
3528
3532
|
* The title of the clear button.
|
|
3529
3533
|
*/
|
|
3530
|
-
clearTitle
|
|
3534
|
+
set clearTitle(value) {
|
|
3535
|
+
this._clearTitle.set(value);
|
|
3536
|
+
}
|
|
3537
|
+
get clearTitle() {
|
|
3538
|
+
return this._clearTitle();
|
|
3539
|
+
}
|
|
3531
3540
|
/**
|
|
3532
3541
|
* The text of the Select All item in the popup.
|
|
3533
3542
|
*/
|
|
@@ -3535,33 +3544,89 @@ class Messages extends ComponentMessages {
|
|
|
3535
3544
|
/**
|
|
3536
3545
|
* The text of the Check All checkbox label in the tree popup.
|
|
3537
3546
|
*/
|
|
3538
|
-
checkAllText
|
|
3547
|
+
set checkAllText(value) {
|
|
3548
|
+
this._checkAllText.set(value);
|
|
3549
|
+
}
|
|
3550
|
+
get checkAllText() {
|
|
3551
|
+
return this._checkAllText();
|
|
3552
|
+
}
|
|
3539
3553
|
/**
|
|
3540
3554
|
* The text set as aria-label on the select button. Available for DropDownList, ComboBox, MultiColumnComboBox, and DropDownTree.
|
|
3541
3555
|
*/
|
|
3542
|
-
selectButtonText
|
|
3556
|
+
set selectButtonText(value) {
|
|
3557
|
+
this._selectButtonText.set(value);
|
|
3558
|
+
}
|
|
3559
|
+
get selectButtonText() {
|
|
3560
|
+
return this._selectButtonText();
|
|
3561
|
+
}
|
|
3543
3562
|
/**
|
|
3544
3563
|
* The text set as aria-label on the list filter input. Available for DropDownList, DropDownTree, and MultiSelectTree.
|
|
3545
3564
|
*/
|
|
3546
|
-
filterInputLabel
|
|
3565
|
+
set filterInputLabel(value) {
|
|
3566
|
+
this._filterInputLabel.set(value);
|
|
3567
|
+
}
|
|
3568
|
+
get filterInputLabel() {
|
|
3569
|
+
return this._filterInputLabel();
|
|
3570
|
+
}
|
|
3547
3571
|
/**
|
|
3548
3572
|
* The text set as aria-label on the popup containing the list of options when its role is `region`.
|
|
3549
3573
|
*/
|
|
3550
|
-
popupLabel
|
|
3574
|
+
set popupLabel(value) {
|
|
3575
|
+
this._popupLabel.set(value);
|
|
3576
|
+
}
|
|
3577
|
+
get popupLabel() {
|
|
3578
|
+
return this._popupLabel();
|
|
3579
|
+
}
|
|
3551
3580
|
/**
|
|
3552
3581
|
* The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
|
|
3553
3582
|
*/
|
|
3554
|
-
adaptiveCloseButtonTitle
|
|
3583
|
+
set adaptiveCloseButtonTitle(value) {
|
|
3584
|
+
this._adaptiveCloseButtonTitle.set(value);
|
|
3585
|
+
}
|
|
3586
|
+
get adaptiveCloseButtonTitle() {
|
|
3587
|
+
return this._adaptiveCloseButtonTitle();
|
|
3588
|
+
}
|
|
3555
3589
|
/**
|
|
3556
3590
|
* The text for the input's placeholder when filtering is enabled. Available for DropDownTree and MultiSelectTree.
|
|
3557
3591
|
*/
|
|
3558
|
-
filterInputPlaceholder
|
|
3592
|
+
set filterInputPlaceholder(value) {
|
|
3593
|
+
this._filterInputPlaceholder.set(value);
|
|
3594
|
+
}
|
|
3595
|
+
get filterInputPlaceholder() {
|
|
3596
|
+
return this._filterInputPlaceholder();
|
|
3597
|
+
}
|
|
3598
|
+
/**
|
|
3599
|
+
* The accessible label of the listbox that contains the list of options. Available for DropDownList, ComboBox, MultiColumnComboBox, AutoComplete, and MultiSelect.
|
|
3600
|
+
*/
|
|
3601
|
+
set listboxLabel(value) {
|
|
3602
|
+
this._listboxLabel.set(value);
|
|
3603
|
+
}
|
|
3604
|
+
;
|
|
3605
|
+
get listboxLabel() {
|
|
3606
|
+
return this._listboxLabel();
|
|
3607
|
+
}
|
|
3608
|
+
/**
|
|
3609
|
+
* The accessible label of the input element. Available for MultiSelectTree.
|
|
3610
|
+
*/
|
|
3611
|
+
set inputLabel(value) {
|
|
3612
|
+
this._inputLabel.set(value);
|
|
3613
|
+
}
|
|
3614
|
+
;
|
|
3615
|
+
get inputLabel() {
|
|
3616
|
+
return this._inputLabel();
|
|
3617
|
+
}
|
|
3559
3618
|
/**
|
|
3560
3619
|
* The accessible label of the tag list element that contains the selected items. Available for MultiSelect and MultiSelectTree.
|
|
3561
3620
|
*/
|
|
3562
|
-
chipListLabel
|
|
3621
|
+
set chipListLabel(value) {
|
|
3622
|
+
this._chipListLabel.set(value);
|
|
3623
|
+
}
|
|
3624
|
+
;
|
|
3625
|
+
get chipListLabel() {
|
|
3626
|
+
return this._chipListLabel();
|
|
3627
|
+
}
|
|
3563
3628
|
/**
|
|
3564
|
-
|
|
3629
|
+
* The text displayed when the user types a custom value that is not in the list of options. Available for ComboBox and MultiSelect.
|
|
3565
3630
|
*
|
|
3566
3631
|
* The text includes a localizable string and the custom value.
|
|
3567
3632
|
* For example, when adding a custom value **Test**, the default text is **Use "Test"**.
|
|
@@ -3569,17 +3634,26 @@ class Messages extends ComponentMessages {
|
|
|
3569
3634
|
* You can reorder the custom value and the localizable part by using a placeholder in `useCustomValueText`.
|
|
3570
3635
|
* Use `{customValue}` to insert the value, for example, **Add: {customValue}**.
|
|
3571
3636
|
*/
|
|
3572
|
-
useCustomValueText
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
|
|
3637
|
+
set useCustomValueText(value) {
|
|
3638
|
+
this._useCustomValueText.set(value);
|
|
3639
|
+
}
|
|
3640
|
+
get useCustomValueText() {
|
|
3641
|
+
return this._useCustomValueText();
|
|
3642
|
+
}
|
|
3643
|
+
_noDataText = signal(undefined, ...(ngDevMode ? [{ debugName: "_noDataText" }] : []));
|
|
3644
|
+
_clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
|
|
3645
|
+
_checkAllText = signal(undefined, ...(ngDevMode ? [{ debugName: "_checkAllText" }] : []));
|
|
3646
|
+
_selectButtonText = signal(undefined, ...(ngDevMode ? [{ debugName: "_selectButtonText" }] : []));
|
|
3647
|
+
_filterInputLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterInputLabel" }] : []));
|
|
3648
|
+
_popupLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_popupLabel" }] : []));
|
|
3649
|
+
_adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
|
|
3650
|
+
_filterInputPlaceholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterInputPlaceholder" }] : []));
|
|
3651
|
+
_useCustomValueText = signal(undefined, ...(ngDevMode ? [{ debugName: "_useCustomValueText" }] : []));
|
|
3652
|
+
_listboxLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_listboxLabel" }] : []));
|
|
3653
|
+
_inputLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputLabel" }] : []));
|
|
3654
|
+
_chipListLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_chipListLabel" }] : []));
|
|
3581
3655
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
3582
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", selectAllText: "selectAllText", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder",
|
|
3656
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", selectAllText: "selectAllText", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder", listboxLabel: "listboxLabel", inputLabel: "inputLabel", chipListLabel: "chipListLabel", useCustomValueText: "useCustomValueText" }, usesInheritance: true, ngImport: i0 });
|
|
3583
3657
|
}
|
|
3584
3658
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, decorators: [{
|
|
3585
3659
|
type: Directive
|
|
@@ -3601,14 +3675,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
3601
3675
|
type: Input
|
|
3602
3676
|
}], filterInputPlaceholder: [{
|
|
3603
3677
|
type: Input
|
|
3604
|
-
}], chipListLabel: [{
|
|
3605
|
-
type: Input
|
|
3606
|
-
}], useCustomValueText: [{
|
|
3607
|
-
type: Input
|
|
3608
3678
|
}], listboxLabel: [{
|
|
3609
3679
|
type: Input
|
|
3610
3680
|
}], inputLabel: [{
|
|
3611
3681
|
type: Input
|
|
3682
|
+
}], chipListLabel: [{
|
|
3683
|
+
type: Input
|
|
3684
|
+
}], useCustomValueText: [{
|
|
3685
|
+
type: Input
|
|
3612
3686
|
}] } });
|
|
3613
3687
|
|
|
3614
3688
|
/**
|
|
@@ -3785,7 +3859,7 @@ class AutoCompleteComponent {
|
|
|
3785
3859
|
*/
|
|
3786
3860
|
toggle(open) {
|
|
3787
3861
|
Promise.resolve(null).then(() => {
|
|
3788
|
-
const shouldOpen = isPresent(open) ? open : !this._open;
|
|
3862
|
+
const shouldOpen = isPresent(open) ? open : !this._open();
|
|
3789
3863
|
this._toggle(shouldOpen);
|
|
3790
3864
|
});
|
|
3791
3865
|
}
|
|
@@ -3793,7 +3867,7 @@ class AutoCompleteComponent {
|
|
|
3793
3867
|
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
3794
3868
|
*/
|
|
3795
3869
|
get isOpen() {
|
|
3796
|
-
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
3870
|
+
return isTruthy(this._open() || this.isActionSheetExpanded);
|
|
3797
3871
|
}
|
|
3798
3872
|
/**
|
|
3799
3873
|
* @hidden
|
|
@@ -3830,18 +3904,21 @@ class AutoCompleteComponent {
|
|
|
3830
3904
|
*
|
|
3831
3905
|
* @default true
|
|
3832
3906
|
*/
|
|
3833
|
-
highlightFirst
|
|
3907
|
+
set highlightFirst(value) { this._highlightFirst.set(value); }
|
|
3908
|
+
get highlightFirst() { return this._highlightFirst(); }
|
|
3834
3909
|
/**
|
|
3835
3910
|
* Shows or hides the current group sticky header when using grouped data.
|
|
3836
3911
|
* By default, the sticky header is displayed ([see example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/grouping#sticky-header)).
|
|
3837
3912
|
*
|
|
3838
3913
|
* @default true
|
|
3839
3914
|
*/
|
|
3840
|
-
showStickyHeader
|
|
3915
|
+
set showStickyHeader(value) { this._showStickyHeader.set(value); }
|
|
3916
|
+
get showStickyHeader() { return this._showStickyHeader(); }
|
|
3841
3917
|
/**
|
|
3842
3918
|
* @hidden
|
|
3843
3919
|
*/
|
|
3844
|
-
focusableId
|
|
3920
|
+
set focusableId(value) { this._focusableId.set(value); }
|
|
3921
|
+
get focusableId() { return this._focusableId(); }
|
|
3845
3922
|
/**
|
|
3846
3923
|
* Sets the data of the AutoComplete.
|
|
3847
3924
|
*
|
|
@@ -3875,12 +3952,11 @@ class AutoCompleteComponent {
|
|
|
3875
3952
|
*/
|
|
3876
3953
|
set value(newValue) {
|
|
3877
3954
|
this.verifySettings(newValue);
|
|
3878
|
-
this._value
|
|
3955
|
+
this._value.set(newValue || NO_VALUE);
|
|
3879
3956
|
this.text = this.value;
|
|
3880
|
-
this.cdr.markForCheck();
|
|
3881
3957
|
}
|
|
3882
3958
|
get value() {
|
|
3883
|
-
return this._value || NO_VALUE;
|
|
3959
|
+
return this._value() || NO_VALUE;
|
|
3884
3960
|
}
|
|
3885
3961
|
/**
|
|
3886
3962
|
* Specifies the `string` property of the data item that represents the item value.
|
|
@@ -3888,31 +3964,36 @@ class AutoCompleteComponent {
|
|
|
3888
3964
|
*
|
|
3889
3965
|
* > The `valueField` property can be set to point to a nested property value - e.g. `category.name`.
|
|
3890
3966
|
*/
|
|
3891
|
-
valueField;
|
|
3967
|
+
set valueField(value) { this._valueField.set(value); }
|
|
3968
|
+
get valueField() { return this._valueField(); }
|
|
3892
3969
|
/**
|
|
3893
3970
|
* Sets the placeholder of the AutoComplete.
|
|
3894
3971
|
*
|
|
3895
3972
|
* @default ""
|
|
3896
3973
|
*/
|
|
3897
|
-
placeholder
|
|
3974
|
+
set placeholder(value) { this._placeholder.set(value); }
|
|
3975
|
+
get placeholder() { return this._placeholder(); }
|
|
3898
3976
|
/**
|
|
3899
3977
|
* Enables or disables the adaptive mode. By default, the adaptive rendering is disabled.
|
|
3900
3978
|
*
|
|
3901
3979
|
* @default 'none'
|
|
3902
3980
|
*/
|
|
3903
|
-
adaptiveMode
|
|
3981
|
+
set adaptiveMode(value) { this._adaptiveMode.set(value); }
|
|
3982
|
+
get adaptiveMode() { return this._adaptiveMode(); }
|
|
3904
3983
|
/**
|
|
3905
3984
|
* Sets the title of the ActionSheet that renders instead of the Popup when using small screen devices.
|
|
3906
3985
|
* By default, the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
3907
3986
|
*
|
|
3908
3987
|
* @default ''
|
|
3909
3988
|
*/
|
|
3910
|
-
adaptiveTitle
|
|
3989
|
+
set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
|
|
3990
|
+
get adaptiveTitle() { return this._adaptiveTitle(); }
|
|
3911
3991
|
/**
|
|
3912
3992
|
* Sets the subtitle of the ActionSheet that renders instead of the Popup when using small screen devices.
|
|
3913
3993
|
* By default, the ActionSheet does not render a subtitle.
|
|
3914
3994
|
*/
|
|
3915
|
-
adaptiveSubtitle;
|
|
3995
|
+
set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
|
|
3996
|
+
get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
|
|
3916
3997
|
/**
|
|
3917
3998
|
* @hidden
|
|
3918
3999
|
*/
|
|
@@ -3930,10 +4011,10 @@ class AutoCompleteComponent {
|
|
|
3930
4011
|
* - `appendTo: "root" | "component" | ViewContainerRef`—Specifies the component to which the popup will be appended.
|
|
3931
4012
|
*/
|
|
3932
4013
|
set popupSettings(settings) {
|
|
3933
|
-
this._popupSettings
|
|
4014
|
+
this._popupSettings.set(Object.assign({ animate: true }, settings));
|
|
3934
4015
|
}
|
|
3935
4016
|
get popupSettings() {
|
|
3936
|
-
return this._popupSettings;
|
|
4017
|
+
return this._popupSettings();
|
|
3937
4018
|
}
|
|
3938
4019
|
/**
|
|
3939
4020
|
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
@@ -3945,21 +4026,21 @@ class AutoCompleteComponent {
|
|
|
3945
4026
|
* @default 200
|
|
3946
4027
|
*/
|
|
3947
4028
|
set listHeight(_listHeight) {
|
|
3948
|
-
this._listHeight
|
|
4029
|
+
this._listHeight.set(_listHeight);
|
|
3949
4030
|
}
|
|
3950
4031
|
get listHeight() {
|
|
3951
4032
|
if (this.isAdaptive) {
|
|
3952
4033
|
return;
|
|
3953
4034
|
}
|
|
3954
|
-
return this._listHeight;
|
|
4035
|
+
return this._listHeight();
|
|
3955
4036
|
}
|
|
3956
|
-
_listHeight = 200;
|
|
3957
4037
|
/**
|
|
3958
4038
|
* Sets and gets the loading state of the AutoComplete.
|
|
3959
4039
|
*
|
|
3960
4040
|
* @default false
|
|
3961
4041
|
*/
|
|
3962
|
-
loading;
|
|
4042
|
+
set loading(value) { this._loading.set(value); }
|
|
4043
|
+
get loading() { return this._loading(); }
|
|
3963
4044
|
/**
|
|
3964
4045
|
* @hidden
|
|
3965
4046
|
*
|
|
@@ -3968,19 +4049,22 @@ class AutoCompleteComponent {
|
|
|
3968
4049
|
*
|
|
3969
4050
|
* @default true
|
|
3970
4051
|
*/
|
|
3971
|
-
clearButton
|
|
4052
|
+
set clearButton(value) { this._clearButton.set(value); }
|
|
4053
|
+
get clearButton() { return this._clearButton(); }
|
|
3972
4054
|
/**
|
|
3973
4055
|
* Enables the auto-completion of the text based on the first data item.
|
|
3974
4056
|
*
|
|
3975
4057
|
* @default false
|
|
3976
4058
|
*/
|
|
3977
|
-
suggest;
|
|
4059
|
+
set suggest(value) { this._suggest.set(value); }
|
|
4060
|
+
get suggest() { return this._suggest(); }
|
|
3978
4061
|
/**
|
|
3979
4062
|
* Sets the disabled state of the component. To learn how to disable the component in reactive forms, refer to the article on [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/forms#managing-the-autocomplete-disabled-state-in-reactive-forms).
|
|
3980
4063
|
*
|
|
3981
4064
|
* @default false
|
|
3982
4065
|
*/
|
|
3983
|
-
disabled
|
|
4066
|
+
set disabled(value) { this._disabled.set(value); }
|
|
4067
|
+
get disabled() { return this._disabled(); }
|
|
3984
4068
|
/**
|
|
3985
4069
|
* Defines a Boolean function that is executed for each data item in the component
|
|
3986
4070
|
* ([see examples](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/disabled-items)).
|
|
@@ -3997,13 +4081,15 @@ class AutoCompleteComponent {
|
|
|
3997
4081
|
*
|
|
3998
4082
|
* @default false
|
|
3999
4083
|
*/
|
|
4000
|
-
readonly
|
|
4084
|
+
set readonly(value) { this._readonly.set(value); }
|
|
4085
|
+
get readonly() { return this._readonly(); }
|
|
4001
4086
|
/**
|
|
4002
4087
|
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
4003
4088
|
*
|
|
4004
4089
|
* @default 0
|
|
4005
4090
|
*/
|
|
4006
|
-
tabindex
|
|
4091
|
+
set tabindex(value) { this._tabindex.set(value); }
|
|
4092
|
+
get tabindex() { return this._tabindex(); }
|
|
4007
4093
|
/**
|
|
4008
4094
|
* @hidden
|
|
4009
4095
|
*/
|
|
@@ -4019,17 +4105,18 @@ class AutoCompleteComponent {
|
|
|
4019
4105
|
*
|
|
4020
4106
|
* @default false
|
|
4021
4107
|
*/
|
|
4022
|
-
filterable
|
|
4108
|
+
set filterable(value) { this._filterable.set(value); }
|
|
4109
|
+
get filterable() { return this._filterable(); }
|
|
4023
4110
|
/**
|
|
4024
4111
|
* Enables the [virtualization](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/virtualization) functionality.
|
|
4025
4112
|
*
|
|
4026
4113
|
* @default false
|
|
4027
4114
|
*/
|
|
4028
4115
|
set virtual(settings) {
|
|
4029
|
-
this._virtualSettings
|
|
4116
|
+
this._virtualSettings.set(normalizeVirtualizationSettings(settings));
|
|
4030
4117
|
}
|
|
4031
4118
|
get virtual() {
|
|
4032
|
-
return this._virtualSettings;
|
|
4119
|
+
return this._virtualSettings();
|
|
4033
4120
|
}
|
|
4034
4121
|
/**
|
|
4035
4122
|
* Sets the size of the component. The default value is set by the Kendo theme.
|
|
@@ -4039,10 +4126,10 @@ class AutoCompleteComponent {
|
|
|
4039
4126
|
if (size) {
|
|
4040
4127
|
this.renderer.addClass(this.wrapper, getSizeClass('input', size));
|
|
4041
4128
|
}
|
|
4042
|
-
this._size
|
|
4129
|
+
this._size.set(size);
|
|
4043
4130
|
}
|
|
4044
4131
|
get size() {
|
|
4045
|
-
return this._size;
|
|
4132
|
+
return this._size();
|
|
4046
4133
|
}
|
|
4047
4134
|
/**
|
|
4048
4135
|
* Sets the border radius of the component. The default value is set by the Kendo theme.
|
|
@@ -4052,10 +4139,10 @@ class AutoCompleteComponent {
|
|
|
4052
4139
|
if (rounded) {
|
|
4053
4140
|
this.renderer.addClass(this.wrapper, getRoundedClass(rounded));
|
|
4054
4141
|
}
|
|
4055
|
-
this._rounded
|
|
4142
|
+
this._rounded.set(rounded);
|
|
4056
4143
|
}
|
|
4057
4144
|
get rounded() {
|
|
4058
|
-
return this._rounded;
|
|
4145
|
+
return this._rounded();
|
|
4059
4146
|
}
|
|
4060
4147
|
/**
|
|
4061
4148
|
* Sets the fillMode of the component. The default value is set by the Kendo theme.
|
|
@@ -4065,10 +4152,10 @@ class AutoCompleteComponent {
|
|
|
4065
4152
|
if (fillMode) {
|
|
4066
4153
|
this.renderer.addClass(this.wrapper, getFillModeClass('input', fillMode));
|
|
4067
4154
|
}
|
|
4068
|
-
this._fillMode
|
|
4155
|
+
this._fillMode.set(fillMode);
|
|
4069
4156
|
}
|
|
4070
4157
|
get fillMode() {
|
|
4071
|
-
return this._fillMode;
|
|
4158
|
+
return this._fillMode();
|
|
4072
4159
|
}
|
|
4073
4160
|
/**
|
|
4074
4161
|
* Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
|
|
@@ -4076,7 +4163,8 @@ class AutoCompleteComponent {
|
|
|
4076
4163
|
* @remarks
|
|
4077
4164
|
* This property is related to accessibility.
|
|
4078
4165
|
*/
|
|
4079
|
-
inputAttributes;
|
|
4166
|
+
set inputAttributes(value) { this._inputAttributes.set(value); }
|
|
4167
|
+
get inputAttributes() { return this._inputAttributes(); }
|
|
4080
4168
|
/**
|
|
4081
4169
|
* Fires each time the value changes—
|
|
4082
4170
|
* when the component is blurred or the value is cleared through the **Clear** button
|
|
@@ -4160,7 +4248,8 @@ class AutoCompleteComponent {
|
|
|
4160
4248
|
get dir() {
|
|
4161
4249
|
return this.direction;
|
|
4162
4250
|
}
|
|
4163
|
-
text;
|
|
4251
|
+
get text() { return this._text(); }
|
|
4252
|
+
set text(value) { this._text.set(value); }
|
|
4164
4253
|
listBoxId = `k-${guid()}`;
|
|
4165
4254
|
optionPrefix = `k-${guid()}`;
|
|
4166
4255
|
popupRef;
|
|
@@ -4225,6 +4314,14 @@ class AutoCompleteComponent {
|
|
|
4225
4314
|
ngAfterViewInit() {
|
|
4226
4315
|
this.windowSize = this.adaptiveService.size;
|
|
4227
4316
|
this.cdr.detectChanges();
|
|
4317
|
+
const control = this.formControl;
|
|
4318
|
+
if (control && control.events) {
|
|
4319
|
+
this.subs.add(control.events.subscribe(e => {
|
|
4320
|
+
if (e instanceof TouchedChangeEvent) {
|
|
4321
|
+
this.cdr.markForCheck();
|
|
4322
|
+
}
|
|
4323
|
+
}));
|
|
4324
|
+
}
|
|
4228
4325
|
}
|
|
4229
4326
|
ngOnDestroy() {
|
|
4230
4327
|
this.destroyPopup();
|
|
@@ -4288,7 +4385,6 @@ class AutoCompleteComponent {
|
|
|
4288
4385
|
* @hidden
|
|
4289
4386
|
*/
|
|
4290
4387
|
setDisabledState(isDisabled) {
|
|
4291
|
-
this.cdr.markForCheck();
|
|
4292
4388
|
this.disabled = isDisabled;
|
|
4293
4389
|
}
|
|
4294
4390
|
/**
|
|
@@ -4332,7 +4428,7 @@ class AutoCompleteComponent {
|
|
|
4332
4428
|
this.windowSize = currentWindowSize;
|
|
4333
4429
|
this.cdr.detectChanges();
|
|
4334
4430
|
}
|
|
4335
|
-
if (this._open && !this.isActionSheetExpanded) {
|
|
4431
|
+
if (this._open() && !this.isActionSheetExpanded) {
|
|
4336
4432
|
const popupWrapper = this.popupRef.popupElement;
|
|
4337
4433
|
const { min, max } = this.width;
|
|
4338
4434
|
popupWrapper.style.minWidth = min;
|
|
@@ -4373,6 +4469,7 @@ class AutoCompleteComponent {
|
|
|
4373
4469
|
return;
|
|
4374
4470
|
}
|
|
4375
4471
|
this.selectionService.focus(index);
|
|
4472
|
+
this.cdr.markForCheck();
|
|
4376
4473
|
}
|
|
4377
4474
|
/**
|
|
4378
4475
|
* @hidden
|
|
@@ -4548,10 +4645,11 @@ class AutoCompleteComponent {
|
|
|
4548
4645
|
this.valueChangeSubject.next(value);
|
|
4549
4646
|
}
|
|
4550
4647
|
popupMouseDownHandler = (event) => event.preventDefault();
|
|
4551
|
-
_popupSettings = { animate: true };
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4648
|
+
_popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
|
|
4649
|
+
_listHeight = signal(200, ...(ngDevMode ? [{ debugName: "_listHeight" }] : []));
|
|
4650
|
+
_virtualSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_virtualSettings" }] : []));
|
|
4651
|
+
_open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : []));
|
|
4652
|
+
_value = signal("", ...(ngDevMode ? [{ debugName: "_value" }] : []));
|
|
4555
4653
|
suggestedText;
|
|
4556
4654
|
backspacePressed;
|
|
4557
4655
|
subs = new Subscription();
|
|
@@ -4560,9 +4658,26 @@ class AutoCompleteComponent {
|
|
|
4560
4658
|
wrapper;
|
|
4561
4659
|
_isFocused = false;
|
|
4562
4660
|
direction;
|
|
4563
|
-
_size = undefined;
|
|
4564
|
-
_rounded = undefined;
|
|
4565
|
-
_fillMode = undefined;
|
|
4661
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
4662
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
|
|
4663
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
|
|
4664
|
+
_highlightFirst = signal(true, ...(ngDevMode ? [{ debugName: "_highlightFirst" }] : []));
|
|
4665
|
+
_text = signal(undefined, ...(ngDevMode ? [{ debugName: "_text" }] : []));
|
|
4666
|
+
_showStickyHeader = signal(true, ...(ngDevMode ? [{ debugName: "_showStickyHeader" }] : []));
|
|
4667
|
+
_focusableId = signal(`k-${guid()}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
|
|
4668
|
+
_valueField = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueField" }] : []));
|
|
4669
|
+
_placeholder = signal("", ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
|
|
4670
|
+
_adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
|
|
4671
|
+
_adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
|
|
4672
|
+
_adaptiveSubtitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
|
|
4673
|
+
_loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
|
|
4674
|
+
_clearButton = signal(true, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
|
|
4675
|
+
_suggest = signal(undefined, ...(ngDevMode ? [{ debugName: "_suggest" }] : []));
|
|
4676
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
4677
|
+
_readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
|
|
4678
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
|
|
4679
|
+
_filterable = signal(false, ...(ngDevMode ? [{ debugName: "_filterable" }] : []));
|
|
4680
|
+
_inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
|
|
4566
4681
|
subscribeEvents() {
|
|
4567
4682
|
if (!isDocumentAvailable()) {
|
|
4568
4683
|
return;
|
|
@@ -4692,13 +4807,13 @@ class AutoCompleteComponent {
|
|
|
4692
4807
|
}
|
|
4693
4808
|
}
|
|
4694
4809
|
_toggle(open) {
|
|
4695
|
-
this._open
|
|
4810
|
+
this._open.set(open);
|
|
4696
4811
|
this.destroyPopup();
|
|
4697
4812
|
if (this.isActionSheetExpanded) {
|
|
4698
4813
|
this.actionSheet.toggle(false);
|
|
4699
4814
|
this.focus();
|
|
4700
4815
|
}
|
|
4701
|
-
if (this._open) {
|
|
4816
|
+
if (this._open()) {
|
|
4702
4817
|
this.createPopup();
|
|
4703
4818
|
}
|
|
4704
4819
|
}
|
|
@@ -4970,11 +5085,13 @@ class AutoCompleteComponent {
|
|
|
4970
5085
|
</ng-template>
|
|
4971
5086
|
}
|
|
4972
5087
|
</ng-template>
|
|
4973
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
5088
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4974
5089
|
}
|
|
4975
5090
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
4976
5091
|
type: Component,
|
|
4977
5092
|
args: [{
|
|
5093
|
+
selector: 'kendo-autocomplete',
|
|
5094
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4978
5095
|
exportAs: 'kendoAutoComplete',
|
|
4979
5096
|
providers: [
|
|
4980
5097
|
AUTOCOMPLETE_VALUE_ACCESSOR,
|
|
@@ -4998,7 +5115,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
4998
5115
|
{ provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => AutoCompleteComponent) },
|
|
4999
5116
|
provideComponentName('autocomplete')
|
|
5000
5117
|
],
|
|
5001
|
-
selector: 'kendo-autocomplete',
|
|
5002
5118
|
template: `
|
|
5003
5119
|
<ng-container kendoAutoCompleteLocalizedMessages
|
|
5004
5120
|
i18n-noDataText="kendo.autocomplete.noDataText|The text displayed in the popup when there are no items"
|
|
@@ -5386,18 +5502,21 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5386
5502
|
/**
|
|
5387
5503
|
* @hidden
|
|
5388
5504
|
*/
|
|
5389
|
-
icon;
|
|
5505
|
+
set icon(value) { this._icon.set(value); }
|
|
5506
|
+
get icon() { return this._icon(); }
|
|
5390
5507
|
/**
|
|
5391
5508
|
* @hidden
|
|
5392
5509
|
*/
|
|
5393
|
-
svgIcon;
|
|
5510
|
+
set svgIcon(value) { this._svgIcon.set(value); }
|
|
5511
|
+
get svgIcon() { return this._svgIcon(); }
|
|
5394
5512
|
/**
|
|
5395
5513
|
* Sets the HTML attributes of the inner focusable input element. Attributes essential for certain component functionalities cannot be changed.
|
|
5396
5514
|
*
|
|
5397
5515
|
* @remarks
|
|
5398
5516
|
* This property is related to accessibility.
|
|
5399
5517
|
*/
|
|
5400
|
-
inputAttributes;
|
|
5518
|
+
set inputAttributes(value) { this._inputAttributes.set(value); }
|
|
5519
|
+
get inputAttributes() { return this._inputAttributes(); }
|
|
5401
5520
|
/**
|
|
5402
5521
|
* @hidden
|
|
5403
5522
|
*/
|
|
@@ -5427,10 +5546,10 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5427
5546
|
*/
|
|
5428
5547
|
chevronDownIcon = chevronDownIcon;
|
|
5429
5548
|
set text(text) {
|
|
5430
|
-
this._text
|
|
5549
|
+
this._text.set(isPresent(text) ? text.toString() : "");
|
|
5431
5550
|
}
|
|
5432
5551
|
get text() {
|
|
5433
|
-
return this._text;
|
|
5552
|
+
return this._text();
|
|
5434
5553
|
}
|
|
5435
5554
|
/**
|
|
5436
5555
|
* @hidden
|
|
@@ -5478,11 +5597,13 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5478
5597
|
* By default the sticky header is displayed ([see example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/grouping#sticky-header)).
|
|
5479
5598
|
* @default true
|
|
5480
5599
|
*/
|
|
5481
|
-
showStickyHeader
|
|
5600
|
+
set showStickyHeader(value) { this._showStickyHeader.set(value); }
|
|
5601
|
+
get showStickyHeader() { return this._showStickyHeader(); }
|
|
5482
5602
|
/**
|
|
5483
5603
|
* @hidden
|
|
5484
5604
|
*/
|
|
5485
|
-
focusableId
|
|
5605
|
+
set focusableId(value) { this._focusableId.set(value); }
|
|
5606
|
+
get focusableId() { return this._focusableId(); }
|
|
5486
5607
|
/**
|
|
5487
5608
|
* Specifies whether the ComboBox allows user-defined values that are not present in the dataset
|
|
5488
5609
|
* ([more information and examples](https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/custom-values)).
|
|
@@ -5491,7 +5612,8 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5491
5612
|
* The feature is not available when using adaptive mode.
|
|
5492
5613
|
* @default false
|
|
5493
5614
|
*/
|
|
5494
|
-
allowCustom
|
|
5615
|
+
set allowCustom(value) { this._allowCustom.set(value); }
|
|
5616
|
+
get allowCustom() { return this._allowCustom(); }
|
|
5495
5617
|
/**
|
|
5496
5618
|
* Sets the data of the ComboBox.
|
|
5497
5619
|
* The data must be provided in an array-like list.
|
|
@@ -5528,38 +5650,39 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5528
5650
|
* All selected values not present in the dataset are custom values. When the `Enter` key is pressed or the component loses focus, custom values are dismissed unless `allowCustom` is set to `true`.
|
|
5529
5651
|
*/
|
|
5530
5652
|
set value(newValue) {
|
|
5531
|
-
this._value
|
|
5653
|
+
this._value.set(newValue);
|
|
5532
5654
|
this.setState();
|
|
5533
|
-
this.cdr.markForCheck();
|
|
5534
5655
|
}
|
|
5535
5656
|
get value() {
|
|
5536
|
-
return this._value;
|
|
5657
|
+
return this._value();
|
|
5537
5658
|
}
|
|
5538
5659
|
/**
|
|
5539
5660
|
* Sets the data item field that represents the item text. If the data contains only primitive values, do not define this property.
|
|
5540
5661
|
*
|
|
5541
5662
|
* The `textField` property can be set to a nested property value, for example, `category.name`.
|
|
5542
5663
|
*/
|
|
5543
|
-
textField;
|
|
5664
|
+
set textField(value) { this._textField.set(value); }
|
|
5665
|
+
get textField() { return this._textField(); }
|
|
5544
5666
|
/**
|
|
5545
5667
|
* Sets the data item field that represents the item value.
|
|
5546
5668
|
* If the data contains only primitive values, do not define it.
|
|
5547
5669
|
*
|
|
5548
5670
|
* > The `valueField` property can be set to point to a nested property value - e.g. `category.id`.
|
|
5549
5671
|
*/
|
|
5550
|
-
valueField;
|
|
5672
|
+
set valueField(value) { this._valueField.set(value); }
|
|
5673
|
+
get valueField() { return this._valueField(); }
|
|
5551
5674
|
/**
|
|
5552
5675
|
* Specifies the type of the selected value. If set to `true`, the selected value must be a primitive type.
|
|
5553
5676
|
* ([more information and example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/value-binding#primitive-values-from-object-fields))
|
|
5554
5677
|
*/
|
|
5555
5678
|
set valuePrimitive(isPrimitive) {
|
|
5556
|
-
this._valuePrimitive
|
|
5679
|
+
this._valuePrimitive.set(isPrimitive);
|
|
5557
5680
|
}
|
|
5558
5681
|
get valuePrimitive() {
|
|
5559
|
-
if (!isPresent(this._valuePrimitive)) {
|
|
5682
|
+
if (!isPresent(this._valuePrimitive())) {
|
|
5560
5683
|
return !isPresent(this.valueField);
|
|
5561
5684
|
}
|
|
5562
|
-
return this._valuePrimitive;
|
|
5685
|
+
return this._valuePrimitive();
|
|
5563
5686
|
}
|
|
5564
5687
|
/**
|
|
5565
5688
|
* A user-defined callback which returns normalized custom values.
|
|
@@ -5604,27 +5727,32 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5604
5727
|
* }
|
|
5605
5728
|
* ```
|
|
5606
5729
|
*/
|
|
5607
|
-
valueNormalizer
|
|
5730
|
+
set valueNormalizer(fn) { this._valueNormalizer.set(fn); }
|
|
5731
|
+
get valueNormalizer() { return this._valueNormalizer(); }
|
|
5608
5732
|
/**
|
|
5609
5733
|
* The hint that is displayed when the component is empty.
|
|
5610
5734
|
* @default ''
|
|
5611
5735
|
*/
|
|
5612
|
-
placeholder
|
|
5736
|
+
set placeholder(value) { this._placeholder.set(value); }
|
|
5737
|
+
get placeholder() { return this._placeholder(); }
|
|
5613
5738
|
/**
|
|
5614
5739
|
* Enables or disables the adaptive mode. By default, adaptive rendering is disabled.
|
|
5615
5740
|
* @default 'none'
|
|
5616
5741
|
*/
|
|
5617
|
-
adaptiveMode
|
|
5742
|
+
set adaptiveMode(value) { this._adaptiveMode.set(value); }
|
|
5743
|
+
get adaptiveMode() { return this._adaptiveMode(); }
|
|
5618
5744
|
/**
|
|
5619
5745
|
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
5620
5746
|
* By default, the ActionSheet title uses the text provided for the label of the ComboBox.
|
|
5621
5747
|
* @default ''
|
|
5622
5748
|
*/
|
|
5623
|
-
adaptiveTitle
|
|
5749
|
+
set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
|
|
5750
|
+
get adaptiveTitle() { return this._adaptiveTitle(); }
|
|
5624
5751
|
/**
|
|
5625
5752
|
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices. By default, the ActionSheet does not render a subtitle.
|
|
5626
5753
|
*/
|
|
5627
|
-
adaptiveSubtitle;
|
|
5754
|
+
set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
|
|
5755
|
+
get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
|
|
5628
5756
|
/**
|
|
5629
5757
|
* @hidden
|
|
5630
5758
|
*/
|
|
@@ -5635,10 +5763,10 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5635
5763
|
* Configures the popup of the ComboBox.
|
|
5636
5764
|
*/
|
|
5637
5765
|
set popupSettings(settings) {
|
|
5638
|
-
this._popupSettings
|
|
5766
|
+
this._popupSettings.set(Object.assign({ animate: true }, settings));
|
|
5639
5767
|
}
|
|
5640
5768
|
get popupSettings() {
|
|
5641
|
-
return this._popupSettings;
|
|
5769
|
+
return this._popupSettings();
|
|
5642
5770
|
}
|
|
5643
5771
|
/**
|
|
5644
5772
|
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
@@ -5649,34 +5777,37 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5649
5777
|
* When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
5650
5778
|
*/
|
|
5651
5779
|
set listHeight(_listHeight) {
|
|
5652
|
-
this._listHeight
|
|
5780
|
+
this._listHeight.set(_listHeight);
|
|
5653
5781
|
}
|
|
5654
5782
|
get listHeight() {
|
|
5655
5783
|
if (this.isAdaptive) {
|
|
5656
5784
|
return;
|
|
5657
5785
|
}
|
|
5658
|
-
return this._listHeight;
|
|
5786
|
+
return this._listHeight();
|
|
5659
5787
|
}
|
|
5660
|
-
_listHeight = 200;
|
|
5661
5788
|
/**
|
|
5662
5789
|
* Sets and gets the loading state of the ComboBox.
|
|
5663
5790
|
*/
|
|
5664
|
-
loading;
|
|
5791
|
+
set loading(value) { this._loading.set(value); }
|
|
5792
|
+
get loading() { return this._loading(); }
|
|
5665
5793
|
/**
|
|
5666
5794
|
* Enables the auto-completion of the text based on the first data item.
|
|
5667
5795
|
* @default false
|
|
5668
5796
|
*/
|
|
5669
|
-
suggest
|
|
5797
|
+
set suggest(value) { this._suggest.set(value); }
|
|
5798
|
+
get suggest() { return this._suggest(); }
|
|
5670
5799
|
/**
|
|
5671
5800
|
* If set to `true`, renders a button on hovering over the component.
|
|
5672
5801
|
* Clicking this button resets the value of the component to `undefined` and triggers the `change` event.
|
|
5673
5802
|
* @default true
|
|
5674
5803
|
*/
|
|
5675
|
-
clearButton
|
|
5804
|
+
set clearButton(value) { this._clearButton.set(value); }
|
|
5805
|
+
get clearButton() { return this._clearButton(); }
|
|
5676
5806
|
/**
|
|
5677
5807
|
* Sets the disabled state of the component. To learn how to disable the component in reactive forms, refer to the articles on [ComboBox Forms Support](https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/forms#managing-the-combobox-disabled-state-in-reactive-forms) and [MultiColumnComboBox Forms Support](https://www.telerik.com/kendo-angular-ui/components/dropdowns/multicolumncombobox/forms#managing-the-multicolumncombobox-disabled-state-in-reactive-forms).
|
|
5678
5808
|
*/
|
|
5679
|
-
disabled
|
|
5809
|
+
set disabled(value) { this._disabled.set(value); }
|
|
5810
|
+
get disabled() { return this._disabled(); }
|
|
5680
5811
|
/**
|
|
5681
5812
|
* Defines a Boolean function that is executed for each data item in the component ([see examples](https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/disabled-items)). Determines whether the item is disabled.
|
|
5682
5813
|
*/
|
|
@@ -5690,13 +5821,15 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5690
5821
|
* Sets the read-only state of the component.
|
|
5691
5822
|
* @default false
|
|
5692
5823
|
*/
|
|
5693
|
-
readonly
|
|
5824
|
+
set readonly(value) { this._readonly.set(value); }
|
|
5825
|
+
get readonly() { return this._readonly(); }
|
|
5694
5826
|
/**
|
|
5695
5827
|
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
5696
5828
|
*
|
|
5697
5829
|
* @default 0
|
|
5698
5830
|
*/
|
|
5699
|
-
tabindex
|
|
5831
|
+
set tabindex(value) { this._tabindex.set(value); }
|
|
5832
|
+
get tabindex() { return this._tabindex(); }
|
|
5700
5833
|
/**
|
|
5701
5834
|
* @hidden
|
|
5702
5835
|
*/
|
|
@@ -5710,18 +5843,19 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5710
5843
|
* Enables the [filtering](https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/filtering) functionality.
|
|
5711
5844
|
* If set to `true`, the component emits the `filterChange` event.
|
|
5712
5845
|
*/
|
|
5713
|
-
filterable
|
|
5846
|
+
set filterable(value) { this._filterable.set(value); }
|
|
5847
|
+
get filterable() { return this._filterable(); }
|
|
5714
5848
|
/**
|
|
5715
5849
|
* Enables the [virtualization](https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/virtualization) functionality.
|
|
5716
5850
|
*/
|
|
5717
5851
|
set virtual(settings) {
|
|
5718
|
-
this._virtualSettings
|
|
5852
|
+
this._virtualSettings.set(normalizeVirtualizationSettings(settings, {
|
|
5719
5853
|
itemHeight: this.defaultVirtualItemHeight,
|
|
5720
5854
|
pageSize: this.defaultVirtualPageSize
|
|
5721
|
-
});
|
|
5855
|
+
}));
|
|
5722
5856
|
}
|
|
5723
5857
|
get virtual() {
|
|
5724
|
-
return this._virtualSettings;
|
|
5858
|
+
return this._virtualSettings();
|
|
5725
5859
|
}
|
|
5726
5860
|
/**
|
|
5727
5861
|
* Sets the size of the component. The default value is set by the Kendo theme.
|
|
@@ -5731,10 +5865,10 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5731
5865
|
if (size) {
|
|
5732
5866
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
|
|
5733
5867
|
}
|
|
5734
|
-
this._size
|
|
5868
|
+
this._size.set(size);
|
|
5735
5869
|
}
|
|
5736
5870
|
get size() {
|
|
5737
|
-
return this._size;
|
|
5871
|
+
return this._size();
|
|
5738
5872
|
}
|
|
5739
5873
|
/**
|
|
5740
5874
|
* Sets the border radius of the component. The default value is set by the Kendo theme.
|
|
@@ -5744,10 +5878,10 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5744
5878
|
if (rounded) {
|
|
5745
5879
|
this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
|
|
5746
5880
|
}
|
|
5747
|
-
this._rounded
|
|
5881
|
+
this._rounded.set(rounded);
|
|
5748
5882
|
}
|
|
5749
5883
|
get rounded() {
|
|
5750
|
-
return this._rounded;
|
|
5884
|
+
return this._rounded();
|
|
5751
5885
|
}
|
|
5752
5886
|
/**
|
|
5753
5887
|
* Sets the fillMode of the component. The default value is set by the Kendo theme.
|
|
@@ -5757,10 +5891,10 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5757
5891
|
if (fillMode) {
|
|
5758
5892
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
|
|
5759
5893
|
}
|
|
5760
|
-
this._fillMode
|
|
5894
|
+
this._fillMode.set(fillMode);
|
|
5761
5895
|
}
|
|
5762
5896
|
get fillMode() {
|
|
5763
|
-
return this._fillMode;
|
|
5897
|
+
return this._fillMode();
|
|
5764
5898
|
}
|
|
5765
5899
|
/**
|
|
5766
5900
|
* Fires each time the value is changed—
|
|
@@ -5906,29 +6040,50 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5906
6040
|
* Used for the default virtualization settings config.
|
|
5907
6041
|
*/
|
|
5908
6042
|
defaultVirtualPageSize = 50;
|
|
6043
|
+
subs = new Subscription();
|
|
5909
6044
|
valueSubscription;
|
|
5910
6045
|
_filtering = false;
|
|
5911
|
-
_text = '';
|
|
6046
|
+
_text = signal('', ...(ngDevMode ? [{ debugName: "_text" }] : []));
|
|
5912
6047
|
filterText = '';
|
|
5913
|
-
_open = false;
|
|
5914
|
-
_value;
|
|
5915
|
-
_valuePrimitive;
|
|
6048
|
+
_open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : []));
|
|
6049
|
+
_value = signal(undefined, ...(ngDevMode ? [{ debugName: "_value" }] : []));
|
|
6050
|
+
_valuePrimitive = signal(undefined, ...(ngDevMode ? [{ debugName: "_valuePrimitive" }] : []));
|
|
5916
6051
|
_previousDataItem;
|
|
5917
6052
|
suggestedText;
|
|
5918
6053
|
backspacePressed;
|
|
5919
|
-
_popupSettings = { animate: true };
|
|
5920
|
-
_virtualSettings;
|
|
6054
|
+
_popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
|
|
6055
|
+
_virtualSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_virtualSettings" }] : []));
|
|
5921
6056
|
popupMouseDownHandler = (event) => event.preventDefault();
|
|
5922
6057
|
customValueSubject = new Subject();
|
|
5923
6058
|
valueSubject = new Subject();
|
|
5924
6059
|
clearValueSubject = new Subject();
|
|
5925
6060
|
direction;
|
|
5926
|
-
subs = new Subscription();
|
|
5927
6061
|
touchstartDisposeHandler;
|
|
5928
6062
|
selectClickDisposeHandler;
|
|
5929
|
-
_size = undefined;
|
|
5930
|
-
_rounded = undefined;
|
|
5931
|
-
_fillMode = undefined;
|
|
6063
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
6064
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
|
|
6065
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
|
|
6066
|
+
_icon = signal(undefined, ...(ngDevMode ? [{ debugName: "_icon" }] : []));
|
|
6067
|
+
_svgIcon = signal(undefined, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : []));
|
|
6068
|
+
_inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
|
|
6069
|
+
_showStickyHeader = signal(true, ...(ngDevMode ? [{ debugName: "_showStickyHeader" }] : []));
|
|
6070
|
+
_focusableId = signal(`k-${guid()}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
|
|
6071
|
+
_allowCustom = signal(false, ...(ngDevMode ? [{ debugName: "_allowCustom" }] : []));
|
|
6072
|
+
_textField = signal(undefined, ...(ngDevMode ? [{ debugName: "_textField" }] : []));
|
|
6073
|
+
_valueField = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueField" }] : []));
|
|
6074
|
+
_valueNormalizer = signal((text) => text.pipe(map((userInput) => userInput)), ...(ngDevMode ? [{ debugName: "_valueNormalizer" }] : []));
|
|
6075
|
+
_placeholder = signal("", ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
|
|
6076
|
+
_adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
|
|
6077
|
+
_adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
|
|
6078
|
+
_adaptiveSubtitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
|
|
6079
|
+
_loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
|
|
6080
|
+
_suggest = signal(false, ...(ngDevMode ? [{ debugName: "_suggest" }] : []));
|
|
6081
|
+
_clearButton = signal(true, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
|
|
6082
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
6083
|
+
_readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
|
|
6084
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
|
|
6085
|
+
_filterable = signal(false, ...(ngDevMode ? [{ debugName: "_filterable" }] : []));
|
|
6086
|
+
_listHeight = signal(200, ...(ngDevMode ? [{ debugName: "_listHeight" }] : []));
|
|
5932
6087
|
constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, cdr, renderer, injector, hostElement, adaptiveService) {
|
|
5933
6088
|
super();
|
|
5934
6089
|
this.wrapper = wrapper;
|
|
@@ -5961,6 +6116,14 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
5961
6116
|
ngAfterViewInit() {
|
|
5962
6117
|
this.windowSize = this.adaptiveService.size;
|
|
5963
6118
|
this.cdr.detectChanges();
|
|
6119
|
+
const control = this.formControl;
|
|
6120
|
+
if (control && control.events) {
|
|
6121
|
+
this.subs.add(control.events.subscribe(e => {
|
|
6122
|
+
if (e instanceof TouchedChangeEvent) {
|
|
6123
|
+
this.cdr.markForCheck();
|
|
6124
|
+
}
|
|
6125
|
+
}));
|
|
6126
|
+
}
|
|
5964
6127
|
}
|
|
5965
6128
|
createValueStream() {
|
|
5966
6129
|
const valueStream = this.valueSubject.pipe(filter((candidate) => {
|
|
@@ -6170,16 +6333,15 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6170
6333
|
*/
|
|
6171
6334
|
toggle(open) {
|
|
6172
6335
|
Promise.resolve(null).then(() => {
|
|
6173
|
-
const shouldOpen = isPresent(open) ? open : !this._open;
|
|
6336
|
+
const shouldOpen = isPresent(open) ? open : !this._open();
|
|
6174
6337
|
this._toggle(shouldOpen);
|
|
6175
|
-
this.cdr.markForCheck();
|
|
6176
6338
|
});
|
|
6177
6339
|
}
|
|
6178
6340
|
/**
|
|
6179
6341
|
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
6180
6342
|
*/
|
|
6181
6343
|
get isOpen() {
|
|
6182
|
-
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
6344
|
+
return isTruthy(this._open() || this.isActionSheetExpanded);
|
|
6183
6345
|
}
|
|
6184
6346
|
/**
|
|
6185
6347
|
* @hidden
|
|
@@ -6252,7 +6414,6 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6252
6414
|
* @hidden
|
|
6253
6415
|
*/
|
|
6254
6416
|
setDisabledState(isDisabled) {
|
|
6255
|
-
this.cdr.markForCheck();
|
|
6256
6417
|
this.disabled = isDisabled;
|
|
6257
6418
|
}
|
|
6258
6419
|
/**
|
|
@@ -6744,13 +6905,13 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6744
6905
|
this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));
|
|
6745
6906
|
}
|
|
6746
6907
|
_toggle(open) {
|
|
6747
|
-
this._open
|
|
6908
|
+
this._open.set(open);
|
|
6748
6909
|
this.destroyPopup();
|
|
6749
6910
|
if (this.isActionSheetExpanded) {
|
|
6750
6911
|
this.actionSheet.toggle(false);
|
|
6751
6912
|
this.focus();
|
|
6752
6913
|
}
|
|
6753
|
-
if (this._open) {
|
|
6914
|
+
if (this._open()) {
|
|
6754
6915
|
this.windowSize = this.adaptiveService.size;
|
|
6755
6916
|
this.createPopup();
|
|
6756
6917
|
}
|
|
@@ -7081,11 +7242,13 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
7081
7242
|
</ng-template>
|
|
7082
7243
|
}
|
|
7083
7244
|
</ng-template>
|
|
7084
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
7245
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7085
7246
|
}
|
|
7086
7247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
7087
7248
|
type: Component,
|
|
7088
7249
|
args: [{
|
|
7250
|
+
selector: 'kendo-combobox',
|
|
7251
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7089
7252
|
exportAs: 'kendoComboBox',
|
|
7090
7253
|
providers: [
|
|
7091
7254
|
COMBOBOX_VALUE_ACCESSOR,
|
|
@@ -7110,7 +7273,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
7110
7273
|
{ provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ComboBoxComponent) },
|
|
7111
7274
|
provideComponentName('combobox')
|
|
7112
7275
|
],
|
|
7113
|
-
selector: 'kendo-combobox',
|
|
7114
7276
|
template: `
|
|
7115
7277
|
<ng-container kendoComboBoxLocalizedMessages
|
|
7116
7278
|
i18n-noDataText="kendo.combobox.noDataText|The text displayed in the popup when there are no items"
|
|
@@ -7584,7 +7746,8 @@ class DropDownListComponent {
|
|
|
7584
7746
|
/**
|
|
7585
7747
|
* @hidden
|
|
7586
7748
|
*/
|
|
7587
|
-
customIconClass;
|
|
7749
|
+
set customIconClass(v) { this._customIconClass.set(v); }
|
|
7750
|
+
get customIconClass() { return this._customIconClass(); }
|
|
7588
7751
|
/**
|
|
7589
7752
|
* @hidden
|
|
7590
7753
|
*/
|
|
@@ -7658,19 +7821,23 @@ class DropDownListComponent {
|
|
|
7658
7821
|
* Shows or hides the current group sticky header when using grouped data.
|
|
7659
7822
|
* The sticky header displays by default. [see example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/grouping#sticky-header)
|
|
7660
7823
|
*/
|
|
7661
|
-
showStickyHeader
|
|
7824
|
+
set showStickyHeader(v) { this._showStickyHeader.set(v); }
|
|
7825
|
+
get showStickyHeader() { return this._showStickyHeader(); }
|
|
7662
7826
|
/**
|
|
7663
7827
|
* @hidden
|
|
7664
7828
|
*/
|
|
7665
|
-
icon;
|
|
7829
|
+
set icon(v) { this._icon.set(v); }
|
|
7830
|
+
get icon() { return this._icon(); }
|
|
7666
7831
|
/**
|
|
7667
7832
|
* @hidden
|
|
7668
7833
|
*/
|
|
7669
|
-
svgIcon;
|
|
7834
|
+
set svgIcon(v) { this._svgIcon.set(v); }
|
|
7835
|
+
get svgIcon() { return this._svgIcon(); }
|
|
7670
7836
|
/**
|
|
7671
7837
|
* Sets and gets the loading state of the `DropDownListComponent`.
|
|
7672
7838
|
*/
|
|
7673
|
-
loading;
|
|
7839
|
+
set loading(v) { this._loading.set(v); }
|
|
7840
|
+
get loading() { return this._loading(); }
|
|
7674
7841
|
/**
|
|
7675
7842
|
* Sets the data of the `DropDownListComponent`.
|
|
7676
7843
|
*
|
|
@@ -7705,12 +7872,11 @@ class DropDownListComponent {
|
|
|
7705
7872
|
if (!isPresent(newValue)) {
|
|
7706
7873
|
this._previousDataItem = undefined;
|
|
7707
7874
|
}
|
|
7708
|
-
this._value
|
|
7875
|
+
this._value.set(newValue);
|
|
7709
7876
|
this.setState();
|
|
7710
|
-
this.cdr.markForCheck();
|
|
7711
7877
|
}
|
|
7712
7878
|
get value() {
|
|
7713
|
-
return this._value;
|
|
7879
|
+
return this._value();
|
|
7714
7880
|
}
|
|
7715
7881
|
/**
|
|
7716
7882
|
* Sets the data item field that represents the item text.
|
|
@@ -7718,28 +7884,33 @@ class DropDownListComponent {
|
|
|
7718
7884
|
*
|
|
7719
7885
|
* The `textField` property can point to a nested property value, for example, `category.name`.
|
|
7720
7886
|
*/
|
|
7721
|
-
textField;
|
|
7887
|
+
set textField(v) { this._textField.set(v); }
|
|
7888
|
+
get textField() { return this._textField(); }
|
|
7722
7889
|
/**
|
|
7723
7890
|
* Sets the data item field that represents the item value.
|
|
7724
7891
|
* If the data contains only primitive values, do not define this property.
|
|
7725
7892
|
*
|
|
7726
7893
|
* The `valueField` property can point to a nested property value, for example, `category.id`.
|
|
7727
7894
|
*/
|
|
7728
|
-
valueField;
|
|
7895
|
+
set valueField(v) { this._valueField.set(v); }
|
|
7896
|
+
get valueField() { return this._valueField(); }
|
|
7729
7897
|
/**
|
|
7730
7898
|
* Enables or disables the adaptive mode. The adaptive rendering is disabled by default.
|
|
7731
7899
|
*/
|
|
7732
|
-
adaptiveMode
|
|
7900
|
+
set adaptiveMode(v) { this._adaptiveMode.set(v); }
|
|
7901
|
+
get adaptiveMode() { return this._adaptiveMode(); }
|
|
7733
7902
|
/**
|
|
7734
7903
|
* Sets the title of the ActionSheet rendered instead of the Popup on small screens.
|
|
7735
7904
|
* By default, the ActionSheet title uses the label text of the `DropDownListComponent`.
|
|
7736
7905
|
*/
|
|
7737
|
-
adaptiveTitle
|
|
7906
|
+
set adaptiveTitle(v) { this._adaptiveTitle.set(v); }
|
|
7907
|
+
get adaptiveTitle() { return this._adaptiveTitle(); }
|
|
7738
7908
|
/**
|
|
7739
7909
|
* Sets the subtitle of the ActionSheet rendered instead of the Popup on small screens.
|
|
7740
7910
|
* By default, the ActionSheet does not render a subtitle.
|
|
7741
7911
|
*/
|
|
7742
|
-
adaptiveSubtitle
|
|
7912
|
+
set adaptiveSubtitle(v) { this._adaptiveSubtitle.set(v); }
|
|
7913
|
+
get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
|
|
7743
7914
|
/**
|
|
7744
7915
|
* @hidden
|
|
7745
7916
|
*/
|
|
@@ -7773,10 +7944,10 @@ class DropDownListComponent {
|
|
|
7773
7944
|
* - `appendTo: "root" | "component" | ViewContainerRef`—Specifies the component to which the popup will be appended.
|
|
7774
7945
|
*/
|
|
7775
7946
|
set popupSettings(settings) {
|
|
7776
|
-
this._popupSettings
|
|
7947
|
+
this._popupSettings.set(Object.assign({ animate: true }, settings));
|
|
7777
7948
|
}
|
|
7778
7949
|
get popupSettings() {
|
|
7779
|
-
return this._popupSettings;
|
|
7950
|
+
return this._popupSettings();
|
|
7780
7951
|
}
|
|
7781
7952
|
/**
|
|
7782
7953
|
* Sets the height of the options list in the popup.
|
|
@@ -7789,23 +7960,24 @@ class DropDownListComponent {
|
|
|
7789
7960
|
* @default 200
|
|
7790
7961
|
*/
|
|
7791
7962
|
set listHeight(_listHeight) {
|
|
7792
|
-
this._listHeight
|
|
7963
|
+
this._listHeight.set(_listHeight);
|
|
7793
7964
|
}
|
|
7794
7965
|
get listHeight() {
|
|
7795
7966
|
if (this.isAdaptive) {
|
|
7796
7967
|
return;
|
|
7797
7968
|
}
|
|
7798
|
-
return this._listHeight;
|
|
7969
|
+
return this._listHeight();
|
|
7799
7970
|
}
|
|
7800
|
-
_listHeight = 200;
|
|
7801
7971
|
/**
|
|
7802
7972
|
* Sets the text of the default empty item. The value type must match the data type.
|
|
7803
7973
|
*/
|
|
7804
|
-
defaultItem;
|
|
7974
|
+
set defaultItem(v) { this._defaultItem.set(v); }
|
|
7975
|
+
get defaultItem() { return this._defaultItem(); }
|
|
7805
7976
|
/**
|
|
7806
7977
|
* Sets the disabled state of the component. To disable the component in reactive forms, see [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/forms#managing-the-dropdownlist-disabled-state-in-reactive-forms).
|
|
7807
7978
|
*/
|
|
7808
|
-
disabled;
|
|
7979
|
+
set disabled(v) { this._disabled.set(v); }
|
|
7980
|
+
get disabled() { return this._disabled(); }
|
|
7809
7981
|
/**
|
|
7810
7982
|
* Defines a Boolean function executed for each data item in the component. Determines whether the item is disabled. [See examples.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/disabled-items)
|
|
7811
7983
|
*/
|
|
@@ -7820,47 +7992,52 @@ class DropDownListComponent {
|
|
|
7820
7992
|
*
|
|
7821
7993
|
* @default false
|
|
7822
7994
|
*/
|
|
7823
|
-
readonly
|
|
7995
|
+
get readonly() { return this._readonly(); }
|
|
7996
|
+
set readonly(v) { this._readonly.set(v); }
|
|
7824
7997
|
/**
|
|
7825
7998
|
* Enables the [filtering](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/filtering) functionality of the `DropDownListComponent`.
|
|
7826
7999
|
*/
|
|
7827
|
-
filterable
|
|
8000
|
+
set filterable(v) { this._filterable.set(v); }
|
|
8001
|
+
get filterable() { return this._filterable(); }
|
|
7828
8002
|
/**
|
|
7829
8003
|
* Enables the [virtualization](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/virtualization) functionality.
|
|
7830
8004
|
*/
|
|
7831
8005
|
set virtual(settings) {
|
|
7832
|
-
this._virtualSettings
|
|
8006
|
+
this._virtualSettings.set(normalizeVirtualizationSettings(settings));
|
|
7833
8007
|
}
|
|
7834
8008
|
get virtual() {
|
|
7835
|
-
return this._virtualSettings;
|
|
8009
|
+
return this._virtualSettings();
|
|
7836
8010
|
}
|
|
7837
8011
|
/**
|
|
7838
8012
|
* Enables a case-insensitive search. Use this option when filtration is disabled.
|
|
7839
8013
|
*/
|
|
7840
|
-
ignoreCase
|
|
8014
|
+
set ignoreCase(v) { this._ignoreCase.set(v); }
|
|
8015
|
+
get ignoreCase() { return this._ignoreCase(); }
|
|
7841
8016
|
/**
|
|
7842
8017
|
* Sets the delay before an item search is performed. Use this option when filtration is disabled.
|
|
7843
8018
|
*/
|
|
7844
|
-
delay
|
|
8019
|
+
set delay(v) { this._delay.set(v); }
|
|
8020
|
+
get delay() { return this._delay(); }
|
|
7845
8021
|
/**
|
|
7846
8022
|
* Specifies the type of the selected value. If set to `true`, the selected value must be a primitive value.
|
|
7847
8023
|
* * [More information and example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/value-binding#primitive-values-from-object-fields)
|
|
7848
8024
|
*/
|
|
7849
8025
|
set valuePrimitive(isPrimitive) {
|
|
7850
|
-
this._valuePrimitive
|
|
8026
|
+
this._valuePrimitive.set(isPrimitive);
|
|
7851
8027
|
}
|
|
7852
8028
|
get valuePrimitive() {
|
|
7853
|
-
if (!isPresent(this._valuePrimitive)) {
|
|
8029
|
+
if (!isPresent(this._valuePrimitive())) {
|
|
7854
8030
|
return !isPresent(this.valueField);
|
|
7855
8031
|
}
|
|
7856
|
-
return this._valuePrimitive;
|
|
8032
|
+
return this._valuePrimitive();
|
|
7857
8033
|
}
|
|
7858
8034
|
/**
|
|
7859
8035
|
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
7860
8036
|
*
|
|
7861
8037
|
* @default 0
|
|
7862
8038
|
*/
|
|
7863
|
-
tabindex
|
|
8039
|
+
set tabindex(v) { this._tabindex.set(v); }
|
|
8040
|
+
get tabindex() { return this._tabindex(); }
|
|
7864
8041
|
/**
|
|
7865
8042
|
* @hidden
|
|
7866
8043
|
*/
|
|
@@ -7878,10 +8055,10 @@ class DropDownListComponent {
|
|
|
7878
8055
|
if (size) {
|
|
7879
8056
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('picker', size));
|
|
7880
8057
|
}
|
|
7881
|
-
this._size
|
|
8058
|
+
this._size.set(size);
|
|
7882
8059
|
}
|
|
7883
8060
|
get size() {
|
|
7884
|
-
return this._size;
|
|
8061
|
+
return this._size();
|
|
7885
8062
|
}
|
|
7886
8063
|
/**
|
|
7887
8064
|
* Sets the border radius of the component. The default value is set by the Kendo theme.
|
|
@@ -7891,10 +8068,10 @@ class DropDownListComponent {
|
|
|
7891
8068
|
if (rounded) {
|
|
7892
8069
|
this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
|
|
7893
8070
|
}
|
|
7894
|
-
this._rounded
|
|
8071
|
+
this._rounded.set(rounded);
|
|
7895
8072
|
}
|
|
7896
8073
|
get rounded() {
|
|
7897
|
-
return this._rounded;
|
|
8074
|
+
return this._rounded();
|
|
7898
8075
|
}
|
|
7899
8076
|
/**
|
|
7900
8077
|
* Sets the fillMode of the component. The default value is set by the Kendo theme.
|
|
@@ -7904,16 +8081,17 @@ class DropDownListComponent {
|
|
|
7904
8081
|
if (fillMode) {
|
|
7905
8082
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', fillMode));
|
|
7906
8083
|
}
|
|
7907
|
-
this._fillMode
|
|
8084
|
+
this._fillMode.set(fillMode);
|
|
7908
8085
|
}
|
|
7909
8086
|
get fillMode() {
|
|
7910
|
-
return this._fillMode;
|
|
8087
|
+
return this._fillMode();
|
|
7911
8088
|
}
|
|
7912
8089
|
/**
|
|
7913
8090
|
* Toggles the left and right arrow keys navigation functionality.
|
|
7914
8091
|
* @hidden
|
|
7915
8092
|
*/
|
|
7916
|
-
leftRightArrowsNavigation
|
|
8093
|
+
set leftRightArrowsNavigation(v) { this._leftRightArrowsNavigation.set(v); }
|
|
8094
|
+
get leftRightArrowsNavigation() { return this._leftRightArrowsNavigation(); }
|
|
7917
8095
|
/**
|
|
7918
8096
|
* Fires each time the value changes. [See example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/events).
|
|
7919
8097
|
*/
|
|
@@ -8022,7 +8200,8 @@ class DropDownListComponent {
|
|
|
8022
8200
|
/**
|
|
8023
8201
|
* @hidden
|
|
8024
8202
|
*/
|
|
8025
|
-
focusableId
|
|
8203
|
+
get focusableId() { return this._focusableId(); }
|
|
8204
|
+
set focusableId(id) { this._focusableId.set(id); }
|
|
8026
8205
|
get dir() {
|
|
8027
8206
|
return this.direction;
|
|
8028
8207
|
}
|
|
@@ -8121,7 +8300,7 @@ class DropDownListComponent {
|
|
|
8121
8300
|
}
|
|
8122
8301
|
groupIndices = [];
|
|
8123
8302
|
optionPrefix = `k-${guid()}`;
|
|
8124
|
-
valueLabelId;
|
|
8303
|
+
valueLabelId = signal('', ...(ngDevMode ? [{ debugName: "valueLabelId" }] : []));
|
|
8125
8304
|
filterText = '';
|
|
8126
8305
|
listBoxId = `k-${guid()}`;
|
|
8127
8306
|
subs = new Subscription();
|
|
@@ -8133,6 +8312,9 @@ class DropDownListComponent {
|
|
|
8133
8312
|
get isFocused() {
|
|
8134
8313
|
return this._isFocused;
|
|
8135
8314
|
}
|
|
8315
|
+
get text() {
|
|
8316
|
+
return this._text();
|
|
8317
|
+
}
|
|
8136
8318
|
direction;
|
|
8137
8319
|
dataItem;
|
|
8138
8320
|
popupRef;
|
|
@@ -8147,16 +8329,36 @@ class DropDownListComponent {
|
|
|
8147
8329
|
hostElementFocused = new EventEmitter();
|
|
8148
8330
|
hostElementBlurred = new EventEmitter();
|
|
8149
8331
|
touchstartDisposeHandler;
|
|
8150
|
-
|
|
8151
|
-
|
|
8332
|
+
_customIconClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_customIconClass" }] : []));
|
|
8333
|
+
_showStickyHeader = signal(true, ...(ngDevMode ? [{ debugName: "_showStickyHeader" }] : []));
|
|
8334
|
+
_icon = signal(undefined, ...(ngDevMode ? [{ debugName: "_icon" }] : []));
|
|
8335
|
+
_svgIcon = signal(undefined, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : []));
|
|
8336
|
+
_loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
|
|
8337
|
+
_textField = signal(undefined, ...(ngDevMode ? [{ debugName: "_textField" }] : []));
|
|
8338
|
+
_valueField = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueField" }] : []));
|
|
8339
|
+
_adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
|
|
8340
|
+
_adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
|
|
8341
|
+
_adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
|
|
8342
|
+
_listHeight = signal(200, ...(ngDevMode ? [{ debugName: "_listHeight" }] : []));
|
|
8343
|
+
_defaultItem = signal(undefined, ...(ngDevMode ? [{ debugName: "_defaultItem" }] : []));
|
|
8344
|
+
_disabled = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
8345
|
+
_readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
|
|
8346
|
+
_filterable = signal(false, ...(ngDevMode ? [{ debugName: "_filterable" }] : []));
|
|
8347
|
+
_ignoreCase = signal(true, ...(ngDevMode ? [{ debugName: "_ignoreCase" }] : []));
|
|
8348
|
+
_delay = signal(500, ...(ngDevMode ? [{ debugName: "_delay" }] : []));
|
|
8349
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
|
|
8350
|
+
_leftRightArrowsNavigation = signal(true, ...(ngDevMode ? [{ debugName: "_leftRightArrowsNavigation" }] : []));
|
|
8351
|
+
_focusableId = signal(`k-${guid()}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
|
|
8352
|
+
_value = signal(undefined, ...(ngDevMode ? [{ debugName: "_value" }] : []));
|
|
8353
|
+
_open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : []));
|
|
8152
8354
|
_previousDataItem;
|
|
8153
|
-
_valuePrimitive;
|
|
8154
|
-
|
|
8155
|
-
_popupSettings = { animate: true };
|
|
8156
|
-
_virtualSettings;
|
|
8157
|
-
_size = undefined;
|
|
8158
|
-
_rounded = undefined;
|
|
8159
|
-
_fillMode = undefined;
|
|
8355
|
+
_valuePrimitive = signal(undefined, ...(ngDevMode ? [{ debugName: "_valuePrimitive" }] : []));
|
|
8356
|
+
_text = signal(undefined, ...(ngDevMode ? [{ debugName: "_text" }] : []));
|
|
8357
|
+
_popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
|
|
8358
|
+
_virtualSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_virtualSettings" }] : []));
|
|
8359
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
8360
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
|
|
8361
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
|
|
8160
8362
|
constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, cdr, injector, adaptiveService) {
|
|
8161
8363
|
this.wrapper = wrapper;
|
|
8162
8364
|
this.localization = localization;
|
|
@@ -8194,6 +8396,14 @@ class DropDownListComponent {
|
|
|
8194
8396
|
}
|
|
8195
8397
|
ngAfterViewInit() {
|
|
8196
8398
|
this.windowSize = this.adaptiveService.size;
|
|
8399
|
+
const control = this.formControl;
|
|
8400
|
+
if (control && control.events) {
|
|
8401
|
+
this.subs.add(control.events.subscribe(e => {
|
|
8402
|
+
if (e instanceof TouchedChangeEvent) {
|
|
8403
|
+
this.cdr.markForCheck();
|
|
8404
|
+
}
|
|
8405
|
+
}));
|
|
8406
|
+
}
|
|
8197
8407
|
}
|
|
8198
8408
|
/**
|
|
8199
8409
|
* @hidden
|
|
@@ -8288,17 +8498,17 @@ class DropDownListComponent {
|
|
|
8288
8498
|
// The Promise is required to open the popup on load.
|
|
8289
8499
|
// Otherwise, the "Expression has changed..." type error will be thrown.
|
|
8290
8500
|
Promise.resolve(null).then(() => {
|
|
8291
|
-
const shouldOpen = isPresent(open) ? open : !this._open;
|
|
8501
|
+
const shouldOpen = isPresent(open) ? open : !this._open();
|
|
8292
8502
|
this._toggle(shouldOpen);
|
|
8293
8503
|
});
|
|
8294
8504
|
}
|
|
8295
8505
|
_toggle(open) {
|
|
8296
|
-
this._open
|
|
8506
|
+
this._open.set(open);
|
|
8297
8507
|
this.destroyPopup();
|
|
8298
8508
|
if (this.isActionSheetExpanded) {
|
|
8299
8509
|
this.closeActionSheet();
|
|
8300
8510
|
}
|
|
8301
|
-
if (this._open) {
|
|
8511
|
+
if (this._open()) {
|
|
8302
8512
|
this.createPopup();
|
|
8303
8513
|
}
|
|
8304
8514
|
}
|
|
@@ -8333,7 +8543,7 @@ class DropDownListComponent {
|
|
|
8333
8543
|
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
8334
8544
|
*/
|
|
8335
8545
|
get isOpen() {
|
|
8336
|
-
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
8546
|
+
return isTruthy(this._open() || this.isActionSheetExpanded);
|
|
8337
8547
|
}
|
|
8338
8548
|
/**
|
|
8339
8549
|
* Resets the value of the `DropDownListComponent`. If you use the `reset` method to clear the value, the model does not update automatically and the `selectionChange` and `valueChange` events are not fired.
|
|
@@ -8369,7 +8579,6 @@ class DropDownListComponent {
|
|
|
8369
8579
|
* @hidden
|
|
8370
8580
|
*/
|
|
8371
8581
|
setDisabledState(isDisabled) {
|
|
8372
|
-
this.cdr.markForCheck();
|
|
8373
8582
|
this.disabled = isDisabled;
|
|
8374
8583
|
}
|
|
8375
8584
|
/**
|
|
@@ -8402,7 +8611,7 @@ class DropDownListComponent {
|
|
|
8402
8611
|
* @hidden
|
|
8403
8612
|
*/
|
|
8404
8613
|
getText() {
|
|
8405
|
-
return this.
|
|
8614
|
+
return this._text();
|
|
8406
8615
|
}
|
|
8407
8616
|
createPopup() {
|
|
8408
8617
|
if (this.virtual) {
|
|
@@ -8470,13 +8679,13 @@ class DropDownListComponent {
|
|
|
8470
8679
|
}
|
|
8471
8680
|
updateState({ dataItem, confirm = false }) {
|
|
8472
8681
|
this.dataItem = dataItem;
|
|
8473
|
-
this.
|
|
8682
|
+
this._text.set(getter(dataItem, this.textField));
|
|
8474
8683
|
if (confirm) {
|
|
8475
8684
|
this._previousDataItem = dataItem;
|
|
8476
8685
|
}
|
|
8477
8686
|
}
|
|
8478
8687
|
clearState() {
|
|
8479
|
-
this.
|
|
8688
|
+
this._text.set(undefined);
|
|
8480
8689
|
this.dataItem = undefined;
|
|
8481
8690
|
}
|
|
8482
8691
|
resetSelection(index) {
|
|
@@ -8870,11 +9079,9 @@ class DropDownListComponent {
|
|
|
8870
9079
|
}
|
|
8871
9080
|
assignAriaDescribedBy() {
|
|
8872
9081
|
const currentValue = this.wrapper.nativeElement.getAttribute('aria-describedby') || '';
|
|
8873
|
-
const trimmed = currentValue.replace(this.valueLabelId, '').trim();
|
|
8874
|
-
|
|
8875
|
-
this.valueLabelId
|
|
8876
|
-
// add to the current value - don't replace it
|
|
8877
|
-
const newValue = `${this.valueLabelId} ${trimmed}`.trim();
|
|
9082
|
+
const trimmed = currentValue.replace(this.valueLabelId(), '').trim();
|
|
9083
|
+
this.valueLabelId.set(`k-${guid()}`);
|
|
9084
|
+
const newValue = `${this.valueLabelId()} ${trimmed}`.trim();
|
|
8878
9085
|
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-describedby', newValue);
|
|
8879
9086
|
}
|
|
8880
9087
|
setComponentClasses() {
|
|
@@ -8956,7 +9163,7 @@ class DropDownListComponent {
|
|
|
8956
9163
|
listboxLabel="Options"
|
|
8957
9164
|
>
|
|
8958
9165
|
</ng-container>
|
|
8959
|
-
<span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
|
|
9166
|
+
<span class="k-input-inner" unselectable="on" [id]="valueLabelId()" (click)="$event.preventDefault()">
|
|
8960
9167
|
<span class="k-input-value-text">
|
|
8961
9168
|
@if (valueTemplate) {
|
|
8962
9169
|
<ng-template
|
|
@@ -9096,11 +9303,13 @@ class DropDownListComponent {
|
|
|
9096
9303
|
</ng-template>
|
|
9097
9304
|
}
|
|
9098
9305
|
</ng-template>
|
|
9099
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
9306
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9100
9307
|
}
|
|
9101
9308
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownListComponent, decorators: [{
|
|
9102
9309
|
type: Component,
|
|
9103
9310
|
args: [{
|
|
9311
|
+
selector: 'kendo-dropdownlist',
|
|
9312
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
9104
9313
|
exportAs: 'kendoDropDownList',
|
|
9105
9314
|
providers: [
|
|
9106
9315
|
DROPDOWNLIST_VALUE_ACCESSOR,
|
|
@@ -9122,7 +9331,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
9122
9331
|
{ provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DropDownListComponent) },
|
|
9123
9332
|
provideComponentName('dropdownlist')
|
|
9124
9333
|
],
|
|
9125
|
-
selector: 'kendo-dropdownlist',
|
|
9126
9334
|
template: `
|
|
9127
9335
|
<ng-container kendoDropDownListLocalizedMessages
|
|
9128
9336
|
i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
|
|
@@ -9147,7 +9355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
9147
9355
|
listboxLabel="Options"
|
|
9148
9356
|
>
|
|
9149
9357
|
</ng-container>
|
|
9150
|
-
<span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
|
|
9358
|
+
<span class="k-input-inner" unselectable="on" [id]="valueLabelId()" (click)="$event.preventDefault()">
|
|
9151
9359
|
<span class="k-input-value-text">
|
|
9152
9360
|
@if (valueTemplate) {
|
|
9153
9361
|
<ng-template
|
|
@@ -9943,12 +10151,30 @@ class MultiSelectComponent {
|
|
|
9943
10151
|
tagListId = `k-${guid()}`;
|
|
9944
10152
|
tagPrefix = "tag-" + guid();
|
|
9945
10153
|
optionPrefix = "option-" + guid();
|
|
9946
|
-
popupRef
|
|
9947
|
-
|
|
9948
|
-
|
|
9949
|
-
|
|
9950
|
-
|
|
9951
|
-
|
|
10154
|
+
get popupRef() {
|
|
10155
|
+
return this._popupRef();
|
|
10156
|
+
}
|
|
10157
|
+
set popupRef(value) {
|
|
10158
|
+
this._popupRef.set(value);
|
|
10159
|
+
}
|
|
10160
|
+
get isAllSelected() {
|
|
10161
|
+
return this._isAllSelected();
|
|
10162
|
+
}
|
|
10163
|
+
set isAllSelected(value) {
|
|
10164
|
+
this._isAllSelected.set(value);
|
|
10165
|
+
}
|
|
10166
|
+
set isPartiallySelected(value) {
|
|
10167
|
+
this._isPartiallySelected.set(value);
|
|
10168
|
+
}
|
|
10169
|
+
get isPartiallySelected() {
|
|
10170
|
+
return this._isPartiallySelected();
|
|
10171
|
+
}
|
|
10172
|
+
get text() { return this._text(); }
|
|
10173
|
+
set text(v) { this._text.set(v); }
|
|
10174
|
+
get tags() { return this._tags(); }
|
|
10175
|
+
set tags(v) { this._tags.set(v); }
|
|
10176
|
+
get focusedTagIndex() { return this._focusedTagIndex(); }
|
|
10177
|
+
set focusedTagIndex(v) { this._focusedTagIndex.set(v); }
|
|
9952
10178
|
/**
|
|
9953
10179
|
* @hidden
|
|
9954
10180
|
*/
|
|
@@ -10137,7 +10363,8 @@ class MultiSelectComponent {
|
|
|
10137
10363
|
* Shows or hides the current group sticky header when using grouped data.
|
|
10138
10364
|
* By default the sticky header is displayed ([see example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/grouping#sticky-header)).
|
|
10139
10365
|
*/
|
|
10140
|
-
showStickyHeader
|
|
10366
|
+
set showStickyHeader(v) { this._showStickyHeader.set(v); }
|
|
10367
|
+
get showStickyHeader() { return this._showStickyHeader(); }
|
|
10141
10368
|
/**
|
|
10142
10369
|
* Renders a Select All sticky header item at the top of the popup list.
|
|
10143
10370
|
* Clicking it selects or deselects all currently available items and triggers the `valueChange` event.
|
|
@@ -10157,19 +10384,22 @@ class MultiSelectComponent {
|
|
|
10157
10384
|
/**
|
|
10158
10385
|
* @hidden
|
|
10159
10386
|
*/
|
|
10160
|
-
focusableId
|
|
10387
|
+
set focusableId(v) { this._focusableId.set(v); }
|
|
10388
|
+
get focusableId() { return this._focusableId(); }
|
|
10161
10389
|
/**
|
|
10162
10390
|
* Controls whether the options list closes after item selection finishes ([see example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/open-state#keeping-the-options-list-open-while-on-focus)).
|
|
10163
10391
|
* Set to `false` to keep the list open while the component has focus.
|
|
10164
10392
|
*
|
|
10165
10393
|
* @default true
|
|
10166
10394
|
*/
|
|
10167
|
-
autoClose
|
|
10395
|
+
set autoClose(v) { this._autoClose.set(v); }
|
|
10396
|
+
get autoClose() { return this._autoClose(); }
|
|
10168
10397
|
/**
|
|
10169
10398
|
* Controls the loading state of the MultiSelect.
|
|
10170
10399
|
* Set to `true` to display the loading indicator.
|
|
10171
10400
|
*/
|
|
10172
|
-
loading;
|
|
10401
|
+
set loading(v) { this._loading.set(v); }
|
|
10402
|
+
get loading() { return this._loading(); }
|
|
10173
10403
|
/**
|
|
10174
10404
|
* Sets the data source for the MultiSelect.
|
|
10175
10405
|
* Provide the data as an array of items.
|
|
@@ -10201,7 +10431,7 @@ class MultiSelectComponent {
|
|
|
10201
10431
|
* > The component ignores selected values that don't exist in the data source.
|
|
10202
10432
|
*/
|
|
10203
10433
|
set value(values) {
|
|
10204
|
-
this._value
|
|
10434
|
+
this._value.set(values ? values : []);
|
|
10205
10435
|
if (!this.differ && this.value) {
|
|
10206
10436
|
this.differ = this.differs.find(this.value).create();
|
|
10207
10437
|
}
|
|
@@ -10211,26 +10441,29 @@ class MultiSelectComponent {
|
|
|
10211
10441
|
}
|
|
10212
10442
|
}
|
|
10213
10443
|
get value() {
|
|
10214
|
-
return this._value;
|
|
10444
|
+
return this._value();
|
|
10215
10445
|
}
|
|
10216
10446
|
/**
|
|
10217
10447
|
* Sets the field name that contains the item value in the data objects.
|
|
10218
10448
|
* Skip this property when your data contains only primitive values.
|
|
10219
10449
|
* Supports nested property paths like `category.id`.
|
|
10220
10450
|
*/
|
|
10221
|
-
valueField;
|
|
10451
|
+
set valueField(v) { this._valueField.set(v); }
|
|
10452
|
+
get valueField() { return this._valueField(); }
|
|
10222
10453
|
/**
|
|
10223
10454
|
* Sets the field name that contains the item text in the data objects.
|
|
10224
10455
|
* Skip this property when your data contains only primitive values.
|
|
10225
10456
|
* Supports nested property paths like `category.name`.
|
|
10226
10457
|
*/
|
|
10227
|
-
textField;
|
|
10458
|
+
set textField(v) { this._textField.set(v); }
|
|
10459
|
+
get textField() { return this._textField(); }
|
|
10228
10460
|
/**
|
|
10229
10461
|
* Sets the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) attribute of the component.
|
|
10230
10462
|
*
|
|
10231
10463
|
* @default 0
|
|
10232
10464
|
*/
|
|
10233
|
-
tabindex
|
|
10465
|
+
set tabindex(v) { this._tabindex.set(v); }
|
|
10466
|
+
get tabindex() { return this._tabindex(); }
|
|
10234
10467
|
/**
|
|
10235
10468
|
* @hidden
|
|
10236
10469
|
*/
|
|
@@ -10248,10 +10481,10 @@ class MultiSelectComponent {
|
|
|
10248
10481
|
if (size) {
|
|
10249
10482
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
|
|
10250
10483
|
}
|
|
10251
|
-
this._size
|
|
10484
|
+
this._size.set(size);
|
|
10252
10485
|
}
|
|
10253
10486
|
get size() {
|
|
10254
|
-
return this._size;
|
|
10487
|
+
return this._size();
|
|
10255
10488
|
}
|
|
10256
10489
|
/**
|
|
10257
10490
|
* Sets the border radius of the component. The default value is set by the Kendo theme.
|
|
@@ -10261,10 +10494,10 @@ class MultiSelectComponent {
|
|
|
10261
10494
|
if (rounded) {
|
|
10262
10495
|
this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
|
|
10263
10496
|
}
|
|
10264
|
-
this._rounded
|
|
10497
|
+
this._rounded.set(rounded);
|
|
10265
10498
|
}
|
|
10266
10499
|
get rounded() {
|
|
10267
|
-
return this._rounded;
|
|
10500
|
+
return this._rounded();
|
|
10268
10501
|
}
|
|
10269
10502
|
/**
|
|
10270
10503
|
* Sets the fill mode of the component. The default value is set by the Kendo theme.
|
|
@@ -10274,20 +10507,20 @@ class MultiSelectComponent {
|
|
|
10274
10507
|
if (fillMode) {
|
|
10275
10508
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
|
|
10276
10509
|
}
|
|
10277
|
-
this._fillMode
|
|
10510
|
+
this._fillMode.set(fillMode);
|
|
10278
10511
|
}
|
|
10279
10512
|
get fillMode() {
|
|
10280
|
-
return this._fillMode;
|
|
10513
|
+
return this._fillMode();
|
|
10281
10514
|
}
|
|
10282
10515
|
/**
|
|
10283
10516
|
* Sets the placeholder text for the MultiSelect input.
|
|
10284
10517
|
* When the values are selected, it disappears.
|
|
10285
10518
|
*/
|
|
10286
10519
|
set placeholder(text) {
|
|
10287
|
-
this._placeholder
|
|
10520
|
+
this._placeholder.set(text || '');
|
|
10288
10521
|
}
|
|
10289
10522
|
get placeholder() {
|
|
10290
|
-
return this.selectedDataItems.length ? '' : this._placeholder;
|
|
10523
|
+
return this.selectedDataItems.length ? '' : this._placeholder();
|
|
10291
10524
|
}
|
|
10292
10525
|
/**
|
|
10293
10526
|
* Controls the adaptive mode behavior of the component.
|
|
@@ -10295,17 +10528,20 @@ class MultiSelectComponent {
|
|
|
10295
10528
|
*
|
|
10296
10529
|
* @default "none"
|
|
10297
10530
|
*/
|
|
10298
|
-
adaptiveMode
|
|
10531
|
+
set adaptiveMode(v) { this._adaptiveMode.set(v); }
|
|
10532
|
+
get adaptiveMode() { return this._adaptiveMode(); }
|
|
10299
10533
|
/**
|
|
10300
10534
|
* Sets the title text for the ActionSheet in adaptive mode.
|
|
10301
10535
|
* Uses the component's label text by default.
|
|
10302
10536
|
*/
|
|
10303
|
-
adaptiveTitle
|
|
10537
|
+
set adaptiveTitle(v) { this._adaptiveTitle.set(v); }
|
|
10538
|
+
get adaptiveTitle() { return this._adaptiveTitle(); }
|
|
10304
10539
|
/**
|
|
10305
10540
|
* Sets the subtitle text for the ActionSheet in adaptive mode.
|
|
10306
10541
|
* No subtitle appears by default.
|
|
10307
10542
|
*/
|
|
10308
|
-
adaptiveSubtitle;
|
|
10543
|
+
set adaptiveSubtitle(v) { this._adaptiveSubtitle.set(v); }
|
|
10544
|
+
get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
|
|
10309
10545
|
/**
|
|
10310
10546
|
* @hidden
|
|
10311
10547
|
*/
|
|
@@ -10319,7 +10555,8 @@ class MultiSelectComponent {
|
|
|
10319
10555
|
*
|
|
10320
10556
|
* @default false
|
|
10321
10557
|
*/
|
|
10322
|
-
disabled
|
|
10558
|
+
set disabled(v) { this._disabled.set(v); }
|
|
10559
|
+
get disabled() { return this._disabled(); }
|
|
10323
10560
|
/**
|
|
10324
10561
|
* Determines wether the item will be disabled. The function is executed for each data item.
|
|
10325
10562
|
* The function receives the item as an argument and should return `true` if the item is disabled.
|
|
@@ -10337,10 +10574,10 @@ class MultiSelectComponent {
|
|
|
10337
10574
|
* @default false
|
|
10338
10575
|
*/
|
|
10339
10576
|
set checkboxes(settings) {
|
|
10340
|
-
this._checkboxes
|
|
10577
|
+
this._checkboxes.set(normalizeCheckboxesSettings(settings));
|
|
10341
10578
|
}
|
|
10342
10579
|
get checkboxes() {
|
|
10343
|
-
return this._checkboxes;
|
|
10580
|
+
return this._checkboxes();
|
|
10344
10581
|
}
|
|
10345
10582
|
/**
|
|
10346
10583
|
* Controls the read-only state of the component.
|
|
@@ -10348,33 +10585,35 @@ class MultiSelectComponent {
|
|
|
10348
10585
|
*
|
|
10349
10586
|
* @default false
|
|
10350
10587
|
*/
|
|
10351
|
-
readonly
|
|
10588
|
+
get readonly() { return this._readonly(); }
|
|
10589
|
+
set readonly(v) { this._readonly.set(v); }
|
|
10352
10590
|
/**
|
|
10353
10591
|
* Enables the filtering functionality of the MultiSelect.
|
|
10354
10592
|
* Set to `true` to allow users to filter the data by typing.
|
|
10355
10593
|
*
|
|
10356
10594
|
* @default false
|
|
10357
10595
|
*/
|
|
10358
|
-
filterable
|
|
10596
|
+
set filterable(v) { this._filterable.set(v); }
|
|
10597
|
+
get filterable() { return this._filterable(); }
|
|
10359
10598
|
/**
|
|
10360
10599
|
* Enables virtualization to improve performance with large datasets.
|
|
10361
10600
|
* Pass `true` for default settings or an object to configure virtualization.
|
|
10362
10601
|
*/
|
|
10363
10602
|
set virtual(settings) {
|
|
10364
|
-
this._virtualSettings
|
|
10603
|
+
this._virtualSettings.set(normalizeVirtualizationSettings(settings));
|
|
10365
10604
|
}
|
|
10366
10605
|
get virtual() {
|
|
10367
|
-
return this._virtualSettings;
|
|
10606
|
+
return this._virtualSettings();
|
|
10368
10607
|
}
|
|
10369
10608
|
/**
|
|
10370
10609
|
* Configures the popup appearance and behavior.
|
|
10371
10610
|
* Set properties like `animate`, `width`, `height`, `popupClass`, and `appendTo`.
|
|
10372
10611
|
*/
|
|
10373
10612
|
set popupSettings(settings) {
|
|
10374
|
-
this._popupSettings
|
|
10613
|
+
this._popupSettings.set(Object.assign({ animate: true }, settings));
|
|
10375
10614
|
}
|
|
10376
10615
|
get popupSettings() {
|
|
10377
|
-
return this._popupSettings;
|
|
10616
|
+
return this._popupSettings();
|
|
10378
10617
|
}
|
|
10379
10618
|
/**
|
|
10380
10619
|
* Sets the height of the options list in the popup.
|
|
@@ -10382,29 +10621,28 @@ class MultiSelectComponent {
|
|
|
10382
10621
|
*
|
|
10383
10622
|
* @default 200
|
|
10384
10623
|
*/
|
|
10385
|
-
set listHeight(
|
|
10386
|
-
this._listHeight
|
|
10624
|
+
set listHeight(v) {
|
|
10625
|
+
this._listHeight.set(v);
|
|
10387
10626
|
}
|
|
10388
10627
|
get listHeight() {
|
|
10389
10628
|
if (this.isAdaptive) {
|
|
10390
10629
|
return;
|
|
10391
10630
|
}
|
|
10392
|
-
return this._listHeight;
|
|
10631
|
+
return this._listHeight();
|
|
10393
10632
|
}
|
|
10394
|
-
_listHeight = 200;
|
|
10395
10633
|
/**
|
|
10396
10634
|
* Controls the type of selected values.
|
|
10397
10635
|
* Set to `true` for primitive values or `false` for object references.
|
|
10398
10636
|
* When undefined, the component determines the type based on `valueField`.
|
|
10399
10637
|
*/
|
|
10400
10638
|
set valuePrimitive(isPrimitive) {
|
|
10401
|
-
this._valuePrimitive
|
|
10639
|
+
this._valuePrimitive.set(isPrimitive);
|
|
10402
10640
|
}
|
|
10403
10641
|
get valuePrimitive() {
|
|
10404
|
-
if (!isPresent(this._valuePrimitive)) {
|
|
10642
|
+
if (!isPresent(this._valuePrimitive())) {
|
|
10405
10643
|
return !isPresent(this.valueField);
|
|
10406
10644
|
}
|
|
10407
|
-
return this._valuePrimitive;
|
|
10645
|
+
return this._valuePrimitive();
|
|
10408
10646
|
}
|
|
10409
10647
|
/**
|
|
10410
10648
|
* Controls whether a clear button appears when items are selected.
|
|
@@ -10412,14 +10650,16 @@ class MultiSelectComponent {
|
|
|
10412
10650
|
*
|
|
10413
10651
|
* @default true
|
|
10414
10652
|
*/
|
|
10415
|
-
clearButton
|
|
10653
|
+
set clearButton(v) { this._clearButton.set(v); }
|
|
10654
|
+
get clearButton() { return this._clearButton(); }
|
|
10416
10655
|
/**
|
|
10417
10656
|
* Sets a function that transforms selected data items into display tags.
|
|
10418
10657
|
* Use this to customize how selected items appear as tags.
|
|
10419
10658
|
*
|
|
10420
10659
|
* @default (tags) => tags || []
|
|
10421
10660
|
*/
|
|
10422
|
-
tagMapper
|
|
10661
|
+
set tagMapper(fn) { this._tagMapper.set(fn); }
|
|
10662
|
+
get tagMapper() { return this._tagMapper(); }
|
|
10423
10663
|
/**
|
|
10424
10664
|
* Allows users to add custom values not present in the data source.
|
|
10425
10665
|
* Set to `true` to enable custom value input.
|
|
@@ -10427,20 +10667,14 @@ class MultiSelectComponent {
|
|
|
10427
10667
|
*
|
|
10428
10668
|
* @default false
|
|
10429
10669
|
*/
|
|
10430
|
-
allowCustom
|
|
10670
|
+
set allowCustom(v) { this._allowCustom.set(v); }
|
|
10671
|
+
get allowCustom() { return this._allowCustom(); }
|
|
10431
10672
|
/**
|
|
10432
10673
|
* Sets a function that normalizes custom user input into data items.
|
|
10433
10674
|
* Use this when your data items differ from simple strings.
|
|
10434
10675
|
*/
|
|
10435
|
-
valueNormalizer
|
|
10436
|
-
|
|
10437
|
-
const matchingValue = this.value.find(comparer);
|
|
10438
|
-
if (matchingValue) {
|
|
10439
|
-
return matchingValue;
|
|
10440
|
-
}
|
|
10441
|
-
const matchingItem = this.dataService.find(comparer);
|
|
10442
|
-
return matchingItem ? matchingItem : userInput;
|
|
10443
|
-
}));
|
|
10676
|
+
set valueNormalizer(fn) { this._valueNormalizer.set(fn); }
|
|
10677
|
+
get valueNormalizer() { return this._valueNormalizer(); }
|
|
10444
10678
|
/**
|
|
10445
10679
|
* Sets HTML attributes for the inner input element.
|
|
10446
10680
|
* You cannot change attributes essential for component functionality.
|
|
@@ -10448,7 +10682,8 @@ class MultiSelectComponent {
|
|
|
10448
10682
|
* @remarks
|
|
10449
10683
|
* This property is related to accessibility.
|
|
10450
10684
|
*/
|
|
10451
|
-
inputAttributes;
|
|
10685
|
+
set inputAttributes(v) { this._inputAttributes.set(v); }
|
|
10686
|
+
get inputAttributes() { return this._inputAttributes(); }
|
|
10452
10687
|
/**
|
|
10453
10688
|
* Fires when the user types in the input field.
|
|
10454
10689
|
* Use this event to filter the data source based on user input.
|
|
@@ -10571,9 +10806,11 @@ class MultiSelectComponent {
|
|
|
10571
10806
|
}
|
|
10572
10807
|
disabledIndices;
|
|
10573
10808
|
initialized = false;
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10809
|
+
_isPartiallySelected = signal(false, ...(ngDevMode ? [{ debugName: "_isPartiallySelected" }] : []));
|
|
10810
|
+
_isAllSelected = signal(null, ...(ngDevMode ? [{ debugName: "_isAllSelected" }] : []));
|
|
10811
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
10812
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
|
|
10813
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
|
|
10577
10814
|
_valueHolder = [];
|
|
10578
10815
|
isCustomValueSelected = false;
|
|
10579
10816
|
preserveFocusIndex = null;
|
|
@@ -10603,6 +10840,7 @@ class MultiSelectComponent {
|
|
|
10603
10840
|
: pageData;
|
|
10604
10841
|
return data;
|
|
10605
10842
|
}
|
|
10843
|
+
_focusedTagIndex = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusedTagIndex" }] : []));
|
|
10606
10844
|
constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, injector, adaptiveService) {
|
|
10607
10845
|
this.wrapper = wrapper;
|
|
10608
10846
|
this.localization = localization;
|
|
@@ -10822,7 +11060,7 @@ class MultiSelectComponent {
|
|
|
10822
11060
|
this.addCustomValue(this.text);
|
|
10823
11061
|
this.addCustomValue(text);
|
|
10824
11062
|
}
|
|
10825
|
-
this.text
|
|
11063
|
+
this._text.set(text);
|
|
10826
11064
|
if (text && !this.isOpen) {
|
|
10827
11065
|
this.openPopup();
|
|
10828
11066
|
}
|
|
@@ -10852,7 +11090,7 @@ class MultiSelectComponent {
|
|
|
10852
11090
|
if (this.filterable && this.text) {
|
|
10853
11091
|
this.filterChange.emit("");
|
|
10854
11092
|
}
|
|
10855
|
-
this.
|
|
11093
|
+
this._text.set('');
|
|
10856
11094
|
/* Clearing the value from the input as the setInputSize calculation will be incorrect otherwise.
|
|
10857
11095
|
Calling cdr.detectChanges to clear the input value as a result of property binding
|
|
10858
11096
|
causes JAWS to read outdated tag values in IE upon tag selection for some reason. */
|
|
@@ -10983,13 +11221,23 @@ class MultiSelectComponent {
|
|
|
10983
11221
|
this.searchbar.setInputSize();
|
|
10984
11222
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'mousedown', this.handleMousedown.bind(this)));
|
|
10985
11223
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
10986
|
-
this.
|
|
10987
|
-
|
|
10988
|
-
this.searchbar.input.nativeElement.getAttribute('
|
|
10989
|
-
|
|
10990
|
-
|
|
10991
|
-
|
|
11224
|
+
runInInjectionContext(this.injector, () => {
|
|
11225
|
+
afterNextRender(() => {
|
|
11226
|
+
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby') ||
|
|
11227
|
+
this.searchbar.input.nativeElement.getAttribute('data-kendo-label-id');
|
|
11228
|
+
if (ariaLabel) {
|
|
11229
|
+
this.renderer.setAttribute(this.tagList.hostElement.nativeElement, 'aria-labelledby', ariaLabel);
|
|
11230
|
+
}
|
|
11231
|
+
});
|
|
10992
11232
|
});
|
|
11233
|
+
const control = this.formControl;
|
|
11234
|
+
if (control && control.events) {
|
|
11235
|
+
this.subs.add(control.events.subscribe(e => {
|
|
11236
|
+
if (e instanceof TouchedChangeEvent) {
|
|
11237
|
+
this.cdr.markForCheck();
|
|
11238
|
+
}
|
|
11239
|
+
}));
|
|
11240
|
+
}
|
|
10993
11241
|
}
|
|
10994
11242
|
ngOnDestroy() {
|
|
10995
11243
|
this._toggle(false);
|
|
@@ -11006,23 +11254,22 @@ class MultiSelectComponent {
|
|
|
11006
11254
|
// The Promise is required for opening the popup on load.
|
|
11007
11255
|
// Otherwise, the "Expression has changed..." type error will be thrown.
|
|
11008
11256
|
Promise.resolve(null).then(() => {
|
|
11009
|
-
const shouldOpen = isPresent(open) ? open : !this._open;
|
|
11257
|
+
const shouldOpen = isPresent(open) ? open : !this._open();
|
|
11010
11258
|
this._toggle(shouldOpen);
|
|
11011
|
-
this.cdr.markForCheck();
|
|
11012
11259
|
});
|
|
11013
11260
|
}
|
|
11014
11261
|
/**
|
|
11015
11262
|
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
11016
11263
|
*/
|
|
11017
11264
|
get isOpen() {
|
|
11018
|
-
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
11265
|
+
return isTruthy(this._open() || this.isActionSheetExpanded);
|
|
11019
11266
|
}
|
|
11020
11267
|
/**
|
|
11021
11268
|
* Resets the MultiSelect by clearing the text and value.
|
|
11022
11269
|
* This method does not trigger the `selectionChange` and `valueChange` events.
|
|
11023
11270
|
*/
|
|
11024
11271
|
reset() {
|
|
11025
|
-
this.
|
|
11272
|
+
this._text.set('');
|
|
11026
11273
|
this.value = [];
|
|
11027
11274
|
}
|
|
11028
11275
|
/**
|
|
@@ -11054,7 +11301,6 @@ class MultiSelectComponent {
|
|
|
11054
11301
|
* @hidden
|
|
11055
11302
|
*/
|
|
11056
11303
|
setDisabledState(isDisabled) {
|
|
11057
|
-
this.cdr.markForCheck();
|
|
11058
11304
|
this.disabled = isDisabled;
|
|
11059
11305
|
}
|
|
11060
11306
|
/**
|
|
@@ -11068,13 +11314,43 @@ class MultiSelectComponent {
|
|
|
11068
11314
|
}
|
|
11069
11315
|
onChangeCallback = (_) => { };
|
|
11070
11316
|
onTouchedCallback = (_) => { };
|
|
11071
|
-
|
|
11072
|
-
|
|
11073
|
-
|
|
11074
|
-
|
|
11075
|
-
|
|
11076
|
-
|
|
11077
|
-
|
|
11317
|
+
_popupRef = signal(null, ...(ngDevMode ? [{ debugName: "_popupRef" }] : []));
|
|
11318
|
+
_placeholder = signal('', ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
|
|
11319
|
+
_open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : []));
|
|
11320
|
+
_value = signal([], ...(ngDevMode ? [{ debugName: "_value" }] : []));
|
|
11321
|
+
_popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
|
|
11322
|
+
_virtualSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_virtualSettings" }] : []));
|
|
11323
|
+
_valuePrimitive = signal(undefined, ...(ngDevMode ? [{ debugName: "_valuePrimitive" }] : []));
|
|
11324
|
+
_checkboxes = signal({ enabled: false }, ...(ngDevMode ? [{ debugName: "_checkboxes" }] : []));
|
|
11325
|
+
_text = signal(undefined, ...(ngDevMode ? [{ debugName: "_text" }] : []));
|
|
11326
|
+
_tags = signal(undefined, ...(ngDevMode ? [{ debugName: "_tags" }] : []));
|
|
11327
|
+
_showStickyHeader = signal(true, ...(ngDevMode ? [{ debugName: "_showStickyHeader" }] : []));
|
|
11328
|
+
_focusableId = signal(`k-${guid()}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
|
|
11329
|
+
_autoClose = signal(true, ...(ngDevMode ? [{ debugName: "_autoClose" }] : []));
|
|
11330
|
+
_loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
|
|
11331
|
+
_valueField = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueField" }] : []));
|
|
11332
|
+
_textField = signal(undefined, ...(ngDevMode ? [{ debugName: "_textField" }] : []));
|
|
11333
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
|
|
11334
|
+
_adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
|
|
11335
|
+
_adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
|
|
11336
|
+
_adaptiveSubtitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
|
|
11337
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
11338
|
+
_readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
|
|
11339
|
+
_filterable = signal(false, ...(ngDevMode ? [{ debugName: "_filterable" }] : []));
|
|
11340
|
+
_clearButton = signal(true, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
|
|
11341
|
+
_tagMapper = signal((tags) => tags || [], ...(ngDevMode ? [{ debugName: "_tagMapper" }] : []));
|
|
11342
|
+
_allowCustom = signal(false, ...(ngDevMode ? [{ debugName: "_allowCustom" }] : []));
|
|
11343
|
+
_valueNormalizer = signal((text) => text.pipe(map((userInput) => {
|
|
11344
|
+
const comparer = (item) => typeof item === 'string' && userInput.toLowerCase() === item.toLowerCase();
|
|
11345
|
+
const matchingValue = this.value.find(comparer);
|
|
11346
|
+
if (matchingValue) {
|
|
11347
|
+
return matchingValue;
|
|
11348
|
+
}
|
|
11349
|
+
const matchingItem = this.dataService.find(comparer);
|
|
11350
|
+
return matchingItem ? matchingItem : userInput;
|
|
11351
|
+
})), ...(ngDevMode ? [{ debugName: "_valueNormalizer" }] : []));
|
|
11352
|
+
_inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
|
|
11353
|
+
_listHeight = signal(200, ...(ngDevMode ? [{ debugName: "_listHeight" }] : []));
|
|
11078
11354
|
_isFocused = false;
|
|
11079
11355
|
set isFocused(isFocused) {
|
|
11080
11356
|
this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
|
|
@@ -11243,7 +11519,9 @@ class MultiSelectComponent {
|
|
|
11243
11519
|
const itemIndex = this.dataService.indexOf(newValue);
|
|
11244
11520
|
const customItem = itemIndex === -1;
|
|
11245
11521
|
if (this.value.indexOf(newValue) === -1) {
|
|
11246
|
-
!this.isActionSheetExpanded
|
|
11522
|
+
if (!this.isActionSheetExpanded) {
|
|
11523
|
+
this.tags = this.buildTags([...this.selectedDataItems, normalizedValue]);
|
|
11524
|
+
}
|
|
11247
11525
|
if (!customItem) {
|
|
11248
11526
|
this.selectionService.add(itemIndex);
|
|
11249
11527
|
}
|
|
@@ -11386,6 +11664,7 @@ class MultiSelectComponent {
|
|
|
11386
11664
|
this.selectionService.selectFromTo(0, dataItemsCount - 1);
|
|
11387
11665
|
this.selectionService.emitMultipleAddedRemoved();
|
|
11388
11666
|
}
|
|
11667
|
+
this.cdr.markForCheck();
|
|
11389
11668
|
}
|
|
11390
11669
|
handleSelectAllToBeginning() {
|
|
11391
11670
|
const selectedItemsCount = this.selectionService.selected.length;
|
|
@@ -11565,14 +11844,14 @@ class MultiSelectComponent {
|
|
|
11565
11844
|
return eventArgs.isDefaultPrevented();
|
|
11566
11845
|
}
|
|
11567
11846
|
_toggle(open) {
|
|
11568
|
-
this._open
|
|
11847
|
+
this._open.set(open);
|
|
11569
11848
|
this.destroyPopup();
|
|
11570
11849
|
if (this.isActionSheetExpanded) {
|
|
11571
11850
|
this.actionSheet.toggle(false);
|
|
11572
11851
|
this.closed.emit();
|
|
11573
11852
|
this.isFocused = false;
|
|
11574
11853
|
}
|
|
11575
|
-
if (this._open) {
|
|
11854
|
+
if (this._open()) {
|
|
11576
11855
|
this.createPopup();
|
|
11577
11856
|
}
|
|
11578
11857
|
}
|
|
@@ -11624,7 +11903,7 @@ class MultiSelectComponent {
|
|
|
11624
11903
|
if (!this.dataService.grouped) {
|
|
11625
11904
|
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
11626
11905
|
}
|
|
11627
|
-
this.optionsList
|
|
11906
|
+
this.optionsList?.scrollToItem(this.selectionService.focused);
|
|
11628
11907
|
this.selectionService.focus(this.selectionService.focused);
|
|
11629
11908
|
this.opened.emit();
|
|
11630
11909
|
});
|
|
@@ -12025,12 +12304,14 @@ class MultiSelectComponent {
|
|
|
12025
12304
|
</ng-template>
|
|
12026
12305
|
}
|
|
12027
12306
|
</ng-template>
|
|
12028
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
12307
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12029
12308
|
}
|
|
12030
12309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
12031
12310
|
type: Component,
|
|
12032
12311
|
args: [{
|
|
12312
|
+
selector: 'kendo-multiselect',
|
|
12033
12313
|
exportAs: 'kendoMultiSelect',
|
|
12314
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12034
12315
|
providers: [
|
|
12035
12316
|
MULTISELECT_VALUE_ACCESSOR,
|
|
12036
12317
|
DataService,
|
|
@@ -12053,7 +12334,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
12053
12334
|
},
|
|
12054
12335
|
provideComponentName('multiselect')
|
|
12055
12336
|
],
|
|
12056
|
-
selector: 'kendo-multiselect',
|
|
12057
12337
|
template: `
|
|
12058
12338
|
<ng-container kendoMultiSelectLocalizedMessages
|
|
12059
12339
|
i18n-noDataText="kendo.multiselect.noDataText|The text displayed in the popup when there are no items"
|
|
@@ -12684,8 +12964,10 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12684
12964
|
set headerTable(headerTable) {
|
|
12685
12965
|
this._headerTable = headerTable;
|
|
12686
12966
|
if (this.headerTable) {
|
|
12687
|
-
this.
|
|
12688
|
-
|
|
12967
|
+
runInInjectionContext(this.injector, () => {
|
|
12968
|
+
afterNextRender(() => {
|
|
12969
|
+
this.rowWidth.set(this.calculateRowWidth());
|
|
12970
|
+
});
|
|
12689
12971
|
});
|
|
12690
12972
|
}
|
|
12691
12973
|
}
|
|
@@ -12696,18 +12978,20 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12696
12978
|
* @hidden
|
|
12697
12979
|
*/
|
|
12698
12980
|
set headerColumns(columns) {
|
|
12699
|
-
this.
|
|
12700
|
-
|
|
12981
|
+
runInInjectionContext(this.injector, () => {
|
|
12982
|
+
afterNextRender(() => {
|
|
12983
|
+
this.headerColumnWidths.set(columns.map(column => column.nativeElement.offsetWidth));
|
|
12984
|
+
});
|
|
12701
12985
|
});
|
|
12702
12986
|
}
|
|
12703
12987
|
/**
|
|
12704
12988
|
* @hidden
|
|
12705
12989
|
*/
|
|
12706
|
-
rowWidth;
|
|
12990
|
+
rowWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "rowWidth" }] : []));
|
|
12707
12991
|
/**
|
|
12708
12992
|
* @hidden
|
|
12709
12993
|
*/
|
|
12710
|
-
headerColumnWidths = [];
|
|
12994
|
+
headerColumnWidths = signal([], ...(ngDevMode ? [{ debugName: "headerColumnWidths" }] : []));
|
|
12711
12995
|
/**
|
|
12712
12996
|
* @hidden
|
|
12713
12997
|
*/
|
|
@@ -12766,12 +13050,20 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12766
13050
|
this.updateColumnsMediaState();
|
|
12767
13051
|
this.addWindowResizeListener();
|
|
12768
13052
|
this.windowSize = this.adaptiveService.size;
|
|
12769
|
-
this.rowWidth
|
|
13053
|
+
this.rowWidth.set(this.calculateRowWidth());
|
|
12770
13054
|
this.totalColumnsWidth = this.columns.reduce((total, currentColumn) => total + currentColumn.width, 0);
|
|
12771
13055
|
this.columnsChangeSubscription = this.columns.changes.subscribe(() => {
|
|
12772
|
-
this.rowWidth
|
|
13056
|
+
this.rowWidth.set(this.calculateRowWidth());
|
|
12773
13057
|
this.totalColumnsWidth = this.columns.reduce((total, currentColumn) => total + currentColumn.width, 0);
|
|
12774
13058
|
});
|
|
13059
|
+
const control = this.formControl;
|
|
13060
|
+
if (control && control.events) {
|
|
13061
|
+
this.subs.add(control.events.subscribe(e => {
|
|
13062
|
+
if (e instanceof TouchedChangeEvent) {
|
|
13063
|
+
this.cdr.markForCheck();
|
|
13064
|
+
}
|
|
13065
|
+
}));
|
|
13066
|
+
}
|
|
12775
13067
|
this.cdr.detectChanges();
|
|
12776
13068
|
}
|
|
12777
13069
|
ngOnDestroy() {
|
|
@@ -12815,7 +13107,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
12815
13107
|
if (!this.virtual) {
|
|
12816
13108
|
return this.columns.get(index).width;
|
|
12817
13109
|
}
|
|
12818
|
-
return this.headerColumnWidths[index];
|
|
13110
|
+
return this.headerColumnWidths()[index];
|
|
12819
13111
|
}
|
|
12820
13112
|
verifySettings() {
|
|
12821
13113
|
if (!isDevMode()) {
|
|
@@ -13122,8 +13414,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
13122
13414
|
[id]="listBoxId"
|
|
13123
13415
|
[virtual]="virtual"
|
|
13124
13416
|
[type]="'dropdowngrid'"
|
|
13125
|
-
[rowWidth]="rowWidth"
|
|
13126
13417
|
[columnsWidths]="visibleColumnsWidths"
|
|
13418
|
+
[rowWidth]="rowWidth()"
|
|
13127
13419
|
[showStickyHeader]="showStickyHeader"
|
|
13128
13420
|
[ariaLabel]="messageFor('listboxLabel')"
|
|
13129
13421
|
(pageChange)="pageChange($event)"
|
|
@@ -13164,11 +13456,13 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
|
|
|
13164
13456
|
}
|
|
13165
13457
|
</div>
|
|
13166
13458
|
</ng-template>
|
|
13167
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
|
|
13459
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13168
13460
|
}
|
|
13169
13461
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
|
|
13170
13462
|
type: Component,
|
|
13171
13463
|
args: [{
|
|
13464
|
+
selector: 'kendo-multicolumncombobox',
|
|
13465
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13172
13466
|
providers: [
|
|
13173
13467
|
SelectionService,
|
|
13174
13468
|
DataService,
|
|
@@ -13202,7 +13496,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
13202
13496
|
},
|
|
13203
13497
|
provideComponentName('multicolumncombobox')
|
|
13204
13498
|
],
|
|
13205
|
-
selector: 'kendo-multicolumncombobox',
|
|
13206
13499
|
template: `
|
|
13207
13500
|
<ng-container
|
|
13208
13501
|
kendoMultiColumnComboBoxLocalizedMessages
|
|
@@ -13435,8 +13728,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
13435
13728
|
[id]="listBoxId"
|
|
13436
13729
|
[virtual]="virtual"
|
|
13437
13730
|
[type]="'dropdowngrid'"
|
|
13438
|
-
[rowWidth]="rowWidth"
|
|
13439
13731
|
[columnsWidths]="visibleColumnsWidths"
|
|
13732
|
+
[rowWidth]="rowWidth()"
|
|
13440
13733
|
[showStickyHeader]="showStickyHeader"
|
|
13441
13734
|
[ariaLabel]="messageFor('listboxLabel')"
|
|
13442
13735
|
(pageChange)="pageChange($event)"
|
|
@@ -13556,11 +13849,13 @@ class DropDownTreeComponent {
|
|
|
13556
13849
|
/**
|
|
13557
13850
|
* @hidden
|
|
13558
13851
|
*/
|
|
13559
|
-
icon;
|
|
13852
|
+
set icon(value) { this._icon.set(value); }
|
|
13853
|
+
get icon() { return this._icon(); }
|
|
13560
13854
|
/**
|
|
13561
13855
|
* @hidden
|
|
13562
13856
|
*/
|
|
13563
|
-
svgIcon;
|
|
13857
|
+
set svgIcon(value) { this._svgIcon.set(value); }
|
|
13858
|
+
get svgIcon() { return this._svgIcon(); }
|
|
13564
13859
|
/**
|
|
13565
13860
|
* @hidden
|
|
13566
13861
|
*/
|
|
@@ -13601,6 +13896,9 @@ class DropDownTreeComponent {
|
|
|
13601
13896
|
get isReadonly() {
|
|
13602
13897
|
return this.readonly ? '' : null;
|
|
13603
13898
|
}
|
|
13899
|
+
get isReadonlyClass() {
|
|
13900
|
+
return this.readonly;
|
|
13901
|
+
}
|
|
13604
13902
|
get hostAriaInvalid() {
|
|
13605
13903
|
return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
|
|
13606
13904
|
}
|
|
@@ -13702,23 +14000,25 @@ class DropDownTreeComponent {
|
|
|
13702
14000
|
/**
|
|
13703
14001
|
* Sets and gets the loading state of the DropDownTree.
|
|
13704
14002
|
*/
|
|
13705
|
-
loading;
|
|
14003
|
+
set loading(value) { this._loading.set(value); }
|
|
14004
|
+
get loading() { return this._loading(); }
|
|
13706
14005
|
/**
|
|
13707
14006
|
* If set to `true`, renders a button on hovering over the component.
|
|
13708
14007
|
* Clicking this button resets the value of the component to `undefined` and triggers the `change` event.
|
|
13709
14008
|
*/
|
|
13710
|
-
clearButton
|
|
14009
|
+
set clearButton(value) { this._clearButton.set(value); }
|
|
14010
|
+
get clearButton() { return this._clearButton(); }
|
|
13711
14011
|
/**
|
|
13712
14012
|
* Sets the data of the DropDownTree.
|
|
13713
14013
|
*
|
|
13714
14014
|
* > The data has to be provided in an array-like list with objects.
|
|
13715
14015
|
*/
|
|
13716
14016
|
set data(data) {
|
|
13717
|
-
this.
|
|
14017
|
+
this._data.set(data);
|
|
13718
14018
|
this.setState();
|
|
13719
14019
|
}
|
|
13720
14020
|
get data() {
|
|
13721
|
-
return this.
|
|
14021
|
+
return this._data();
|
|
13722
14022
|
}
|
|
13723
14023
|
/**
|
|
13724
14024
|
* Sets the value of the DropDownTree.
|
|
@@ -13727,11 +14027,11 @@ class DropDownTreeComponent {
|
|
|
13727
14027
|
*
|
|
13728
14028
|
*/
|
|
13729
14029
|
set value(newValue) {
|
|
13730
|
-
this._value
|
|
14030
|
+
this._value.set(newValue);
|
|
13731
14031
|
this.setState();
|
|
13732
14032
|
}
|
|
13733
14033
|
get value() {
|
|
13734
|
-
return this._value;
|
|
14034
|
+
return this._value();
|
|
13735
14035
|
}
|
|
13736
14036
|
/**
|
|
13737
14037
|
* The fields of the data item that provide the text content of the nodes inside the
|
|
@@ -13741,7 +14041,8 @@ class DropDownTreeComponent {
|
|
|
13741
14041
|
*
|
|
13742
14042
|
* > The `textField` property can be set to point to a nested property value - e.g. `category.name`.
|
|
13743
14043
|
*/
|
|
13744
|
-
textField;
|
|
14044
|
+
set textField(value) { this._textField.set(value); }
|
|
14045
|
+
get textField() { return this._textField(); }
|
|
13745
14046
|
/**
|
|
13746
14047
|
* The fields of the data item that provide the value of the nodes inside the
|
|
13747
14048
|
* DropDownTree ([see example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/data-binding)). If the `valueField`
|
|
@@ -13750,24 +14051,29 @@ class DropDownTreeComponent {
|
|
|
13750
14051
|
*
|
|
13751
14052
|
* > The `valueField` property can be set to point to a nested property value - e.g. `category.id`.
|
|
13752
14053
|
*/
|
|
13753
|
-
valueField;
|
|
14054
|
+
set valueField(value) { this._valueField.set(value); }
|
|
14055
|
+
get valueField() { return this._valueField(); }
|
|
13754
14056
|
/**
|
|
13755
14057
|
* Sets the level in the data set where the value can be found when `valueField` is an Array.
|
|
13756
14058
|
* The field serves to correctly allocate a data item used when the DropDownTree is initialized with a value.
|
|
13757
14059
|
*/
|
|
13758
|
-
valueDepth;
|
|
14060
|
+
set valueDepth(value) { this._valueDepth.set(value); }
|
|
14061
|
+
get valueDepth() { return this._valueDepth(); }
|
|
13759
14062
|
/**
|
|
13760
14063
|
* A function which determines if a specific node has child nodes.
|
|
13761
14064
|
*/
|
|
13762
|
-
hasChildren
|
|
14065
|
+
set hasChildren(fn) { this._hasChildren.set(fn); }
|
|
14066
|
+
get hasChildren() { return this._hasChildren(); }
|
|
13763
14067
|
/**
|
|
13764
14068
|
* A function which provides the child nodes for a given parent node.
|
|
13765
14069
|
*/
|
|
13766
|
-
fetchChildren
|
|
14070
|
+
set fetchChildren(fn) { this._fetchChildren.set(fn); }
|
|
14071
|
+
get fetchChildren() { return this._fetchChildren(); }
|
|
13767
14072
|
/**
|
|
13768
14073
|
* Sets the placeholder of the input element of the DropDownTree.
|
|
13769
14074
|
*/
|
|
13770
|
-
placeholder
|
|
14075
|
+
set placeholder(value) { this._placeholder.set(value); }
|
|
14076
|
+
get placeholder() { return this._placeholder(); }
|
|
13771
14077
|
/**
|
|
13772
14078
|
* Configures the popup of the DropDownTree.
|
|
13773
14079
|
*
|
|
@@ -13779,21 +14085,21 @@ class DropDownTreeComponent {
|
|
|
13779
14085
|
* - `appendTo: "root" | "component" | ViewContainerRef`—Specifies the component to which the popup will be appended.
|
|
13780
14086
|
*/
|
|
13781
14087
|
set popupSettings(settings) {
|
|
13782
|
-
this._popupSettings
|
|
14088
|
+
this._popupSettings.set(Object.assign({}, DEFAULT_POPUP_SETTINGS$1, settings));
|
|
13783
14089
|
}
|
|
13784
14090
|
get popupSettings() {
|
|
13785
|
-
return this._popupSettings;
|
|
14091
|
+
return this._popupSettings();
|
|
13786
14092
|
}
|
|
13787
14093
|
/**
|
|
13788
14094
|
* Keeps the current `dataItem` object in order to resolve selection.
|
|
13789
14095
|
* Needs to be provided when `value` is bound in and `valuePrimitive` is set to true.
|
|
13790
14096
|
*/
|
|
13791
14097
|
set dataItem(item) {
|
|
13792
|
-
this._dataItem
|
|
14098
|
+
this._dataItem.set(item);
|
|
13793
14099
|
this.setState();
|
|
13794
14100
|
}
|
|
13795
14101
|
get dataItem() {
|
|
13796
|
-
return this._dataItem ? this._dataItem : this.value;
|
|
14102
|
+
return this._dataItem() ? this._dataItem() : this.value;
|
|
13797
14103
|
}
|
|
13798
14104
|
/**
|
|
13799
14105
|
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
@@ -13804,31 +14110,33 @@ class DropDownTreeComponent {
|
|
|
13804
14110
|
* When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
13805
14111
|
*/
|
|
13806
14112
|
set listHeight(_listHeight) {
|
|
13807
|
-
this._listHeight
|
|
14113
|
+
this._listHeight.set(_listHeight);
|
|
13808
14114
|
}
|
|
13809
14115
|
get listHeight() {
|
|
13810
14116
|
if (this.isAdaptive) {
|
|
13811
14117
|
return;
|
|
13812
14118
|
}
|
|
13813
|
-
return this._listHeight;
|
|
14119
|
+
return this._listHeight();
|
|
13814
14120
|
}
|
|
13815
|
-
_listHeight = 200;
|
|
13816
14121
|
/**
|
|
13817
14122
|
* Sets the disabled state of the component. To learn how to disable the component in reactive forms, refer to the article on [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/forms#managing-the-dropdowntree-disabled-state-in-reactive-forms).
|
|
13818
14123
|
*/
|
|
13819
|
-
disabled
|
|
14124
|
+
set disabled(value) { this._disabled.set(value); }
|
|
14125
|
+
get disabled() { return this._disabled(); }
|
|
13820
14126
|
/**
|
|
13821
14127
|
* Sets the read-only state of the component.
|
|
13822
14128
|
*
|
|
13823
14129
|
* @default false
|
|
13824
14130
|
*/
|
|
13825
|
-
readonly
|
|
14131
|
+
set readonly(value) { this._readonly.set(value); }
|
|
14132
|
+
get readonly() { return this._readonly(); }
|
|
13826
14133
|
/**
|
|
13827
14134
|
* Specifies the type of the selected value
|
|
13828
14135
|
* ([more information and example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding#primitive-values)).
|
|
13829
14136
|
* If set to `true`, the selected value has to be of a primitive value.
|
|
13830
14137
|
*/
|
|
13831
|
-
valuePrimitive
|
|
14138
|
+
set valuePrimitive(value) { this._valuePrimitive.set(value); }
|
|
14139
|
+
get valuePrimitive() { return this._valuePrimitive(); }
|
|
13832
14140
|
/**
|
|
13833
14141
|
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
13834
14142
|
*
|
|
@@ -13837,10 +14145,10 @@ class DropDownTreeComponent {
|
|
|
13837
14145
|
set tabindex(value) {
|
|
13838
14146
|
const providedTabIndex = Number(value);
|
|
13839
14147
|
const defaultTabIndex = 0;
|
|
13840
|
-
this._tabindex
|
|
14148
|
+
this._tabindex.set(!isNaN(providedTabIndex) ? providedTabIndex : defaultTabIndex);
|
|
13841
14149
|
}
|
|
13842
14150
|
get tabindex() {
|
|
13843
|
-
return this.disabled ? -1 : this._tabindex;
|
|
14151
|
+
return this.disabled ? -1 : this._tabindex();
|
|
13844
14152
|
}
|
|
13845
14153
|
/**
|
|
13846
14154
|
* Sets the size of the component. The default value is set by the Kendo theme.
|
|
@@ -13850,10 +14158,10 @@ class DropDownTreeComponent {
|
|
|
13850
14158
|
if (size) {
|
|
13851
14159
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('picker', size));
|
|
13852
14160
|
}
|
|
13853
|
-
this._size
|
|
14161
|
+
this._size.set(size);
|
|
13854
14162
|
}
|
|
13855
14163
|
get size() {
|
|
13856
|
-
return this._size;
|
|
14164
|
+
return this._size();
|
|
13857
14165
|
}
|
|
13858
14166
|
/**
|
|
13859
14167
|
* Sets the border radius of the component. The default value is set by the Kendo theme.
|
|
@@ -13863,10 +14171,10 @@ class DropDownTreeComponent {
|
|
|
13863
14171
|
if (rounded) {
|
|
13864
14172
|
this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
|
|
13865
14173
|
}
|
|
13866
|
-
this._rounded
|
|
14174
|
+
this._rounded.set(rounded);
|
|
13867
14175
|
}
|
|
13868
14176
|
get rounded() {
|
|
13869
|
-
return this._rounded;
|
|
14177
|
+
return this._rounded();
|
|
13870
14178
|
}
|
|
13871
14179
|
/**
|
|
13872
14180
|
* Sets the fillMode of the component. The default value is set by the Kendo theme.
|
|
@@ -13876,51 +14184,58 @@ class DropDownTreeComponent {
|
|
|
13876
14184
|
if (fillMode) {
|
|
13877
14185
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', fillMode));
|
|
13878
14186
|
}
|
|
13879
|
-
this._fillMode
|
|
14187
|
+
this._fillMode.set(fillMode);
|
|
13880
14188
|
}
|
|
13881
14189
|
get fillMode() {
|
|
13882
|
-
return this._fillMode;
|
|
14190
|
+
return this._fillMode();
|
|
13883
14191
|
}
|
|
13884
14192
|
/**
|
|
13885
14193
|
* A function that is executed for each data item and determines if a specific item is disabled.
|
|
13886
14194
|
*/
|
|
13887
|
-
itemDisabled
|
|
14195
|
+
set itemDisabled(fn) { this._itemDisabled.set(fn); }
|
|
14196
|
+
get itemDisabled() { return this._itemDisabled(); }
|
|
13888
14197
|
/**
|
|
13889
14198
|
* A function that is executed for each data item and determines if a specific node is expanded.
|
|
13890
14199
|
*/
|
|
13891
|
-
isNodeExpanded;
|
|
14200
|
+
set isNodeExpanded(fn) { this._isNodeExpanded.set(fn); }
|
|
14201
|
+
get isNodeExpanded() { return this._isNodeExpanded(); }
|
|
13892
14202
|
/**
|
|
13893
14203
|
* A callback which determines whether a tree node should be rendered as hidden. The utility `.k-hidden` class is used to hide the nodes.
|
|
13894
14204
|
* Useful for custom filtering implementations.
|
|
13895
14205
|
*/
|
|
13896
|
-
isNodeVisible
|
|
14206
|
+
set isNodeVisible(fn) { this._isNodeVisible.set(fn); }
|
|
14207
|
+
get isNodeVisible() { return this._isNodeVisible(); }
|
|
13897
14208
|
/**
|
|
13898
14209
|
* Indicates whether the child nodes will be fetched on node expand or will be initially prefetched.
|
|
13899
14210
|
* @default true
|
|
13900
14211
|
*/
|
|
13901
|
-
loadOnDemand
|
|
14212
|
+
set loadOnDemand(value) { this._loadOnDemand.set(value); }
|
|
14213
|
+
get loadOnDemand() { return this._loadOnDemand(); }
|
|
13902
14214
|
/**
|
|
13903
14215
|
* Renders the built-in input element for filtering the DropDownTree.
|
|
13904
14216
|
* If set to `true`, the component emits the `filterChange` event, which can be used to [filter the DropDownTree manually](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/filtering#manual-filtering).
|
|
13905
14217
|
* A built-in filtering implementation is available to use with the [`kendoDropDownTreeHierarchyBinding`](https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/dropdowntreehierarchybindingdirective) and [`kendoDropDownTreeFlatBinding`](https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/dropdowntreeflatbindingdirective) directives.
|
|
13906
14218
|
*/
|
|
13907
|
-
filterable
|
|
14219
|
+
set filterable(value) { this._filterable.set(value); }
|
|
14220
|
+
get filterable() { return this._filterable(); }
|
|
13908
14221
|
/**
|
|
13909
14222
|
* @hidden
|
|
13910
14223
|
*/
|
|
13911
|
-
filter
|
|
14224
|
+
set filter(value) { this._filter.set(value); }
|
|
14225
|
+
get filter() { return this._filter(); }
|
|
13912
14226
|
/**
|
|
13913
14227
|
* @hidden
|
|
13914
14228
|
*
|
|
13915
14229
|
* Used by the kendo-label and kendo-floatinglabel to access and associate the focusable element with the provided label via aria-labelledby.
|
|
13916
14230
|
*/
|
|
13917
|
-
focusableId
|
|
14231
|
+
set focusableId(value) { this._focusableId.set(value); }
|
|
14232
|
+
get focusableId() { return this._focusableId(); }
|
|
13918
14233
|
set isFocused(isFocused) {
|
|
13919
14234
|
this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
|
|
13920
|
-
this._isFocused
|
|
14235
|
+
this._isFocused.set(isFocused);
|
|
13921
14236
|
}
|
|
13922
14237
|
get isFocused() {
|
|
13923
|
-
return this._isFocused;
|
|
14238
|
+
return this._isFocused();
|
|
13924
14239
|
}
|
|
13925
14240
|
get width() {
|
|
13926
14241
|
const wrapperWidth = this.wrapper.nativeElement.offsetWidth;
|
|
@@ -13956,15 +14271,18 @@ class DropDownTreeComponent {
|
|
|
13956
14271
|
/**
|
|
13957
14272
|
* @hidden
|
|
13958
14273
|
*/
|
|
13959
|
-
selectedKeys
|
|
14274
|
+
get selectedKeys() { return this._selectedKeys(); }
|
|
14275
|
+
set selectedKeys(value) { this._selectedKeys.set(value); }
|
|
13960
14276
|
/**
|
|
13961
14277
|
* @hidden
|
|
13962
14278
|
*/
|
|
13963
|
-
selectBy;
|
|
14279
|
+
get selectBy() { return this._selectBy(); }
|
|
14280
|
+
set selectBy(value) { this._selectBy.set(value); }
|
|
13964
14281
|
/**
|
|
13965
14282
|
* @hidden
|
|
13966
14283
|
*/
|
|
13967
|
-
text;
|
|
14284
|
+
get text() { return this._text(); }
|
|
14285
|
+
set text(value) { this._text.set(value); }
|
|
13968
14286
|
/**
|
|
13969
14287
|
* @hidden
|
|
13970
14288
|
*/
|
|
@@ -13976,17 +14294,20 @@ class DropDownTreeComponent {
|
|
|
13976
14294
|
/**
|
|
13977
14295
|
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
13978
14296
|
*/
|
|
13979
|
-
adaptiveMode
|
|
14297
|
+
set adaptiveMode(value) { this._adaptiveMode.set(value); }
|
|
14298
|
+
get adaptiveMode() { return this._adaptiveMode(); }
|
|
13980
14299
|
/**
|
|
13981
14300
|
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
13982
14301
|
* By default the ActionSheet title uses the text provided for the label of the DropDownTree.
|
|
13983
14302
|
*/
|
|
13984
|
-
adaptiveTitle
|
|
14303
|
+
set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
|
|
14304
|
+
get adaptiveTitle() { return this._adaptiveTitle(); }
|
|
13985
14305
|
/**
|
|
13986
14306
|
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
13987
14307
|
* By default the ActionSheet does not render a subtitle.
|
|
13988
14308
|
*/
|
|
13989
|
-
adaptiveSubtitle
|
|
14309
|
+
set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
|
|
14310
|
+
get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
|
|
13990
14311
|
/**
|
|
13991
14312
|
* @hidden
|
|
13992
14313
|
*/
|
|
@@ -13996,7 +14317,8 @@ class DropDownTreeComponent {
|
|
|
13996
14317
|
/**
|
|
13997
14318
|
* @hidden
|
|
13998
14319
|
*/
|
|
13999
|
-
windowSize
|
|
14320
|
+
get windowSize() { return this._windowSize(); }
|
|
14321
|
+
set windowSize(value) { this._windowSize.set(value); }
|
|
14000
14322
|
/**
|
|
14001
14323
|
* @hidden
|
|
14002
14324
|
*/
|
|
@@ -14082,7 +14404,8 @@ class DropDownTreeComponent {
|
|
|
14082
14404
|
/**
|
|
14083
14405
|
* @hidden
|
|
14084
14406
|
*/
|
|
14085
|
-
allNodesHidden
|
|
14407
|
+
get allNodesHidden() { return this._allNodesHidden(); }
|
|
14408
|
+
set allNodesHidden(value) { this._allNodesHidden.set(value); }
|
|
14086
14409
|
/**
|
|
14087
14410
|
* @hidden
|
|
14088
14411
|
*
|
|
@@ -14097,17 +14420,7 @@ class DropDownTreeComponent {
|
|
|
14097
14420
|
return ngControl?.control || null;
|
|
14098
14421
|
}
|
|
14099
14422
|
treeViewId = `k-${guid()}`;
|
|
14100
|
-
_nodes;
|
|
14101
|
-
_value;
|
|
14102
|
-
_popupSettings = DEFAULT_POPUP_SETTINGS$1;
|
|
14103
|
-
_tabindex = 0;
|
|
14104
|
-
_isFocused = false;
|
|
14105
|
-
_dataItem;
|
|
14106
14423
|
_treeview;
|
|
14107
|
-
_size;
|
|
14108
|
-
_rounded;
|
|
14109
|
-
_fillMode;
|
|
14110
|
-
_popupRef = signal(null, ...(ngDevMode ? [{ debugName: "_popupRef" }] : []));
|
|
14111
14424
|
_searchableNodes = [];
|
|
14112
14425
|
_typedValue = '';
|
|
14113
14426
|
printableCharacters = new Subject();
|
|
@@ -14116,6 +14429,45 @@ class DropDownTreeComponent {
|
|
|
14116
14429
|
// Keep an instance of the last focused node for when the popup close is prevented
|
|
14117
14430
|
// in order to be able to properly restore the focus
|
|
14118
14431
|
lastNodeOnFocus;
|
|
14432
|
+
_popupRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_popupRef" }] : []));
|
|
14433
|
+
_icon = signal(undefined, ...(ngDevMode ? [{ debugName: "_icon" }] : []));
|
|
14434
|
+
_svgIcon = signal(undefined, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : []));
|
|
14435
|
+
_loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
|
|
14436
|
+
_clearButton = signal(true, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
|
|
14437
|
+
_textField = signal(undefined, ...(ngDevMode ? [{ debugName: "_textField" }] : []));
|
|
14438
|
+
_valueField = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueField" }] : []));
|
|
14439
|
+
_valueDepth = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueDepth" }] : []));
|
|
14440
|
+
_hasChildren = signal(hasChildren$1, ...(ngDevMode ? [{ debugName: "_hasChildren" }] : []));
|
|
14441
|
+
_fetchChildren = signal(fetchChildren$1, ...(ngDevMode ? [{ debugName: "_fetchChildren" }] : []));
|
|
14442
|
+
_placeholder = signal('', ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
|
|
14443
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
14444
|
+
_readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
|
|
14445
|
+
_valuePrimitive = signal(false, ...(ngDevMode ? [{ debugName: "_valuePrimitive" }] : []));
|
|
14446
|
+
_loadOnDemand = signal(true, ...(ngDevMode ? [{ debugName: "_loadOnDemand" }] : []));
|
|
14447
|
+
_filterable = signal(false, ...(ngDevMode ? [{ debugName: "_filterable" }] : []));
|
|
14448
|
+
_filter = signal('', ...(ngDevMode ? [{ debugName: "_filter" }] : []));
|
|
14449
|
+
_focusableId = signal(`k-${guid()}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
|
|
14450
|
+
_adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
|
|
14451
|
+
_adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
|
|
14452
|
+
_adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
|
|
14453
|
+
_isNodeExpanded = signal(undefined, ...(ngDevMode ? [{ debugName: "_isNodeExpanded" }] : []));
|
|
14454
|
+
_isNodeVisible = signal(isNodeVisible$1, ...(ngDevMode ? [{ debugName: "_isNodeVisible" }] : []));
|
|
14455
|
+
_itemDisabled = signal(itemDisabled$1, ...(ngDevMode ? [{ debugName: "_itemDisabled" }] : []));
|
|
14456
|
+
_data = signal(undefined, ...(ngDevMode ? [{ debugName: "_data" }] : []));
|
|
14457
|
+
_value = signal(undefined, ...(ngDevMode ? [{ debugName: "_value" }] : []));
|
|
14458
|
+
_popupSettings = signal(DEFAULT_POPUP_SETTINGS$1, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
|
|
14459
|
+
_dataItem = signal(undefined, ...(ngDevMode ? [{ debugName: "_dataItem" }] : []));
|
|
14460
|
+
_listHeight = signal(200, ...(ngDevMode ? [{ debugName: "_listHeight" }] : []));
|
|
14461
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
|
|
14462
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
14463
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
|
|
14464
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
|
|
14465
|
+
_isFocused = signal(false, ...(ngDevMode ? [{ debugName: "_isFocused" }] : []));
|
|
14466
|
+
_text = signal(undefined, ...(ngDevMode ? [{ debugName: "_text" }] : []));
|
|
14467
|
+
_allNodesHidden = signal(false, ...(ngDevMode ? [{ debugName: "_allNodesHidden" }] : []));
|
|
14468
|
+
_selectedKeys = signal([], ...(ngDevMode ? [{ debugName: "_selectedKeys" }] : []));
|
|
14469
|
+
_selectBy = signal(undefined, ...(ngDevMode ? [{ debugName: "_selectBy" }] : []));
|
|
14470
|
+
_windowSize = signal('large', ...(ngDevMode ? [{ debugName: "_windowSize" }] : []));
|
|
14119
14471
|
constructor(injector, wrapper, popupService, navigationService, renderer, _zone, cdr, localization, adaptiveService) {
|
|
14120
14472
|
this.injector = injector;
|
|
14121
14473
|
this.wrapper = wrapper;
|
|
@@ -14184,6 +14536,14 @@ class DropDownTreeComponent {
|
|
|
14184
14536
|
this.windowSize = this.adaptiveService.size;
|
|
14185
14537
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'click', this.handleClick.bind(this)));
|
|
14186
14538
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
14539
|
+
const control = this.formControl;
|
|
14540
|
+
if (control && control.events) {
|
|
14541
|
+
this.subs.add(control.events.subscribe(e => {
|
|
14542
|
+
if (e instanceof TouchedChangeEvent) {
|
|
14543
|
+
this.cdr.markForCheck();
|
|
14544
|
+
}
|
|
14545
|
+
}));
|
|
14546
|
+
}
|
|
14187
14547
|
}
|
|
14188
14548
|
/**
|
|
14189
14549
|
* @hidden
|
|
@@ -14444,7 +14804,6 @@ class DropDownTreeComponent {
|
|
|
14444
14804
|
*/
|
|
14445
14805
|
setDisabledState(isDisabled) {
|
|
14446
14806
|
this.disabled = isDisabled;
|
|
14447
|
-
this.cdr.markForCheck();
|
|
14448
14807
|
}
|
|
14449
14808
|
/**
|
|
14450
14809
|
* @hidden
|
|
@@ -14454,10 +14813,12 @@ class DropDownTreeComponent {
|
|
|
14454
14813
|
this.filter = value;
|
|
14455
14814
|
this.filterChange.next(value);
|
|
14456
14815
|
this.allNodesHidden = this.areNodesHidden(this.nodes);
|
|
14457
|
-
this.
|
|
14458
|
-
|
|
14459
|
-
this.
|
|
14460
|
-
|
|
14816
|
+
runInInjectionContext(this.injector, () => {
|
|
14817
|
+
afterNextRender(() => {
|
|
14818
|
+
if (this.data.length === 0 || this.allNodesHidden || this.filter === '') {
|
|
14819
|
+
this.filterInput?.nativeElement.focus();
|
|
14820
|
+
}
|
|
14821
|
+
});
|
|
14461
14822
|
});
|
|
14462
14823
|
}
|
|
14463
14824
|
/**
|
|
@@ -14645,7 +15006,6 @@ class DropDownTreeComponent {
|
|
|
14645
15006
|
else {
|
|
14646
15007
|
this.clearState();
|
|
14647
15008
|
}
|
|
14648
|
-
this.cdr.markForCheck();
|
|
14649
15009
|
}
|
|
14650
15010
|
clearState() {
|
|
14651
15011
|
this.text = undefined;
|
|
@@ -14811,7 +15171,7 @@ class DropDownTreeComponent {
|
|
|
14811
15171
|
this.removeTreeViewFromTabOrder();
|
|
14812
15172
|
}
|
|
14813
15173
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", 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: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14814
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: DropDownTreeComponent, isStandalone: true, selector: "kendo-dropdowntree", inputs: { icon: "icon", svgIcon: "svgIcon", 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", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle" }, 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.aria-disabled": "this.isDisabled", "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"
|
|
15174
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: DropDownTreeComponent, isStandalone: true, selector: "kendo-dropdowntree", inputs: { icon: "icon", svgIcon: "svgIcon", 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", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle" }, 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", "class.k-readonly": "this.isReadonlyClass", "attr.aria-invalid": "this.hostAriaInvalid", "class.k-disabled": "this.isDisabled", "attr.aria-disabled": "this.isDisabled", "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: [
|
|
14815
15175
|
DataService,
|
|
14816
15176
|
SelectionService,
|
|
14817
15177
|
NavigationService,
|
|
@@ -15045,6 +15405,7 @@ class DropDownTreeComponent {
|
|
|
15045
15405
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeComponent, decorators: [{
|
|
15046
15406
|
type: Component,
|
|
15047
15407
|
args: [{
|
|
15408
|
+
selector: 'kendo-dropdowntree',
|
|
15048
15409
|
exportAs: 'kendoDropDownTree',
|
|
15049
15410
|
providers: [
|
|
15050
15411
|
DataService,
|
|
@@ -15079,7 +15440,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15079
15440
|
},
|
|
15080
15441
|
provideComponentName('dropdowntree')
|
|
15081
15442
|
],
|
|
15082
|
-
selector: 'kendo-dropdowntree',
|
|
15083
15443
|
template: `
|
|
15084
15444
|
<ng-container kendoDropDownTreeLocalizedMessages
|
|
15085
15445
|
i18n-noDataText="kendo.dropdowntree.noDataText|The text displayed in the popup when there are no items"
|
|
@@ -15298,6 +15658,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15298
15658
|
}], isReadonly: [{
|
|
15299
15659
|
type: HostBinding,
|
|
15300
15660
|
args: ['attr.readonly']
|
|
15661
|
+
}], isReadonlyClass: [{
|
|
15662
|
+
type: HostBinding,
|
|
15663
|
+
args: ['class.k-readonly']
|
|
15301
15664
|
}], hostAriaInvalid: [{
|
|
15302
15665
|
type: HostBinding,
|
|
15303
15666
|
args: ['attr.aria-invalid']
|
|
@@ -15416,9 +15779,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15416
15779
|
type: Input
|
|
15417
15780
|
}], readonly: [{
|
|
15418
15781
|
type: Input
|
|
15419
|
-
}, {
|
|
15420
|
-
type: HostBinding,
|
|
15421
|
-
args: ['class.k-readonly']
|
|
15422
15782
|
}], valuePrimitive: [{
|
|
15423
15783
|
type: Input
|
|
15424
15784
|
}], tabindex: [{
|
|
@@ -16003,6 +16363,9 @@ class MultiSelectTreeComponent {
|
|
|
16003
16363
|
get isReadonly() {
|
|
16004
16364
|
return this.readonly ? '' : null;
|
|
16005
16365
|
}
|
|
16366
|
+
get isReadonlyClass() {
|
|
16367
|
+
return this.readonly;
|
|
16368
|
+
}
|
|
16006
16369
|
get ariaActiveDescendant() {
|
|
16007
16370
|
return this.focusedTagId;
|
|
16008
16371
|
}
|
|
@@ -16028,19 +16391,22 @@ class MultiSelectTreeComponent {
|
|
|
16028
16391
|
*
|
|
16029
16392
|
* @default 'none'
|
|
16030
16393
|
*/
|
|
16031
|
-
adaptiveMode
|
|
16394
|
+
set adaptiveMode(value) { this._adaptiveMode.set(value); }
|
|
16395
|
+
get adaptiveMode() { return this._adaptiveMode(); }
|
|
16032
16396
|
/**
|
|
16033
16397
|
* Sets the title text for the ActionSheet in adaptive mode on small screens.
|
|
16034
16398
|
* Uses the component label by default if not set.
|
|
16035
16399
|
*
|
|
16036
16400
|
* @default ''
|
|
16037
16401
|
*/
|
|
16038
|
-
adaptiveTitle
|
|
16402
|
+
set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
|
|
16403
|
+
get adaptiveTitle() { return this._adaptiveTitle(); }
|
|
16039
16404
|
/**
|
|
16040
16405
|
* Sets the subtitle text for the ActionSheet in adaptive mode on small screens.
|
|
16041
16406
|
* No subtitle appears by default.
|
|
16042
16407
|
*/
|
|
16043
|
-
adaptiveSubtitle;
|
|
16408
|
+
set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
|
|
16409
|
+
get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
|
|
16044
16410
|
/**
|
|
16045
16411
|
* @hidden
|
|
16046
16412
|
*/
|
|
@@ -16050,7 +16416,8 @@ class MultiSelectTreeComponent {
|
|
|
16050
16416
|
/**
|
|
16051
16417
|
* @hidden
|
|
16052
16418
|
*/
|
|
16053
|
-
windowSize
|
|
16419
|
+
get windowSize() { return this._windowSize(); }
|
|
16420
|
+
set windowSize(value) { this._windowSize.set(value); }
|
|
16054
16421
|
/**
|
|
16055
16422
|
* @hidden
|
|
16056
16423
|
*/
|
|
@@ -16138,7 +16505,11 @@ class MultiSelectTreeComponent {
|
|
|
16138
16505
|
* the popup is appended to a container and opened upon initialization.
|
|
16139
16506
|
* Otherwise, the "Expression has changed..." type error will be thrown.
|
|
16140
16507
|
*/
|
|
16141
|
-
Promise.resolve(null).then(() =>
|
|
16508
|
+
Promise.resolve(null).then(() => {
|
|
16509
|
+
if (this.treeview) {
|
|
16510
|
+
this.treeview.animate = true;
|
|
16511
|
+
}
|
|
16512
|
+
});
|
|
16142
16513
|
}
|
|
16143
16514
|
}
|
|
16144
16515
|
get treeview() {
|
|
@@ -16155,10 +16526,10 @@ class MultiSelectTreeComponent {
|
|
|
16155
16526
|
set tabindex(value) {
|
|
16156
16527
|
const providedTabIndex = parseNumber(value);
|
|
16157
16528
|
const defaultTabIndex = 0;
|
|
16158
|
-
this._tabindex
|
|
16529
|
+
this._tabindex.set(!isNaN(providedTabIndex) ? providedTabIndex : defaultTabIndex);
|
|
16159
16530
|
}
|
|
16160
16531
|
get tabindex() {
|
|
16161
|
-
return this.disabled ? -1 : this._tabindex;
|
|
16532
|
+
return this.disabled ? -1 : this._tabindex();
|
|
16162
16533
|
}
|
|
16163
16534
|
/**
|
|
16164
16535
|
* Sets the visual size of the component. The default value is set by the Kendo theme.
|
|
@@ -16168,10 +16539,10 @@ class MultiSelectTreeComponent {
|
|
|
16168
16539
|
if (size) {
|
|
16169
16540
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
|
|
16170
16541
|
}
|
|
16171
|
-
this._size
|
|
16542
|
+
this._size.set(size);
|
|
16172
16543
|
}
|
|
16173
16544
|
get size() {
|
|
16174
|
-
return this._size;
|
|
16545
|
+
return this._size();
|
|
16175
16546
|
}
|
|
16176
16547
|
/**
|
|
16177
16548
|
* Sets the border radius style of the component. The default value is set by the Kendo theme.
|
|
@@ -16181,10 +16552,10 @@ class MultiSelectTreeComponent {
|
|
|
16181
16552
|
if (rounded) {
|
|
16182
16553
|
this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
|
|
16183
16554
|
}
|
|
16184
|
-
this._rounded
|
|
16555
|
+
this._rounded.set(rounded);
|
|
16185
16556
|
}
|
|
16186
16557
|
get rounded() {
|
|
16187
|
-
return this._rounded;
|
|
16558
|
+
return this._rounded();
|
|
16188
16559
|
}
|
|
16189
16560
|
/**
|
|
16190
16561
|
* Sets the fill style for the component background and borders. The default value is set by the Kendo theme.
|
|
@@ -16194,22 +16565,22 @@ class MultiSelectTreeComponent {
|
|
|
16194
16565
|
if (fillMode) {
|
|
16195
16566
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
|
|
16196
16567
|
}
|
|
16197
|
-
this._fillMode
|
|
16568
|
+
this._fillMode.set(fillMode);
|
|
16198
16569
|
}
|
|
16199
16570
|
get fillMode() {
|
|
16200
|
-
return this._fillMode;
|
|
16571
|
+
return this._fillMode();
|
|
16201
16572
|
}
|
|
16202
16573
|
/**
|
|
16203
16574
|
* Configures the popup container settings: animation, dimensions, styling and positioning.
|
|
16204
16575
|
*/
|
|
16205
16576
|
set popupSettings(settings) {
|
|
16206
|
-
this._popupSettings
|
|
16577
|
+
this._popupSettings.set(Object.assign({}, DEFAULT_POPUP_SETTINGS, settings));
|
|
16207
16578
|
// `detectChanges` needed, otherwise upon value initialization and `appendTo` property
|
|
16208
16579
|
// an error is thrown => ExpressionChangedAfterItHasBeenCheckedError
|
|
16209
16580
|
this.cdr.detectChanges();
|
|
16210
16581
|
}
|
|
16211
16582
|
get popupSettings() {
|
|
16212
|
-
return this._popupSettings;
|
|
16583
|
+
return this._popupSettings();
|
|
16213
16584
|
}
|
|
16214
16585
|
/**
|
|
16215
16586
|
* Configures the checkbox behavior for the MultiSelecTree nodes.
|
|
@@ -16218,17 +16589,17 @@ class MultiSelectTreeComponent {
|
|
|
16218
16589
|
* @default '{ checkChildren: true, checkOnClick: true }'
|
|
16219
16590
|
*/
|
|
16220
16591
|
set checkableSettings(settings) {
|
|
16221
|
-
this._checkableSettings
|
|
16592
|
+
this._checkableSettings.set(Object.assign({}, DEFAULT_CHECKABLE_SETTINGS, settings));
|
|
16222
16593
|
}
|
|
16223
16594
|
get checkableSettings() {
|
|
16224
|
-
return this._checkableSettings;
|
|
16595
|
+
return this._checkableSettings();
|
|
16225
16596
|
}
|
|
16226
16597
|
/**
|
|
16227
16598
|
* Sets the hierarchical data source for the tree structure.
|
|
16228
16599
|
* Provide an array of objects that contain the tree data and structure.
|
|
16229
16600
|
*/
|
|
16230
16601
|
set data(data) {
|
|
16231
|
-
this.
|
|
16602
|
+
this._data.set(data);
|
|
16232
16603
|
this.setState();
|
|
16233
16604
|
if (this.isContentInit) {
|
|
16234
16605
|
// Needed for when the data is loaded later/asynchronously because it would not exist on ngContentInit
|
|
@@ -16236,25 +16607,25 @@ class MultiSelectTreeComponent {
|
|
|
16236
16607
|
}
|
|
16237
16608
|
}
|
|
16238
16609
|
get data() {
|
|
16239
|
-
return this.
|
|
16610
|
+
return this._data();
|
|
16240
16611
|
}
|
|
16241
16612
|
/**
|
|
16242
16613
|
* Sets the selected values in the component.
|
|
16243
16614
|
* Accepts primitive values if `valuePrimitive` is `true`, or objects if `false`.
|
|
16244
16615
|
*/
|
|
16245
16616
|
set value(value) {
|
|
16246
|
-
this._value
|
|
16617
|
+
this._value.set(value ? value : []);
|
|
16247
16618
|
this.setState();
|
|
16248
16619
|
}
|
|
16249
16620
|
get value() {
|
|
16250
|
-
return this._value;
|
|
16621
|
+
return this._value();
|
|
16251
16622
|
}
|
|
16252
16623
|
/**
|
|
16253
16624
|
* Sets the data items that correspond to the selected values.
|
|
16254
16625
|
* Required when using primitive values to resolve the full data objects.
|
|
16255
16626
|
*/
|
|
16256
16627
|
set dataItems(items) {
|
|
16257
|
-
this._dataItems
|
|
16628
|
+
this._dataItems.set((items || []).map((dataItem, index) => {
|
|
16258
16629
|
if (hasProps(dataItem, ['dataItem', 'index', 'level'])) {
|
|
16259
16630
|
return dataItem;
|
|
16260
16631
|
}
|
|
@@ -16266,11 +16637,11 @@ class MultiSelectTreeComponent {
|
|
|
16266
16637
|
level,
|
|
16267
16638
|
key
|
|
16268
16639
|
};
|
|
16269
|
-
});
|
|
16640
|
+
}));
|
|
16270
16641
|
this.setState();
|
|
16271
16642
|
}
|
|
16272
16643
|
get dataItems() {
|
|
16273
|
-
return this._dataItems || this.value.map((value, index) => {
|
|
16644
|
+
return this._dataItems() || this.value.map((value, index) => {
|
|
16274
16645
|
const level = this.valueDepth[index] || 0;
|
|
16275
16646
|
const key = valueFrom({ dataItem: value, level }, this.valueField) + '_' + (this.isHeterogeneous ? this.valueDepth[index] : 0);
|
|
16276
16647
|
return {
|
|
@@ -16285,33 +16656,38 @@ class MultiSelectTreeComponent {
|
|
|
16285
16656
|
* Specifies which data field provides the display text for tree nodes.
|
|
16286
16657
|
* > The `textField` property can be set to point to a nested property value - e.g. `category.name`.
|
|
16287
16658
|
*/
|
|
16288
|
-
textField;
|
|
16659
|
+
set textField(value) { this._textField.set(value); }
|
|
16660
|
+
get textField() { return this._textField(); }
|
|
16289
16661
|
/**
|
|
16290
16662
|
* Specifies which data field provides the unique values for tree nodes.
|
|
16291
16663
|
* > The `valueField` property can be set to point to a nested property value - e.g. `category.id`.
|
|
16292
16664
|
*/
|
|
16293
|
-
valueField;
|
|
16665
|
+
set valueField(value) { this._valueField.set(value); }
|
|
16666
|
+
get valueField() { return this._valueField(); }
|
|
16294
16667
|
/**
|
|
16295
16668
|
* Sets the levels in the data set where the values can be found when `valueField` is an Array.
|
|
16296
16669
|
* The field serves to correctly allocate a data item used when the MultiSelectTree is initialized with a value.
|
|
16297
16670
|
*
|
|
16298
16671
|
* @default []
|
|
16299
16672
|
*/
|
|
16300
|
-
valueDepth
|
|
16673
|
+
set valueDepth(value) { this._valueDepth.set(value); }
|
|
16674
|
+
get valueDepth() { return this._valueDepth(); }
|
|
16301
16675
|
/**
|
|
16302
16676
|
* Controls the loading state visual indicator.
|
|
16303
16677
|
* Shows a loading spinner when set to `true`.
|
|
16304
16678
|
*
|
|
16305
16679
|
* @default false
|
|
16306
16680
|
*/
|
|
16307
|
-
loading;
|
|
16681
|
+
set loading(value) { this._loading.set(value); }
|
|
16682
|
+
get loading() { return this._loading(); }
|
|
16308
16683
|
/**
|
|
16309
16684
|
* Sets the placeholder text shown when no items are selected.
|
|
16310
16685
|
* Helps guide users on what action to take.
|
|
16311
16686
|
*
|
|
16312
16687
|
* @default ''
|
|
16313
16688
|
*/
|
|
16314
|
-
placeholder
|
|
16689
|
+
set placeholder(value) { this._placeholder.set(value); }
|
|
16690
|
+
get placeholder() { return this._placeholder(); }
|
|
16315
16691
|
/**
|
|
16316
16692
|
* Sets the maximum height of the options list in the popup.
|
|
16317
16693
|
* Controls vertical scrolling when content exceeds this height.
|
|
@@ -16319,97 +16695,110 @@ class MultiSelectTreeComponent {
|
|
|
16319
16695
|
* @default 200
|
|
16320
16696
|
*/
|
|
16321
16697
|
set listHeight(_listHeight) {
|
|
16322
|
-
this._listHeight
|
|
16698
|
+
this._listHeight.set(_listHeight);
|
|
16323
16699
|
}
|
|
16324
16700
|
get listHeight() {
|
|
16325
16701
|
if (this.isAdaptive) {
|
|
16326
16702
|
return;
|
|
16327
16703
|
}
|
|
16328
|
-
return this._listHeight;
|
|
16704
|
+
return this._listHeight();
|
|
16329
16705
|
}
|
|
16330
|
-
_listHeight = 200;
|
|
16331
16706
|
/**
|
|
16332
16707
|
* Controls whether the component accepts user input.
|
|
16333
16708
|
* Prevents all user interactions when set to `true`.
|
|
16334
16709
|
*
|
|
16335
16710
|
* @default false
|
|
16336
16711
|
*/
|
|
16337
|
-
disabled
|
|
16712
|
+
set disabled(value) { this._disabled.set(value); }
|
|
16713
|
+
get disabled() { return this._disabled(); }
|
|
16338
16714
|
/**
|
|
16339
16715
|
* Sets the component to read-only mode.
|
|
16340
16716
|
* Displays current selections but prevents changes.
|
|
16341
16717
|
*
|
|
16342
16718
|
* @default false
|
|
16343
16719
|
*/
|
|
16344
|
-
readonly
|
|
16720
|
+
set readonly(value) { this._readonly.set(value); }
|
|
16721
|
+
get readonly() { return this._readonly(); }
|
|
16345
16722
|
/**
|
|
16346
16723
|
* Determines the data type of selected values.
|
|
16347
16724
|
* Set to `true` for primitive values, false for complex objects.
|
|
16348
16725
|
*
|
|
16349
16726
|
* @default false
|
|
16350
16727
|
*/
|
|
16351
|
-
valuePrimitive
|
|
16728
|
+
set valuePrimitive(value) { this._valuePrimitive.set(value); }
|
|
16729
|
+
get valuePrimitive() { return this._valuePrimitive(); }
|
|
16352
16730
|
/**
|
|
16353
16731
|
* Controls when child nodes load from the data source.
|
|
16354
16732
|
* Set to `true` to load children only when parent nodes expand.
|
|
16355
16733
|
*
|
|
16356
16734
|
* @default false
|
|
16357
16735
|
*/
|
|
16358
|
-
loadOnDemand
|
|
16736
|
+
set loadOnDemand(value) { this._loadOnDemand.set(value); }
|
|
16737
|
+
get loadOnDemand() { return this._loadOnDemand(); }
|
|
16359
16738
|
/**
|
|
16360
16739
|
* Sets the unique identifier for the focusable element.
|
|
16361
16740
|
* Used internally for accessibility and label association.
|
|
16362
16741
|
*/
|
|
16363
|
-
focusableId
|
|
16742
|
+
set focusableId(value) { this._focusableId.set(value); }
|
|
16743
|
+
get focusableId() { return this._focusableId(); }
|
|
16364
16744
|
/**
|
|
16365
16745
|
* Shows a clear button to reset all selections.
|
|
16366
16746
|
* Appears on hover when selections exist and the component is not disabled.
|
|
16367
16747
|
*
|
|
16368
16748
|
* @default true
|
|
16369
16749
|
*/
|
|
16370
|
-
clearButton
|
|
16750
|
+
set clearButton(value) { this._clearButton.set(value); }
|
|
16751
|
+
get clearButton() { return this._clearButton(); }
|
|
16371
16752
|
/**
|
|
16372
16753
|
* Enables the built-in filter input for searching tree nodes.
|
|
16373
16754
|
* Shows a search box above the tree when enabled.
|
|
16374
16755
|
*
|
|
16375
16756
|
* @default false
|
|
16376
16757
|
*/
|
|
16377
|
-
filterable
|
|
16758
|
+
set filterable(value) { this._filterable.set(value); }
|
|
16759
|
+
get filterable() { return this._filterable(); }
|
|
16378
16760
|
/**
|
|
16379
16761
|
* Shows a checkbox to select or deselect all visible tree nodes.
|
|
16380
16762
|
* Appears above the tree when checkboxes are enabled.
|
|
16381
16763
|
*
|
|
16382
16764
|
* @default false
|
|
16383
16765
|
*/
|
|
16384
|
-
checkAll
|
|
16766
|
+
set checkAll(value) { this._checkAll.set(value); }
|
|
16767
|
+
get checkAll() { return this._checkAll(); }
|
|
16385
16768
|
/**
|
|
16386
16769
|
* Determines if a tree node contains child nodes.
|
|
16387
16770
|
* Return `true` if the node has children, false otherwise.
|
|
16388
16771
|
*/
|
|
16389
|
-
hasChildren
|
|
16772
|
+
set hasChildren(fn) { this._hasChildren.set(fn); }
|
|
16773
|
+
get hasChildren() { return this._hasChildren(); }
|
|
16390
16774
|
/**
|
|
16391
16775
|
* Function that provides child nodes for a parent node.
|
|
16392
16776
|
* Return an Observable of child objects for the given parent.
|
|
16393
16777
|
*/
|
|
16394
|
-
fetchChildren
|
|
16778
|
+
set fetchChildren(fn) { this._fetchChildren.set(fn); }
|
|
16779
|
+
get fetchChildren() { return this._fetchChildren(); }
|
|
16395
16780
|
/**
|
|
16396
16781
|
* Determines if a specific node is expanded. The function is executed for each data item.
|
|
16397
16782
|
*/
|
|
16398
|
-
isNodeExpanded;
|
|
16783
|
+
set isNodeExpanded(fn) { this._isNodeExpanded.set(fn); }
|
|
16784
|
+
get isNodeExpanded() { return this._isNodeExpanded(); }
|
|
16399
16785
|
/**
|
|
16400
16786
|
* Determines if a tree node should be hidden.
|
|
16401
16787
|
*/
|
|
16402
|
-
isNodeVisible
|
|
16788
|
+
set isNodeVisible(fn) { this._isNodeVisible.set(fn); }
|
|
16789
|
+
get isNodeVisible() { return this._isNodeVisible(); }
|
|
16403
16790
|
/**
|
|
16404
16791
|
* Determines if a tree node is disabled. The function is executed for each data item.
|
|
16405
16792
|
*/
|
|
16406
|
-
itemDisabled
|
|
16793
|
+
set itemDisabled(fn) { this._itemDisabled.set(fn); }
|
|
16794
|
+
get itemDisabled() { return this._itemDisabled(); }
|
|
16407
16795
|
/**
|
|
16408
16796
|
* @param { Any[] } dataItems - The selected data items from the list.
|
|
16409
16797
|
* @returns { Any[] } - The tags that will be rendered by the component.
|
|
16410
16798
|
* Transforms the provided array of data items into an array of tags.
|
|
16411
16799
|
*/
|
|
16412
|
-
tagMapper
|
|
16800
|
+
set tagMapper(fn) { this._tagMapper.set(fn); }
|
|
16801
|
+
get tagMapper() { return this._tagMapper(); }
|
|
16413
16802
|
/**
|
|
16414
16803
|
* Fires when the component receives focus.
|
|
16415
16804
|
*/
|
|
@@ -16474,10 +16863,10 @@ class MultiSelectTreeComponent {
|
|
|
16474
16863
|
}
|
|
16475
16864
|
set isFocused(isFocused) {
|
|
16476
16865
|
this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
|
|
16477
|
-
this._isFocused
|
|
16866
|
+
this._isFocused.set(isFocused);
|
|
16478
16867
|
}
|
|
16479
16868
|
get isFocused() {
|
|
16480
|
-
return this._isFocused;
|
|
16869
|
+
return this._isFocused();
|
|
16481
16870
|
}
|
|
16482
16871
|
/**
|
|
16483
16872
|
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
@@ -16623,18 +17012,21 @@ class MultiSelectTreeComponent {
|
|
|
16623
17012
|
/**
|
|
16624
17013
|
* @hidden
|
|
16625
17014
|
*/
|
|
16626
|
-
filter
|
|
17015
|
+
get filter() { return this._filter(); }
|
|
17016
|
+
set filter(value) { this._filter.set(value); }
|
|
16627
17017
|
/**
|
|
16628
17018
|
* @hidden
|
|
16629
17019
|
*/
|
|
16630
|
-
checkedItems
|
|
17020
|
+
get checkedItems() { return this._checkedItems(); }
|
|
17021
|
+
set checkedItems(value) { this._checkedItems.set(value); }
|
|
16631
17022
|
/**
|
|
16632
17023
|
* @hidden
|
|
16633
17024
|
* The flag is needed in order to determine how to construct the items map keys.
|
|
16634
17025
|
* If `true`, then the key consists of the item's value and level (depth),
|
|
16635
17026
|
* else the key consists of the item's value and 0 (no leveling required)
|
|
16636
17027
|
*/
|
|
16637
|
-
isHeterogeneous;
|
|
17028
|
+
get isHeterogeneous() { return this._isHeterogeneous(); }
|
|
17029
|
+
set isHeterogeneous(value) { this._isHeterogeneous.set(value); }
|
|
16638
17030
|
/**
|
|
16639
17031
|
* @hidden
|
|
16640
17032
|
*/
|
|
@@ -16642,24 +17034,18 @@ class MultiSelectTreeComponent {
|
|
|
16642
17034
|
/**
|
|
16643
17035
|
* @hidden
|
|
16644
17036
|
*/
|
|
16645
|
-
allNodesHidden
|
|
17037
|
+
get allNodesHidden() { return this._allNodesHidden(); }
|
|
17038
|
+
set allNodesHidden(value) { this._allNodesHidden.set(value); }
|
|
16646
17039
|
tagListId = `k-${guid()}`;
|
|
16647
17040
|
tagPrefix = "tag-" + guid();
|
|
16648
17041
|
popupRef;
|
|
16649
|
-
tags;
|
|
16650
|
-
|
|
16651
|
-
|
|
16652
|
-
|
|
16653
|
-
|
|
16654
|
-
|
|
16655
|
-
_popupSettings = DEFAULT_POPUP_SETTINGS;
|
|
16656
|
-
_checkableSettings = DEFAULT_CHECKABLE_SETTINGS;
|
|
16657
|
-
_isFocused = false;
|
|
17042
|
+
get tags() { return this._tags(); }
|
|
17043
|
+
set tags(value) { this._tags.set(value); }
|
|
17044
|
+
get focusedTagIndex() { return this._focusedTagIndex(); }
|
|
17045
|
+
set focusedTagIndex(value) { this._focusedTagIndex.set(value); }
|
|
17046
|
+
get disabledIndices() { return this._disabledIndices(); }
|
|
17047
|
+
set disabledIndices(value) { this._disabledIndices.set(value); }
|
|
16658
17048
|
_treeview;
|
|
16659
|
-
_dataItems;
|
|
16660
|
-
_size;
|
|
16661
|
-
_rounded;
|
|
16662
|
-
_fillMode;
|
|
16663
17049
|
_searchableNodes = [];
|
|
16664
17050
|
_typedValue = '';
|
|
16665
17051
|
printableCharacters = new Subject();
|
|
@@ -16669,6 +17055,50 @@ class MultiSelectTreeComponent {
|
|
|
16669
17055
|
lastNodeOnFocus;
|
|
16670
17056
|
// Used as check to avoid unnecessary 'registerLookupItems()' calls upon initialization
|
|
16671
17057
|
isContentInit;
|
|
17058
|
+
// Signal backing fields — inputs
|
|
17059
|
+
_adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
|
|
17060
|
+
_adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
|
|
17061
|
+
_adaptiveSubtitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
|
|
17062
|
+
_textField = signal(undefined, ...(ngDevMode ? [{ debugName: "_textField" }] : []));
|
|
17063
|
+
_valueField = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueField" }] : []));
|
|
17064
|
+
_valueDepth = signal([], ...(ngDevMode ? [{ debugName: "_valueDepth" }] : []));
|
|
17065
|
+
_loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
|
|
17066
|
+
_placeholder = signal('', ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
|
|
17067
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
17068
|
+
_readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
|
|
17069
|
+
_valuePrimitive = signal(false, ...(ngDevMode ? [{ debugName: "_valuePrimitive" }] : []));
|
|
17070
|
+
_loadOnDemand = signal(false, ...(ngDevMode ? [{ debugName: "_loadOnDemand" }] : []));
|
|
17071
|
+
_focusableId = signal(`k-${guid()}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
|
|
17072
|
+
_clearButton = signal(true, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
|
|
17073
|
+
_filterable = signal(false, ...(ngDevMode ? [{ debugName: "_filterable" }] : []));
|
|
17074
|
+
_checkAll = signal(false, ...(ngDevMode ? [{ debugName: "_checkAll" }] : []));
|
|
17075
|
+
_hasChildren = signal(hasChildren, ...(ngDevMode ? [{ debugName: "_hasChildren" }] : []));
|
|
17076
|
+
_fetchChildren = signal(fetchChildren, ...(ngDevMode ? [{ debugName: "_fetchChildren" }] : []));
|
|
17077
|
+
_isNodeExpanded = signal(undefined, ...(ngDevMode ? [{ debugName: "_isNodeExpanded" }] : []));
|
|
17078
|
+
_isNodeVisible = signal(isNodeVisible, ...(ngDevMode ? [{ debugName: "_isNodeVisible" }] : []));
|
|
17079
|
+
_itemDisabled = signal(itemDisabled, ...(ngDevMode ? [{ debugName: "_itemDisabled" }] : []));
|
|
17080
|
+
_tagMapper = signal((tags) => tags || [], ...(ngDevMode ? [{ debugName: "_tagMapper" }] : []));
|
|
17081
|
+
// Signal backing fields — existing setter/getter pairs
|
|
17082
|
+
_data = signal(undefined, ...(ngDevMode ? [{ debugName: "_data" }] : []));
|
|
17083
|
+
_value = signal([], ...(ngDevMode ? [{ debugName: "_value" }] : []));
|
|
17084
|
+
_dataItems = signal(undefined, ...(ngDevMode ? [{ debugName: "_dataItems" }] : []));
|
|
17085
|
+
_listHeight = signal(200, ...(ngDevMode ? [{ debugName: "_listHeight" }] : []));
|
|
17086
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
|
|
17087
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
17088
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
|
|
17089
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
|
|
17090
|
+
_popupSettings = signal(DEFAULT_POPUP_SETTINGS, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
|
|
17091
|
+
_checkableSettings = signal(DEFAULT_CHECKABLE_SETTINGS, ...(ngDevMode ? [{ debugName: "_checkableSettings" }] : []));
|
|
17092
|
+
// Signal backing fields — internal state driving template
|
|
17093
|
+
_isFocused = signal(false, ...(ngDevMode ? [{ debugName: "_isFocused" }] : []));
|
|
17094
|
+
_filter = signal('', ...(ngDevMode ? [{ debugName: "_filter" }] : []));
|
|
17095
|
+
_checkedItems = signal([], ...(ngDevMode ? [{ debugName: "_checkedItems" }] : []));
|
|
17096
|
+
_isHeterogeneous = signal(undefined, ...(ngDevMode ? [{ debugName: "_isHeterogeneous" }] : []));
|
|
17097
|
+
_allNodesHidden = signal(false, ...(ngDevMode ? [{ debugName: "_allNodesHidden" }] : []));
|
|
17098
|
+
_tags = signal(undefined, ...(ngDevMode ? [{ debugName: "_tags" }] : []));
|
|
17099
|
+
_focusedTagIndex = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusedTagIndex" }] : []));
|
|
17100
|
+
_disabledIndices = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledIndices" }] : []));
|
|
17101
|
+
_windowSize = signal('large', ...(ngDevMode ? [{ debugName: "_windowSize" }] : []));
|
|
16672
17102
|
constructor(injector, wrapper, popupService, renderer, navigationService, _zone, localization, cdr, lookup, adaptiveService) {
|
|
16673
17103
|
this.injector = injector;
|
|
16674
17104
|
this.wrapper = wrapper;
|
|
@@ -16708,6 +17138,14 @@ class MultiSelectTreeComponent {
|
|
|
16708
17138
|
this.windowSize = this.adaptiveService.size;
|
|
16709
17139
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'click', this.handleClick.bind(this)));
|
|
16710
17140
|
this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
17141
|
+
const control = this.formControl;
|
|
17142
|
+
if (control && control.events) {
|
|
17143
|
+
this.subs.add(control.events.subscribe(e => {
|
|
17144
|
+
if (e instanceof TouchedChangeEvent) {
|
|
17145
|
+
this.cdr.markForCheck();
|
|
17146
|
+
}
|
|
17147
|
+
}));
|
|
17148
|
+
}
|
|
16711
17149
|
}
|
|
16712
17150
|
/**
|
|
16713
17151
|
* @hidden
|
|
@@ -17031,7 +17469,6 @@ class MultiSelectTreeComponent {
|
|
|
17031
17469
|
*/
|
|
17032
17470
|
setDisabledState(isDisabled) {
|
|
17033
17471
|
this.disabled = isDisabled;
|
|
17034
|
-
this.cdr.markForCheck();
|
|
17035
17472
|
}
|
|
17036
17473
|
/**
|
|
17037
17474
|
* @hidden
|
|
@@ -17383,7 +17820,6 @@ class MultiSelectTreeComponent {
|
|
|
17383
17820
|
this.setTags();
|
|
17384
17821
|
this.checkedItems = this.dataItems.slice();
|
|
17385
17822
|
}
|
|
17386
|
-
this.cdr.markForCheck();
|
|
17387
17823
|
}
|
|
17388
17824
|
setTags() {
|
|
17389
17825
|
const source = this.dataItems.map(item => item.dataItem);
|
|
@@ -17495,7 +17931,7 @@ class MultiSelectTreeComponent {
|
|
|
17495
17931
|
this.opened.emit();
|
|
17496
17932
|
}
|
|
17497
17933
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: i0.Renderer2 }, { token: NavigationService }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: MultiSelectTreeLookupService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17498
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.isReadonly", "
|
|
17934
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.isReadonly", "class.k-readonly": "this.isReadonlyClass", "attr.aria-activedescendant": "this.ariaActiveDescendant" } }, providers: [
|
|
17499
17935
|
LocalizationService,
|
|
17500
17936
|
NavigationService,
|
|
17501
17937
|
DataService,
|
|
@@ -17771,11 +18207,12 @@ class MultiSelectTreeComponent {
|
|
|
17771
18207
|
@if (isOpen || isAdaptiveModeEnabled) {
|
|
17772
18208
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
17773
18209
|
}
|
|
17774
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }] });
|
|
18210
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17775
18211
|
}
|
|
17776
18212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
|
|
17777
18213
|
type: Component,
|
|
17778
18214
|
args: [{
|
|
18215
|
+
selector: 'kendo-multiselecttree',
|
|
17779
18216
|
exportAs: 'kendoMultiSelectTree',
|
|
17780
18217
|
providers: [
|
|
17781
18218
|
LocalizationService,
|
|
@@ -17807,7 +18244,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
17807
18244
|
},
|
|
17808
18245
|
provideComponentName('multiselecttree')
|
|
17809
18246
|
],
|
|
17810
|
-
selector: 'kendo-multiselecttree',
|
|
17811
18247
|
template: `
|
|
17812
18248
|
<ng-container kendoMultiSelectTreeLocalizedMessages
|
|
17813
18249
|
i18n-noDataText="kendo.multiselecttree.noDataText|The text displayed in the popup when there are no items"
|
|
@@ -18056,6 +18492,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
18056
18492
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
18057
18493
|
}
|
|
18058
18494
|
`,
|
|
18495
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18059
18496
|
standalone: true,
|
|
18060
18497
|
imports: [LocalizedMessagesDirective, TagListComponent, IconWrapperComponent, NgTemplateOutlet, AdaptiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent, SeparatorComponent]
|
|
18061
18498
|
}]
|
|
@@ -18083,6 +18520,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
18083
18520
|
}], isReadonly: [{
|
|
18084
18521
|
type: HostBinding,
|
|
18085
18522
|
args: ['attr.readonly']
|
|
18523
|
+
}], isReadonlyClass: [{
|
|
18524
|
+
type: HostBinding,
|
|
18525
|
+
args: ['class.k-readonly']
|
|
18086
18526
|
}], ariaActiveDescendant: [{
|
|
18087
18527
|
type: HostBinding,
|
|
18088
18528
|
args: ['attr.aria-activedescendant']
|
|
@@ -18162,9 +18602,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
18162
18602
|
type: Input
|
|
18163
18603
|
}], readonly: [{
|
|
18164
18604
|
type: Input
|
|
18165
|
-
}, {
|
|
18166
|
-
type: HostBinding,
|
|
18167
|
-
args: ['class.k-readonly']
|
|
18168
18605
|
}], valuePrimitive: [{
|
|
18169
18606
|
type: Input
|
|
18170
18607
|
}], loadOnDemand: [{
|