@progress/kendo-angular-buttons 17.0.0-develop.4 → 17.0.0-develop.41

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