@progress/kendo-angular-buttons 17.0.0-develop.4 → 17.0.0-develop.40
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 -111
- 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 +132 -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}/index.mjs +0 -1
- 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/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 +215 -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 +1315 -1103
- 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 -1
- 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/listbutton/list.module.mjs +0 -33
- package/esm2020/splitbutton/localization/messages.mjs +0 -23
- package/fesm2015/progress-kendo-angular-buttons.mjs +0 -5589
- package/listbutton/list.module.d.ts +0 -13
- /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/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: 1730798799,
|
|
46
|
+
version: '17.0.0-develop.40',
|
|
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", "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,13 +658,7 @@ 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
|
-
type: HostBinding,
|
|
687
|
-
args: ['attr.aria-disabled']
|
|
688
|
-
}, {
|
|
689
662
|
type: HostBinding,
|
|
690
663
|
args: ['class.k-disabled']
|
|
691
664
|
}], classActive: [{
|
|
@@ -710,9 +683,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
710
683
|
* @hidden
|
|
711
684
|
*/
|
|
712
685
|
class PreventableEvent {
|
|
713
|
-
|
|
714
|
-
this.prevented = false;
|
|
715
|
-
}
|
|
686
|
+
prevented = false;
|
|
716
687
|
/**
|
|
717
688
|
* Prevents the default action for a specified event.
|
|
718
689
|
* In this way, the source component suppresses the built-in behavior that follows the event.
|
|
@@ -738,45 +709,34 @@ const tabindex = 'tabindex';
|
|
|
738
709
|
* Represents the Kendo UI ButtonGroup component for Angular.
|
|
739
710
|
*/
|
|
740
711
|
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
|
-
}
|
|
712
|
+
service;
|
|
713
|
+
renderer;
|
|
714
|
+
element;
|
|
715
|
+
/**
|
|
716
|
+
* By default, the ButtonGroup is enabled.
|
|
717
|
+
* To disable the whole group of buttons, set its `disabled` attribute to `true`.
|
|
718
|
+
*
|
|
719
|
+
* To disable a specific button, set its own `disabled` attribute to `true`
|
|
720
|
+
* and leave the `disabled` attribute of the ButtonGroup undefined.
|
|
721
|
+
* If you define the `disabled` attribute of the ButtonGroup, it will take
|
|
722
|
+
* precedence over the `disabled` attributes of the underlying buttons and they will be ignored.
|
|
723
|
+
*
|
|
724
|
+
* For more information on how to configure the Button, refer to
|
|
725
|
+
* its [API documentation]({% slug api_buttons_buttoncomponent %}).
|
|
726
|
+
*/
|
|
727
|
+
disabled;
|
|
728
|
+
/**
|
|
729
|
+
* The selection mode of the ButtonGroup.
|
|
730
|
+
* @default 'multiple'
|
|
731
|
+
*/
|
|
732
|
+
selection = 'multiple';
|
|
733
|
+
/**
|
|
734
|
+
* Sets the width of the ButtonGroup.
|
|
735
|
+
* If the width of the ButtonGroup is set:
|
|
736
|
+
* - The buttons resize automatically to fill the full width of the group wrapper.
|
|
737
|
+
* - The buttons acquire the same width.
|
|
738
|
+
*/
|
|
739
|
+
width;
|
|
780
740
|
/**
|
|
781
741
|
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
782
742
|
*/
|
|
@@ -787,15 +747,33 @@ class ButtonGroupComponent {
|
|
|
787
747
|
get tabIndex() {
|
|
788
748
|
return this._tabIndex;
|
|
789
749
|
}
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
750
|
+
/**
|
|
751
|
+
* When this option is set to `true` (default), the component is a single tab-stop,
|
|
752
|
+
* and focus is moved through the inner buttons via the arrow keys.
|
|
753
|
+
*
|
|
754
|
+
* When the option is set to `false`, the inner buttons are part of the natural tab sequence of the page.
|
|
755
|
+
*
|
|
756
|
+
* @default true
|
|
757
|
+
*/
|
|
758
|
+
navigable = true;
|
|
759
|
+
/**
|
|
760
|
+
* Fires every time keyboard navigation occurs.
|
|
761
|
+
*/
|
|
762
|
+
navigate = new EventEmitter();
|
|
763
|
+
buttons;
|
|
764
|
+
_tabIndex = 0;
|
|
765
|
+
currentTabIndex = 0;
|
|
766
|
+
lastFocusedIndex = -1;
|
|
767
|
+
direction;
|
|
768
|
+
subs = new Subscription();
|
|
769
|
+
wrapperClasses = true;
|
|
793
770
|
get disabledClass() {
|
|
794
771
|
return this.disabled;
|
|
795
772
|
}
|
|
796
773
|
get stretchedClass() {
|
|
797
774
|
return !!this.width;
|
|
798
775
|
}
|
|
776
|
+
role = 'group';
|
|
799
777
|
get dir() {
|
|
800
778
|
return this.direction;
|
|
801
779
|
}
|
|
@@ -808,6 +786,13 @@ class ButtonGroupComponent {
|
|
|
808
786
|
get wrapperTabIndex() {
|
|
809
787
|
return this.disabled ? undefined : this.navigable ? this.currentTabIndex : undefined;
|
|
810
788
|
}
|
|
789
|
+
constructor(service, localization, renderer, element) {
|
|
790
|
+
this.service = service;
|
|
791
|
+
this.renderer = renderer;
|
|
792
|
+
this.element = element;
|
|
793
|
+
validatePackage(packageMetadata);
|
|
794
|
+
this.subs.add(localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
795
|
+
}
|
|
811
796
|
ngOnInit() {
|
|
812
797
|
this.subs.add(this.service.buttonClicked$.subscribe((button) => {
|
|
813
798
|
let newSelectionValue;
|
|
@@ -948,19 +933,28 @@ class ButtonGroupComponent {
|
|
|
948
933
|
.pipe(filter(predicate))
|
|
949
934
|
.subscribe(handler));
|
|
950
935
|
}
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
{
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
936
|
+
focusHandler = () => {
|
|
937
|
+
this.currentTabIndex = -1;
|
|
938
|
+
this.defocus(this.buttons.toArray());
|
|
939
|
+
const firstFocusableIndex = this.buttons.toArray().findIndex(current => !current.disabled);
|
|
940
|
+
const index = this.lastFocusedIndex === -1 ? firstFocusableIndex : this.lastFocusedIndex;
|
|
941
|
+
this.focus(this.buttons.filter((_current, i) => {
|
|
942
|
+
return i === index;
|
|
943
|
+
}));
|
|
944
|
+
};
|
|
945
|
+
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 });
|
|
946
|
+
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: [
|
|
947
|
+
KendoButtonService,
|
|
948
|
+
LocalizationService,
|
|
949
|
+
{
|
|
950
|
+
provide: L10N_PREFIX,
|
|
951
|
+
useValue: 'kendo.buttongroup'
|
|
952
|
+
}
|
|
953
|
+
], queries: [{ propertyName: "buttons", predicate: ButtonComponent }], exportAs: ["kendoButtonGroup"], usesOnChanges: true, ngImport: i0, template: `
|
|
954
|
+
<ng-content select="[kendoButton]"></ng-content>
|
|
962
955
|
`, isInline: true });
|
|
963
|
-
|
|
956
|
+
}
|
|
957
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupComponent, decorators: [{
|
|
964
958
|
type: Component,
|
|
965
959
|
args: [{
|
|
966
960
|
exportAs: 'kendoButtonGroup',
|
|
@@ -974,7 +968,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
974
968
|
],
|
|
975
969
|
selector: 'kendo-buttongroup',
|
|
976
970
|
template: `
|
|
977
|
-
<ng-content select="[kendoButton]
|
|
971
|
+
<ng-content select="[kendoButton]"></ng-content>
|
|
978
972
|
`,
|
|
979
973
|
standalone: true
|
|
980
974
|
}]
|
|
@@ -996,7 +990,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
996
990
|
}], buttons: [{
|
|
997
991
|
type: ContentChildren,
|
|
998
992
|
args: [ButtonComponent]
|
|
999
|
-
}],
|
|
993
|
+
}], wrapperClasses: [{
|
|
1000
994
|
type: HostBinding,
|
|
1001
995
|
args: ['class.k-button-group']
|
|
1002
996
|
}], disabledClass: [{
|
|
@@ -1030,66 +1024,77 @@ const DEFAULT_FILL_MODE$2 = 'solid';
|
|
|
1030
1024
|
* Displays a Chip that represents an input, attribute or an action.
|
|
1031
1025
|
*/
|
|
1032
1026
|
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
|
-
|
|
1027
|
+
element;
|
|
1028
|
+
renderer;
|
|
1029
|
+
ngZone;
|
|
1030
|
+
localizationService;
|
|
1031
|
+
/**
|
|
1032
|
+
* Sets the label text of the Chip.
|
|
1033
|
+
*/
|
|
1034
|
+
label;
|
|
1035
|
+
/**
|
|
1036
|
+
* Defines the name for an existing icon in a Kendo UI theme.
|
|
1037
|
+
* The icon is rendered inside the Chip by a `span.k-icon` element.
|
|
1038
|
+
*/
|
|
1039
|
+
icon;
|
|
1040
|
+
/**
|
|
1041
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the Chip using
|
|
1042
|
+
* a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.
|
|
1043
|
+
*/
|
|
1044
|
+
svgIcon;
|
|
1045
|
+
/**
|
|
1046
|
+
* Defines a CSS class — or multiple classes separated by spaces —
|
|
1047
|
+
* which are applied to a span element.
|
|
1048
|
+
* Allows the usage of custom icons.
|
|
1049
|
+
*/
|
|
1050
|
+
iconClass;
|
|
1051
|
+
/**
|
|
1052
|
+
* Use these settings to render an avatar within the Chip.
|
|
1053
|
+
*/
|
|
1054
|
+
avatarSettings;
|
|
1055
|
+
/**
|
|
1056
|
+
* Specifies the selected state of the Chip.
|
|
1057
|
+
* @default false
|
|
1058
|
+
*/
|
|
1059
|
+
selected = false;
|
|
1060
|
+
/**
|
|
1061
|
+
* Specifies if the Chip will be removable or not.
|
|
1062
|
+
* If the property is set to `true`, the Chip renders a remove icon.
|
|
1063
|
+
* @default false
|
|
1064
|
+
*/
|
|
1065
|
+
removable = false;
|
|
1066
|
+
/**
|
|
1067
|
+
* Specifies a custom remove font icon class that will be rendered when the Chip is removable.
|
|
1068
|
+
* [see example]({% slug icons %})
|
|
1069
|
+
*/
|
|
1070
|
+
removeIcon;
|
|
1071
|
+
/**
|
|
1072
|
+
* Specifies a custom remove SVG icon that will be rendered when the Chip is removable.
|
|
1073
|
+
*/
|
|
1074
|
+
removeSvgIcon;
|
|
1075
|
+
/**
|
|
1076
|
+
* @hidden
|
|
1077
|
+
*
|
|
1078
|
+
* Determines whether the Chip has a menu.
|
|
1079
|
+
*/
|
|
1080
|
+
hasMenu = false;
|
|
1081
|
+
/**
|
|
1082
|
+
* @hidden
|
|
1083
|
+
*
|
|
1084
|
+
* Specifies a custom menu font icon class that will be rendered when the Chip has menu.
|
|
1085
|
+
*/
|
|
1086
|
+
menuIcon;
|
|
1087
|
+
/**
|
|
1088
|
+
* @hidden
|
|
1089
|
+
*
|
|
1090
|
+
* Specifies a custom menu SVG icon that will be rendered when the Chip has menu.
|
|
1091
|
+
*/
|
|
1092
|
+
menuSvgIcon;
|
|
1093
|
+
/**
|
|
1094
|
+
* If set to `true`, the Chip will be disabled.
|
|
1095
|
+
* @default false
|
|
1096
|
+
*/
|
|
1097
|
+
disabled = false;
|
|
1093
1098
|
/**
|
|
1094
1099
|
* The size property specifies the padding of the Chip
|
|
1095
1100
|
* ([see example]({% slug appearance_chip %}#toc-size)).
|
|
@@ -1165,8 +1170,24 @@ class ChipComponent {
|
|
|
1165
1170
|
get themeColor() {
|
|
1166
1171
|
return this._themeColor;
|
|
1167
1172
|
}
|
|
1173
|
+
/**
|
|
1174
|
+
* Fires each time the user clicks the remove icon of the Chip.
|
|
1175
|
+
*/
|
|
1176
|
+
remove = new EventEmitter();
|
|
1177
|
+
/**
|
|
1178
|
+
* @hidden
|
|
1179
|
+
*
|
|
1180
|
+
* Fires each time the user clicks the menu icon of the Chip.
|
|
1181
|
+
*/
|
|
1182
|
+
menuToggle = new EventEmitter();
|
|
1183
|
+
/**
|
|
1184
|
+
* Fires each time the user clicks the content of the Chip.
|
|
1185
|
+
*/
|
|
1186
|
+
contentClick = new EventEmitter();
|
|
1187
|
+
tabIndex = 0;
|
|
1188
|
+
hostClass = true;
|
|
1168
1189
|
get hasIconClass() {
|
|
1169
|
-
return Boolean(this.icon || this.iconClass || this.
|
|
1190
|
+
return Boolean(this.icon || this.iconClass || (this.avatarSettings && !isObjectEmpty(this.avatarSettings)));
|
|
1170
1191
|
}
|
|
1171
1192
|
get disabledClass() {
|
|
1172
1193
|
return this.disabled;
|
|
@@ -1177,6 +1198,32 @@ class ChipComponent {
|
|
|
1177
1198
|
get focusedClass() {
|
|
1178
1199
|
return this.focused;
|
|
1179
1200
|
}
|
|
1201
|
+
/**
|
|
1202
|
+
* @hidden
|
|
1203
|
+
*/
|
|
1204
|
+
direction;
|
|
1205
|
+
/**
|
|
1206
|
+
* @hidden
|
|
1207
|
+
*/
|
|
1208
|
+
defaultRemoveIcon = xCircleIcon;
|
|
1209
|
+
/**
|
|
1210
|
+
* @hidden
|
|
1211
|
+
*/
|
|
1212
|
+
defaultMenuIcon = moreVerticalIcon;
|
|
1213
|
+
_size = 'medium';
|
|
1214
|
+
_rounded = 'medium';
|
|
1215
|
+
_fillMode = 'solid';
|
|
1216
|
+
_themeColor = 'base';
|
|
1217
|
+
focused = false;
|
|
1218
|
+
subs = new Subscription();
|
|
1219
|
+
constructor(element, renderer, ngZone, localizationService) {
|
|
1220
|
+
this.element = element;
|
|
1221
|
+
this.renderer = renderer;
|
|
1222
|
+
this.ngZone = ngZone;
|
|
1223
|
+
this.localizationService = localizationService;
|
|
1224
|
+
validatePackage(packageMetadata);
|
|
1225
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
1226
|
+
}
|
|
1180
1227
|
ngOnInit() {
|
|
1181
1228
|
this.subs.add(this.localizationService.changes
|
|
1182
1229
|
.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
@@ -1205,23 +1252,16 @@ class ChipComponent {
|
|
|
1205
1252
|
* @hidden
|
|
1206
1253
|
*/
|
|
1207
1254
|
get kendoIconClass() {
|
|
1208
|
-
this.verifyIconSettings([this.iconClass
|
|
1255
|
+
this.verifyIconSettings([this.iconClass]);
|
|
1209
1256
|
return `k-i-${this.icon}`;
|
|
1210
1257
|
}
|
|
1211
1258
|
/**
|
|
1212
1259
|
* @hidden
|
|
1213
1260
|
*/
|
|
1214
1261
|
get customIconClass() {
|
|
1215
|
-
this.verifyIconSettings([this.icon
|
|
1262
|
+
this.verifyIconSettings([this.icon]);
|
|
1216
1263
|
return this.iconClass;
|
|
1217
1264
|
}
|
|
1218
|
-
/**
|
|
1219
|
-
* @hidden
|
|
1220
|
-
*/
|
|
1221
|
-
get chipAvatarClass() {
|
|
1222
|
-
this.verifyIconSettings([this.icon, this.iconClass]);
|
|
1223
|
-
return this.avatarClass;
|
|
1224
|
-
}
|
|
1225
1265
|
/**
|
|
1226
1266
|
* @hidden
|
|
1227
1267
|
*/
|
|
@@ -1332,15 +1372,14 @@ class ChipComponent {
|
|
|
1332
1372
|
});
|
|
1333
1373
|
}
|
|
1334
1374
|
}
|
|
1335
|
-
}
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
], usesOnChanges: true, ngImport: i0, template: `
|
|
1375
|
+
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 });
|
|
1376
|
+
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: [
|
|
1377
|
+
LocalizationService,
|
|
1378
|
+
{
|
|
1379
|
+
provide: L10N_PREFIX,
|
|
1380
|
+
useValue: 'kendo.chip'
|
|
1381
|
+
}
|
|
1382
|
+
], usesOnChanges: true, ngImport: i0, template: `
|
|
1344
1383
|
<kendo-icon-wrapper
|
|
1345
1384
|
*ngIf="icon || svgIcon"
|
|
1346
1385
|
size="small"
|
|
@@ -1353,11 +1392,19 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
1353
1392
|
size="small"
|
|
1354
1393
|
innerCssClass="k-chip-icon"
|
|
1355
1394
|
[customFontClass]="customIconClass"></kendo-icon-wrapper>
|
|
1356
|
-
|
|
1357
1395
|
<span
|
|
1358
|
-
*ngIf="
|
|
1359
|
-
class="k-chip-avatar k-avatar k-avatar-
|
|
1360
|
-
|
|
1396
|
+
*ngIf="avatarSettings"
|
|
1397
|
+
class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
|
|
1398
|
+
[ngStyle]="avatarSettings.cssStyle">
|
|
1399
|
+
<ng-container *ngIf="avatarSettings?.imageSrc">
|
|
1400
|
+
<span class="k-avatar-image">
|
|
1401
|
+
<img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
|
|
1402
|
+
</span>
|
|
1403
|
+
</ng-container>
|
|
1404
|
+
|
|
1405
|
+
<ng-container *ngIf="avatarSettings?.initials">
|
|
1406
|
+
<span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
|
|
1407
|
+
</ng-container>
|
|
1361
1408
|
</span>
|
|
1362
1409
|
|
|
1363
1410
|
<span class="k-chip-content">
|
|
@@ -1387,8 +1434,9 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
1387
1434
|
[customFontClass]="removeIcon"></kendo-icon-wrapper>
|
|
1388
1435
|
</span>
|
|
1389
1436
|
</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
|
-
|
|
1437
|
+
`, 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"] }] });
|
|
1438
|
+
}
|
|
1439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipComponent, decorators: [{
|
|
1392
1440
|
type: Component,
|
|
1393
1441
|
args: [{
|
|
1394
1442
|
selector: 'kendo-chip',
|
|
@@ -1405,11 +1453,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1405
1453
|
size="small"
|
|
1406
1454
|
innerCssClass="k-chip-icon"
|
|
1407
1455
|
[customFontClass]="customIconClass"></kendo-icon-wrapper>
|
|
1408
|
-
|
|
1409
1456
|
<span
|
|
1410
|
-
*ngIf="
|
|
1411
|
-
class="k-chip-avatar k-avatar k-avatar-
|
|
1412
|
-
|
|
1457
|
+
*ngIf="avatarSettings"
|
|
1458
|
+
class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
|
|
1459
|
+
[ngStyle]="avatarSettings.cssStyle">
|
|
1460
|
+
<ng-container *ngIf="avatarSettings?.imageSrc">
|
|
1461
|
+
<span class="k-avatar-image">
|
|
1462
|
+
<img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
|
|
1463
|
+
</span>
|
|
1464
|
+
</ng-container>
|
|
1465
|
+
|
|
1466
|
+
<ng-container *ngIf="avatarSettings?.initials">
|
|
1467
|
+
<span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
|
|
1468
|
+
</ng-container>
|
|
1413
1469
|
</span>
|
|
1414
1470
|
|
|
1415
1471
|
<span class="k-chip-content">
|
|
@@ -1448,7 +1504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1448
1504
|
}
|
|
1449
1505
|
],
|
|
1450
1506
|
standalone: true,
|
|
1451
|
-
imports: [NgIf, IconWrapperComponent, NgClass]
|
|
1507
|
+
imports: [NgIf, NgStyle, IconWrapperComponent, NgClass]
|
|
1452
1508
|
}]
|
|
1453
1509
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.LocalizationService }]; }, propDecorators: { label: [{
|
|
1454
1510
|
type: Input
|
|
@@ -1458,7 +1514,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1458
1514
|
type: Input
|
|
1459
1515
|
}], iconClass: [{
|
|
1460
1516
|
type: Input
|
|
1461
|
-
}],
|
|
1517
|
+
}], avatarSettings: [{
|
|
1462
1518
|
type: Input
|
|
1463
1519
|
}], selected: [{
|
|
1464
1520
|
type: Input
|
|
@@ -1517,41 +1573,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1517
1573
|
}] } });
|
|
1518
1574
|
|
|
1519
1575
|
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
|
-
}
|
|
1576
|
+
localizationService;
|
|
1577
|
+
renderer;
|
|
1578
|
+
element;
|
|
1579
|
+
ngZone;
|
|
1580
|
+
hostClass = true;
|
|
1581
|
+
orientation = 'horizontal';
|
|
1582
|
+
/**
|
|
1583
|
+
* @hidden
|
|
1584
|
+
*/
|
|
1585
|
+
direction;
|
|
1586
|
+
/**
|
|
1587
|
+
* Sets the selection mode of the ChipList.
|
|
1588
|
+
*
|
|
1589
|
+
* The available values are:
|
|
1590
|
+
* * `none` (default)
|
|
1591
|
+
* * `single`
|
|
1592
|
+
* * `multiple`
|
|
1593
|
+
*/
|
|
1594
|
+
selection = 'none';
|
|
1555
1595
|
/**
|
|
1556
1596
|
* The size property specifies the gap between the Chips in the ChipList
|
|
1557
1597
|
* ([see example]({% slug appearance_chiplist %}#toc-size)).
|
|
@@ -1570,12 +1610,29 @@ class ChipListComponent {
|
|
|
1570
1610
|
get size() {
|
|
1571
1611
|
return this._size;
|
|
1572
1612
|
}
|
|
1613
|
+
/**
|
|
1614
|
+
* Fires each time when the ChipList selection is changed.
|
|
1615
|
+
*/
|
|
1616
|
+
selectedChange = new EventEmitter();
|
|
1617
|
+
/**
|
|
1618
|
+
* Fires each time the user clicks on the remove icon of the Chip.
|
|
1619
|
+
*/
|
|
1620
|
+
remove = new EventEmitter();
|
|
1621
|
+
chips;
|
|
1573
1622
|
get single() {
|
|
1574
1623
|
return this.selection === 'single';
|
|
1575
1624
|
}
|
|
1576
1625
|
get multiple() {
|
|
1577
1626
|
return this.selection === 'multiple';
|
|
1578
1627
|
}
|
|
1628
|
+
/**
|
|
1629
|
+
* @hidden
|
|
1630
|
+
*/
|
|
1631
|
+
role = 'listbox';
|
|
1632
|
+
dynamicRTLSubscription;
|
|
1633
|
+
_size = 'medium';
|
|
1634
|
+
subs = new Subscription();
|
|
1635
|
+
_navigable = true;
|
|
1579
1636
|
/**
|
|
1580
1637
|
* @hidden
|
|
1581
1638
|
*/
|
|
@@ -1601,10 +1658,10 @@ class ChipListComponent {
|
|
|
1601
1658
|
}
|
|
1602
1659
|
}
|
|
1603
1660
|
/**
|
|
1604
|
-
*
|
|
1605
|
-
* are part of the default tabbing sequence of the page.
|
|
1661
|
+
* By default, keyboard navigation is available through arrow keys and roving tabindex.
|
|
1662
|
+
* When set to `false`, all chips are part of the default tabbing sequence of the page.
|
|
1606
1663
|
*
|
|
1607
|
-
* @default
|
|
1664
|
+
* @default true
|
|
1608
1665
|
*/
|
|
1609
1666
|
set navigable(value) {
|
|
1610
1667
|
this._navigable = value;
|
|
@@ -1614,6 +1671,15 @@ class ChipListComponent {
|
|
|
1614
1671
|
get navigable() {
|
|
1615
1672
|
return this._navigable;
|
|
1616
1673
|
}
|
|
1674
|
+
currentActiveIndex = 0;
|
|
1675
|
+
constructor(localizationService, renderer, element, ngZone) {
|
|
1676
|
+
this.localizationService = localizationService;
|
|
1677
|
+
this.renderer = renderer;
|
|
1678
|
+
this.element = element;
|
|
1679
|
+
this.ngZone = ngZone;
|
|
1680
|
+
validatePackage(packageMetadata);
|
|
1681
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
1682
|
+
}
|
|
1617
1683
|
ngOnInit() {
|
|
1618
1684
|
this.dynamicRTLSubscription = this.localizationService.changes
|
|
1619
1685
|
.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
@@ -1755,18 +1821,18 @@ class ChipListComponent {
|
|
|
1755
1821
|
this.currentActiveIndex = Math.max(this.chips.length - 1, 0);
|
|
1756
1822
|
}
|
|
1757
1823
|
}
|
|
1758
|
-
}
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
}
|
|
1766
|
-
], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
|
|
1824
|
+
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 });
|
|
1825
|
+
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: [
|
|
1826
|
+
LocalizationService,
|
|
1827
|
+
{
|
|
1828
|
+
provide: L10N_PREFIX,
|
|
1829
|
+
useValue: 'kendo.chiplist'
|
|
1830
|
+
}
|
|
1831
|
+
], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
|
|
1767
1832
|
<ng-content></ng-content>
|
|
1768
1833
|
`, isInline: true });
|
|
1769
|
-
|
|
1834
|
+
}
|
|
1835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipListComponent, decorators: [{
|
|
1770
1836
|
type: Component,
|
|
1771
1837
|
args: [{
|
|
1772
1838
|
selector: 'kendo-chiplist, kendo-chip-list',
|
|
@@ -1872,13 +1938,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1872
1938
|
* For more examples, refer to the article on the [DropDownButton templates](slug:itemstemplates_dropdownbutton).
|
|
1873
1939
|
*/
|
|
1874
1940
|
class ButtonItemTemplateDirective {
|
|
1941
|
+
templateRef;
|
|
1875
1942
|
constructor(templateRef) {
|
|
1876
1943
|
this.templateRef = templateRef;
|
|
1877
1944
|
}
|
|
1945
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1946
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ButtonItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]", ngImport: i0 });
|
|
1878
1947
|
}
|
|
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: [{
|
|
1948
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, decorators: [{
|
|
1882
1949
|
type: Directive,
|
|
1883
1950
|
args: [{
|
|
1884
1951
|
selector: '[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]',
|
|
@@ -1890,9 +1957,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1890
1957
|
* @hidden
|
|
1891
1958
|
*/
|
|
1892
1959
|
class FocusService {
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
}
|
|
1960
|
+
onFocus = new EventEmitter();
|
|
1961
|
+
focusedIndex;
|
|
1896
1962
|
isFocused(index) {
|
|
1897
1963
|
return index === this.focused;
|
|
1898
1964
|
}
|
|
@@ -1913,10 +1979,10 @@ class FocusService {
|
|
|
1913
1979
|
this.focusedIndex = index;
|
|
1914
1980
|
this.onFocus.emit(index);
|
|
1915
1981
|
}
|
|
1982
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1983
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService });
|
|
1916
1984
|
}
|
|
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: [{
|
|
1985
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, decorators: [{
|
|
1920
1986
|
type: Injectable
|
|
1921
1987
|
}] });
|
|
1922
1988
|
|
|
@@ -1956,15 +2022,16 @@ const NAVIGATION_CONFIG = new InjectionToken('navigation.config');
|
|
|
1956
2022
|
* @hidden
|
|
1957
2023
|
*/
|
|
1958
2024
|
class NavigationService {
|
|
2025
|
+
navigate = new EventEmitter();
|
|
2026
|
+
open = new EventEmitter();
|
|
2027
|
+
close = new EventEmitter();
|
|
2028
|
+
enter = new EventEmitter();
|
|
2029
|
+
enterpress = new EventEmitter();
|
|
2030
|
+
enterup = new EventEmitter();
|
|
2031
|
+
tab = new EventEmitter();
|
|
2032
|
+
esc = new EventEmitter();
|
|
2033
|
+
useLeftRightArrows;
|
|
1959
2034
|
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
2035
|
this.useLeftRightArrows = config.useLeftRightArrows;
|
|
1969
2036
|
}
|
|
1970
2037
|
process(args) {
|
|
@@ -2042,10 +2109,10 @@ class NavigationService {
|
|
|
2042
2109
|
return args.current !== args.end ? args.current + args.step : args.end;
|
|
2043
2110
|
}
|
|
2044
2111
|
}
|
|
2112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: NAVIGATION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2113
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
|
|
2045
2114
|
}
|
|
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: [{
|
|
2115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, decorators: [{
|
|
2049
2116
|
type: Injectable
|
|
2050
2117
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
2051
2118
|
type: Inject,
|
|
@@ -2056,68 +2123,263 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2056
2123
|
* @hidden
|
|
2057
2124
|
*/
|
|
2058
2125
|
class PopupContainerService {
|
|
2126
|
+
container;
|
|
2127
|
+
template;
|
|
2128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2129
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService });
|
|
2059
2130
|
}
|
|
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: [{
|
|
2131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, decorators: [{
|
|
2063
2132
|
type: Injectable
|
|
2064
2133
|
}] });
|
|
2065
2134
|
|
|
2066
2135
|
/**
|
|
2067
2136
|
* @hidden
|
|
2068
2137
|
*/
|
|
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);
|
|
2138
|
+
class FocusableDirective {
|
|
2139
|
+
focusService;
|
|
2140
|
+
renderer;
|
|
2141
|
+
index;
|
|
2142
|
+
element;
|
|
2143
|
+
subs = new Subscription();
|
|
2144
|
+
constructor(focusService, elementRef, renderer) {
|
|
2110
2145
|
this.focusService = focusService;
|
|
2111
|
-
this.
|
|
2112
|
-
this.
|
|
2113
|
-
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
2146
|
+
this.renderer = renderer;
|
|
2147
|
+
this.element = elementRef.nativeElement;
|
|
2114
2148
|
this.subscribeEvents();
|
|
2115
2149
|
}
|
|
2150
|
+
ngOnInit() {
|
|
2151
|
+
if (this.index === this.focusService.focused) {
|
|
2152
|
+
this.renderer.addClass(this.element, 'k-focus');
|
|
2153
|
+
}
|
|
2154
|
+
else {
|
|
2155
|
+
this.renderer.removeClass(this.element, 'k-focus');
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2116
2158
|
/**
|
|
2117
|
-
*
|
|
2159
|
+
* @hidden
|
|
2118
2160
|
*/
|
|
2119
|
-
|
|
2120
|
-
|
|
2161
|
+
ngOnDestroy() {
|
|
2162
|
+
this.subs.unsubscribe();
|
|
2163
|
+
}
|
|
2164
|
+
subscribeEvents() {
|
|
2165
|
+
if (!isDocumentAvailable()) {
|
|
2166
|
+
return;
|
|
2167
|
+
}
|
|
2168
|
+
this.subs.add(this.focusService.onFocus.subscribe((index) => {
|
|
2169
|
+
if (this.index === index) {
|
|
2170
|
+
this.renderer.addClass(this.element, 'k-focus');
|
|
2171
|
+
this.renderer.setAttribute(this.element, 'tabindex', '0');
|
|
2172
|
+
this.element.focus();
|
|
2173
|
+
}
|
|
2174
|
+
else {
|
|
2175
|
+
this.renderer.setAttribute(this.element, 'tabindex', '-1');
|
|
2176
|
+
this.renderer.removeClass(this.element, 'k-focus');
|
|
2177
|
+
}
|
|
2178
|
+
}));
|
|
2179
|
+
}
|
|
2180
|
+
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 });
|
|
2181
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FocusableDirective, isStandalone: true, selector: "[kendoButtonFocusable]", inputs: { index: "index" }, ngImport: i0 });
|
|
2182
|
+
}
|
|
2183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusableDirective, decorators: [{
|
|
2184
|
+
type: Directive,
|
|
2185
|
+
args: [{
|
|
2186
|
+
selector: '[kendoButtonFocusable]',
|
|
2187
|
+
standalone: true
|
|
2188
|
+
}]
|
|
2189
|
+
}], ctorParameters: function () { return [{ type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { index: [{
|
|
2190
|
+
type: Input
|
|
2191
|
+
}] } });
|
|
2192
|
+
|
|
2193
|
+
/**
|
|
2194
|
+
* @hidden
|
|
2195
|
+
*/
|
|
2196
|
+
class ListComponent {
|
|
2197
|
+
data;
|
|
2198
|
+
textField;
|
|
2199
|
+
itemTemplate;
|
|
2200
|
+
onItemClick = new EventEmitter();
|
|
2201
|
+
onItemBlur = new EventEmitter();
|
|
2202
|
+
set size(size) {
|
|
2203
|
+
if (size) {
|
|
2204
|
+
this.sizeClass = `k-menu-group-${SIZES[size]}`;
|
|
2205
|
+
}
|
|
2206
|
+
else {
|
|
2207
|
+
this.sizeClass = '';
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
sizeClass = '';
|
|
2211
|
+
constructor() {
|
|
2212
|
+
validatePackage(packageMetadata);
|
|
2213
|
+
}
|
|
2214
|
+
getText(dataItem) {
|
|
2215
|
+
if (dataItem) {
|
|
2216
|
+
return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
|
|
2217
|
+
}
|
|
2218
|
+
return undefined;
|
|
2219
|
+
}
|
|
2220
|
+
getIconClasses(dataItem) {
|
|
2221
|
+
const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;
|
|
2222
|
+
const classes = {};
|
|
2223
|
+
classes[icon || dataItem.iconClass] = true;
|
|
2224
|
+
return classes;
|
|
2225
|
+
}
|
|
2226
|
+
onClick(index) {
|
|
2227
|
+
this.onItemClick.emit(index);
|
|
2228
|
+
}
|
|
2229
|
+
onBlur() {
|
|
2230
|
+
this.onItemBlur.emit();
|
|
2231
|
+
}
|
|
2232
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2233
|
+
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: `
|
|
2234
|
+
<ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
|
|
2235
|
+
<li kendoButtonFocusable
|
|
2236
|
+
*ngFor="let dataItem of data; let index = index;"
|
|
2237
|
+
[index]="index"
|
|
2238
|
+
tabindex="-1"
|
|
2239
|
+
class="k-item k-menu-item"
|
|
2240
|
+
role="listitem"
|
|
2241
|
+
[attr.aria-disabled]="dataItem.disabled ? true : false"
|
|
2242
|
+
(click)="$event.stopImmediatePropagation(); onClick(index);"
|
|
2243
|
+
(blur)="onBlur()">
|
|
2244
|
+
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
2245
|
+
<span
|
|
2246
|
+
class="k-link k-menu-link"
|
|
2247
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2248
|
+
[ngClass]="dataItem.cssClass">
|
|
2249
|
+
<ng-template
|
|
2250
|
+
[templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
|
|
2251
|
+
></ng-template>
|
|
2252
|
+
</span>
|
|
2253
|
+
</ng-template>
|
|
2254
|
+
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
2255
|
+
<span
|
|
2256
|
+
class="k-link k-menu-link"
|
|
2257
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2258
|
+
[ngClass]="dataItem.cssClass">
|
|
2259
|
+
<kendo-icon-wrapper
|
|
2260
|
+
*ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
|
|
2261
|
+
[name]="dataItem.icon"
|
|
2262
|
+
[svgIcon]="dataItem.svgIcon"
|
|
2263
|
+
[customFontClass]="dataItem.iconClass"
|
|
2264
|
+
></kendo-icon-wrapper>
|
|
2265
|
+
<img
|
|
2266
|
+
*ngIf="dataItem.imageUrl"
|
|
2267
|
+
class="k-image"
|
|
2268
|
+
[src]="dataItem.imageUrl"
|
|
2269
|
+
[alt]="dataItem.imageAlt"
|
|
2270
|
+
>
|
|
2271
|
+
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
2272
|
+
{{ getText(dataItem) }}
|
|
2273
|
+
</span>
|
|
2274
|
+
</span>
|
|
2275
|
+
</ng-template>
|
|
2276
|
+
</li>
|
|
2277
|
+
</ul>
|
|
2278
|
+
`, 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"] }] });
|
|
2279
|
+
}
|
|
2280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
|
|
2281
|
+
type: Component,
|
|
2282
|
+
args: [{
|
|
2283
|
+
selector: 'kendo-button-list',
|
|
2284
|
+
template: `
|
|
2285
|
+
<ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
|
|
2286
|
+
<li kendoButtonFocusable
|
|
2287
|
+
*ngFor="let dataItem of data; let index = index;"
|
|
2288
|
+
[index]="index"
|
|
2289
|
+
tabindex="-1"
|
|
2290
|
+
class="k-item k-menu-item"
|
|
2291
|
+
role="listitem"
|
|
2292
|
+
[attr.aria-disabled]="dataItem.disabled ? true : false"
|
|
2293
|
+
(click)="$event.stopImmediatePropagation(); onClick(index);"
|
|
2294
|
+
(blur)="onBlur()">
|
|
2295
|
+
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
2296
|
+
<span
|
|
2297
|
+
class="k-link k-menu-link"
|
|
2298
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2299
|
+
[ngClass]="dataItem.cssClass">
|
|
2300
|
+
<ng-template
|
|
2301
|
+
[templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
|
|
2302
|
+
></ng-template>
|
|
2303
|
+
</span>
|
|
2304
|
+
</ng-template>
|
|
2305
|
+
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
2306
|
+
<span
|
|
2307
|
+
class="k-link k-menu-link"
|
|
2308
|
+
[class.k-disabled]="dataItem.disabled"
|
|
2309
|
+
[ngClass]="dataItem.cssClass">
|
|
2310
|
+
<kendo-icon-wrapper
|
|
2311
|
+
*ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
|
|
2312
|
+
[name]="dataItem.icon"
|
|
2313
|
+
[svgIcon]="dataItem.svgIcon"
|
|
2314
|
+
[customFontClass]="dataItem.iconClass"
|
|
2315
|
+
></kendo-icon-wrapper>
|
|
2316
|
+
<img
|
|
2317
|
+
*ngIf="dataItem.imageUrl"
|
|
2318
|
+
class="k-image"
|
|
2319
|
+
[src]="dataItem.imageUrl"
|
|
2320
|
+
[alt]="dataItem.imageAlt"
|
|
2321
|
+
>
|
|
2322
|
+
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
2323
|
+
{{ getText(dataItem) }}
|
|
2324
|
+
</span>
|
|
2325
|
+
</span>
|
|
2326
|
+
</ng-template>
|
|
2327
|
+
</li>
|
|
2328
|
+
</ul>
|
|
2329
|
+
`,
|
|
2330
|
+
standalone: true,
|
|
2331
|
+
imports: [NgClass, NgFor, FocusableDirective, NgIf, TemplateContextDirective, IconWrapperComponent]
|
|
2332
|
+
}]
|
|
2333
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
2334
|
+
type: Input
|
|
2335
|
+
}], textField: [{
|
|
2336
|
+
type: Input
|
|
2337
|
+
}], itemTemplate: [{
|
|
2338
|
+
type: Input
|
|
2339
|
+
}], onItemClick: [{
|
|
2340
|
+
type: Output
|
|
2341
|
+
}], onItemBlur: [{
|
|
2342
|
+
type: Output
|
|
2343
|
+
}], size: [{
|
|
2344
|
+
type: Input
|
|
2345
|
+
}] } });
|
|
2346
|
+
|
|
2347
|
+
/**
|
|
2348
|
+
* @hidden
|
|
2349
|
+
*/
|
|
2350
|
+
class ListButton extends MultiTabStop {
|
|
2351
|
+
focusService;
|
|
2352
|
+
navigationService;
|
|
2353
|
+
wrapperRef;
|
|
2354
|
+
_zone;
|
|
2355
|
+
popupService;
|
|
2356
|
+
elRef;
|
|
2357
|
+
cdr;
|
|
2358
|
+
containerService;
|
|
2359
|
+
listId = guid();
|
|
2360
|
+
buttonId = guid();
|
|
2361
|
+
_data;
|
|
2362
|
+
_open = false;
|
|
2363
|
+
_disabled = false;
|
|
2364
|
+
_active = false;
|
|
2365
|
+
_popupSettings = { animate: true, popupClass: '' };
|
|
2366
|
+
_isFocused = false;
|
|
2367
|
+
_itemClick;
|
|
2368
|
+
_blur;
|
|
2369
|
+
wrapper;
|
|
2370
|
+
subs = new Subscription();
|
|
2371
|
+
direction;
|
|
2372
|
+
popupRef;
|
|
2373
|
+
popupSubs = new Subscription();
|
|
2374
|
+
button;
|
|
2375
|
+
buttonList;
|
|
2376
|
+
popupTemplate;
|
|
2377
|
+
container;
|
|
2378
|
+
/**
|
|
2379
|
+
* Sets the disabled state of the DropDownButton.
|
|
2380
|
+
*/
|
|
2381
|
+
set disabled(value) {
|
|
2382
|
+
if (value && this.openState) {
|
|
2121
2383
|
this.openState = false;
|
|
2122
2384
|
}
|
|
2123
2385
|
this._disabled = value;
|
|
@@ -2125,6 +2387,31 @@ class ListButton extends MultiTabStop {
|
|
|
2125
2387
|
get disabled() {
|
|
2126
2388
|
return this._disabled;
|
|
2127
2389
|
}
|
|
2390
|
+
/**
|
|
2391
|
+
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
2392
|
+
*/
|
|
2393
|
+
tabIndex = 0;
|
|
2394
|
+
/**
|
|
2395
|
+
* The CSS classes that will be rendered on the main button.
|
|
2396
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
2397
|
+
*/
|
|
2398
|
+
buttonClass;
|
|
2399
|
+
/**
|
|
2400
|
+
* Fires each time the popup is about to open.
|
|
2401
|
+
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
2402
|
+
*/
|
|
2403
|
+
open = new EventEmitter();
|
|
2404
|
+
/**
|
|
2405
|
+
* Fires each time the popup is about to close.
|
|
2406
|
+
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
2407
|
+
*/
|
|
2408
|
+
close = new EventEmitter();
|
|
2409
|
+
/**
|
|
2410
|
+
* Needed by the kendoToggleButtonTabStop directive
|
|
2411
|
+
*
|
|
2412
|
+
* @hidden
|
|
2413
|
+
*/
|
|
2414
|
+
escape = new EventEmitter();
|
|
2128
2415
|
/**
|
|
2129
2416
|
* @hidden
|
|
2130
2417
|
*/
|
|
@@ -2173,6 +2460,24 @@ class ListButton extends MultiTabStop {
|
|
|
2173
2460
|
}
|
|
2174
2461
|
return align;
|
|
2175
2462
|
}
|
|
2463
|
+
isClosePrevented = false;
|
|
2464
|
+
constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
|
|
2465
|
+
super();
|
|
2466
|
+
this.focusService = focusService;
|
|
2467
|
+
this.navigationService = navigationService;
|
|
2468
|
+
this.wrapperRef = wrapperRef;
|
|
2469
|
+
this._zone = _zone;
|
|
2470
|
+
this.popupService = popupService;
|
|
2471
|
+
this.elRef = elRef;
|
|
2472
|
+
this.cdr = cdr;
|
|
2473
|
+
this.containerService = containerService;
|
|
2474
|
+
validatePackage(packageMetadata);
|
|
2475
|
+
this.focusService = focusService;
|
|
2476
|
+
this.navigationService = navigationService;
|
|
2477
|
+
this.wrapper = wrapperRef.nativeElement;
|
|
2478
|
+
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
2479
|
+
this.subscribeEvents();
|
|
2480
|
+
}
|
|
2176
2481
|
ngOnChanges(changes) {
|
|
2177
2482
|
if (isChanged("popupSettings", changes) && isPresent(this.popupRef)) {
|
|
2178
2483
|
const popup = this.popupRef.popup.instance;
|
|
@@ -2433,15 +2738,27 @@ class ListButton extends MultiTabStop {
|
|
|
2433
2738
|
this.isClosePrevented = false;
|
|
2434
2739
|
}
|
|
2435
2740
|
}
|
|
2741
|
+
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 });
|
|
2742
|
+
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
2743
|
}
|
|
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: [{
|
|
2744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListButton, decorators: [{
|
|
2440
2745
|
type: Component,
|
|
2441
2746
|
args: [{
|
|
2442
2747
|
template: ''
|
|
2443
2748
|
}]
|
|
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: {
|
|
2749
|
+
}], 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: [{
|
|
2750
|
+
type: ViewChild,
|
|
2751
|
+
args: ['button', { read: ElementRef }]
|
|
2752
|
+
}], buttonList: [{
|
|
2753
|
+
type: ViewChild,
|
|
2754
|
+
args: ['buttonList']
|
|
2755
|
+
}], popupTemplate: [{
|
|
2756
|
+
type: ViewChild,
|
|
2757
|
+
args: ['popupTemplate']
|
|
2758
|
+
}], container: [{
|
|
2759
|
+
type: ViewChild,
|
|
2760
|
+
args: ['container', { read: ViewContainerRef }]
|
|
2761
|
+
}], disabled: [{
|
|
2445
2762
|
type: Input
|
|
2446
2763
|
}], tabIndex: [{
|
|
2447
2764
|
type: Input
|
|
@@ -2457,211 +2774,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2457
2774
|
type: Input
|
|
2458
2775
|
}] } });
|
|
2459
2776
|
|
|
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
2777
|
const NAVIGATION_SETTINGS$2 = {
|
|
2666
2778
|
useLeftRightArrows: true
|
|
2667
2779
|
};
|
|
@@ -2699,89 +2811,34 @@ const DEFAULT_FILL_MODE$1 = 'solid';
|
|
|
2699
2811
|
* ```
|
|
2700
2812
|
*/
|
|
2701
2813
|
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
|
-
}
|
|
2814
|
+
containerService;
|
|
2815
|
+
renderer;
|
|
2816
|
+
/**
|
|
2817
|
+
* Allows showing the default arrow icon or providing alternative one instead.
|
|
2818
|
+
* @default false
|
|
2819
|
+
*/
|
|
2820
|
+
arrowIcon = false;
|
|
2821
|
+
/**
|
|
2822
|
+
* Defines the name of an existing icon in the Kendo UI theme.
|
|
2823
|
+
*/
|
|
2824
|
+
icon = '';
|
|
2825
|
+
/**
|
|
2826
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the button.
|
|
2827
|
+
*/
|
|
2828
|
+
svgIcon;
|
|
2829
|
+
/**
|
|
2830
|
+
* Defines the list of CSS classes which are used for styling the Button with custom icons.
|
|
2831
|
+
*/
|
|
2832
|
+
iconClass = '';
|
|
2833
|
+
/**
|
|
2834
|
+
* Defines a URL for styling the button with a custom image.
|
|
2835
|
+
*/
|
|
2836
|
+
imageUrl = '';
|
|
2837
|
+
/**
|
|
2838
|
+
* Sets the data item field that represents the item text.
|
|
2839
|
+
* If the data contains only primitive values, do not define it.
|
|
2840
|
+
*/
|
|
2841
|
+
textField;
|
|
2785
2842
|
/**
|
|
2786
2843
|
* Sets or gets the data of the DropDownButton.
|
|
2787
2844
|
*
|
|
@@ -2793,6 +2850,29 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2793
2850
|
get data() {
|
|
2794
2851
|
return this._data;
|
|
2795
2852
|
}
|
|
2853
|
+
/**
|
|
2854
|
+
* The size property specifies the padding of the DropDownButton
|
|
2855
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
|
|
2856
|
+
*
|
|
2857
|
+
* The possible values are:
|
|
2858
|
+
* * `small`
|
|
2859
|
+
* * `medium` (default)
|
|
2860
|
+
* * `large`
|
|
2861
|
+
* * `none`
|
|
2862
|
+
*/
|
|
2863
|
+
size = 'medium';
|
|
2864
|
+
/**
|
|
2865
|
+
* The rounded property specifies the border radius of the DropDownButton
|
|
2866
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
|
|
2867
|
+
*
|
|
2868
|
+
* The possible values are:
|
|
2869
|
+
* * `small`
|
|
2870
|
+
* * `medium` (default)
|
|
2871
|
+
* * `large`
|
|
2872
|
+
* * `full`
|
|
2873
|
+
* * `none`
|
|
2874
|
+
*/
|
|
2875
|
+
rounded = 'medium';
|
|
2796
2876
|
/**
|
|
2797
2877
|
* The fillMode property specifies the background and border styles of the DropDownButton
|
|
2798
2878
|
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
|
|
@@ -2810,6 +2890,26 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2810
2890
|
get fillMode() {
|
|
2811
2891
|
return this._fillMode;
|
|
2812
2892
|
}
|
|
2893
|
+
/**
|
|
2894
|
+
* The DropDownButton allows you to specify predefined theme colors.
|
|
2895
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
2896
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
|
|
2897
|
+
*
|
|
2898
|
+
* The possible values are:
|
|
2899
|
+
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
2900
|
+
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
2901
|
+
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
2902
|
+
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
2903
|
+
* * `info`—Applies coloring based on the `info` theme color.
|
|
2904
|
+
* * `success`— Applies coloring based on the `success` theme color.
|
|
2905
|
+
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
2906
|
+
* * `error`— Applies coloring based on the `error` theme color.
|
|
2907
|
+
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
2908
|
+
* * `light`— Applies coloring based on the `light` theme color.
|
|
2909
|
+
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
2910
|
+
* * `none` —Removes the default CSS class (no class would be rendered).
|
|
2911
|
+
*/
|
|
2912
|
+
themeColor = 'base';
|
|
2813
2913
|
/**
|
|
2814
2914
|
* Sets attributes to the main button.
|
|
2815
2915
|
*/
|
|
@@ -2821,12 +2921,21 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2821
2921
|
get buttonAttributes() {
|
|
2822
2922
|
return this._buttonAttributes;
|
|
2823
2923
|
}
|
|
2924
|
+
/**
|
|
2925
|
+
* 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.
|
|
2926
|
+
*/
|
|
2927
|
+
itemClick = new EventEmitter();
|
|
2928
|
+
/**
|
|
2929
|
+
* Fires each time the DropDownButton gets focused.
|
|
2930
|
+
*/
|
|
2931
|
+
onFocus = new EventEmitter();
|
|
2932
|
+
/**
|
|
2933
|
+
* Fires each time the DropDownButton gets blurred.
|
|
2934
|
+
*/
|
|
2935
|
+
onBlur = new EventEmitter();
|
|
2824
2936
|
get focused() {
|
|
2825
2937
|
return this._isFocused && !this._disabled;
|
|
2826
2938
|
}
|
|
2827
|
-
get widgetClasses() {
|
|
2828
|
-
return true;
|
|
2829
|
-
}
|
|
2830
2939
|
get dir() {
|
|
2831
2940
|
return this.direction;
|
|
2832
2941
|
}
|
|
@@ -2836,6 +2945,10 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2836
2945
|
get active() {
|
|
2837
2946
|
return this._active;
|
|
2838
2947
|
}
|
|
2948
|
+
itemTemplate;
|
|
2949
|
+
_fillMode = DEFAULT_FILL_MODE$1;
|
|
2950
|
+
_buttonAttributes = null;
|
|
2951
|
+
documentMouseUpSub;
|
|
2839
2952
|
/**
|
|
2840
2953
|
* @hidden
|
|
2841
2954
|
*/
|
|
@@ -2905,10 +3018,28 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2905
3018
|
this.blurWrapper();
|
|
2906
3019
|
}
|
|
2907
3020
|
}
|
|
3021
|
+
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService, renderer) {
|
|
3022
|
+
super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
|
|
3023
|
+
this.containerService = containerService;
|
|
3024
|
+
this.renderer = renderer;
|
|
3025
|
+
this._itemClick = this.itemClick;
|
|
3026
|
+
this._blur = this.onBlur;
|
|
3027
|
+
zone.runOutsideAngular(() => {
|
|
3028
|
+
this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
|
|
3029
|
+
if (this.active) {
|
|
3030
|
+
zone.run(() => this._active = false);
|
|
3031
|
+
}
|
|
3032
|
+
});
|
|
3033
|
+
});
|
|
3034
|
+
}
|
|
2908
3035
|
ngAfterViewInit() {
|
|
2909
3036
|
this.containerService.container = this.container;
|
|
2910
3037
|
this.containerService.template = this.popupTemplate;
|
|
2911
3038
|
this.handleButtonAttributes(this.buttonAttributes);
|
|
3039
|
+
const arrowWrapper = this.button.nativeElement.querySelector('.k-button-arrow');
|
|
3040
|
+
if (arrowWrapper) {
|
|
3041
|
+
this.renderer.addClass(arrowWrapper, 'k-menu-button-arrow');
|
|
3042
|
+
}
|
|
2912
3043
|
}
|
|
2913
3044
|
/**
|
|
2914
3045
|
* @hidden
|
|
@@ -2946,23 +3077,31 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2946
3077
|
}
|
|
2947
3078
|
}
|
|
2948
3079
|
}
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
3080
|
+
/**
|
|
3081
|
+
* @hidden
|
|
3082
|
+
*/
|
|
3083
|
+
ngOnDestroy() {
|
|
3084
|
+
if (this.documentMouseUpSub) {
|
|
3085
|
+
this.documentMouseUpSub();
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
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 });
|
|
3089
|
+
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: [
|
|
3090
|
+
FocusService,
|
|
3091
|
+
NavigationService,
|
|
3092
|
+
NAVIGATION_SETTINGS_PROVIDER$2,
|
|
3093
|
+
LocalizationService,
|
|
3094
|
+
{
|
|
3095
|
+
provide: L10N_PREFIX,
|
|
3096
|
+
useValue: 'kendo.dropdownbutton'
|
|
3097
|
+
},
|
|
3098
|
+
PopupContainerService
|
|
3099
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoDropDownButton"], usesInheritance: true, ngImport: i0, template: `
|
|
2962
3100
|
<button kendoButton #button
|
|
2963
3101
|
type="button"
|
|
2964
3102
|
[id]="buttonId"
|
|
2965
3103
|
[tabindex]="componentTabIndex"
|
|
3104
|
+
class="k-menu-button"
|
|
2966
3105
|
[class.k-active]="active"
|
|
2967
3106
|
[disabled]="disabled"
|
|
2968
3107
|
[icon]="icon"
|
|
@@ -3001,8 +3140,9 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
3001
3140
|
</kendo-button-list>
|
|
3002
3141
|
</ng-template>
|
|
3003
3142
|
<ng-container #container></ng-container>
|
|
3004
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]
|
|
3005
|
-
|
|
3143
|
+
`, 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"] }] });
|
|
3144
|
+
}
|
|
3145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonComponent, decorators: [{
|
|
3006
3146
|
type: Component,
|
|
3007
3147
|
args: [{
|
|
3008
3148
|
exportAs: 'kendoDropDownButton',
|
|
@@ -3023,6 +3163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3023
3163
|
type="button"
|
|
3024
3164
|
[id]="buttonId"
|
|
3025
3165
|
[tabindex]="componentTabIndex"
|
|
3166
|
+
class="k-menu-button"
|
|
3026
3167
|
[class.k-active]="active"
|
|
3027
3168
|
[disabled]="disabled"
|
|
3028
3169
|
[icon]="icon"
|
|
@@ -3100,27 +3241,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3100
3241
|
}], focused: [{
|
|
3101
3242
|
type: HostBinding,
|
|
3102
3243
|
args: ['class.k-focus']
|
|
3103
|
-
}], widgetClasses: [{
|
|
3104
|
-
type: HostBinding,
|
|
3105
|
-
args: ['class.k-dropdown-button']
|
|
3106
3244
|
}], dir: [{
|
|
3107
3245
|
type: HostBinding,
|
|
3108
3246
|
args: ['attr.dir']
|
|
3109
3247
|
}], itemTemplate: [{
|
|
3110
3248
|
type: ContentChild,
|
|
3111
3249
|
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
3250
|
}], keydown: [{
|
|
3125
3251
|
type: HostListener,
|
|
3126
3252
|
args: ['keydown', ['$event']]
|
|
@@ -3206,13 +3332,14 @@ function closeAnimation(animationSettings) {
|
|
|
3206
3332
|
* ([see example]({% slug templates_floatingactionbutton %}#toc-dial-item-template)).
|
|
3207
3333
|
*/
|
|
3208
3334
|
class DialItemTemplateDirective {
|
|
3335
|
+
templateRef;
|
|
3209
3336
|
constructor(templateRef) {
|
|
3210
3337
|
this.templateRef = templateRef;
|
|
3211
3338
|
}
|
|
3339
|
+
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 });
|
|
3340
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DialItemTemplateDirective, isStandalone: true, selector: "[kendoDialItemTemplate]", ngImport: i0 });
|
|
3212
3341
|
}
|
|
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: [{
|
|
3342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemTemplateDirective, decorators: [{
|
|
3216
3343
|
type: Directive,
|
|
3217
3344
|
args: [{
|
|
3218
3345
|
selector: '[kendoDialItemTemplate]',
|
|
@@ -3229,13 +3356,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3229
3356
|
* ([see example]({% slug templates_floatingactionbutton %}#toc-floatingactionbutton-template)).
|
|
3230
3357
|
*/
|
|
3231
3358
|
class FloatingActionButtonTemplateDirective {
|
|
3359
|
+
templateRef;
|
|
3232
3360
|
constructor(templateRef) {
|
|
3233
3361
|
this.templateRef = templateRef;
|
|
3234
3362
|
}
|
|
3363
|
+
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 });
|
|
3364
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FloatingActionButtonTemplateDirective, isStandalone: true, selector: "[kendoFloatingActionButtonTemplate]", ngImport: i0 });
|
|
3235
3365
|
}
|
|
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: [{
|
|
3366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonTemplateDirective, decorators: [{
|
|
3239
3367
|
type: Directive,
|
|
3240
3368
|
args: [{
|
|
3241
3369
|
selector: '[kendoFloatingActionButtonTemplate]',
|
|
@@ -3249,13 +3377,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3249
3377
|
* @hidden
|
|
3250
3378
|
*/
|
|
3251
3379
|
class DialItemComponent {
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
this.role = 'menuitem';
|
|
3258
|
-
}
|
|
3380
|
+
element;
|
|
3381
|
+
renderer;
|
|
3382
|
+
localisationService;
|
|
3383
|
+
hostClass = true;
|
|
3384
|
+
role = 'menuitem';
|
|
3259
3385
|
get disabledClass() {
|
|
3260
3386
|
return this.item.disabled;
|
|
3261
3387
|
}
|
|
@@ -3266,6 +3392,18 @@ class DialItemComponent {
|
|
|
3266
3392
|
get indexAttr() {
|
|
3267
3393
|
return this.index;
|
|
3268
3394
|
}
|
|
3395
|
+
cssClass;
|
|
3396
|
+
cssStyle;
|
|
3397
|
+
isFocused;
|
|
3398
|
+
index;
|
|
3399
|
+
item;
|
|
3400
|
+
dialItemTemplate;
|
|
3401
|
+
align;
|
|
3402
|
+
constructor(element, renderer, localisationService) {
|
|
3403
|
+
this.element = element;
|
|
3404
|
+
this.renderer = renderer;
|
|
3405
|
+
this.localisationService = localisationService;
|
|
3406
|
+
}
|
|
3269
3407
|
get iconClasses() {
|
|
3270
3408
|
const classes = [];
|
|
3271
3409
|
if (this.item.iconClass) {
|
|
@@ -3296,9 +3434,8 @@ class DialItemComponent {
|
|
|
3296
3434
|
};
|
|
3297
3435
|
return directions[dir][align];
|
|
3298
3436
|
}
|
|
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: `
|
|
3437
|
+
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 });
|
|
3438
|
+
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
3439
|
<ng-template *ngIf="dialItemTemplate"
|
|
3303
3440
|
[ngTemplateOutlet]="dialItemTemplate"
|
|
3304
3441
|
[ngTemplateOutletContext]="{ $implicit: item, index: index, isFocused: isFocused }"
|
|
@@ -3315,7 +3452,8 @@ DialItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
3315
3452
|
[svgIcon]="item.svgIcon"></kendo-icon-wrapper>
|
|
3316
3453
|
</ng-container>
|
|
3317
3454
|
`, 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
|
-
|
|
3455
|
+
}
|
|
3456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemComponent, decorators: [{
|
|
3319
3457
|
type: Component,
|
|
3320
3458
|
args: [{
|
|
3321
3459
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -3381,28 +3519,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3381
3519
|
* @hidden
|
|
3382
3520
|
*/
|
|
3383
3521
|
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
|
-
}
|
|
3522
|
+
focusService;
|
|
3523
|
+
cdr;
|
|
3524
|
+
hostClass = true;
|
|
3391
3525
|
get bottomClass() {
|
|
3392
3526
|
return this.align.vertical === 'top' || this.align.vertical === 'middle';
|
|
3393
3527
|
}
|
|
3394
3528
|
get topClass() {
|
|
3395
3529
|
return this.align.vertical === 'bottom';
|
|
3396
3530
|
}
|
|
3531
|
+
dialItems;
|
|
3532
|
+
dialItemTemplate;
|
|
3533
|
+
align;
|
|
3534
|
+
subscriptions = new Subscription();
|
|
3535
|
+
constructor(focusService, cdr) {
|
|
3536
|
+
this.focusService = focusService;
|
|
3537
|
+
this.cdr = cdr;
|
|
3538
|
+
this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));
|
|
3539
|
+
}
|
|
3397
3540
|
isFocused(index) {
|
|
3398
3541
|
return this.focusService.isFocused(index);
|
|
3399
3542
|
}
|
|
3400
3543
|
ngOnDestroy() {
|
|
3401
3544
|
this.subscriptions.unsubscribe();
|
|
3402
3545
|
}
|
|
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: `
|
|
3546
|
+
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 });
|
|
3547
|
+
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
3548
|
<ng-container *ngFor='let item of dialItems; let idx = index'>
|
|
3407
3549
|
<li
|
|
3408
3550
|
kendoButtonFocusable
|
|
@@ -3418,7 +3560,8 @@ DialListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
3418
3560
|
</li>
|
|
3419
3561
|
</ng-container>
|
|
3420
3562
|
`, 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
|
-
|
|
3563
|
+
}
|
|
3564
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialListComponent, decorators: [{
|
|
3422
3565
|
type: Component,
|
|
3423
3566
|
args: [{
|
|
3424
3567
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -3491,101 +3634,25 @@ const DEFAULT_THEME_COLOR = 'primary';
|
|
|
3491
3634
|
*
|
|
3492
3635
|
*/
|
|
3493
3636
|
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
|
-
}
|
|
3637
|
+
renderer;
|
|
3638
|
+
element;
|
|
3639
|
+
focusService;
|
|
3640
|
+
navigationService;
|
|
3641
|
+
ngZone;
|
|
3642
|
+
popupService;
|
|
3643
|
+
builder;
|
|
3644
|
+
localizationService;
|
|
3583
3645
|
get fixedClass() {
|
|
3584
3646
|
return this.positionMode === 'fixed';
|
|
3585
3647
|
}
|
|
3586
3648
|
get absoluteClass() {
|
|
3587
3649
|
return this.positionMode === 'absolute';
|
|
3588
3650
|
}
|
|
3651
|
+
direction;
|
|
3652
|
+
button;
|
|
3653
|
+
popupTemplate;
|
|
3654
|
+
dialItemTemplate;
|
|
3655
|
+
fabTemplate;
|
|
3589
3656
|
/**
|
|
3590
3657
|
* Specifies the theme color of the FloatingActionButton
|
|
3591
3658
|
* ([see example](slug:appearance_floatingactionbutton#toc-theme-colors)).
|
|
@@ -3688,12 +3755,131 @@ class FloatingActionButtonComponent {
|
|
|
3688
3755
|
get offset() {
|
|
3689
3756
|
return this._offset;
|
|
3690
3757
|
}
|
|
3758
|
+
/**
|
|
3759
|
+
* Specifies the positionMode of the FloatingActionButton
|
|
3760
|
+
* ([see example](slug:positioning_floatingactionbutton#toc-position-mode)).
|
|
3761
|
+
*
|
|
3762
|
+
* * The possible values are:
|
|
3763
|
+
* * `absolute`—Positions the FloatingActionButton absolutely to its first positioned parent element.
|
|
3764
|
+
* * `fixed` (Default)—Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.
|
|
3765
|
+
*/
|
|
3766
|
+
positionMode = 'fixed';
|
|
3767
|
+
/**
|
|
3768
|
+
* Defines the name of an existing icon in a Kendo UI theme.
|
|
3769
|
+
* If provided, the icon will be rendered inside the FloatingActionButton by a `span.k-icon` element.
|
|
3770
|
+
*/
|
|
3771
|
+
icon;
|
|
3772
|
+
/**
|
|
3773
|
+
* Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the FloatingActionButton.
|
|
3774
|
+
*/
|
|
3775
|
+
svgIcon;
|
|
3776
|
+
/**
|
|
3777
|
+
* Defines a CSS class or multiple classes separated by spaces which are applied to a `span` element.
|
|
3778
|
+
* Allows the usage of custom icons, rendered inside the FloatingActionButton by a `span` element.
|
|
3779
|
+
*/
|
|
3780
|
+
iconClass;
|
|
3781
|
+
/**
|
|
3782
|
+
* The CSS classes that will be rendered on the main button.
|
|
3783
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
3784
|
+
*/
|
|
3785
|
+
buttonClass;
|
|
3786
|
+
/**
|
|
3787
|
+
* The CSS classes that will be rendered on the dial items `ul` element.
|
|
3788
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
3789
|
+
*/
|
|
3790
|
+
dialClass;
|
|
3791
|
+
/**
|
|
3792
|
+
* Specifies the text content of the FloatingActionButton.
|
|
3793
|
+
*/
|
|
3794
|
+
text;
|
|
3795
|
+
/**
|
|
3796
|
+
* Specifies the animation settings of the FloatingActionButton dial items.
|
|
3797
|
+
* ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).
|
|
3798
|
+
*
|
|
3799
|
+
* The possible values are:
|
|
3800
|
+
* * Boolean
|
|
3801
|
+
* * (Default) `true`—Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.
|
|
3802
|
+
* * `false`
|
|
3803
|
+
* * `DialItemAnimation`
|
|
3804
|
+
* * `duration`—Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.
|
|
3805
|
+
* * `gap`—Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.
|
|
3806
|
+
*/
|
|
3807
|
+
dialItemAnimation = true;
|
|
3808
|
+
/**
|
|
3809
|
+
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.
|
|
3810
|
+
*/
|
|
3811
|
+
tabIndex = 0;
|
|
3812
|
+
/**
|
|
3813
|
+
* Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.
|
|
3814
|
+
*/
|
|
3815
|
+
dialItems = [];
|
|
3816
|
+
/**
|
|
3817
|
+
* Fires each time the FloatingActionButton gets blurred.
|
|
3818
|
+
*/
|
|
3819
|
+
onBlur = new EventEmitter();
|
|
3820
|
+
/**
|
|
3821
|
+
* Fires each time the FloatingActionButton gets focused.
|
|
3822
|
+
*/
|
|
3823
|
+
onFocus = new EventEmitter();
|
|
3824
|
+
/**
|
|
3825
|
+
* Fires each time a dial item is clicked.
|
|
3826
|
+
*/
|
|
3827
|
+
dialItemClick = new EventEmitter();
|
|
3828
|
+
/**
|
|
3829
|
+
* Fires each time the popup is about to open.
|
|
3830
|
+
* This event is preventable. If you cancel the event, the popup will remain closed
|
|
3831
|
+
* ([more information and example](slug:events_floatingactionbutton)).
|
|
3832
|
+
*/
|
|
3833
|
+
open = new EventEmitter();
|
|
3834
|
+
/**
|
|
3835
|
+
* Fires each time the popup is about to close.
|
|
3836
|
+
* This event is preventable. If you cancel the event, the popup will remain open
|
|
3837
|
+
* ([more information and example](slug:events_floatingactionbutton)).
|
|
3838
|
+
*/
|
|
3839
|
+
close = new EventEmitter();
|
|
3691
3840
|
/**
|
|
3692
3841
|
* @hidden
|
|
3693
3842
|
*/
|
|
3694
3843
|
get componentTabIndex() {
|
|
3695
3844
|
return this.disabled ? (-1) : this.tabIndex;
|
|
3696
3845
|
}
|
|
3846
|
+
/**
|
|
3847
|
+
* @hidden
|
|
3848
|
+
*/
|
|
3849
|
+
id = `k-${guid()}`;
|
|
3850
|
+
/**
|
|
3851
|
+
* @hidden
|
|
3852
|
+
*/
|
|
3853
|
+
dialListId = `k-dial-list-${guid()}`;
|
|
3854
|
+
_themeColor = DEFAULT_THEME_COLOR;
|
|
3855
|
+
_size = DEFAULT_SIZE;
|
|
3856
|
+
_rounded = DEFAULT_ROUNDED$1;
|
|
3857
|
+
_disabled = false;
|
|
3858
|
+
_align = { horizontal: 'end', vertical: 'bottom' };
|
|
3859
|
+
_offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
|
|
3860
|
+
subscriptions = new Subscription();
|
|
3861
|
+
popupMouseDownListener;
|
|
3862
|
+
rtl = false;
|
|
3863
|
+
animationEnd = new EventEmitter();
|
|
3864
|
+
popupRef;
|
|
3865
|
+
initialSetup = true;
|
|
3866
|
+
focusChangedProgrammatically = false;
|
|
3867
|
+
constructor(renderer, element, focusService, navigationService, ngZone, popupService, builder, localizationService) {
|
|
3868
|
+
this.renderer = renderer;
|
|
3869
|
+
this.element = element;
|
|
3870
|
+
this.focusService = focusService;
|
|
3871
|
+
this.navigationService = navigationService;
|
|
3872
|
+
this.ngZone = ngZone;
|
|
3873
|
+
this.popupService = popupService;
|
|
3874
|
+
this.builder = builder;
|
|
3875
|
+
this.localizationService = localizationService;
|
|
3876
|
+
validatePackage(packageMetadata);
|
|
3877
|
+
this.subscribeNavigationEvents();
|
|
3878
|
+
this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
|
|
3879
|
+
this.rtl = rtl;
|
|
3880
|
+
this.direction = this.rtl ? 'rtl' : 'ltr';
|
|
3881
|
+
}));
|
|
3882
|
+
}
|
|
3697
3883
|
ngAfterViewInit() {
|
|
3698
3884
|
['size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));
|
|
3699
3885
|
this.renderer.addClass(this.element.nativeElement, this.alignClass());
|
|
@@ -4149,18 +4335,17 @@ class FloatingActionButtonComponent {
|
|
|
4149
4335
|
}
|
|
4150
4336
|
return DEFAULT_DURATION;
|
|
4151
4337
|
}
|
|
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: `
|
|
4338
|
+
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 });
|
|
4339
|
+
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: [
|
|
4340
|
+
FocusService,
|
|
4341
|
+
NavigationService,
|
|
4342
|
+
NAVIGATION_SETTINGS_PROVIDER$1,
|
|
4343
|
+
LocalizationService,
|
|
4344
|
+
{
|
|
4345
|
+
provide: L10N_PREFIX,
|
|
4346
|
+
useValue: 'kendo.floatingactionbutton'
|
|
4347
|
+
}
|
|
4348
|
+
], 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
4349
|
<button
|
|
4165
4350
|
#button
|
|
4166
4351
|
[attr.id]="id"
|
|
@@ -4218,7 +4403,8 @@ FloatingActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
4218
4403
|
</ul>
|
|
4219
4404
|
</ng-template>
|
|
4220
4405
|
`, 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
|
-
|
|
4406
|
+
}
|
|
4407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonComponent, decorators: [{
|
|
4222
4408
|
type: Component,
|
|
4223
4409
|
args: [{
|
|
4224
4410
|
selector: 'kendo-floatingactionbutton',
|
|
@@ -4365,10 +4551,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4365
4551
|
* @hidden
|
|
4366
4552
|
*/
|
|
4367
4553
|
class Messages extends ComponentMessages {
|
|
4554
|
+
/**
|
|
4555
|
+
* The text for the SplitButton aria-label.
|
|
4556
|
+
*
|
|
4557
|
+
* The text for the aria-label consists of a two-part message - the text of the SplitButton and a localizable string.
|
|
4558
|
+
* For a SplitButton with text 'Reply', the default aria-label will be 'Reply splitbutton'.
|
|
4559
|
+
*
|
|
4560
|
+
* To allow reordering of the SplitButton text and the localizable part, the splitButtonLabel accepts a string with a
|
|
4561
|
+
* placeholder for the button text - e.g. 'splitbutton for {buttonText}'. The '{buttonText}' placeholder will be replaced
|
|
4562
|
+
* internally with the current SplitButton text, and the resulting aria-label will be rendered as 'splitbutton for Reply'.
|
|
4563
|
+
*
|
|
4564
|
+
* @example
|
|
4565
|
+
*
|
|
4566
|
+
* ```ts-no-run
|
|
4567
|
+
* <kendo-splitbutton>
|
|
4568
|
+
* <kendo-splitbutton-messages
|
|
4569
|
+
* splitButtonLabel="splitbutton for {buttonText}"
|
|
4570
|
+
* >
|
|
4571
|
+
* </kendo-splitbutton-messages>
|
|
4572
|
+
* </kendo-splitbutton>
|
|
4573
|
+
* ```
|
|
4574
|
+
*/
|
|
4575
|
+
splitButtonLabel;
|
|
4576
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
4577
|
+
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
4578
|
}
|
|
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: [{
|
|
4579
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
|
|
4372
4580
|
type: Directive,
|
|
4373
4581
|
args: [{
|
|
4374
4582
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -4383,6 +4591,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4383
4591
|
* ([see example]({% slug rtl_buttons %}).
|
|
4384
4592
|
*/
|
|
4385
4593
|
class SplitButtonCustomMessagesComponent extends Messages {
|
|
4594
|
+
service;
|
|
4386
4595
|
constructor(service) {
|
|
4387
4596
|
super();
|
|
4388
4597
|
this.service = service;
|
|
@@ -4390,13 +4599,13 @@ class SplitButtonCustomMessagesComponent extends Messages {
|
|
|
4390
4599
|
get override() {
|
|
4391
4600
|
return true;
|
|
4392
4601
|
}
|
|
4602
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4603
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitButtonCustomMessagesComponent, isStandalone: true, selector: "kendo-splitbutton-messages", providers: [{
|
|
4604
|
+
provide: Messages,
|
|
4605
|
+
useExisting: forwardRef(() => SplitButtonCustomMessagesComponent)
|
|
4606
|
+
}], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
4393
4607
|
}
|
|
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: [{
|
|
4608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, decorators: [{
|
|
4400
4609
|
type: Component,
|
|
4401
4610
|
args: [{
|
|
4402
4611
|
providers: [{
|
|
@@ -4413,19 +4622,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4413
4622
|
* @hidden
|
|
4414
4623
|
*/
|
|
4415
4624
|
class LocalizedSplitButtonMessagesDirective extends Messages {
|
|
4625
|
+
service;
|
|
4416
4626
|
constructor(service) {
|
|
4417
4627
|
super();
|
|
4418
4628
|
this.service = service;
|
|
4419
4629
|
}
|
|
4630
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4631
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedSplitButtonMessagesDirective, isStandalone: true, selector: "[kendoSplitButtonLocalizedMessages]", providers: [
|
|
4632
|
+
{
|
|
4633
|
+
provide: Messages,
|
|
4634
|
+
useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective)
|
|
4635
|
+
}
|
|
4636
|
+
], usesInheritance: true, ngImport: i0 });
|
|
4420
4637
|
}
|
|
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: [{
|
|
4638
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, decorators: [{
|
|
4429
4639
|
type: Directive,
|
|
4430
4640
|
args: [{
|
|
4431
4641
|
providers: [
|
|
@@ -4490,154 +4700,46 @@ const DEFAULT_FILL_MODE = 'solid';
|
|
|
4490
4700
|
* ```
|
|
4491
4701
|
*/
|
|
4492
4702
|
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
|
-
}
|
|
4703
|
+
localization;
|
|
4704
|
+
renderer;
|
|
4705
|
+
/**
|
|
4706
|
+
* Sets the text of the SplitButton.
|
|
4707
|
+
*/
|
|
4708
|
+
text = '';
|
|
4709
|
+
/**
|
|
4710
|
+
* Defines an icon to be rendered next to the button text.
|
|
4711
|
+
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
4712
|
+
*/
|
|
4713
|
+
icon = '';
|
|
4714
|
+
/**
|
|
4715
|
+
* Defines an SVGIcon to be rendered next to the button text.
|
|
4716
|
+
*/
|
|
4717
|
+
svgIcon;
|
|
4718
|
+
/**
|
|
4719
|
+
* Defines an icon with a custom CSS class to be rendered next to the button text
|
|
4720
|
+
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
4721
|
+
*/
|
|
4722
|
+
iconClass;
|
|
4723
|
+
/**
|
|
4724
|
+
* Defines the type attribute of the main button
|
|
4725
|
+
*/
|
|
4726
|
+
type = 'button';
|
|
4727
|
+
/**
|
|
4728
|
+
* Defines the location of an image to be displayed next to the button text
|
|
4729
|
+
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
4730
|
+
*/
|
|
4731
|
+
imageUrl = '';
|
|
4732
|
+
/**
|
|
4733
|
+
* The size property specifies the padding of the SplitButton
|
|
4734
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
|
|
4735
|
+
*
|
|
4736
|
+
* The possible values are:
|
|
4737
|
+
* * `small`
|
|
4738
|
+
* * `medium` (default)
|
|
4739
|
+
* * `large`
|
|
4740
|
+
* * `none`
|
|
4741
|
+
*/
|
|
4742
|
+
size = 'medium';
|
|
4641
4743
|
/**
|
|
4642
4744
|
* The rounded property specifies the border radius of the SplitButton
|
|
4643
4745
|
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
|
|
@@ -4674,6 +4776,26 @@ class SplitButtonComponent extends ListButton {
|
|
|
4674
4776
|
get fillMode() {
|
|
4675
4777
|
return this._fillMode;
|
|
4676
4778
|
}
|
|
4779
|
+
/**
|
|
4780
|
+
* The SplitButton allows you to specify predefined theme colors.
|
|
4781
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
4782
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
|
|
4783
|
+
*
|
|
4784
|
+
* The possible values are:
|
|
4785
|
+
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
4786
|
+
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
4787
|
+
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
4788
|
+
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
4789
|
+
* * `info`—Applies coloring based on the `info` theme color.
|
|
4790
|
+
* * `success`— Applies coloring based on the `success` theme color.
|
|
4791
|
+
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
4792
|
+
* * `error`— Applies coloring based on the `error` theme color.
|
|
4793
|
+
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
4794
|
+
* * `light`— Applies coloring based on the `light` theme color.
|
|
4795
|
+
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
4796
|
+
* * `none`— Removes the built in theme color.
|
|
4797
|
+
*/
|
|
4798
|
+
themeColor = 'base';
|
|
4677
4799
|
/**
|
|
4678
4800
|
* When set to `true`, disables a SplitButton item
|
|
4679
4801
|
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
@@ -4702,6 +4824,14 @@ class SplitButtonComponent extends ListButton {
|
|
|
4702
4824
|
get popupSettings() {
|
|
4703
4825
|
return this._popupSettings;
|
|
4704
4826
|
}
|
|
4827
|
+
/**
|
|
4828
|
+
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
4829
|
+
*/
|
|
4830
|
+
tabIndex = 0;
|
|
4831
|
+
/**
|
|
4832
|
+
* Configures the text field of the button-list popup.
|
|
4833
|
+
*/
|
|
4834
|
+
textField;
|
|
4705
4835
|
/**
|
|
4706
4836
|
* Sets the data of the SplitButton.
|
|
4707
4837
|
*
|
|
@@ -4716,6 +4846,21 @@ class SplitButtonComponent extends ListButton {
|
|
|
4716
4846
|
}
|
|
4717
4847
|
return this._data;
|
|
4718
4848
|
}
|
|
4849
|
+
/**
|
|
4850
|
+
* The CSS classes that will be rendered on the button which opens the popup.
|
|
4851
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
4852
|
+
*/
|
|
4853
|
+
arrowButtonClass;
|
|
4854
|
+
/**
|
|
4855
|
+
* Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
|
|
4856
|
+
* be rendered for the button which opens the popup.
|
|
4857
|
+
*/
|
|
4858
|
+
arrowButtonIcon = 'caret-alt-down';
|
|
4859
|
+
/**
|
|
4860
|
+
* Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
|
|
4861
|
+
* be rendered for the button which opens the popup.
|
|
4862
|
+
*/
|
|
4863
|
+
arrowButtonSvgIcon = caretAltDownIcon;
|
|
4719
4864
|
/**
|
|
4720
4865
|
* Sets attributes to the main button.
|
|
4721
4866
|
*/
|
|
@@ -4727,6 +4872,80 @@ class SplitButtonComponent extends ListButton {
|
|
|
4727
4872
|
get buttonAttributes() {
|
|
4728
4873
|
return this._buttonAttributes;
|
|
4729
4874
|
}
|
|
4875
|
+
/**
|
|
4876
|
+
* Fires each time the user clicks the main button.
|
|
4877
|
+
*
|
|
4878
|
+
* @example
|
|
4879
|
+
* ```ts
|
|
4880
|
+
* _@Component({
|
|
4881
|
+
* selector: 'my-app',
|
|
4882
|
+
* template: `
|
|
4883
|
+
* <kendo-splitbutton (buttonClick)="onSplitButtonClick()" [data]="data">
|
|
4884
|
+
* Reply
|
|
4885
|
+
* </kendo-splitbutton>
|
|
4886
|
+
* `
|
|
4887
|
+
* })
|
|
4888
|
+
* class AppComponent {
|
|
4889
|
+
* public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
|
|
4890
|
+
*
|
|
4891
|
+
* public onSplitButtonClick(): void {
|
|
4892
|
+
* console.log('SplitButton click');
|
|
4893
|
+
* }
|
|
4894
|
+
* }
|
|
4895
|
+
* ```
|
|
4896
|
+
*
|
|
4897
|
+
*/
|
|
4898
|
+
buttonClick = new EventEmitter();
|
|
4899
|
+
/**
|
|
4900
|
+
* Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.
|
|
4901
|
+
*
|
|
4902
|
+
* @example
|
|
4903
|
+
* ```ts
|
|
4904
|
+
* _@Component({
|
|
4905
|
+
* selector: 'my-app',
|
|
4906
|
+
* template: `
|
|
4907
|
+
* <kendo-splitbutton (itemClick)="onSplitButtonItemClick($event)" [data]="data">
|
|
4908
|
+
* Reply
|
|
4909
|
+
* </kendo-splitbutton>
|
|
4910
|
+
* `
|
|
4911
|
+
* })
|
|
4912
|
+
* class AppComponent {
|
|
4913
|
+
* public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
|
|
4914
|
+
*
|
|
4915
|
+
* public onSplitButtonItemClick(dataItem?: string): void {
|
|
4916
|
+
* if (dataItem) {
|
|
4917
|
+
* console.log(dataItem);
|
|
4918
|
+
* }
|
|
4919
|
+
* }
|
|
4920
|
+
* }
|
|
4921
|
+
* ```
|
|
4922
|
+
*
|
|
4923
|
+
*/
|
|
4924
|
+
itemClick = new EventEmitter();
|
|
4925
|
+
/**
|
|
4926
|
+
* Fires each time the SplitButton gets focused.
|
|
4927
|
+
*/
|
|
4928
|
+
onFocus = new EventEmitter();
|
|
4929
|
+
/**
|
|
4930
|
+
* Fires each time the SplitButton gets blurred.
|
|
4931
|
+
*/
|
|
4932
|
+
onBlur = new EventEmitter();
|
|
4933
|
+
/**
|
|
4934
|
+
* Fires each time the popup is about to open.
|
|
4935
|
+
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
4936
|
+
*/
|
|
4937
|
+
open = new EventEmitter();
|
|
4938
|
+
/**
|
|
4939
|
+
* Fires each time the popup is about to close.
|
|
4940
|
+
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
4941
|
+
*/
|
|
4942
|
+
close = new EventEmitter();
|
|
4943
|
+
/**
|
|
4944
|
+
* An item template that helps to customize the item content.
|
|
4945
|
+
*/
|
|
4946
|
+
itemTemplate;
|
|
4947
|
+
activeArrow = false;
|
|
4948
|
+
listId = guid();
|
|
4730
4949
|
/**
|
|
4731
4950
|
* @hidden
|
|
4732
4951
|
*/
|
|
@@ -4745,6 +4964,12 @@ class SplitButtonComponent extends ListButton {
|
|
|
4745
4964
|
get componentTabIndex() {
|
|
4746
4965
|
return this.disabled ? -1 : this.tabIndex;
|
|
4747
4966
|
}
|
|
4967
|
+
buttonText = '';
|
|
4968
|
+
arrowButtonClicked = false;
|
|
4969
|
+
_rounded = DEFAULT_ROUNDED;
|
|
4970
|
+
_fillMode = DEFAULT_FILL_MODE;
|
|
4971
|
+
_buttonAttributes = null;
|
|
4972
|
+
documentMouseUpSub;
|
|
4748
4973
|
set isFocused(value) {
|
|
4749
4974
|
this._isFocused = value;
|
|
4750
4975
|
}
|
|
@@ -4838,7 +5063,7 @@ class SplitButtonComponent extends ListButton {
|
|
|
4838
5063
|
* @hidden
|
|
4839
5064
|
*/
|
|
4840
5065
|
ngAfterViewInit() {
|
|
4841
|
-
this.containerService.container = this.
|
|
5066
|
+
this.containerService.container = this.container;
|
|
4842
5067
|
this.containerService.template = this.popupTemplate;
|
|
4843
5068
|
this.updateButtonText();
|
|
4844
5069
|
this.handleClasses(this.rounded, 'rounded');
|
|
@@ -4862,6 +5087,14 @@ class SplitButtonComponent extends ListButton {
|
|
|
4862
5087
|
popup.popupAlign = this.popupAlign;
|
|
4863
5088
|
}
|
|
4864
5089
|
}
|
|
5090
|
+
/**
|
|
5091
|
+
* @hidden
|
|
5092
|
+
*/
|
|
5093
|
+
ngOnDestroy() {
|
|
5094
|
+
if (this.documentMouseUpSub) {
|
|
5095
|
+
this.documentMouseUpSub();
|
|
5096
|
+
}
|
|
5097
|
+
}
|
|
4865
5098
|
/**
|
|
4866
5099
|
* @hidden
|
|
4867
5100
|
*/
|
|
@@ -4930,6 +5163,23 @@ class SplitButtonComponent extends ListButton {
|
|
|
4930
5163
|
this.blurWrapper();
|
|
4931
5164
|
}
|
|
4932
5165
|
}
|
|
5166
|
+
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer, containerService) {
|
|
5167
|
+
super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
|
|
5168
|
+
this.localization = localization;
|
|
5169
|
+
this.renderer = renderer;
|
|
5170
|
+
this._itemClick = this.itemClick;
|
|
5171
|
+
this._blur = this.onBlur;
|
|
5172
|
+
zone.runOutsideAngular(() => {
|
|
5173
|
+
this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
|
|
5174
|
+
if (this.active) {
|
|
5175
|
+
zone.run(() => this._active = false);
|
|
5176
|
+
}
|
|
5177
|
+
if (this.activeArrow) {
|
|
5178
|
+
zone.run(() => this.activeArrow = false);
|
|
5179
|
+
}
|
|
5180
|
+
});
|
|
5181
|
+
});
|
|
5182
|
+
}
|
|
4933
5183
|
/**
|
|
4934
5184
|
* Returns the current open state of the popup.
|
|
4935
5185
|
*/
|
|
@@ -4972,26 +5222,26 @@ class SplitButtonComponent extends ListButton {
|
|
|
4972
5222
|
}
|
|
4973
5223
|
}
|
|
4974
5224
|
}
|
|
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: `
|
|
5225
|
+
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 });
|
|
5226
|
+
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: [
|
|
5227
|
+
FocusService,
|
|
5228
|
+
NavigationService,
|
|
5229
|
+
NAVIGATION_SETTINGS_PROVIDER,
|
|
5230
|
+
LocalizationService,
|
|
5231
|
+
{
|
|
5232
|
+
provide: L10N_PREFIX,
|
|
5233
|
+
useValue: 'kendo.splitbutton'
|
|
5234
|
+
},
|
|
5235
|
+
PopupContainerService,
|
|
5236
|
+
{
|
|
5237
|
+
provide: MultiTabStop,
|
|
5238
|
+
useExisting: forwardRef(() => SplitButtonComponent)
|
|
5239
|
+
}
|
|
5240
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoSplitButton"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
4992
5241
|
<ng-container kendoSplitButtonLocalizedMessages
|
|
4993
5242
|
i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
|
|
4994
|
-
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5243
|
+
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5244
|
+
>
|
|
4995
5245
|
</ng-container>
|
|
4996
5246
|
<button
|
|
4997
5247
|
kendoButton
|
|
@@ -5019,8 +5269,7 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
5019
5269
|
[attr.aria-label]="ariaLabel"
|
|
5020
5270
|
>
|
|
5021
5271
|
<span *ngIf="text" class="k-button-text">
|
|
5022
|
-
{{ text }}
|
|
5023
|
-
</span><ng-content></ng-content>
|
|
5272
|
+
{{ text }} </span><ng-content></ng-content>
|
|
5024
5273
|
</button>
|
|
5025
5274
|
<button kendoButton #arrowButton type="button"
|
|
5026
5275
|
class="k-split-button-arrow"
|
|
@@ -5055,8 +5304,9 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
5055
5304
|
</kendo-button-list>
|
|
5056
5305
|
</ng-template>
|
|
5057
5306
|
<ng-container #container></ng-container>
|
|
5058
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSplitButtonMessagesDirective, selector: "[kendoSplitButtonLocalizedMessages]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]
|
|
5059
|
-
|
|
5307
|
+
`, 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"] }] });
|
|
5308
|
+
}
|
|
5309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonComponent, decorators: [{
|
|
5060
5310
|
type: Component,
|
|
5061
5311
|
args: [{
|
|
5062
5312
|
exportAs: 'kendoSplitButton',
|
|
@@ -5079,7 +5329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5079
5329
|
template: `
|
|
5080
5330
|
<ng-container kendoSplitButtonLocalizedMessages
|
|
5081
5331
|
i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
|
|
5082
|
-
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5332
|
+
splitButtonLabel="{{ '{buttonText} splitbutton' }}"
|
|
5333
|
+
>
|
|
5083
5334
|
</ng-container>
|
|
5084
5335
|
<button
|
|
5085
5336
|
kendoButton
|
|
@@ -5107,8 +5358,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5107
5358
|
[attr.aria-label]="ariaLabel"
|
|
5108
5359
|
>
|
|
5109
5360
|
<span *ngIf="text" class="k-button-text">
|
|
5110
|
-
{{ text }}
|
|
5111
|
-
</span><ng-content></ng-content>
|
|
5361
|
+
{{ text }} </span><ng-content></ng-content>
|
|
5112
5362
|
</button>
|
|
5113
5363
|
<button kendoButton #arrowButton type="button"
|
|
5114
5364
|
class="k-split-button-arrow"
|
|
@@ -5177,8 +5427,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5177
5427
|
type: Input
|
|
5178
5428
|
}], data: [{
|
|
5179
5429
|
type: Input
|
|
5180
|
-
}], buttonClass: [{
|
|
5181
|
-
type: Input
|
|
5182
5430
|
}], arrowButtonClass: [{
|
|
5183
5431
|
type: Input
|
|
5184
5432
|
}], arrowButtonIcon: [{
|
|
@@ -5204,18 +5452,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5204
5452
|
}], itemTemplate: [{
|
|
5205
5453
|
type: ContentChild,
|
|
5206
5454
|
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
5455
|
}], isFocused: [{
|
|
5220
5456
|
type: HostBinding,
|
|
5221
5457
|
args: ['class.k-focus']
|
|
@@ -5307,11 +5543,11 @@ const KENDO_BUTTONS = [
|
|
|
5307
5543
|
* - `ButtonComponent`—The Button component class.
|
|
5308
5544
|
*/
|
|
5309
5545
|
class ButtonGroupModule {
|
|
5546
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5547
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, imports: [ButtonComponent, ButtonGroupComponent], exports: [ButtonComponent, ButtonGroupComponent] });
|
|
5548
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, providers: [IconsService], imports: [ButtonComponent] });
|
|
5310
5549
|
}
|
|
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: [{
|
|
5550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, decorators: [{
|
|
5315
5551
|
type: NgModule,
|
|
5316
5552
|
args: [{
|
|
5317
5553
|
exports: [...KENDO_BUTTONGROUP],
|
|
@@ -5353,11 +5589,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5353
5589
|
* ```
|
|
5354
5590
|
*/
|
|
5355
5591
|
class ButtonModule {
|
|
5592
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5593
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
|
|
5594
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, providers: [IconsService], imports: [ButtonComponent] });
|
|
5356
5595
|
}
|
|
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: [{
|
|
5596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, decorators: [{
|
|
5361
5597
|
type: NgModule,
|
|
5362
5598
|
args: [{
|
|
5363
5599
|
imports: [ButtonComponent],
|
|
@@ -5399,11 +5635,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5399
5635
|
* ```
|
|
5400
5636
|
*/
|
|
5401
5637
|
class ButtonsModule {
|
|
5638
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5639
|
+
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] });
|
|
5640
|
+
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
5641
|
}
|
|
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: [{
|
|
5642
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, decorators: [{
|
|
5407
5643
|
type: NgModule,
|
|
5408
5644
|
args: [{
|
|
5409
5645
|
imports: [...KENDO_BUTTONS],
|
|
@@ -5422,11 +5658,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5422
5658
|
* - `SplitButtonCustomMessagesComponent`—The SplitButton custom messages component class.
|
|
5423
5659
|
*/
|
|
5424
5660
|
class SplitButtonModule {
|
|
5661
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5662
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, imports: [SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [SplitButtonComponent, SplitButtonCustomMessagesComponent] });
|
|
5663
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [SplitButtonComponent] });
|
|
5425
5664
|
}
|
|
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: [{
|
|
5665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, decorators: [{
|
|
5430
5666
|
type: NgModule,
|
|
5431
5667
|
args: [{
|
|
5432
5668
|
exports: [...KENDO_SPLITBUTTON],
|
|
@@ -5445,11 +5681,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5445
5681
|
* - `ButtonItemTemplateDirective`—The Button item template directive.
|
|
5446
5682
|
*/
|
|
5447
5683
|
class DropDownButtonModule {
|
|
5684
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5685
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, imports: [DropDownButtonComponent, ButtonItemTemplateDirective], exports: [DropDownButtonComponent, ButtonItemTemplateDirective] });
|
|
5686
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [DropDownButtonComponent] });
|
|
5448
5687
|
}
|
|
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: [{
|
|
5688
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, decorators: [{
|
|
5453
5689
|
type: NgModule,
|
|
5454
5690
|
args: [{
|
|
5455
5691
|
exports: [...KENDO_DROPDOWNBUTTON],
|
|
@@ -5458,30 +5694,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5458
5694
|
}]
|
|
5459
5695
|
}] });
|
|
5460
5696
|
|
|
5461
|
-
const EXPORTED_DIRECTIVES = [
|
|
5462
|
-
ListComponent,
|
|
5463
|
-
FocusableDirective,
|
|
5464
|
-
ButtonItemTemplateDirective
|
|
5465
|
-
];
|
|
5466
|
-
//IMPORTANT: NgModule export kept for backwards compatibility
|
|
5467
|
-
class ListModule {
|
|
5468
|
-
}
|
|
5469
|
-
ListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
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: [{
|
|
5477
|
-
type: NgModule,
|
|
5478
|
-
args: [{
|
|
5479
|
-
imports: [...EXPORTED_DIRECTIVES],
|
|
5480
|
-
exports: [...EXPORTED_DIRECTIVES],
|
|
5481
|
-
providers: [IconsService]
|
|
5482
|
-
}]
|
|
5483
|
-
}] });
|
|
5484
|
-
|
|
5485
5697
|
//IMPORTANT: NgModule export kept for backwards compatibility
|
|
5486
5698
|
/**
|
|
5487
5699
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
@@ -5512,11 +5724,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5512
5724
|
* ```
|
|
5513
5725
|
*/
|
|
5514
5726
|
class ChipModule {
|
|
5727
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5728
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, imports: [ChipComponent, ChipListComponent], exports: [ChipComponent, ChipListComponent] });
|
|
5729
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, providers: [IconsService], imports: [ChipComponent] });
|
|
5515
5730
|
}
|
|
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: [{
|
|
5731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, decorators: [{
|
|
5520
5732
|
type: NgModule,
|
|
5521
5733
|
args: [{
|
|
5522
5734
|
exports: [...KENDO_CHIPLIST],
|
|
@@ -5555,11 +5767,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5555
5767
|
* ```
|
|
5556
5768
|
*/
|
|
5557
5769
|
class FloatingActionButtonModule {
|
|
5770
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5771
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, imports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective], exports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective] });
|
|
5772
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [FloatingActionButtonComponent] });
|
|
5558
5773
|
}
|
|
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: [{
|
|
5774
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, decorators: [{
|
|
5563
5775
|
type: NgModule,
|
|
5564
5776
|
args: [{
|
|
5565
5777
|
exports: [...KENDO_FLOATINGACTIONBUTTON],
|
|
@@ -5572,5 +5784,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5572
5784
|
* Generated bundle index. Do not edit.
|
|
5573
5785
|
*/
|
|
5574
5786
|
|
|
5575
|
-
export { ButtonComponent as Button, ButtonComponent, ButtonComponent as ButtonDirective, ButtonGroupComponent as ButtonGroup, ButtonGroupComponent, ButtonGroupModule, ButtonItemTemplateDirective, ButtonModule, ButtonsModule, ChipComponent, ChipListComponent, ChipModule, DialItemTemplateDirective, DropDownButtonComponent as DropDownButton, DropDownButtonComponent, DropDownButtonModule, FloatingActionButtonComponent, FloatingActionButtonModule, FloatingActionButtonTemplateDirective, FocusableDirective, KENDO_BUTTON, KENDO_BUTTONGROUP, KENDO_BUTTONS, KENDO_CHIP, KENDO_CHIPLIST, KENDO_DROPDOWNBUTTON, KENDO_FLOATINGACTIONBUTTON, KENDO_SPLITBUTTON, ListComponent,
|
|
5787
|
+
export { ButtonComponent as Button, ButtonComponent, ButtonComponent as ButtonDirective, ButtonGroupComponent as ButtonGroup, ButtonGroupComponent, ButtonGroupModule, ButtonItemTemplateDirective, ButtonModule, ButtonsModule, ChipComponent, ChipListComponent, ChipModule, DialItemTemplateDirective, DropDownButtonComponent as DropDownButton, DropDownButtonComponent, DropDownButtonModule, FloatingActionButtonComponent, FloatingActionButtonModule, FloatingActionButtonTemplateDirective, FocusableDirective, KENDO_BUTTON, KENDO_BUTTONGROUP, KENDO_BUTTONS, KENDO_CHIP, KENDO_CHIPLIST, KENDO_DROPDOWNBUTTON, KENDO_FLOATINGACTIONBUTTON, KENDO_SPLITBUTTON, ListComponent, LocalizedSplitButtonMessagesDirective, PreventableEvent, SplitButtonComponent as SplitButton, SplitButtonComponent, SplitButtonCustomMessagesComponent, SplitButtonModule };
|
|
5576
5788
|
|