@progress/kendo-angular-scheduler 4.3.0 → 4.3.1-dev.202208290849

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.
@@ -43,7 +43,7 @@ const packageMetadata = {
43
43
  name: '@progress/kendo-angular-scheduler',
44
44
  productName: 'Kendo UI for Angular',
45
45
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
46
- publishDate: 1659510476,
46
+ publishDate: 1661762899,
47
47
  version: '',
48
48
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
49
49
  };
@@ -1434,10 +1434,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1434
1434
  * @hidden
1435
1435
  */
1436
1436
  class FocusService {
1437
- constructor(renderer, wrapper, domEvents) {
1437
+ constructor(renderer, wrapper, domEvents, zone) {
1438
1438
  this.renderer = renderer;
1439
1439
  this.wrapper = wrapper;
1440
1440
  this.domEvents = domEvents;
1441
+ this.zone = zone;
1441
1442
  this.ariaActiveDescendant = new EventEmitter();
1442
1443
  this.items = new Set();
1443
1444
  this.elementMap = new WeakMap();
@@ -1486,6 +1487,24 @@ class FocusService {
1486
1487
  }
1487
1488
  return this.activeItem !== currentItem;
1488
1489
  }
1490
+ focusFirst() {
1491
+ const firstEvent = Array.from(this.items.values())[0];
1492
+ if (!firstEvent) {
1493
+ return;
1494
+ }
1495
+ this.activate(firstEvent.element.nativeElement);
1496
+ this.focus();
1497
+ this.zone.onStable.pipe(take(1)).subscribe(() => {
1498
+ const first = Array.from(this.items.values())[0];
1499
+ if (!first) {
1500
+ this.clearActiveDescendant();
1501
+ return;
1502
+ }
1503
+ const id = first.element.nativeElement.getAttribute('id');
1504
+ this.ariaActiveDescendant.next(id);
1505
+ this.lastActiveDescendantId = id;
1506
+ });
1507
+ }
1489
1508
  clearActiveDescendant() {
1490
1509
  this.ariaActiveDescendant.next(null);
1491
1510
  }
@@ -1496,6 +1515,7 @@ class FocusService {
1496
1515
  if (item === next) {
1497
1516
  const id = item.element.nativeElement.getAttribute('id');
1498
1517
  this.ariaActiveDescendant.next(id);
1518
+ this.lastActiveDescendantId = id;
1499
1519
  }
1500
1520
  });
1501
1521
  this.activeItem = next;
@@ -1534,6 +1554,10 @@ class FocusService {
1534
1554
  }
1535
1555
  onFocusIn(e) {
1536
1556
  const item = this.elementMap.get(e.target);
1557
+ const shouldRestoreActiveDescendant = this.lastActiveDescendantId && this.lastActiveDescendantId !== (item === null || item === void 0 ? void 0 : item.element.nativeElement.getAttribute('id'));
1558
+ if (shouldRestoreActiveDescendant) {
1559
+ this.ariaActiveDescendant.next(this.lastActiveDescendantId);
1560
+ }
1537
1561
  if (!item || item === this.focusedItem) {
1538
1562
  return;
1539
1563
  }
@@ -1550,10 +1574,10 @@ class FocusService {
1550
1574
  }
1551
1575
  this.focusedItem.toggleFocus(false);
1552
1576
  this.focusedItem = null;
1553
- this.ariaActiveDescendant.next(null);
1577
+ this.clearActiveDescendant();
1554
1578
  }
1555
1579
  }
1556
- FocusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService, deps: [{ token: i0.Renderer2, optional: true }, { token: i0.ElementRef, optional: true }, { token: DomEventsService }], target: i0.ɵɵFactoryTarget.Injectable });
1580
+ FocusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService, deps: [{ token: i0.Renderer2, optional: true }, { token: i0.ElementRef, optional: true }, { token: DomEventsService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
1557
1581
  FocusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService });
1558
1582
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusService, decorators: [{
1559
1583
  type: Injectable
@@ -1561,7 +1585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1561
1585
  type: Optional
1562
1586
  }] }, { type: i0.ElementRef, decorators: [{
1563
1587
  type: Optional
1564
- }] }, { type: DomEventsService }]; } });
1588
+ }] }, { type: DomEventsService }, { type: i0.NgZone }]; } });
1565
1589
 
1566
1590
  /**
1567
1591
  * @hidden
@@ -1798,6 +1822,7 @@ class FocusableDirective {
1798
1822
  this.element.nativeElement.focus();
1799
1823
  }
1800
1824
  toggleFocus(value) {
1825
+ var _a;
1801
1826
  const focusedClass = 'k-selected';
1802
1827
  const element = this.element.nativeElement;
1803
1828
  if (value) {
@@ -1806,7 +1831,11 @@ class FocusableDirective {
1806
1831
  else {
1807
1832
  this.renderer.removeClass(element, focusedClass);
1808
1833
  }
1809
- this.renderer.setAttribute(element, 'aria-selected', value.toString());
1834
+ const selectable = element.matches('.k-scheduler-agendaview .k-scheduler-content .k-selected');
1835
+ if (selectable) {
1836
+ (_a = element.closest('.k-scheduler-agendaview').querySelector('[aria-selected="true"]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('aria-selected');
1837
+ this.renderer.setAttribute(element, 'aria-selected', value.toString());
1838
+ }
1810
1839
  }
1811
1840
  }
1812
1841
  FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FocusableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Directive });
@@ -8013,8 +8042,8 @@ AgendaTaskItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
8013
8042
  AgendaTaskItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: { item: ["kendoSchedulerAgendaTaskItem", "item"], color: "color", eventTemplate: "eventTemplate", editable: "editable" }, host: { properties: { "attr.aria-label": "this.eventTitle" } }, ngImport: i0, template: `
8014
8043
  <div class="k-task" [title]="item.title">
8015
8044
  <span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
8016
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
8017
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
8045
+ <span class="k-icon k-i-arrow-rotate-cw" *ngIf="isRecurrence"></span>
8046
+ <span class="k-icon k-i-arrows-no-repeat" *ngIf="isRecurrenceException"></span>
8018
8047
  <ng-container *ngIf="!eventTemplate">
8019
8048
  {{item?.title }}
8020
8049
  </ng-container>
@@ -8023,7 +8052,7 @@ AgendaTaskItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
8023
8052
  </ng-container>
8024
8053
 
8025
8054
  <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
8026
- <span class="k-icon k-i-close"></span>
8055
+ <span class="k-icon k-i-x"></span>
8027
8056
  </span>
8028
8057
  </div>
8029
8058
  `, isInline: true, directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -8036,8 +8065,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
8036
8065
  template: `
8037
8066
  <div class="k-task" [title]="item.title">
8038
8067
  <span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
8039
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
8040
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
8068
+ <span class="k-icon k-i-arrow-rotate-cw" *ngIf="isRecurrence"></span>
8069
+ <span class="k-icon k-i-arrows-no-repeat" *ngIf="isRecurrenceException"></span>
8041
8070
  <ng-container *ngIf="!eventTemplate">
8042
8071
  {{item?.title }}
8043
8072
  </ng-container>
@@ -8046,7 +8075,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
8046
8075
  </ng-container>
8047
8076
 
8048
8077
  <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
8049
- <span class="k-icon k-i-close"></span>
8078
+ <span class="k-icon k-i-x"></span>
8050
8079
  </span>
8051
8080
  </div>
8052
8081
  `
@@ -8142,9 +8171,9 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8142
8171
  </td>
8143
8172
  <td class="k-scheduler-timecolumn" role="gridcell">
8144
8173
  <div *ngIf="!agendaTimeTemplate">
8145
- <span class="k-icon k-i-arrow-60-left" *ngIf="extractDataItem(item).tail"></span>
8174
+ <span class="k-icon k-i-caret-alt-left" *ngIf="extractDataItem(item).tail"></span>
8146
8175
  {{ formatTime(extractDataItem(item)) }}
8147
- <span class="k-icon k-i-arrow-60-right" *ngIf="extractDataItem(item).head"></span>
8176
+ <span class="k-icon k-i-caret-alt-right" *ngIf="extractDataItem(item).head"></span>
8148
8177
  </div>
8149
8178
  <ng-container *ngIf="agendaTimeTemplate" [ngTemplateOutlet]="agendaTimeTemplate"
8150
8179
  [ngTemplateOutletContext]="extractDataItem(item)">
@@ -8184,9 +8213,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
8184
8213
  </td>
8185
8214
  <td class="k-scheduler-timecolumn" role="gridcell">
8186
8215
  <div *ngIf="!agendaTimeTemplate">
8187
- <span class="k-icon k-i-arrow-60-left" *ngIf="extractDataItem(item).tail"></span>
8216
+ <span class="k-icon k-i-caret-alt-left" *ngIf="extractDataItem(item).tail"></span>
8188
8217
  {{ formatTime(extractDataItem(item)) }}
8189
- <span class="k-icon k-i-arrow-60-right" *ngIf="extractDataItem(item).head"></span>
8218
+ <span class="k-icon k-i-caret-alt-right" *ngIf="extractDataItem(item).head"></span>
8190
8219
  </div>
8191
8220
  <ng-container *ngIf="agendaTimeTemplate" [ngTemplateOutlet]="agendaTimeTemplate"
8192
8221
  [ngTemplateOutletContext]="extractDataItem(item)">
@@ -9308,9 +9337,9 @@ class MonthViewItemComponent extends BaseViewItem {
9308
9337
  MonthViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MonthViewItemComponent, deps: [{ token: MonthSlotService }, { token: i2.LocalizationService }, { token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
9309
9338
  MonthViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MonthViewItemComponent, selector: "[monthViewItem]", usesInheritance: true, ngImport: i0, template: `
9310
9339
  <span class="k-event-actions">
9311
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail"></span>
9312
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
9313
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
9340
+ <span class="k-icon k-i-caret-alt-left" *ngIf="item.tail"></span>
9341
+ <span class="k-icon k-i-arrow-rotate-cw" *ngIf="isRecurrence"></span>
9342
+ <span class="k-icon k-i-arrows-no-repeat" *ngIf="isRecurrenceException"></span>
9314
9343
  </span>
9315
9344
  <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
9316
9345
  [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
@@ -9321,9 +9350,9 @@ MonthViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
9321
9350
 
9322
9351
  <span class="k-event-actions">
9323
9352
  <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
9324
- <span class="k-icon k-i-close"></span>
9353
+ <span class="k-icon k-i-x"></span>
9325
9354
  </span>
9326
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head"></span>
9355
+ <span class="k-icon k-i-caret-alt-right" *ngIf="item.head"></span>
9327
9356
  </span>
9328
9357
 
9329
9358
  <ng-container *ngIf="resizable">
@@ -9338,9 +9367,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
9338
9367
  selector: '[monthViewItem]',
9339
9368
  template: `
9340
9369
  <span class="k-event-actions">
9341
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail"></span>
9342
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
9343
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
9370
+ <span class="k-icon k-i-caret-alt-left" *ngIf="item.tail"></span>
9371
+ <span class="k-icon k-i-arrow-rotate-cw" *ngIf="isRecurrence"></span>
9372
+ <span class="k-icon k-i-arrows-no-repeat" *ngIf="isRecurrenceException"></span>
9344
9373
  </span>
9345
9374
  <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
9346
9375
  [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
@@ -9351,9 +9380,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
9351
9380
 
9352
9381
  <span class="k-event-actions">
9353
9382
  <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
9354
- <span class="k-icon k-i-close"></span>
9383
+ <span class="k-icon k-i-x"></span>
9355
9384
  </span>
9356
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head"></span>
9385
+ <span class="k-icon k-i-caret-alt-right" *ngIf="item.head"></span>
9357
9386
  </span>
9358
9387
 
9359
9388
  <ng-container *ngIf="resizable">
@@ -10997,7 +11026,7 @@ MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
10997
11026
  </ng-container>
10998
11027
  </table>
10999
11028
  </div>
11000
- <div class="k-scheduler-content" #content>
11029
+ <div class="k-scheduler-content" tabindex="0" #content>
11001
11030
  <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
11002
11031
  <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
11003
11032
  <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
@@ -11125,7 +11154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
11125
11154
  </ng-container>
11126
11155
  </table>
11127
11156
  </div>
11128
- <div class="k-scheduler-content" #content>
11157
+ <div class="k-scheduler-content" tabindex="0" #content>
11129
11158
  <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
11130
11159
  <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
11131
11160
  <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
@@ -12311,9 +12340,9 @@ class DayTimeViewItemComponent extends BaseViewItem {
12311
12340
  DayTimeViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewItemComponent, deps: [{ token: i1$3.IntlService }, { token: DayTimeSlotService }, { token: i2.LocalizationService }, { token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
12312
12341
  DayTimeViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: { vertical: "vertical", isAllDay: "isAllDay" }, usesInheritance: true, ngImport: i0, template: `
12313
12342
  <span class="k-event-actions">
12314
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
12315
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
12316
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
12343
+ <span class="k-icon k-i-caret-alt-left" *ngIf="item.tail && !vertical"></span>
12344
+ <span class="k-icon k-i-arrow-rotate-cw" *ngIf="isRecurrence"></span>
12345
+ <span class="k-icon k-i-arrows-no-repeat" *ngIf="isRecurrenceException"></span>
12317
12346
  </span>
12318
12347
  <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
12319
12348
  [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
@@ -12325,17 +12354,17 @@ DayTimeViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
12325
12354
 
12326
12355
  <span class="k-event-actions">
12327
12356
  <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
12328
- <span class="k-icon k-i-close"></span>
12357
+ <span class="k-icon k-i-x"></span>
12329
12358
  </span>
12330
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
12359
+ <span class="k-icon k-i-caret-alt-right" *ngIf="item.head && !vertical"></span>
12331
12360
  </span>
12332
12361
 
12333
12362
  <span class="k-event-top-actions" *ngIf="item.tail && vertical">
12334
- <span class="k-icon k-i-arrow-60-up"></span>
12363
+ <span class="k-icon k-i-caret-alt-up"></span>
12335
12364
  </span>
12336
12365
 
12337
12366
  <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
12338
- <span class="k-icon k-i-arrow-60-down"></span>
12367
+ <span class="k-icon k-i-caret-alt-down"></span>
12339
12368
  </span>
12340
12369
 
12341
12370
  <ng-container *ngIf="resizable && vertical">
@@ -12355,9 +12384,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
12355
12384
  selector: '[dayTimeViewItem]',
12356
12385
  template: `
12357
12386
  <span class="k-event-actions">
12358
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
12359
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
12360
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
12387
+ <span class="k-icon k-i-caret-alt-left" *ngIf="item.tail && !vertical"></span>
12388
+ <span class="k-icon k-i-arrow-rotate-cw" *ngIf="isRecurrence"></span>
12389
+ <span class="k-icon k-i-arrows-no-repeat" *ngIf="isRecurrenceException"></span>
12361
12390
  </span>
12362
12391
  <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
12363
12392
  [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
@@ -12369,17 +12398,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
12369
12398
 
12370
12399
  <span class="k-event-actions">
12371
12400
  <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
12372
- <span class="k-icon k-i-close"></span>
12401
+ <span class="k-icon k-i-x"></span>
12373
12402
  </span>
12374
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
12403
+ <span class="k-icon k-i-caret-alt-right" *ngIf="item.head && !vertical"></span>
12375
12404
  </span>
12376
12405
 
12377
12406
  <span class="k-event-top-actions" *ngIf="item.tail && vertical">
12378
- <span class="k-icon k-i-arrow-60-up"></span>
12407
+ <span class="k-icon k-i-caret-alt-up"></span>
12379
12408
  </span>
12380
12409
 
12381
12410
  <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
12382
- <span class="k-icon k-i-arrow-60-down"></span>
12411
+ <span class="k-icon k-i-caret-alt-down"></span>
12383
12412
  </span>
12384
12413
 
12385
12414
  <ng-container *ngIf="resizable && vertical">
@@ -15411,10 +15440,11 @@ function seriesDate(head, occurrence, current, field) {
15411
15440
  * @hidden
15412
15441
  */
15413
15442
  class EditingDirectiveBase {
15414
- constructor(scheduler, localDataChangesService, dialogsService) {
15443
+ constructor(scheduler, localDataChangesService, dialogsService, focusService) {
15415
15444
  this.scheduler = scheduler;
15416
15445
  this.localDataChangesService = localDataChangesService;
15417
15446
  this.dialogsService = dialogsService;
15447
+ this.focusService = focusService;
15418
15448
  /**
15419
15449
  * Fires before the editing directive renders the **Add** dialog.
15420
15450
  */
@@ -15492,6 +15522,7 @@ class EditingDirectiveBase {
15492
15522
  .subscribe((editMode) => {
15493
15523
  if (editMode !== undefined) {
15494
15524
  this.handleRemove(dataItem, editMode);
15525
+ this.focusService.focusFirst();
15495
15526
  }
15496
15527
  });
15497
15528
  }
@@ -15500,6 +15531,7 @@ class EditingDirectiveBase {
15500
15531
  .subscribe((shouldRemove) => {
15501
15532
  if (shouldRemove) {
15502
15533
  this.handleRemove(dataItem, 0 /* Event */);
15534
+ this.focusService.focusFirst();
15503
15535
  }
15504
15536
  });
15505
15537
  }
@@ -15600,11 +15632,11 @@ class EditingDirectiveBase {
15600
15632
  return editable && editable[action] !== false;
15601
15633
  }
15602
15634
  }
15603
- EditingDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, deps: [{ token: SchedulerComponent }, { token: LocalDataChangesService }, { token: DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
15635
+ EditingDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, deps: [{ token: SchedulerComponent }, { token: LocalDataChangesService }, { token: DialogsService }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Directive });
15604
15636
  EditingDirectiveBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: EditingDirectiveBase, inputs: { editService: "editService" }, outputs: { add: "add", edit: "edit" }, ngImport: i0 });
15605
15637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, decorators: [{
15606
15638
  type: Directive
15607
- }], ctorParameters: function () { return [{ type: SchedulerComponent }, { type: LocalDataChangesService }, { type: DialogsService }]; }, propDecorators: { add: [{
15639
+ }], ctorParameters: function () { return [{ type: SchedulerComponent }, { type: LocalDataChangesService }, { type: DialogsService }, { type: FocusService }]; }, propDecorators: { add: [{
15608
15640
  type: Output
15609
15641
  }], edit: [{
15610
15642
  type: Output
@@ -15617,8 +15649,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
15617
15649
  * uses the [Reactive Angular Forms]({{ site.data.urls.angular['reactiveforms'] }}).
15618
15650
  */
15619
15651
  class ReactiveEditingDirective extends EditingDirectiveBase {
15620
- constructor(scheduler, localDataChangesService, dialogsService) {
15621
- super(scheduler, localDataChangesService, dialogsService);
15652
+ constructor(scheduler, localDataChangesService, dialogsService, focusService) {
15653
+ super(scheduler, localDataChangesService, dialogsService, focusService);
15622
15654
  this.scheduler = scheduler;
15623
15655
  this.localDataChangesService = localDataChangesService;
15624
15656
  this.dialogsService = dialogsService;
@@ -15692,14 +15724,14 @@ class ReactiveEditingDirective extends EditingDirectiveBase {
15692
15724
  return false;
15693
15725
  }
15694
15726
  }
15695
- ReactiveEditingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReactiveEditingDirective, deps: [{ token: SchedulerComponent }, { token: LocalDataChangesService }, { token: DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
15727
+ ReactiveEditingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReactiveEditingDirective, deps: [{ token: SchedulerComponent }, { token: LocalDataChangesService }, { token: DialogsService }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Directive });
15696
15728
  ReactiveEditingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ReactiveEditingDirective, selector: "[kendoSchedulerReactiveEditing]", inputs: { createFormGroup: ["kendoSchedulerReactiveEditing", "createFormGroup"] }, usesInheritance: true, ngImport: i0 });
15697
15729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReactiveEditingDirective, decorators: [{
15698
15730
  type: Directive,
15699
15731
  args: [{
15700
15732
  selector: '[kendoSchedulerReactiveEditing]'
15701
15733
  }]
15702
- }], ctorParameters: function () { return [{ type: SchedulerComponent }, { type: LocalDataChangesService }, { type: DialogsService }]; }, propDecorators: { createFormGroup: [{
15734
+ }], ctorParameters: function () { return [{ type: SchedulerComponent }, { type: LocalDataChangesService }, { type: DialogsService }, { type: FocusService }]; }, propDecorators: { createFormGroup: [{
15703
15735
  type: Input,
15704
15736
  args: ['kendoSchedulerReactiveEditing']
15705
15737
  }] } });
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2021 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 { ElementRef, Renderer2, OnDestroy, EventEmitter } from '@angular/core';
5
+ import { ElementRef, Renderer2, OnDestroy, EventEmitter, NgZone } from '@angular/core';
6
6
  import { FocusableElement } from './focusable-element.interface';
7
7
  import { DomEventsService } from '../views/common/dom-events.service';
8
8
  import { FocusPosition } from './focus-position.interface';
@@ -14,19 +14,22 @@ export declare class FocusService implements OnDestroy {
14
14
  private renderer;
15
15
  private wrapper;
16
16
  private domEvents;
17
+ private zone;
17
18
  get activeElement(): ElementRef;
18
19
  ariaActiveDescendant: EventEmitter<string | null>;
19
20
  private activeItem;
20
21
  private focusedItem;
22
+ private lastActiveDescendantId;
21
23
  private items;
22
24
  private elementMap;
23
25
  private subs;
24
- constructor(renderer: Renderer2, wrapper: ElementRef, domEvents: DomEventsService);
26
+ constructor(renderer: Renderer2, wrapper: ElementRef, domEvents: DomEventsService, zone: NgZone);
25
27
  ngOnDestroy(): void;
26
28
  register(item: FocusableElement): void;
27
29
  unregister(item: FocusableElement): void;
28
30
  focus(): void;
29
31
  focusNext(options?: FocusPosition): boolean;
32
+ focusFirst(): void;
30
33
  clearActiveDescendant(): void;
31
34
  private activate;
32
35
  private activateNext;
@@ -34,6 +37,6 @@ export declare class FocusService implements OnDestroy {
34
37
  private toggleWrapper;
35
38
  private onFocusIn;
36
39
  private onFocusOut;
37
- static ɵfac: i0.ɵɵFactoryDeclaration<FocusService, [{ optional: true; }, { optional: true; }, null]>;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<FocusService, [{ optional: true; }, { optional: true; }, null, null]>;
38
41
  static ɵprov: i0.ɵɵInjectableDeclaration<FocusService>;
39
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "4.3.0",
3
+ "version": "4.3.1-dev.202208290849",
4
4
  "description": "Kendo UI Scheduler Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",