@progress/kendo-angular-dropdowns 21.4.1 → 22.0.0-develop.1
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/common/localization/messages.d.ts +1 -1
- package/dropdowntrees/checked-state/base-check.directive.d.ts +1 -1
- package/fesm2022/progress-kendo-angular-dropdowns.mjs +173 -173
- package/package.json +14 -22
- package/schematics/ngAdd/index.js +2 -2
- package/esm2022/autocomplete/autocomplete.component.mjs +0 -1687
- package/esm2022/autocomplete/autocomplete.module.mjs +0 -70
- package/esm2022/comboboxes/combobox-column/column-cell-template.directive.mjs +0 -42
- package/esm2022/comboboxes/combobox-column/column-header-template.directive.mjs +0 -40
- package/esm2022/comboboxes/combobox-column/combobox-column.component.mjs +0 -116
- package/esm2022/comboboxes/combobox-column/util.mjs +0 -60
- package/esm2022/comboboxes/combobox.component.mjs +0 -2149
- package/esm2022/comboboxes/combobox.module.mjs +0 -77
- package/esm2022/comboboxes/multicolumncombobox.component.mjs +0 -883
- package/esm2022/common/adaptive-renderer.component.mjs +0 -253
- package/esm2022/common/constants/error-messages.mjs +0 -61
- package/esm2022/common/data.service.mjs +0 -250
- package/esm2022/common/disabled-items/disabled-items.service.mjs +0 -47
- package/esm2022/common/disabled-items/item-disabled.mjs +0 -5
- package/esm2022/common/filter-input.directive.mjs +0 -39
- package/esm2022/common/filtering/filter-settings.mjs +0 -5
- package/esm2022/common/filtering/filter.directive.mjs +0 -136
- package/esm2022/common/filtering/filterable-component.mjs +0 -34
- package/esm2022/common/list-item.directive.mjs +0 -25
- package/esm2022/common/list.component.mjs +0 -968
- package/esm2022/common/localization/custom-messages.component.mjs +0 -96
- package/esm2022/common/localization/localized-messages.directive.mjs +0 -47
- package/esm2022/common/localization/messages.mjs +0 -77
- package/esm2022/common/models/checkboxes-settings.mjs +0 -15
- package/esm2022/common/models/direction.mjs +0 -5
- package/esm2022/common/models/fillmode.mjs +0 -5
- package/esm2022/common/models/list-type.mjs +0 -5
- package/esm2022/common/models/page-change-event.mjs +0 -5
- package/esm2022/common/models/popup-settings.mjs +0 -5
- package/esm2022/common/models/preventable-event.mjs +0 -25
- package/esm2022/common/models/remove-tag-event.mjs +0 -23
- package/esm2022/common/models/rounded.mjs +0 -5
- package/esm2022/common/models/size.mjs +0 -5
- package/esm2022/common/models/virtualization-settings.mjs +0 -24
- package/esm2022/common/navigation/navigation-action.mjs +0 -32
- package/esm2022/common/navigation/navigation.service.mjs +0 -188
- package/esm2022/common/searchbar.component.mjs +0 -386
- package/esm2022/common/selection/selectable.directive.mjs +0 -83
- package/esm2022/common/selection/selection.service.mjs +0 -166
- package/esm2022/common/shared-events.directive.mjs +0 -99
- package/esm2022/common/taglist.component.mjs +0 -295
- package/esm2022/common/templates/custom-item-template.directive.mjs +0 -48
- package/esm2022/common/templates/fixed-group-template.directive.mjs +0 -55
- package/esm2022/common/templates/footer-template.directive.mjs +0 -49
- package/esm2022/common/templates/group-tag-template.directive.mjs +0 -47
- package/esm2022/common/templates/group-template.directive.mjs +0 -55
- package/esm2022/common/templates/header-template.directive.mjs +0 -49
- package/esm2022/common/templates/item-template.directive.mjs +0 -48
- package/esm2022/common/templates/no-data-template.directive.mjs +0 -49
- package/esm2022/common/templates/tag-template.directive.mjs +0 -46
- package/esm2022/common/templates/value-template.directive.mjs +0 -50
- package/esm2022/common/util.mjs +0 -376
- package/esm2022/directives.mjs +0 -172
- package/esm2022/dropdownlist/dropdownlist.component.mjs +0 -1999
- package/esm2022/dropdownlist/dropdownlist.module.mjs +0 -79
- package/esm2022/dropdowns.module.mjs +0 -76
- package/esm2022/dropdowntrees/checked-state/base-check.directive.mjs +0 -76
- package/esm2022/dropdowntrees/checked-state/check-all.directive.mjs +0 -170
- package/esm2022/dropdowntrees/checked-state/check.directive.mjs +0 -168
- package/esm2022/dropdowntrees/checked-state/checkable-settings.mjs +0 -5
- package/esm2022/dropdowntrees/checked-state/checked-item.mjs +0 -5
- package/esm2022/dropdowntrees/data-binding/dropdowntree/flat-binding.directive.mjs +0 -69
- package/esm2022/dropdowntrees/data-binding/dropdowntree/hierarchy-binding.directive.mjs +0 -62
- package/esm2022/dropdowntrees/data-binding/multiselecttree/flat-binding.directive.mjs +0 -69
- package/esm2022/dropdowntrees/data-binding/multiselecttree/hierarchy-binding.directive.mjs +0 -62
- package/esm2022/dropdowntrees/dropdowntree.component.mjs +0 -1967
- package/esm2022/dropdowntrees/dropdowntrees.module.mjs +0 -79
- package/esm2022/dropdowntrees/expanded-state/expand.directive.mjs +0 -49
- package/esm2022/dropdowntrees/lookup/lookup.mjs +0 -5
- package/esm2022/dropdowntrees/lookup/lookup.service.mjs +0 -82
- package/esm2022/dropdowntrees/multiselecttree.component.mjs +0 -2359
- package/esm2022/dropdowntrees/summary-tag/summary-tag.directive.mjs +0 -70
- package/esm2022/dropdowntrees/templates/node-template.directive.mjs +0 -31
- package/esm2022/index.mjs +0 -55
- package/esm2022/multiselect/multiselect.component.mjs +0 -2380
- package/esm2022/multiselect/multiselect.module.mjs +0 -79
- package/esm2022/multiselect/summary-tag.directive.mjs +0 -68
- package/esm2022/package-metadata.mjs +0 -16
- package/esm2022/progress-kendo-angular-dropdowns.mjs +0 -8
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, Input, Output, EventEmitter, TemplateRef, ViewChild } from '@angular/core';
|
|
6
|
-
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
|
-
import { animationDuration } from './util';
|
|
8
|
-
import { IconComponent } from '@progress/kendo-angular-icons';
|
|
9
|
-
import { checkIcon } from '@progress/kendo-svg-icons';
|
|
10
|
-
import { ActionSheetComponent, ActionSheetTemplateDirective } from '@progress/kendo-angular-navigation';
|
|
11
|
-
import { TextBoxComponent, TextBoxPrefixTemplateDirective } from '@progress/kendo-angular-inputs';
|
|
12
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
13
|
-
import { ButtonComponent } from '@progress/kendo-angular-buttons';
|
|
14
|
-
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@progress/kendo-angular-l10n";
|
|
17
|
-
import * as i2 from "@progress/kendo-angular-utils";
|
|
18
|
-
/**
|
|
19
|
-
* @hidden
|
|
20
|
-
*/
|
|
21
|
-
export class AdaptiveRendererComponent {
|
|
22
|
-
localization;
|
|
23
|
-
adaptiveService;
|
|
24
|
-
title;
|
|
25
|
-
subtitle;
|
|
26
|
-
showTextInput;
|
|
27
|
-
sharedPopupActionSheetTemplate;
|
|
28
|
-
text;
|
|
29
|
-
placeholder;
|
|
30
|
-
searchBarValue;
|
|
31
|
-
filterable;
|
|
32
|
-
closePopup = new EventEmitter();
|
|
33
|
-
textInputChange = new EventEmitter();
|
|
34
|
-
navigate = new EventEmitter();
|
|
35
|
-
onExpand = new EventEmitter();
|
|
36
|
-
actionSheet;
|
|
37
|
-
actionSheetSearchBar;
|
|
38
|
-
constructor(localization, adaptiveService) {
|
|
39
|
-
this.localization = localization;
|
|
40
|
-
this.adaptiveService = adaptiveService;
|
|
41
|
-
}
|
|
42
|
-
animationDuration = animationDuration;
|
|
43
|
-
checkIcon = checkIcon;
|
|
44
|
-
expanded = false;
|
|
45
|
-
messageFor(key) {
|
|
46
|
-
return this.localization.get(key);
|
|
47
|
-
}
|
|
48
|
-
onValueChange(value) {
|
|
49
|
-
this.searchBarValue = value;
|
|
50
|
-
this.textInputChange.emit(value);
|
|
51
|
-
}
|
|
52
|
-
onOverlayClick() {
|
|
53
|
-
if (this.expanded) {
|
|
54
|
-
this.handleClose();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
handleExpand() {
|
|
58
|
-
this.onExpand.emit();
|
|
59
|
-
this.expanded = true;
|
|
60
|
-
}
|
|
61
|
-
handleClose() {
|
|
62
|
-
this.closePopup.emit();
|
|
63
|
-
this.expanded = false;
|
|
64
|
-
}
|
|
65
|
-
get windowSize() {
|
|
66
|
-
return this.adaptiveService.size;
|
|
67
|
-
}
|
|
68
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AdaptiveRendererComponent, deps: [{ token: i1.LocalizationService }, { token: i2.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AdaptiveRendererComponent, isStandalone: true, selector: "kendo-adaptive-renderer", inputs: { title: "title", subtitle: "subtitle", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", text: "text", placeholder: "placeholder", searchBarValue: "searchBarValue", filterable: "filterable" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
|
|
70
|
-
<kendo-actionsheet
|
|
71
|
-
#actionSheet
|
|
72
|
-
[animation]="{ duration: animationDuration }"
|
|
73
|
-
[initialFocus]="false"
|
|
74
|
-
[cssClass]="{
|
|
75
|
-
'k-adaptive-actionsheet': true,
|
|
76
|
-
'k-actionsheet-fullscreen': windowSize === 'small',
|
|
77
|
-
'k-actionsheet-bottom': windowSize === 'medium'
|
|
78
|
-
}"
|
|
79
|
-
[cssStyle]="{
|
|
80
|
-
height: windowSize === 'small' ? '100vh' : '60vh'
|
|
81
|
-
}"
|
|
82
|
-
(overlayClick)="onOverlayClick()"
|
|
83
|
-
(keydown)="navigate.emit($event)"
|
|
84
|
-
(expand)="handleExpand()"
|
|
85
|
-
(collapse)="closePopup.emit()"
|
|
86
|
-
>
|
|
87
|
-
<ng-template kendoActionSheetTemplate>
|
|
88
|
-
<div class="k-text-center k-actionsheet-titlebar">
|
|
89
|
-
<div class="k-actionsheet-titlebar-group">
|
|
90
|
-
<div class="k-actionsheet-title">
|
|
91
|
-
@if (title) {
|
|
92
|
-
<div class="k-text-center">{{ title }}</div>
|
|
93
|
-
}
|
|
94
|
-
@if (subtitle) {
|
|
95
|
-
<div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
|
|
96
|
-
}
|
|
97
|
-
</div>
|
|
98
|
-
<div class="k-actionsheet-actions">
|
|
99
|
-
<button
|
|
100
|
-
kendoButton
|
|
101
|
-
icon="check"
|
|
102
|
-
type="button"
|
|
103
|
-
[attr.title]="messageFor('adaptiveCloseButtonTitle')"
|
|
104
|
-
[svgIcon]="checkIcon"
|
|
105
|
-
fillMode="flat"
|
|
106
|
-
themeColor="primary"
|
|
107
|
-
size="large"
|
|
108
|
-
[tabIndex]="-1"
|
|
109
|
-
innerCssClass="k-button-icon"
|
|
110
|
-
(click)="handleClose()"
|
|
111
|
-
></button>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
@if (showTextInput) {
|
|
115
|
-
<div class="k-actionsheet-titlebar-group k-actionsheet-filter">
|
|
116
|
-
<kendo-textbox
|
|
117
|
-
#actionSheetSearchBar
|
|
118
|
-
[value]="searchBarValue || ''"
|
|
119
|
-
size="large"
|
|
120
|
-
[placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
|
|
121
|
-
class="k-searchbox"
|
|
122
|
-
autocomplete="off"
|
|
123
|
-
(valueChange)="onValueChange($event)"
|
|
124
|
-
>
|
|
125
|
-
@if (filterable) {
|
|
126
|
-
<ng-template kendoTextBoxPrefixTemplate>
|
|
127
|
-
<kendo-icon name="search"></kendo-icon>
|
|
128
|
-
</ng-template>
|
|
129
|
-
}
|
|
130
|
-
</kendo-textbox>
|
|
131
|
-
</div>
|
|
132
|
-
}
|
|
133
|
-
</div>
|
|
134
|
-
<div class="k-actionsheet-content">
|
|
135
|
-
<div class="k-list-container">
|
|
136
|
-
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
</ng-template>
|
|
140
|
-
</kendo-actionsheet>
|
|
141
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
142
|
-
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
|
|
144
|
-
type: Component,
|
|
145
|
-
args: [{
|
|
146
|
-
selector: 'kendo-adaptive-renderer',
|
|
147
|
-
template: `
|
|
148
|
-
<kendo-actionsheet
|
|
149
|
-
#actionSheet
|
|
150
|
-
[animation]="{ duration: animationDuration }"
|
|
151
|
-
[initialFocus]="false"
|
|
152
|
-
[cssClass]="{
|
|
153
|
-
'k-adaptive-actionsheet': true,
|
|
154
|
-
'k-actionsheet-fullscreen': windowSize === 'small',
|
|
155
|
-
'k-actionsheet-bottom': windowSize === 'medium'
|
|
156
|
-
}"
|
|
157
|
-
[cssStyle]="{
|
|
158
|
-
height: windowSize === 'small' ? '100vh' : '60vh'
|
|
159
|
-
}"
|
|
160
|
-
(overlayClick)="onOverlayClick()"
|
|
161
|
-
(keydown)="navigate.emit($event)"
|
|
162
|
-
(expand)="handleExpand()"
|
|
163
|
-
(collapse)="closePopup.emit()"
|
|
164
|
-
>
|
|
165
|
-
<ng-template kendoActionSheetTemplate>
|
|
166
|
-
<div class="k-text-center k-actionsheet-titlebar">
|
|
167
|
-
<div class="k-actionsheet-titlebar-group">
|
|
168
|
-
<div class="k-actionsheet-title">
|
|
169
|
-
@if (title) {
|
|
170
|
-
<div class="k-text-center">{{ title }}</div>
|
|
171
|
-
}
|
|
172
|
-
@if (subtitle) {
|
|
173
|
-
<div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
|
|
174
|
-
}
|
|
175
|
-
</div>
|
|
176
|
-
<div class="k-actionsheet-actions">
|
|
177
|
-
<button
|
|
178
|
-
kendoButton
|
|
179
|
-
icon="check"
|
|
180
|
-
type="button"
|
|
181
|
-
[attr.title]="messageFor('adaptiveCloseButtonTitle')"
|
|
182
|
-
[svgIcon]="checkIcon"
|
|
183
|
-
fillMode="flat"
|
|
184
|
-
themeColor="primary"
|
|
185
|
-
size="large"
|
|
186
|
-
[tabIndex]="-1"
|
|
187
|
-
innerCssClass="k-button-icon"
|
|
188
|
-
(click)="handleClose()"
|
|
189
|
-
></button>
|
|
190
|
-
</div>
|
|
191
|
-
</div>
|
|
192
|
-
@if (showTextInput) {
|
|
193
|
-
<div class="k-actionsheet-titlebar-group k-actionsheet-filter">
|
|
194
|
-
<kendo-textbox
|
|
195
|
-
#actionSheetSearchBar
|
|
196
|
-
[value]="searchBarValue || ''"
|
|
197
|
-
size="large"
|
|
198
|
-
[placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
|
|
199
|
-
class="k-searchbox"
|
|
200
|
-
autocomplete="off"
|
|
201
|
-
(valueChange)="onValueChange($event)"
|
|
202
|
-
>
|
|
203
|
-
@if (filterable) {
|
|
204
|
-
<ng-template kendoTextBoxPrefixTemplate>
|
|
205
|
-
<kendo-icon name="search"></kendo-icon>
|
|
206
|
-
</ng-template>
|
|
207
|
-
}
|
|
208
|
-
</kendo-textbox>
|
|
209
|
-
</div>
|
|
210
|
-
}
|
|
211
|
-
</div>
|
|
212
|
-
<div class="k-actionsheet-content">
|
|
213
|
-
<div class="k-list-container">
|
|
214
|
-
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
215
|
-
</div>
|
|
216
|
-
</div>
|
|
217
|
-
</ng-template>
|
|
218
|
-
</kendo-actionsheet>
|
|
219
|
-
`,
|
|
220
|
-
standalone: true,
|
|
221
|
-
imports: [ActionSheetComponent, ActionSheetTemplateDirective, ButtonComponent, TextBoxComponent, TextBoxPrefixTemplateDirective, IconComponent, NgTemplateOutlet]
|
|
222
|
-
}]
|
|
223
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.AdaptiveService }], propDecorators: { title: [{
|
|
224
|
-
type: Input
|
|
225
|
-
}], subtitle: [{
|
|
226
|
-
type: Input
|
|
227
|
-
}], showTextInput: [{
|
|
228
|
-
type: Input
|
|
229
|
-
}], sharedPopupActionSheetTemplate: [{
|
|
230
|
-
type: Input
|
|
231
|
-
}], text: [{
|
|
232
|
-
type: Input
|
|
233
|
-
}], placeholder: [{
|
|
234
|
-
type: Input
|
|
235
|
-
}], searchBarValue: [{
|
|
236
|
-
type: Input
|
|
237
|
-
}], filterable: [{
|
|
238
|
-
type: Input
|
|
239
|
-
}], closePopup: [{
|
|
240
|
-
type: Output
|
|
241
|
-
}], textInputChange: [{
|
|
242
|
-
type: Output
|
|
243
|
-
}], navigate: [{
|
|
244
|
-
type: Output
|
|
245
|
-
}], onExpand: [{
|
|
246
|
-
type: Output
|
|
247
|
-
}], actionSheet: [{
|
|
248
|
-
type: ViewChild,
|
|
249
|
-
args: [ActionSheetComponent]
|
|
250
|
-
}], actionSheetSearchBar: [{
|
|
251
|
-
type: ViewChild,
|
|
252
|
-
args: ['actionSheetSearchBar']
|
|
253
|
-
}] } });
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
/**
|
|
6
|
-
* @hidden
|
|
7
|
-
*/
|
|
8
|
-
export const MultiselectMessages = {
|
|
9
|
-
'array': 'Expected values of array type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/value-binding',
|
|
10
|
-
'object': 'Expected values of Object type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/value-binding/#toc-object-values',
|
|
11
|
-
'primitive': 'Expected values of primitive type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/value-binding/#toc-primitive-values',
|
|
12
|
-
'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/data-binding/#toc-arrays-of-complex-data'
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* @hidden
|
|
16
|
-
*/
|
|
17
|
-
export const MultiSelectTreeMessages = {
|
|
18
|
-
'array': 'Expected values of array type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding',
|
|
19
|
-
'primitive': 'Expected values of primitive type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding/#toc-primitive-values',
|
|
20
|
-
'object': 'Expected values of type Object. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding/#toc-object-values',
|
|
21
|
-
'dataItems': 'Expected dataItems of type Object[] to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/MultiSelectTreeComponent/#toc-dataitems',
|
|
22
|
-
'dataItemsLength': 'Expected dataItems length to match the number of provided values. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/MultiSelectTreeComponent/#toc-dataitems',
|
|
23
|
-
'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding',
|
|
24
|
-
'valueDepth': 'Expected valueDepth of type number[] to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/MultiSelectTreeComponent/#toc-valuedepth',
|
|
25
|
-
'valueDepthLength': 'Expected valueDepth length to match the number of provided values. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/MultiSelectTreeComponent/#toc-valuedepth'
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* @hidden
|
|
29
|
-
*/
|
|
30
|
-
export const ComboBoxMessages = {
|
|
31
|
-
'object': 'Expected value of type Object. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/value-binding/#toc-object-values',
|
|
32
|
-
'primitive': 'Expected value of primitive type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/value-binding/#toc-primitive-values',
|
|
33
|
-
'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/data-binding/#toc-arrays-of-complex-data',
|
|
34
|
-
'noItemHeight': 'Expected virtual.itemHeight of type number.'
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* @hidden
|
|
38
|
-
*/
|
|
39
|
-
export const MultiColumnComboBoxMessages = {
|
|
40
|
-
'data': 'Provided data must consist only of objects. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multicolumncombobox/data-binding/',
|
|
41
|
-
'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multicolumncombobox/data-binding/#toc-fields-configuration'
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* @hidden
|
|
45
|
-
*/
|
|
46
|
-
export const DropDownListMessages = {
|
|
47
|
-
'defaultItem': 'defaultItem and data items must be of same type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/DropDownListComponent/#toc-defaultitem',
|
|
48
|
-
'object': 'Expected value of type Object. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/value-binding/#toc-object-values',
|
|
49
|
-
'primitive': 'Expected value of primitive type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/value-binding/#toc-primitive-values',
|
|
50
|
-
'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/data-binding/#toc-arrays-of-complex-data'
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* @hidden
|
|
54
|
-
*/
|
|
55
|
-
export const DropDownTreeMessages = {
|
|
56
|
-
'primitive': 'Expected value of primitive type. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding/#toc-primitive-values',
|
|
57
|
-
'object': 'Expected value of type Object. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding/#toc-object-values',
|
|
58
|
-
'dataItem': 'Expected dataItem of type Object to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/DropDownTreeComponent/#toc-dataitem',
|
|
59
|
-
'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding',
|
|
60
|
-
'valueDepth': 'Expected valueDepth to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/DropDownTreeComponent/#toc-valuedepth'
|
|
61
|
-
};
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
6
|
-
import { isPresent, hasProps, getter, filterAndMap } from './util';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
/**
|
|
9
|
-
* @hidden
|
|
10
|
-
*/
|
|
11
|
-
export class DataService {
|
|
12
|
-
grouped = false;
|
|
13
|
-
groupIndices = [];
|
|
14
|
-
view;
|
|
15
|
-
_data;
|
|
16
|
-
_flatData;
|
|
17
|
-
set data(data) {
|
|
18
|
-
this._data = data;
|
|
19
|
-
this.grouped = this.isGrouped(data);
|
|
20
|
-
if (this.grouped) {
|
|
21
|
-
this.groupIndices = this.getGroupIndices(data);
|
|
22
|
-
this._flatData = this.flatten(data);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
get data() {
|
|
26
|
-
if (this.grouped) {
|
|
27
|
-
return this._flatData;
|
|
28
|
-
}
|
|
29
|
-
return this._data;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* @hidden
|
|
33
|
-
* Used to get the actual items count, i.e. excluding the header items in case of grouping.
|
|
34
|
-
*/
|
|
35
|
-
get itemsCount() {
|
|
36
|
-
if (!isPresent(this.data) || this.data.length === 0) {
|
|
37
|
-
return 0;
|
|
38
|
-
}
|
|
39
|
-
const items = this.grouped ? this._flatData.filter(item => !item.header) : this.data;
|
|
40
|
-
return items.length;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @hidden
|
|
44
|
-
* Used to determine if the component received grouped data.
|
|
45
|
-
*/
|
|
46
|
-
isGrouped(data) {
|
|
47
|
-
// GroupResult { aggregates: AggregateResult, field: string, items: object[], value: any }
|
|
48
|
-
// https://www.telerik.com/kendo-angular-ui/components/dataquery/api/GroupResult/
|
|
49
|
-
return (isPresent(data) && data.length !== 0) && isPresent(data[0]) && hasProps(data[0], ['aggregates', 'field', 'items', 'value']);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @hidden
|
|
53
|
-
* Used to calculate the last item index of each group.
|
|
54
|
-
*/
|
|
55
|
-
getGroupIndices(data) {
|
|
56
|
-
const groupIndices = [];
|
|
57
|
-
for (let i = 0; i <= data.length - 1; i++) {
|
|
58
|
-
groupIndices[i] = (groupIndices[i - 1] || 0) + data[i].items.length;
|
|
59
|
-
}
|
|
60
|
-
return groupIndices;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* @hidden
|
|
64
|
-
* Used to get a flat array containing all items matching certain criteria.
|
|
65
|
-
*/
|
|
66
|
-
filter(predicate) {
|
|
67
|
-
let result = [];
|
|
68
|
-
if (this.isGrouped(this.data)) {
|
|
69
|
-
for (let i = 0; i <= this.groupIndices.length - 1; i++) {
|
|
70
|
-
const matches = this.data[i].items.filter(predicate);
|
|
71
|
-
if (matches) {
|
|
72
|
-
result = result.concat(matches);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
result = this.data.filter(predicate);
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* @hidden
|
|
83
|
-
* Used to get the index of a given data item.
|
|
84
|
-
*/
|
|
85
|
-
indexOf(item, startFrom = 0) {
|
|
86
|
-
let predicate = (element) => {
|
|
87
|
-
return element === item;
|
|
88
|
-
};
|
|
89
|
-
if (this.grouped) {
|
|
90
|
-
predicate = (element) => {
|
|
91
|
-
return element.value === item;
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
return this.findIndex(predicate, startFrom);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* @hidden
|
|
98
|
-
* Used to get the index of a data item based on an expression.
|
|
99
|
-
*/
|
|
100
|
-
findIndex(predicate, startFrom = 0) {
|
|
101
|
-
let index = -1;
|
|
102
|
-
if (this.grouped) {
|
|
103
|
-
const data = this._flatData.filter(item => !item.header && item.offsetIndex >= startFrom);
|
|
104
|
-
index = data.findIndex(predicate);
|
|
105
|
-
index = data[index] ? data[index].offsetIndex : -1;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
const data = this.data.slice(startFrom);
|
|
109
|
-
const itemIndex = data.findIndex(predicate);
|
|
110
|
-
index = itemIndex !== -1 ? itemIndex + startFrom : -1;
|
|
111
|
-
}
|
|
112
|
-
return index;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* @hidden
|
|
116
|
-
* Used to get the closest group header prior to an item index.
|
|
117
|
-
*/
|
|
118
|
-
closestGroup(index) {
|
|
119
|
-
for (let i = index; i >= 0; i--) {
|
|
120
|
-
if (this._flatData[i].header) {
|
|
121
|
-
return this._flatData[i];
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* @hidden
|
|
127
|
-
* Used to get the first item matching the criteria.
|
|
128
|
-
*/
|
|
129
|
-
find(predicate) {
|
|
130
|
-
const index = this.findIndex(predicate);
|
|
131
|
-
return this.itemAt(index);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* @hidden
|
|
135
|
-
* Used to get the true index in a flattened data array.
|
|
136
|
-
*/
|
|
137
|
-
flatIndex(index) {
|
|
138
|
-
if (this.itemsCount === 0) {
|
|
139
|
-
return -1;
|
|
140
|
-
}
|
|
141
|
-
if (this.grouped) {
|
|
142
|
-
const match = this._flatData.find((item) => !item.header && item.offsetIndex === index);
|
|
143
|
-
if (match) {
|
|
144
|
-
return match.index;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
return index;
|
|
149
|
-
}
|
|
150
|
-
return -1;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* @hidden
|
|
154
|
-
* Used to get the item at the provided index.
|
|
155
|
-
*/
|
|
156
|
-
itemAt(index) {
|
|
157
|
-
let dataItem;
|
|
158
|
-
if (this.itemsCount === 0) {
|
|
159
|
-
return dataItem;
|
|
160
|
-
}
|
|
161
|
-
if (this.grouped) {
|
|
162
|
-
const match = this._flatData.find((item) => !item.header && item.offsetIndex === index);
|
|
163
|
-
if (match) {
|
|
164
|
-
dataItem = match.value;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
dataItem = this.data[index];
|
|
169
|
-
}
|
|
170
|
-
return dataItem;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* @hidden
|
|
174
|
-
* Used to get the group at the provided index.
|
|
175
|
-
*/
|
|
176
|
-
groupAt(index) {
|
|
177
|
-
if (this.itemsCount === 0 || !this.isGrouped) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
return this._flatData.find((item) => item.header && item.index === index);
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* @hidden
|
|
184
|
-
* Used to get all group items indices.
|
|
185
|
-
*/
|
|
186
|
-
groupItemsIndices() {
|
|
187
|
-
if (this.isGrouped) {
|
|
188
|
-
return filterAndMap(this.data, item => item.header, mappedItem => mappedItem.index);
|
|
189
|
-
}
|
|
190
|
-
return [];
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* @hidden
|
|
194
|
-
* Used to get the field by which the data is grouped.
|
|
195
|
-
*/
|
|
196
|
-
groupField() {
|
|
197
|
-
if (this.itemsCount === 0 || !this.isGrouped) {
|
|
198
|
-
return null;
|
|
199
|
-
}
|
|
200
|
-
return this._data[0].field;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* @hidden
|
|
204
|
-
* Used to get the group to which a dataItem belongs.
|
|
205
|
-
*/
|
|
206
|
-
itemGroup(item) {
|
|
207
|
-
if (!item || this.itemsCount === 0 || !this.isGrouped) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
const fieldName = this.groupField();
|
|
211
|
-
if (fieldName) {
|
|
212
|
-
return getter(item, fieldName);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
flatten(data, group = undefined, offset = 0, groupIndex = 0) {
|
|
216
|
-
let flat = [];
|
|
217
|
-
if (isPresent(group)) {
|
|
218
|
-
flat.push({
|
|
219
|
-
header: true,
|
|
220
|
-
groupIndex: groupIndex,
|
|
221
|
-
index: groupIndex + offset,
|
|
222
|
-
offsetIndex: groupIndex,
|
|
223
|
-
value: group
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
for (let i = 0; i < data.length; i++) {
|
|
227
|
-
let result = [];
|
|
228
|
-
if (data[i].items) {
|
|
229
|
-
result = this.flatten(data[i].items, data[i].value, offset, i);
|
|
230
|
-
offset = offset + data[i].items.length;
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
result.push({
|
|
234
|
-
header: false,
|
|
235
|
-
groupIndex: groupIndex,
|
|
236
|
-
index: groupIndex + offset + i + 1,
|
|
237
|
-
offsetIndex: offset + i,
|
|
238
|
-
value: data[i]
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
flat = flat.concat(result);
|
|
242
|
-
}
|
|
243
|
-
return flat;
|
|
244
|
-
}
|
|
245
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
246
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataService });
|
|
247
|
-
}
|
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataService, decorators: [{
|
|
249
|
-
type: Injectable
|
|
250
|
-
}] });
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
6
|
-
import { isPresent } from '../util';
|
|
7
|
-
import { DataService } from '../data.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../data.service";
|
|
10
|
-
/**
|
|
11
|
-
* @hidden
|
|
12
|
-
*/
|
|
13
|
-
export class DisabledItemsService {
|
|
14
|
-
dataService;
|
|
15
|
-
defaultItem;
|
|
16
|
-
itemDisabled = null;
|
|
17
|
-
constructor(dataService) {
|
|
18
|
-
this.dataService = dataService;
|
|
19
|
-
}
|
|
20
|
-
isIndexDisabled(index) {
|
|
21
|
-
if (this.itemDisabled) {
|
|
22
|
-
const item = this.dataService.itemAt(index);
|
|
23
|
-
if (isPresent(item)) {
|
|
24
|
-
return this.itemDisabled({ dataItem: item, index });
|
|
25
|
-
}
|
|
26
|
-
else if (isPresent(this.defaultItem)) {
|
|
27
|
-
return this.itemDisabled({ dataItem: this.defaultItem, index: -1 });
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
isItemDisabled(item) {
|
|
32
|
-
if (this.itemDisabled) {
|
|
33
|
-
const index = this.dataService.indexOf(item);
|
|
34
|
-
if (index !== -1) {
|
|
35
|
-
return this.itemDisabled({ dataItem: item, index });
|
|
36
|
-
}
|
|
37
|
-
else if (isPresent(this.defaultItem)) {
|
|
38
|
-
return this.itemDisabled({ dataItem: this.defaultItem, index: -1 });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisabledItemsService, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisabledItemsService });
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisabledItemsService, decorators: [{
|
|
46
|
-
type: Injectable
|
|
47
|
-
}], ctorParameters: () => [{ type: i1.DataService }] });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Directive, ElementRef, Input, NgZone } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
export class FilterInputDirective {
|
|
11
|
-
element;
|
|
12
|
-
zone;
|
|
13
|
-
focused;
|
|
14
|
-
constructor(element, zone) {
|
|
15
|
-
this.element = element;
|
|
16
|
-
this.zone = zone;
|
|
17
|
-
}
|
|
18
|
-
ngOnChanges() {
|
|
19
|
-
if (this.focused) {
|
|
20
|
-
this.nextTick(() => this.element.nativeElement.focus());
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
nextTick(fn) {
|
|
24
|
-
this.zone.runOutsideAngular(() => setTimeout(fn));
|
|
25
|
-
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: FilterInputDirective, isStandalone: true, selector: "[filterInput]", inputs: { focused: ["filterInput", "focused"] }, usesOnChanges: true, ngImport: i0 });
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterInputDirective, decorators: [{
|
|
30
|
-
type: Directive,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: '[filterInput]' // eslint-disable-line
|
|
33
|
-
,
|
|
34
|
-
standalone: true
|
|
35
|
-
}]
|
|
36
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { focused: [{
|
|
37
|
-
type: Input,
|
|
38
|
-
args: ['filterInput']
|
|
39
|
-
}] } });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export {};
|