@progress/kendo-angular-buttons 17.0.0-develop.3 → 17.0.0-develop.30

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