@progress/kendo-angular-buttons 16.0.1-develop.1 → 16.1.0-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.
@@ -341,7 +341,7 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
341
341
  (blur)="onButtonBlur()"
342
342
  [attr.aria-disabled]="disabled"
343
343
  [attr.aria-expanded]="openState"
344
- [attr.aria-haspopup]="'menu'"
344
+ [attr.aria-haspopup]="'true'"
345
345
  [attr.aria-controls]="listId"
346
346
  >
347
347
  <ng-content></ng-content>
@@ -402,7 +402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
402
402
  (blur)="onButtonBlur()"
403
403
  [attr.aria-disabled]="disabled"
404
404
  [attr.aria-expanded]="openState"
405
- [attr.aria-haspopup]="'menu'"
405
+ [attr.aria-haspopup]="'true'"
406
406
  [attr.aria-controls]="listId"
407
407
  >
408
408
  <ng-content></ng-content>
@@ -9,7 +9,7 @@ import { FocusService } from './../focusable/focus.service';
9
9
  import { KeyEvents } from './../navigation/key-events';
10
10
  import { NavigationService } from './../navigation/navigation.service';
11
11
  import { NavigationAction } from './../navigation/navigation-action';
12
- import { isDocumentAvailable, guid, Keys, isChanged } from '@progress/kendo-angular-common';
12
+ import { isDocumentAvailable, guid, Keys, isChanged, hasObservers } from '@progress/kendo-angular-common';
13
13
  import { LocalizationService } from '@progress/kendo-angular-l10n';
14
14
  import { validatePackage } from '@progress/kendo-licensing';
15
15
  import { packageMetadata } from '../package-metadata';
@@ -17,6 +17,7 @@ import { PreventableEvent } from '../preventable-event';
17
17
  import { PopupService } from '@progress/kendo-angular-popup';
18
18
  import { isPresent } from '../util';
19
19
  import { PopupContainerService } from './container.service';
20
+ import { MultiTabStop } from '@progress/kendo-angular-common';
20
21
  import * as i0 from "@angular/core";
21
22
  import * as i1 from "./../focusable/focus.service";
22
23
  import * as i2 from "./../navigation/navigation.service";
@@ -26,8 +27,9 @@ import * as i5 from "./container.service";
26
27
  /**
27
28
  * @hidden
28
29
  */
29
- export class ListButton {
30
+ export class ListButton extends MultiTabStop {
30
31
  constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
32
+ super();
31
33
  this.focusService = focusService;
32
34
  this.navigationService = navigationService;
33
35
  this.wrapperRef = wrapperRef;
@@ -58,6 +60,12 @@ export class ListButton {
58
60
  * This event is preventable. If you cancel the event, the popup will remain open.
59
61
  */
60
62
  this.close = new EventEmitter();
63
+ /**
64
+ * Needed by the kendoToggleButtonTabStop directive
65
+ *
66
+ * @hidden
67
+ */
68
+ this.escape = new EventEmitter();
61
69
  this.isClosePrevented = false;
62
70
  validatePackage(packageMetadata);
63
71
  this.focusService = focusService;
@@ -309,7 +317,7 @@ export class ListButton {
309
317
  handleTab() {
310
318
  this.blurWrapper();
311
319
  }
312
- onNavigationEnterUp() {
320
+ onNavigationEnterUp(e) {
313
321
  if (!this._disabled && !this.openState) {
314
322
  this._active = false;
315
323
  }
@@ -329,10 +337,11 @@ export class ListButton {
329
337
  this.togglePopupVisibility();
330
338
  }
331
339
  }
332
- onNavigationClose() {
340
+ onNavigationClose(e) {
333
341
  if (this.openState && !this.isClosePrevented) {
334
342
  this.togglePopupVisibility();
335
343
  if (isDocumentAvailable()) {
344
+ e?.esc && hasObservers(this.escape) && this.escape.emit();
336
345
  this.button.nativeElement.focus();
337
346
  }
338
347
  }
@@ -387,7 +396,7 @@ export class ListButton {
387
396
  }
388
397
  }
389
398
  ListButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListButton, deps: [{ token: i1.FocusService }, { token: i2.NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i4.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i5.PopupContainerService }], target: i0.ɵɵFactoryTarget.Component });
390
- 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" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
399
+ 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 });
391
400
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListButton, decorators: [{
392
401
  type: Component,
393
402
  args: [{
@@ -403,6 +412,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
403
412
  type: Output
404
413
  }], close: [{
405
414
  type: Output
415
+ }], escape: [{
416
+ type: Output
406
417
  }], popupSettings: [{
407
418
  type: Input
408
419
  }] } });
@@ -51,17 +51,16 @@ export class ListComponent {
51
51
  }
52
52
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
53
  ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListComponent, selector: "kendo-button-list", inputs: { data: "data", textField: "textField", itemTemplate: "itemTemplate", size: "size" }, outputs: { onItemClick: "onItemClick", onItemBlur: "onItemBlur" }, ngImport: i0, template: `
54
- <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
55
- <li role="menuitem"
56
- unselectable="on"
57
- kendoButtonFocusable
54
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
55
+ <li kendoButtonFocusable
58
56
  *ngFor="let dataItem of data; let index = index;"
59
57
  [index]="index"
60
58
  tabindex="-1"
61
59
  class="k-item k-menu-item"
60
+ role="listitem"
61
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
62
62
  (click)="$event.stopImmediatePropagation(); onClick(index);"
63
- (blur)="onBlur()"
64
- [attr.aria-disabled]="dataItem.disabled ? true : false">
63
+ (blur)="onBlur()">
65
64
  <ng-template [ngIf]="itemTemplate?.templateRef">
66
65
  <span
67
66
  class="k-link k-menu-link"
@@ -87,7 +86,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
87
86
  *ngIf="dataItem.imageUrl"
88
87
  class="k-image"
89
88
  [src]="dataItem.imageUrl"
90
- alt=""
89
+ [alt]="dataItem.imageAlt"
91
90
  >
92
91
  <span *ngIf="getText(dataItem)" class="k-menu-link-text">
93
92
  {{ getText(dataItem) }}
@@ -102,17 +101,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
102
101
  args: [{
103
102
  selector: 'kendo-button-list',
104
103
  template: `
105
- <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
106
- <li role="menuitem"
107
- unselectable="on"
108
- kendoButtonFocusable
104
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
105
+ <li kendoButtonFocusable
109
106
  *ngFor="let dataItem of data; let index = index;"
110
107
  [index]="index"
111
108
  tabindex="-1"
112
109
  class="k-item k-menu-item"
110
+ role="listitem"
111
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
113
112
  (click)="$event.stopImmediatePropagation(); onClick(index);"
114
- (blur)="onBlur()"
115
- [attr.aria-disabled]="dataItem.disabled ? true : false">
113
+ (blur)="onBlur()">
116
114
  <ng-template [ngIf]="itemTemplate?.templateRef">
117
115
  <span
118
116
  class="k-link k-menu-link"
@@ -138,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
138
136
  *ngIf="dataItem.imageUrl"
139
137
  class="k-image"
140
138
  [src]="dataItem.imageUrl"
141
- alt=""
139
+ [alt]="dataItem.imageAlt"
142
140
  >
143
141
  <span *ngIf="getText(dataItem)" class="k-menu-link-text">
144
142
  {{ getText(dataItem) }}
@@ -84,7 +84,7 @@ export class NavigationService {
84
84
  }
85
85
  }
86
86
  if (action !== NavigationAction.Undefined) {
87
- this[NavigationAction[action].toLowerCase()].emit({ index, target: args.target });
87
+ this[NavigationAction[action].toLowerCase()].emit({ index, target: args.target, esc: action === NavigationAction.Esc });
88
88
  }
89
89
  return action;
90
90
  }
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-buttons',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1715939454,
13
- version: '16.0.1-develop.1',
12
+ publishDate: 1715948190,
13
+ version: '16.1.0-develop.1',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Component, ElementRef, TemplateRef, Input, Output, HostBinding, HostListener, EventEmitter, ContentChild, ViewChild, ViewContainerRef, NgZone, ChangeDetectorRef, Renderer2 } from '@angular/core';
5
+ import { Component, ElementRef, TemplateRef, Input, Output, HostBinding, HostListener, EventEmitter, ContentChild, ViewChild, ViewContainerRef, NgZone, ChangeDetectorRef, Renderer2, forwardRef } from '@angular/core';
6
6
  import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
7
7
  import { PopupService } from '@progress/kendo-angular-popup';
8
8
  import { ListButton } from './../listbutton/list-button';
@@ -10,7 +10,7 @@ import { ButtonItemTemplateDirective } from './../listbutton/button-item-templat
10
10
  import { FocusService } from './../focusable/focus.service';
11
11
  import { NavigationService } from './../navigation/navigation.service';
12
12
  import { NAVIGATION_CONFIG } from './../navigation/navigation-config';
13
- import { isDocumentAvailable, guid, isChanged, anyChanged } from '@progress/kendo-angular-common';
13
+ import { isDocumentAvailable, guid, isChanged, anyChanged, MultiTabStop } from '@progress/kendo-angular-common';
14
14
  import { closest, isPresent } from './../util';
15
15
  import { Keys } from '@progress/kendo-angular-common';
16
16
  import { replaceMessagePlaceholder, getStylingClasses } from '../util';
@@ -451,7 +451,7 @@ export class SplitButtonComponent extends ListButton {
451
451
  */
452
452
  onNavigationEnterUp(args) {
453
453
  if (args.target !== this.button.nativeElement) {
454
- super.onNavigationEnterUp();
454
+ super.onNavigationEnterUp(args);
455
455
  }
456
456
  }
457
457
  /**
@@ -567,7 +567,11 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
567
567
  provide: L10N_PREFIX,
568
568
  useValue: 'kendo.splitbutton'
569
569
  },
570
- PopupContainerService
570
+ PopupContainerService,
571
+ {
572
+ provide: MultiTabStop,
573
+ useExisting: forwardRef(() => SplitButtonComponent)
574
+ }
571
575
  ], 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: `
572
576
  <ng-container kendoSplitButtonLocalizedMessages
573
577
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
@@ -594,10 +598,9 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
594
598
  (blur)="onButtonBlur()"
595
599
  (mousedown)="toggleButtonActiveState(true)"
596
600
  (mouseup)="toggleButtonActiveState(false)"
597
- [attr.aria-disabled]="disabled"
598
601
  [attr.aria-expanded]="openState"
599
- [attr.aria-haspopup]="'menu'"
600
- [attr.aria-owns]="listId"
602
+ [attr.aria-haspopup]="'true'"
603
+ [attr.aria-controls]="listId"
601
604
  [attr.aria-label]="ariaLabel"
602
605
  >
603
606
  <span *ngIf="text" class="k-button-text">
@@ -651,7 +654,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
651
654
  provide: L10N_PREFIX,
652
655
  useValue: 'kendo.splitbutton'
653
656
  },
654
- PopupContainerService
657
+ PopupContainerService,
658
+ {
659
+ provide: MultiTabStop,
660
+ useExisting: forwardRef(() => SplitButtonComponent)
661
+ }
655
662
  ],
656
663
  selector: 'kendo-splitbutton',
657
664
  template: `
@@ -680,10 +687,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
680
687
  (blur)="onButtonBlur()"
681
688
  (mousedown)="toggleButtonActiveState(true)"
682
689
  (mouseup)="toggleButtonActiveState(false)"
683
- [attr.aria-disabled]="disabled"
684
690
  [attr.aria-expanded]="openState"
685
- [attr.aria-haspopup]="'menu'"
686
- [attr.aria-owns]="listId"
691
+ [attr.aria-haspopup]="'true'"
692
+ [attr.aria-controls]="listId"
687
693
  [attr.aria-label]="ariaLabel"
688
694
  >
689
695
  <span *ngIf="text" class="k-button-text">
@@ -23,13 +23,13 @@ import * as i0 from "@angular/core";
23
23
  export class SplitButtonModule {
24
24
  }
25
25
  SplitButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent], imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule], exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule] });
27
- SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule, ListModule, ToggleButtonTabStopModule] });
26
+ SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent], imports: [CommonModule, PopupModule, ButtonModule, ListModule], exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule] });
27
+ SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, PopupModule, ButtonModule, ListModule, ListModule, ToggleButtonTabStopModule] });
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent],
32
32
  exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule],
33
- imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule]
33
+ imports: [CommonModule, PopupModule, ButtonModule, ListModule]
34
34
  }]
35
35
  }] });
@@ -5,7 +5,7 @@
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, EventEmitter, isDevMode, Component, Optional, Input, Output, HostBinding, HostListener, ContentChildren, NgModule, Directive, InjectionToken, Inject, forwardRef, ElementRef, ViewContainerRef, ContentChild, ViewChild } from '@angular/core';
7
7
  import * as i7 from '@progress/kendo-angular-common';
8
- import { isDocumentAvailable, isFirefox, Keys, isSafari, isChanged, hasObservers, guid, anyChanged, ToggleButtonTabStopModule, isPresent as isPresent$1, EventsModule } from '@progress/kendo-angular-common';
8
+ import { isDocumentAvailable, isFirefox, Keys, isSafari, isChanged, hasObservers, MultiTabStop, guid, anyChanged, ToggleButtonTabStopModule, isPresent as isPresent$1, EventsModule } 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';
@@ -29,8 +29,8 @@ const packageMetadata = {
29
29
  name: '@progress/kendo-angular-buttons',
30
30
  productName: 'Kendo UI for Angular',
31
31
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
32
- publishDate: 1715939454,
33
- version: '16.0.1-develop.1',
32
+ publishDate: 1715948190,
33
+ version: '16.1.0-develop.1',
34
34
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
35
35
  };
36
36
 
@@ -1246,17 +1246,16 @@ class ListComponent {
1246
1246
  }
1247
1247
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1248
1248
  ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListComponent, selector: "kendo-button-list", inputs: { data: "data", textField: "textField", itemTemplate: "itemTemplate", size: "size" }, outputs: { onItemClick: "onItemClick", onItemBlur: "onItemBlur" }, ngImport: i0, template: `
1249
- <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
1250
- <li role="menuitem"
1251
- unselectable="on"
1252
- kendoButtonFocusable
1249
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
1250
+ <li kendoButtonFocusable
1253
1251
  *ngFor="let dataItem of data; let index = index;"
1254
1252
  [index]="index"
1255
1253
  tabindex="-1"
1256
1254
  class="k-item k-menu-item"
1255
+ role="listitem"
1256
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
1257
1257
  (click)="$event.stopImmediatePropagation(); onClick(index);"
1258
- (blur)="onBlur()"
1259
- [attr.aria-disabled]="dataItem.disabled ? true : false">
1258
+ (blur)="onBlur()">
1260
1259
  <ng-template [ngIf]="itemTemplate?.templateRef">
1261
1260
  <span
1262
1261
  class="k-link k-menu-link"
@@ -1282,7 +1281,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
1282
1281
  *ngIf="dataItem.imageUrl"
1283
1282
  class="k-image"
1284
1283
  [src]="dataItem.imageUrl"
1285
- alt=""
1284
+ [alt]="dataItem.imageAlt"
1286
1285
  >
1287
1286
  <span *ngIf="getText(dataItem)" class="k-menu-link-text">
1288
1287
  {{ getText(dataItem) }}
@@ -1297,17 +1296,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1297
1296
  args: [{
1298
1297
  selector: 'kendo-button-list',
1299
1298
  template: `
1300
- <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
1301
- <li role="menuitem"
1302
- unselectable="on"
1303
- kendoButtonFocusable
1299
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
1300
+ <li kendoButtonFocusable
1304
1301
  *ngFor="let dataItem of data; let index = index;"
1305
1302
  [index]="index"
1306
1303
  tabindex="-1"
1307
1304
  class="k-item k-menu-item"
1305
+ role="listitem"
1306
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
1308
1307
  (click)="$event.stopImmediatePropagation(); onClick(index);"
1309
- (blur)="onBlur()"
1310
- [attr.aria-disabled]="dataItem.disabled ? true : false">
1308
+ (blur)="onBlur()">
1311
1309
  <ng-template [ngIf]="itemTemplate?.templateRef">
1312
1310
  <span
1313
1311
  class="k-link k-menu-link"
@@ -1333,7 +1331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1333
1331
  *ngIf="dataItem.imageUrl"
1334
1332
  class="k-image"
1335
1333
  [src]="dataItem.imageUrl"
1336
- alt=""
1334
+ [alt]="dataItem.imageAlt"
1337
1335
  >
1338
1336
  <span *ngIf="getText(dataItem)" class="k-menu-link-text">
1339
1337
  {{ getText(dataItem) }}
@@ -1556,7 +1554,7 @@ class NavigationService {
1556
1554
  }
1557
1555
  }
1558
1556
  if (action !== NavigationAction.Undefined) {
1559
- this[NavigationAction[action].toLowerCase()].emit({ index, target: args.target });
1557
+ this[NavigationAction[action].toLowerCase()].emit({ index, target: args.target, esc: action === NavigationAction.Esc });
1560
1558
  }
1561
1559
  return action;
1562
1560
  }
@@ -1597,8 +1595,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1597
1595
  /**
1598
1596
  * @hidden
1599
1597
  */
1600
- class ListButton {
1598
+ class ListButton extends MultiTabStop {
1601
1599
  constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
1600
+ super();
1602
1601
  this.focusService = focusService;
1603
1602
  this.navigationService = navigationService;
1604
1603
  this.wrapperRef = wrapperRef;
@@ -1629,6 +1628,12 @@ class ListButton {
1629
1628
  * This event is preventable. If you cancel the event, the popup will remain open.
1630
1629
  */
1631
1630
  this.close = new EventEmitter();
1631
+ /**
1632
+ * Needed by the kendoToggleButtonTabStop directive
1633
+ *
1634
+ * @hidden
1635
+ */
1636
+ this.escape = new EventEmitter();
1632
1637
  this.isClosePrevented = false;
1633
1638
  validatePackage(packageMetadata);
1634
1639
  this.focusService = focusService;
@@ -1880,7 +1885,7 @@ class ListButton {
1880
1885
  handleTab() {
1881
1886
  this.blurWrapper();
1882
1887
  }
1883
- onNavigationEnterUp() {
1888
+ onNavigationEnterUp(e) {
1884
1889
  if (!this._disabled && !this.openState) {
1885
1890
  this._active = false;
1886
1891
  }
@@ -1900,10 +1905,11 @@ class ListButton {
1900
1905
  this.togglePopupVisibility();
1901
1906
  }
1902
1907
  }
1903
- onNavigationClose() {
1908
+ onNavigationClose(e) {
1904
1909
  if (this.openState && !this.isClosePrevented) {
1905
1910
  this.togglePopupVisibility();
1906
1911
  if (isDocumentAvailable()) {
1912
+ (e === null || e === void 0 ? void 0 : e.esc) && hasObservers(this.escape) && this.escape.emit();
1907
1913
  this.button.nativeElement.focus();
1908
1914
  }
1909
1915
  }
@@ -1958,7 +1964,7 @@ class ListButton {
1958
1964
  }
1959
1965
  }
1960
1966
  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$1.PopupService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PopupContainerService }], target: i0.ɵɵFactoryTarget.Component });
1961
- 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" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
1967
+ 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 });
1962
1968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListButton, decorators: [{
1963
1969
  type: Component,
1964
1970
  args: [{
@@ -1974,6 +1980,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1974
1980
  type: Output
1975
1981
  }], close: [{
1976
1982
  type: Output
1983
+ }], escape: [{
1984
+ type: Output
1977
1985
  }], popupSettings: [{
1978
1986
  type: Input
1979
1987
  }] } });
@@ -2450,7 +2458,7 @@ class SplitButtonComponent extends ListButton {
2450
2458
  */
2451
2459
  onNavigationEnterUp(args) {
2452
2460
  if (args.target !== this.button.nativeElement) {
2453
- super.onNavigationEnterUp();
2461
+ super.onNavigationEnterUp(args);
2454
2462
  }
2455
2463
  }
2456
2464
  /**
@@ -2567,7 +2575,11 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
2567
2575
  provide: L10N_PREFIX,
2568
2576
  useValue: 'kendo.splitbutton'
2569
2577
  },
2570
- PopupContainerService
2578
+ PopupContainerService,
2579
+ {
2580
+ provide: MultiTabStop,
2581
+ useExisting: forwardRef(() => SplitButtonComponent)
2582
+ }
2571
2583
  ], 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: `
2572
2584
  <ng-container kendoSplitButtonLocalizedMessages
2573
2585
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
@@ -2594,10 +2606,9 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
2594
2606
  (blur)="onButtonBlur()"
2595
2607
  (mousedown)="toggleButtonActiveState(true)"
2596
2608
  (mouseup)="toggleButtonActiveState(false)"
2597
- [attr.aria-disabled]="disabled"
2598
2609
  [attr.aria-expanded]="openState"
2599
- [attr.aria-haspopup]="'menu'"
2600
- [attr.aria-owns]="listId"
2610
+ [attr.aria-haspopup]="'true'"
2611
+ [attr.aria-controls]="listId"
2601
2612
  [attr.aria-label]="ariaLabel"
2602
2613
  >
2603
2614
  <span *ngIf="text" class="k-button-text">
@@ -2651,7 +2662,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2651
2662
  provide: L10N_PREFIX,
2652
2663
  useValue: 'kendo.splitbutton'
2653
2664
  },
2654
- PopupContainerService
2665
+ PopupContainerService,
2666
+ {
2667
+ provide: MultiTabStop,
2668
+ useExisting: forwardRef(() => SplitButtonComponent)
2669
+ }
2655
2670
  ],
2656
2671
  selector: 'kendo-splitbutton',
2657
2672
  template: `
@@ -2680,10 +2695,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2680
2695
  (blur)="onButtonBlur()"
2681
2696
  (mousedown)="toggleButtonActiveState(true)"
2682
2697
  (mouseup)="toggleButtonActiveState(false)"
2683
- [attr.aria-disabled]="disabled"
2684
2698
  [attr.aria-expanded]="openState"
2685
- [attr.aria-haspopup]="'menu'"
2686
- [attr.aria-owns]="listId"
2699
+ [attr.aria-haspopup]="'true'"
2700
+ [attr.aria-controls]="listId"
2687
2701
  [attr.aria-label]="ariaLabel"
2688
2702
  >
2689
2703
  <span *ngIf="text" class="k-button-text">
@@ -2855,14 +2869,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2855
2869
  class SplitButtonModule {
2856
2870
  }
2857
2871
  SplitButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2858
- SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent], imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule], exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule] });
2859
- SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule, ListModule, ToggleButtonTabStopModule] });
2872
+ SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent], imports: [CommonModule, PopupModule, ButtonModule, ListModule], exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule] });
2873
+ SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, PopupModule, ButtonModule, ListModule, ListModule, ToggleButtonTabStopModule] });
2860
2874
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, decorators: [{
2861
2875
  type: NgModule,
2862
2876
  args: [{
2863
2877
  declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent],
2864
2878
  exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule],
2865
- imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule]
2879
+ imports: [CommonModule, PopupModule, ButtonModule, ListModule]
2866
2880
  }]
2867
2881
  }] });
2868
2882
 
@@ -3185,7 +3199,7 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
3185
3199
  (blur)="onButtonBlur()"
3186
3200
  [attr.aria-disabled]="disabled"
3187
3201
  [attr.aria-expanded]="openState"
3188
- [attr.aria-haspopup]="'menu'"
3202
+ [attr.aria-haspopup]="'true'"
3189
3203
  [attr.aria-controls]="listId"
3190
3204
  >
3191
3205
  <ng-content></ng-content>
@@ -3246,7 +3260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3246
3260
  (blur)="onButtonBlur()"
3247
3261
  [attr.aria-disabled]="disabled"
3248
3262
  [attr.aria-expanded]="openState"
3249
- [attr.aria-haspopup]="'menu'"
3263
+ [attr.aria-haspopup]="'true'"
3250
3264
  [attr.aria-controls]="listId"
3251
3265
  >
3252
3266
  <ng-content></ng-content>
@@ -6,7 +6,7 @@ import * as i0 from '@angular/core';
6
6
  import { Injectable, EventEmitter, isDevMode, Component, Optional, Input, Output, HostBinding, HostListener, ContentChildren, NgModule, Directive, InjectionToken, Inject, forwardRef, ElementRef, ViewContainerRef, ContentChild, ViewChild } from '@angular/core';
7
7
  import { Subject, Subscription, fromEvent, merge } from 'rxjs';
8
8
  import * as i7 from '@progress/kendo-angular-common';
9
- import { isDocumentAvailable, isFirefox, Keys, isSafari, isChanged, hasObservers, guid, anyChanged, ToggleButtonTabStopModule, isPresent as isPresent$1, EventsModule } from '@progress/kendo-angular-common';
9
+ import { isDocumentAvailable, isFirefox, Keys, isSafari, isChanged, hasObservers, MultiTabStop, guid, anyChanged, ToggleButtonTabStopModule, isPresent as isPresent$1, EventsModule } from '@progress/kendo-angular-common';
10
10
  export { ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
11
11
  import { caretAltDownIcon, xCircleIcon, moreVerticalIcon } from '@progress/kendo-svg-icons';
12
12
  import * as i1 from '@progress/kendo-angular-l10n';
@@ -47,8 +47,8 @@ const packageMetadata = {
47
47
  name: '@progress/kendo-angular-buttons',
48
48
  productName: 'Kendo UI for Angular',
49
49
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
50
- publishDate: 1715939454,
51
- version: '16.0.1-develop.1',
50
+ publishDate: 1715948190,
51
+ version: '16.1.0-develop.1',
52
52
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
53
53
  };
54
54
 
@@ -1306,17 +1306,16 @@ class ListComponent {
1306
1306
  }
1307
1307
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1308
1308
  ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListComponent, selector: "kendo-button-list", inputs: { data: "data", textField: "textField", itemTemplate: "itemTemplate", size: "size" }, outputs: { onItemClick: "onItemClick", onItemBlur: "onItemBlur" }, ngImport: i0, template: `
1309
- <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
1310
- <li role="menuitem"
1311
- unselectable="on"
1312
- kendoButtonFocusable
1309
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
1310
+ <li kendoButtonFocusable
1313
1311
  *ngFor="let dataItem of data; let index = index;"
1314
1312
  [index]="index"
1315
1313
  tabindex="-1"
1316
1314
  class="k-item k-menu-item"
1315
+ role="listitem"
1316
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
1317
1317
  (click)="$event.stopImmediatePropagation(); onClick(index);"
1318
- (blur)="onBlur()"
1319
- [attr.aria-disabled]="dataItem.disabled ? true : false">
1318
+ (blur)="onBlur()">
1320
1319
  <ng-template [ngIf]="itemTemplate?.templateRef">
1321
1320
  <span
1322
1321
  class="k-link k-menu-link"
@@ -1342,7 +1341,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
1342
1341
  *ngIf="dataItem.imageUrl"
1343
1342
  class="k-image"
1344
1343
  [src]="dataItem.imageUrl"
1345
- alt=""
1344
+ [alt]="dataItem.imageAlt"
1346
1345
  >
1347
1346
  <span *ngIf="getText(dataItem)" class="k-menu-link-text">
1348
1347
  {{ getText(dataItem) }}
@@ -1357,17 +1356,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1357
1356
  args: [{
1358
1357
  selector: 'kendo-button-list',
1359
1358
  template: `
1360
- <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
1361
- <li role="menuitem"
1362
- unselectable="on"
1363
- kendoButtonFocusable
1359
+ <ul class="k-group k-menu-group k-reset" role="list" [ngClass]="sizeClass">
1360
+ <li kendoButtonFocusable
1364
1361
  *ngFor="let dataItem of data; let index = index;"
1365
1362
  [index]="index"
1366
1363
  tabindex="-1"
1367
1364
  class="k-item k-menu-item"
1365
+ role="listitem"
1366
+ [attr.aria-disabled]="dataItem.disabled ? true : false"
1368
1367
  (click)="$event.stopImmediatePropagation(); onClick(index);"
1369
- (blur)="onBlur()"
1370
- [attr.aria-disabled]="dataItem.disabled ? true : false">
1368
+ (blur)="onBlur()">
1371
1369
  <ng-template [ngIf]="itemTemplate?.templateRef">
1372
1370
  <span
1373
1371
  class="k-link k-menu-link"
@@ -1393,7 +1391,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1393
1391
  *ngIf="dataItem.imageUrl"
1394
1392
  class="k-image"
1395
1393
  [src]="dataItem.imageUrl"
1396
- alt=""
1394
+ [alt]="dataItem.imageAlt"
1397
1395
  >
1398
1396
  <span *ngIf="getText(dataItem)" class="k-menu-link-text">
1399
1397
  {{ getText(dataItem) }}
@@ -1554,7 +1552,7 @@ class NavigationService {
1554
1552
  }
1555
1553
  }
1556
1554
  if (action !== NavigationAction.Undefined) {
1557
- this[NavigationAction[action].toLowerCase()].emit({ index, target: args.target });
1555
+ this[NavigationAction[action].toLowerCase()].emit({ index, target: args.target, esc: action === NavigationAction.Esc });
1558
1556
  }
1559
1557
  return action;
1560
1558
  }
@@ -1593,8 +1591,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1593
1591
  /**
1594
1592
  * @hidden
1595
1593
  */
1596
- class ListButton {
1594
+ class ListButton extends MultiTabStop {
1597
1595
  constructor(focusService, navigationService, wrapperRef, _zone, popupService, elRef, localization, cdr, containerService) {
1596
+ super();
1598
1597
  this.focusService = focusService;
1599
1598
  this.navigationService = navigationService;
1600
1599
  this.wrapperRef = wrapperRef;
@@ -1625,6 +1624,12 @@ class ListButton {
1625
1624
  * This event is preventable. If you cancel the event, the popup will remain open.
1626
1625
  */
1627
1626
  this.close = new EventEmitter();
1627
+ /**
1628
+ * Needed by the kendoToggleButtonTabStop directive
1629
+ *
1630
+ * @hidden
1631
+ */
1632
+ this.escape = new EventEmitter();
1628
1633
  this.isClosePrevented = false;
1629
1634
  validatePackage(packageMetadata);
1630
1635
  this.focusService = focusService;
@@ -1876,7 +1881,7 @@ class ListButton {
1876
1881
  handleTab() {
1877
1882
  this.blurWrapper();
1878
1883
  }
1879
- onNavigationEnterUp() {
1884
+ onNavigationEnterUp(e) {
1880
1885
  if (!this._disabled && !this.openState) {
1881
1886
  this._active = false;
1882
1887
  }
@@ -1896,10 +1901,11 @@ class ListButton {
1896
1901
  this.togglePopupVisibility();
1897
1902
  }
1898
1903
  }
1899
- onNavigationClose() {
1904
+ onNavigationClose(e) {
1900
1905
  if (this.openState && !this.isClosePrevented) {
1901
1906
  this.togglePopupVisibility();
1902
1907
  if (isDocumentAvailable()) {
1908
+ e?.esc && hasObservers(this.escape) && this.escape.emit();
1903
1909
  this.button.nativeElement.focus();
1904
1910
  }
1905
1911
  }
@@ -1954,7 +1960,7 @@ class ListButton {
1954
1960
  }
1955
1961
  }
1956
1962
  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$1.PopupService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PopupContainerService }], target: i0.ɵɵFactoryTarget.Component });
1957
- 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" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
1963
+ 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 });
1958
1964
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListButton, decorators: [{
1959
1965
  type: Component,
1960
1966
  args: [{
@@ -1970,6 +1976,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1970
1976
  type: Output
1971
1977
  }], close: [{
1972
1978
  type: Output
1979
+ }], escape: [{
1980
+ type: Output
1973
1981
  }], popupSettings: [{
1974
1982
  type: Input
1975
1983
  }] } });
@@ -2445,7 +2453,7 @@ class SplitButtonComponent extends ListButton {
2445
2453
  */
2446
2454
  onNavigationEnterUp(args) {
2447
2455
  if (args.target !== this.button.nativeElement) {
2448
- super.onNavigationEnterUp();
2456
+ super.onNavigationEnterUp(args);
2449
2457
  }
2450
2458
  }
2451
2459
  /**
@@ -2561,7 +2569,11 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
2561
2569
  provide: L10N_PREFIX,
2562
2570
  useValue: 'kendo.splitbutton'
2563
2571
  },
2564
- PopupContainerService
2572
+ PopupContainerService,
2573
+ {
2574
+ provide: MultiTabStop,
2575
+ useExisting: forwardRef(() => SplitButtonComponent)
2576
+ }
2565
2577
  ], 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: `
2566
2578
  <ng-container kendoSplitButtonLocalizedMessages
2567
2579
  i18n-splitButtonLabel="kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label"
@@ -2588,10 +2600,9 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
2588
2600
  (blur)="onButtonBlur()"
2589
2601
  (mousedown)="toggleButtonActiveState(true)"
2590
2602
  (mouseup)="toggleButtonActiveState(false)"
2591
- [attr.aria-disabled]="disabled"
2592
2603
  [attr.aria-expanded]="openState"
2593
- [attr.aria-haspopup]="'menu'"
2594
- [attr.aria-owns]="listId"
2604
+ [attr.aria-haspopup]="'true'"
2605
+ [attr.aria-controls]="listId"
2595
2606
  [attr.aria-label]="ariaLabel"
2596
2607
  >
2597
2608
  <span *ngIf="text" class="k-button-text">
@@ -2645,7 +2656,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2645
2656
  provide: L10N_PREFIX,
2646
2657
  useValue: 'kendo.splitbutton'
2647
2658
  },
2648
- PopupContainerService
2659
+ PopupContainerService,
2660
+ {
2661
+ provide: MultiTabStop,
2662
+ useExisting: forwardRef(() => SplitButtonComponent)
2663
+ }
2649
2664
  ],
2650
2665
  selector: 'kendo-splitbutton',
2651
2666
  template: `
@@ -2674,10 +2689,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2674
2689
  (blur)="onButtonBlur()"
2675
2690
  (mousedown)="toggleButtonActiveState(true)"
2676
2691
  (mouseup)="toggleButtonActiveState(false)"
2677
- [attr.aria-disabled]="disabled"
2678
2692
  [attr.aria-expanded]="openState"
2679
- [attr.aria-haspopup]="'menu'"
2680
- [attr.aria-owns]="listId"
2693
+ [attr.aria-haspopup]="'true'"
2694
+ [attr.aria-controls]="listId"
2681
2695
  [attr.aria-label]="ariaLabel"
2682
2696
  >
2683
2697
  <span *ngIf="text" class="k-button-text">
@@ -2849,14 +2863,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2849
2863
  class SplitButtonModule {
2850
2864
  }
2851
2865
  SplitButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2852
- SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent], imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule], exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule] });
2853
- SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule, ListModule, ToggleButtonTabStopModule] });
2866
+ SplitButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent], imports: [CommonModule, PopupModule, ButtonModule, ListModule], exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule] });
2867
+ SplitButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, PopupModule, ButtonModule, ListModule, ListModule, ToggleButtonTabStopModule] });
2854
2868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonModule, decorators: [{
2855
2869
  type: NgModule,
2856
2870
  args: [{
2857
2871
  declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent],
2858
2872
  exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent, ToggleButtonTabStopModule],
2859
- imports: [CommonModule, PopupModule, ButtonModule, ListModule, ToggleButtonTabStopModule]
2873
+ imports: [CommonModule, PopupModule, ButtonModule, ListModule]
2860
2874
  }]
2861
2875
  }] });
2862
2876
 
@@ -3178,7 +3192,7 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
3178
3192
  (blur)="onButtonBlur()"
3179
3193
  [attr.aria-disabled]="disabled"
3180
3194
  [attr.aria-expanded]="openState"
3181
- [attr.aria-haspopup]="'menu'"
3195
+ [attr.aria-haspopup]="'true'"
3182
3196
  [attr.aria-controls]="listId"
3183
3197
  >
3184
3198
  <ng-content></ng-content>
@@ -3239,7 +3253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3239
3253
  (blur)="onButtonBlur()"
3240
3254
  [attr.aria-disabled]="disabled"
3241
3255
  [attr.aria-expanded]="openState"
3242
- [attr.aria-haspopup]="'menu'"
3256
+ [attr.aria-haspopup]="'true'"
3243
3257
  [attr.aria-controls]="listId"
3244
3258
  >
3245
3259
  <ng-content></ng-content>
@@ -13,11 +13,12 @@ import { Direction } from '../direction';
13
13
  import { PreventableEvent } from '../preventable-event';
14
14
  import { Align, PopupRef, PopupService } from '@progress/kendo-angular-popup';
15
15
  import { PopupContainerService } from './container.service';
16
+ import { MultiTabStop } from '@progress/kendo-angular-common';
16
17
  import * as i0 from "@angular/core";
17
18
  /**
18
19
  * @hidden
19
20
  */
20
- export declare class ListButton implements OnDestroy {
21
+ export declare class ListButton extends MultiTabStop implements OnDestroy {
21
22
  protected focusService: FocusService;
22
23
  protected navigationService: NavigationService;
23
24
  protected wrapperRef: ElementRef;
@@ -65,6 +66,12 @@ export declare class ListButton implements OnDestroy {
65
66
  * This event is preventable. If you cancel the event, the popup will remain open.
66
67
  */
67
68
  close: EventEmitter<PreventableEvent>;
69
+ /**
70
+ * Needed by the kendoToggleButtonTabStop directive
71
+ *
72
+ * @hidden
73
+ */
74
+ escape: EventEmitter<any>;
68
75
  /**
69
76
  * @hidden
70
77
  */
@@ -140,9 +147,9 @@ export declare class ListButton implements OnDestroy {
140
147
  protected blurWrapper(emit?: boolean): void;
141
148
  protected focusButton(): void;
142
149
  protected handleTab(): void;
143
- protected onNavigationEnterUp(): void;
150
+ protected onNavigationEnterUp(e?: any): void;
144
151
  protected onNavigationOpen(): void;
145
- protected onNavigationClose(): void;
152
+ protected onNavigationClose(e?: any): void;
146
153
  protected onArrowKeyNavigate({ index }: {
147
154
  index: any;
148
155
  }): void;
@@ -150,5 +157,5 @@ export declare class ListButton implements OnDestroy {
150
157
  private createPopup;
151
158
  private destroyPopup;
152
159
  static ɵfac: i0.ɵɵFactoryDeclaration<ListButton, never>;
153
- static ɵcmp: i0.ɵɵComponentDeclaration<ListButton, "ng-component", never, { "disabled": "disabled"; "tabIndex": "tabIndex"; "buttonClass": "buttonClass"; "popupSettings": "popupSettings"; }, { "open": "open"; "close": "close"; }, never, never, false, never>;
160
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListButton, "ng-component", never, { "disabled": "disabled"; "tabIndex": "tabIndex"; "buttonClass": "buttonClass"; "popupSettings": "popupSettings"; }, { "open": "open"; "close": "close"; "escape": "escape"; }, never, never, false, never>;
154
161
  }
@@ -65,6 +65,10 @@ export interface ListItemModel {
65
65
  * Defines the location of an image to be displayed next to the title.
66
66
  */
67
67
  imageUrl?: string;
68
+ /**
69
+ * Defines the value of the image element `alt` attribute.
70
+ */
71
+ imageAlt?: string;
68
72
  /**
69
73
  * When set to `true`, disables a button list item.
70
74
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-buttons",
3
- "version": "16.0.1-develop.1",
3
+ "version": "16.1.0-develop.1",
4
4
  "description": "Buttons Package for Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -25,15 +25,15 @@
25
25
  "@angular/core": "15 - 17",
26
26
  "@angular/platform-browser": "15 - 17",
27
27
  "@progress/kendo-licensing": "^1.0.2",
28
- "@progress/kendo-angular-common": "16.0.1-develop.1",
29
- "@progress/kendo-angular-l10n": "16.0.1-develop.1",
30
- "@progress/kendo-angular-popup": "16.0.1-develop.1",
31
- "@progress/kendo-angular-icons": "16.0.1-develop.1",
28
+ "@progress/kendo-angular-common": "16.1.0-develop.1",
29
+ "@progress/kendo-angular-l10n": "16.1.0-develop.1",
30
+ "@progress/kendo-angular-popup": "16.1.0-develop.1",
31
+ "@progress/kendo-angular-icons": "16.1.0-develop.1",
32
32
  "rxjs": "^6.5.3 || ^7.0.0"
33
33
  },
34
34
  "dependencies": {
35
35
  "tslib": "^2.3.1",
36
- "@progress/kendo-angular-schematics": "16.0.1-develop.1",
36
+ "@progress/kendo-angular-schematics": "16.1.0-develop.1",
37
37
  "@progress/kendo-common": "^0.2.1"
38
38
  },
39
39
  "schematics": "./schematics/collection.json",
@@ -21,6 +21,6 @@ import * as i8 from "@progress/kendo-angular-common";
21
21
  */
22
22
  export declare class SplitButtonModule {
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SplitButtonModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<SplitButtonModule, [typeof i1.SplitButtonComponent, typeof i2.LocalizedSplitButtonMessagesDirective, typeof i3.SplitButtonCustomMessagesComponent], [typeof i4.CommonModule, typeof i5.PopupModule, typeof i6.ButtonModule, typeof i7.ListModule, typeof i8.ToggleButtonTabStopModule], [typeof i1.SplitButtonComponent, typeof i7.ListModule, typeof i2.LocalizedSplitButtonMessagesDirective, typeof i3.SplitButtonCustomMessagesComponent, typeof i8.ToggleButtonTabStopModule]>;
24
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SplitButtonModule, [typeof i1.SplitButtonComponent, typeof i2.LocalizedSplitButtonMessagesDirective, typeof i3.SplitButtonCustomMessagesComponent], [typeof i4.CommonModule, typeof i5.PopupModule, typeof i6.ButtonModule, typeof i7.ListModule], [typeof i1.SplitButtonComponent, typeof i7.ListModule, typeof i2.LocalizedSplitButtonMessagesDirective, typeof i3.SplitButtonCustomMessagesComponent, typeof i8.ToggleButtonTabStopModule]>;
25
25
  static ɵinj: i0.ɵɵInjectorDeclaration<SplitButtonModule>;
26
26
  }