@progress/kendo-angular-buttons 17.0.0-develop.3 → 17.0.0-develop.31
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/README.md +27 -106
- package/button/button.component.d.ts +3 -9
- package/button/selection-settings.d.ts +1 -1
- package/buttongroup/buttongroup.component.d.ts +2 -2
- package/chip/chip-list.component.d.ts +4 -4
- package/chip/chip.component.d.ts +4 -7
- package/chip/models/avatar-settings.interface.d.ts +33 -0
- package/chip/models/selection.d.ts +1 -1
- package/common/models/fillmode.d.ts +2 -2
- package/common/models/rounded.d.ts +2 -2
- package/common/models/size.d.ts +3 -3
- package/common/models/theme-color.d.ts +2 -2
- package/direction.d.ts +1 -1
- package/dropdownbutton/dropdownbutton.component.d.ts +7 -10
- package/{esm2020 → esm2022}/button/button.component.mjs +80 -108
- package/{esm2020 → esm2022}/button/button.module.mjs +4 -4
- package/{esm2020 → esm2022}/button/button.service.mjs +5 -7
- package/{esm2020 → esm2022}/buttongroup/buttongroup.component.mjs +79 -56
- package/{esm2020 → esm2022}/buttongroup/buttongroup.module.mjs +4 -4
- package/{esm2020 → esm2022}/buttons.module.mjs +4 -4
- package/{esm2020 → esm2022}/chip/chip-list.component.mjs +58 -48
- package/{esm2020 → esm2022}/chip/chip.component.mjs +155 -93
- package/{esm2020 → esm2022}/chip/chip.module.mjs +4 -4
- package/{esm2020 → esm2022}/dropdownbutton/dropdownbutton.component.mjs +130 -118
- package/{esm2020 → esm2022}/dropdownbutton/dropdownbutton.module.mjs +4 -4
- package/{esm2020 → esm2022}/floatingactionbutton/dial-item.component.mjs +21 -11
- package/{esm2020 → esm2022}/floatingactionbutton/dial-list.component.mjs +16 -11
- package/{esm2020 → esm2022}/floatingactionbutton/floatingactionbutton.component.mjs +145 -102
- package/{esm2020 → esm2022}/floatingactionbutton/floatingactionbutton.module.mjs +4 -4
- package/{esm2020 → esm2022}/floatingactionbutton/templates/dial-item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/floatingactionbutton/templates/fab-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/focusable/focus.service.mjs +5 -6
- package/{esm2020 → esm2022}/focusable/focusable.directive.mjs +8 -4
- package/{esm2020 → esm2022}/listbutton/button-item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/listbutton/container.service.mjs +5 -3
- package/{esm2020 → esm2022}/listbutton/list-button.mjs +88 -51
- package/{esm2020 → esm2022}/listbutton/list.component.mjs +13 -10
- package/{esm2020 → esm2022}/listbutton/list.module.mjs +8 -8
- package/esm2022/listbutton/popup-settings.mjs +5 -0
- package/{esm2020 → esm2022}/navigation/navigation.service.mjs +12 -11
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{esm2020 → esm2022}/preventable-event.mjs +1 -3
- package/{esm2020 → esm2022}/splitbutton/localization/custom-messages.component.mjs +7 -6
- package/{esm2020 → esm2022}/splitbutton/localization/localized-messages.directive.mjs +9 -8
- package/esm2022/splitbutton/localization/messages.mjs +45 -0
- package/{esm2020 → esm2022}/splitbutton/splitbutton.component.mjs +213 -189
- package/{esm2020 → esm2022}/splitbutton/splitbutton.module.mjs +4 -4
- package/{esm2020 → esm2022}/util.mjs +6 -0
- package/{fesm2020 → fesm2022}/progress-kendo-angular-buttons.mjs +1324 -1089
- package/floatingactionbutton/dial-item.component.d.ts +1 -1
- package/floatingactionbutton/dial-list.component.d.ts +1 -1
- package/floatingactionbutton/floatingactionbutton.component.d.ts +1 -1
- package/floatingactionbutton/models/position-mode.d.ts +1 -1
- package/focusable/focusable.directive.d.ts +1 -1
- package/index.d.ts +1 -0
- package/listbutton/list-button.d.ts +9 -4
- package/listbutton/list.component.d.ts +1 -1
- package/package.json +15 -21
- package/splitbutton/localization/messages.d.ts +1 -1
- package/splitbutton/splitbutton.component.d.ts +8 -16
- package/util.d.ts +6 -0
- package/esm2020/splitbutton/localization/messages.mjs +0 -23
- package/fesm2015/progress-kendo-angular-buttons.mjs +0 -5589
- /package/{esm2020 → esm2022}/button/selection-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/chip/chip-content-click-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/chip/chip-list-remove-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/chip/chip-remove-event-args.interface.mjs +0 -0
- /package/{esm2020/chip/models/selection.mjs → esm2022/chip/models/avatar-settings.interface.mjs} +0 -0
- /package/{esm2020/common/models/arrow-settings.mjs → esm2022/chip/models/selection.mjs} +0 -0
- /package/{esm2020/common/models/fillmode.mjs → esm2022/common/models/arrow-settings.mjs} +0 -0
- /package/{esm2020/common/models/rounded.mjs → esm2022/common/models/fillmode.mjs} +0 -0
- /package/{esm2020/common/models/size.mjs → esm2022/common/models/rounded.mjs} +0 -0
- /package/{esm2020/common/models/styling-classes.mjs → esm2022/common/models/size.mjs} +0 -0
- /package/{esm2020/common/models/theme-color.mjs → esm2022/common/models/styling-classes.mjs} +0 -0
- /package/{esm2020/direction.mjs → esm2022/common/models/theme-color.mjs} +0 -0
- /package/{esm2020 → esm2022}/common/models.mjs +0 -0
- /package/{esm2020/floatingactionbutton/models/align.mjs → esm2022/direction.mjs} +0 -0
- /package/{esm2020 → esm2022}/directives.mjs +0 -0
- /package/{esm2020 → esm2022}/floatingactionbutton/animations/animations.mjs +0 -0
- /package/{esm2020/floatingactionbutton/models/item-animation.interface.mjs → esm2022/floatingactionbutton/models/align.mjs} +0 -0
- /package/{esm2020/floatingactionbutton/models/item-click.event.mjs → esm2022/floatingactionbutton/models/item-animation.interface.mjs} +0 -0
- /package/{esm2020/floatingactionbutton/models/item.interface.mjs → esm2022/floatingactionbutton/models/item-click.event.mjs} +0 -0
- /package/{esm2020/floatingactionbutton/models/offset.mjs → esm2022/floatingactionbutton/models/item.interface.mjs} +0 -0
- /package/{esm2020/floatingactionbutton/models/position-mode.mjs → esm2022/floatingactionbutton/models/offset.mjs} +0 -0
- /package/{esm2020/listbutton/list-item-model.mjs → esm2022/floatingactionbutton/models/position-mode.mjs} +0 -0
- /package/{esm2020 → esm2022}/floatingactionbutton/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020/listbutton/popup-settings.mjs → esm2022/listbutton/list-item-model.mjs} +0 -0
- /package/{esm2020 → esm2022}/navigation/key-events.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/navigation-action.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/navigation-config.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-buttons.mjs +0 -0
|
@@ -3,16 +3,16 @@
|
|
|
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 { Injectable,
|
|
6
|
+
import { Injectable, isDevMode, EventEmitter, Component, Optional, Input, Output, HostBinding, HostListener, ContentChildren, Directive, InjectionToken, Inject, ElementRef, ViewContainerRef, ViewChild, ContentChild, forwardRef, NgModule } from '@angular/core';
|
|
7
7
|
import { Subject, Subscription, fromEvent, merge } from 'rxjs';
|
|
8
|
-
import { isDocumentAvailable, isFirefox,
|
|
8
|
+
import { isDocumentAvailable, isFirefox, isSafari, isChanged, hasObservers, Keys, TemplateContextDirective, MultiTabStop, guid, isPresent as isPresent$1, EventsOutsideAngularDirective, anyChanged, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
9
9
|
export { ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
|
|
10
10
|
import { caretAltDownIcon, xCircleIcon, moreVerticalIcon } from '@progress/kendo-svg-icons';
|
|
11
11
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
12
12
|
import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';
|
|
13
13
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
14
14
|
import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
|
|
15
|
-
import { NgIf, NgClass, NgFor, NgTemplateOutlet
|
|
15
|
+
import { NgIf, NgClass, NgStyle, NgFor, NgTemplateOutlet } from '@angular/common';
|
|
16
16
|
import { filter, tap, take } from 'rxjs/operators';
|
|
17
17
|
import * as i3 from '@progress/kendo-angular-popup';
|
|
18
18
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
@@ -23,17 +23,15 @@ import { sequence, query, style, stagger, animate } from '@angular/animations';
|
|
|
23
23
|
* @hidden
|
|
24
24
|
*/
|
|
25
25
|
class KendoButtonService {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.buttonClicked$ = this.buttonClicked.asObservable();
|
|
29
|
-
}
|
|
26
|
+
buttonClicked = new Subject();
|
|
27
|
+
buttonClicked$ = this.buttonClicked.asObservable();
|
|
30
28
|
click(button) {
|
|
31
29
|
this.buttonClicked.next(button);
|
|
32
30
|
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KendoButtonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KendoButtonService });
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
KendoButtonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: KendoButtonService });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: KendoButtonService, decorators: [{
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KendoButtonService, decorators: [{
|
|
37
35
|
type: Injectable
|
|
38
36
|
}] });
|
|
39
37
|
|
|
@@ -44,8 +42,8 @@ const packageMetadata = {
|
|
|
44
42
|
name: '@progress/kendo-angular-buttons',
|
|
45
43
|
productName: 'Kendo UI for Angular',
|
|
46
44
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
47
|
-
publishDate:
|
|
48
|
-
version: '17.0.0-develop.
|
|
45
|
+
publishDate: 1730478591,
|
|
46
|
+
version: '17.0.0-develop.31',
|
|
49
47
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
50
48
|
};
|
|
51
49
|
|
|
@@ -140,10 +138,13 @@ const getThemeColorClasses = (componentType, prevFillMode, fillMode, previousVal
|
|
|
140
138
|
toAdd: newValue !== 'none' ? `k-${componentType}-${fillMode}-${newValue}` : ''
|
|
141
139
|
};
|
|
142
140
|
};
|
|
141
|
+
/**
|
|
142
|
+
* @hidden
|
|
143
|
+
*
|
|
144
|
+
* Checks for an empty object - {}
|
|
145
|
+
*/
|
|
146
|
+
const isObjectEmpty = (obj) => obj && Object.keys(obj).length === 0 && obj.constructor === Object;
|
|
143
147
|
|
|
144
|
-
const SPAN_TAG_NAME = 'SPAN';
|
|
145
|
-
const BUTTON_TAG_NAME = 'BUTTON';
|
|
146
|
-
const KENDO_BUTTON_TAG_NAME = 'KENDO-BUTTON';
|
|
147
148
|
const DEFAULT_ROUNDED$3 = 'medium';
|
|
148
149
|
const DEFAULT_SIZE$2 = 'medium';
|
|
149
150
|
const DEFAULT_THEME_COLOR$2 = 'base';
|
|
@@ -151,54 +152,25 @@ const DEFAULT_FILL_MODE$3 = 'solid';
|
|
|
151
152
|
/**
|
|
152
153
|
* Represents the Kendo UI Button component for Angular.
|
|
153
154
|
*
|
|
154
|
-
* As of package
|
|
155
|
-
*
|
|
156
|
-
* to avoid discrepancies between the behavior of the `ButtonComponent` and the native HTML Button element.
|
|
155
|
+
* As of package v17, the `span[kendoButton]` and `kendo-button` selectors are removed.
|
|
156
|
+
* Please use the `button[kendoButton]` selector only.
|
|
157
157
|
*/
|
|
158
158
|
class ButtonComponent {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
this.toggleable = false;
|
|
175
|
-
/**
|
|
176
|
-
* @hidden
|
|
177
|
-
*/
|
|
178
|
-
this.role = 'button';
|
|
179
|
-
/**
|
|
180
|
-
* Fires each time the selected state of a toggleable button is changed.
|
|
181
|
-
*
|
|
182
|
-
* The event argument is the new selected state (boolean).
|
|
183
|
-
*/
|
|
184
|
-
this.selectedChange = new EventEmitter();
|
|
185
|
-
/**
|
|
186
|
-
* Fires each time the user clicks the button.
|
|
187
|
-
*/
|
|
188
|
-
this.click = new EventEmitter();
|
|
189
|
-
this.isDisabled = false;
|
|
190
|
-
this.caretAltDownIcon = caretAltDownIcon;
|
|
191
|
-
this._size = DEFAULT_SIZE$2;
|
|
192
|
-
this._rounded = DEFAULT_ROUNDED$3;
|
|
193
|
-
this._fillMode = DEFAULT_FILL_MODE$3;
|
|
194
|
-
this._themeColor = DEFAULT_THEME_COLOR$2;
|
|
195
|
-
this._focused = false;
|
|
196
|
-
this.subs = new Subscription();
|
|
197
|
-
validatePackage(packageMetadata);
|
|
198
|
-
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
199
|
-
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
200
|
-
this.element = element.nativeElement;
|
|
201
|
-
}
|
|
159
|
+
renderer;
|
|
160
|
+
service;
|
|
161
|
+
ngZone;
|
|
162
|
+
/**
|
|
163
|
+
* @hidden
|
|
164
|
+
* @default false
|
|
165
|
+
* required for DropDownButton arrow icon.
|
|
166
|
+
*/
|
|
167
|
+
arrowIcon = false;
|
|
168
|
+
/**
|
|
169
|
+
* Provides visual styling that indicates if the Button is active.
|
|
170
|
+
*
|
|
171
|
+
* @default false
|
|
172
|
+
*/
|
|
173
|
+
toggleable = false;
|
|
202
174
|
/**
|
|
203
175
|
* Backwards-compatible alias
|
|
204
176
|
*
|
|
@@ -233,6 +205,11 @@ class ButtonComponent {
|
|
|
233
205
|
get tabIndex() {
|
|
234
206
|
return this.element.tabIndex;
|
|
235
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Defines a URL which is used for an `img` element inside the Button.
|
|
210
|
+
* The URL can be relative or absolute. If relative, it is evaluated with relation to the web page URL.
|
|
211
|
+
*/
|
|
212
|
+
imageUrl;
|
|
236
213
|
/**
|
|
237
214
|
* Defines a CSS class—or multiple classes separated by spaces—
|
|
238
215
|
* which are applied to a `span` element inside the Button. Allows the usage of custom icons.
|
|
@@ -343,6 +320,30 @@ class ButtonComponent {
|
|
|
343
320
|
get svgIcon() {
|
|
344
321
|
return this._svgIcon;
|
|
345
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Fires each time the selected state of a toggleable button is changed.
|
|
325
|
+
*
|
|
326
|
+
* The event argument is the new selected state (boolean).
|
|
327
|
+
*/
|
|
328
|
+
selectedChange = new EventEmitter();
|
|
329
|
+
/**
|
|
330
|
+
* Fires each time the user clicks the button.
|
|
331
|
+
*/
|
|
332
|
+
click = new EventEmitter();
|
|
333
|
+
element;
|
|
334
|
+
isDisabled = false;
|
|
335
|
+
caretAltDownIcon = caretAltDownIcon;
|
|
336
|
+
_size = DEFAULT_SIZE$2;
|
|
337
|
+
_rounded = DEFAULT_ROUNDED$3;
|
|
338
|
+
_fillMode = DEFAULT_FILL_MODE$3;
|
|
339
|
+
_themeColor = DEFAULT_THEME_COLOR$2;
|
|
340
|
+
_focused = false;
|
|
341
|
+
direction;
|
|
342
|
+
_selected;
|
|
343
|
+
subs = new Subscription();
|
|
344
|
+
_iconClass;
|
|
345
|
+
_icon;
|
|
346
|
+
_svgIcon;
|
|
346
347
|
set isFocused(isFocused) {
|
|
347
348
|
this.toggleClass('k-focus', isFocused);
|
|
348
349
|
this._focused = isFocused;
|
|
@@ -360,10 +361,6 @@ class ButtonComponent {
|
|
|
360
361
|
const hasIcon = this.icon || this.iconClass || this.imageUrl || this.svgIcon;
|
|
361
362
|
return hasIcon && !this.hasText;
|
|
362
363
|
}
|
|
363
|
-
get roleSetter() {
|
|
364
|
-
const isButtonElementAndRole = this.element.tagName === BUTTON_TAG_NAME && this.role === 'button';
|
|
365
|
-
return isButtonElementAndRole ? undefined : this.role;
|
|
366
|
-
}
|
|
367
364
|
get classDisabled() {
|
|
368
365
|
return this.isDisabled;
|
|
369
366
|
}
|
|
@@ -413,42 +410,24 @@ class ButtonComponent {
|
|
|
413
410
|
get nativeElement() {
|
|
414
411
|
return this.element;
|
|
415
412
|
}
|
|
413
|
+
constructor(element, renderer, service, localization, ngZone) {
|
|
414
|
+
this.renderer = renderer;
|
|
415
|
+
this.service = service;
|
|
416
|
+
this.ngZone = ngZone;
|
|
417
|
+
validatePackage(packageMetadata);
|
|
418
|
+
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
419
|
+
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
420
|
+
this.element = element.nativeElement;
|
|
421
|
+
}
|
|
416
422
|
ngOnInit() {
|
|
417
|
-
const elementTagName = this.element.tagName;
|
|
418
|
-
const isSpanOrKendoButton = elementTagName === SPAN_TAG_NAME || elementTagName === KENDO_BUTTON_TAG_NAME;
|
|
419
423
|
if (!this.element.hasAttribute('role') && this.togglable) {
|
|
420
424
|
this.toggleAriaPressed(this.toggleable);
|
|
421
425
|
}
|
|
422
|
-
if (this.role) {
|
|
423
|
-
const isButtonElementAndRole = elementTagName === BUTTON_TAG_NAME && this.role === 'button';
|
|
424
|
-
if (!isButtonElementAndRole) {
|
|
425
|
-
this.setAttribute('role', this.role);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
if (isSpanOrKendoButton && !this.isDisabled) {
|
|
429
|
-
this.tabIndex = 0;
|
|
430
|
-
}
|
|
431
|
-
if (isDevMode() && isSpanOrKendoButton) {
|
|
432
|
-
console.warn(`As of package v16, the "span[kendoButton]" and "kendo-button" selectors are deprecated and can
|
|
433
|
-
be removed in a future major version. We recommend using the "button[kendoButton]" selector
|
|
434
|
-
to avoid discrepancies between the behavior of the "ButtonComponent" and the native HTML Button element.`);
|
|
435
|
-
}
|
|
436
426
|
this.ngZone.runOutsideAngular(() => {
|
|
437
427
|
this.subs.add(this.renderer.listen(this.element, 'click', this._onButtonClick.bind(this)));
|
|
438
|
-
this.subs.add(this.renderer.listen(this.element, 'keydown', (event) => {
|
|
439
|
-
const isSpaceOrEnter = event.keyCode === Keys.Space || event.keyCode === Keys.Enter;
|
|
440
|
-
if (isSpanOrKendoButton && isSpaceOrEnter) {
|
|
441
|
-
this.ngZone.run(() => {
|
|
442
|
-
this.click.emit(event);
|
|
443
|
-
});
|
|
444
|
-
this._onButtonClick();
|
|
445
|
-
}
|
|
446
|
-
}));
|
|
447
428
|
this.subs.add(this.renderer.listen(this.element, 'mousedown', (event) => {
|
|
448
|
-
const elementTagName = this.element.tagName;
|
|
449
|
-
const isButton = elementTagName === BUTTON_TAG_NAME;
|
|
450
429
|
const isBrowserSafari = isDocumentAvailable() && isSafari(navigator.userAgent);
|
|
451
|
-
if (!this.isDisabled &&
|
|
430
|
+
if (!this.isDisabled && isBrowserSafari) {
|
|
452
431
|
event.preventDefault();
|
|
453
432
|
this.element.focus();
|
|
454
433
|
}
|
|
@@ -575,15 +554,14 @@ class ButtonComponent {
|
|
|
575
554
|
}
|
|
576
555
|
}
|
|
577
556
|
}
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
], exportAs: ["kendoButton"], usesOnChanges: true, ngImport: i0, template: `
|
|
557
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: KendoButtonService, optional: true }, { token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
558
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, isStandalone: true, selector: "button[kendoButton]", inputs: { arrowIcon: "arrowIcon", toggleable: "toggleable", togglable: "togglable", selected: "selected", tabIndex: "tabIndex", imageUrl: "imageUrl", iconClass: "iconClass", icon: "icon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", svgIcon: "svgIcon", primary: "primary", look: "look" }, outputs: { selectedChange: "selectedChange", click: "click" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.k-button": "this.classButton", "class.k-toggle-button": "this.isToggleable", "class.k-icon-button": "this.iconButtonClass", "attr.aria-disabled": "this.classDisabled", "class.k-disabled": "this.classDisabled", "class.k-selected": "this.classActive", "attr.dir": "this.getDirection" } }, providers: [
|
|
559
|
+
LocalizationService,
|
|
560
|
+
{
|
|
561
|
+
provide: L10N_PREFIX,
|
|
562
|
+
useValue: 'kendo.button'
|
|
563
|
+
}
|
|
564
|
+
], exportAs: ["kendoButton"], usesOnChanges: true, ngImport: i0, template: `
|
|
587
565
|
<kendo-icon-wrapper
|
|
588
566
|
*ngIf="icon || svgIcon"
|
|
589
567
|
innerCssClass="k-button-icon"
|
|
@@ -595,13 +573,15 @@ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
595
573
|
<span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
|
|
596
574
|
<span class="k-button-text"><ng-content></ng-content></span>
|
|
597
575
|
<span *ngIf="$any(arrowIcon).iconClass" class="k-button-icon" [ngClass]="$any(arrowIcon).iconClass"></span>
|
|
598
|
-
<
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
576
|
+
<span *ngIf="arrowIcon && !$any(arrowIcon).iconClass" class="k-button-arrow">
|
|
577
|
+
<kendo-icon-wrapper
|
|
578
|
+
[name]="$any(arrowIcon).icon || 'caret-alt-down'"
|
|
579
|
+
[svgIcon]="$any(arrowIcon).svgIcon || caretAltDownIcon"></kendo-icon-wrapper>
|
|
580
|
+
</span>
|
|
581
|
+
|
|
603
582
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
|
|
604
|
-
|
|
583
|
+
}
|
|
584
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
605
585
|
type: Component,
|
|
606
586
|
args: [{
|
|
607
587
|
exportAs: 'kendoButton',
|
|
@@ -612,7 +592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
612
592
|
useValue: 'kendo.button'
|
|
613
593
|
}
|
|
614
594
|
],
|
|
615
|
-
selector: 'button[kendoButton]
|
|
595
|
+
selector: 'button[kendoButton]',
|
|
616
596
|
template: `
|
|
617
597
|
<kendo-icon-wrapper
|
|
618
598
|
*ngIf="icon || svgIcon"
|
|
@@ -625,11 +605,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
625
605
|
<span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
|
|
626
606
|
<span class="k-button-text"><ng-content></ng-content></span>
|
|
627
607
|
<span *ngIf="$any(arrowIcon).iconClass" class="k-button-icon" [ngClass]="$any(arrowIcon).iconClass"></span>
|
|
628
|
-
<
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
608
|
+
<span *ngIf="arrowIcon && !$any(arrowIcon).iconClass" class="k-button-arrow">
|
|
609
|
+
<kendo-icon-wrapper
|
|
610
|
+
[name]="$any(arrowIcon).icon || 'caret-alt-down'"
|
|
611
|
+
[svgIcon]="$any(arrowIcon).svgIcon || caretAltDownIcon"></kendo-icon-wrapper>
|
|
612
|
+
</span>
|
|
613
|
+
|
|
633
614
|
`,
|
|
634
615
|
standalone: true,
|
|
635
616
|
imports: [NgIf, IconWrapperComponent, NgClass]
|
|
@@ -664,8 +645,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
664
645
|
type: Input
|
|
665
646
|
}], svgIcon: [{
|
|
666
647
|
type: Input
|
|
667
|
-
}], role: [{
|
|
668
|
-
type: Input
|
|
669
648
|
}], selectedChange: [{
|
|
670
649
|
type: Output
|
|
671
650
|
}], click: [{
|
|
@@ -679,9 +658,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
679
658
|
}], iconButtonClass: [{
|
|
680
659
|
type: HostBinding,
|
|
681
660
|
args: ['class.k-icon-button']
|
|
682
|
-
}], roleSetter: [{
|
|
683
|
-
type: HostBinding,
|
|
684
|
-
args: ['attr.role']
|
|
685
661
|
}], classDisabled: [{
|
|
686
662
|
type: HostBinding,
|
|
687
663
|
args: ['attr.aria-disabled']
|
|
@@ -710,9 +686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
710
686
|
* @hidden
|
|
711
687
|
*/
|
|
712
688
|
class PreventableEvent {
|
|
713
|
-
|
|
714
|
-
this.prevented = false;
|
|
715
|
-
}
|
|
689
|
+
prevented = false;
|
|
716
690
|
/**
|
|
717
691
|
* Prevents the default action for a specified event.
|
|
718
692
|
* In this way, the source component suppresses the built-in behavior that follows the event.
|
|
@@ -738,45 +712,34 @@ const tabindex = 'tabindex';
|
|
|
738
712
|
* Represents the Kendo UI ButtonGroup component for Angular.
|
|
739
713
|
*/
|
|
740
714
|
class ButtonGroupComponent {
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
this.currentTabIndex = -1;
|
|
770
|
-
this.defocus(this.buttons.toArray());
|
|
771
|
-
const firstFocusableIndex = this.buttons.toArray().findIndex(current => !current.disabled);
|
|
772
|
-
const index = this.lastFocusedIndex === -1 ? firstFocusableIndex : this.lastFocusedIndex;
|
|
773
|
-
this.focus(this.buttons.filter((_current, i) => {
|
|
774
|
-
return i === index;
|
|
775
|
-
}));
|
|
776
|
-
};
|
|
777
|
-
validatePackage(packageMetadata);
|
|
778
|
-
this.subs.add(localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
779
|
-
}
|
|
715
|
+
service;
|
|
716
|
+
renderer;
|
|
717
|
+
element;
|
|
718
|
+
/**
|
|
719
|
+
* By default, the ButtonGroup is enabled.
|
|
720
|
+
* To disable the whole group of buttons, set its `disabled` attribute to `true`.
|
|
721
|
+
*
|
|
722
|
+
* To disable a specific button, set its own `disabled` attribute to `true`
|
|
723
|
+
* and leave the `disabled` attribute of the ButtonGroup undefined.
|
|
724
|
+
* If you define the `disabled` attribute of the ButtonGroup, it will take
|
|
725
|
+
* precedence over the `disabled` attributes of the underlying buttons and they will be ignored.
|
|
726
|
+
*
|
|
727
|
+
* For more information on how to configure the Button, refer to
|
|
728
|
+
* its [API documentation]({% slug api_buttons_buttoncomponent %}).
|
|
729
|
+
*/
|
|
730
|
+
disabled;
|
|
731
|
+
/**
|
|
732
|
+
* The selection mode of the ButtonGroup.
|
|
733
|
+
* @default 'multiple'
|
|
734
|
+
*/
|
|
735
|
+
selection = 'multiple';
|
|
736
|
+
/**
|
|
737
|
+
* Sets the width of the ButtonGroup.
|
|
738
|
+
* If the width of the ButtonGroup is set:
|
|
739
|
+
* - The buttons resize automatically to fill the full width of the group wrapper.
|
|
740
|
+
* - The buttons acquire the same width.
|
|
741
|
+
*/
|
|
742
|
+
width;
|
|
780
743
|
/**
|
|
781
744
|
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
782
745
|
*/
|
|
@@ -787,15 +750,33 @@ class ButtonGroupComponent {
|
|
|
787
750
|
get tabIndex() {
|
|
788
751
|
return this._tabIndex;
|
|
789
752
|
}
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
753
|
+
/**
|
|
754
|
+
* When this option is set to `true` (default), the component is a single tab-stop,
|
|
755
|
+
* and focus is moved through the inner buttons via the arrow keys.
|
|
756
|
+
*
|
|
757
|
+
* When the option is set to `false`, the inner buttons are part of the natural tab sequence of the page.
|
|
758
|
+
*
|
|
759
|
+
* @default true
|
|
760
|
+
*/
|
|
761
|
+
navigable = true;
|
|
762
|
+
/**
|
|
763
|
+
* Fires every time keyboard navigation occurs.
|
|
764
|
+
*/
|
|
765
|
+
navigate = new EventEmitter();
|
|
766
|
+
buttons;
|
|
767
|
+
_tabIndex = 0;
|
|
768
|
+
currentTabIndex = 0;
|
|
769
|
+
lastFocusedIndex = -1;
|
|
770
|
+
direction;
|
|
771
|
+
subs = new Subscription();
|
|
772
|
+
wrapperClasses = true;
|
|
793
773
|
get disabledClass() {
|
|
794
774
|
return this.disabled;
|
|
795
775
|
}
|
|
796
776
|
get stretchedClass() {
|
|
797
777
|
return !!this.width;
|
|
798
778
|
}
|
|
779
|
+
role = 'group';
|
|
799
780
|
get dir() {
|
|
800
781
|
return this.direction;
|
|
801
782
|
}
|
|
@@ -808,6 +789,13 @@ class ButtonGroupComponent {
|
|
|
808
789
|
get wrapperTabIndex() {
|
|
809
790
|
return this.disabled ? undefined : this.navigable ? this.currentTabIndex : undefined;
|
|
810
791
|
}
|
|
792
|
+
constructor(service, localization, renderer, element) {
|
|
793
|
+
this.service = service;
|
|
794
|
+
this.renderer = renderer;
|
|
795
|
+
this.element = element;
|
|
796
|
+
validatePackage(packageMetadata);
|
|
797
|
+
this.subs.add(localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
798
|
+
}
|
|
811
799
|
ngOnInit() {
|
|
812
800
|
this.subs.add(this.service.buttonClicked$.subscribe((button) => {
|
|
813
801
|
let newSelectionValue;
|
|
@@ -948,19 +936,28 @@ class ButtonGroupComponent {
|
|
|
948
936
|
.pipe(filter(predicate))
|
|
949
937
|
.subscribe(handler));
|
|
950
938
|
}
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
{
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
939
|
+
focusHandler = () => {
|
|
940
|
+
this.currentTabIndex = -1;
|
|
941
|
+
this.defocus(this.buttons.toArray());
|
|
942
|
+
const firstFocusableIndex = this.buttons.toArray().findIndex(current => !current.disabled);
|
|
943
|
+
const index = this.lastFocusedIndex === -1 ? firstFocusableIndex : this.lastFocusedIndex;
|
|
944
|
+
this.focus(this.buttons.filter((_current, i) => {
|
|
945
|
+
return i === index;
|
|
946
|
+
}));
|
|
947
|
+
};
|
|
948
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupComponent, deps: [{ token: KendoButtonService }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
949
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonGroupComponent, isStandalone: true, selector: "kendo-buttongroup", inputs: { disabled: "disabled", selection: "selection", width: "width", tabIndex: "tabIndex", navigable: "navigable" }, outputs: { navigate: "navigate" }, host: { properties: { "class.k-button-group": "this.wrapperClasses", "class.k-disabled": "this.disabledClass", "class.k-button-group-stretched": "this.stretchedClass", "attr.role": "this.role", "attr.dir": "this.dir", "attr.aria-disabled": "this.ariaDisabled", "style.width": "this.wrapperWidth", "attr.tabindex": "this.wrapperTabIndex" } }, providers: [
|
|
950
|
+
KendoButtonService,
|
|
951
|
+
LocalizationService,
|
|
952
|
+
{
|
|
953
|
+
provide: L10N_PREFIX,
|
|
954
|
+
useValue: 'kendo.buttongroup'
|
|
955
|
+
}
|
|
956
|
+
], queries: [{ propertyName: "buttons", predicate: ButtonComponent }], exportAs: ["kendoButtonGroup"], usesOnChanges: true, ngImport: i0, template: `
|
|
957
|
+
<ng-content select="[kendoButton]"></ng-content>
|
|
962
958
|
`, isInline: true });
|
|
963
|
-
|
|
959
|
+
}
|
|
960
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupComponent, decorators: [{
|
|
964
961
|
type: Component,
|
|
965
962
|
args: [{
|
|
966
963
|
exportAs: 'kendoButtonGroup',
|
|
@@ -974,7 +971,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
974
971
|
],
|
|
975
972
|
selector: 'kendo-buttongroup',
|
|
976
973
|
template: `
|
|
977
|
-
<ng-content select="[kendoButton]
|
|
974
|
+
<ng-content select="[kendoButton]"></ng-content>
|
|
978
975
|
`,
|
|
979
976
|
standalone: true
|
|
980
977
|
}]
|
|
@@ -996,7 +993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
996
993
|
}], buttons: [{
|
|
997
994
|
type: ContentChildren,
|
|
998
995
|
args: [ButtonComponent]
|
|
999
|
-
}],
|
|
996
|
+
}], wrapperClasses: [{
|
|
1000
997
|
type: HostBinding,
|
|
1001
998
|
args: ['class.k-button-group']
|
|
1002
999
|
}], disabledClass: [{
|
|
@@ -1030,66 +1027,77 @@ const DEFAULT_FILL_MODE$2 = 'solid';
|
|
|
1030
1027
|
* Displays a Chip that represents an input, attribute or an action.
|
|
1031
1028
|
*/
|
|
1032
1029
|
class ChipComponent {
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1030
|
+
element;
|
|
1031
|
+
renderer;
|
|
1032
|
+
ngZone;
|
|
1033
|
+
localizationService;
|
|
1034
|
+
/**
|
|
1035
|
+
* Sets the label text of the Chip.
|
|
1036
|
+
*/
|
|
1037
|
+
label;
|
|
1038
|
+
/**
|
|
1039
|
+
* Defines the name for an existing icon in a Kendo UI theme.
|
|
1040
|
+
* The icon is rendered inside the Chip by a `span.k-icon` element.
|
|
1041
|
+
*/
|
|
1042
|
+
icon;
|
|
1043
|
+
/**
|
|
1044
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the Chip using
|
|
1045
|
+
* a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
|
|
1046
|
+
*/
|
|
1047
|
+
svgIcon;
|
|
1048
|
+
/**
|
|
1049
|
+
* Defines a CSS class — or multiple classes separated by spaces —
|
|
1050
|
+
* which are applied to a span element.
|
|
1051
|
+
* Allows the usage of custom icons.
|
|
1052
|
+
*/
|
|
1053
|
+
iconClass;
|
|
1054
|
+
/**
|
|
1055
|
+
* Use these settings to render an avatar within the Chip.
|
|
1056
|
+
*/
|
|
1057
|
+
avatarSettings;
|
|
1058
|
+
/**
|
|
1059
|
+
* Specifies the selected state of the Chip.
|
|
1060
|
+
* @default false
|
|
1061
|
+
*/
|
|
1062
|
+
selected = false;
|
|
1063
|
+
/**
|
|
1064
|
+
* Specifies if the Chip will be removable or not.
|
|
1065
|
+
* If the property is set to `true`, the Chip renders a remove icon.
|
|
1066
|
+
* @default false
|
|
1067
|
+
*/
|
|
1068
|
+
removable = false;
|
|
1069
|
+
/**
|
|
1070
|
+
* Specifies a custom remove font icon class that will be rendered when the Chip is removable.
|
|
1071
|
+
* [see example]({% slug icons %})
|
|
1072
|
+
*/
|
|
1073
|
+
removeIcon;
|
|
1074
|
+
/**
|
|
1075
|
+
* Specifies a custom remove SVG icon that will be rendered when the Chip is removable.
|
|
1076
|
+
*/
|
|
1077
|
+
removeSvgIcon;
|
|
1078
|
+
/**
|
|
1079
|
+
* @hidden
|
|
1080
|
+
*
|
|
1081
|
+
* Determines whether the Chip has a menu.
|
|
1082
|
+
*/
|
|
1083
|
+
hasMenu = false;
|
|
1084
|
+
/**
|
|
1085
|
+
* @hidden
|
|
1086
|
+
*
|
|
1087
|
+
* Specifies a custom menu font icon class that will be rendered when the Chip has menu.
|
|
1088
|
+
*/
|
|
1089
|
+
menuIcon;
|
|
1090
|
+
/**
|
|
1091
|
+
* @hidden
|
|
1092
|
+
*
|
|
1093
|
+
* Specifies a custom menu SVG icon that will be rendered when the Chip has menu.
|
|
1094
|
+
*/
|
|
1095
|
+
menuSvgIcon;
|
|
1096
|
+
/**
|
|
1097
|
+
* If set to `true`, the Chip will be disabled.
|
|
1098
|
+
* @default false
|
|
1099
|
+
*/
|
|
1100
|
+
disabled = false;
|
|
1093
1101
|
/**
|
|
1094
1102
|
* The size property specifies the padding of the Chip
|
|
1095
1103
|
* ([see example]({% slug appearance_chip %}#toc-size)).
|
|
@@ -1165,8 +1173,24 @@ class ChipComponent {
|
|
|
1165
1173
|
get themeColor() {
|
|
1166
1174
|
return this._themeColor;
|
|
1167
1175
|
}
|
|
1176
|
+
/**
|
|
1177
|
+
* Fires each time the user clicks the remove icon of the Chip.
|
|
1178
|
+
*/
|
|
1179
|
+
remove = new EventEmitter();
|
|
1180
|
+
/**
|
|
1181
|
+
* @hidden
|
|
1182
|
+
*
|
|
1183
|
+
* Fires each time the user clicks the menu icon of the Chip.
|
|
1184
|
+
*/
|
|
1185
|
+
menuToggle = new EventEmitter();
|
|
1186
|
+
/**
|
|
1187
|
+
* Fires each time the user clicks the content of the Chip.
|
|
1188
|
+
*/
|
|
1189
|
+
contentClick = new EventEmitter();
|
|
1190
|
+
tabIndex = 0;
|
|
1191
|
+
hostClass = true;
|
|
1168
1192
|
get hasIconClass() {
|
|
1169
|
-
return Boolean(this.icon || this.iconClass || this.
|
|
1193
|
+
return Boolean(this.icon || this.iconClass || (this.avatarSettings && !isObjectEmpty(this.avatarSettings)));
|
|
1170
1194
|
}
|
|
1171
1195
|
get disabledClass() {
|
|
1172
1196
|
return this.disabled;
|
|
@@ -1177,6 +1201,32 @@ class ChipComponent {
|
|
|
1177
1201
|
get focusedClass() {
|
|
1178
1202
|
return this.focused;
|
|
1179
1203
|
}
|
|
1204
|
+
/**
|
|
1205
|
+
* @hidden
|
|
1206
|
+
*/
|
|
1207
|
+
direction;
|
|
1208
|
+
/**
|
|
1209
|
+
* @hidden
|
|
1210
|
+
*/
|
|
1211
|
+
defaultRemoveIcon = xCircleIcon;
|
|
1212
|
+
/**
|
|
1213
|
+
* @hidden
|
|
1214
|
+
*/
|
|
1215
|
+
defaultMenuIcon = moreVerticalIcon;
|
|
1216
|
+
_size = 'medium';
|
|
1217
|
+
_rounded = 'medium';
|
|
1218
|
+
_fillMode = 'solid';
|
|
1219
|
+
_themeColor = 'base';
|
|
1220
|
+
focused = false;
|
|
1221
|
+
subs = new Subscription();
|
|
1222
|
+
constructor(element, renderer, ngZone, localizationService) {
|
|
1223
|
+
this.element = element;
|
|
1224
|
+
this.renderer = renderer;
|
|
1225
|
+
this.ngZone = ngZone;
|
|
1226
|
+
this.localizationService = localizationService;
|
|
1227
|
+
validatePackage(packageMetadata);
|
|
1228
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
1229
|
+
}
|
|
1180
1230
|
ngOnInit() {
|
|
1181
1231
|
this.subs.add(this.localizationService.changes
|
|
1182
1232
|
.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
@@ -1205,23 +1255,16 @@ class ChipComponent {
|
|
|
1205
1255
|
* @hidden
|
|
1206
1256
|
*/
|
|
1207
1257
|
get kendoIconClass() {
|
|
1208
|
-
this.verifyIconSettings([this.iconClass
|
|
1258
|
+
this.verifyIconSettings([this.iconClass]);
|
|
1209
1259
|
return `k-i-${this.icon}`;
|
|
1210
1260
|
}
|
|
1211
1261
|
/**
|
|
1212
1262
|
* @hidden
|
|
1213
1263
|
*/
|
|
1214
1264
|
get customIconClass() {
|
|
1215
|
-
this.verifyIconSettings([this.icon
|
|
1265
|
+
this.verifyIconSettings([this.icon]);
|
|
1216
1266
|
return this.iconClass;
|
|
1217
1267
|
}
|
|
1218
|
-
/**
|
|
1219
|
-
* @hidden
|
|
1220
|
-
*/
|
|
1221
|
-
get chipAvatarClass() {
|
|
1222
|
-
this.verifyIconSettings([this.icon, this.iconClass]);
|
|
1223
|
-
return this.avatarClass;
|
|
1224
|
-
}
|
|
1225
1268
|
/**
|
|
1226
1269
|
* @hidden
|
|
1227
1270
|
*/
|
|
@@ -1332,15 +1375,14 @@ class ChipComponent {
|
|
|
1332
1375
|
});
|
|
1333
1376
|
}
|
|
1334
1377
|
}
|
|
1335
|
-
}
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
], usesOnChanges: true, ngImport: i0, template: `
|
|
1378
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1379
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipComponent, isStandalone: true, selector: "kendo-chip", inputs: { label: "label", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", avatarSettings: "avatarSettings", selected: "selected", removable: "removable", removeIcon: "removeIcon", removeSvgIcon: "removeSvgIcon", hasMenu: "hasMenu", menuIcon: "menuIcon", menuSvgIcon: "menuSvgIcon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor" }, outputs: { remove: "remove", menuToggle: "menuToggle", contentClick: "contentClick" }, host: { properties: { "attr.tabindex": "this.tabIndex", "class.k-chip": "this.hostClass", "class.k-chip-has-icon": "this.hasIconClass", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-selected": "this.selectedClass", "class.k-focus": "this.focusedClass", "attr.dir": "this.direction" } }, providers: [
|
|
1380
|
+
LocalizationService,
|
|
1381
|
+
{
|
|
1382
|
+
provide: L10N_PREFIX,
|
|
1383
|
+
useValue: 'kendo.chip'
|
|
1384
|
+
}
|
|
1385
|
+
], usesOnChanges: true, ngImport: i0, template: `
|
|
1344
1386
|
<kendo-icon-wrapper
|
|
1345
1387
|
*ngIf="icon || svgIcon"
|
|
1346
1388
|
size="small"
|
|
@@ -1353,11 +1395,19 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
1353
1395
|
size="small"
|
|
1354
1396
|
innerCssClass="k-chip-icon"
|
|
1355
1397
|
[customFontClass]="customIconClass"></kendo-icon-wrapper>
|
|
1356
|
-
|
|
1357
1398
|
<span
|
|
1358
|
-
*ngIf="
|
|
1359
|
-
class="k-chip-avatar k-avatar k-avatar-
|
|
1360
|
-
|
|
1399
|
+
*ngIf="avatarSettings"
|
|
1400
|
+
class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
|
|
1401
|
+
[ngStyle]="avatarSettings.cssStyle">
|
|
1402
|
+
<ng-container *ngIf="avatarSettings?.imageSrc">
|
|
1403
|
+
<span class="k-avatar-image">
|
|
1404
|
+
<img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
|
|
1405
|
+
</span>
|
|
1406
|
+
</ng-container>
|
|
1407
|
+
|
|
1408
|
+
<ng-container *ngIf="avatarSettings?.initials">
|
|
1409
|
+
<span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
|
|
1410
|
+
</ng-container>
|
|
1361
1411
|
</span>
|
|
1362
1412
|
|
|
1363
1413
|
<span class="k-chip-content">
|
|
@@ -1387,8 +1437,9 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
1387
1437
|
[customFontClass]="removeIcon"></kendo-icon-wrapper>
|
|
1388
1438
|
</span>
|
|
1389
1439
|
</span>
|
|
1390
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }
|
|
1391
|
-
|
|
1440
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
1441
|
+
}
|
|
1442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipComponent, decorators: [{
|
|
1392
1443
|
type: Component,
|
|
1393
1444
|
args: [{
|
|
1394
1445
|
selector: 'kendo-chip',
|
|
@@ -1405,11 +1456,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1405
1456
|
size="small"
|
|
1406
1457
|
innerCssClass="k-chip-icon"
|
|
1407
1458
|
[customFontClass]="customIconClass"></kendo-icon-wrapper>
|
|
1408
|
-
|
|
1409
1459
|
<span
|
|
1410
|
-
*ngIf="
|
|
1411
|
-
class="k-chip-avatar k-avatar k-avatar-
|
|
1412
|
-
|
|
1460
|
+
*ngIf="avatarSettings"
|
|
1461
|
+
class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
|
|
1462
|
+
[ngStyle]="avatarSettings.cssStyle">
|
|
1463
|
+
<ng-container *ngIf="avatarSettings?.imageSrc">
|
|
1464
|
+
<span class="k-avatar-image">
|
|
1465
|
+
<img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
|
|
1466
|
+
</span>
|
|
1467
|
+
</ng-container>
|
|
1468
|
+
|
|
1469
|
+
<ng-container *ngIf="avatarSettings?.initials">
|
|
1470
|
+
<span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
|
|
1471
|
+
</ng-container>
|
|
1413
1472
|
</span>
|
|
1414
1473
|
|
|
1415
1474
|
<span class="k-chip-content">
|
|
@@ -1448,7 +1507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1448
1507
|
}
|
|
1449
1508
|
],
|
|
1450
1509
|
standalone: true,
|
|
1451
|
-
imports: [NgIf, IconWrapperComponent, NgClass]
|
|
1510
|
+
imports: [NgIf, NgStyle, IconWrapperComponent, NgClass]
|
|
1452
1511
|
}]
|
|
1453
1512
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.LocalizationService }]; }, propDecorators: { label: [{
|
|
1454
1513
|
type: Input
|
|
@@ -1458,7 +1517,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1458
1517
|
type: Input
|
|
1459
1518
|
}], iconClass: [{
|
|
1460
1519
|
type: Input
|
|
1461
|
-
}],
|
|
1520
|
+
}], avatarSettings: [{
|
|
1462
1521
|
type: Input
|
|
1463
1522
|
}], selected: [{
|
|
1464
1523
|
type: Input
|
|
@@ -1517,41 +1576,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1517
1576
|
}] } });
|
|
1518
1577
|
|
|
1519
1578
|
class ChipListComponent {
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
this.selectedChange = new EventEmitter();
|
|
1540
|
-
/**
|
|
1541
|
-
* Fires each time the user clicks on the remove icon of the Chip.
|
|
1542
|
-
*/
|
|
1543
|
-
this.remove = new EventEmitter();
|
|
1544
|
-
/**
|
|
1545
|
-
* @hidden
|
|
1546
|
-
*/
|
|
1547
|
-
this.role = 'listbox';
|
|
1548
|
-
this._size = 'medium';
|
|
1549
|
-
this.subs = new Subscription();
|
|
1550
|
-
this._navigable = false;
|
|
1551
|
-
this.currentActiveIndex = 0;
|
|
1552
|
-
validatePackage(packageMetadata);
|
|
1553
|
-
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
1554
|
-
}
|
|
1579
|
+
localizationService;
|
|
1580
|
+
renderer;
|
|
1581
|
+
element;
|
|
1582
|
+
ngZone;
|
|
1583
|
+
hostClass = true;
|
|
1584
|
+
orientation = 'horizontal';
|
|
1585
|
+
/**
|
|
1586
|
+
* @hidden
|
|
1587
|
+
*/
|
|
1588
|
+
direction;
|
|
1589
|
+
/**
|
|
1590
|
+
* Sets the selection mode of the ChipList.
|
|
1591
|
+
*
|
|
1592
|
+
* The available values are:
|
|
1593
|
+
* * `none` (default)
|
|
1594
|
+
* * `single`
|
|
1595
|
+
* * `multiple`
|
|
1596
|
+
*/
|
|
1597
|
+
selection = 'none';
|
|
1555
1598
|
/**
|
|
1556
1599
|
* The size property specifies the gap between the Chips in the ChipList
|
|
1557
1600
|
* ([see example]({% slug appearance_chiplist %}#toc-size)).
|
|
@@ -1570,12 +1613,29 @@ class ChipListComponent {
|
|
|
1570
1613
|
get size() {
|
|
1571
1614
|
return this._size;
|
|
1572
1615
|
}
|
|
1616
|
+
/**
|
|
1617
|
+
* Fires each time when the ChipList selection is changed.
|
|
1618
|
+
*/
|
|
1619
|
+
selectedChange = new EventEmitter();
|
|
1620
|
+
/**
|
|
1621
|
+
* Fires each time the user clicks on the remove icon of the Chip.
|
|
1622
|
+
*/
|
|
1623
|
+
remove = new EventEmitter();
|
|
1624
|
+
chips;
|
|
1573
1625
|
get single() {
|
|
1574
1626
|
return this.selection === 'single';
|
|
1575
1627
|
}
|
|
1576
1628
|
get multiple() {
|
|
1577
1629
|
return this.selection === 'multiple';
|
|
1578
1630
|
}
|
|
1631
|
+
/**
|
|
1632
|
+
* @hidden
|
|
1633
|
+
*/
|
|
1634
|
+
role = 'listbox';
|
|
1635
|
+
dynamicRTLSubscription;
|
|
1636
|
+
_size = 'medium';
|
|
1637
|
+
subs = new Subscription();
|
|
1638
|
+
_navigable = true;
|
|
1579
1639
|
/**
|
|
1580
1640
|
* @hidden
|
|
1581
1641
|
*/
|
|
@@ -1601,10 +1661,10 @@ class ChipListComponent {
|
|
|
1601
1661
|
}
|
|
1602
1662
|
}
|
|
1603
1663
|
/**
|
|
1604
|
-
*
|
|
1605
|
-
* are part of the default tabbing sequence of the page.
|
|
1664
|
+
* By default, keyboard navigation is available through arrow keys and roving tabindex.
|
|
1665
|
+
* When set to `false`, all chips are part of the default tabbing sequence of the page.
|
|
1606
1666
|
*
|
|
1607
|
-
* @default
|
|
1667
|
+
* @default true
|
|
1608
1668
|
*/
|
|
1609
1669
|
set navigable(value) {
|
|
1610
1670
|
this._navigable = value;
|
|
@@ -1614,6 +1674,15 @@ class ChipListComponent {
|
|
|
1614
1674
|
get navigable() {
|
|
1615
1675
|
return this._navigable;
|
|
1616
1676
|
}
|
|
1677
|
+
currentActiveIndex = 0;
|
|
1678
|
+
constructor(localizationService, renderer, element, ngZone) {
|
|
1679
|
+
this.localizationService = localizationService;
|
|
1680
|
+
this.renderer = renderer;
|
|
1681
|
+
this.element = element;
|
|
1682
|
+
this.ngZone = ngZone;
|
|
1683
|
+
validatePackage(packageMetadata);
|
|
1684
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
1685
|
+
}
|
|
1617
1686
|
ngOnInit() {
|
|
1618
1687
|
this.dynamicRTLSubscription = this.localizationService.changes
|
|
1619
1688
|
.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
@@ -1755,18 +1824,18 @@ class ChipListComponent {
|
|
|
1755
1824
|
this.currentActiveIndex = Math.max(this.chips.length - 1, 0);
|
|
1756
1825
|
}
|
|
1757
1826
|
}
|
|
1758
|
-
}
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
}
|
|
1766
|
-
], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
|
|
1827
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipListComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1828
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipListComponent, isStandalone: true, selector: "kendo-chiplist, kendo-chip-list", inputs: { selection: "selection", size: "size", role: "role", navigable: "navigable" }, outputs: { selectedChange: "selectedChange", remove: "remove" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.k-chip-list": "this.hostClass", "attr.aria-orientation": "this.orientation", "attr.dir": "this.direction", "class.k-selection-single": "this.single", "attr.aria-multiselectable": "this.multiple", "class.k-selection-multiple": "this.multiple", "attr.role": "this.role" } }, providers: [
|
|
1829
|
+
LocalizationService,
|
|
1830
|
+
{
|
|
1831
|
+
provide: L10N_PREFIX,
|
|
1832
|
+
useValue: 'kendo.chiplist'
|
|
1833
|
+
}
|
|
1834
|
+
], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
|
|
1767
1835
|
<ng-content></ng-content>
|
|
1768
1836
|
`, isInline: true });
|
|
1769
|
-
|
|
1837
|
+
}
|
|
1838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipListComponent, decorators: [{
|
|
1770
1839
|
type: Component,
|
|
1771
1840
|
args: [{
|
|
1772
1841
|
selector: 'kendo-chiplist, kendo-chip-list',
|
|
@@ -1872,13 +1941,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1872
1941
|
* For more examples, refer to the article on the [DropDownButton templates](slug:itemstemplates_dropdownbutton).
|
|
1873
1942
|
*/
|
|
1874
1943
|
class ButtonItemTemplateDirective {
|
|
1944
|
+
templateRef;
|
|
1875
1945
|
constructor(templateRef) {
|
|
1876
1946
|
this.templateRef = templateRef;
|
|
1877
1947
|
}
|
|
1948
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1949
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ButtonItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]", ngImport: i0 });
|
|
1878
1950
|
}
|
|
1879
|
-
|
|
1880
|
-
ButtonItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ButtonItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]", ngImport: i0 });
|
|
1881
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonItemTemplateDirective, decorators: [{
|
|
1951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, decorators: [{
|
|
1882
1952
|
type: Directive,
|
|
1883
1953
|
args: [{
|
|
1884
1954
|
selector: '[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]',
|
|
@@ -1890,9 +1960,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1890
1960
|
* @hidden
|
|
1891
1961
|
*/
|
|
1892
1962
|
class FocusService {
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
}
|
|
1963
|
+
onFocus = new EventEmitter();
|
|
1964
|
+
focusedIndex;
|
|
1896
1965
|
isFocused(index) {
|
|
1897
1966
|
return index === this.focused;
|
|
1898
1967
|
}
|
|
@@ -1913,10 +1982,10 @@ class FocusService {
|
|
|
1913
1982
|
this.focusedIndex = index;
|
|
1914
1983
|
this.onFocus.emit(index);
|
|
1915
1984
|
}
|
|
1985
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1986
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService });
|
|
1916
1987
|
}
|
|
1917
|
-
|
|
1918
|
-
FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusService });
|
|
1919
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusService, decorators: [{
|
|
1988
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, decorators: [{
|
|
1920
1989
|
type: Injectable
|
|
1921
1990
|
}] });
|
|
1922
1991
|
|
|
@@ -1956,15 +2025,16 @@ const NAVIGATION_CONFIG = new InjectionToken('navigation.config');
|
|
|
1956
2025
|
* @hidden
|
|
1957
2026
|
*/
|
|
1958
2027
|
class NavigationService {
|
|
2028
|
+
navigate = new EventEmitter();
|
|
2029
|
+
open = new EventEmitter();
|
|
2030
|
+
close = new EventEmitter();
|
|
2031
|
+
enter = new EventEmitter();
|
|
2032
|
+
enterpress = new EventEmitter();
|
|
2033
|
+
enterup = new EventEmitter();
|
|
2034
|
+
tab = new EventEmitter();
|
|
2035
|
+
esc = new EventEmitter();
|
|
2036
|
+
useLeftRightArrows;
|
|
1959
2037
|
constructor(config) {
|
|
1960
|
-
this.navigate = new EventEmitter();
|
|
1961
|
-
this.open = new EventEmitter();
|
|
1962
|
-
this.close = new EventEmitter();
|
|
1963
|
-
this.enter = new EventEmitter();
|
|
1964
|
-
this.enterpress = new EventEmitter();
|
|
1965
|
-
this.enterup = new EventEmitter();
|
|
1966
|
-
this.tab = new EventEmitter();
|
|
1967
|
-
this.esc = new EventEmitter();
|
|
1968
2038
|
this.useLeftRightArrows = config.useLeftRightArrows;
|
|
1969
2039
|
}
|
|
1970
2040
|
process(args) {
|
|
@@ -2042,10 +2112,10 @@ class NavigationService {
|
|
|
2042
2112
|
return args.current !== args.end ? args.current + args.step : args.end;
|
|
2043
2113
|
}
|
|
2044
2114
|
}
|
|
2115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: NAVIGATION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2116
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
|
|
2045
2117
|
}
|
|
2046
|
-
|
|
2047
|
-
NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService });
|
|
2048
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, decorators: [{
|
|
2118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, decorators: [{
|
|
2049
2119
|
type: Injectable
|
|
2050
2120
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
2051
2121
|
type: Inject,
|
|
@@ -2056,75 +2126,295 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2056
2126
|
* @hidden
|
|
2057
2127
|
*/
|
|
2058
2128
|
class PopupContainerService {
|
|
2129
|
+
container;
|
|
2130
|
+
template;
|
|
2131
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2132
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService });
|
|
2059
2133
|
}
|
|
2060
|
-
|
|
2061
|
-
PopupContainerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PopupContainerService });
|
|
2062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PopupContainerService, decorators: [{
|
|
2134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, decorators: [{
|
|
2063
2135
|
type: Injectable
|
|
2064
2136
|
}] });
|
|
2065
2137
|
|
|
2066
2138
|
/**
|
|
2067
2139
|
* @hidden
|
|
2068
2140
|
*/
|
|
2069
|
-
class
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
this.popupService = popupService;
|
|
2077
|
-
this.elRef = elRef;
|
|
2078
|
-
this.cdr = cdr;
|
|
2079
|
-
this.containerService = containerService;
|
|
2080
|
-
this._open = false;
|
|
2081
|
-
this._disabled = false;
|
|
2082
|
-
this._active = false;
|
|
2083
|
-
this._popupSettings = { animate: true, popupClass: '' };
|
|
2084
|
-
this.listId = guid();
|
|
2085
|
-
this._isFocused = false;
|
|
2086
|
-
this.subs = new Subscription();
|
|
2087
|
-
this.popupSubs = new Subscription();
|
|
2088
|
-
/**
|
|
2089
|
-
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
2090
|
-
*/
|
|
2091
|
-
this.tabIndex = 0;
|
|
2092
|
-
/**
|
|
2093
|
-
* Fires each time the popup is about to open.
|
|
2094
|
-
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
2095
|
-
*/
|
|
2096
|
-
this.open = new EventEmitter();
|
|
2097
|
-
/**
|
|
2098
|
-
* Fires each time the popup is about to close.
|
|
2099
|
-
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
2100
|
-
*/
|
|
2101
|
-
this.close = new EventEmitter();
|
|
2102
|
-
/**
|
|
2103
|
-
* Needed by the kendoToggleButtonTabStop directive
|
|
2104
|
-
*
|
|
2105
|
-
* @hidden
|
|
2106
|
-
*/
|
|
2107
|
-
this.escape = new EventEmitter();
|
|
2108
|
-
this.isClosePrevented = false;
|
|
2109
|
-
validatePackage(packageMetadata);
|
|
2141
|
+
class FocusableDirective {
|
|
2142
|
+
focusService;
|
|
2143
|
+
renderer;
|
|
2144
|
+
index;
|
|
2145
|
+
element;
|
|
2146
|
+
subs = new Subscription();
|
|
2147
|
+
constructor(focusService, elementRef, renderer) {
|
|
2110
2148
|
this.focusService = focusService;
|
|
2111
|
-
this.
|
|
2112
|
-
this.
|
|
2113
|
-
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
2149
|
+
this.renderer = renderer;
|
|
2150
|
+
this.element = elementRef.nativeElement;
|
|
2114
2151
|
this.subscribeEvents();
|
|
2115
2152
|
}
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
this.
|
|
2153
|
+
ngOnInit() {
|
|
2154
|
+
if (this.index === this.focusService.focused) {
|
|
2155
|
+
this.renderer.addClass(this.element, 'k-focus');
|
|
2156
|
+
}
|
|
2157
|
+
else {
|
|
2158
|
+
this.renderer.removeClass(this.element, 'k-focus');
|
|
2122
2159
|
}
|
|
2123
|
-
this._disabled = value;
|
|
2124
2160
|
}
|
|
2125
|
-
|
|
2126
|
-
|
|
2161
|
+
/**
|
|
2162
|
+
* @hidden
|
|
2163
|
+
*/
|
|
2164
|
+
ngOnDestroy() {
|
|
2165
|
+
this.subs.unsubscribe();
|
|
2166
|
+
}
|
|
2167
|
+
subscribeEvents() {
|
|
2168
|
+
if (!isDocumentAvailable()) {
|
|
2169
|
+
return;
|
|
2170
|
+
}
|
|
2171
|
+
this.subs.add(this.focusService.onFocus.subscribe((index) => {
|
|
2172
|
+
if (this.index === index) {
|
|
2173
|
+
this.renderer.addClass(this.element, 'k-focus');
|
|
2174
|
+
this.renderer.setAttribute(this.element, 'tabindex', '0');
|
|
2175
|
+
this.element.focus();
|
|
2176
|
+
}
|
|
2177
|
+
else {
|
|
2178
|
+
this.renderer.setAttribute(this.element, 'tabindex', '-1');
|
|
2179
|
+
this.renderer.removeClass(this.element, 'k-focus');
|
|
2180
|
+
}
|
|
2181
|
+
}));
|
|
2182
|
+
}
|
|
2183
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusableDirective, deps: [{ token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2184
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FocusableDirective, isStandalone: true, selector: "[kendoButtonFocusable]", inputs: { index: "index" }, ngImport: i0 });
|
|
2185
|
+
}
|
|
2186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusableDirective, decorators: [{
|
|
2187
|
+
type: Directive,
|
|
2188
|
+
args: [{
|
|
2189
|
+
selector: '[kendoButtonFocusable]',
|
|
2190
|
+
standalone: true
|
|
2191
|
+
}]
|
|
2192
|
+
}], ctorParameters: function () { return [{ type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { index: [{
|
|
2193
|
+
type: Input
|
|
2194
|
+
}] } });
|
|
2195
|
+
|
|
2196
|
+
/**
|
|
2197
|
+
* @hidden
|
|
2198
|
+
*/
|
|
2199
|
+
class ListComponent {
|
|
2200
|
+
data;
|
|
2201
|
+
textField;
|
|
2202
|
+
itemTemplate;
|
|
2203
|
+
onItemClick = new EventEmitter();
|
|
2204
|
+
onItemBlur = new EventEmitter();
|
|
2205
|
+
set size(size) {
|
|
2206
|
+
if (size) {
|
|
2207
|
+
this.sizeClass = `k-menu-group-${SIZES[size]}`;
|
|
2208
|
+
}
|
|
2209
|
+
else {
|
|
2210
|
+
this.sizeClass = '';
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
sizeClass = '';
|
|
2214
|
+
constructor() {
|
|
2215
|
+
validatePackage(packageMetadata);
|
|
2216
|
+
}
|
|
2217
|
+
getText(dataItem) {
|
|
2218
|
+
if (dataItem) {
|
|
2219
|
+
return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
|
|
2220
|
+
}
|
|
2221
|
+
return undefined;
|
|
2222
|
+
}
|
|
2223
|
+
getIconClasses(dataItem) {
|
|
2224
|
+
const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;
|
|
2225
|
+
const classes = {};
|
|
2226
|
+
classes[icon || dataItem.iconClass] = true;
|
|
2227
|
+
return classes;
|
|
2228
|
+
}
|
|
2229
|
+
onClick(index) {
|
|
2230
|
+
this.onItemClick.emit(index);
|
|
2231
|
+
}
|
|
2232
|
+
onBlur() {
|
|
2233
|
+
this.onItemBlur.emit();
|
|
2127
2234
|
}
|
|
2235
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2236
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ListComponent, isStandalone: true, selector: "kendo-button-list", inputs: { data: "data", textField: "textField", itemTemplate: "itemTemplate", size: "size" }, outputs: { onItemClick: "onItemClick", onItemBlur: "onItemBlur" }, ngImport: i0, template: `
|
|
2237
|
+
<ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
|
|
2238
|
+
<li kendoButtonFocusable
|
|
2239
|
+
*ngFor="let dataItem of data; let index = index;"
|
|
2240
|
+
[index]="index"
|
|
2241
|
+
tabindex="-1"
|
|
2242
|
+
class="k-item k-menu-item"
|
|
2243
|
+
role="listitem"
|
|
2244
|
+
[attr.aria-disabled]="dataItem.disabled ? true : false"
|
|
2245
|
+
(click)="$event.stopImmediatePropagation(); onClick(index);"
|
|
2246
|
+
(blur)="onBlur()">
|
|
2247
|
+
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
2248
|
+
<span
|
|
2249
|
+
class="k-link k-menu-link"
|
|
2250
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2251
|
+
[ngClass]="dataItem.cssClass">
|
|
2252
|
+
<ng-template
|
|
2253
|
+
[templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
|
|
2254
|
+
></ng-template>
|
|
2255
|
+
</span>
|
|
2256
|
+
</ng-template>
|
|
2257
|
+
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
2258
|
+
<span
|
|
2259
|
+
class="k-link k-menu-link"
|
|
2260
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2261
|
+
[ngClass]="dataItem.cssClass">
|
|
2262
|
+
<kendo-icon-wrapper
|
|
2263
|
+
*ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
|
|
2264
|
+
[name]="dataItem.icon"
|
|
2265
|
+
[svgIcon]="dataItem.svgIcon"
|
|
2266
|
+
[customFontClass]="dataItem.iconClass"
|
|
2267
|
+
></kendo-icon-wrapper>
|
|
2268
|
+
<img
|
|
2269
|
+
*ngIf="dataItem.imageUrl"
|
|
2270
|
+
class="k-image"
|
|
2271
|
+
[src]="dataItem.imageUrl"
|
|
2272
|
+
[alt]="dataItem.imageAlt"
|
|
2273
|
+
>
|
|
2274
|
+
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
2275
|
+
{{ getText(dataItem) }}
|
|
2276
|
+
</span>
|
|
2277
|
+
</span>
|
|
2278
|
+
</ng-template>
|
|
2279
|
+
</li>
|
|
2280
|
+
</ul>
|
|
2281
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoButtonFocusable]", inputs: ["index"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
2282
|
+
}
|
|
2283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
|
|
2284
|
+
type: Component,
|
|
2285
|
+
args: [{
|
|
2286
|
+
selector: 'kendo-button-list',
|
|
2287
|
+
template: `
|
|
2288
|
+
<ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
|
|
2289
|
+
<li kendoButtonFocusable
|
|
2290
|
+
*ngFor="let dataItem of data; let index = index;"
|
|
2291
|
+
[index]="index"
|
|
2292
|
+
tabindex="-1"
|
|
2293
|
+
class="k-item k-menu-item"
|
|
2294
|
+
role="listitem"
|
|
2295
|
+
[attr.aria-disabled]="dataItem.disabled ? true : false"
|
|
2296
|
+
(click)="$event.stopImmediatePropagation(); onClick(index);"
|
|
2297
|
+
(blur)="onBlur()">
|
|
2298
|
+
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
2299
|
+
<span
|
|
2300
|
+
class="k-link k-menu-link"
|
|
2301
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2302
|
+
[ngClass]="dataItem.cssClass">
|
|
2303
|
+
<ng-template
|
|
2304
|
+
[templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
|
|
2305
|
+
></ng-template>
|
|
2306
|
+
</span>
|
|
2307
|
+
</ng-template>
|
|
2308
|
+
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
2309
|
+
<span
|
|
2310
|
+
class="k-link k-menu-link"
|
|
2311
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2312
|
+
[ngClass]="dataItem.cssClass">
|
|
2313
|
+
<kendo-icon-wrapper
|
|
2314
|
+
*ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
|
|
2315
|
+
[name]="dataItem.icon"
|
|
2316
|
+
[svgIcon]="dataItem.svgIcon"
|
|
2317
|
+
[customFontClass]="dataItem.iconClass"
|
|
2318
|
+
></kendo-icon-wrapper>
|
|
2319
|
+
<img
|
|
2320
|
+
*ngIf="dataItem.imageUrl"
|
|
2321
|
+
class="k-image"
|
|
2322
|
+
[src]="dataItem.imageUrl"
|
|
2323
|
+
[alt]="dataItem.imageAlt"
|
|
2324
|
+
>
|
|
2325
|
+
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
2326
|
+
{{ getText(dataItem) }}
|
|
2327
|
+
</span>
|
|
2328
|
+
</span>
|
|
2329
|
+
</ng-template>
|
|
2330
|
+
</li>
|
|
2331
|
+
</ul>
|
|
2332
|
+
`,
|
|
2333
|
+
standalone: true,
|
|
2334
|
+
imports: [NgClass, NgFor, FocusableDirective, NgIf, TemplateContextDirective, IconWrapperComponent]
|
|
2335
|
+
}]
|
|
2336
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
2337
|
+
type: Input
|
|
2338
|
+
}], textField: [{
|
|
2339
|
+
type: Input
|
|
2340
|
+
}], itemTemplate: [{
|
|
2341
|
+
type: Input
|
|
2342
|
+
}], onItemClick: [{
|
|
2343
|
+
type: Output
|
|
2344
|
+
}], onItemBlur: [{
|
|
2345
|
+
type: Output
|
|
2346
|
+
}], size: [{
|
|
2347
|
+
type: Input
|
|
2348
|
+
}] } });
|
|
2349
|
+
|
|
2350
|
+
/**
|
|
2351
|
+
* @hidden
|
|
2352
|
+
*/
|
|
2353
|
+
class ListButton extends MultiTabStop {
|
|
2354
|
+
focusService;
|
|
2355
|
+
navigationService;
|
|
2356
|
+
wrapperRef;
|
|
2357
|
+
_zone;
|
|
2358
|
+
popupService;
|
|
2359
|
+
elRef;
|
|
2360
|
+
cdr;
|
|
2361
|
+
containerService;
|
|
2362
|
+
listId = guid();
|
|
2363
|
+
buttonId = guid();
|
|
2364
|
+
_data;
|
|
2365
|
+
_open = false;
|
|
2366
|
+
_disabled = false;
|
|
2367
|
+
_active = false;
|
|
2368
|
+
_popupSettings = { animate: true, popupClass: '' };
|
|
2369
|
+
_isFocused = false;
|
|
2370
|
+
_itemClick;
|
|
2371
|
+
_blur;
|
|
2372
|
+
wrapper;
|
|
2373
|
+
subs = new Subscription();
|
|
2374
|
+
direction;
|
|
2375
|
+
popupRef;
|
|
2376
|
+
popupSubs = new Subscription();
|
|
2377
|
+
button;
|
|
2378
|
+
buttonList;
|
|
2379
|
+
popupTemplate;
|
|
2380
|
+
container;
|
|
2381
|
+
/**
|
|
2382
|
+
* Sets the disabled state of the DropDownButton.
|
|
2383
|
+
*/
|
|
2384
|
+
set disabled(value) {
|
|
2385
|
+
if (value && this.openState) {
|
|
2386
|
+
this.openState = false;
|
|
2387
|
+
}
|
|
2388
|
+
this._disabled = value;
|
|
2389
|
+
}
|
|
2390
|
+
get disabled() {
|
|
2391
|
+
return this._disabled;
|
|
2392
|
+
}
|
|
2393
|
+
/**
|
|
2394
|
+
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
2395
|
+
*/
|
|
2396
|
+
tabIndex = 0;
|
|
2397
|
+
/**
|
|
2398
|
+
* The CSS classes that will be rendered on the main button.
|
|
2399
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
2400
|
+
*/
|
|
2401
|
+
buttonClass;
|
|
2402
|
+
/**
|
|
2403
|
+
* Fires each time the popup is about to open.
|
|
2404
|
+
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
2405
|
+
*/
|
|
2406
|
+
open = new EventEmitter();
|
|
2407
|
+
/**
|
|
2408
|
+
* Fires each time the popup is about to close.
|
|
2409
|
+
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
2410
|
+
*/
|
|
2411
|
+
close = new EventEmitter();
|
|
2412
|
+
/**
|
|
2413
|
+
* Needed by the kendoToggleButtonTabStop directive
|
|
2414
|
+
*
|
|
2415
|
+
* @hidden
|
|
2416
|
+
*/
|
|
2417
|
+
escape = new EventEmitter();
|
|
2128
2418
|
/**
|
|
2129
2419
|
* @hidden
|
|
2130
2420
|
*/
|
|
@@ -2173,6 +2463,24 @@ class ListButton extends MultiTabStop {
|
|
|
2173
2463
|
}
|
|
2174
2464
|
return align;
|
|
2175
2465
|
}
|
|
2466
|
+
isClosePrevented = false;
|
|
2467
|
+
constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
|
|
2468
|
+
super();
|
|
2469
|
+
this.focusService = focusService;
|
|
2470
|
+
this.navigationService = navigationService;
|
|
2471
|
+
this.wrapperRef = wrapperRef;
|
|
2472
|
+
this._zone = _zone;
|
|
2473
|
+
this.popupService = popupService;
|
|
2474
|
+
this.elRef = elRef;
|
|
2475
|
+
this.cdr = cdr;
|
|
2476
|
+
this.containerService = containerService;
|
|
2477
|
+
validatePackage(packageMetadata);
|
|
2478
|
+
this.focusService = focusService;
|
|
2479
|
+
this.navigationService = navigationService;
|
|
2480
|
+
this.wrapper = wrapperRef.nativeElement;
|
|
2481
|
+
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
2482
|
+
this.subscribeEvents();
|
|
2483
|
+
}
|
|
2176
2484
|
ngOnChanges(changes) {
|
|
2177
2485
|
if (isChanged("popupSettings", changes) && isPresent(this.popupRef)) {
|
|
2178
2486
|
const popup = this.popupRef.popup.instance;
|
|
@@ -2433,15 +2741,27 @@ class ListButton extends MultiTabStop {
|
|
|
2433
2741
|
this.isClosePrevented = false;
|
|
2434
2742
|
}
|
|
2435
2743
|
}
|
|
2744
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListButton, deps: [{ token: FocusService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PopupContainerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2745
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ListButton, selector: "ng-component", inputs: { disabled: "disabled", tabIndex: "tabIndex", buttonClass: "buttonClass", popupSettings: "popupSettings" }, outputs: { open: "open", close: "close", escape: "escape" }, viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true, read: ElementRef }, { propertyName: "buttonList", first: true, predicate: ["buttonList"], descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
2436
2746
|
}
|
|
2437
|
-
|
|
2438
|
-
ListButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListButton, selector: "ng-component", inputs: { disabled: "disabled", tabIndex: "tabIndex", buttonClass: "buttonClass", popupSettings: "popupSettings" }, outputs: { open: "open", close: "close", escape: "escape" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
2439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListButton, decorators: [{
|
|
2747
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListButton, decorators: [{
|
|
2440
2748
|
type: Component,
|
|
2441
2749
|
args: [{
|
|
2442
2750
|
template: ''
|
|
2443
2751
|
}]
|
|
2444
|
-
}], ctorParameters: function () { return [{ type: FocusService }, { type: NavigationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i3.PopupService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PopupContainerService }]; }, propDecorators: {
|
|
2752
|
+
}], ctorParameters: function () { return [{ type: FocusService }, { type: NavigationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i3.PopupService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PopupContainerService }]; }, propDecorators: { button: [{
|
|
2753
|
+
type: ViewChild,
|
|
2754
|
+
args: ['button', { read: ElementRef }]
|
|
2755
|
+
}], buttonList: [{
|
|
2756
|
+
type: ViewChild,
|
|
2757
|
+
args: ['buttonList']
|
|
2758
|
+
}], popupTemplate: [{
|
|
2759
|
+
type: ViewChild,
|
|
2760
|
+
args: ['popupTemplate']
|
|
2761
|
+
}], container: [{
|
|
2762
|
+
type: ViewChild,
|
|
2763
|
+
args: ['container', { read: ViewContainerRef }]
|
|
2764
|
+
}], disabled: [{
|
|
2445
2765
|
type: Input
|
|
2446
2766
|
}], tabIndex: [{
|
|
2447
2767
|
type: Input
|
|
@@ -2457,211 +2777,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2457
2777
|
type: Input
|
|
2458
2778
|
}] } });
|
|
2459
2779
|
|
|
2460
|
-
/**
|
|
2461
|
-
* @hidden
|
|
2462
|
-
*/
|
|
2463
|
-
class FocusableDirective {
|
|
2464
|
-
constructor(focusService, elementRef, renderer) {
|
|
2465
|
-
this.focusService = focusService;
|
|
2466
|
-
this.renderer = renderer;
|
|
2467
|
-
this.subs = new Subscription();
|
|
2468
|
-
this.element = elementRef.nativeElement;
|
|
2469
|
-
this.subscribeEvents();
|
|
2470
|
-
}
|
|
2471
|
-
ngOnInit() {
|
|
2472
|
-
if (this.index === this.focusService.focused) {
|
|
2473
|
-
this.renderer.addClass(this.element, 'k-focus');
|
|
2474
|
-
}
|
|
2475
|
-
else {
|
|
2476
|
-
this.renderer.removeClass(this.element, 'k-focus');
|
|
2477
|
-
}
|
|
2478
|
-
}
|
|
2479
|
-
/**
|
|
2480
|
-
* @hidden
|
|
2481
|
-
*/
|
|
2482
|
-
ngOnDestroy() {
|
|
2483
|
-
this.subs.unsubscribe();
|
|
2484
|
-
}
|
|
2485
|
-
subscribeEvents() {
|
|
2486
|
-
if (!isDocumentAvailable()) {
|
|
2487
|
-
return;
|
|
2488
|
-
}
|
|
2489
|
-
this.subs.add(this.focusService.onFocus.subscribe((index) => {
|
|
2490
|
-
if (this.index === index) {
|
|
2491
|
-
this.renderer.addClass(this.element, 'k-focus');
|
|
2492
|
-
this.renderer.setAttribute(this.element, 'tabindex', '0');
|
|
2493
|
-
this.element.focus();
|
|
2494
|
-
}
|
|
2495
|
-
else {
|
|
2496
|
-
this.renderer.setAttribute(this.element, 'tabindex', '-1');
|
|
2497
|
-
this.renderer.removeClass(this.element, 'k-focus');
|
|
2498
|
-
}
|
|
2499
|
-
}));
|
|
2500
|
-
}
|
|
2501
|
-
}
|
|
2502
|
-
FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusableDirective, deps: [{ token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2503
|
-
FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FocusableDirective, isStandalone: true, selector: "[kendoButtonFocusable]", inputs: { index: "index" }, ngImport: i0 });
|
|
2504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusableDirective, decorators: [{
|
|
2505
|
-
type: Directive,
|
|
2506
|
-
args: [{
|
|
2507
|
-
selector: '[kendoButtonFocusable]',
|
|
2508
|
-
standalone: true
|
|
2509
|
-
}]
|
|
2510
|
-
}], ctorParameters: function () { return [{ type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { index: [{
|
|
2511
|
-
type: Input
|
|
2512
|
-
}] } });
|
|
2513
|
-
|
|
2514
|
-
/**
|
|
2515
|
-
* @hidden
|
|
2516
|
-
*/
|
|
2517
|
-
class ListComponent {
|
|
2518
|
-
constructor() {
|
|
2519
|
-
this.onItemClick = new EventEmitter();
|
|
2520
|
-
this.onItemBlur = new EventEmitter();
|
|
2521
|
-
this.sizeClass = '';
|
|
2522
|
-
validatePackage(packageMetadata);
|
|
2523
|
-
}
|
|
2524
|
-
set size(size) {
|
|
2525
|
-
if (size) {
|
|
2526
|
-
this.sizeClass = `k-menu-group-${SIZES[size]}`;
|
|
2527
|
-
}
|
|
2528
|
-
else {
|
|
2529
|
-
this.sizeClass = '';
|
|
2530
|
-
}
|
|
2531
|
-
}
|
|
2532
|
-
getText(dataItem) {
|
|
2533
|
-
if (dataItem) {
|
|
2534
|
-
return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
|
|
2535
|
-
}
|
|
2536
|
-
return undefined;
|
|
2537
|
-
}
|
|
2538
|
-
getIconClasses(dataItem) {
|
|
2539
|
-
const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;
|
|
2540
|
-
const classes = {};
|
|
2541
|
-
classes[icon || dataItem.iconClass] = true;
|
|
2542
|
-
return classes;
|
|
2543
|
-
}
|
|
2544
|
-
onClick(index) {
|
|
2545
|
-
this.onItemClick.emit(index);
|
|
2546
|
-
}
|
|
2547
|
-
onBlur() {
|
|
2548
|
-
this.onItemBlur.emit();
|
|
2549
|
-
}
|
|
2550
|
-
}
|
|
2551
|
-
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2552
|
-
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListComponent, isStandalone: true, selector: "kendo-button-list", inputs: { data: "data", textField: "textField", itemTemplate: "itemTemplate", size: "size" }, outputs: { onItemClick: "onItemClick", onItemBlur: "onItemBlur" }, ngImport: i0, template: `
|
|
2553
|
-
<ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
|
|
2554
|
-
<li kendoButtonFocusable
|
|
2555
|
-
*ngFor="let dataItem of data; let index = index;"
|
|
2556
|
-
[index]="index"
|
|
2557
|
-
tabindex="-1"
|
|
2558
|
-
class="k-item k-menu-item"
|
|
2559
|
-
role="listitem"
|
|
2560
|
-
[attr.aria-disabled]="dataItem.disabled ? true : false"
|
|
2561
|
-
(click)="$event.stopImmediatePropagation(); onClick(index);"
|
|
2562
|
-
(blur)="onBlur()">
|
|
2563
|
-
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
2564
|
-
<span
|
|
2565
|
-
class="k-link k-menu-link"
|
|
2566
|
-
[class.k-disabled]="dataItem.disabled"
|
|
2567
|
-
[ngClass]="dataItem.cssClass">
|
|
2568
|
-
<ng-template
|
|
2569
|
-
[templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
|
|
2570
|
-
></ng-template>
|
|
2571
|
-
</span>
|
|
2572
|
-
</ng-template>
|
|
2573
|
-
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
2574
|
-
<span
|
|
2575
|
-
class="k-link k-menu-link"
|
|
2576
|
-
[class.k-disabled]="dataItem.disabled"
|
|
2577
|
-
[ngClass]="dataItem.cssClass">
|
|
2578
|
-
<kendo-icon-wrapper
|
|
2579
|
-
*ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
|
|
2580
|
-
[name]="dataItem.icon"
|
|
2581
|
-
[svgIcon]="dataItem.svgIcon"
|
|
2582
|
-
[customFontClass]="dataItem.iconClass"
|
|
2583
|
-
></kendo-icon-wrapper>
|
|
2584
|
-
<img
|
|
2585
|
-
*ngIf="dataItem.imageUrl"
|
|
2586
|
-
class="k-image"
|
|
2587
|
-
[src]="dataItem.imageUrl"
|
|
2588
|
-
[alt]="dataItem.imageAlt"
|
|
2589
|
-
>
|
|
2590
|
-
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
2591
|
-
{{ getText(dataItem) }}
|
|
2592
|
-
</span>
|
|
2593
|
-
</span>
|
|
2594
|
-
</ng-template>
|
|
2595
|
-
</li>
|
|
2596
|
-
</ul>
|
|
2597
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoButtonFocusable]", inputs: ["index"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
2598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, decorators: [{
|
|
2599
|
-
type: Component,
|
|
2600
|
-
args: [{
|
|
2601
|
-
selector: 'kendo-button-list',
|
|
2602
|
-
template: `
|
|
2603
|
-
<ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
|
|
2604
|
-
<li kendoButtonFocusable
|
|
2605
|
-
*ngFor="let dataItem of data; let index = index;"
|
|
2606
|
-
[index]="index"
|
|
2607
|
-
tabindex="-1"
|
|
2608
|
-
class="k-item k-menu-item"
|
|
2609
|
-
role="listitem"
|
|
2610
|
-
[attr.aria-disabled]="dataItem.disabled ? true : false"
|
|
2611
|
-
(click)="$event.stopImmediatePropagation(); onClick(index);"
|
|
2612
|
-
(blur)="onBlur()">
|
|
2613
|
-
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
2614
|
-
<span
|
|
2615
|
-
class="k-link k-menu-link"
|
|
2616
|
-
[class.k-disabled]="dataItem.disabled"
|
|
2617
|
-
[ngClass]="dataItem.cssClass">
|
|
2618
|
-
<ng-template
|
|
2619
|
-
[templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
|
|
2620
|
-
></ng-template>
|
|
2621
|
-
</span>
|
|
2622
|
-
</ng-template>
|
|
2623
|
-
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
2624
|
-
<span
|
|
2625
|
-
class="k-link k-menu-link"
|
|
2626
|
-
[class.k-disabled]="dataItem.disabled"
|
|
2627
|
-
[ngClass]="dataItem.cssClass">
|
|
2628
|
-
<kendo-icon-wrapper
|
|
2629
|
-
*ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
|
|
2630
|
-
[name]="dataItem.icon"
|
|
2631
|
-
[svgIcon]="dataItem.svgIcon"
|
|
2632
|
-
[customFontClass]="dataItem.iconClass"
|
|
2633
|
-
></kendo-icon-wrapper>
|
|
2634
|
-
<img
|
|
2635
|
-
*ngIf="dataItem.imageUrl"
|
|
2636
|
-
class="k-image"
|
|
2637
|
-
[src]="dataItem.imageUrl"
|
|
2638
|
-
[alt]="dataItem.imageAlt"
|
|
2639
|
-
>
|
|
2640
|
-
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
2641
|
-
{{ getText(dataItem) }}
|
|
2642
|
-
</span>
|
|
2643
|
-
</span>
|
|
2644
|
-
</ng-template>
|
|
2645
|
-
</li>
|
|
2646
|
-
</ul>
|
|
2647
|
-
`,
|
|
2648
|
-
standalone: true,
|
|
2649
|
-
imports: [NgClass, NgFor, FocusableDirective, NgIf, TemplateContextDirective, IconWrapperComponent]
|
|
2650
|
-
}]
|
|
2651
|
-
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
2652
|
-
type: Input
|
|
2653
|
-
}], textField: [{
|
|
2654
|
-
type: Input
|
|
2655
|
-
}], itemTemplate: [{
|
|
2656
|
-
type: Input
|
|
2657
|
-
}], onItemClick: [{
|
|
2658
|
-
type: Output
|
|
2659
|
-
}], onItemBlur: [{
|
|
2660
|
-
type: Output
|
|
2661
|
-
}], size: [{
|
|
2662
|
-
type: Input
|
|
2663
|
-
}] } });
|
|
2664
|
-
|
|
2665
2780
|
const NAVIGATION_SETTINGS$2 = {
|
|
2666
2781
|
useLeftRightArrows: true
|
|
2667
2782
|
};
|
|
@@ -2699,89 +2814,34 @@ const DEFAULT_FILL_MODE$1 = 'solid';
|
|
|
2699
2814
|
* ```
|
|
2700
2815
|
*/
|
|
2701
2816
|
class DropDownButtonComponent extends ListButton {
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
* * `large`
|
|
2731
|
-
* * `none`
|
|
2732
|
-
*/
|
|
2733
|
-
this.size = 'medium';
|
|
2734
|
-
/**
|
|
2735
|
-
* The rounded property specifies the border radius of the DropDownButton
|
|
2736
|
-
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
|
|
2737
|
-
*
|
|
2738
|
-
* The possible values are:
|
|
2739
|
-
* * `small`
|
|
2740
|
-
* * `medium` (default)
|
|
2741
|
-
* * `large`
|
|
2742
|
-
* * `full`
|
|
2743
|
-
* * `none`
|
|
2744
|
-
*/
|
|
2745
|
-
this.rounded = 'medium';
|
|
2746
|
-
/**
|
|
2747
|
-
* The DropDownButton allows you to specify predefined theme colors.
|
|
2748
|
-
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
2749
|
-
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
|
|
2750
|
-
*
|
|
2751
|
-
* The possible values are:
|
|
2752
|
-
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
2753
|
-
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
2754
|
-
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
2755
|
-
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
2756
|
-
* * `info`—Applies coloring based on the `info` theme color.
|
|
2757
|
-
* * `success`— Applies coloring based on the `success` theme color.
|
|
2758
|
-
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
2759
|
-
* * `error`— Applies coloring based on the `error` theme color.
|
|
2760
|
-
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
2761
|
-
* * `light`— Applies coloring based on the `light` theme color.
|
|
2762
|
-
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
2763
|
-
* * `none` —Removes the default CSS class (no class would be rendered).
|
|
2764
|
-
*/
|
|
2765
|
-
this.themeColor = 'base';
|
|
2766
|
-
/**
|
|
2767
|
-
* Fires each time the user clicks on a drop-down list item. The event data contains the data item bound to the clicked list item.
|
|
2768
|
-
*/
|
|
2769
|
-
this.itemClick = new EventEmitter();
|
|
2770
|
-
/**
|
|
2771
|
-
* Fires each time the DropDownButton gets focused.
|
|
2772
|
-
*/
|
|
2773
|
-
this.onFocus = new EventEmitter();
|
|
2774
|
-
/**
|
|
2775
|
-
* Fires each time the DropDownButton gets blurred.
|
|
2776
|
-
*/
|
|
2777
|
-
this.onBlur = new EventEmitter();
|
|
2778
|
-
this.listId = guid();
|
|
2779
|
-
this.buttonId = guid();
|
|
2780
|
-
this._fillMode = DEFAULT_FILL_MODE$1;
|
|
2781
|
-
this._buttonAttributes = null;
|
|
2782
|
-
this._itemClick = this.itemClick;
|
|
2783
|
-
this._blur = this.onBlur;
|
|
2784
|
-
}
|
|
2817
|
+
containerService;
|
|
2818
|
+
renderer;
|
|
2819
|
+
/**
|
|
2820
|
+
* Allows showing the default arrow icon or providing alternative one instead.
|
|
2821
|
+
* @default false
|
|
2822
|
+
*/
|
|
2823
|
+
arrowIcon = false;
|
|
2824
|
+
/**
|
|
2825
|
+
* Defines the name of an existing icon in the Kendo UI theme.
|
|
2826
|
+
*/
|
|
2827
|
+
icon = '';
|
|
2828
|
+
/**
|
|
2829
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the button.
|
|
2830
|
+
*/
|
|
2831
|
+
svgIcon;
|
|
2832
|
+
/**
|
|
2833
|
+
* Defines the list of CSS classes which are used for styling the Button with custom icons.
|
|
2834
|
+
*/
|
|
2835
|
+
iconClass = '';
|
|
2836
|
+
/**
|
|
2837
|
+
* Defines a URL for styling the button with a custom image.
|
|
2838
|
+
*/
|
|
2839
|
+
imageUrl = '';
|
|
2840
|
+
/**
|
|
2841
|
+
* Sets the data item field that represents the item text.
|
|
2842
|
+
* If the data contains only primitive values, do not define it.
|
|
2843
|
+
*/
|
|
2844
|
+
textField;
|
|
2785
2845
|
/**
|
|
2786
2846
|
* Sets or gets the data of the DropDownButton.
|
|
2787
2847
|
*
|
|
@@ -2793,6 +2853,29 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2793
2853
|
get data() {
|
|
2794
2854
|
return this._data;
|
|
2795
2855
|
}
|
|
2856
|
+
/**
|
|
2857
|
+
* The size property specifies the padding of the DropDownButton
|
|
2858
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
|
|
2859
|
+
*
|
|
2860
|
+
* The possible values are:
|
|
2861
|
+
* * `small`
|
|
2862
|
+
* * `medium` (default)
|
|
2863
|
+
* * `large`
|
|
2864
|
+
* * `none`
|
|
2865
|
+
*/
|
|
2866
|
+
size = 'medium';
|
|
2867
|
+
/**
|
|
2868
|
+
* The rounded property specifies the border radius of the DropDownButton
|
|
2869
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
|
|
2870
|
+
*
|
|
2871
|
+
* The possible values are:
|
|
2872
|
+
* * `small`
|
|
2873
|
+
* * `medium` (default)
|
|
2874
|
+
* * `large`
|
|
2875
|
+
* * `full`
|
|
2876
|
+
* * `none`
|
|
2877
|
+
*/
|
|
2878
|
+
rounded = 'medium';
|
|
2796
2879
|
/**
|
|
2797
2880
|
* The fillMode property specifies the background and border styles of the DropDownButton
|
|
2798
2881
|
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
|
|
@@ -2810,6 +2893,26 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2810
2893
|
get fillMode() {
|
|
2811
2894
|
return this._fillMode;
|
|
2812
2895
|
}
|
|
2896
|
+
/**
|
|
2897
|
+
* The DropDownButton allows you to specify predefined theme colors.
|
|
2898
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
2899
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
|
|
2900
|
+
*
|
|
2901
|
+
* The possible values are:
|
|
2902
|
+
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
2903
|
+
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
2904
|
+
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
2905
|
+
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
2906
|
+
* * `info`—Applies coloring based on the `info` theme color.
|
|
2907
|
+
* * `success`— Applies coloring based on the `success` theme color.
|
|
2908
|
+
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
2909
|
+
* * `error`— Applies coloring based on the `error` theme color.
|
|
2910
|
+
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
2911
|
+
* * `light`— Applies coloring based on the `light` theme color.
|
|
2912
|
+
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
2913
|
+
* * `none` —Removes the default CSS class (no class would be rendered).
|
|
2914
|
+
*/
|
|
2915
|
+
themeColor = 'base';
|
|
2813
2916
|
/**
|
|
2814
2917
|
* Sets attributes to the main button.
|
|
2815
2918
|
*/
|
|
@@ -2821,12 +2924,21 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2821
2924
|
get buttonAttributes() {
|
|
2822
2925
|
return this._buttonAttributes;
|
|
2823
2926
|
}
|
|
2927
|
+
/**
|
|
2928
|
+
* Fires each time the user clicks on a drop-down list item. The event data contains the data item bound to the clicked list item.
|
|
2929
|
+
*/
|
|
2930
|
+
itemClick = new EventEmitter();
|
|
2931
|
+
/**
|
|
2932
|
+
* Fires each time the DropDownButton gets focused.
|
|
2933
|
+
*/
|
|
2934
|
+
onFocus = new EventEmitter();
|
|
2935
|
+
/**
|
|
2936
|
+
* Fires each time the DropDownButton gets blurred.
|
|
2937
|
+
*/
|
|
2938
|
+
onBlur = new EventEmitter();
|
|
2824
2939
|
get focused() {
|
|
2825
2940
|
return this._isFocused && !this._disabled;
|
|
2826
2941
|
}
|
|
2827
|
-
get widgetClasses() {
|
|
2828
|
-
return true;
|
|
2829
|
-
}
|
|
2830
2942
|
get dir() {
|
|
2831
2943
|
return this.direction;
|
|
2832
2944
|
}
|
|
@@ -2836,6 +2948,10 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2836
2948
|
get active() {
|
|
2837
2949
|
return this._active;
|
|
2838
2950
|
}
|
|
2951
|
+
itemTemplate;
|
|
2952
|
+
_fillMode = DEFAULT_FILL_MODE$1;
|
|
2953
|
+
_buttonAttributes = null;
|
|
2954
|
+
documentMouseUpSub;
|
|
2839
2955
|
/**
|
|
2840
2956
|
* @hidden
|
|
2841
2957
|
*/
|
|
@@ -2905,10 +3021,26 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2905
3021
|
this.blurWrapper();
|
|
2906
3022
|
}
|
|
2907
3023
|
}
|
|
3024
|
+
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService, renderer) {
|
|
3025
|
+
super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
|
|
3026
|
+
this.containerService = containerService;
|
|
3027
|
+
this.renderer = renderer;
|
|
3028
|
+
this._itemClick = this.itemClick;
|
|
3029
|
+
this._blur = this.onBlur;
|
|
3030
|
+
this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
|
|
3031
|
+
if (this.active) {
|
|
3032
|
+
this._active = false;
|
|
3033
|
+
}
|
|
3034
|
+
});
|
|
3035
|
+
}
|
|
2908
3036
|
ngAfterViewInit() {
|
|
2909
3037
|
this.containerService.container = this.container;
|
|
2910
3038
|
this.containerService.template = this.popupTemplate;
|
|
2911
3039
|
this.handleButtonAttributes(this.buttonAttributes);
|
|
3040
|
+
const arrowWrapper = this.button.nativeElement.querySelector('.k-button-arrow');
|
|
3041
|
+
if (arrowWrapper) {
|
|
3042
|
+
this.renderer.addClass(arrowWrapper, 'k-menu-button-arrow');
|
|
3043
|
+
}
|
|
2912
3044
|
}
|
|
2913
3045
|
/**
|
|
2914
3046
|
* @hidden
|
|
@@ -2946,23 +3078,31 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2946
3078
|
}
|
|
2947
3079
|
}
|
|
2948
3080
|
}
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
3081
|
+
/**
|
|
3082
|
+
* @hidden
|
|
3083
|
+
*/
|
|
3084
|
+
ngOnDestroy() {
|
|
3085
|
+
if (this.documentMouseUpSub) {
|
|
3086
|
+
this.documentMouseUpSub();
|
|
3087
|
+
}
|
|
3088
|
+
}
|
|
3089
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonComponent, deps: [{ token: FocusService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PopupContainerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
3090
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropDownButtonComponent, isStandalone: true, selector: "kendo-dropdownbutton", inputs: { arrowIcon: "arrowIcon", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", textField: "textField", data: "data", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", buttonAttributes: "buttonAttributes" }, outputs: { itemClick: "itemClick", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)", "mousedown": "mousedown($event)", "mouseup": "mouseup($event)" }, properties: { "class.k-focus": "this.focused", "attr.dir": "this.dir" } }, providers: [
|
|
3091
|
+
FocusService,
|
|
3092
|
+
NavigationService,
|
|
3093
|
+
NAVIGATION_SETTINGS_PROVIDER$2,
|
|
3094
|
+
LocalizationService,
|
|
3095
|
+
{
|
|
3096
|
+
provide: L10N_PREFIX,
|
|
3097
|
+
useValue: 'kendo.dropdownbutton'
|
|
3098
|
+
},
|
|
3099
|
+
PopupContainerService
|
|
3100
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoDropDownButton"], usesInheritance: true, ngImport: i0, template: `
|
|
2962
3101
|
<button kendoButton #button
|
|
2963
3102
|
type="button"
|
|
2964
3103
|
[id]="buttonId"
|
|
2965
3104
|
[tabindex]="componentTabIndex"
|
|
3105
|
+
class="k-menu-button"
|
|
2966
3106
|
[class.k-active]="active"
|
|
2967
3107
|
[disabled]="disabled"
|
|
2968
3108
|
[icon]="icon"
|
|
@@ -3001,8 +3141,9 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
3001
3141
|
</kendo-button-list>
|
|
3002
3142
|
</ng-template>
|
|
3003
3143
|
<ng-container #container></ng-container>
|
|
3004
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]
|
|
3005
|
-
|
|
3144
|
+
`, isInline: true, dependencies: [{ 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: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }] });
|
|
3145
|
+
}
|
|
3146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonComponent, decorators: [{
|
|
3006
3147
|
type: Component,
|
|
3007
3148
|
args: [{
|
|
3008
3149
|
exportAs: 'kendoDropDownButton',
|
|
@@ -3023,6 +3164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3023
3164
|
type="button"
|
|
3024
3165
|
[id]="buttonId"
|
|
3025
3166
|
[tabindex]="componentTabIndex"
|
|
3167
|
+
class="k-menu-button"
|
|
3026
3168
|
[class.k-active]="active"
|
|
3027
3169
|
[disabled]="disabled"
|
|
3028
3170
|
[icon]="icon"
|
|
@@ -3100,27 +3242,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3100
3242
|
}], focused: [{
|
|
3101
3243
|
type: HostBinding,
|
|
3102
3244
|
args: ['class.k-focus']
|
|
3103
|
-
}], widgetClasses: [{
|
|
3104
|
-
type: HostBinding,
|
|
3105
|
-
args: ['class.k-dropdown-button']
|
|
3106
3245
|
}], dir: [{
|
|
3107
3246
|
type: HostBinding,
|
|
3108
3247
|
args: ['attr.dir']
|
|
3109
3248
|
}], itemTemplate: [{
|
|
3110
3249
|
type: ContentChild,
|
|
3111
3250
|
args: [ButtonItemTemplateDirective]
|
|
3112
|
-
}], button: [{
|
|
3113
|
-
type: ViewChild,
|
|
3114
|
-
args: ['button', { read: ElementRef }]
|
|
3115
|
-
}], buttonList: [{
|
|
3116
|
-
type: ViewChild,
|
|
3117
|
-
args: ['buttonList']
|
|
3118
|
-
}], popupTemplate: [{
|
|
3119
|
-
type: ViewChild,
|
|
3120
|
-
args: ['popupTemplate']
|
|
3121
|
-
}], container: [{
|
|
3122
|
-
type: ViewChild,
|
|
3123
|
-
args: ['container', { read: ViewContainerRef }]
|
|
3124
3251
|
}], keydown: [{
|
|
3125
3252
|
type: HostListener,
|
|
3126
3253
|
args: ['keydown', ['$event']]
|
|
@@ -3206,13 +3333,14 @@ function closeAnimation(animationSettings) {
|
|
|
3206
3333
|
* ([see example]({% slug templates_floatingactionbutton %}#toc-dial-item-template)).
|
|
3207
3334
|
*/
|
|
3208
3335
|
class DialItemTemplateDirective {
|
|
3336
|
+
templateRef;
|
|
3209
3337
|
constructor(templateRef) {
|
|
3210
3338
|
this.templateRef = templateRef;
|
|
3211
3339
|
}
|
|
3340
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3341
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DialItemTemplateDirective, isStandalone: true, selector: "[kendoDialItemTemplate]", ngImport: i0 });
|
|
3212
3342
|
}
|
|
3213
|
-
|
|
3214
|
-
DialItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DialItemTemplateDirective, isStandalone: true, selector: "[kendoDialItemTemplate]", ngImport: i0 });
|
|
3215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialItemTemplateDirective, decorators: [{
|
|
3343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemTemplateDirective, decorators: [{
|
|
3216
3344
|
type: Directive,
|
|
3217
3345
|
args: [{
|
|
3218
3346
|
selector: '[kendoDialItemTemplate]',
|
|
@@ -3229,13 +3357,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3229
3357
|
* ([see example]({% slug templates_floatingactionbutton %}#toc-floatingactionbutton-template)).
|
|
3230
3358
|
*/
|
|
3231
3359
|
class FloatingActionButtonTemplateDirective {
|
|
3360
|
+
templateRef;
|
|
3232
3361
|
constructor(templateRef) {
|
|
3233
3362
|
this.templateRef = templateRef;
|
|
3234
3363
|
}
|
|
3364
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3365
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FloatingActionButtonTemplateDirective, isStandalone: true, selector: "[kendoFloatingActionButtonTemplate]", ngImport: i0 });
|
|
3235
3366
|
}
|
|
3236
|
-
|
|
3237
|
-
FloatingActionButtonTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FloatingActionButtonTemplateDirective, isStandalone: true, selector: "[kendoFloatingActionButtonTemplate]", ngImport: i0 });
|
|
3238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonTemplateDirective, decorators: [{
|
|
3367
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonTemplateDirective, decorators: [{
|
|
3239
3368
|
type: Directive,
|
|
3240
3369
|
args: [{
|
|
3241
3370
|
selector: '[kendoFloatingActionButtonTemplate]',
|
|
@@ -3249,13 +3378,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3249
3378
|
* @hidden
|
|
3250
3379
|
*/
|
|
3251
3380
|
class DialItemComponent {
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
this.role = 'menuitem';
|
|
3258
|
-
}
|
|
3381
|
+
element;
|
|
3382
|
+
renderer;
|
|
3383
|
+
localisationService;
|
|
3384
|
+
hostClass = true;
|
|
3385
|
+
role = 'menuitem';
|
|
3259
3386
|
get disabledClass() {
|
|
3260
3387
|
return this.item.disabled;
|
|
3261
3388
|
}
|
|
@@ -3266,6 +3393,18 @@ class DialItemComponent {
|
|
|
3266
3393
|
get indexAttr() {
|
|
3267
3394
|
return this.index;
|
|
3268
3395
|
}
|
|
3396
|
+
cssClass;
|
|
3397
|
+
cssStyle;
|
|
3398
|
+
isFocused;
|
|
3399
|
+
index;
|
|
3400
|
+
item;
|
|
3401
|
+
dialItemTemplate;
|
|
3402
|
+
align;
|
|
3403
|
+
constructor(element, renderer, localisationService) {
|
|
3404
|
+
this.element = element;
|
|
3405
|
+
this.renderer = renderer;
|
|
3406
|
+
this.localisationService = localisationService;
|
|
3407
|
+
}
|
|
3269
3408
|
get iconClasses() {
|
|
3270
3409
|
const classes = [];
|
|
3271
3410
|
if (this.item.iconClass) {
|
|
@@ -3296,9 +3435,8 @@ class DialItemComponent {
|
|
|
3296
3435
|
};
|
|
3297
3436
|
return directions[dir][align];
|
|
3298
3437
|
}
|
|
3299
|
-
}
|
|
3300
|
-
|
|
3301
|
-
DialItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DialItemComponent, isStandalone: true, selector: "[kendoDialItem]", inputs: { cssClass: "cssClass", cssStyle: "cssStyle", isFocused: "isFocused", index: "index", item: "item", dialItemTemplate: "dialItemTemplate", align: "align" }, host: { properties: { "class.k-fab-item": "this.hostClass", "attr.role": "this.role", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "attr.title": "this.title", "attr.aria-label": "this.title", "attr.data-fab-item-index": "this.indexAttr" } }, ngImport: i0, template: `
|
|
3438
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3439
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialItemComponent, isStandalone: true, selector: "[kendoDialItem]", inputs: { cssClass: "cssClass", cssStyle: "cssStyle", isFocused: "isFocused", index: "index", item: "item", dialItemTemplate: "dialItemTemplate", align: "align" }, host: { properties: { "class.k-fab-item": "this.hostClass", "attr.role": "this.role", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "attr.title": "this.title", "attr.aria-label": "this.title", "attr.data-fab-item-index": "this.indexAttr" } }, ngImport: i0, template: `
|
|
3302
3440
|
<ng-template *ngIf="dialItemTemplate"
|
|
3303
3441
|
[ngTemplateOutlet]="dialItemTemplate"
|
|
3304
3442
|
[ngTemplateOutletContext]="{ $implicit: item, index: index, isFocused: isFocused }"
|
|
@@ -3315,7 +3453,8 @@ DialItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
3315
3453
|
[svgIcon]="item.svgIcon"></kendo-icon-wrapper>
|
|
3316
3454
|
</ng-container>
|
|
3317
3455
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
3318
|
-
|
|
3456
|
+
}
|
|
3457
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemComponent, decorators: [{
|
|
3319
3458
|
type: Component,
|
|
3320
3459
|
args: [{
|
|
3321
3460
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -3381,28 +3520,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3381
3520
|
* @hidden
|
|
3382
3521
|
*/
|
|
3383
3522
|
class DialListComponent {
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
this.hostClass = true;
|
|
3388
|
-
this.subscriptions = new Subscription();
|
|
3389
|
-
this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));
|
|
3390
|
-
}
|
|
3523
|
+
focusService;
|
|
3524
|
+
cdr;
|
|
3525
|
+
hostClass = true;
|
|
3391
3526
|
get bottomClass() {
|
|
3392
3527
|
return this.align.vertical === 'top' || this.align.vertical === 'middle';
|
|
3393
3528
|
}
|
|
3394
3529
|
get topClass() {
|
|
3395
3530
|
return this.align.vertical === 'bottom';
|
|
3396
3531
|
}
|
|
3532
|
+
dialItems;
|
|
3533
|
+
dialItemTemplate;
|
|
3534
|
+
align;
|
|
3535
|
+
subscriptions = new Subscription();
|
|
3536
|
+
constructor(focusService, cdr) {
|
|
3537
|
+
this.focusService = focusService;
|
|
3538
|
+
this.cdr = cdr;
|
|
3539
|
+
this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));
|
|
3540
|
+
}
|
|
3397
3541
|
isFocused(index) {
|
|
3398
3542
|
return this.focusService.isFocused(index);
|
|
3399
3543
|
}
|
|
3400
3544
|
ngOnDestroy() {
|
|
3401
3545
|
this.subscriptions.unsubscribe();
|
|
3402
3546
|
}
|
|
3403
|
-
}
|
|
3404
|
-
|
|
3405
|
-
DialListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DialListComponent, isStandalone: true, selector: "[kendoDialList]", inputs: { dialItems: "dialItems", dialItemTemplate: "dialItemTemplate", align: "align" }, host: { properties: { "class.k-fab-items": "this.hostClass", "class.k-fab-items-bottom": "this.bottomClass", "class.k-fab-items-top": "this.topClass" } }, ngImport: i0, template: `
|
|
3547
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialListComponent, deps: [{ token: FocusService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3548
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialListComponent, isStandalone: true, selector: "[kendoDialList]", inputs: { dialItems: "dialItems", dialItemTemplate: "dialItemTemplate", align: "align" }, host: { properties: { "class.k-fab-items": "this.hostClass", "class.k-fab-items-bottom": "this.bottomClass", "class.k-fab-items-top": "this.topClass" } }, ngImport: i0, template: `
|
|
3406
3549
|
<ng-container *ngFor='let item of dialItems; let idx = index'>
|
|
3407
3550
|
<li
|
|
3408
3551
|
kendoButtonFocusable
|
|
@@ -3418,7 +3561,8 @@ DialListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
3418
3561
|
</li>
|
|
3419
3562
|
</ng-container>
|
|
3420
3563
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoButtonFocusable]", inputs: ["index"] }, { kind: "component", type: DialItemComponent, selector: "[kendoDialItem]", inputs: ["cssClass", "cssStyle", "isFocused", "index", "item", "dialItemTemplate", "align"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
3421
|
-
|
|
3564
|
+
}
|
|
3565
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialListComponent, decorators: [{
|
|
3422
3566
|
type: Component,
|
|
3423
3567
|
args: [{
|
|
3424
3568
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -3491,101 +3635,25 @@ const DEFAULT_THEME_COLOR = 'primary';
|
|
|
3491
3635
|
*
|
|
3492
3636
|
*/
|
|
3493
3637
|
class FloatingActionButtonComponent {
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
this.localizationService = localizationService;
|
|
3503
|
-
/**
|
|
3504
|
-
* Specifies the positionMode of the FloatingActionButton
|
|
3505
|
-
* ([see example](slug:positioning_floatingactionbutton#toc-position-mode)).
|
|
3506
|
-
*
|
|
3507
|
-
* * The possible values are:
|
|
3508
|
-
* * `absolute`—Positions the FloatingActionButton absolutely to its first positioned parent element.
|
|
3509
|
-
* * `fixed` (Default)—Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.
|
|
3510
|
-
*/
|
|
3511
|
-
this.positionMode = 'fixed';
|
|
3512
|
-
/**
|
|
3513
|
-
* Specifies the animation settings of the FloatingActionButton dial items.
|
|
3514
|
-
* ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).
|
|
3515
|
-
*
|
|
3516
|
-
* The possible values are:
|
|
3517
|
-
* * Boolean
|
|
3518
|
-
* * (Default) `true`—Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.
|
|
3519
|
-
* * `false`
|
|
3520
|
-
* * `DialItemAnimation`
|
|
3521
|
-
* * `duration`—Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.
|
|
3522
|
-
* * `gap`—Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.
|
|
3523
|
-
*/
|
|
3524
|
-
this.dialItemAnimation = true;
|
|
3525
|
-
/**
|
|
3526
|
-
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.
|
|
3527
|
-
*/
|
|
3528
|
-
this.tabIndex = 0;
|
|
3529
|
-
/**
|
|
3530
|
-
* Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.
|
|
3531
|
-
*/
|
|
3532
|
-
this.dialItems = [];
|
|
3533
|
-
/**
|
|
3534
|
-
* Fires each time the FloatingActionButton gets blurred.
|
|
3535
|
-
*/
|
|
3536
|
-
this.onBlur = new EventEmitter();
|
|
3537
|
-
/**
|
|
3538
|
-
* Fires each time the FloatingActionButton gets focused.
|
|
3539
|
-
*/
|
|
3540
|
-
this.onFocus = new EventEmitter();
|
|
3541
|
-
/**
|
|
3542
|
-
* Fires each time a dial item is clicked.
|
|
3543
|
-
*/
|
|
3544
|
-
this.dialItemClick = new EventEmitter();
|
|
3545
|
-
/**
|
|
3546
|
-
* Fires each time the popup is about to open.
|
|
3547
|
-
* This event is preventable. If you cancel the event, the popup will remain closed
|
|
3548
|
-
* ([more information and example](slug:events_floatingactionbutton)).
|
|
3549
|
-
*/
|
|
3550
|
-
this.open = new EventEmitter();
|
|
3551
|
-
/**
|
|
3552
|
-
* Fires each time the popup is about to close.
|
|
3553
|
-
* This event is preventable. If you cancel the event, the popup will remain open
|
|
3554
|
-
* ([more information and example](slug:events_floatingactionbutton)).
|
|
3555
|
-
*/
|
|
3556
|
-
this.close = new EventEmitter();
|
|
3557
|
-
/**
|
|
3558
|
-
* @hidden
|
|
3559
|
-
*/
|
|
3560
|
-
this.id = `k-${guid()}`;
|
|
3561
|
-
/**
|
|
3562
|
-
* @hidden
|
|
3563
|
-
*/
|
|
3564
|
-
this.dialListId = `k-dial-list-${guid()}`;
|
|
3565
|
-
this._themeColor = DEFAULT_THEME_COLOR;
|
|
3566
|
-
this._size = DEFAULT_SIZE;
|
|
3567
|
-
this._rounded = DEFAULT_ROUNDED$1;
|
|
3568
|
-
this._disabled = false;
|
|
3569
|
-
this._align = { horizontal: 'end', vertical: 'bottom' };
|
|
3570
|
-
this._offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
|
|
3571
|
-
this.subscriptions = new Subscription();
|
|
3572
|
-
this.rtl = false;
|
|
3573
|
-
this.animationEnd = new EventEmitter();
|
|
3574
|
-
this.initialSetup = true;
|
|
3575
|
-
this.focusChangedProgrammatically = false;
|
|
3576
|
-
validatePackage(packageMetadata);
|
|
3577
|
-
this.subscribeNavigationEvents();
|
|
3578
|
-
this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
|
|
3579
|
-
this.rtl = rtl;
|
|
3580
|
-
this.direction = this.rtl ? 'rtl' : 'ltr';
|
|
3581
|
-
}));
|
|
3582
|
-
}
|
|
3638
|
+
renderer;
|
|
3639
|
+
element;
|
|
3640
|
+
focusService;
|
|
3641
|
+
navigationService;
|
|
3642
|
+
ngZone;
|
|
3643
|
+
popupService;
|
|
3644
|
+
builder;
|
|
3645
|
+
localizationService;
|
|
3583
3646
|
get fixedClass() {
|
|
3584
3647
|
return this.positionMode === 'fixed';
|
|
3585
3648
|
}
|
|
3586
3649
|
get absoluteClass() {
|
|
3587
3650
|
return this.positionMode === 'absolute';
|
|
3588
3651
|
}
|
|
3652
|
+
direction;
|
|
3653
|
+
button;
|
|
3654
|
+
popupTemplate;
|
|
3655
|
+
dialItemTemplate;
|
|
3656
|
+
fabTemplate;
|
|
3589
3657
|
/**
|
|
3590
3658
|
* Specifies the theme color of the FloatingActionButton
|
|
3591
3659
|
* ([see example](slug:appearance_floatingactionbutton#toc-theme-colors)).
|
|
@@ -3688,12 +3756,131 @@ class FloatingActionButtonComponent {
|
|
|
3688
3756
|
get offset() {
|
|
3689
3757
|
return this._offset;
|
|
3690
3758
|
}
|
|
3759
|
+
/**
|
|
3760
|
+
* Specifies the positionMode of the FloatingActionButton
|
|
3761
|
+
* ([see example](slug:positioning_floatingactionbutton#toc-position-mode)).
|
|
3762
|
+
*
|
|
3763
|
+
* * The possible values are:
|
|
3764
|
+
* * `absolute`—Positions the FloatingActionButton absolutely to its first positioned parent element.
|
|
3765
|
+
* * `fixed` (Default)—Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.
|
|
3766
|
+
*/
|
|
3767
|
+
positionMode = 'fixed';
|
|
3768
|
+
/**
|
|
3769
|
+
* Defines the name of an existing icon in a Kendo UI theme.
|
|
3770
|
+
* If provided, the icon will be rendered inside the FloatingActionButton by a `span.k-icon` element.
|
|
3771
|
+
*/
|
|
3772
|
+
icon;
|
|
3773
|
+
/**
|
|
3774
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the FloatingActionButton.
|
|
3775
|
+
*/
|
|
3776
|
+
svgIcon;
|
|
3777
|
+
/**
|
|
3778
|
+
* Defines a CSS class or multiple classes separated by spaces which are applied to a `span` element.
|
|
3779
|
+
* Allows the usage of custom icons, rendered inside the FloatingActionButton by a `span` element.
|
|
3780
|
+
*/
|
|
3781
|
+
iconClass;
|
|
3782
|
+
/**
|
|
3783
|
+
* The CSS classes that will be rendered on the main button.
|
|
3784
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
3785
|
+
*/
|
|
3786
|
+
buttonClass;
|
|
3787
|
+
/**
|
|
3788
|
+
* The CSS classes that will be rendered on the dial items `ul` element.
|
|
3789
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
3790
|
+
*/
|
|
3791
|
+
dialClass;
|
|
3792
|
+
/**
|
|
3793
|
+
* Specifies the text content of the FloatingActionButton.
|
|
3794
|
+
*/
|
|
3795
|
+
text;
|
|
3796
|
+
/**
|
|
3797
|
+
* Specifies the animation settings of the FloatingActionButton dial items.
|
|
3798
|
+
* ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).
|
|
3799
|
+
*
|
|
3800
|
+
* The possible values are:
|
|
3801
|
+
* * Boolean
|
|
3802
|
+
* * (Default) `true`—Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.
|
|
3803
|
+
* * `false`
|
|
3804
|
+
* * `DialItemAnimation`
|
|
3805
|
+
* * `duration`—Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.
|
|
3806
|
+
* * `gap`—Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.
|
|
3807
|
+
*/
|
|
3808
|
+
dialItemAnimation = true;
|
|
3809
|
+
/**
|
|
3810
|
+
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.
|
|
3811
|
+
*/
|
|
3812
|
+
tabIndex = 0;
|
|
3813
|
+
/**
|
|
3814
|
+
* Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.
|
|
3815
|
+
*/
|
|
3816
|
+
dialItems = [];
|
|
3817
|
+
/**
|
|
3818
|
+
* Fires each time the FloatingActionButton gets blurred.
|
|
3819
|
+
*/
|
|
3820
|
+
onBlur = new EventEmitter();
|
|
3821
|
+
/**
|
|
3822
|
+
* Fires each time the FloatingActionButton gets focused.
|
|
3823
|
+
*/
|
|
3824
|
+
onFocus = new EventEmitter();
|
|
3825
|
+
/**
|
|
3826
|
+
* Fires each time a dial item is clicked.
|
|
3827
|
+
*/
|
|
3828
|
+
dialItemClick = new EventEmitter();
|
|
3829
|
+
/**
|
|
3830
|
+
* Fires each time the popup is about to open.
|
|
3831
|
+
* This event is preventable. If you cancel the event, the popup will remain closed
|
|
3832
|
+
* ([more information and example](slug:events_floatingactionbutton)).
|
|
3833
|
+
*/
|
|
3834
|
+
open = new EventEmitter();
|
|
3835
|
+
/**
|
|
3836
|
+
* Fires each time the popup is about to close.
|
|
3837
|
+
* This event is preventable. If you cancel the event, the popup will remain open
|
|
3838
|
+
* ([more information and example](slug:events_floatingactionbutton)).
|
|
3839
|
+
*/
|
|
3840
|
+
close = new EventEmitter();
|
|
3691
3841
|
/**
|
|
3692
3842
|
* @hidden
|
|
3693
3843
|
*/
|
|
3694
3844
|
get componentTabIndex() {
|
|
3695
3845
|
return this.disabled ? (-1) : this.tabIndex;
|
|
3696
3846
|
}
|
|
3847
|
+
/**
|
|
3848
|
+
* @hidden
|
|
3849
|
+
*/
|
|
3850
|
+
id = `k-${guid()}`;
|
|
3851
|
+
/**
|
|
3852
|
+
* @hidden
|
|
3853
|
+
*/
|
|
3854
|
+
dialListId = `k-dial-list-${guid()}`;
|
|
3855
|
+
_themeColor = DEFAULT_THEME_COLOR;
|
|
3856
|
+
_size = DEFAULT_SIZE;
|
|
3857
|
+
_rounded = DEFAULT_ROUNDED$1;
|
|
3858
|
+
_disabled = false;
|
|
3859
|
+
_align = { horizontal: 'end', vertical: 'bottom' };
|
|
3860
|
+
_offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
|
|
3861
|
+
subscriptions = new Subscription();
|
|
3862
|
+
popupMouseDownListener;
|
|
3863
|
+
rtl = false;
|
|
3864
|
+
animationEnd = new EventEmitter();
|
|
3865
|
+
popupRef;
|
|
3866
|
+
initialSetup = true;
|
|
3867
|
+
focusChangedProgrammatically = false;
|
|
3868
|
+
constructor(renderer, element, focusService, navigationService, ngZone, popupService, builder, localizationService) {
|
|
3869
|
+
this.renderer = renderer;
|
|
3870
|
+
this.element = element;
|
|
3871
|
+
this.focusService = focusService;
|
|
3872
|
+
this.navigationService = navigationService;
|
|
3873
|
+
this.ngZone = ngZone;
|
|
3874
|
+
this.popupService = popupService;
|
|
3875
|
+
this.builder = builder;
|
|
3876
|
+
this.localizationService = localizationService;
|
|
3877
|
+
validatePackage(packageMetadata);
|
|
3878
|
+
this.subscribeNavigationEvents();
|
|
3879
|
+
this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
|
|
3880
|
+
this.rtl = rtl;
|
|
3881
|
+
this.direction = this.rtl ? 'rtl' : 'ltr';
|
|
3882
|
+
}));
|
|
3883
|
+
}
|
|
3697
3884
|
ngAfterViewInit() {
|
|
3698
3885
|
['size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));
|
|
3699
3886
|
this.renderer.addClass(this.element.nativeElement, this.alignClass());
|
|
@@ -4149,18 +4336,17 @@ class FloatingActionButtonComponent {
|
|
|
4149
4336
|
}
|
|
4150
4337
|
return DEFAULT_DURATION;
|
|
4151
4338
|
}
|
|
4152
|
-
}
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
}
|
|
4163
|
-
], queries: [{ propertyName: "dialItemTemplate", first: true, predicate: DialItemTemplateDirective, descendants: true }, { propertyName: "fabTemplate", first: true, predicate: FloatingActionButtonTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }], ngImport: i0, template: `
|
|
4339
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: FocusService }, { token: NavigationService }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i4.AnimationBuilder }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4340
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FloatingActionButtonComponent, isStandalone: true, selector: "kendo-floatingactionbutton", inputs: { themeColor: "themeColor", size: "size", rounded: "rounded", disabled: "disabled", align: "align", offset: "offset", positionMode: "positionMode", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", buttonClass: "buttonClass", dialClass: "dialClass", text: "text", dialItemAnimation: "dialItemAnimation", tabIndex: "tabIndex", dialItems: "dialItems" }, outputs: { onBlur: "blur", onFocus: "focus", dialItemClick: "dialItemClick", open: "open", close: "close" }, host: { properties: { "class.k-pos-fixed": "this.fixedClass", "class.k-pos-absolute": "this.absoluteClass", "attr.dir": "this.direction" } }, providers: [
|
|
4341
|
+
FocusService,
|
|
4342
|
+
NavigationService,
|
|
4343
|
+
NAVIGATION_SETTINGS_PROVIDER$1,
|
|
4344
|
+
LocalizationService,
|
|
4345
|
+
{
|
|
4346
|
+
provide: L10N_PREFIX,
|
|
4347
|
+
useValue: 'kendo.floatingactionbutton'
|
|
4348
|
+
}
|
|
4349
|
+
], queries: [{ propertyName: "dialItemTemplate", first: true, predicate: DialItemTemplateDirective, descendants: true }, { propertyName: "fabTemplate", first: true, predicate: FloatingActionButtonTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }], ngImport: i0, template: `
|
|
4164
4350
|
<button
|
|
4165
4351
|
#button
|
|
4166
4352
|
[attr.id]="id"
|
|
@@ -4218,7 +4404,8 @@ FloatingActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
4218
4404
|
</ul>
|
|
4219
4405
|
</ng-template>
|
|
4220
4406
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: DialListComponent, selector: "[kendoDialList]", inputs: ["dialItems", "dialItemTemplate", "align"] }] });
|
|
4221
|
-
|
|
4407
|
+
}
|
|
4408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonComponent, decorators: [{
|
|
4222
4409
|
type: Component,
|
|
4223
4410
|
args: [{
|
|
4224
4411
|
selector: 'kendo-floatingactionbutton',
|
|
@@ -4365,10 +4552,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4365
4552
|
* @hidden
|
|
4366
4553
|
*/
|
|
4367
4554
|
class Messages extends ComponentMessages {
|
|
4555
|
+
/**
|
|
4556
|
+
* The text for the SplitButton aria-label.
|
|
4557
|
+
*
|
|
4558
|
+
* The text for the aria-label consists of a two-part message - the text of the SplitButton and a localizable string.
|
|
4559
|
+
* For a SplitButton with text 'Reply', the default aria-label will be 'Reply splitbutton'.
|
|
4560
|
+
*
|
|
4561
|
+
* To allow reordering of the SplitButton text and the localizable part, the splitButtonLabel accepts a string with a
|
|
4562
|
+
* placeholder for the button text - e.g. 'splitbutton for {buttonText}'. The '{buttonText}' placeholder will be replaced
|
|
4563
|
+
* internally with the current SplitButton text, and the resulting aria-label will be rendered as 'splitbutton for Reply'.
|
|
4564
|
+
*
|
|
4565
|
+
* @example
|
|
4566
|
+
*
|
|
4567
|
+
* ```ts-no-run
|
|
4568
|
+
* <kendo-splitbutton>
|
|
4569
|
+
* <kendo-splitbutton-messages
|
|
4570
|
+
* splitButtonLabel="splitbutton for {buttonText}"
|
|
4571
|
+
* >
|
|
4572
|
+
* </kendo-splitbutton-messages>
|
|
4573
|
+
* </kendo-splitbutton>
|
|
4574
|
+
* ```
|
|
4575
|
+
*/
|
|
4576
|
+
splitButtonLabel;
|
|
4577
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
4578
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, selector: "kendo-splitbutton-messages-base", inputs: { splitButtonLabel: "splitButtonLabel" }, usesInheritance: true, ngImport: i0 });
|
|
4368
4579
|
}
|
|
4369
|
-
|
|
4370
|
-
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: Messages, selector: "kendo-splitbutton-messages-base", inputs: { splitButtonLabel: "splitButtonLabel" }, usesInheritance: true, ngImport: i0 });
|
|
4371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, decorators: [{
|
|
4580
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
|
|
4372
4581
|
type: Directive,
|
|
4373
4582
|
args: [{
|
|
4374
4583
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -4383,6 +4592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4383
4592
|
* ([see example]({% slug rtl_buttons %}).
|
|
4384
4593
|
*/
|
|
4385
4594
|
class SplitButtonCustomMessagesComponent extends Messages {
|
|
4595
|
+
service;
|
|
4386
4596
|
constructor(service) {
|
|
4387
4597
|
super();
|
|
4388
4598
|
this.service = service;
|
|
@@ -4390,13 +4600,13 @@ class SplitButtonCustomMessagesComponent extends Messages {
|
|
|
4390
4600
|
get override() {
|
|
4391
4601
|
return true;
|
|
4392
4602
|
}
|
|
4603
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4604
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitButtonCustomMessagesComponent, isStandalone: true, selector: "kendo-splitbutton-messages", providers: [{
|
|
4605
|
+
provide: Messages,
|
|
4606
|
+
useExisting: forwardRef(() => SplitButtonCustomMessagesComponent)
|
|
4607
|
+
}], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
4393
4608
|
}
|
|
4394
|
-
|
|
4395
|
-
SplitButtonCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SplitButtonCustomMessagesComponent, isStandalone: true, selector: "kendo-splitbutton-messages", providers: [{
|
|
4396
|
-
provide: Messages,
|
|
4397
|
-
useExisting: forwardRef(() => SplitButtonCustomMessagesComponent)
|
|
4398
|
-
}], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
4399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonCustomMessagesComponent, decorators: [{
|
|
4609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, decorators: [{
|
|
4400
4610
|
type: Component,
|
|
4401
4611
|
args: [{
|
|
4402
4612
|
providers: [{
|
|
@@ -4413,19 +4623,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4413
4623
|
* @hidden
|
|
4414
4624
|
*/
|
|
4415
4625
|
class LocalizedSplitButtonMessagesDirective extends Messages {
|
|
4626
|
+
service;
|
|
4416
4627
|
constructor(service) {
|
|
4417
4628
|
super();
|
|
4418
4629
|
this.service = service;
|
|
4419
4630
|
}
|
|
4631
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4632
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedSplitButtonMessagesDirective, isStandalone: true, selector: "[kendoSplitButtonLocalizedMessages]", providers: [
|
|
4633
|
+
{
|
|
4634
|
+
provide: Messages,
|
|
4635
|
+
useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective)
|
|
4636
|
+
}
|
|
4637
|
+
], usesInheritance: true, ngImport: i0 });
|
|
4420
4638
|
}
|
|
4421
|
-
|
|
4422
|
-
LocalizedSplitButtonMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedSplitButtonMessagesDirective, isStandalone: true, selector: "[kendoSplitButtonLocalizedMessages]", providers: [
|
|
4423
|
-
{
|
|
4424
|
-
provide: Messages,
|
|
4425
|
-
useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective)
|
|
4426
|
-
}
|
|
4427
|
-
], usesInheritance: true, ngImport: i0 });
|
|
4428
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, decorators: [{
|
|
4639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, decorators: [{
|
|
4429
4640
|
type: Directive,
|
|
4430
4641
|
args: [{
|
|
4431
4642
|
providers: [
|
|
@@ -4490,154 +4701,46 @@ const DEFAULT_FILL_MODE = 'solid';
|
|
|
4490
4701
|
* ```
|
|
4491
4702
|
*/
|
|
4492
4703
|
class SplitButtonComponent extends ListButton {
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
4534
|
-
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
4535
|
-
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
4536
|
-
* * `info`—Applies coloring based on the `info` theme color.
|
|
4537
|
-
* * `success`— Applies coloring based on the `success` theme color.
|
|
4538
|
-
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
4539
|
-
* * `error`— Applies coloring based on the `error` theme color.
|
|
4540
|
-
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
4541
|
-
* * `light`— Applies coloring based on the `light` theme color.
|
|
4542
|
-
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
4543
|
-
* * `none`— Removes the built in theme color.
|
|
4544
|
-
*/
|
|
4545
|
-
this.themeColor = 'base';
|
|
4546
|
-
/**
|
|
4547
|
-
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
4548
|
-
*/
|
|
4549
|
-
this.tabIndex = 0;
|
|
4550
|
-
/**
|
|
4551
|
-
* Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
|
|
4552
|
-
* be rendered for the button which opens the popup.
|
|
4553
|
-
*/
|
|
4554
|
-
this.arrowButtonIcon = 'caret-alt-down';
|
|
4555
|
-
/**
|
|
4556
|
-
* Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
|
|
4557
|
-
* be rendered for the button which opens the popup.
|
|
4558
|
-
*/
|
|
4559
|
-
this.arrowButtonSvgIcon = caretAltDownIcon;
|
|
4560
|
-
/**
|
|
4561
|
-
* Fires each time the user clicks the main button.
|
|
4562
|
-
*
|
|
4563
|
-
* @example
|
|
4564
|
-
* ```ts
|
|
4565
|
-
* _@Component({
|
|
4566
|
-
* selector: 'my-app',
|
|
4567
|
-
* template: `
|
|
4568
|
-
* <kendo-splitbutton (buttonClick)="onSplitButtonClick()" [data]="data">
|
|
4569
|
-
* Reply
|
|
4570
|
-
* </kendo-splitbutton>
|
|
4571
|
-
* `
|
|
4572
|
-
* })
|
|
4573
|
-
* class AppComponent {
|
|
4574
|
-
* public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
|
|
4575
|
-
*
|
|
4576
|
-
* public onSplitButtonClick(): void {
|
|
4577
|
-
* console.log('SplitButton click');
|
|
4578
|
-
* }
|
|
4579
|
-
* }
|
|
4580
|
-
* ```
|
|
4581
|
-
*
|
|
4582
|
-
*/
|
|
4583
|
-
this.buttonClick = new EventEmitter();
|
|
4584
|
-
/**
|
|
4585
|
-
* Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.
|
|
4586
|
-
*
|
|
4587
|
-
* @example
|
|
4588
|
-
* ```ts
|
|
4589
|
-
* _@Component({
|
|
4590
|
-
* selector: 'my-app',
|
|
4591
|
-
* template: `
|
|
4592
|
-
* <kendo-splitbutton (itemClick)="onSplitButtonItemClick($event)" [data]="data">
|
|
4593
|
-
* Reply
|
|
4594
|
-
* </kendo-splitbutton>
|
|
4595
|
-
* `
|
|
4596
|
-
* })
|
|
4597
|
-
* class AppComponent {
|
|
4598
|
-
* public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
|
|
4599
|
-
*
|
|
4600
|
-
* public onSplitButtonItemClick(dataItem?: string): void {
|
|
4601
|
-
* if (dataItem) {
|
|
4602
|
-
* console.log(dataItem);
|
|
4603
|
-
* }
|
|
4604
|
-
* }
|
|
4605
|
-
* }
|
|
4606
|
-
* ```
|
|
4607
|
-
*
|
|
4608
|
-
*/
|
|
4609
|
-
this.itemClick = new EventEmitter();
|
|
4610
|
-
/**
|
|
4611
|
-
* Fires each time the SplitButton gets focused.
|
|
4612
|
-
*/
|
|
4613
|
-
this.onFocus = new EventEmitter();
|
|
4614
|
-
/**
|
|
4615
|
-
* Fires each time the SplitButton gets blurred.
|
|
4616
|
-
*/
|
|
4617
|
-
this.onBlur = new EventEmitter();
|
|
4618
|
-
/**
|
|
4619
|
-
* Fires each time the popup is about to open.
|
|
4620
|
-
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
4621
|
-
*/
|
|
4622
|
-
this.open = new EventEmitter();
|
|
4623
|
-
/**
|
|
4624
|
-
* Fires each time the popup is about to close.
|
|
4625
|
-
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
4626
|
-
*/
|
|
4627
|
-
this.close = new EventEmitter();
|
|
4628
|
-
/**
|
|
4629
|
-
* @hidden
|
|
4630
|
-
*/
|
|
4631
|
-
this.activeArrow = false;
|
|
4632
|
-
this.listId = guid();
|
|
4633
|
-
this.buttonText = '';
|
|
4634
|
-
this.arrowButtonClicked = false;
|
|
4635
|
-
this._rounded = DEFAULT_ROUNDED;
|
|
4636
|
-
this._fillMode = DEFAULT_FILL_MODE;
|
|
4637
|
-
this._buttonAttributes = null;
|
|
4638
|
-
this._itemClick = this.itemClick;
|
|
4639
|
-
this._blur = this.onBlur;
|
|
4640
|
-
}
|
|
4704
|
+
localization;
|
|
4705
|
+
renderer;
|
|
4706
|
+
/**
|
|
4707
|
+
* Sets the text of the SplitButton.
|
|
4708
|
+
*/
|
|
4709
|
+
text = '';
|
|
4710
|
+
/**
|
|
4711
|
+
* Defines an icon to be rendered next to the button text.
|
|
4712
|
+
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
4713
|
+
*/
|
|
4714
|
+
icon = '';
|
|
4715
|
+
/**
|
|
4716
|
+
* Defines an SVGIcon to be rendered next to the button text.
|
|
4717
|
+
*/
|
|
4718
|
+
svgIcon;
|
|
4719
|
+
/**
|
|
4720
|
+
* Defines an icon with a custom CSS class to be rendered next to the button text
|
|
4721
|
+
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
4722
|
+
*/
|
|
4723
|
+
iconClass;
|
|
4724
|
+
/**
|
|
4725
|
+
* Defines the type attribute of the main button
|
|
4726
|
+
*/
|
|
4727
|
+
type = 'button';
|
|
4728
|
+
/**
|
|
4729
|
+
* Defines the location of an image to be displayed next to the button text
|
|
4730
|
+
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
4731
|
+
*/
|
|
4732
|
+
imageUrl = '';
|
|
4733
|
+
/**
|
|
4734
|
+
* The size property specifies the padding of the SplitButton
|
|
4735
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
|
|
4736
|
+
*
|
|
4737
|
+
* The possible values are:
|
|
4738
|
+
* * `small`
|
|
4739
|
+
* * `medium` (default)
|
|
4740
|
+
* * `large`
|
|
4741
|
+
* * `none`
|
|
4742
|
+
*/
|
|
4743
|
+
size = 'medium';
|
|
4641
4744
|
/**
|
|
4642
4745
|
* The rounded property specifies the border radius of the SplitButton
|
|
4643
4746
|
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
|
|
@@ -4674,6 +4777,26 @@ class SplitButtonComponent extends ListButton {
|
|
|
4674
4777
|
get fillMode() {
|
|
4675
4778
|
return this._fillMode;
|
|
4676
4779
|
}
|
|
4780
|
+
/**
|
|
4781
|
+
* The SplitButton allows you to specify predefined theme colors.
|
|
4782
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
4783
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
|
|
4784
|
+
*
|
|
4785
|
+
* The possible values are:
|
|
4786
|
+
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
4787
|
+
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
4788
|
+
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
4789
|
+
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
4790
|
+
* * `info`—Applies coloring based on the `info` theme color.
|
|
4791
|
+
* * `success`— Applies coloring based on the `success` theme color.
|
|
4792
|
+
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
4793
|
+
* * `error`— Applies coloring based on the `error` theme color.
|
|
4794
|
+
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
4795
|
+
* * `light`— Applies coloring based on the `light` theme color.
|
|
4796
|
+
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
4797
|
+
* * `none`— Removes the built in theme color.
|
|
4798
|
+
*/
|
|
4799
|
+
themeColor = 'base';
|
|
4677
4800
|
/**
|
|
4678
4801
|
* When set to `true`, disables a SplitButton item
|
|
4679
4802
|
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
@@ -4702,6 +4825,14 @@ class SplitButtonComponent extends ListButton {
|
|
|
4702
4825
|
get popupSettings() {
|
|
4703
4826
|
return this._popupSettings;
|
|
4704
4827
|
}
|
|
4828
|
+
/**
|
|
4829
|
+
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
4830
|
+
*/
|
|
4831
|
+
tabIndex = 0;
|
|
4832
|
+
/**
|
|
4833
|
+
* Configures the text field of the button-list popup.
|
|
4834
|
+
*/
|
|
4835
|
+
textField;
|
|
4705
4836
|
/**
|
|
4706
4837
|
* Sets the data of the SplitButton.
|
|
4707
4838
|
*
|
|
@@ -4716,6 +4847,21 @@ class SplitButtonComponent extends ListButton {
|
|
|
4716
4847
|
}
|
|
4717
4848
|
return this._data;
|
|
4718
4849
|
}
|
|
4850
|
+
/**
|
|
4851
|
+
* The CSS classes that will be rendered on the button which opens the popup.
|
|
4852
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
4853
|
+
*/
|
|
4854
|
+
arrowButtonClass;
|
|
4855
|
+
/**
|
|
4856
|
+
* Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
|
|
4857
|
+
* be rendered for the button which opens the popup.
|
|
4858
|
+
*/
|
|
4859
|
+
arrowButtonIcon = 'caret-alt-down';
|
|
4860
|
+
/**
|
|
4861
|
+
* Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
|
|
4862
|
+
* be rendered for the button which opens the popup.
|
|
4863
|
+
*/
|
|
4864
|
+
arrowButtonSvgIcon = caretAltDownIcon;
|
|
4719
4865
|
/**
|
|
4720
4866
|
* Sets attributes to the main button.
|
|
4721
4867
|
*/
|
|
@@ -4727,6 +4873,80 @@ class SplitButtonComponent extends ListButton {
|
|
|
4727
4873
|
get buttonAttributes() {
|
|
4728
4874
|
return this._buttonAttributes;
|
|
4729
4875
|
}
|
|
4876
|
+
/**
|
|
4877
|
+
* Fires each time the user clicks the main button.
|
|
4878
|
+
*
|
|
4879
|
+
* @example
|
|
4880
|
+
* ```ts
|
|
4881
|
+
* _@Component({
|
|
4882
|
+
* selector: 'my-app',
|
|
4883
|
+
* template: `
|
|
4884
|
+
* <kendo-splitbutton (buttonClick)="onSplitButtonClick()" [data]="data">
|
|
4885
|
+
* Reply
|
|
4886
|
+
* </kendo-splitbutton>
|
|
4887
|
+
* `
|
|
4888
|
+
* })
|
|
4889
|
+
* class AppComponent {
|
|
4890
|
+
* public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
|
|
4891
|
+
*
|
|
4892
|
+
* public onSplitButtonClick(): void {
|
|
4893
|
+
* console.log('SplitButton click');
|
|
4894
|
+
* }
|
|
4895
|
+
* }
|
|
4896
|
+
* ```
|
|
4897
|
+
*
|
|
4898
|
+
*/
|
|
4899
|
+
buttonClick = new EventEmitter();
|
|
4900
|
+
/**
|
|
4901
|
+
* Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.
|
|
4902
|
+
*
|
|
4903
|
+
* @example
|
|
4904
|
+
* ```ts
|
|
4905
|
+
* _@Component({
|
|
4906
|
+
* selector: 'my-app',
|
|
4907
|
+
* template: `
|
|
4908
|
+
* <kendo-splitbutton (itemClick)="onSplitButtonItemClick($event)" [data]="data">
|
|
4909
|
+
* Reply
|
|
4910
|
+
* </kendo-splitbutton>
|
|
4911
|
+
* `
|
|
4912
|
+
* })
|
|
4913
|
+
* class AppComponent {
|
|
4914
|
+
* public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
|
|
4915
|
+
*
|
|
4916
|
+
* public onSplitButtonItemClick(dataItem?: string): void {
|
|
4917
|
+
* if (dataItem) {
|
|
4918
|
+
* console.log(dataItem);
|
|
4919
|
+
* }
|
|
4920
|
+
* }
|
|
4921
|
+
* }
|
|
4922
|
+
* ```
|
|
4923
|
+
*
|
|
4924
|
+
*/
|
|
4925
|
+
itemClick = new EventEmitter();
|
|
4926
|
+
/**
|
|
4927
|
+
* Fires each time the SplitButton gets focused.
|
|
4928
|
+
*/
|
|
4929
|
+
onFocus = new EventEmitter();
|
|
4930
|
+
/**
|
|
4931
|
+
* Fires each time the SplitButton gets blurred.
|
|
4932
|
+
*/
|
|
4933
|
+
onBlur = new EventEmitter();
|
|
4934
|
+
/**
|
|
4935
|
+
* Fires each time the popup is about to open.
|
|
4936
|
+
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
4937
|
+
*/
|
|
4938
|
+
open = new EventEmitter();
|
|
4939
|
+
/**
|
|
4940
|
+
* Fires each time the popup is about to close.
|
|
4941
|
+
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
4942
|
+
*/
|
|
4943
|
+
close = new EventEmitter();
|
|
4944
|
+
/**
|
|
4945
|
+
* An item template that helps to customize the item content.
|
|
4946
|
+
*/
|
|
4947
|
+
itemTemplate;
|
|
4948
|
+
activeArrow = false;
|
|
4949
|
+
listId = guid();
|
|
4730
4950
|
/**
|
|
4731
4951
|
* @hidden
|
|
4732
4952
|
*/
|
|
@@ -4745,6 +4965,12 @@ class SplitButtonComponent extends ListButton {
|
|
|
4745
4965
|
get componentTabIndex() {
|
|
4746
4966
|
return this.disabled ? -1 : this.tabIndex;
|
|
4747
4967
|
}
|
|
4968
|
+
buttonText = '';
|
|
4969
|
+
arrowButtonClicked = false;
|
|
4970
|
+
_rounded = DEFAULT_ROUNDED;
|
|
4971
|
+
_fillMode = DEFAULT_FILL_MODE;
|
|
4972
|
+
_buttonAttributes = null;
|
|
4973
|
+
documentMouseUpSub;
|
|
4748
4974
|
set isFocused(value) {
|
|
4749
4975
|
this._isFocused = value;
|
|
4750
4976
|
}
|
|
@@ -4838,7 +5064,7 @@ class SplitButtonComponent extends ListButton {
|
|
|
4838
5064
|
* @hidden
|
|
4839
5065
|
*/
|
|
4840
5066
|
ngAfterViewInit() {
|
|
4841
|
-
this.containerService.container = this.
|
|
5067
|
+
this.containerService.container = this.container;
|
|
4842
5068
|
this.containerService.template = this.popupTemplate;
|
|
4843
5069
|
this.updateButtonText();
|
|
4844
5070
|
this.handleClasses(this.rounded, 'rounded');
|
|
@@ -4862,6 +5088,14 @@ class SplitButtonComponent extends ListButton {
|
|
|
4862
5088
|
popup.popupAlign = this.popupAlign;
|
|
4863
5089
|
}
|
|
4864
5090
|
}
|
|
5091
|
+
/**
|
|
5092
|
+
* @hidden
|
|
5093
|
+
*/
|
|
5094
|
+
ngOnDestroy() {
|
|
5095
|
+
if (this.documentMouseUpSub) {
|
|
5096
|
+
this.documentMouseUpSub();
|
|
5097
|
+
}
|
|
5098
|
+
}
|
|
4865
5099
|
/**
|
|
4866
5100
|
* @hidden
|
|
4867
5101
|
*/
|
|
@@ -4930,6 +5164,21 @@ class SplitButtonComponent extends ListButton {
|
|
|
4930
5164
|
this.blurWrapper();
|
|
4931
5165
|
}
|
|
4932
5166
|
}
|
|
5167
|
+
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer, containerService) {
|
|
5168
|
+
super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
|
|
5169
|
+
this.localization = localization;
|
|
5170
|
+
this.renderer = renderer;
|
|
5171
|
+
this._itemClick = this.itemClick;
|
|
5172
|
+
this._blur = this.onBlur;
|
|
5173
|
+
this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
|
|
5174
|
+
if (this.active) {
|
|
5175
|
+
this._active = false;
|
|
5176
|
+
}
|
|
5177
|
+
if (this.activeArrow) {
|
|
5178
|
+
this.activeArrow = false;
|
|
5179
|
+
}
|
|
5180
|
+
});
|
|
5181
|
+
}
|
|
4933
5182
|
/**
|
|
4934
5183
|
* Returns the current open state of the popup.
|
|
4935
5184
|
*/
|
|
@@ -4972,26 +5221,26 @@ class SplitButtonComponent extends ListButton {
|
|
|
4972
5221
|
}
|
|
4973
5222
|
}
|
|
4974
5223
|
}
|
|
4975
|
-
}
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
}
|
|
4991
|
-
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true, read: ElementRef }, { propertyName: "arrowButton", first: true, predicate: ["arrowButton"], descendants: true, read: ElementRef }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], exportAs: ["kendoSplitButton"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
5224
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonComponent, deps: [{ token: FocusService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: PopupContainerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5225
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitButtonComponent, isStandalone: true, selector: "kendo-splitbutton", inputs: { text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", type: "type", imageUrl: "imageUrl", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", disabled: "disabled", popupSettings: "popupSettings", tabIndex: "tabIndex", textField: "textField", data: "data", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", arrowButtonSvgIcon: "arrowButtonSvgIcon", buttonAttributes: "buttonAttributes" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)" }, properties: { "class.k-focus": "this.isFocused", "class.k-split-button": "this.widgetClasses", "class.k-button-group": "this.widgetClasses", "attr.dir": "this.dir" } }, providers: [
|
|
5226
|
+
FocusService,
|
|
5227
|
+
NavigationService,
|
|
5228
|
+
NAVIGATION_SETTINGS_PROVIDER,
|
|
5229
|
+
LocalizationService,
|
|
5230
|
+
{
|
|
5231
|
+
provide: L10N_PREFIX,
|
|
5232
|
+
useValue: 'kendo.splitbutton'
|
|
5233
|
+
},
|
|
5234
|
+
PopupContainerService,
|
|
5235
|
+
{
|
|
5236
|
+
provide: MultiTabStop,
|
|
5237
|
+
useExisting: forwardRef(() => SplitButtonComponent)
|
|
5238
|
+
}
|
|
5239
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoSplitButton"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
4992
5240
|
<ng-container kendoSplitButtonLocalizedMessages
|
|
4993
5241
|
i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
|
|
4994
|
-
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5242
|
+
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5243
|
+
>
|
|
4995
5244
|
</ng-container>
|
|
4996
5245
|
<button
|
|
4997
5246
|
kendoButton
|
|
@@ -5019,8 +5268,7 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
5019
5268
|
[attr.aria-label]="ariaLabel"
|
|
5020
5269
|
>
|
|
5021
5270
|
<span *ngIf="text" class="k-button-text">
|
|
5022
|
-
{{ text }}
|
|
5023
|
-
</span><ng-content></ng-content>
|
|
5271
|
+
{{ text }} </span><ng-content></ng-content>
|
|
5024
5272
|
</button>
|
|
5025
5273
|
<button kendoButton #arrowButton type="button"
|
|
5026
5274
|
class="k-split-button-arrow"
|
|
@@ -5055,8 +5303,9 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
5055
5303
|
</kendo-button-list>
|
|
5056
5304
|
</ng-template>
|
|
5057
5305
|
<ng-container #container></ng-container>
|
|
5058
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSplitButtonMessagesDirective, selector: "[kendoSplitButtonLocalizedMessages]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]
|
|
5059
|
-
|
|
5306
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSplitButtonMessagesDirective, selector: "[kendoSplitButtonLocalizedMessages]" }, { 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: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }] });
|
|
5307
|
+
}
|
|
5308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonComponent, decorators: [{
|
|
5060
5309
|
type: Component,
|
|
5061
5310
|
args: [{
|
|
5062
5311
|
exportAs: 'kendoSplitButton',
|
|
@@ -5079,7 +5328,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5079
5328
|
template: `
|
|
5080
5329
|
<ng-container kendoSplitButtonLocalizedMessages
|
|
5081
5330
|
i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
|
|
5082
|
-
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5331
|
+
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5332
|
+
>
|
|
5083
5333
|
</ng-container>
|
|
5084
5334
|
<button
|
|
5085
5335
|
kendoButton
|
|
@@ -5107,8 +5357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5107
5357
|
[attr.aria-label]="ariaLabel"
|
|
5108
5358
|
>
|
|
5109
5359
|
<span *ngIf="text" class="k-button-text">
|
|
5110
|
-
{{ text }}
|
|
5111
|
-
</span><ng-content></ng-content>
|
|
5360
|
+
{{ text }} </span><ng-content></ng-content>
|
|
5112
5361
|
</button>
|
|
5113
5362
|
<button kendoButton #arrowButton type="button"
|
|
5114
5363
|
class="k-split-button-arrow"
|
|
@@ -5177,8 +5426,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5177
5426
|
type: Input
|
|
5178
5427
|
}], data: [{
|
|
5179
5428
|
type: Input
|
|
5180
|
-
}], buttonClass: [{
|
|
5181
|
-
type: Input
|
|
5182
5429
|
}], arrowButtonClass: [{
|
|
5183
5430
|
type: Input
|
|
5184
5431
|
}], arrowButtonIcon: [{
|
|
@@ -5204,18 +5451,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5204
5451
|
}], itemTemplate: [{
|
|
5205
5452
|
type: ContentChild,
|
|
5206
5453
|
args: [ButtonItemTemplateDirective]
|
|
5207
|
-
}], button: [{
|
|
5208
|
-
type: ViewChild,
|
|
5209
|
-
args: ['button', { read: ElementRef }]
|
|
5210
|
-
}], arrowButton: [{
|
|
5211
|
-
type: ViewChild,
|
|
5212
|
-
args: ['arrowButton', { read: ElementRef }]
|
|
5213
|
-
}], popupTemplate: [{
|
|
5214
|
-
type: ViewChild,
|
|
5215
|
-
args: ['popupTemplate']
|
|
5216
|
-
}], containerRef: [{
|
|
5217
|
-
type: ViewChild,
|
|
5218
|
-
args: ['container', { read: ViewContainerRef }]
|
|
5219
5454
|
}], isFocused: [{
|
|
5220
5455
|
type: HostBinding,
|
|
5221
5456
|
args: ['class.k-focus']
|
|
@@ -5307,11 +5542,11 @@ const KENDO_BUTTONS = [
|
|
|
5307
5542
|
* - `ButtonComponent`—The Button component class.
|
|
5308
5543
|
*/
|
|
5309
5544
|
class ButtonGroupModule {
|
|
5545
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5546
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, imports: [ButtonComponent, ButtonGroupComponent], exports: [ButtonComponent, ButtonGroupComponent] });
|
|
5547
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, providers: [IconsService], imports: [ButtonComponent] });
|
|
5310
5548
|
}
|
|
5311
|
-
|
|
5312
|
-
ButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, imports: [ButtonComponent, ButtonGroupComponent], exports: [ButtonComponent, ButtonGroupComponent] });
|
|
5313
|
-
ButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, providers: [IconsService], imports: [KENDO_BUTTONGROUP] });
|
|
5314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, decorators: [{
|
|
5549
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, decorators: [{
|
|
5315
5550
|
type: NgModule,
|
|
5316
5551
|
args: [{
|
|
5317
5552
|
exports: [...KENDO_BUTTONGROUP],
|
|
@@ -5353,11 +5588,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5353
5588
|
* ```
|
|
5354
5589
|
*/
|
|
5355
5590
|
class ButtonModule {
|
|
5591
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5592
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
|
|
5593
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, providers: [IconsService], imports: [ButtonComponent] });
|
|
5356
5594
|
}
|
|
5357
|
-
|
|
5358
|
-
ButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
|
|
5359
|
-
ButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, providers: [IconsService], imports: [ButtonComponent] });
|
|
5360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, decorators: [{
|
|
5595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, decorators: [{
|
|
5361
5596
|
type: NgModule,
|
|
5362
5597
|
args: [{
|
|
5363
5598
|
imports: [ButtonComponent],
|
|
@@ -5399,11 +5634,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5399
5634
|
* ```
|
|
5400
5635
|
*/
|
|
5401
5636
|
class ButtonsModule {
|
|
5637
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5638
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, imports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent] });
|
|
5639
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [ButtonComponent, ButtonComponent, DropDownButtonComponent, ChipComponent, ChipComponent, FloatingActionButtonComponent, SplitButtonComponent] });
|
|
5402
5640
|
}
|
|
5403
|
-
|
|
5404
|
-
ButtonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ButtonsModule, imports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent] });
|
|
5405
|
-
ButtonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonsModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, SplitButtonComponent, SplitButtonCustomMessagesComponent] });
|
|
5406
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonsModule, decorators: [{
|
|
5641
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, decorators: [{
|
|
5407
5642
|
type: NgModule,
|
|
5408
5643
|
args: [{
|
|
5409
5644
|
imports: [...KENDO_BUTTONS],
|
|
@@ -5422,11 +5657,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5422
5657
|
* - `SplitButtonCustomMessagesComponent`—The SplitButton custom messages component class.
|
|
5423
5658
|
*/
|
|
5424
5659
|
class SplitButtonModule {
|
|
5660
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5661
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, imports: [SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [SplitButtonComponent, SplitButtonCustomMessagesComponent] });
|
|
5662
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [SplitButtonComponent] });
|
|
5425
5663
|
}
|
|
5426
|
-
|
|
5427
|
-
SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [SplitButtonComponent, SplitButtonCustomMessagesComponent] });
|
|
5428
|
-
SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [KENDO_SPLITBUTTON] });
|
|
5429
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, decorators: [{
|
|
5664
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, decorators: [{
|
|
5430
5665
|
type: NgModule,
|
|
5431
5666
|
args: [{
|
|
5432
5667
|
exports: [...KENDO_SPLITBUTTON],
|
|
@@ -5445,11 +5680,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5445
5680
|
* - `ButtonItemTemplateDirective`—The Button item template directive.
|
|
5446
5681
|
*/
|
|
5447
5682
|
class DropDownButtonModule {
|
|
5683
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5684
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, imports: [DropDownButtonComponent, ButtonItemTemplateDirective], exports: [DropDownButtonComponent, ButtonItemTemplateDirective] });
|
|
5685
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [DropDownButtonComponent] });
|
|
5448
5686
|
}
|
|
5449
|
-
|
|
5450
|
-
DropDownButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, imports: [DropDownButtonComponent, ButtonItemTemplateDirective], exports: [DropDownButtonComponent, ButtonItemTemplateDirective] });
|
|
5451
|
-
DropDownButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [DropDownButtonComponent] });
|
|
5452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, decorators: [{
|
|
5687
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, decorators: [{
|
|
5453
5688
|
type: NgModule,
|
|
5454
5689
|
args: [{
|
|
5455
5690
|
exports: [...KENDO_DROPDOWNBUTTON],
|
|
@@ -5465,15 +5700,15 @@ const EXPORTED_DIRECTIVES = [
|
|
|
5465
5700
|
];
|
|
5466
5701
|
//IMPORTANT: NgModule export kept for backwards compatibility
|
|
5467
5702
|
class ListModule {
|
|
5703
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5704
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ListModule, imports: [ListComponent,
|
|
5705
|
+
FocusableDirective,
|
|
5706
|
+
ButtonItemTemplateDirective], exports: [ListComponent,
|
|
5707
|
+
FocusableDirective,
|
|
5708
|
+
ButtonItemTemplateDirective] });
|
|
5709
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListModule, providers: [IconsService], imports: [ListComponent] });
|
|
5468
5710
|
}
|
|
5469
|
-
|
|
5470
|
-
ListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ListModule, imports: [ListComponent,
|
|
5471
|
-
FocusableDirective,
|
|
5472
|
-
ButtonItemTemplateDirective], exports: [ListComponent,
|
|
5473
|
-
FocusableDirective,
|
|
5474
|
-
ButtonItemTemplateDirective] });
|
|
5475
|
-
ListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListModule, providers: [IconsService], imports: [ListComponent] });
|
|
5476
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListModule, decorators: [{
|
|
5711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListModule, decorators: [{
|
|
5477
5712
|
type: NgModule,
|
|
5478
5713
|
args: [{
|
|
5479
5714
|
imports: [...EXPORTED_DIRECTIVES],
|
|
@@ -5512,11 +5747,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5512
5747
|
* ```
|
|
5513
5748
|
*/
|
|
5514
5749
|
class ChipModule {
|
|
5750
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5751
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, imports: [ChipComponent, ChipListComponent], exports: [ChipComponent, ChipListComponent] });
|
|
5752
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, providers: [IconsService], imports: [ChipComponent] });
|
|
5515
5753
|
}
|
|
5516
|
-
|
|
5517
|
-
ChipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, imports: [ChipComponent, ChipListComponent], exports: [ChipComponent, ChipListComponent] });
|
|
5518
|
-
ChipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, providers: [IconsService], imports: [KENDO_CHIPLIST] });
|
|
5519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, decorators: [{
|
|
5754
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, decorators: [{
|
|
5520
5755
|
type: NgModule,
|
|
5521
5756
|
args: [{
|
|
5522
5757
|
exports: [...KENDO_CHIPLIST],
|
|
@@ -5555,11 +5790,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5555
5790
|
* ```
|
|
5556
5791
|
*/
|
|
5557
5792
|
class FloatingActionButtonModule {
|
|
5793
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5794
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, imports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective], exports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective] });
|
|
5795
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [FloatingActionButtonComponent] });
|
|
5558
5796
|
}
|
|
5559
|
-
|
|
5560
|
-
FloatingActionButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, imports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective], exports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective] });
|
|
5561
|
-
FloatingActionButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [FloatingActionButtonComponent] });
|
|
5562
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, decorators: [{
|
|
5797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, decorators: [{
|
|
5563
5798
|
type: NgModule,
|
|
5564
5799
|
args: [{
|
|
5565
5800
|
exports: [...KENDO_FLOATINGACTIONBUTTON],
|