@progress/kendo-angular-buttons 17.0.0-develop.9 → 17.0.1-develop.1

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 +65 -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 +1318 -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: 1729174306,
48
- version: '17.0.0-develop.9',
45
+ publishDate: 1731429614,
46
+ version: '17.0.1-develop.1',
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');
@@ -1704,6 +1820,7 @@ class ChipListComponent {
1704
1820
  if (chip.removable) {
1705
1821
  this.renderer.setAttribute(chipEl, 'aria-keyshortcuts', 'Enter Delete');
1706
1822
  }
1823
+ this.setChipSize(chip, this.size);
1707
1824
  });
1708
1825
  }
1709
1826
  normalizeActiveIndex() {
@@ -1711,18 +1828,23 @@ class ChipListComponent {
1711
1828
  this.currentActiveIndex = Math.max(this.chips.length - 1, 0);
1712
1829
  }
1713
1830
  }
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: `
1831
+ setChipSize(chip, size) {
1832
+ const hasSize = chip.sizeIsSet;
1833
+ !hasSize && chip.size !== size && (chip.size = size);
1834
+ !hasSize && (chip.sizeIsSet = false);
1835
+ }
1836
+ 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 });
1837
+ 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: [
1838
+ LocalizationService,
1839
+ {
1840
+ provide: L10N_PREFIX,
1841
+ useValue: 'kendo.chiplist'
1842
+ }
1843
+ ], queries: [{ propertyName: "chips", predicate: ChipComponent }], ngImport: i0, template: `
1723
1844
  <ng-content></ng-content>
1724
1845
  `, isInline: true });
1725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipListComponent, decorators: [{
1846
+ }
1847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipListComponent, decorators: [{
1726
1848
  type: Component,
1727
1849
  args: [{
1728
1850
  selector: 'kendo-chiplist, kendo-chip-list',
@@ -1828,13 +1950,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1828
1950
  * For more examples, refer to the article on the [DropDownButton templates](slug:itemstemplates_dropdownbutton).
1829
1951
  */
1830
1952
  class ButtonItemTemplateDirective {
1953
+ templateRef;
1831
1954
  constructor(templateRef) {
1832
1955
  this.templateRef = templateRef;
1833
1956
  }
1957
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1958
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ButtonItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]", ngImport: i0 });
1834
1959
  }
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: [{
1960
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonItemTemplateDirective, decorators: [{
1838
1961
  type: Directive,
1839
1962
  args: [{
1840
1963
  selector: '[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]',
@@ -1846,9 +1969,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1846
1969
  * @hidden
1847
1970
  */
1848
1971
  class FocusService {
1849
- constructor() {
1850
- this.onFocus = new EventEmitter();
1851
- }
1972
+ onFocus = new EventEmitter();
1973
+ focusedIndex;
1852
1974
  isFocused(index) {
1853
1975
  return index === this.focused;
1854
1976
  }
@@ -1869,10 +1991,10 @@ class FocusService {
1869
1991
  this.focusedIndex = index;
1870
1992
  this.onFocus.emit(index);
1871
1993
  }
1994
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1995
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService });
1872
1996
  }
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: [{
1997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusService, decorators: [{
1876
1998
  type: Injectable
1877
1999
  }] });
1878
2000
 
@@ -1912,15 +2034,16 @@ const NAVIGATION_CONFIG = new InjectionToken('navigation.config');
1912
2034
  * @hidden
1913
2035
  */
1914
2036
  class NavigationService {
2037
+ navigate = new EventEmitter();
2038
+ open = new EventEmitter();
2039
+ close = new EventEmitter();
2040
+ enter = new EventEmitter();
2041
+ enterpress = new EventEmitter();
2042
+ enterup = new EventEmitter();
2043
+ tab = new EventEmitter();
2044
+ esc = new EventEmitter();
2045
+ useLeftRightArrows;
1915
2046
  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
2047
  this.useLeftRightArrows = config.useLeftRightArrows;
1925
2048
  }
1926
2049
  process(args) {
@@ -1998,10 +2121,10 @@ class NavigationService {
1998
2121
  return args.current !== args.end ? args.current + args.step : args.end;
1999
2122
  }
2000
2123
  }
2124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: NAVIGATION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
2125
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
2001
2126
  }
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: [{
2127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, decorators: [{
2005
2128
  type: Injectable
2006
2129
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2007
2130
  type: Inject,
@@ -2012,90 +2135,310 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2012
2135
  * @hidden
2013
2136
  */
2014
2137
  class PopupContainerService {
2138
+ container;
2139
+ template;
2140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2141
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService });
2015
2142
  }
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: [{
2143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupContainerService, decorators: [{
2019
2144
  type: Injectable
2020
2145
  }] });
2021
2146
 
2022
2147
  /**
2023
2148
  * @hidden
2024
2149
  */
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);
2150
+ class FocusableDirective {
2151
+ focusService;
2152
+ renderer;
2153
+ index;
2154
+ element;
2155
+ subs = new Subscription();
2156
+ constructor(focusService, elementRef, renderer) {
2066
2157
  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')));
2158
+ this.renderer = renderer;
2159
+ this.element = elementRef.nativeElement;
2070
2160
  this.subscribeEvents();
2071
2161
  }
2072
- /**
2073
- * Sets the disabled state of the DropDownButton.
2074
- */
2075
- set disabled(value) {
2076
- if (value && this.openState) {
2077
- this.openState = false;
2162
+ ngOnInit() {
2163
+ if (this.index === this.focusService.focused) {
2164
+ this.renderer.addClass(this.element, 'k-focus');
2165
+ }
2166
+ else {
2167
+ this.renderer.removeClass(this.element, 'k-focus');
2078
2168
  }
2079
- this._disabled = value;
2080
- }
2081
- get disabled() {
2082
- return this._disabled;
2083
2169
  }
2084
2170
  /**
2085
2171
  * @hidden
2086
2172
  */
2087
- get componentTabIndex() {
2088
- return this.disabled ? (-1) : this.tabIndex;
2173
+ ngOnDestroy() {
2174
+ this.subs.unsubscribe();
2089
2175
  }
2090
- get appendTo() {
2091
- const { appendTo } = this.popupSettings;
2092
- if (!appendTo || appendTo === 'root') {
2093
- return undefined;
2176
+ subscribeEvents() {
2177
+ if (!isDocumentAvailable()) {
2178
+ return;
2094
2179
  }
2095
- return appendTo === 'component' ? this.containerService.container : appendTo;
2096
- }
2097
- /**
2098
- * Configures the popup of the DropDownButton.
2180
+ this.subs.add(this.focusService.onFocus.subscribe((index) => {
2181
+ if (this.index === index) {
2182
+ this.renderer.addClass(this.element, 'k-focus');
2183
+ this.renderer.setAttribute(this.element, 'tabindex', '0');
2184
+ this.element.focus();
2185
+ }
2186
+ else {
2187
+ this.renderer.setAttribute(this.element, 'tabindex', '-1');
2188
+ this.renderer.removeClass(this.element, 'k-focus');
2189
+ }
2190
+ }));
2191
+ }
2192
+ 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 });
2193
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FocusableDirective, isStandalone: true, selector: "[kendoButtonFocusable]", inputs: { index: "index" }, ngImport: i0 });
2194
+ }
2195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusableDirective, decorators: [{
2196
+ type: Directive,
2197
+ args: [{
2198
+ selector: '[kendoButtonFocusable]',
2199
+ standalone: true
2200
+ }]
2201
+ }], ctorParameters: function () { return [{ type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { index: [{
2202
+ type: Input
2203
+ }] } });
2204
+
2205
+ /**
2206
+ * @hidden
2207
+ */
2208
+ class ListComponent {
2209
+ data;
2210
+ textField;
2211
+ itemTemplate;
2212
+ onItemClick = new EventEmitter();
2213
+ onItemBlur = new EventEmitter();
2214
+ set size(size) {
2215
+ if (size) {
2216
+ this.sizeClass = `k-menu-group-${SIZES[size]}`;
2217
+ }
2218
+ else {
2219
+ this.sizeClass = '';
2220
+ }
2221
+ }
2222
+ sizeClass = '';
2223
+ constructor() {
2224
+ validatePackage(packageMetadata);
2225
+ }
2226
+ getText(dataItem) {
2227
+ if (dataItem) {
2228
+ return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
2229
+ }
2230
+ return undefined;
2231
+ }
2232
+ getIconClasses(dataItem) {
2233
+ const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;
2234
+ const classes = {};
2235
+ classes[icon || dataItem.iconClass] = true;
2236
+ return classes;
2237
+ }
2238
+ onClick(index) {
2239
+ this.onItemClick.emit(index);
2240
+ }
2241
+ onBlur() {
2242
+ this.onItemBlur.emit();
2243
+ }
2244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2245
+ 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: `
2246
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
2247
+ <li kendoButtonFocusable
2248
+ *ngFor="let dataItem of data; let index = index;"
2249
+ [index]="index"
2250
+ tabindex="-1"
2251
+ class="k-item k-menu-item"
2252
+ role="listitem"
2253
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
2254
+ (click)="$event.stopImmediatePropagation(); onClick(index);"
2255
+ (blur)="onBlur()">
2256
+ <ng-template [ngIf]="itemTemplate?.templateRef">
2257
+ <span
2258
+ class="k-link k-menu-link"
2259
+ [class.k-disabled]="dataItem.disabled"
2260
+ [ngClass]="dataItem.cssClass">
2261
+ <ng-template
2262
+ [templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
2263
+ ></ng-template>
2264
+ </span>
2265
+ </ng-template>
2266
+ <ng-template [ngIf]="!itemTemplate?.templateRef">
2267
+ <span
2268
+ class="k-link k-menu-link"
2269
+ [class.k-disabled]="dataItem.disabled"
2270
+ [ngClass]="dataItem.cssClass">
2271
+ <kendo-icon-wrapper
2272
+ *ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
2273
+ [name]="dataItem.icon"
2274
+ [svgIcon]="dataItem.svgIcon"
2275
+ [customFontClass]="dataItem.iconClass"
2276
+ ></kendo-icon-wrapper>
2277
+ <img
2278
+ *ngIf="dataItem.imageUrl"
2279
+ class="k-image"
2280
+ [src]="dataItem.imageUrl"
2281
+ [alt]="dataItem.imageAlt"
2282
+ >
2283
+ <span *ngIf="getText(dataItem)" class="k-menu-link-text">
2284
+ {{ getText(dataItem) }}
2285
+ </span>
2286
+ </span>
2287
+ </ng-template>
2288
+ </li>
2289
+ </ul>
2290
+ `, 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"] }] });
2291
+ }
2292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
2293
+ type: Component,
2294
+ args: [{
2295
+ selector: 'kendo-button-list',
2296
+ template: `
2297
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
2298
+ <li kendoButtonFocusable
2299
+ *ngFor="let dataItem of data; let index = index;"
2300
+ [index]="index"
2301
+ tabindex="-1"
2302
+ class="k-item k-menu-item"
2303
+ role="listitem"
2304
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
2305
+ (click)="$event.stopImmediatePropagation(); onClick(index);"
2306
+ (blur)="onBlur()">
2307
+ <ng-template [ngIf]="itemTemplate?.templateRef">
2308
+ <span
2309
+ class="k-link k-menu-link"
2310
+ [class.k-disabled]="dataItem.disabled"
2311
+ [ngClass]="dataItem.cssClass">
2312
+ <ng-template
2313
+ [templateContext]="{ templateRef: itemTemplate?.templateRef, $implicit: dataItem }"
2314
+ ></ng-template>
2315
+ </span>
2316
+ </ng-template>
2317
+ <ng-template [ngIf]="!itemTemplate?.templateRef">
2318
+ <span
2319
+ class="k-link k-menu-link"
2320
+ [class.k-disabled]="dataItem.disabled"
2321
+ [ngClass]="dataItem.cssClass">
2322
+ <kendo-icon-wrapper
2323
+ *ngIf="dataItem.icon || dataItem.iconClass || dataItem.svgIcon"
2324
+ [name]="dataItem.icon"
2325
+ [svgIcon]="dataItem.svgIcon"
2326
+ [customFontClass]="dataItem.iconClass"
2327
+ ></kendo-icon-wrapper>
2328
+ <img
2329
+ *ngIf="dataItem.imageUrl"
2330
+ class="k-image"
2331
+ [src]="dataItem.imageUrl"
2332
+ [alt]="dataItem.imageAlt"
2333
+ >
2334
+ <span *ngIf="getText(dataItem)" class="k-menu-link-text">
2335
+ {{ getText(dataItem) }}
2336
+ </span>
2337
+ </span>
2338
+ </ng-template>
2339
+ </li>
2340
+ </ul>
2341
+ `,
2342
+ standalone: true,
2343
+ imports: [NgClass, NgFor, FocusableDirective, NgIf, TemplateContextDirective, IconWrapperComponent]
2344
+ }]
2345
+ }], ctorParameters: function () { return []; }, propDecorators: { data: [{
2346
+ type: Input
2347
+ }], textField: [{
2348
+ type: Input
2349
+ }], itemTemplate: [{
2350
+ type: Input
2351
+ }], onItemClick: [{
2352
+ type: Output
2353
+ }], onItemBlur: [{
2354
+ type: Output
2355
+ }], size: [{
2356
+ type: Input
2357
+ }] } });
2358
+
2359
+ /**
2360
+ * @hidden
2361
+ */
2362
+ class ListButton extends MultiTabStop {
2363
+ focusService;
2364
+ navigationService;
2365
+ wrapperRef;
2366
+ _zone;
2367
+ popupService;
2368
+ elRef;
2369
+ cdr;
2370
+ containerService;
2371
+ listId = guid();
2372
+ buttonId = guid();
2373
+ _data;
2374
+ _open = false;
2375
+ _disabled = false;
2376
+ _active = false;
2377
+ _popupSettings = { animate: true, popupClass: '' };
2378
+ _isFocused = false;
2379
+ _itemClick;
2380
+ _blur;
2381
+ wrapper;
2382
+ subs = new Subscription();
2383
+ direction;
2384
+ popupRef;
2385
+ popupSubs = new Subscription();
2386
+ button;
2387
+ buttonList;
2388
+ popupTemplate;
2389
+ container;
2390
+ /**
2391
+ * Sets the disabled state of the DropDownButton.
2392
+ */
2393
+ set disabled(value) {
2394
+ if (value && this.openState) {
2395
+ this.openState = false;
2396
+ }
2397
+ this._disabled = value;
2398
+ }
2399
+ get disabled() {
2400
+ return this._disabled;
2401
+ }
2402
+ /**
2403
+ * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
2404
+ */
2405
+ tabIndex = 0;
2406
+ /**
2407
+ * The CSS classes that will be rendered on the main button.
2408
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
2409
+ */
2410
+ buttonClass;
2411
+ /**
2412
+ * Fires each time the popup is about to open.
2413
+ * This event is preventable. If you cancel the event, the popup will remain closed.
2414
+ */
2415
+ open = new EventEmitter();
2416
+ /**
2417
+ * Fires each time the popup is about to close.
2418
+ * This event is preventable. If you cancel the event, the popup will remain open.
2419
+ */
2420
+ close = new EventEmitter();
2421
+ /**
2422
+ * Needed by the kendoToggleButtonTabStop directive
2423
+ *
2424
+ * @hidden
2425
+ */
2426
+ escape = new EventEmitter();
2427
+ /**
2428
+ * @hidden
2429
+ */
2430
+ get componentTabIndex() {
2431
+ return this.disabled ? (-1) : this.tabIndex;
2432
+ }
2433
+ get appendTo() {
2434
+ const { appendTo } = this.popupSettings;
2435
+ if (!appendTo || appendTo === 'root') {
2436
+ return undefined;
2437
+ }
2438
+ return appendTo === 'component' ? this.containerService.container : appendTo;
2439
+ }
2440
+ /**
2441
+ * Configures the popup of the DropDownButton.
2099
2442
  *
2100
2443
  * The available options are:
2101
2444
  * - `animate: Boolean`&mdash;Controls the popup animation. By default, the open and close animations are enabled.
@@ -2129,6 +2472,24 @@ class ListButton extends MultiTabStop {
2129
2472
  }
2130
2473
  return align;
2131
2474
  }
2475
+ isClosePrevented = false;
2476
+ constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
2477
+ super();
2478
+ this.focusService = focusService;
2479
+ this.navigationService = navigationService;
2480
+ this.wrapperRef = wrapperRef;
2481
+ this._zone = _zone;
2482
+ this.popupService = popupService;
2483
+ this.elRef = elRef;
2484
+ this.cdr = cdr;
2485
+ this.containerService = containerService;
2486
+ validatePackage(packageMetadata);
2487
+ this.focusService = focusService;
2488
+ this.navigationService = navigationService;
2489
+ this.wrapper = wrapperRef.nativeElement;
2490
+ this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
2491
+ this.subscribeEvents();
2492
+ }
2132
2493
  ngOnChanges(changes) {
2133
2494
  if (isChanged("popupSettings", changes) && isPresent(this.popupRef)) {
2134
2495
  const popup = this.popupRef.popup.instance;
@@ -2389,15 +2750,27 @@ class ListButton extends MultiTabStop {
2389
2750
  this.isClosePrevented = false;
2390
2751
  }
2391
2752
  }
2753
+ 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 });
2754
+ 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
2755
  }
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: [{
2756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListButton, decorators: [{
2396
2757
  type: Component,
2397
2758
  args: [{
2398
2759
  template: ''
2399
2760
  }]
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: [{
2761
+ }], 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: [{
2762
+ type: ViewChild,
2763
+ args: ['button', { read: ElementRef }]
2764
+ }], buttonList: [{
2765
+ type: ViewChild,
2766
+ args: ['buttonList']
2767
+ }], popupTemplate: [{
2768
+ type: ViewChild,
2769
+ args: ['popupTemplate']
2770
+ }], container: [{
2771
+ type: ViewChild,
2772
+ args: ['container', { read: ViewContainerRef }]
2773
+ }], disabled: [{
2401
2774
  type: Input
2402
2775
  }], tabIndex: [{
2403
2776
  type: Input
@@ -2413,211 +2786,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2413
2786
  type: Input
2414
2787
  }] } });
2415
2788
 
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
2789
  const NAVIGATION_SETTINGS$2 = {
2622
2790
  useLeftRightArrows: true
2623
2791
  };
@@ -2655,89 +2823,34 @@ const DEFAULT_FILL_MODE$1 = 'solid';
2655
2823
  * ```
2656
2824
  */
2657
2825
  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
- }
2826
+ containerService;
2827
+ renderer;
2828
+ /**
2829
+ * Allows showing the default arrow icon or providing alternative one instead.
2830
+ * @default false
2831
+ */
2832
+ arrowIcon = false;
2833
+ /**
2834
+ * Defines the name of an existing icon in the Kendo UI theme.
2835
+ */
2836
+ icon = '';
2837
+ /**
2838
+ * Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the button.
2839
+ */
2840
+ svgIcon;
2841
+ /**
2842
+ * Defines the list of CSS classes which are used for styling the Button with custom icons.
2843
+ */
2844
+ iconClass = '';
2845
+ /**
2846
+ * Defines a URL for styling the button with a custom image.
2847
+ */
2848
+ imageUrl = '';
2849
+ /**
2850
+ * Sets the data item field that represents the item text.
2851
+ * If the data contains only primitive values, do not define it.
2852
+ */
2853
+ textField;
2741
2854
  /**
2742
2855
  * Sets or gets the data of the DropDownButton.
2743
2856
  *
@@ -2749,6 +2862,29 @@ class DropDownButtonComponent extends ListButton {
2749
2862
  get data() {
2750
2863
  return this._data;
2751
2864
  }
2865
+ /**
2866
+ * The size property specifies the padding of the DropDownButton
2867
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
2868
+ *
2869
+ * The possible values are:
2870
+ * * `small`
2871
+ * * `medium` (default)
2872
+ * * `large`
2873
+ * * `none`
2874
+ */
2875
+ size = 'medium';
2876
+ /**
2877
+ * The rounded property specifies the border radius of the DropDownButton
2878
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
2879
+ *
2880
+ * The possible values are:
2881
+ * * `small`
2882
+ * * `medium` (default)
2883
+ * * `large`
2884
+ * * `full`
2885
+ * * `none`
2886
+ */
2887
+ rounded = 'medium';
2752
2888
  /**
2753
2889
  * The fillMode property specifies the background and border styles of the DropDownButton
2754
2890
  * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
@@ -2766,6 +2902,26 @@ class DropDownButtonComponent extends ListButton {
2766
2902
  get fillMode() {
2767
2903
  return this._fillMode;
2768
2904
  }
2905
+ /**
2906
+ * The DropDownButton allows you to specify predefined theme colors.
2907
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
2908
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
2909
+ *
2910
+ * The possible values are:
2911
+ * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
2912
+ * * `primary` &mdash;Applies coloring based on the `primary` theme color.
2913
+ * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
2914
+ * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
2915
+ * * `info`&mdash;Applies coloring based on the `info` theme color.
2916
+ * * `success`&mdash; Applies coloring based on the `success` theme color.
2917
+ * * `warning`&mdash; Applies coloring based on the `warning` theme color.
2918
+ * * `error`&mdash; Applies coloring based on the `error` theme color.
2919
+ * * `dark`&mdash; Applies coloring based on the `dark` theme color.
2920
+ * * `light`&mdash; Applies coloring based on the `light` theme color.
2921
+ * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
2922
+ * * `none` &mdash;Removes the default CSS class (no class would be rendered).
2923
+ */
2924
+ themeColor = 'base';
2769
2925
  /**
2770
2926
  * Sets attributes to the main button.
2771
2927
  */
@@ -2777,11 +2933,20 @@ class DropDownButtonComponent extends ListButton {
2777
2933
  get buttonAttributes() {
2778
2934
  return this._buttonAttributes;
2779
2935
  }
2936
+ /**
2937
+ * 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.
2938
+ */
2939
+ itemClick = new EventEmitter();
2940
+ /**
2941
+ * Fires each time the DropDownButton gets focused.
2942
+ */
2943
+ onFocus = new EventEmitter();
2944
+ /**
2945
+ * Fires each time the DropDownButton gets blurred.
2946
+ */
2947
+ onBlur = new EventEmitter();
2780
2948
  get focused() {
2781
- return this._isFocused && !this._disabled;
2782
- }
2783
- get widgetClasses() {
2784
- return true;
2949
+ return this._isFocused && !this._disabled;
2785
2950
  }
2786
2951
  get dir() {
2787
2952
  return this.direction;
@@ -2792,6 +2957,10 @@ class DropDownButtonComponent extends ListButton {
2792
2957
  get active() {
2793
2958
  return this._active;
2794
2959
  }
2960
+ itemTemplate;
2961
+ _fillMode = DEFAULT_FILL_MODE$1;
2962
+ _buttonAttributes = null;
2963
+ documentMouseUpSub;
2795
2964
  /**
2796
2965
  * @hidden
2797
2966
  */
@@ -2861,6 +3030,20 @@ class DropDownButtonComponent extends ListButton {
2861
3030
  this.blurWrapper();
2862
3031
  }
2863
3032
  }
3033
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService, renderer) {
3034
+ super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
3035
+ this.containerService = containerService;
3036
+ this.renderer = renderer;
3037
+ this._itemClick = this.itemClick;
3038
+ this._blur = this.onBlur;
3039
+ zone.runOutsideAngular(() => {
3040
+ this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
3041
+ if (this.active) {
3042
+ zone.run(() => this._active = false);
3043
+ }
3044
+ });
3045
+ });
3046
+ }
2864
3047
  ngAfterViewInit() {
2865
3048
  this.containerService.container = this.container;
2866
3049
  this.containerService.template = this.popupTemplate;
@@ -2906,19 +3089,26 @@ class DropDownButtonComponent extends ListButton {
2906
3089
  }
2907
3090
  }
2908
3091
  }
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: `
3092
+ /**
3093
+ * @hidden
3094
+ */
3095
+ ngOnDestroy() {
3096
+ if (this.documentMouseUpSub) {
3097
+ this.documentMouseUpSub();
3098
+ }
3099
+ }
3100
+ 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 });
3101
+ 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: [
3102
+ FocusService,
3103
+ NavigationService,
3104
+ NAVIGATION_SETTINGS_PROVIDER$2,
3105
+ LocalizationService,
3106
+ {
3107
+ provide: L10N_PREFIX,
3108
+ useValue: 'kendo.dropdownbutton'
3109
+ },
3110
+ PopupContainerService
3111
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2922
3112
  <button kendoButton #button
2923
3113
  type="button"
2924
3114
  [id]="buttonId"
@@ -2963,7 +3153,8 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
2963
3153
  </ng-template>
2964
3154
  <ng-container #container></ng-container>
2965
3155
  `, 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: [{
3156
+ }
3157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonComponent, decorators: [{
2967
3158
  type: Component,
2968
3159
  args: [{
2969
3160
  exportAs: 'kendoDropDownButton',
@@ -3062,27 +3253,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3062
3253
  }], focused: [{
3063
3254
  type: HostBinding,
3064
3255
  args: ['class.k-focus']
3065
- }], widgetClasses: [{
3066
- type: HostBinding,
3067
- args: ['class.k-dropdown-button']
3068
3256
  }], dir: [{
3069
3257
  type: HostBinding,
3070
3258
  args: ['attr.dir']
3071
3259
  }], itemTemplate: [{
3072
3260
  type: ContentChild,
3073
3261
  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
3262
  }], keydown: [{
3087
3263
  type: HostListener,
3088
3264
  args: ['keydown', ['$event']]
@@ -3168,13 +3344,14 @@ function closeAnimation(animationSettings) {
3168
3344
  * ([see example]({% slug templates_floatingactionbutton %}#toc-dial-item-template)).
3169
3345
  */
3170
3346
  class DialItemTemplateDirective {
3347
+ templateRef;
3171
3348
  constructor(templateRef) {
3172
3349
  this.templateRef = templateRef;
3173
3350
  }
3351
+ 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 });
3352
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DialItemTemplateDirective, isStandalone: true, selector: "[kendoDialItemTemplate]", ngImport: i0 });
3174
3353
  }
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: [{
3354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemTemplateDirective, decorators: [{
3178
3355
  type: Directive,
3179
3356
  args: [{
3180
3357
  selector: '[kendoDialItemTemplate]',
@@ -3191,13 +3368,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3191
3368
  * ([see example]({% slug templates_floatingactionbutton %}#toc-floatingactionbutton-template)).
3192
3369
  */
3193
3370
  class FloatingActionButtonTemplateDirective {
3371
+ templateRef;
3194
3372
  constructor(templateRef) {
3195
3373
  this.templateRef = templateRef;
3196
3374
  }
3375
+ 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 });
3376
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FloatingActionButtonTemplateDirective, isStandalone: true, selector: "[kendoFloatingActionButtonTemplate]", ngImport: i0 });
3197
3377
  }
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: [{
3378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonTemplateDirective, decorators: [{
3201
3379
  type: Directive,
3202
3380
  args: [{
3203
3381
  selector: '[kendoFloatingActionButtonTemplate]',
@@ -3211,13 +3389,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3211
3389
  * @hidden
3212
3390
  */
3213
3391
  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
- }
3392
+ element;
3393
+ renderer;
3394
+ localisationService;
3395
+ hostClass = true;
3396
+ role = 'menuitem';
3221
3397
  get disabledClass() {
3222
3398
  return this.item.disabled;
3223
3399
  }
@@ -3228,6 +3404,18 @@ class DialItemComponent {
3228
3404
  get indexAttr() {
3229
3405
  return this.index;
3230
3406
  }
3407
+ cssClass;
3408
+ cssStyle;
3409
+ isFocused;
3410
+ index;
3411
+ item;
3412
+ dialItemTemplate;
3413
+ align;
3414
+ constructor(element, renderer, localisationService) {
3415
+ this.element = element;
3416
+ this.renderer = renderer;
3417
+ this.localisationService = localisationService;
3418
+ }
3231
3419
  get iconClasses() {
3232
3420
  const classes = [];
3233
3421
  if (this.item.iconClass) {
@@ -3258,9 +3446,8 @@ class DialItemComponent {
3258
3446
  };
3259
3447
  return directions[dir][align];
3260
3448
  }
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: `
3449
+ 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 });
3450
+ 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
3451
  <ng-template *ngIf="dialItemTemplate"
3265
3452
  [ngTemplateOutlet]="dialItemTemplate"
3266
3453
  [ngTemplateOutletContext]="{ $implicit: item, index: index, isFocused: isFocused }"
@@ -3277,7 +3464,8 @@ DialItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
3277
3464
  [svgIcon]="item.svgIcon"></kendo-icon-wrapper>
3278
3465
  </ng-container>
3279
3466
  `, 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: [{
3467
+ }
3468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialItemComponent, decorators: [{
3281
3469
  type: Component,
3282
3470
  args: [{
3283
3471
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -3343,28 +3531,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3343
3531
  * @hidden
3344
3532
  */
3345
3533
  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
- }
3534
+ focusService;
3535
+ cdr;
3536
+ hostClass = true;
3353
3537
  get bottomClass() {
3354
3538
  return this.align.vertical === 'top' || this.align.vertical === 'middle';
3355
3539
  }
3356
3540
  get topClass() {
3357
3541
  return this.align.vertical === 'bottom';
3358
3542
  }
3543
+ dialItems;
3544
+ dialItemTemplate;
3545
+ align;
3546
+ subscriptions = new Subscription();
3547
+ constructor(focusService, cdr) {
3548
+ this.focusService = focusService;
3549
+ this.cdr = cdr;
3550
+ this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));
3551
+ }
3359
3552
  isFocused(index) {
3360
3553
  return this.focusService.isFocused(index);
3361
3554
  }
3362
3555
  ngOnDestroy() {
3363
3556
  this.subscriptions.unsubscribe();
3364
3557
  }
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: `
3558
+ 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 });
3559
+ 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
3560
  <ng-container *ngFor='let item of dialItems; let idx = index'>
3369
3561
  <li
3370
3562
  kendoButtonFocusable
@@ -3380,7 +3572,8 @@ DialListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
3380
3572
  </li>
3381
3573
  </ng-container>
3382
3574
  `, 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: [{
3575
+ }
3576
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialListComponent, decorators: [{
3384
3577
  type: Component,
3385
3578
  args: [{
3386
3579
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -3453,101 +3646,25 @@ const DEFAULT_THEME_COLOR = 'primary';
3453
3646
  *
3454
3647
  */
3455
3648
  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
- }
3649
+ renderer;
3650
+ element;
3651
+ focusService;
3652
+ navigationService;
3653
+ ngZone;
3654
+ popupService;
3655
+ builder;
3656
+ localizationService;
3545
3657
  get fixedClass() {
3546
3658
  return this.positionMode === 'fixed';
3547
3659
  }
3548
3660
  get absoluteClass() {
3549
3661
  return this.positionMode === 'absolute';
3550
3662
  }
3663
+ direction;
3664
+ button;
3665
+ popupTemplate;
3666
+ dialItemTemplate;
3667
+ fabTemplate;
3551
3668
  /**
3552
3669
  * Specifies the theme color of the FloatingActionButton
3553
3670
  * ([see example](slug:appearance_floatingactionbutton#toc-theme-colors)).
@@ -3650,12 +3767,131 @@ class FloatingActionButtonComponent {
3650
3767
  get offset() {
3651
3768
  return this._offset;
3652
3769
  }
3770
+ /**
3771
+ * Specifies the positionMode of the FloatingActionButton
3772
+ * ([see example](slug:positioning_floatingactionbutton#toc-position-mode)).
3773
+ *
3774
+ * * The possible values are:
3775
+ * * `absolute`&mdash;Positions the FloatingActionButton absolutely to its first positioned parent element.
3776
+ * * `fixed` (Default)&mdash;Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.
3777
+ */
3778
+ positionMode = 'fixed';
3779
+ /**
3780
+ * Defines the name of an existing icon in a Kendo UI theme.
3781
+ * If provided, the icon will be rendered inside the FloatingActionButton by a `span.k-icon` element.
3782
+ */
3783
+ icon;
3784
+ /**
3785
+ * Defines an [`SVGIcon`](slug:api_icons_svgicon) to be rendered within the FloatingActionButton.
3786
+ */
3787
+ svgIcon;
3788
+ /**
3789
+ * Defines a CSS class or multiple classes separated by spaces which are applied to a `span` element.
3790
+ * Allows the usage of custom icons, rendered inside the FloatingActionButton by a `span` element.
3791
+ */
3792
+ iconClass;
3793
+ /**
3794
+ * The CSS classes that will be rendered on the main button.
3795
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
3796
+ */
3797
+ buttonClass;
3798
+ /**
3799
+ * The CSS classes that will be rendered on the dial items `ul` element.
3800
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
3801
+ */
3802
+ dialClass;
3803
+ /**
3804
+ * Specifies the text content of the FloatingActionButton.
3805
+ */
3806
+ text;
3807
+ /**
3808
+ * Specifies the animation settings of the FloatingActionButton dial items.
3809
+ * ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).
3810
+ *
3811
+ * The possible values are:
3812
+ * * Boolean
3813
+ * * (Default) `true`&mdash;Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.
3814
+ * * `false`
3815
+ * * `DialItemAnimation`
3816
+ * * `duration`&mdash;Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.
3817
+ * * `gap`&mdash;Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.
3818
+ */
3819
+ dialItemAnimation = true;
3820
+ /**
3821
+ * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.
3822
+ */
3823
+ tabIndex = 0;
3824
+ /**
3825
+ * Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.
3826
+ */
3827
+ dialItems = [];
3828
+ /**
3829
+ * Fires each time the FloatingActionButton gets blurred.
3830
+ */
3831
+ onBlur = new EventEmitter();
3832
+ /**
3833
+ * Fires each time the FloatingActionButton gets focused.
3834
+ */
3835
+ onFocus = new EventEmitter();
3836
+ /**
3837
+ * Fires each time a dial item is clicked.
3838
+ */
3839
+ dialItemClick = new EventEmitter();
3840
+ /**
3841
+ * Fires each time the popup is about to open.
3842
+ * This event is preventable. If you cancel the event, the popup will remain closed
3843
+ * ([more information and example](slug:events_floatingactionbutton)).
3844
+ */
3845
+ open = new EventEmitter();
3846
+ /**
3847
+ * Fires each time the popup is about to close.
3848
+ * This event is preventable. If you cancel the event, the popup will remain open
3849
+ * ([more information and example](slug:events_floatingactionbutton)).
3850
+ */
3851
+ close = new EventEmitter();
3653
3852
  /**
3654
3853
  * @hidden
3655
3854
  */
3656
3855
  get componentTabIndex() {
3657
3856
  return this.disabled ? (-1) : this.tabIndex;
3658
3857
  }
3858
+ /**
3859
+ * @hidden
3860
+ */
3861
+ id = `k-${guid()}`;
3862
+ /**
3863
+ * @hidden
3864
+ */
3865
+ dialListId = `k-dial-list-${guid()}`;
3866
+ _themeColor = DEFAULT_THEME_COLOR;
3867
+ _size = DEFAULT_SIZE;
3868
+ _rounded = DEFAULT_ROUNDED$1;
3869
+ _disabled = false;
3870
+ _align = { horizontal: 'end', vertical: 'bottom' };
3871
+ _offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
3872
+ subscriptions = new Subscription();
3873
+ popupMouseDownListener;
3874
+ rtl = false;
3875
+ animationEnd = new EventEmitter();
3876
+ popupRef;
3877
+ initialSetup = true;
3878
+ focusChangedProgrammatically = false;
3879
+ constructor(renderer, element, focusService, navigationService, ngZone, popupService, builder, localizationService) {
3880
+ this.renderer = renderer;
3881
+ this.element = element;
3882
+ this.focusService = focusService;
3883
+ this.navigationService = navigationService;
3884
+ this.ngZone = ngZone;
3885
+ this.popupService = popupService;
3886
+ this.builder = builder;
3887
+ this.localizationService = localizationService;
3888
+ validatePackage(packageMetadata);
3889
+ this.subscribeNavigationEvents();
3890
+ this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
3891
+ this.rtl = rtl;
3892
+ this.direction = this.rtl ? 'rtl' : 'ltr';
3893
+ }));
3894
+ }
3659
3895
  ngAfterViewInit() {
3660
3896
  ['size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));
3661
3897
  this.renderer.addClass(this.element.nativeElement, this.alignClass());
@@ -4111,18 +4347,17 @@ class FloatingActionButtonComponent {
4111
4347
  }
4112
4348
  return DEFAULT_DURATION;
4113
4349
  }
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: `
4350
+ 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 });
4351
+ 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: [
4352
+ FocusService,
4353
+ NavigationService,
4354
+ NAVIGATION_SETTINGS_PROVIDER$1,
4355
+ LocalizationService,
4356
+ {
4357
+ provide: L10N_PREFIX,
4358
+ useValue: 'kendo.floatingactionbutton'
4359
+ }
4360
+ ], 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
4361
  <button
4127
4362
  #button
4128
4363
  [attr.id]="id"
@@ -4180,7 +4415,8 @@ FloatingActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
4180
4415
  </ul>
4181
4416
  </ng-template>
4182
4417
  `, 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: [{
4418
+ }
4419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonComponent, decorators: [{
4184
4420
  type: Component,
4185
4421
  args: [{
4186
4422
  selector: 'kendo-floatingactionbutton',
@@ -4327,10 +4563,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4327
4563
  * @hidden
4328
4564
  */
4329
4565
  class Messages extends ComponentMessages {
4566
+ /**
4567
+ * The text for the SplitButton aria-label.
4568
+ *
4569
+ * The text for the aria-label consists of a two-part message - the text of the SplitButton and a localizable string.
4570
+ * For a SplitButton with text 'Reply', the default aria-label will be 'Reply splitbutton'.
4571
+ *
4572
+ * To allow reordering of the SplitButton text and the localizable part, the splitButtonLabel accepts a string with a
4573
+ * placeholder for the button text - e.g. 'splitbutton for {buttonText}'. The '{buttonText}' placeholder will be replaced
4574
+ * internally with the current SplitButton text, and the resulting aria-label will be rendered as 'splitbutton for Reply'.
4575
+ *
4576
+ * @example
4577
+ *
4578
+ * ```ts-no-run
4579
+ * <kendo-splitbutton>
4580
+ * <kendo-splitbutton-messages
4581
+ * splitButtonLabel="splitbutton for {buttonText}"
4582
+ * >
4583
+ * </kendo-splitbutton-messages>
4584
+ * </kendo-splitbutton>
4585
+ * ```
4586
+ */
4587
+ splitButtonLabel;
4588
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4589
+ 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
4590
  }
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: [{
4591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
4334
4592
  type: Directive,
4335
4593
  args: [{
4336
4594
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4345,6 +4603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4345
4603
  * ([see example]({% slug rtl_buttons %}).
4346
4604
  */
4347
4605
  class SplitButtonCustomMessagesComponent extends Messages {
4606
+ service;
4348
4607
  constructor(service) {
4349
4608
  super();
4350
4609
  this.service = service;
@@ -4352,13 +4611,13 @@ class SplitButtonCustomMessagesComponent extends Messages {
4352
4611
  get override() {
4353
4612
  return true;
4354
4613
  }
4614
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4615
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitButtonCustomMessagesComponent, isStandalone: true, selector: "kendo-splitbutton-messages", providers: [{
4616
+ provide: Messages,
4617
+ useExisting: forwardRef(() => SplitButtonCustomMessagesComponent)
4618
+ }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
4355
4619
  }
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: [{
4620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonCustomMessagesComponent, decorators: [{
4362
4621
  type: Component,
4363
4622
  args: [{
4364
4623
  providers: [{
@@ -4375,19 +4634,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4375
4634
  * @hidden
4376
4635
  */
4377
4636
  class LocalizedSplitButtonMessagesDirective extends Messages {
4637
+ service;
4378
4638
  constructor(service) {
4379
4639
  super();
4380
4640
  this.service = service;
4381
4641
  }
4642
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
4643
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedSplitButtonMessagesDirective, isStandalone: true, selector: "[kendoSplitButtonLocalizedMessages]", providers: [
4644
+ {
4645
+ provide: Messages,
4646
+ useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective)
4647
+ }
4648
+ ], usesInheritance: true, ngImport: i0 });
4382
4649
  }
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: [{
4650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedSplitButtonMessagesDirective, decorators: [{
4391
4651
  type: Directive,
4392
4652
  args: [{
4393
4653
  providers: [
@@ -4452,154 +4712,46 @@ const DEFAULT_FILL_MODE = 'solid';
4452
4712
  * ```
4453
4713
  */
4454
4714
  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
- }
4715
+ localization;
4716
+ renderer;
4717
+ /**
4718
+ * Sets the text of the SplitButton.
4719
+ */
4720
+ text = '';
4721
+ /**
4722
+ * Defines an icon to be rendered next to the button text.
4723
+ * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4724
+ */
4725
+ icon = '';
4726
+ /**
4727
+ * Defines an SVGIcon to be rendered next to the button text.
4728
+ */
4729
+ svgIcon;
4730
+ /**
4731
+ * Defines an icon with a custom CSS class to be rendered next to the button text
4732
+ * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4733
+ */
4734
+ iconClass;
4735
+ /**
4736
+ * Defines the type attribute of the main button
4737
+ */
4738
+ type = 'button';
4739
+ /**
4740
+ * Defines the location of an image to be displayed next to the button text
4741
+ * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
4742
+ */
4743
+ imageUrl = '';
4744
+ /**
4745
+ * The size property specifies the padding of the SplitButton
4746
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
4747
+ *
4748
+ * The possible values are:
4749
+ * * `small`
4750
+ * * `medium` (default)
4751
+ * * `large`
4752
+ * * `none`
4753
+ */
4754
+ size = 'medium';
4603
4755
  /**
4604
4756
  * The rounded property specifies the border radius of the SplitButton
4605
4757
  * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
@@ -4636,6 +4788,26 @@ class SplitButtonComponent extends ListButton {
4636
4788
  get fillMode() {
4637
4789
  return this._fillMode;
4638
4790
  }
4791
+ /**
4792
+ * The SplitButton allows you to specify predefined theme colors.
4793
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
4794
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
4795
+ *
4796
+ * The possible values are:
4797
+ * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
4798
+ * * `primary` &mdash;Applies coloring based on the `primary` theme color.
4799
+ * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
4800
+ * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
4801
+ * * `info`&mdash;Applies coloring based on the `info` theme color.
4802
+ * * `success`&mdash; Applies coloring based on the `success` theme color.
4803
+ * * `warning`&mdash; Applies coloring based on the `warning` theme color.
4804
+ * * `error`&mdash; Applies coloring based on the `error` theme color.
4805
+ * * `dark`&mdash; Applies coloring based on the `dark` theme color.
4806
+ * * `light`&mdash; Applies coloring based on the `light` theme color.
4807
+ * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
4808
+ * * `none`&mdash; Removes the built in theme color.
4809
+ */
4810
+ themeColor = 'base';
4639
4811
  /**
4640
4812
  * When set to `true`, disables a SplitButton item
4641
4813
  * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
@@ -4664,6 +4836,14 @@ class SplitButtonComponent extends ListButton {
4664
4836
  get popupSettings() {
4665
4837
  return this._popupSettings;
4666
4838
  }
4839
+ /**
4840
+ * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
4841
+ */
4842
+ tabIndex = 0;
4843
+ /**
4844
+ * Configures the text field of the button-list popup.
4845
+ */
4846
+ textField;
4667
4847
  /**
4668
4848
  * Sets the data of the SplitButton.
4669
4849
  *
@@ -4678,6 +4858,21 @@ class SplitButtonComponent extends ListButton {
4678
4858
  }
4679
4859
  return this._data;
4680
4860
  }
4861
+ /**
4862
+ * The CSS classes that will be rendered on the button which opens the popup.
4863
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
4864
+ */
4865
+ arrowButtonClass;
4866
+ /**
4867
+ * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
4868
+ * be rendered for the button which opens the popup.
4869
+ */
4870
+ arrowButtonIcon = 'caret-alt-down';
4871
+ /**
4872
+ * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
4873
+ * be rendered for the button which opens the popup.
4874
+ */
4875
+ arrowButtonSvgIcon = caretAltDownIcon;
4681
4876
  /**
4682
4877
  * Sets attributes to the main button.
4683
4878
  */
@@ -4689,6 +4884,80 @@ class SplitButtonComponent extends ListButton {
4689
4884
  get buttonAttributes() {
4690
4885
  return this._buttonAttributes;
4691
4886
  }
4887
+ /**
4888
+ * Fires each time the user clicks the main button.
4889
+ *
4890
+ * @example
4891
+ * ```ts
4892
+ * _@Component({
4893
+ * selector: 'my-app',
4894
+ * template: `
4895
+ * <kendo-splitbutton (buttonClick)="onSplitButtonClick()" [data]="data">
4896
+ * Reply
4897
+ * </kendo-splitbutton>
4898
+ * `
4899
+ * })
4900
+ * class AppComponent {
4901
+ * public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
4902
+ *
4903
+ * public onSplitButtonClick(): void {
4904
+ * console.log('SplitButton click');
4905
+ * }
4906
+ * }
4907
+ * ```
4908
+ *
4909
+ */
4910
+ buttonClick = new EventEmitter();
4911
+ /**
4912
+ * Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.
4913
+ *
4914
+ * @example
4915
+ * ```ts
4916
+ * _@Component({
4917
+ * selector: 'my-app',
4918
+ * template: `
4919
+ * <kendo-splitbutton (itemClick)="onSplitButtonItemClick($event)" [data]="data">
4920
+ * Reply
4921
+ * </kendo-splitbutton>
4922
+ * `
4923
+ * })
4924
+ * class AppComponent {
4925
+ * public data: Array<any> = ['Reply All', 'Forward', 'Reply & Delete'];
4926
+ *
4927
+ * public onSplitButtonItemClick(dataItem?: string): void {
4928
+ * if (dataItem) {
4929
+ * console.log(dataItem);
4930
+ * }
4931
+ * }
4932
+ * }
4933
+ * ```
4934
+ *
4935
+ */
4936
+ itemClick = new EventEmitter();
4937
+ /**
4938
+ * Fires each time the SplitButton gets focused.
4939
+ */
4940
+ onFocus = new EventEmitter();
4941
+ /**
4942
+ * Fires each time the SplitButton gets blurred.
4943
+ */
4944
+ onBlur = new EventEmitter();
4945
+ /**
4946
+ * Fires each time the popup is about to open.
4947
+ * This event is preventable. If you cancel the event, the popup will remain closed.
4948
+ */
4949
+ open = new EventEmitter();
4950
+ /**
4951
+ * Fires each time the popup is about to close.
4952
+ * This event is preventable. If you cancel the event, the popup will remain open.
4953
+ */
4954
+ close = new EventEmitter();
4955
+ /**
4956
+ * An item template that helps to customize the item content.
4957
+ */
4958
+ itemTemplate;
4959
+ activeArrow = false;
4960
+ listId = guid();
4692
4961
  /**
4693
4962
  * @hidden
4694
4963
  */
@@ -4707,6 +4976,12 @@ class SplitButtonComponent extends ListButton {
4707
4976
  get componentTabIndex() {
4708
4977
  return this.disabled ? -1 : this.tabIndex;
4709
4978
  }
4979
+ buttonText = '';
4980
+ arrowButtonClicked = false;
4981
+ _rounded = DEFAULT_ROUNDED;
4982
+ _fillMode = DEFAULT_FILL_MODE;
4983
+ _buttonAttributes = null;
4984
+ documentMouseUpSub;
4710
4985
  set isFocused(value) {
4711
4986
  this._isFocused = value;
4712
4987
  }
@@ -4800,7 +5075,7 @@ class SplitButtonComponent extends ListButton {
4800
5075
  * @hidden
4801
5076
  */
4802
5077
  ngAfterViewInit() {
4803
- this.containerService.container = this.containerRef;
5078
+ this.containerService.container = this.container;
4804
5079
  this.containerService.template = this.popupTemplate;
4805
5080
  this.updateButtonText();
4806
5081
  this.handleClasses(this.rounded, 'rounded');
@@ -4824,6 +5099,14 @@ class SplitButtonComponent extends ListButton {
4824
5099
  popup.popupAlign = this.popupAlign;
4825
5100
  }
4826
5101
  }
5102
+ /**
5103
+ * @hidden
5104
+ */
5105
+ ngOnDestroy() {
5106
+ if (this.documentMouseUpSub) {
5107
+ this.documentMouseUpSub();
5108
+ }
5109
+ }
4827
5110
  /**
4828
5111
  * @hidden
4829
5112
  */
@@ -4892,6 +5175,23 @@ class SplitButtonComponent extends ListButton {
4892
5175
  this.blurWrapper();
4893
5176
  }
4894
5177
  }
5178
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer, containerService) {
5179
+ super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
5180
+ this.localization = localization;
5181
+ this.renderer = renderer;
5182
+ this._itemClick = this.itemClick;
5183
+ this._blur = this.onBlur;
5184
+ zone.runOutsideAngular(() => {
5185
+ this.documentMouseUpSub = this.renderer.listen('document', 'mouseup', () => {
5186
+ if (this.active) {
5187
+ zone.run(() => this._active = false);
5188
+ }
5189
+ if (this.activeArrow) {
5190
+ zone.run(() => this.activeArrow = false);
5191
+ }
5192
+ });
5193
+ });
5194
+ }
4895
5195
  /**
4896
5196
  * Returns the current open state of the popup.
4897
5197
  */
@@ -4934,26 +5234,26 @@ class SplitButtonComponent extends ListButton {
4934
5234
  }
4935
5235
  }
4936
5236
  }
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: `
5237
+ 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 });
5238
+ 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: [
5239
+ FocusService,
5240
+ NavigationService,
5241
+ NAVIGATION_SETTINGS_PROVIDER,
5242
+ LocalizationService,
5243
+ {
5244
+ provide: L10N_PREFIX,
5245
+ useValue: 'kendo.splitbutton'
5246
+ },
5247
+ PopupContainerService,
5248
+ {
5249
+ provide: MultiTabStop,
5250
+ useExisting: forwardRef(() => SplitButtonComponent)
5251
+ }
5252
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], exportAs: ["kendoSplitButton"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
4954
5253
  <ng-container kendoSplitButtonLocalizedMessages
4955
5254
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
4956
- splitButtonLabel="{{ '{buttonText} splitbutton' }}">
5255
+ splitButtonLabel="{{ '{buttonText} splitbutton' }}"
5256
+ >
4957
5257
  </ng-container>
4958
5258
  <button
4959
5259
  kendoButton
@@ -4981,8 +5281,7 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
4981
5281
  [attr.aria-label]="ariaLabel"
4982
5282
  >
4983
5283
  <span *ngIf="text" class="k-button-text">
4984
- {{ text }}
4985
- </span><ng-content></ng-content>
5284
+ {{ text }} </span><ng-content></ng-content>
4986
5285
  </button>
4987
5286
  <button kendoButton #arrowButton type="button"
4988
5287
  class="k-split-button-arrow"
@@ -5018,7 +5317,8 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
5018
5317
  </ng-template>
5019
5318
  <ng-container #container></ng-container>
5020
5319
  `, 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: [{
5320
+ }
5321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonComponent, decorators: [{
5022
5322
  type: Component,
5023
5323
  args: [{
5024
5324
  exportAs: 'kendoSplitButton',
@@ -5041,7 +5341,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5041
5341
  template: `
5042
5342
  <ng-container kendoSplitButtonLocalizedMessages
5043
5343
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
5044
- splitButtonLabel="{{ '{buttonText} splitbutton' }}">
5344
+ splitButtonLabel="{{ '{buttonText} splitbutton' }}"
5345
+ >
5045
5346
  </ng-container>
5046
5347
  <button
5047
5348
  kendoButton
@@ -5069,8 +5370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5069
5370
  [attr.aria-label]="ariaLabel"
5070
5371
  >
5071
5372
  <span *ngIf="text" class="k-button-text">
5072
- {{ text }}
5073
- </span><ng-content></ng-content>
5373
+ {{ text }} </span><ng-content></ng-content>
5074
5374
  </button>
5075
5375
  <button kendoButton #arrowButton type="button"
5076
5376
  class="k-split-button-arrow"
@@ -5139,8 +5439,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5139
5439
  type: Input
5140
5440
  }], data: [{
5141
5441
  type: Input
5142
- }], buttonClass: [{
5143
- type: Input
5144
5442
  }], arrowButtonClass: [{
5145
5443
  type: Input
5146
5444
  }], arrowButtonIcon: [{
@@ -5166,18 +5464,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5166
5464
  }], itemTemplate: [{
5167
5465
  type: ContentChild,
5168
5466
  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
5467
  }], isFocused: [{
5182
5468
  type: HostBinding,
5183
5469
  args: ['class.k-focus']
@@ -5269,11 +5555,11 @@ const KENDO_BUTTONS = [
5269
5555
  * - `ButtonComponent`&mdash;The Button component class.
5270
5556
  */
5271
5557
  class ButtonGroupModule {
5558
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5559
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, imports: [ButtonComponent, ButtonGroupComponent], exports: [ButtonComponent, ButtonGroupComponent] });
5560
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, providers: [IconsService], imports: [ButtonComponent] });
5272
5561
  }
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: [{
5562
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonGroupModule, decorators: [{
5277
5563
  type: NgModule,
5278
5564
  args: [{
5279
5565
  exports: [...KENDO_BUTTONGROUP],
@@ -5315,11 +5601,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5315
5601
  * ```
5316
5602
  */
5317
5603
  class ButtonModule {
5604
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5605
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
5606
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, providers: [IconsService], imports: [ButtonComponent] });
5318
5607
  }
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: [{
5608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonModule, decorators: [{
5323
5609
  type: NgModule,
5324
5610
  args: [{
5325
5611
  imports: [ButtonComponent],
@@ -5361,11 +5647,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5361
5647
  * ```
5362
5648
  */
5363
5649
  class ButtonsModule {
5650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5651
+ 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] });
5652
+ 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
5653
  }
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: [{
5654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsModule, decorators: [{
5369
5655
  type: NgModule,
5370
5656
  args: [{
5371
5657
  imports: [...KENDO_BUTTONS],
@@ -5384,11 +5670,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5384
5670
  * - `SplitButtonCustomMessagesComponent`&mdash;The SplitButton custom messages component class.
5385
5671
  */
5386
5672
  class SplitButtonModule {
5673
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5674
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, imports: [SplitButtonComponent, SplitButtonCustomMessagesComponent], exports: [SplitButtonComponent, SplitButtonCustomMessagesComponent] });
5675
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [SplitButtonComponent] });
5387
5676
  }
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: [{
5677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitButtonModule, decorators: [{
5392
5678
  type: NgModule,
5393
5679
  args: [{
5394
5680
  exports: [...KENDO_SPLITBUTTON],
@@ -5407,11 +5693,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5407
5693
  * - `ButtonItemTemplateDirective`&mdash;The Button item template directive.
5408
5694
  */
5409
5695
  class DropDownButtonModule {
5696
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5697
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, imports: [DropDownButtonComponent, ButtonItemTemplateDirective], exports: [DropDownButtonComponent, ButtonItemTemplateDirective] });
5698
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [DropDownButtonComponent] });
5410
5699
  }
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: [{
5700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownButtonModule, decorators: [{
5415
5701
  type: NgModule,
5416
5702
  args: [{
5417
5703
  exports: [...KENDO_DROPDOWNBUTTON],
@@ -5420,30 +5706,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5420
5706
  }]
5421
5707
  }] });
5422
5708
 
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
5709
  //IMPORTANT: NgModule export kept for backwards compatibility
5448
5710
  /**
5449
5711
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -5474,11 +5736,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5474
5736
  * ```
5475
5737
  */
5476
5738
  class ChipModule {
5739
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5740
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, imports: [ChipComponent, ChipListComponent], exports: [ChipComponent, ChipListComponent] });
5741
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, providers: [IconsService], imports: [ChipComponent] });
5477
5742
  }
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: [{
5743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipModule, decorators: [{
5482
5744
  type: NgModule,
5483
5745
  args: [{
5484
5746
  exports: [...KENDO_CHIPLIST],
@@ -5517,11 +5779,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5517
5779
  * ```
5518
5780
  */
5519
5781
  class FloatingActionButtonModule {
5782
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5783
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, imports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective], exports: [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective] });
5784
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [FloatingActionButtonComponent] });
5520
5785
  }
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: [{
5786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionButtonModule, decorators: [{
5525
5787
  type: NgModule,
5526
5788
  args: [{
5527
5789
  exports: [...KENDO_FLOATINGACTIONBUTTON],
@@ -5534,5 +5796,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
5534
5796
  * Generated bundle index. Do not edit.
5535
5797
  */
5536
5798
 
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 };
5799
+ 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
5800