@progress/kendo-angular-buttons 17.0.0-develop.8 → 17.0.0

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 (94) hide show
  1. package/README.md +27 -106
  2. package/button/button.component.d.ts +1 -1
  3. package/button/selection-settings.d.ts +1 -1
  4. package/buttongroup/buttongroup.component.d.ts +1 -1
  5. package/chip/chip-list.component.d.ts +8 -7
  6. package/chip/chip.component.d.ts +8 -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 +2 -6
  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 +63 -52
  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 +76 -51
  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 +64 -48
  22. package/{esm2020 → esm2022}/chip/chip.component.mjs +160 -93
  23. package/{esm2020 → esm2022}/chip/chip.module.mjs +4 -4
  24. package/{esm2020 → esm2022}/dropdownbutton/dropdownbutton.component.mjs +125 -117
  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 +214 -188
  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 +1317 -1056
  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/schematics/ngAdd/index.js +1 -1
  60. package/splitbutton/localization/messages.d.ts +1 -1
  61. package/splitbutton/splitbutton.component.d.ts +8 -16
  62. package/util.d.ts +6 -0
  63. package/esm2020/listbutton/list.module.mjs +0 -33
  64. package/esm2020/splitbutton/localization/messages.mjs +0 -23
  65. package/fesm2015/progress-kendo-angular-buttons.mjs +0 -5551
  66. package/listbutton/list.module.d.ts +0 -13
  67. /package/{esm2020 → esm2022}/button/selection-settings.mjs +0 -0
  68. /package/{esm2020 → esm2022}/chip/chip-content-click-event-args.interface.mjs +0 -0
  69. /package/{esm2020 → esm2022}/chip/chip-list-remove-event-args.interface.mjs +0 -0
  70. /package/{esm2020 → esm2022}/chip/chip-remove-event-args.interface.mjs +0 -0
  71. /package/{esm2020/chip/models/selection.mjs → esm2022/chip/models/avatar-settings.interface.mjs} +0 -0
  72. /package/{esm2020/common/models/arrow-settings.mjs → esm2022/chip/models/selection.mjs} +0 -0
  73. /package/{esm2020/common/models/fillmode.mjs → esm2022/common/models/arrow-settings.mjs} +0 -0
  74. /package/{esm2020/common/models/rounded.mjs → esm2022/common/models/fillmode.mjs} +0 -0
  75. /package/{esm2020/common/models/size.mjs → esm2022/common/models/rounded.mjs} +0 -0
  76. /package/{esm2020/common/models/styling-classes.mjs → esm2022/common/models/size.mjs} +0 -0
  77. /package/{esm2020/common/models/theme-color.mjs → esm2022/common/models/styling-classes.mjs} +0 -0
  78. /package/{esm2020/direction.mjs → esm2022/common/models/theme-color.mjs} +0 -0
  79. /package/{esm2020 → esm2022}/common/models.mjs +0 -0
  80. /package/{esm2020/floatingactionbutton/models/align.mjs → esm2022/direction.mjs} +0 -0
  81. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  82. /package/{esm2020 → esm2022}/floatingactionbutton/animations/animations.mjs +0 -0
  83. /package/{esm2020/floatingactionbutton/models/item-animation.interface.mjs → esm2022/floatingactionbutton/models/align.mjs} +0 -0
  84. /package/{esm2020/floatingactionbutton/models/item-click.event.mjs → esm2022/floatingactionbutton/models/item-animation.interface.mjs} +0 -0
  85. /package/{esm2020/floatingactionbutton/models/item.interface.mjs → esm2022/floatingactionbutton/models/item-click.event.mjs} +0 -0
  86. /package/{esm2020/floatingactionbutton/models/offset.mjs → esm2022/floatingactionbutton/models/item.interface.mjs} +0 -0
  87. /package/{esm2020/floatingactionbutton/models/position-mode.mjs → esm2022/floatingactionbutton/models/offset.mjs} +0 -0
  88. /package/{esm2020/listbutton/list-item-model.mjs → esm2022/floatingactionbutton/models/position-mode.mjs} +0 -0
  89. /package/{esm2020 → esm2022}/floatingactionbutton/utils.mjs +0 -0
  90. /package/{esm2020/listbutton/popup-settings.mjs → esm2022/listbutton/list-item-model.mjs} +0 -0
  91. /package/{esm2020 → esm2022}/navigation/key-events.mjs +0 -0
  92. /package/{esm2020 → esm2022}/navigation/navigation-action.mjs +0 -0
  93. /package/{esm2020 → esm2022}/navigation/navigation-config.mjs +0 -0
  94. /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, isSafari, isChanged, hasObservers, Keys, 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: 1729169934,
48
- version: '17.0.0-develop.8',
45
+ publishDate: 1731413886,
46
+ version: '17.0.0',
49
47
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
50
48
  };
51
49
 
@@ -140,6 +138,12 @@ 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
148
  const DEFAULT_ROUNDED$3 = 'medium';
145
149
  const DEFAULT_SIZE$2 = 'medium';
@@ -152,45 +156,21 @@ const DEFAULT_FILL_MODE$3 = 'solid';
152
156
  * Please use the `button[kendoButton]` selector only.
153
157
  */
154
158
  class ButtonComponent {
155
- constructor(element, renderer, service, localization, ngZone) {
156
- this.renderer = renderer;
157
- this.service = service;
158
- this.ngZone = ngZone;
159
- /**
160
- * @hidden
161
- * @default false
162
- * required for DropDownButton arrow icon.
163
- */
164
- this.arrowIcon = false;
165
- /**
166
- * Provides visual styling that indicates if the Button is active.
167
- *
168
- * @default false
169
- */
170
- this.toggleable = false;
171
- /**
172
- * Fires each time the selected state of a toggleable button is changed.
173
- *
174
- * The event argument is the new selected state (boolean).
175
- */
176
- this.selectedChange = new EventEmitter();
177
- /**
178
- * Fires each time the user clicks the button.
179
- */
180
- this.click = new EventEmitter();
181
- this.isDisabled = false;
182
- this.caretAltDownIcon = caretAltDownIcon;
183
- this._size = DEFAULT_SIZE$2;
184
- this._rounded = DEFAULT_ROUNDED$3;
185
- this._fillMode = DEFAULT_FILL_MODE$3;
186
- this._themeColor = DEFAULT_THEME_COLOR$2;
187
- this._focused = false;
188
- this.subs = new Subscription();
189
- validatePackage(packageMetadata);
190
- this.direction = localization.rtl ? 'rtl' : 'ltr';
191
- this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
192
- this.element = element.nativeElement;
193
- }
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;
194
174
  /**
195
175
  * Backwards-compatible alias
196
176
  *
@@ -225,6 +205,11 @@ class ButtonComponent {
225
205
  get tabIndex() {
226
206
  return this.element.tabIndex;
227
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;
228
213
  /**
229
214
  * Defines a CSS class—or multiple classes separated by spaces—
230
215
  * which are applied to a `span` element inside the Button. Allows the usage of custom icons.
@@ -335,6 +320,30 @@ class ButtonComponent {
335
320
  get svgIcon() {
336
321
  return this._svgIcon;
337
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;
338
347
  set isFocused(isFocused) {
339
348
  this.toggleClass('k-focus', isFocused);
340
349
  this._focused = isFocused;
@@ -401,6 +410,15 @@ class ButtonComponent {
401
410
  get nativeElement() {
402
411
  return this.element;
403
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
+ }
404
422
  ngOnInit() {
405
423
  if (!this.element.hasAttribute('role') && this.togglable) {
406
424
  this.toggleAriaPressed(this.toggleable);
@@ -536,15 +554,14 @@ class ButtonComponent {
536
554
  }
537
555
  }
538
556
  }
539
- }
540
- 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 });
541
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ButtonComponent, isStandalone: true, selector: "button[kendoButton]", inputs: { arrowIcon: "arrowIcon", toggleable: "toggleable", togglable: "togglable", selected: "selected", tabIndex: "tabIndex", imageUrl: "imageUrl", iconClass: "iconClass", icon: "icon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", svgIcon: "svgIcon", primary: "primary", look: "look" }, outputs: { selectedChange: "selectedChange", click: "click" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.k-button": "this.classButton", "class.k-toggle-button": "this.isToggleable", "class.k-icon-button": "this.iconButtonClass", "attr.aria-disabled": "this.classDisabled", "class.k-disabled": "this.classDisabled", "class.k-selected": "this.classActive", "attr.dir": "this.getDirection" } }, providers: [
542
- LocalizationService,
543
- {
544
- provide: L10N_PREFIX,
545
- useValue: 'kendo.button'
546
- }
547
- ], 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: `
548
565
  <kendo-icon-wrapper
549
566
  *ngIf="icon || svgIcon"
550
567
  innerCssClass="k-button-icon"
@@ -563,7 +580,8 @@ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
563
580
  </span>
564
581
 
565
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"] }] });
566
- 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: [{
567
585
  type: Component,
568
586
  args: [{
569
587
  exportAs: 'kendoButton',
@@ -641,9 +659,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
641
659
  type: HostBinding,
642
660
  args: ['class.k-icon-button']
643
661
  }], classDisabled: [{
644
- type: HostBinding,
645
- args: ['attr.aria-disabled']
646
- }, {
647
662
  type: HostBinding,
648
663
  args: ['class.k-disabled']
649
664
  }], classActive: [{
@@ -668,9 +683,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
668
683
  * @hidden
669
684
  */
670
685
  class PreventableEvent {
671
- constructor() {
672
- this.prevented = false;
673
- }
686
+ prevented = false;
674
687
  /**
675
688
  * Prevents the default action for a specified event.
676
689
  * In this way, the source component suppresses the built-in behavior that follows the event.
@@ -696,46 +709,34 @@ const tabindex = 'tabindex';
696
709
  * Represents the Kendo UI ButtonGroup component for Angular.
697
710
  */
698
711
  class ButtonGroupComponent {
699
- constructor(service, localization, renderer, element) {
700
- this.service = service;
701
- this.renderer = renderer;
702
- this.element = element;
703
- /**
704
- * The selection mode of the ButtonGroup.
705
- * @default 'multiple'
706
- */
707
- this.selection = 'multiple';
708
- /**
709
- * When this option is set to `true` (default), the component is a single tab-stop,
710
- * and focus is moved through the inner buttons via the arrow keys.
711
- *
712
- * When the option is set to `false`, the inner buttons are part of the natural tab sequence of the page.
713
- *
714
- * @default true
715
- */
716
- this.navigable = true;
717
- /**
718
- * Fires every time keyboard navigation occurs.
719
- */
720
- this.navigate = new EventEmitter();
721
- this._tabIndex = 0;
722
- this.currentTabIndex = 0;
723
- this.lastFocusedIndex = -1;
724
- this.subs = new Subscription();
725
- this.wrapperClasses = true;
726
- this.role = 'group';
727
- this.focusHandler = () => {
728
- this.currentTabIndex = -1;
729
- this.defocus(this.buttons.toArray());
730
- const firstFocusableIndex = this.buttons.toArray().findIndex(current => !current.disabled);
731
- const index = this.lastFocusedIndex === -1 ? firstFocusableIndex : this.lastFocusedIndex;
732
- this.focus(this.buttons.filter((_current, i) => {
733
- return i === index;
734
- }));
735
- };
736
- validatePackage(packageMetadata);
737
- this.subs.add(localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
738
- }
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;
739
740
  /**
740
741
  * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
741
742
  */
@@ -746,12 +747,33 @@ class ButtonGroupComponent {
746
747
  get tabIndex() {
747
748
  return this._tabIndex;
748
749
  }
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;
749
770
  get disabledClass() {
750
771
  return this.disabled;
751
772
  }
752
773
  get stretchedClass() {
753
774
  return !!this.width;
754
775
  }
776
+ role = 'group';
755
777
  get dir() {
756
778
  return this.direction;
757
779
  }
@@ -764,6 +786,13 @@ class ButtonGroupComponent {
764
786
  get wrapperTabIndex() {
765
787
  return this.disabled ? undefined : this.navigable ? this.currentTabIndex : undefined;
766
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
+ }
767
796
  ngOnInit() {
768
797
  this.subs.add(this.service.buttonClicked$.subscribe((button) => {
769
798
  let newSelectionValue;
@@ -904,19 +933,28 @@ class ButtonGroupComponent {
904
933
  .pipe(filter(predicate))
905
934
  .subscribe(handler));
906
935
  }
907
- }
908
- 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 });
909
- 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.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: [
910
- KendoButtonService,
911
- LocalizationService,
912
- {
913
- provide: L10N_PREFIX,
914
- useValue: 'kendo.buttongroup'
915
- }
916
- ], queries: [{ propertyName: "buttons", predicate: ButtonComponent }], exportAs: ["kendoButtonGroup"], usesOnChanges: true, ngImport: i0, template: `
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: `
917
954
  <ng-content select="[kendoButton]"></ng-content>
918
955
  `, isInline: true });
919
- 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: [{
920
958
  type: Component,
921
959
  args: [{
922
960
  exportAs: 'kendoButtonGroup',
@@ -986,66 +1024,77 @@ const DEFAULT_FILL_MODE$2 = 'solid';
986
1024
  * Displays a Chip that represents an input, attribute or an action.
987
1025
  */
988
1026
  class ChipComponent {
989
- constructor(element, renderer, ngZone, localizationService) {
990
- this.element = element;
991
- this.renderer = renderer;
992
- this.ngZone = ngZone;
993
- this.localizationService = localizationService;
994
- /**
995
- * Specifies the selected state of the Chip.
996
- * @default false
997
- */
998
- this.selected = false;
999
- /**
1000
- * Specifies if the Chip will be removable or not.
1001
- * If the property is set to `true`, the Chip renders a remove icon.
1002
- * @default false
1003
- */
1004
- this.removable = false;
1005
- /**
1006
- * @hidden
1007
- *
1008
- * Determines whether the Chip has a menu.
1009
- */
1010
- this.hasMenu = false;
1011
- /**
1012
- * If set to `true`, the Chip will be disabled.
1013
- * @default false
1014
- */
1015
- this.disabled = false;
1016
- /**
1017
- * Fires each time the user clicks the remove icon of the Chip.
1018
- */
1019
- this.remove = new EventEmitter();
1020
- /**
1021
- * @hidden
1022
- *
1023
- * Fires each time the user clicks the menu icon of the Chip.
1024
- */
1025
- this.menuToggle = new EventEmitter();
1026
- /**
1027
- * Fires each time the user clicks the content of the Chip.
1028
- */
1029
- this.contentClick = new EventEmitter();
1030
- this.tabIndex = 0;
1031
- this.hostClass = true;
1032
- /**
1033
- * @hidden
1034
- */
1035
- this.defaultRemoveIcon = xCircleIcon;
1036
- /**
1037
- * @hidden
1038
- */
1039
- this.defaultMenuIcon = moreVerticalIcon;
1040
- this._size = 'medium';
1041
- this._rounded = 'medium';
1042
- this._fillMode = 'solid';
1043
- this._themeColor = 'base';
1044
- this.focused = false;
1045
- this.subs = new Subscription();
1046
- validatePackage(packageMetadata);
1047
- this.direction = localizationService.rtl ? 'rtl' : 'ltr';
1048
- }
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;
1049
1098
  /**
1050
1099
  * The size property specifies the padding of the Chip
1051
1100
  * ([see example]({% slug appearance_chip %}#toc-size)).
@@ -1058,6 +1107,7 @@ class ChipComponent {
1058
1107
  */
1059
1108
  set size(size) {
1060
1109
  const newSize = size ? size : DEFAULT_SIZE$1;
1110
+ !this.sizeIsSet && (this.sizeIsSet = true);
1061
1111
  this.handleClasses(newSize, 'size');
1062
1112
  this._size = newSize;
1063
1113
  }
@@ -1121,8 +1171,24 @@ class ChipComponent {
1121
1171
  get themeColor() {
1122
1172
  return this._themeColor;
1123
1173
  }
1174
+ /**
1175
+ * Fires each time the user clicks the remove icon of the Chip.
1176
+ */
1177
+ remove = new EventEmitter();
1178
+ /**
1179
+ * @hidden
1180
+ *
1181
+ * Fires each time the user clicks the menu icon of the Chip.
1182
+ */
1183
+ menuToggle = new EventEmitter();
1184
+ /**
1185
+ * Fires each time the user clicks the content of the Chip.
1186
+ */
1187
+ contentClick = new EventEmitter();
1188
+ tabIndex = 0;
1189
+ hostClass = true;
1124
1190
  get hasIconClass() {
1125
- return Boolean(this.icon || this.iconClass || this.avatarClass);
1191
+ return Boolean(this.icon || this.iconClass || (this.avatarSettings && !isObjectEmpty(this.avatarSettings)));
1126
1192
  }
1127
1193
  get disabledClass() {
1128
1194
  return this.disabled;
@@ -1133,6 +1199,36 @@ class ChipComponent {
1133
1199
  get focusedClass() {
1134
1200
  return this.focused;
1135
1201
  }
1202
+ /**
1203
+ * @hidden
1204
+ */
1205
+ direction;
1206
+ /**
1207
+ * @hidden
1208
+ */
1209
+ defaultRemoveIcon = xCircleIcon;
1210
+ /**
1211
+ * @hidden
1212
+ */
1213
+ defaultMenuIcon = moreVerticalIcon;
1214
+ /**
1215
+ * @hidden
1216
+ */
1217
+ sizeIsSet = false;
1218
+ _size = 'medium';
1219
+ _rounded = 'medium';
1220
+ _fillMode = 'solid';
1221
+ _themeColor = 'base';
1222
+ focused = false;
1223
+ subs = new Subscription();
1224
+ constructor(element, renderer, ngZone, localizationService) {
1225
+ this.element = element;
1226
+ this.renderer = renderer;
1227
+ this.ngZone = ngZone;
1228
+ this.localizationService = localizationService;
1229
+ validatePackage(packageMetadata);
1230
+ this.direction = localizationService.rtl ? 'rtl' : 'ltr';
1231
+ }
1136
1232
  ngOnInit() {
1137
1233
  this.subs.add(this.localizationService.changes
1138
1234
  .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
@@ -1161,23 +1257,16 @@ class ChipComponent {
1161
1257
  * @hidden
1162
1258
  */
1163
1259
  get kendoIconClass() {
1164
- this.verifyIconSettings([this.iconClass, this.avatarClass]);
1260
+ this.verifyIconSettings([this.iconClass]);
1165
1261
  return `k-i-${this.icon}`;
1166
1262
  }
1167
1263
  /**
1168
1264
  * @hidden
1169
1265
  */
1170
1266
  get customIconClass() {
1171
- this.verifyIconSettings([this.icon, this.avatarClass]);
1267
+ this.verifyIconSettings([this.icon]);
1172
1268
  return this.iconClass;
1173
1269
  }
1174
- /**
1175
- * @hidden
1176
- */
1177
- get chipAvatarClass() {
1178
- this.verifyIconSettings([this.icon, this.iconClass]);
1179
- return this.avatarClass;
1180
- }
1181
1270
  /**
1182
1271
  * @hidden
1183
1272
  */
@@ -1288,15 +1377,14 @@ class ChipComponent {
1288
1377
  });
1289
1378
  }
1290
1379
  }
1291
- }
1292
- 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 });
1293
- 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: [
1294
- LocalizationService,
1295
- {
1296
- provide: L10N_PREFIX,
1297
- useValue: 'kendo.chip'
1298
- }
1299
- ], usesOnChanges: true, ngImport: i0, template: `
1380
+ 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 });
1381
+ 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: [
1382
+ LocalizationService,
1383
+ {
1384
+ provide: L10N_PREFIX,
1385
+ useValue: 'kendo.chip'
1386
+ }
1387
+ ], usesOnChanges: true, ngImport: i0, template: `
1300
1388
  <kendo-icon-wrapper
1301
1389
  *ngIf="icon || svgIcon"
1302
1390
  size="small"
@@ -1309,11 +1397,19 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
1309
1397
  size="small"
1310
1398
  innerCssClass="k-chip-icon"
1311
1399
  [customFontClass]="customIconClass"></kendo-icon-wrapper>
1312
-
1313
1400
  <span
1314
- *ngIf="avatarClass"
1315
- class="k-chip-avatar k-avatar k-avatar-md k-avatar-solid k-avatar-solid-primary k-rounded-full">
1316
- <span class="k-avatar-image" [ngClass]="chipAvatarClass"></span>
1401
+ *ngIf="avatarSettings"
1402
+ class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
1403
+ [ngStyle]="avatarSettings.cssStyle">
1404
+ <ng-container *ngIf="avatarSettings?.imageSrc">
1405
+ <span class="k-avatar-image">
1406
+ <img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
1407
+ </span>
1408
+ </ng-container>
1409
+
1410
+ <ng-container *ngIf="avatarSettings?.initials">
1411
+ <span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
1412
+ </ng-container>
1317
1413
  </span>
1318
1414
 
1319
1415
  <span class="k-chip-content">
@@ -1343,8 +1439,9 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
1343
1439
  [customFontClass]="removeIcon"></kendo-icon-wrapper>
1344
1440
  </span>
1345
1441
  </span>
1346
- `, 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"] }] });
1347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipComponent, decorators: [{
1442
+ `, 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"] }] });
1443
+ }
1444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipComponent, decorators: [{
1348
1445
  type: Component,
1349
1446
  args: [{
1350
1447
  selector: 'kendo-chip',
@@ -1361,11 +1458,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1361
1458
  size="small"
1362
1459
  innerCssClass="k-chip-icon"
1363
1460
  [customFontClass]="customIconClass"></kendo-icon-wrapper>
1364
-
1365
1461
  <span
1366
- *ngIf="avatarClass"
1367
- class="k-chip-avatar k-avatar k-avatar-md k-avatar-solid k-avatar-solid-primary k-rounded-full">
1368
- <span class="k-avatar-image" [ngClass]="chipAvatarClass"></span>
1462
+ *ngIf="avatarSettings"
1463
+ class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
1464
+ [ngStyle]="avatarSettings.cssStyle">
1465
+ <ng-container *ngIf="avatarSettings?.imageSrc">
1466
+ <span class="k-avatar-image">
1467
+ <img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
1468
+ </span>
1469
+ </ng-container>
1470
+
1471
+ <ng-container *ngIf="avatarSettings?.initials">
1472
+ <span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
1473
+ </ng-container>
1369
1474
  </span>
1370
1475
 
1371
1476
  <span class="k-chip-content">
@@ -1404,7 +1509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1404
1509
  }
1405
1510
  ],
1406
1511
  standalone: true,
1407
- imports: [NgIf, IconWrapperComponent, NgClass]
1512
+ imports: [NgIf, NgStyle, IconWrapperComponent, NgClass]
1408
1513
  }]
1409
1514
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.LocalizationService }]; }, propDecorators: { label: [{
1410
1515
  type: Input
@@ -1414,7 +1519,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1414
1519
  type: Input
1415
1520
  }], iconClass: [{
1416
1521
  type: Input
1417
- }], avatarClass: [{
1522
+ }], avatarSettings: [{
1418
1523
  type: Input
1419
1524
  }], selected: [{
1420
1525
  type: Input
@@ -1473,41 +1578,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1473
1578
  }] } });
1474
1579
 
1475
1580
  class ChipListComponent {
1476
- constructor(localizationService, renderer, element, ngZone) {
1477
- this.localizationService = localizationService;
1478
- this.renderer = renderer;
1479
- this.element = element;
1480
- this.ngZone = ngZone;
1481
- this.hostClass = true;
1482
- this.orientation = 'horizontal';
1483
- /**
1484
- * Sets the selection mode of the ChipList.
1485
- *
1486
- * The available values are:
1487
- * * `none` (default)
1488
- * * `single`
1489
- * * `multiple`
1490
- */
1491
- this.selection = 'none';
1492
- /**
1493
- * Fires each time when the ChipList selection is changed.
1494
- */
1495
- this.selectedChange = new EventEmitter();
1496
- /**
1497
- * Fires each time the user clicks on the remove icon of the Chip.
1498
- */
1499
- this.remove = new EventEmitter();
1500
- /**
1501
- * @hidden
1502
- */
1503
- this.role = 'listbox';
1504
- this._size = 'medium';
1505
- this.subs = new Subscription();
1506
- this._navigable = false;
1507
- this.currentActiveIndex = 0;
1508
- validatePackage(packageMetadata);
1509
- this.direction = localizationService.rtl ? 'rtl' : 'ltr';
1510
- }
1581
+ localizationService;
1582
+ renderer;
1583
+ element;
1584
+ ngZone;
1585
+ hostClass = true;
1586
+ orientation = 'horizontal';
1587
+ /**
1588
+ * @hidden
1589
+ */
1590
+ direction;
1591
+ /**
1592
+ * Sets the selection mode of the ChipList.
1593
+ *
1594
+ * The available values are:
1595
+ * * `none` (default)
1596
+ * * `single`
1597
+ * * `multiple`
1598
+ */
1599
+ selection = 'none';
1511
1600
  /**
1512
1601
  * The size property specifies the gap between the Chips in the ChipList
1513
1602
  * ([see example]({% slug appearance_chiplist %}#toc-size)).
@@ -1521,17 +1610,35 @@ class ChipListComponent {
1521
1610
  set size(size) {
1522
1611
  const sizeValue = size ? size : 'medium';
1523
1612
  this.handleClasses(sizeValue, 'size');
1613
+ this.chips?.forEach(chip => this.setChipSize(chip, sizeValue));
1524
1614
  this._size = sizeValue;
1525
1615
  }
1526
1616
  get size() {
1527
1617
  return this._size;
1528
1618
  }
1619
+ /**
1620
+ * Fires each time when the ChipList selection is changed.
1621
+ */
1622
+ selectedChange = new EventEmitter();
1623
+ /**
1624
+ * Fires each time the user clicks on the remove icon of the Chip.
1625
+ */
1626
+ remove = new EventEmitter();
1627
+ chips;
1529
1628
  get single() {
1530
1629
  return this.selection === 'single';
1531
1630
  }
1532
1631
  get multiple() {
1533
1632
  return this.selection === 'multiple';
1534
1633
  }
1634
+ /**
1635
+ * @hidden
1636
+ */
1637
+ role = 'listbox';
1638
+ dynamicRTLSubscription;
1639
+ _size = 'medium';
1640
+ subs = new Subscription();
1641
+ _navigable = true;
1535
1642
  /**
1536
1643
  * @hidden
1537
1644
  */
@@ -1557,10 +1664,10 @@ class ChipListComponent {
1557
1664
  }
1558
1665
  }
1559
1666
  /**
1560
- * When set to `true`, keyboard navigation is available through arrow keys and roving tabindex. Otherwise, all chips
1561
- * are part of the default tabbing sequence of the page.
1667
+ * By default, keyboard navigation is available through arrow keys and roving tabindex.
1668
+ * When set to `false`, all chips are part of the default tabbing sequence of the page.
1562
1669
  *
1563
- * @default false
1670
+ * @default true
1564
1671
  */
1565
1672
  set navigable(value) {
1566
1673
  this._navigable = value;
@@ -1570,6 +1677,15 @@ class ChipListComponent {
1570
1677
  get navigable() {
1571
1678
  return this._navigable;
1572
1679
  }
1680
+ currentActiveIndex = 0;
1681
+ constructor(localizationService, renderer, element, ngZone) {
1682
+ this.localizationService = localizationService;
1683
+ this.renderer = renderer;
1684
+ this.element = element;
1685
+ this.ngZone = ngZone;
1686
+ validatePackage(packageMetadata);
1687
+ this.direction = localizationService.rtl ? 'rtl' : 'ltr';
1688
+ }
1573
1689
  ngOnInit() {
1574
1690
  this.dynamicRTLSubscription = this.localizationService.changes
1575
1691
  .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
@@ -1711,18 +1827,23 @@ class ChipListComponent {
1711
1827
  this.currentActiveIndex = Math.max(this.chips.length - 1, 0);
1712
1828
  }
1713
1829
  }
1714
- }
1715
- 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 });
1716
- 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: [
1717
- LocalizationService,
1718
- {
1719
- provide: L10N_PREFIX,
1720
- useValue: 'kendo.chiplist'
1721
- }
1722
- ], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
1830
+ setChipSize(chip, size) {
1831
+ const hasSize = chip.sizeIsSet;
1832
+ !hasSize && chip.size !== size && (chip.size = size);
1833
+ !hasSize && (chip.sizeIsSet = false);
1834
+ }
1835
+ 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 });
1836
+ 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: [
1837
+ LocalizationService,
1838
+ {
1839
+ provide: L10N_PREFIX,
1840
+ useValue: 'kendo.chiplist'
1841
+ }
1842
+ ], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
1723
1843
  <ng-content></ng-content>
1724
1844
  `, isInline: true });
1725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipListComponent, decorators: [{
1845
+ }
1846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipListComponent, decorators: [{
1726
1847
  type: Component,
1727
1848
  args: [{
1728
1849
  selector: 'kendo-chiplist, kendo-chip-list',
@@ -1828,13 +1949,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1828
1949
  * For more examples, refer to the article on the [DropDownButton templates](slug:itemstemplates_dropdownbutton).
1829
1950
  */
1830
1951
  class ButtonItemTemplateDirective {
1952
+ templateRef;
1831
1953
  constructor(templateRef) {
1832
1954
  this.templateRef = templateRef;
1833
1955
  }
1956
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1957
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ButtonItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]", ngImport: i0 });
1834
1958
  }
1835
- ButtonItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1836
- ButtonItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ButtonItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]", ngImport: i0 });
1837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonItemTemplateDirective, decorators: [{
1959
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, decorators: [{
1838
1960
  type: Directive,
1839
1961
  args: [{
1840
1962
  selector: '[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]',
@@ -1846,9 +1968,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1846
1968
  * @hidden
1847
1969
  */
1848
1970
  class FocusService {
1849
- constructor() {
1850
- this.onFocus = new EventEmitter();
1851
- }
1971
+ onFocus = new EventEmitter();
1972
+ focusedIndex;
1852
1973
  isFocused(index) {
1853
1974
  return index === this.focused;
1854
1975
  }
@@ -1869,10 +1990,10 @@ class FocusService {
1869
1990
  this.focusedIndex = index;
1870
1991
  this.onFocus.emit(index);
1871
1992
  }
1993
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1994
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService });
1872
1995
  }
1873
- FocusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1874
- FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusService });
1875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusService, decorators: [{
1996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, decorators: [{
1876
1997
  type: Injectable
1877
1998
  }] });
1878
1999
 
@@ -1912,15 +2033,16 @@ const NAVIGATION_CONFIG = new InjectionToken('navigation.config');
1912
2033
  * @hidden
1913
2034
  */
1914
2035
  class NavigationService {
2036
+ navigate = new EventEmitter();
2037
+ open = new EventEmitter();
2038
+ close = new EventEmitter();
2039
+ enter = new EventEmitter();
2040
+ enterpress = new EventEmitter();
2041
+ enterup = new EventEmitter();
2042
+ tab = new EventEmitter();
2043
+ esc = new EventEmitter();
2044
+ useLeftRightArrows;
1915
2045
  constructor(config) {
1916
- this.navigate = new EventEmitter();
1917
- this.open = new EventEmitter();
1918
- this.close = new EventEmitter();
1919
- this.enter = new EventEmitter();
1920
- this.enterpress = new EventEmitter();
1921
- this.enterup = new EventEmitter();
1922
- this.tab = new EventEmitter();
1923
- this.esc = new EventEmitter();
1924
2046
  this.useLeftRightArrows = config.useLeftRightArrows;
1925
2047
  }
1926
2048
  process(args) {
@@ -1998,10 +2120,10 @@ class NavigationService {
1998
2120
  return args.current !== args.end ? args.current + args.step : args.end;
1999
2121
  }
2000
2122
  }
2123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: NAVIGATION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
2124
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
2001
2125
  }
2002
- NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, deps: [{ token: NAVIGATION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
2003
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService });
2004
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, decorators: [{
2126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, decorators: [{
2005
2127
  type: Injectable
2006
2128
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2007
2129
  type: Inject,
@@ -2012,90 +2134,310 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2012
2134
  * @hidden
2013
2135
  */
2014
2136
  class PopupContainerService {
2137
+ container;
2138
+ template;
2139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2140
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService });
2015
2141
  }
2016
- PopupContainerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PopupContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2017
- PopupContainerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PopupContainerService });
2018
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PopupContainerService, decorators: [{
2142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, decorators: [{
2019
2143
  type: Injectable
2020
2144
  }] });
2021
2145
 
2022
2146
  /**
2023
2147
  * @hidden
2024
2148
  */
2025
- class ListButton extends MultiTabStop {
2026
- constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
2027
- super();
2028
- this.focusService = focusService;
2029
- this.navigationService = navigationService;
2030
- this.wrapperRef = wrapperRef;
2031
- this._zone = _zone;
2032
- this.popupService = popupService;
2033
- this.elRef = elRef;
2034
- this.cdr = cdr;
2035
- this.containerService = containerService;
2036
- this._open = false;
2037
- this._disabled = false;
2038
- this._active = false;
2039
- this._popupSettings = { animate: true, popupClass: '' };
2040
- this.listId = guid();
2041
- this._isFocused = false;
2042
- this.subs = new Subscription();
2043
- this.popupSubs = new Subscription();
2044
- /**
2045
- * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
2046
- */
2047
- this.tabIndex = 0;
2048
- /**
2049
- * Fires each time the popup is about to open.
2050
- * This event is preventable. If you cancel the event, the popup will remain closed.
2051
- */
2052
- this.open = new EventEmitter();
2053
- /**
2054
- * Fires each time the popup is about to close.
2055
- * This event is preventable. If you cancel the event, the popup will remain open.
2056
- */
2057
- this.close = new EventEmitter();
2058
- /**
2059
- * Needed by the kendoToggleButtonTabStop directive
2060
- *
2061
- * @hidden
2062
- */
2063
- this.escape = new EventEmitter();
2064
- this.isClosePrevented = false;
2065
- validatePackage(packageMetadata);
2149
+ class FocusableDirective {
2150
+ focusService;
2151
+ renderer;
2152
+ index;
2153
+ element;
2154
+ subs = new Subscription();
2155
+ constructor(focusService, elementRef, renderer) {
2066
2156
  this.focusService = focusService;
2067
- this.navigationService = navigationService;
2068
- this.wrapper = wrapperRef.nativeElement;
2069
- this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
2157
+ this.renderer = renderer;
2158
+ this.element = elementRef.nativeElement;
2070
2159
  this.subscribeEvents();
2071
2160
  }
2072
- /**
2073
- * Sets the disabled state of the DropDownButton.
2074
- */
2075
- set disabled(value) {
2076
- if (value && this.openState) {
2077
- this.openState = false;
2161
+ ngOnInit() {
2162
+ if (this.index === this.focusService.focused) {
2163
+ this.renderer.addClass(this.element, 'k-focus');
2164
+ }
2165
+ else {
2166
+ this.renderer.removeClass(this.element, 'k-focus');
2078
2167
  }
2079
- this._disabled = value;
2080
- }
2081
- get disabled() {
2082
- return this._disabled;
2083
2168
  }
2084
2169
  /**
2085
2170
  * @hidden
2086
2171
  */
2087
- get componentTabIndex() {
2088
- return this.disabled ? (-1) : this.tabIndex;
2172
+ ngOnDestroy() {
2173
+ this.subs.unsubscribe();
2089
2174
  }
2090
- get appendTo() {
2091
- const { appendTo } = this.popupSettings;
2092
- if (!appendTo || appendTo === 'root') {
2093
- return undefined;
2175
+ subscribeEvents() {
2176
+ if (!isDocumentAvailable()) {
2177
+ return;
2094
2178
  }
2095
- return appendTo === 'component' ? this.containerService.container : appendTo;
2096
- }
2097
- /**
2098
- * Configures the popup of the DropDownButton.
2179
+ this.subs.add(this.focusService.onFocus.subscribe((index) => {
2180
+ if (this.index === index) {
2181
+ this.renderer.addClass(this.element, 'k-focus');
2182
+ this.renderer.setAttribute(this.element, 'tabindex', '0');
2183
+ this.element.focus();
2184
+ }
2185
+ else {
2186
+ this.renderer.setAttribute(this.element, 'tabindex', '-1');
2187
+ this.renderer.removeClass(this.element, 'k-focus');
2188
+ }
2189
+ }));
2190
+ }
2191
+ 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 });
2192
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FocusableDirective, isStandalone: true, selector: "[kendoButtonFocusable]", inputs: { index: "index" }, ngImport: i0 });
2193
+ }
2194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusableDirective, decorators: [{
2195
+ type: Directive,
2196
+ args: [{
2197
+ selector: '[kendoButtonFocusable]',
2198
+ standalone: true
2199
+ }]
2200
+ }], ctorParameters: function () { return [{ type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { index: [{
2201
+ type: Input
2202
+ }] } });
2203
+
2204
+ /**
2205
+ * @hidden
2206
+ */
2207
+ class ListComponent {
2208
+ data;
2209
+ textField;
2210
+ itemTemplate;
2211
+ onItemClick = new EventEmitter();
2212
+ onItemBlur = new EventEmitter();
2213
+ set size(size) {
2214
+ if (size) {
2215
+ this.sizeClass = `k-menu-group-${SIZES[size]}`;
2216
+ }
2217
+ else {
2218
+ this.sizeClass = '';
2219
+ }
2220
+ }
2221
+ sizeClass = '';
2222
+ constructor() {
2223
+ validatePackage(packageMetadata);
2224
+ }
2225
+ getText(dataItem) {
2226
+ if (dataItem) {
2227
+ return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
2228
+ }
2229
+ return undefined;
2230
+ }
2231
+ getIconClasses(dataItem) {
2232
+ const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;
2233
+ const classes = {};
2234
+ classes[icon || dataItem.iconClass] = true;
2235
+ return classes;
2236
+ }
2237
+ onClick(index) {
2238
+ this.onItemClick.emit(index);
2239
+ }
2240
+ onBlur() {
2241
+ this.onItemBlur.emit();
2242
+ }
2243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2244
+ 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: `
2245
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
2246
+ <li kendoButtonFocusable
2247
+ *ngFor="let dataItem of data; let index = index;"
2248
+ [index]="index"
2249
+ tabindex="-1"
2250
+ class="k-item k-menu-item"
2251
+ role="listitem"
2252
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
2253
+ (click)="$event.stopImmediatePropagation(); onClick(index);"
2254
+ (blur)="onBlur()">
2255
+ <ng-template [ngIf]="itemTemplate?.templateRef">
2256
+ <span
2257
+ class="k-link k-menu-link"
2258
+ [class.k-disabled]="dataItem.disabled"
2259
+ [ngClass]="dataItem.cssClass">
2260
+ <ng-template
2261
+ [templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
2262
+ ></ng-template>
2263
+ </span>
2264
+ </ng-template>
2265
+ <ng-template [ngIf]="!itemTemplate?.templateRef">
2266
+ <span
2267
+ class="k-link k-menu-link"
2268
+ [class.k-disabled]="dataItem.disabled"
2269
+ [ngClass]="dataItem.cssClass">
2270
+ <kendo-icon-wrapper
2271
+ *ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
2272
+ [name]="dataItem.icon"
2273
+ [svgIcon]="dataItem.svgIcon"
2274
+ [customFontClass]="dataItem.iconClass"
2275
+ ></kendo-icon-wrapper>
2276
+ <img
2277
+ *ngIf="dataItem.imageUrl"
2278
+ class="k-image"
2279
+ [src]="dataItem.imageUrl"
2280
+ [alt]="dataItem.imageAlt"
2281
+ >
2282
+ <span *ngIf="getText(dataItem)" class="k-menu-link-text">
2283
+ {{ getText(dataItem) }}
2284
+ </span>
2285
+ </span>
2286
+ </ng-template>
2287
+ </li>
2288
+ </ul>
2289
+ `, 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"] }] });
2290
+ }
2291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
2292
+ type: Component,
2293
+ args: [{
2294
+ selector: 'kendo-button-list',
2295
+ template: `
2296
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
2297
+ <li kendoButtonFocusable
2298
+ *ngFor="let dataItem of data; let index = index;"
2299
+ [index]="index"
2300
+ tabindex="-1"
2301
+ class="k-item k-menu-item"
2302
+ role="listitem"
2303
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
2304
+ (click)="$event.stopImmediatePropagation(); onClick(index);"
2305
+ (blur)="onBlur()">
2306
+ <ng-template [ngIf]="itemTemplate?.templateRef">
2307
+ <span
2308
+ class="k-link k-menu-link"
2309
+ [class.k-disabled]="dataItem.disabled"
2310
+ [ngClass]="dataItem.cssClass">
2311
+ <ng-template
2312
+ [templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
2313
+ ></ng-template>
2314
+ </span>
2315
+ </ng-template>
2316
+ <ng-template [ngIf]="!itemTemplate?.templateRef">
2317
+ <span
2318
+ class="k-link k-menu-link"
2319
+ [class.k-disabled]="dataItem.disabled"
2320
+ [ngClass]="dataItem.cssClass">
2321
+ <kendo-icon-wrapper
2322
+ *ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
2323
+ [name]="dataItem.icon"
2324
+ [svgIcon]="dataItem.svgIcon"
2325
+ [customFontClass]="dataItem.iconClass"
2326
+ ></kendo-icon-wrapper>
2327
+ <img
2328
+ *ngIf="dataItem.imageUrl"
2329
+ class="k-image"
2330
+ [src]="dataItem.imageUrl"
2331
+ [alt]="dataItem.imageAlt"
2332
+ >
2333
+ <span *ngIf="getText(dataItem)" class="k-menu-link-text">
2334
+ {{ getText(dataItem) }}
2335
+ </span>
2336
+ </span>
2337
+ </ng-template>
2338
+ </li>
2339
+ </ul>
2340
+ `,
2341
+ standalone: true,
2342
+ imports: [NgClass, NgFor, FocusableDirective, NgIf, TemplateContextDirective, IconWrapperComponent]
2343
+ }]
2344
+ }], ctorParameters: function () { return []; }, propDecorators: { data: [{
2345
+ type: Input
2346
+ }], textField: [{
2347
+ type: Input
2348
+ }], itemTemplate: [{
2349
+ type: Input
2350
+ }], onItemClick: [{
2351
+ type: Output
2352
+ }], onItemBlur: [{
2353
+ type: Output
2354
+ }], size: [{
2355
+ type: Input
2356
+ }] } });
2357
+
2358
+ /**
2359
+ * @hidden
2360
+ */
2361
+ class ListButton extends MultiTabStop {
2362
+ focusService;
2363
+ navigationService;
2364
+ wrapperRef;
2365
+ _zone;
2366
+ popupService;
2367
+ elRef;
2368
+ cdr;
2369
+ containerService;
2370
+ listId = guid();
2371
+ buttonId = guid();
2372
+ _data;
2373
+ _open = false;
2374
+ _disabled = false;
2375
+ _active = false;
2376
+ _popupSettings = { animate: true, popupClass: '' };
2377
+ _isFocused = false;
2378
+ _itemClick;
2379
+ _blur;
2380
+ wrapper;
2381
+ subs = new Subscription();
2382
+ direction;
2383
+ popupRef;
2384
+ popupSubs = new Subscription();
2385
+ button;
2386
+ buttonList;
2387
+ popupTemplate;
2388
+ container;
2389
+ /**
2390
+ * Sets the disabled state of the DropDownButton.
2391
+ */
2392
+ set disabled(value) {
2393
+ if (value && this.openState) {
2394
+ this.openState = false;
2395
+ }
2396
+ this._disabled = value;
2397
+ }
2398
+ get disabled() {
2399
+ return this._disabled;
2400
+ }
2401
+ /**
2402
+ * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
2403
+ */
2404
+ tabIndex = 0;
2405
+ /**
2406
+ * The CSS classes that will be rendered on the main button.
2407
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
2408
+ */
2409
+ buttonClass;
2410
+ /**
2411
+ * Fires each time the popup is about to open.
2412
+ * This event is preventable. If you cancel the event, the popup will remain closed.
2413
+ */
2414
+ open = new EventEmitter();
2415
+ /**
2416
+ * Fires each time the popup is about to close.
2417
+ * This event is preventable. If you cancel the event, the popup will remain open.
2418
+ */
2419
+ close = new EventEmitter();
2420
+ /**
2421
+ * Needed by the kendoToggleButtonTabStop directive
2422
+ *
2423
+ * @hidden
2424
+ */
2425
+ escape = new EventEmitter();
2426
+ /**
2427
+ * @hidden
2428
+ */
2429
+ get componentTabIndex() {
2430
+ return this.disabled ? (-1) : this.tabIndex;
2431
+ }
2432
+ get appendTo() {
2433
+ const { appendTo } = this.popupSettings;
2434
+ if (!appendTo || appendTo === 'root') {
2435
+ return undefined;
2436
+ }
2437
+ return appendTo === 'component' ? this.containerService.container : appendTo;
2438
+ }
2439
+ /**
2440
+ * Configures the popup of the DropDownButton.
2099
2441
  *
2100
2442
  * The available options are:
2101
2443
  * - `animate: Boolean`&mdash;Controls the popup animation. By default, the open and close animations are enabled.
@@ -2129,6 +2471,24 @@ class ListButton extends MultiTabStop {
2129
2471
  }
2130
2472
  return align;
2131
2473
  }
2474
+ isClosePrevented = false;
2475
+ constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
2476
+ super();
2477
+ this.focusService = focusService;
2478
+ this.navigationService = navigationService;
2479
+ this.wrapperRef = wrapperRef;
2480
+ this._zone = _zone;
2481
+ this.popupService = popupService;
2482
+ this.elRef = elRef;
2483
+ this.cdr = cdr;
2484
+ this.containerService = containerService;
2485
+ validatePackage(packageMetadata);
2486
+ this.focusService = focusService;
2487
+ this.navigationService = navigationService;
2488
+ this.wrapper = wrapperRef.nativeElement;
2489
+ this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
2490
+ this.subscribeEvents();
2491
+ }
2132
2492
  ngOnChanges(changes) {
2133
2493
  if (isChanged("popupSettings", changes) && isPresent(this.popupRef)) {
2134
2494
  const popup = this.popupRef.popup.instance;
@@ -2389,15 +2749,27 @@ class ListButton extends MultiTabStop {
2389
2749
  this.isClosePrevented = false;
2390
2750
  }
2391
2751
  }
2752
+ 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 });
2753
+ 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 });
2392
2754
  }
2393
- 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 });
2394
- 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 });
2395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListButton, decorators: [{
2755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListButton, decorators: [{
2396
2756
  type: Component,
2397
2757
  args: [{
2398
2758
  template: ''
2399
2759
  }]
2400
- }], 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: [{
2760
+ }], 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: [{
2761
+ type: ViewChild,
2762
+ args: ['button', { read: ElementRef }]
2763
+ }], buttonList: [{
2764
+ type: ViewChild,
2765
+ args: ['buttonList']
2766
+ }], popupTemplate: [{
2767
+ type: ViewChild,
2768
+ args: ['popupTemplate']
2769
+ }], container: [{
2770
+ type: ViewChild,
2771
+ args: ['container', { read: ViewContainerRef }]
2772
+ }], disabled: [{
2401
2773
  type: Input
2402
2774
  }], tabIndex: [{
2403
2775
  type: Input
@@ -2413,211 +2785,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2413
2785
  type: Input
2414
2786
  }] } });
2415
2787
 
2416
- /**
2417
- * @hidden
2418
- */
2419
- class FocusableDirective {
2420
- constructor(focusService, elementRef, renderer) {
2421
- this.focusService = focusService;
2422
- this.renderer = renderer;
2423
- this.subs = new Subscription();
2424
- this.element = elementRef.nativeElement;
2425
- this.subscribeEvents();
2426
- }
2427
- ngOnInit() {
2428
- if (this.index === this.focusService.focused) {
2429
- this.renderer.addClass(this.element, 'k-focus');
2430
- }
2431
- else {
2432
- this.renderer.removeClass(this.element, 'k-focus');
2433
- }
2434
- }
2435
- /**
2436
- * @hidden
2437
- */
2438
- ngOnDestroy() {
2439
- this.subs.unsubscribe();
2440
- }
2441
- subscribeEvents() {
2442
- if (!isDocumentAvailable()) {
2443
- return;
2444
- }
2445
- this.subs.add(this.focusService.onFocus.subscribe((index) => {
2446
- if (this.index === index) {
2447
- this.renderer.addClass(this.element, 'k-focus');
2448
- this.renderer.setAttribute(this.element, 'tabindex', '0');
2449
- this.element.focus();
2450
- }
2451
- else {
2452
- this.renderer.setAttribute(this.element, 'tabindex', '-1');
2453
- this.renderer.removeClass(this.element, 'k-focus');
2454
- }
2455
- }));
2456
- }
2457
- }
2458
- 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 });
2459
- FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FocusableDirective, isStandalone: true, selector: "[kendoButtonFocusable]", inputs: { index: "index" }, ngImport: i0 });
2460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FocusableDirective, decorators: [{
2461
- type: Directive,
2462
- args: [{
2463
- selector: '[kendoButtonFocusable]',
2464
- standalone: true
2465
- }]
2466
- }], ctorParameters: function () { return [{ type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { index: [{
2467
- type: Input
2468
- }] } });
2469
-
2470
- /**
2471
- * @hidden
2472
- */
2473
- class ListComponent {
2474
- constructor() {
2475
- this.onItemClick = new EventEmitter();
2476
- this.onItemBlur = new EventEmitter();
2477
- this.sizeClass = '';
2478
- validatePackage(packageMetadata);
2479
- }
2480
- set size(size) {
2481
- if (size) {
2482
- this.sizeClass = `k-menu-group-${SIZES[size]}`;
2483
- }
2484
- else {
2485
- this.sizeClass = '';
2486
- }
2487
- }
2488
- getText(dataItem) {
2489
- if (dataItem) {
2490
- return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
2491
- }
2492
- return undefined;
2493
- }
2494
- getIconClasses(dataItem) {
2495
- const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;
2496
- const classes = {};
2497
- classes[icon || dataItem.iconClass] = true;
2498
- return classes;
2499
- }
2500
- onClick(index) {
2501
- this.onItemClick.emit(index);
2502
- }
2503
- onBlur() {
2504
- this.onItemBlur.emit();
2505
- }
2506
- }
2507
- ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2508
- 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: `
2509
- <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
2510
- <li kendoButtonFocusable
2511
- *ngFor="let dataItem of data; let index = index;"
2512
- [index]="index"
2513
- tabindex="-1"
2514
- class="k-item k-menu-item"
2515
- role="listitem"
2516
- [attr.aria-disabled]="dataItem.disabled ? true : false"
2517
- (click)="$event.stopImmediatePropagation(); onClick(index);"
2518
- (blur)="onBlur()">
2519
- <ng-template [ngIf]="itemTemplate?.templateRef">
2520
- <span
2521
- class="k-link k-menu-link"
2522
- [class.k-disabled]="dataItem.disabled"
2523
- [ngClass]="dataItem.cssClass">
2524
- <ng-template
2525
- [templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
2526
- ></ng-template>
2527
- </span>
2528
- </ng-template>
2529
- <ng-template [ngIf]="!itemTemplate?.templateRef">
2530
- <span
2531
- class="k-link k-menu-link"
2532
- [class.k-disabled]="dataItem.disabled"
2533
- [ngClass]="dataItem.cssClass">
2534
- <kendo-icon-wrapper
2535
- *ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
2536
- [name]="dataItem.icon"
2537
- [svgIcon]="dataItem.svgIcon"
2538
- [customFontClass]="dataItem.iconClass"
2539
- ></kendo-icon-wrapper>
2540
- <img
2541
- *ngIf="dataItem.imageUrl"
2542
- class="k-image"
2543
- [src]="dataItem.imageUrl"
2544
- [alt]="dataItem.imageAlt"
2545
- >
2546
- <span *ngIf="getText(dataItem)" class="k-menu-link-text">
2547
- {{ getText(dataItem) }}
2548
- </span>
2549
- </span>
2550
- </ng-template>
2551
- </li>
2552
- </ul>
2553
- `, 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"] }] });
2554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, decorators: [{
2555
- type: Component,
2556
- args: [{
2557
- selector: 'kendo-button-list',
2558
- template: `
2559
- <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
2560
- <li kendoButtonFocusable
2561
- *ngFor="let dataItem of data; let index = index;"
2562
- [index]="index"
2563
- tabindex="-1"
2564
- class="k-item k-menu-item"
2565
- role="listitem"
2566
- [attr.aria-disabled]="dataItem.disabled ? true : false"
2567
- (click)="$event.stopImmediatePropagation(); onClick(index);"
2568
- (blur)="onBlur()">
2569
- <ng-template [ngIf]="itemTemplate?.templateRef">
2570
- <span
2571
- class="k-link k-menu-link"
2572
- [class.k-disabled]="dataItem.disabled"
2573
- [ngClass]="dataItem.cssClass">
2574
- <ng-template
2575
- [templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
2576
- ></ng-template>
2577
- </span>
2578
- </ng-template>
2579
- <ng-template [ngIf]="!itemTemplate?.templateRef">
2580
- <span
2581
- class="k-link k-menu-link"
2582
- [class.k-disabled]="dataItem.disabled"
2583
- [ngClass]="dataItem.cssClass">
2584
- <kendo-icon-wrapper
2585
- *ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
2586
- [name]="dataItem.icon"
2587
- [svgIcon]="dataItem.svgIcon"
2588
- [customFontClass]="dataItem.iconClass"
2589
- ></kendo-icon-wrapper>
2590
- <img
2591
- *ngIf="dataItem.imageUrl"
2592
- class="k-image"
2593
- [src]="dataItem.imageUrl"
2594
- [alt]="dataItem.imageAlt"
2595
- >
2596
- <span *ngIf="getText(dataItem)" class="k-menu-link-text">
2597
- {{ getText(dataItem) }}
2598
- </span>
2599
- </span>
2600
- </ng-template>
2601
- </li>
2602
- </ul>
2603
- `,
2604
- standalone: true,
2605
- imports: [NgClass, NgFor, FocusableDirective, NgIf, TemplateContextDirective, IconWrapperComponent]
2606
- }]
2607
- }], ctorParameters: function () { return []; }, propDecorators: { data: [{
2608
- type: Input
2609
- }], textField: [{
2610
- type: Input
2611
- }], itemTemplate: [{
2612
- type: Input
2613
- }], onItemClick: [{
2614
- type: Output
2615
- }], onItemBlur: [{
2616
- type: Output
2617
- }], size: [{
2618
- type: Input
2619
- }] } });
2620
-
2621
2788
  const NAVIGATION_SETTINGS$2 = {
2622
2789
  useLeftRightArrows: true
2623
2790
  };
@@ -2655,89 +2822,34 @@ const DEFAULT_FILL_MODE$1 = 'solid';
2655
2822
  * ```
2656
2823
  */
2657
2824
  class DropDownButtonComponent extends ListButton {
2658
- constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService, renderer) {
2659
- super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
2660
- this.containerService = containerService;
2661
- this.renderer = renderer;
2662
- /**
2663
- * Allows showing the default arrow icon or providing alternative one instead.
2664
- * @default false
2665
- */
2666
- this.arrowIcon = false;
2667
- /**
2668
- * Defines the name of an existing icon in the Kendo UI theme.
2669
- */
2670
- this.icon = '';
2671
- /**
2672
- * Defines the list of CSS classes which are used for styling the Button with custom icons.
2673
- */
2674
- this.iconClass = '';
2675
- /**
2676
- * Defines a URL for styling the button with a custom image.
2677
- */
2678
- this.imageUrl = '';
2679
- /**
2680
- * The size property specifies the padding of the DropDownButton
2681
- * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
2682
- *
2683
- * The possible values are:
2684
- * * `small`
2685
- * * `medium` (default)
2686
- * * `large`
2687
- * * `none`
2688
- */
2689
- this.size = 'medium';
2690
- /**
2691
- * The rounded property specifies the border radius of the DropDownButton
2692
- * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
2693
- *
2694
- * The possible values are:
2695
- * * `small`
2696
- * * `medium` (default)
2697
- * * `large`
2698
- * * `full`
2699
- * * `none`
2700
- */
2701
- this.rounded = 'medium';
2702
- /**
2703
- * The DropDownButton allows you to specify predefined theme colors.
2704
- * The theme color will be applied as a background and border color while also amending the text color accordingly
2705
- * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
2706
- *
2707
- * The possible values are:
2708
- * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
2709
- * * `primary` &mdash;Applies coloring based on the `primary` theme color.
2710
- * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
2711
- * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
2712
- * * `info`&mdash;Applies coloring based on the `info` theme color.
2713
- * * `success`&mdash; Applies coloring based on the `success` theme color.
2714
- * * `warning`&mdash; Applies coloring based on the `warning` theme color.
2715
- * * `error`&mdash; Applies coloring based on the `error` theme color.
2716
- * * `dark`&mdash; Applies coloring based on the `dark` theme color.
2717
- * * `light`&mdash; Applies coloring based on the `light` theme color.
2718
- * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
2719
- * * `none` &mdash;Removes the default CSS class (no class would be rendered).
2720
- */
2721
- this.themeColor = 'base';
2722
- /**
2723
- * 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.
2724
- */
2725
- this.itemClick = new EventEmitter();
2726
- /**
2727
- * Fires each time the DropDownButton gets focused.
2728
- */
2729
- this.onFocus = new EventEmitter();
2730
- /**
2731
- * Fires each time the DropDownButton gets blurred.
2732
- */
2733
- this.onBlur = new EventEmitter();
2734
- this.listId = guid();
2735
- this.buttonId = guid();
2736
- this._fillMode = DEFAULT_FILL_MODE$1;
2737
- this._buttonAttributes = null;
2738
- this._itemClick = this.itemClick;
2739
- this._blur = this.onBlur;
2740
- }
2825
+ containerService;
2826
+ renderer;
2827
+ /**
2828
+ * Allows showing the default arrow icon or providing alternative one instead.
2829
+ * @default false
2830
+ */
2831
+ arrowIcon = false;
2832
+ /**
2833
+ * Defines the name of an existing icon in the Kendo UI theme.
2834
+ */
2835
+ icon = '';
2836
+ /**
2837
+ * Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the button.
2838
+ */
2839
+ svgIcon;
2840
+ /**
2841
+ * Defines the list of CSS classes which are used for styling the Button with custom icons.
2842
+ */
2843
+ iconClass = '';
2844
+ /**
2845
+ * Defines a URL for styling the button with a custom image.
2846
+ */
2847
+ imageUrl = '';
2848
+ /**
2849
+ * Sets the data item field that represents the item text.
2850
+ * If the data contains only primitive values, do not define it.
2851
+ */
2852
+ textField;
2741
2853
  /**
2742
2854
  * Sets or gets the data of the DropDownButton.
2743
2855
  *
@@ -2749,6 +2861,29 @@ class DropDownButtonComponent extends ListButton {
2749
2861
  get data() {
2750
2862
  return this._data;
2751
2863
  }
2864
+ /**
2865
+ * The size property specifies the padding of the DropDownButton
2866
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
2867
+ *
2868
+ * The possible values are:
2869
+ * * `small`
2870
+ * * `medium` (default)
2871
+ * * `large`
2872
+ * * `none`
2873
+ */
2874
+ size = 'medium';
2875
+ /**
2876
+ * The rounded property specifies the border radius of the DropDownButton
2877
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
2878
+ *
2879
+ * The possible values are:
2880
+ * * `small`
2881
+ * * `medium` (default)
2882
+ * * `large`
2883
+ * * `full`
2884
+ * * `none`
2885
+ */
2886
+ rounded = 'medium';
2752
2887
  /**
2753
2888
  * The fillMode property specifies the background and border styles of the DropDownButton
2754
2889
  * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
@@ -2766,6 +2901,26 @@ class DropDownButtonComponent extends ListButton {
2766
2901
  get fillMode() {
2767
2902
  return this._fillMode;
2768
2903
  }
2904
+ /**
2905
+ * The DropDownButton allows you to specify predefined theme colors.
2906
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
2907
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
2908
+ *
2909
+ * The possible values are:
2910
+ * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
2911
+ * * `primary` &mdash;Applies coloring based on the `primary` theme color.
2912
+ * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
2913
+ * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
2914
+ * * `info`&mdash;Applies coloring based on the `info` theme color.
2915
+ * * `success`&mdash; Applies coloring based on the `success` theme color.
2916
+ * * `warning`&mdash; Applies coloring based on the `warning` theme color.
2917
+ * * `error`&mdash; Applies coloring based on the `error` theme color.
2918
+ * * `dark`&mdash; Applies coloring based on the `dark` theme color.
2919
+ * * `light`&mdash; Applies coloring based on the `light` theme color.
2920
+ * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
2921
+ * * `none` &mdash;Removes the default CSS class (no class would be rendered).
2922
+ */
2923
+ themeColor = 'base';
2769
2924
  /**
2770
2925
  * Sets attributes to the main button.
2771
2926
  */
@@ -2777,11 +2932,20 @@ class DropDownButtonComponent extends ListButton {
2777
2932
  get buttonAttributes() {
2778
2933
  return this._buttonAttributes;
2779
2934
  }
2935
+ /**
2936
+ * 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.
2937
+ */
2938
+ itemClick = new EventEmitter();
2939
+ /**
2940
+ * Fires each time the DropDownButton gets focused.
2941
+ */
2942
+ onFocus = new EventEmitter();
2943
+ /**
2944
+ * Fires each time the DropDownButton gets blurred.
2945
+ */
2946
+ onBlur = new EventEmitter();
2780
2947
  get focused() {
2781
- return this._isFocused && !this._disabled;
2782
- }
2783
- get widgetClasses() {
2784
- return true;
2948
+ return this._isFocused && !this._disabled;
2785
2949
  }
2786
2950
  get dir() {
2787
2951
  return this.direction;
@@ -2792,6 +2956,10 @@ class DropDownButtonComponent extends ListButton {
2792
2956
  get active() {
2793
2957
  return this._active;
2794
2958
  }
2959
+ itemTemplate;
2960
+ _fillMode = DEFAULT_FILL_MODE$1;
2961
+ _buttonAttributes = null;
2962
+ documentMouseUpSub;
2795
2963
  /**
2796
2964
  * @hidden
2797
2965
  */
@@ -2861,6 +3029,20 @@ class DropDownButtonComponent extends ListButton {
2861
3029
  this.blurWrapper();
2862
3030
  }
2863
3031
  }
3032
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService, renderer) {
3033
+ super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
3034
+ this.containerService = containerService;
3035
+ this.renderer = renderer;
3036
+ this._itemClick = this.itemClick;
3037
+ this._blur = this.onBlur;
3038
+ zone.runOutsideAngular(() => {
3039
+ this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
3040
+ if (this.active) {
3041
+ zone.run(() => this._active = false);
3042
+ }
3043
+ });
3044
+ });
3045
+ }
2864
3046
  ngAfterViewInit() {
2865
3047
  this.containerService.container = this.container;
2866
3048
  this.containerService.template = this.popupTemplate;
@@ -2906,19 +3088,26 @@ class DropDownButtonComponent extends ListButton {
2906
3088
  }
2907
3089
  }
2908
3090
  }
2909
- }
2910
- 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 });
2911
- 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: [
2912
- FocusService,
2913
- NavigationService,
2914
- NAVIGATION_SETTINGS_PROVIDER$2,
2915
- LocalizationService,
2916
- {
2917
- provide: L10N_PREFIX,
2918
- useValue: 'kendo.dropdownbutton'
2919
- },
2920
- PopupContainerService
2921
- ], 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: `
3091
+ /**
3092
+ * @hidden
3093
+ */
3094
+ ngOnDestroy() {
3095
+ if (this.documentMouseUpSub) {
3096
+ this.documentMouseUpSub();
3097
+ }
3098
+ }
3099
+ 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 });
3100
+ 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: [
3101
+ FocusService,
3102
+ NavigationService,
3103
+ NAVIGATION_SETTINGS_PROVIDER$2,
3104
+ LocalizationService,
3105
+ {
3106
+ provide: L10N_PREFIX,
3107
+ useValue: 'kendo.dropdownbutton'
3108
+ },
3109
+ PopupContainerService
3110
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2922
3111
  <button kendoButton #button
2923
3112
  type="button"
2924
3113
  [id]="buttonId"
@@ -2963,7 +3152,8 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
2963
3152
  </ng-template>
2964
3153
  <ng-container #container></ng-container>
2965
3154
  `, 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"] }] });
2966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonComponent, decorators: [{
3155
+ }
3156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonComponent, decorators: [{
2967
3157
  type: Component,
2968
3158
  args: [{
2969
3159
  exportAs: 'kendoDropDownButton',
@@ -3062,27 +3252,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3062
3252
  }], focused: [{
3063
3253
  type: HostBinding,
3064
3254
  args: ['class.k-focus']
3065
- }], widgetClasses: [{
3066
- type: HostBinding,
3067
- args: ['class.k-dropdown-button']
3068
3255
  }], dir: [{
3069
3256
  type: HostBinding,
3070
3257
  args: ['attr.dir']
3071
3258
  }], itemTemplate: [{
3072
3259
  type: ContentChild,
3073
3260
  args: [ButtonItemTemplateDirective]
3074
- }], button: [{
3075
- type: ViewChild,
3076
- args: ['button', { read: ElementRef }]
3077
- }], buttonList: [{
3078
- type: ViewChild,
3079
- args: ['buttonList']
3080
- }], popupTemplate: [{
3081
- type: ViewChild,
3082
- args: ['popupTemplate']
3083
- }], container: [{
3084
- type: ViewChild,
3085
- args: ['container', { read: ViewContainerRef }]
3086
3261
  }], keydown: [{
3087
3262
  type: HostListener,
3088
3263
  args: ['keydown', ['$event']]
@@ -3168,13 +3343,14 @@ function closeAnimation(animationSettings) {
3168
3343
  * ([see example]({% slug templates_floatingactionbutton %}#toc-dial-item-template)).
3169
3344
  */
3170
3345
  class DialItemTemplateDirective {
3346
+ templateRef;
3171
3347
  constructor(templateRef) {
3172
3348
  this.templateRef = templateRef;
3173
3349
  }
3350
+ 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 });
3351
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DialItemTemplateDirective, isStandalone: true, selector: "[kendoDialItemTemplate]", ngImport: i0 });
3174
3352
  }
3175
- 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 });
3176
- DialItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DialItemTemplateDirective, isStandalone: true, selector: "[kendoDialItemTemplate]", ngImport: i0 });
3177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialItemTemplateDirective, decorators: [{
3353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemTemplateDirective, decorators: [{
3178
3354
  type: Directive,
3179
3355
  args: [{
3180
3356
  selector: '[kendoDialItemTemplate]',
@@ -3191,13 +3367,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3191
3367
  * ([see example]({% slug templates_floatingactionbutton %}#toc-floatingactionbutton-template)).
3192
3368
  */
3193
3369
  class FloatingActionButtonTemplateDirective {
3370
+ templateRef;
3194
3371
  constructor(templateRef) {
3195
3372
  this.templateRef = templateRef;
3196
3373
  }
3374
+ 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 });
3375
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FloatingActionButtonTemplateDirective, isStandalone: true, selector: "[kendoFloatingActionButtonTemplate]", ngImport: i0 });
3197
3376
  }
3198
- 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 });
3199
- FloatingActionButtonTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FloatingActionButtonTemplateDirective, isStandalone: true, selector: "[kendoFloatingActionButtonTemplate]", ngImport: i0 });
3200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonTemplateDirective, decorators: [{
3377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonTemplateDirective, decorators: [{
3201
3378
  type: Directive,
3202
3379
  args: [{
3203
3380
  selector: '[kendoFloatingActionButtonTemplate]',
@@ -3211,13 +3388,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3211
3388
  * @hidden
3212
3389
  */
3213
3390
  class DialItemComponent {
3214
- constructor(element, renderer, localisationService) {
3215
- this.element = element;
3216
- this.renderer = renderer;
3217
- this.localisationService = localisationService;
3218
- this.hostClass = true;
3219
- this.role = 'menuitem';
3220
- }
3391
+ element;
3392
+ renderer;
3393
+ localisationService;
3394
+ hostClass = true;
3395
+ role = 'menuitem';
3221
3396
  get disabledClass() {
3222
3397
  return this.item.disabled;
3223
3398
  }
@@ -3228,6 +3403,18 @@ class DialItemComponent {
3228
3403
  get indexAttr() {
3229
3404
  return this.index;
3230
3405
  }
3406
+ cssClass;
3407
+ cssStyle;
3408
+ isFocused;
3409
+ index;
3410
+ item;
3411
+ dialItemTemplate;
3412
+ align;
3413
+ constructor(element, renderer, localisationService) {
3414
+ this.element = element;
3415
+ this.renderer = renderer;
3416
+ this.localisationService = localisationService;
3417
+ }
3231
3418
  get iconClasses() {
3232
3419
  const classes = [];
3233
3420
  if (this.item.iconClass) {
@@ -3258,9 +3445,8 @@ class DialItemComponent {
3258
3445
  };
3259
3446
  return directions[dir][align];
3260
3447
  }
3261
- }
3262
- 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 });
3263
- 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: `
3448
+ 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 });
3449
+ 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: `
3264
3450
  <ng-template *ngIf="dialItemTemplate"
3265
3451
  [ngTemplateOutlet]="dialItemTemplate"
3266
3452
  [ngTemplateOutletContext]="{ $implicit: item, index: index, isFocused: isFocused }"
@@ -3277,7 +3463,8 @@ DialItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
3277
3463
  [svgIcon]="item.svgIcon"></kendo-icon-wrapper>
3278
3464
  </ng-container>
3279
3465
  `, 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"] }] });
3280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialItemComponent, decorators: [{
3466
+ }
3467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemComponent, decorators: [{
3281
3468
  type: Component,
3282
3469
  args: [{
3283
3470
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -3343,28 +3530,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3343
3530
  * @hidden
3344
3531
  */
3345
3532
  class DialListComponent {
3346
- constructor(focusService, cdr) {
3347
- this.focusService = focusService;
3348
- this.cdr = cdr;
3349
- this.hostClass = true;
3350
- this.subscriptions = new Subscription();
3351
- this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));
3352
- }
3533
+ focusService;
3534
+ cdr;
3535
+ hostClass = true;
3353
3536
  get bottomClass() {
3354
3537
  return this.align.vertical === 'top' || this.align.vertical === 'middle';
3355
3538
  }
3356
3539
  get topClass() {
3357
3540
  return this.align.vertical === 'bottom';
3358
3541
  }
3542
+ dialItems;
3543
+ dialItemTemplate;
3544
+ align;
3545
+ subscriptions = new Subscription();
3546
+ constructor(focusService, cdr) {
3547
+ this.focusService = focusService;
3548
+ this.cdr = cdr;
3549
+ this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));
3550
+ }
3359
3551
  isFocused(index) {
3360
3552
  return this.focusService.isFocused(index);
3361
3553
  }
3362
3554
  ngOnDestroy() {
3363
3555
  this.subscriptions.unsubscribe();
3364
3556
  }
3365
- }
3366
- 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 });
3367
- 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: `
3557
+ 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 });
3558
+ 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: `
3368
3559
  <ng-container *ngFor='let item of dialItems; let idx = index'>
3369
3560
  <li
3370
3561
  kendoButtonFocusable
@@ -3380,7 +3571,8 @@ DialListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
3380
3571
  </li>
3381
3572
  </ng-container>
3382
3573
  `, 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"] }] });
3383
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialListComponent, decorators: [{
3574
+ }
3575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialListComponent, decorators: [{
3384
3576
  type: Component,
3385
3577
  args: [{
3386
3578
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -3453,101 +3645,25 @@ const DEFAULT_THEME_COLOR = 'primary';
3453
3645
  *
3454
3646
  */
3455
3647
  class FloatingActionButtonComponent {
3456
- constructor(renderer, element, focusService, navigationService, ngZone, popupService, builder, localizationService) {
3457
- this.renderer = renderer;
3458
- this.element = element;
3459
- this.focusService = focusService;
3460
- this.navigationService = navigationService;
3461
- this.ngZone = ngZone;
3462
- this.popupService = popupService;
3463
- this.builder = builder;
3464
- this.localizationService = localizationService;
3465
- /**
3466
- * Specifies the positionMode of the FloatingActionButton
3467
- * ([see example](slug:positioning_floatingactionbutton#toc-position-mode)).
3468
- *
3469
- * * The possible values are:
3470
- * * `absolute`&mdash;Positions the FloatingActionButton absolutely to its first positioned parent element.
3471
- * * `fixed` (Default)&mdash;Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.
3472
- */
3473
- this.positionMode = 'fixed';
3474
- /**
3475
- * Specifies the animation settings of the FloatingActionButton dial items.
3476
- * ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).
3477
- *
3478
- * The possible values are:
3479
- * * Boolean
3480
- * * (Default) `true`&mdash;Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.
3481
- * * `false`
3482
- * * `DialItemAnimation`
3483
- * * `duration`&mdash;Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.
3484
- * * `gap`&mdash;Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.
3485
- */
3486
- this.dialItemAnimation = true;
3487
- /**
3488
- * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.
3489
- */
3490
- this.tabIndex = 0;
3491
- /**
3492
- * Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.
3493
- */
3494
- this.dialItems = [];
3495
- /**
3496
- * Fires each time the FloatingActionButton gets blurred.
3497
- */
3498
- this.onBlur = new EventEmitter();
3499
- /**
3500
- * Fires each time the FloatingActionButton gets focused.
3501
- */
3502
- this.onFocus = new EventEmitter();
3503
- /**
3504
- * Fires each time a dial item is clicked.
3505
- */
3506
- this.dialItemClick = new EventEmitter();
3507
- /**
3508
- * Fires each time the popup is about to open.
3509
- * This event is preventable. If you cancel the event, the popup will remain closed
3510
- * ([more information and example](slug:events_floatingactionbutton)).
3511
- */
3512
- this.open = new EventEmitter();
3513
- /**
3514
- * Fires each time the popup is about to close.
3515
- * This event is preventable. If you cancel the event, the popup will remain open
3516
- * ([more information and example](slug:events_floatingactionbutton)).
3517
- */
3518
- this.close = new EventEmitter();
3519
- /**
3520
- * @hidden
3521
- */
3522
- this.id = `k-${guid()}`;
3523
- /**
3524
- * @hidden
3525
- */
3526
- this.dialListId = `k-dial-list-${guid()}`;
3527
- this._themeColor = DEFAULT_THEME_COLOR;
3528
- this._size = DEFAULT_SIZE;
3529
- this._rounded = DEFAULT_ROUNDED$1;
3530
- this._disabled = false;
3531
- this._align = { horizontal: 'end', vertical: 'bottom' };
3532
- this._offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
3533
- this.subscriptions = new Subscription();
3534
- this.rtl = false;
3535
- this.animationEnd = new EventEmitter();
3536
- this.initialSetup = true;
3537
- this.focusChangedProgrammatically = false;
3538
- validatePackage(packageMetadata);
3539
- this.subscribeNavigationEvents();
3540
- this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
3541
- this.rtl = rtl;
3542
- this.direction = this.rtl ? 'rtl' : 'ltr';
3543
- }));
3544
- }
3648
+ renderer;
3649
+ element;
3650
+ focusService;
3651
+ navigationService;
3652
+ ngZone;
3653
+ popupService;
3654
+ builder;
3655
+ localizationService;
3545
3656
  get fixedClass() {
3546
3657
  return this.positionMode === 'fixed';
3547
3658
  }
3548
3659
  get absoluteClass() {
3549
3660
  return this.positionMode === 'absolute';
3550
3661
  }
3662
+ direction;
3663
+ button;
3664
+ popupTemplate;
3665
+ dialItemTemplate;
3666
+ fabTemplate;
3551
3667
  /**
3552
3668
  * Specifies the theme color of the FloatingActionButton
3553
3669
  * ([see example](slug:appearance_floatingactionbutton#toc-theme-colors)).
@@ -3650,12 +3766,131 @@ class FloatingActionButtonComponent {
3650
3766
  get offset() {
3651
3767
  return this._offset;
3652
3768
  }
3769
+ /**
3770
+ * Specifies the positionMode of the FloatingActionButton
3771
+ * ([see example](slug:positioning_floatingactionbutton#toc-position-mode)).
3772
+ *
3773
+ * * The possible values are:
3774
+ * * `absolute`&mdash;Positions the FloatingActionButton absolutely to its first positioned parent element.
3775
+ * * `fixed` (Default)&mdash;Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.
3776
+ */
3777
+ positionMode = 'fixed';
3778
+ /**
3779
+ * Defines the name of an existing icon in a Kendo UI theme.
3780
+ * If provided, the icon will be rendered inside the FloatingActionButton by a `span.k-icon` element.
3781
+ */
3782
+ icon;
3783
+ /**
3784
+ * Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the FloatingActionButton.
3785
+ */
3786
+ svgIcon;
3787
+ /**
3788
+ * Defines a CSS class or multiple classes separated by spaces which are applied to a `span` element.
3789
+ * Allows the usage of custom icons, rendered inside the FloatingActionButton by a `span` element.
3790
+ */
3791
+ iconClass;
3792
+ /**
3793
+ * The CSS classes that will be rendered on the main button.
3794
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
3795
+ */
3796
+ buttonClass;
3797
+ /**
3798
+ * The CSS classes that will be rendered on the dial items `ul` element.
3799
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
3800
+ */
3801
+ dialClass;
3802
+ /**
3803
+ * Specifies the text content of the FloatingActionButton.
3804
+ */
3805
+ text;
3806
+ /**
3807
+ * Specifies the animation settings of the FloatingActionButton dial items.
3808
+ * ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).
3809
+ *
3810
+ * The possible values are:
3811
+ * * Boolean
3812
+ * * (Default) `true`&mdash;Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.
3813
+ * * `false`
3814
+ * * `DialItemAnimation`
3815
+ * * `duration`&mdash;Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.
3816
+ * * `gap`&mdash;Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.
3817
+ */
3818
+ dialItemAnimation = true;
3819
+ /**
3820
+ * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.
3821
+ */
3822
+ tabIndex = 0;
3823
+ /**
3824
+ * Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.
3825
+ */
3826
+ dialItems = [];
3827
+ /**
3828
+ * Fires each time the FloatingActionButton gets blurred.
3829
+ */
3830
+ onBlur = new EventEmitter();
3831
+ /**
3832
+ * Fires each time the FloatingActionButton gets focused.
3833
+ */
3834
+ onFocus = new EventEmitter();
3835
+ /**
3836
+ * Fires each time a dial item is clicked.
3837
+ */
3838
+ dialItemClick = new EventEmitter();
3839
+ /**
3840
+ * Fires each time the popup is about to open.
3841
+ * This event is preventable. If you cancel the event, the popup will remain closed
3842
+ * ([more information and example](slug:events_floatingactionbutton)).
3843
+ */
3844
+ open = new EventEmitter();
3845
+ /**
3846
+ * Fires each time the popup is about to close.
3847
+ * This event is preventable. If you cancel the event, the popup will remain open
3848
+ * ([more information and example](slug:events_floatingactionbutton)).
3849
+ */
3850
+ close = new EventEmitter();
3653
3851
  /**
3654
3852
  * @hidden
3655
3853
  */
3656
3854
  get componentTabIndex() {
3657
3855
  return this.disabled ? (-1) : this.tabIndex;
3658
3856
  }
3857
+ /**
3858
+ * @hidden
3859
+ */
3860
+ id = `k-${guid()}`;
3861
+ /**
3862
+ * @hidden
3863
+ */
3864
+ dialListId = `k-dial-list-${guid()}`;
3865
+ _themeColor = DEFAULT_THEME_COLOR;
3866
+ _size = DEFAULT_SIZE;
3867
+ _rounded = DEFAULT_ROUNDED$1;
3868
+ _disabled = false;
3869
+ _align = { horizontal: 'end', vertical: 'bottom' };
3870
+ _offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
3871
+ subscriptions = new Subscription();
3872
+ popupMouseDownListener;
3873
+ rtl = false;
3874
+ animationEnd = new EventEmitter();
3875
+ popupRef;
3876
+ initialSetup = true;
3877
+ focusChangedProgrammatically = false;
3878
+ constructor(renderer, element, focusService, navigationService, ngZone, popupService, builder, localizationService) {
3879
+ this.renderer = renderer;
3880
+ this.element = element;
3881
+ this.focusService = focusService;
3882
+ this.navigationService = navigationService;
3883
+ this.ngZone = ngZone;
3884
+ this.popupService = popupService;
3885
+ this.builder = builder;
3886
+ this.localizationService = localizationService;
3887
+ validatePackage(packageMetadata);
3888
+ this.subscribeNavigationEvents();
3889
+ this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
3890
+ this.rtl = rtl;
3891
+ this.direction = this.rtl ? 'rtl' : 'ltr';
3892
+ }));
3893
+ }
3659
3894
  ngAfterViewInit() {
3660
3895
  ['size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));
3661
3896
  this.renderer.addClass(this.element.nativeElement, this.alignClass());
@@ -4111,18 +4346,17 @@ class FloatingActionButtonComponent {
4111
4346
  }
4112
4347
  return DEFAULT_DURATION;
4113
4348
  }
4114
- }
4115
- 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 });
4116
- 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: [
4117
- FocusService,
4118
- NavigationService,
4119
- NAVIGATION_SETTINGS_PROVIDER$1,
4120
- LocalizationService,
4121
- {
4122
- provide: L10N_PREFIX,
4123
- useValue: 'kendo.floatingactionbutton'
4124
- }
4125
- ], 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: `
4349
+ 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 });
4350
+ 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: [
4351
+ FocusService,
4352
+ NavigationService,
4353
+ NAVIGATION_SETTINGS_PROVIDER$1,
4354
+ LocalizationService,
4355
+ {
4356
+ provide: L10N_PREFIX,
4357
+ useValue: 'kendo.floatingactionbutton'
4358
+ }
4359
+ ], 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: `
4126
4360
  <button
4127
4361
  #button
4128
4362
  [attr.id]="id"
@@ -4180,7 +4414,8 @@ FloatingActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
4180
4414
  </ul>
4181
4415
  </ng-template>
4182
4416
  `, 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"] }] });
4183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonComponent, decorators: [{
4417
+ }
4418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonComponent, decorators: [{
4184
4419
  type: Component,
4185
4420
  args: [{
4186
4421
  selector: 'kendo-floatingactionbutton',
@@ -4327,10 +4562,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4327
4562
  * @hidden
4328
4563
  */
4329
4564
  class Messages extends ComponentMessages {
4565
+ /**
4566
+ * The text for the SplitButton aria-label.
4567
+ *
4568
+ * The text for the aria-label consists of a two-part message - the text of the SplitButton and a localizable string.
4569
+ * For a SplitButton with text 'Reply', the default aria-label will be 'Reply splitbutton'.
4570
+ *
4571
+ * To allow reordering of the SplitButton text and the localizable part, the splitButtonLabel accepts a string with a
4572
+ * placeholder for the button text - e.g. 'splitbutton for {buttonText}'. The '{buttonText}' placeholder will be replaced
4573
+ * internally with the current SplitButton text, and the resulting aria-label will be rendered as 'splitbutton for Reply'.
4574
+ *
4575
+ * @example
4576
+ *
4577
+ * ```ts-no-run
4578
+ * <kendo-splitbutton>
4579
+ * <kendo-splitbutton-messages
4580
+ * splitButtonLabel="splitbutton for {buttonText}"
4581
+ * >
4582
+ * </kendo-splitbutton-messages>
4583
+ * </kendo-splitbutton>
4584
+ * ```
4585
+ */
4586
+ splitButtonLabel;
4587
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4588
+ 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 });
4330
4589
  }
4331
- Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4332
- 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 });
4333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, decorators: [{
4590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
4334
4591
  type: Directive,
4335
4592
  args: [{
4336
4593
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4345,6 +4602,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4345
4602
  * ([see example]({% slug rtl_buttons %}).
4346
4603
  */
4347
4604
  class SplitButtonCustomMessagesComponent extends Messages {
4605
+ service;
4348
4606
  constructor(service) {
4349
4607
  super();
4350
4608
  this.service = service;
@@ -4352,13 +4610,13 @@ class SplitButtonCustomMessagesComponent extends Messages {
4352
4610
  get override() {
4353
4611
  return true;
4354
4612
  }
4613
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4614
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitButtonCustomMessagesComponent, isStandalone: true, selector: "kendo-splitbutton-messages", providers: [{
4615
+ provide: Messages,
4616
+ useExisting: forwardRef(() => SplitButtonCustomMessagesComponent)
4617
+ }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
4355
4618
  }
4356
- SplitButtonCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4357
- SplitButtonCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SplitButtonCustomMessagesComponent, isStandalone: true, selector: "kendo-splitbutton-messages", providers: [{
4358
- provide: Messages,
4359
- useExisting: forwardRef(() => SplitButtonCustomMessagesComponent)
4360
- }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
4361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonCustomMessagesComponent, decorators: [{
4619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, decorators: [{
4362
4620
  type: Component,
4363
4621
  args: [{
4364
4622
  providers: [{
@@ -4375,19 +4633,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4375
4633
  * @hidden
4376
4634
  */
4377
4635
  class LocalizedSplitButtonMessagesDirective extends Messages {
4636
+ service;
4378
4637
  constructor(service) {
4379
4638
  super();
4380
4639
  this.service = service;
4381
4640
  }
4641
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
4642
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedSplitButtonMessagesDirective, isStandalone: true, selector: "[kendoSplitButtonLocalizedMessages]", providers: [
4643
+ {
4644
+ provide: Messages,
4645
+ useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective)
4646
+ }
4647
+ ], usesInheritance: true, ngImport: i0 });
4382
4648
  }
4383
- LocalizedSplitButtonMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
4384
- LocalizedSplitButtonMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedSplitButtonMessagesDirective, isStandalone: true, selector: "[kendoSplitButtonLocalizedMessages]", providers: [
4385
- {
4386
- provide: Messages,
4387
- useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective)
4388
- }
4389
- ], usesInheritance: true, ngImport: i0 });
4390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, decorators: [{
4649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, decorators: [{
4391
4650
  type: Directive,
4392
4651
  args: [{
4393
4652
  providers: [
@@ -4452,154 +4711,46 @@ const DEFAULT_FILL_MODE = 'solid';
4452
4711
  * ```
4453
4712
  */
4454
4713
  class SplitButtonComponent extends ListButton {
4455
- constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer, containerService) {
4456
- super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
4457
- this.localization = localization;
4458
- this.renderer = renderer;
4459
- /**
4460
- * Sets the text of the SplitButton.
4461
- */
4462
- this.text = '';
4463
- /**
4464
- * Defines an icon to be rendered next to the button text.
4465
- * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4466
- */
4467
- this.icon = '';
4468
- /**
4469
- * Defines the type attribute of the main button
4470
- */
4471
- this.type = 'button';
4472
- /**
4473
- * Defines the location of an image to be displayed next to the button text
4474
- * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4475
- */
4476
- this.imageUrl = '';
4477
- /**
4478
- * The size property specifies the padding of the SplitButton
4479
- * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
4480
- *
4481
- * The possible values are:
4482
- * * `small`
4483
- * * `medium` (default)
4484
- * * `large`
4485
- * * `none`
4486
- */
4487
- this.size = 'medium';
4488
- /**
4489
- * The SplitButton allows you to specify predefined theme colors.
4490
- * The theme color will be applied as a background and border color while also amending the text color accordingly
4491
- * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
4492
- *
4493
- * The possible values are:
4494
- * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
4495
- * * `primary` &mdash;Applies coloring based on the `primary` theme color.
4496
- * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
4497
- * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
4498
- * * `info`&mdash;Applies coloring based on the `info` theme color.
4499
- * * `success`&mdash; Applies coloring based on the `success` theme color.
4500
- * * `warning`&mdash; Applies coloring based on the `warning` theme color.
4501
- * * `error`&mdash; Applies coloring based on the `error` theme color.
4502
- * * `dark`&mdash; Applies coloring based on the `dark` theme color.
4503
- * * `light`&mdash; Applies coloring based on the `light` theme color.
4504
- * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
4505
- * * `none`&mdash; Removes the built in theme color.
4506
- */
4507
- this.themeColor = 'base';
4508
- /**
4509
- * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
4510
- */
4511
- this.tabIndex = 0;
4512
- /**
4513
- * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
4514
- * be rendered for the button which opens the popup.
4515
- */
4516
- this.arrowButtonIcon = 'caret-alt-down';
4517
- /**
4518
- * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
4519
- * be rendered for the button which opens the popup.
4520
- */
4521
- this.arrowButtonSvgIcon = caretAltDownIcon;
4522
- /**
4523
- * Fires each time the user clicks the main button.
4524
- *
4525
- * @example
4526
- * ```ts
4527
- * _@Component({
4528
- * selector: 'my-app',
4529
- * template: `
4530
- * <kendo-splitbutton (buttonClick)="onSplitButtonClick()" [data]="data">
4531
- * Reply
4532
- * </kendo-splitbutton>
4533
- * `
4534
- * })
4535
- * class AppComponent {
4536
- * public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
4537
- *
4538
- * public onSplitButtonClick(): void {
4539
- * console.log('SplitButton click');
4540
- * }
4541
- * }
4542
- * ```
4543
- *
4544
- */
4545
- this.buttonClick = new EventEmitter();
4546
- /**
4547
- * Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.
4548
- *
4549
- * @example
4550
- * ```ts
4551
- * _@Component({
4552
- * selector: 'my-app',
4553
- * template: `
4554
- * <kendo-splitbutton (itemClick)="onSplitButtonItemClick($event)" [data]="data">
4555
- * Reply
4556
- * </kendo-splitbutton>
4557
- * `
4558
- * })
4559
- * class AppComponent {
4560
- * public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
4561
- *
4562
- * public onSplitButtonItemClick(dataItem?: string): void {
4563
- * if (dataItem) {
4564
- * console.log(dataItem);
4565
- * }
4566
- * }
4567
- * }
4568
- * ```
4569
- *
4570
- */
4571
- this.itemClick = new EventEmitter();
4572
- /**
4573
- * Fires each time the SplitButton gets focused.
4574
- */
4575
- this.onFocus = new EventEmitter();
4576
- /**
4577
- * Fires each time the SplitButton gets blurred.
4578
- */
4579
- this.onBlur = new EventEmitter();
4580
- /**
4581
- * Fires each time the popup is about to open.
4582
- * This event is preventable. If you cancel the event, the popup will remain closed.
4583
- */
4584
- this.open = new EventEmitter();
4585
- /**
4586
- * Fires each time the popup is about to close.
4587
- * This event is preventable. If you cancel the event, the popup will remain open.
4588
- */
4589
- this.close = new EventEmitter();
4590
- /**
4591
- * @hidden
4592
- */
4593
- this.activeArrow = false;
4594
- this.listId = guid();
4595
- this.buttonText = '';
4596
- this.arrowButtonClicked = false;
4597
- this._rounded = DEFAULT_ROUNDED;
4598
- this._fillMode = DEFAULT_FILL_MODE;
4599
- this._buttonAttributes = null;
4600
- this._itemClick = this.itemClick;
4601
- this._blur = this.onBlur;
4602
- }
4714
+ localization;
4715
+ renderer;
4716
+ /**
4717
+ * Sets the text of the SplitButton.
4718
+ */
4719
+ text = '';
4720
+ /**
4721
+ * Defines an icon to be rendered next to the button text.
4722
+ * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4723
+ */
4724
+ icon = '';
4725
+ /**
4726
+ * Defines an SVGIcon to be rendered next to the button text.
4727
+ */
4728
+ svgIcon;
4729
+ /**
4730
+ * Defines an icon with a custom CSS class to be rendered next to the button text
4731
+ * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4732
+ */
4733
+ iconClass;
4734
+ /**
4735
+ * Defines the type attribute of the main button
4736
+ */
4737
+ type = 'button';
4738
+ /**
4739
+ * Defines the location of an image to be displayed next to the button text
4740
+ * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4741
+ */
4742
+ imageUrl = '';
4743
+ /**
4744
+ * The size property specifies the padding of the SplitButton
4745
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
4746
+ *
4747
+ * The possible values are:
4748
+ * * `small`
4749
+ * * `medium` (default)
4750
+ * * `large`
4751
+ * * `none`
4752
+ */
4753
+ size = 'medium';
4603
4754
  /**
4604
4755
  * The rounded property specifies the border radius of the SplitButton
4605
4756
  * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
@@ -4636,6 +4787,26 @@ class SplitButtonComponent extends ListButton {
4636
4787
  get fillMode() {
4637
4788
  return this._fillMode;
4638
4789
  }
4790
+ /**
4791
+ * The SplitButton allows you to specify predefined theme colors.
4792
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
4793
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
4794
+ *
4795
+ * The possible values are:
4796
+ * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
4797
+ * * `primary` &mdash;Applies coloring based on the `primary` theme color.
4798
+ * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
4799
+ * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
4800
+ * * `info`&mdash;Applies coloring based on the `info` theme color.
4801
+ * * `success`&mdash; Applies coloring based on the `success` theme color.
4802
+ * * `warning`&mdash; Applies coloring based on the `warning` theme color.
4803
+ * * `error`&mdash; Applies coloring based on the `error` theme color.
4804
+ * * `dark`&mdash; Applies coloring based on the `dark` theme color.
4805
+ * * `light`&mdash; Applies coloring based on the `light` theme color.
4806
+ * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
4807
+ * * `none`&mdash; Removes the built in theme color.
4808
+ */
4809
+ themeColor = 'base';
4639
4810
  /**
4640
4811
  * When set to `true`, disables a SplitButton item
4641
4812
  * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
@@ -4664,6 +4835,14 @@ class SplitButtonComponent extends ListButton {
4664
4835
  get popupSettings() {
4665
4836
  return this._popupSettings;
4666
4837
  }
4838
+ /**
4839
+ * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
4840
+ */
4841
+ tabIndex = 0;
4842
+ /**
4843
+ * Configures the text field of the button-list popup.
4844
+ */
4845
+ textField;
4667
4846
  /**
4668
4847
  * Sets the data of the SplitButton.
4669
4848
  *
@@ -4678,6 +4857,21 @@ class SplitButtonComponent extends ListButton {
4678
4857
  }
4679
4858
  return this._data;
4680
4859
  }
4860
+ /**
4861
+ * The CSS classes that will be rendered on the button which opens the popup.
4862
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
4863
+ */
4864
+ arrowButtonClass;
4865
+ /**
4866
+ * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
4867
+ * be rendered for the button which opens the popup.
4868
+ */
4869
+ arrowButtonIcon = 'caret-alt-down';
4870
+ /**
4871
+ * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
4872
+ * be rendered for the button which opens the popup.
4873
+ */
4874
+ arrowButtonSvgIcon = caretAltDownIcon;
4681
4875
  /**
4682
4876
  * Sets attributes to the main button.
4683
4877
  */
@@ -4689,6 +4883,80 @@ class SplitButtonComponent extends ListButton {
4689
4883
  get buttonAttributes() {
4690
4884
  return this._buttonAttributes;
4691
4885
  }
4886
+ /**
4887
+ * Fires each time the user clicks the main button.
4888
+ *
4889
+ * @example
4890
+ * ```ts
4891
+ * _@Component({
4892
+ * selector: 'my-app',
4893
+ * template: `
4894
+ * <kendo-splitbutton (buttonClick)="onSplitButtonClick()" [data]="data">
4895
+ * Reply
4896
+ * </kendo-splitbutton>
4897
+ * `
4898
+ * })
4899
+ * class AppComponent {
4900
+ * public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
4901
+ *
4902
+ * public onSplitButtonClick(): void {
4903
+ * console.log('SplitButton click');
4904
+ * }
4905
+ * }
4906
+ * ```
4907
+ *
4908
+ */
4909
+ buttonClick = new EventEmitter();
4910
+ /**
4911
+ * Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.
4912
+ *
4913
+ * @example
4914
+ * ```ts
4915
+ * _@Component({
4916
+ * selector: 'my-app',
4917
+ * template: `
4918
+ * <kendo-splitbutton (itemClick)="onSplitButtonItemClick($event)" [data]="data">
4919
+ * Reply
4920
+ * </kendo-splitbutton>
4921
+ * `
4922
+ * })
4923
+ * class AppComponent {
4924
+ * public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
4925
+ *
4926
+ * public onSplitButtonItemClick(dataItem?: string): void {
4927
+ * if (dataItem) {
4928
+ * console.log(dataItem);
4929
+ * }
4930
+ * }
4931
+ * }
4932
+ * ```
4933
+ *
4934
+ */
4935
+ itemClick = new EventEmitter();
4936
+ /**
4937
+ * Fires each time the SplitButton gets focused.
4938
+ */
4939
+ onFocus = new EventEmitter();
4940
+ /**
4941
+ * Fires each time the SplitButton gets blurred.
4942
+ */
4943
+ onBlur = new EventEmitter();
4944
+ /**
4945
+ * Fires each time the popup is about to open.
4946
+ * This event is preventable. If you cancel the event, the popup will remain closed.
4947
+ */
4948
+ open = new EventEmitter();
4949
+ /**
4950
+ * Fires each time the popup is about to close.
4951
+ * This event is preventable. If you cancel the event, the popup will remain open.
4952
+ */
4953
+ close = new EventEmitter();
4954
+ /**
4955
+ * An item template that helps to customize the item content.
4956
+ */
4957
+ itemTemplate;
4958
+ activeArrow = false;
4959
+ listId = guid();
4692
4960
  /**
4693
4961
  * @hidden
4694
4962
  */
@@ -4707,6 +4975,12 @@ class SplitButtonComponent extends ListButton {
4707
4975
  get componentTabIndex() {
4708
4976
  return this.disabled ? -1 : this.tabIndex;
4709
4977
  }
4978
+ buttonText = '';
4979
+ arrowButtonClicked = false;
4980
+ _rounded = DEFAULT_ROUNDED;
4981
+ _fillMode = DEFAULT_FILL_MODE;
4982
+ _buttonAttributes = null;
4983
+ documentMouseUpSub;
4710
4984
  set isFocused(value) {
4711
4985
  this._isFocused = value;
4712
4986
  }
@@ -4800,7 +5074,7 @@ class SplitButtonComponent extends ListButton {
4800
5074
  * @hidden
4801
5075
  */
4802
5076
  ngAfterViewInit() {
4803
- this.containerService.container = this.containerRef;
5077
+ this.containerService.container = this.container;
4804
5078
  this.containerService.template = this.popupTemplate;
4805
5079
  this.updateButtonText();
4806
5080
  this.handleClasses(this.rounded, 'rounded');
@@ -4824,6 +5098,14 @@ class SplitButtonComponent extends ListButton {
4824
5098
  popup.popupAlign = this.popupAlign;
4825
5099
  }
4826
5100
  }
5101
+ /**
5102
+ * @hidden
5103
+ */
5104
+ ngOnDestroy() {
5105
+ if (this.documentMouseUpSub) {
5106
+ this.documentMouseUpSub();
5107
+ }
5108
+ }
4827
5109
  /**
4828
5110
  * @hidden
4829
5111
  */
@@ -4892,6 +5174,23 @@ class SplitButtonComponent extends ListButton {
4892
5174
  this.blurWrapper();
4893
5175
  }
4894
5176
  }
5177
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer, containerService) {
5178
+ super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
5179
+ this.localization = localization;
5180
+ this.renderer = renderer;
5181
+ this._itemClick = this.itemClick;
5182
+ this._blur = this.onBlur;
5183
+ zone.runOutsideAngular(() => {
5184
+ this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
5185
+ if (this.active) {
5186
+ zone.run(() => this._active = false);
5187
+ }
5188
+ if (this.activeArrow) {
5189
+ zone.run(() => this.activeArrow = false);
5190
+ }
5191
+ });
5192
+ });
5193
+ }
4895
5194
  /**
4896
5195
  * Returns the current open state of the popup.
4897
5196
  */
@@ -4934,26 +5233,26 @@ class SplitButtonComponent extends ListButton {
4934
5233
  }
4935
5234
  }
4936
5235
  }
4937
- }
4938
- 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 });
4939
- 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: [
4940
- FocusService,
4941
- NavigationService,
4942
- NAVIGATION_SETTINGS_PROVIDER,
4943
- LocalizationService,
4944
- {
4945
- provide: L10N_PREFIX,
4946
- useValue: 'kendo.splitbutton'
4947
- },
4948
- PopupContainerService,
4949
- {
4950
- provide: MultiTabStop,
4951
- useExisting: forwardRef(() => SplitButtonComponent)
4952
- }
4953
- ], 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: `
5236
+ 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 });
5237
+ 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: [
5238
+ FocusService,
5239
+ NavigationService,
5240
+ NAVIGATION_SETTINGS_PROVIDER,
5241
+ LocalizationService,
5242
+ {
5243
+ provide: L10N_PREFIX,
5244
+ useValue: 'kendo.splitbutton'
5245
+ },
5246
+ PopupContainerService,
5247
+ {
5248
+ provide: MultiTabStop,
5249
+ useExisting: forwardRef(() => SplitButtonComponent)
5250
+ }
5251
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoSplitButton"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
4954
5252
  <ng-container kendoSplitButtonLocalizedMessages
4955
5253
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
4956
- splitButtonLabel="{{ '{buttonText} splitbutton' }}">
5254
+ splitButtonLabel="{{ '{buttonText} splitbutton' }}"
5255
+ >
4957
5256
  </ng-container>
4958
5257
  <button
4959
5258
  kendoButton
@@ -4981,8 +5280,7 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
4981
5280
  [attr.aria-label]="ariaLabel"
4982
5281
  >
4983
5282
  <span *ngIf="text" class="k-button-text">
4984
- {{ text }}
4985
- </span><ng-content></ng-content>
5283
+ {{ text }} </span><ng-content></ng-content>
4986
5284
  </button>
4987
5285
  <button kendoButton #arrowButton type="button"
4988
5286
  class="k-split-button-arrow"
@@ -5018,7 +5316,8 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
5018
5316
  </ng-template>
5019
5317
  <ng-container #container></ng-container>
5020
5318
  `, 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"] }] });
5021
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonComponent, decorators: [{
5319
+ }
5320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonComponent, decorators: [{
5022
5321
  type: Component,
5023
5322
  args: [{
5024
5323
  exportAs: 'kendoSplitButton',
@@ -5041,7 +5340,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5041
5340
  template: `
5042
5341
  <ng-container kendoSplitButtonLocalizedMessages
5043
5342
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
5044
- splitButtonLabel="{{ '{buttonText} splitbutton' }}">
5343
+ splitButtonLabel="{{ '{buttonText} splitbutton' }}"
5344
+ >
5045
5345
  </ng-container>
5046
5346
  <button
5047
5347
  kendoButton
@@ -5069,8 +5369,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5069
5369
  [attr.aria-label]="ariaLabel"
5070
5370
  >
5071
5371
  <span *ngIf="text" class="k-button-text">
5072
- {{ text }}
5073
- </span><ng-content></ng-content>
5372
+ {{ text }} </span><ng-content></ng-content>
5074
5373
  </button>
5075
5374
  <button kendoButton #arrowButton type="button"
5076
5375
  class="k-split-button-arrow"
@@ -5139,8 +5438,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5139
5438
  type: Input
5140
5439
  }], data: [{
5141
5440
  type: Input
5142
- }], buttonClass: [{
5143
- type: Input
5144
5441
  }], arrowButtonClass: [{
5145
5442
  type: Input
5146
5443
  }], arrowButtonIcon: [{
@@ -5166,18 +5463,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5166
5463
  }], itemTemplate: [{
5167
5464
  type: ContentChild,
5168
5465
  args: [ButtonItemTemplateDirective]
5169
- }], button: [{
5170
- type: ViewChild,
5171
- args: ['button', { read: ElementRef }]
5172
- }], arrowButton: [{
5173
- type: ViewChild,
5174
- args: ['arrowButton', { read: ElementRef }]
5175
- }], popupTemplate: [{
5176
- type: ViewChild,
5177
- args: ['popupTemplate']
5178
- }], containerRef: [{
5179
- type: ViewChild,
5180
- args: ['container', { read: ViewContainerRef }]
5181
5466
  }], isFocused: [{
5182
5467
  type: HostBinding,
5183
5468
  args: ['class.k-focus']
@@ -5269,11 +5554,11 @@ const KENDO_BUTTONS = [
5269
5554
  * - `ButtonComponent`&mdash;The Button component class.
5270
5555
  */
5271
5556
  class ButtonGroupModule {
5557
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5558
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, imports: [ButtonComponent, ButtonGroupComponent], exports: [ButtonComponent, ButtonGroupComponent] });
5559
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, providers: [IconsService], imports: [ButtonComponent] });
5272
5560
  }
5273
- ButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5274
- ButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, imports: [ButtonComponent, ButtonGroupComponent], exports: [ButtonComponent, ButtonGroupComponent] });
5275
- ButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, providers: [IconsService], imports: [KENDO_BUTTONGROUP] });
5276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupModule, decorators: [{
5561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, decorators: [{
5277
5562
  type: NgModule,
5278
5563
  args: [{
5279
5564
  exports: [...KENDO_BUTTONGROUP],
@@ -5315,11 +5600,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5315
5600
  * ```
5316
5601
  */
5317
5602
  class ButtonModule {
5603
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5604
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
5605
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, providers: [IconsService], imports: [ButtonComponent] });
5318
5606
  }
5319
- ButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5320
- ButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
5321
- ButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, providers: [IconsService], imports: [ButtonComponent] });
5322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonModule, decorators: [{
5607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, decorators: [{
5323
5608
  type: NgModule,
5324
5609
  args: [{
5325
5610
  imports: [ButtonComponent],
@@ -5361,11 +5646,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5361
5646
  * ```
5362
5647
  */
5363
5648
  class ButtonsModule {
5649
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5650
+ 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] });
5651
+ 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] });
5364
5652
  }
5365
- ButtonsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5366
- 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] });
5367
- 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] });
5368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonsModule, decorators: [{
5653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, decorators: [{
5369
5654
  type: NgModule,
5370
5655
  args: [{
5371
5656
  imports: [...KENDO_BUTTONS],
@@ -5384,11 +5669,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5384
5669
  * - `SplitButtonCustomMessagesComponent`&mdash;The SplitButton custom messages component class.
5385
5670
  */
5386
5671
  class SplitButtonModule {
5672
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5673
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, imports: [SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [SplitButtonComponent, SplitButtonCustomMessagesComponent] });
5674
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [SplitButtonComponent] });
5387
5675
  }
5388
- SplitButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5389
- SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [SplitButtonComponent, SplitButtonCustomMessagesComponent] });
5390
- SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [KENDO_SPLITBUTTON] });
5391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, decorators: [{
5676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, decorators: [{
5392
5677
  type: NgModule,
5393
5678
  args: [{
5394
5679
  exports: [...KENDO_SPLITBUTTON],
@@ -5407,11 +5692,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5407
5692
  * - `ButtonItemTemplateDirective`&mdash;The Button item template directive.
5408
5693
  */
5409
5694
  class DropDownButtonModule {
5695
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5696
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, imports: [DropDownButtonComponent, ButtonItemTemplateDirective], exports: [DropDownButtonComponent, ButtonItemTemplateDirective] });
5697
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [DropDownButtonComponent] });
5410
5698
  }
5411
- DropDownButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5412
- DropDownButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, imports: [DropDownButtonComponent, ButtonItemTemplateDirective], exports: [DropDownButtonComponent, ButtonItemTemplateDirective] });
5413
- DropDownButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [DropDownButtonComponent] });
5414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonModule, decorators: [{
5699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, decorators: [{
5415
5700
  type: NgModule,
5416
5701
  args: [{
5417
5702
  exports: [...KENDO_DROPDOWNBUTTON],
@@ -5420,30 +5705,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5420
5705
  }]
5421
5706
  }] });
5422
5707
 
5423
- const EXPORTED_DIRECTIVES = [
5424
- ListComponent,
5425
- FocusableDirective,
5426
- ButtonItemTemplateDirective
5427
- ];
5428
- //IMPORTANT: NgModule export kept for backwards compatibility
5429
- class ListModule {
5430
- }
5431
- ListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5432
- ListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ListModule, imports: [ListComponent,
5433
- FocusableDirective,
5434
- ButtonItemTemplateDirective], exports: [ListComponent,
5435
- FocusableDirective,
5436
- ButtonItemTemplateDirective] });
5437
- ListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListModule, providers: [IconsService], imports: [ListComponent] });
5438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListModule, decorators: [{
5439
- type: NgModule,
5440
- args: [{
5441
- imports: [...EXPORTED_DIRECTIVES],
5442
- exports: [...EXPORTED_DIRECTIVES],
5443
- providers: [IconsService]
5444
- }]
5445
- }] });
5446
-
5447
5708
  //IMPORTANT: NgModule export kept for backwards compatibility
5448
5709
  /**
5449
5710
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -5474,11 +5735,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5474
5735
  * ```
5475
5736
  */
5476
5737
  class ChipModule {
5738
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5739
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, imports: [ChipComponent, ChipListComponent], exports: [ChipComponent, ChipListComponent] });
5740
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, providers: [IconsService], imports: [ChipComponent] });
5477
5741
  }
5478
- ChipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5479
- ChipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, imports: [ChipComponent, ChipListComponent], exports: [ChipComponent, ChipListComponent] });
5480
- ChipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, providers: [IconsService], imports: [KENDO_CHIPLIST] });
5481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipModule, decorators: [{
5742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, decorators: [{
5482
5743
  type: NgModule,
5483
5744
  args: [{
5484
5745
  exports: [...KENDO_CHIPLIST],
@@ -5517,11 +5778,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5517
5778
  * ```
5518
5779
  */
5519
5780
  class FloatingActionButtonModule {
5781
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5782
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, imports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective], exports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective] });
5783
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [FloatingActionButtonComponent] });
5520
5784
  }
5521
- FloatingActionButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5522
- FloatingActionButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, imports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective], exports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective] });
5523
- FloatingActionButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [FloatingActionButtonComponent] });
5524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingActionButtonModule, decorators: [{
5785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, decorators: [{
5525
5786
  type: NgModule,
5526
5787
  args: [{
5527
5788
  exports: [...KENDO_FLOATINGACTIONBUTTON],
@@ -5534,5 +5795,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5534
5795
  * Generated bundle index. Do not edit.
5535
5796
  */
5536
5797
 
5537
- 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 };
5798
+ 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 };
5538
5799