@progress/kendo-angular-dateinputs 12.2.0-develop.3 → 12.2.0-develop.5

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.
@@ -460,6 +460,7 @@ export declare class DatePickerComponent implements ControlValueAccessor, OnInit
460
460
  * @hidden
461
461
  */
462
462
  xIcon: SVGIcon;
463
+ private get inputElement();
463
464
  private _popupSettings;
464
465
  private _show;
465
466
  private _value;
@@ -542,6 +542,9 @@ export class DatePickerComponent {
542
542
  this.toggleCalendar(show);
543
543
  }
544
544
  }
545
+ get inputElement() {
546
+ return this.wrapper.nativeElement.querySelector('input');
547
+ }
545
548
  /**
546
549
  * @hidden
547
550
  * Used by the TextBoxContainer to determine if the component is empty.
@@ -840,7 +843,6 @@ export class DatePickerComponent {
840
843
  return;
841
844
  }
842
845
  this._show = show;
843
- const inputElement = this.wrapper.nativeElement.querySelector('input');
844
846
  if (show) {
845
847
  const direction = this.localization.rtl ? 'right' : 'left';
846
848
  this.popupRef = this.popupService.open({
@@ -855,7 +857,7 @@ export class DatePickerComponent {
855
857
  });
856
858
  this.setAriaActiveDescendant();
857
859
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
858
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
860
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
859
861
  this.subscription = this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
860
862
  }
861
863
  else {
@@ -863,8 +865,8 @@ export class DatePickerComponent {
863
865
  this.popupRef = null;
864
866
  this.subscription.unsubscribe();
865
867
  this.ariaActiveDescendantSubscription.unsubscribe();
866
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
867
- this.renderer.removeAttribute(inputElement, attributeNames.ariaActiveDescendant);
868
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
869
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
868
870
  this.cdr.detectChanges();
869
871
  }
870
872
  }
@@ -876,11 +878,14 @@ export class DatePickerComponent {
876
878
  this.actionSheet.toggle();
877
879
  this.updateActionSheetAdaptiveAppearance();
878
880
  this.setAriaActiveDescendant();
881
+ this.actionSheet.element.nativeElement.setAttribute('id', this.popupUID);
882
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
879
883
  }
880
884
  else if (!show && this.isOpen) {
881
885
  this.actionSheet.toggle();
882
886
  this.ariaActiveDescendantSubscription.unsubscribe();
883
- this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
887
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
888
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
884
889
  }
885
890
  this._show = show;
886
891
  }
@@ -907,7 +912,7 @@ export class DatePickerComponent {
907
912
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
908
913
  this.calendar.monthView.focusedCellChange :
909
914
  this.calendar.multiViewCalendar.viewList.focusedCellChange;
910
- this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant, id));
915
+ this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.inputElement, attributeNames.ariaActiveDescendant, id));
911
916
  }
912
917
  focusInput() {
913
918
  if (this.touchEnabled) {
@@ -1128,6 +1133,8 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
1128
1133
  [attr.title]="localization.get('clearTitle')"
1129
1134
  [svgIcon]="xIcon"
1130
1135
  fillMode="flat"
1136
+ [tabIndex]="-1"
1137
+ aria-hidden="true"
1131
1138
  size="large"
1132
1139
  innerCssClass="k-button-icon"
1133
1140
  (click)="show = false">
@@ -1290,6 +1297,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1290
1297
  [attr.title]="localization.get('clearTitle')"
1291
1298
  [svgIcon]="xIcon"
1292
1299
  fillMode="flat"
1300
+ [tabIndex]="-1"
1301
+ aria-hidden="true"
1293
1302
  size="large"
1294
1303
  innerCssClass="k-button-icon"
1295
1304
  (click)="show = false">
@@ -394,6 +394,7 @@ export class DateRangePopupComponent {
394
394
  if (show && !this.actionSheet.expanded) {
395
395
  this.actionSheet.toggle();
396
396
  this.updateActionSheetAdaptiveAppearance();
397
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
397
398
  }
398
399
  else if (!show && this.actionSheet.expanded) {
399
400
  this.actionSheet.toggle();
@@ -470,6 +471,8 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
470
471
  [attr.title]="localization.get('clearTitle')"
471
472
  [svgIcon]="xIcon"
472
473
  fillMode="flat"
474
+ [tabIndex]="-1"
475
+ aria-hidden="true"
473
476
  size="large"
474
477
  innerCssClass="k-button-icon"
475
478
  (click)="show = false">
@@ -566,6 +569,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
566
569
  [attr.title]="localization.get('clearTitle')"
567
570
  [svgIcon]="xIcon"
568
571
  fillMode="flat"
572
+ [tabIndex]="-1"
573
+ aria-hidden="true"
569
574
  size="large"
570
575
  innerCssClass="k-button-icon"
571
576
  (click)="show = false">
@@ -114,9 +114,6 @@ export class DateRangeService {
114
114
  */
115
115
  deactivatePopup() {
116
116
  const dateRangePopup = this.dateRangePopup$.value;
117
- if (!(dateRangePopup && dateRangePopup.show)) {
118
- return;
119
- }
120
117
  if (this.startInput$.value) {
121
118
  this.renderer.removeAttribute(this.inputStartElement, attributeNames.ariaControls);
122
119
  this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaExpanded, 'false');
@@ -125,6 +122,9 @@ export class DateRangeService {
125
122
  this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaExpanded, 'false');
126
123
  this.renderer.removeAttribute(this.inputEndElement, attributeNames.ariaActiveDescendant);
127
124
  }
125
+ if (!(dateRangePopup && dateRangePopup.show)) {
126
+ return;
127
+ }
128
128
  dateRangePopup.show = false;
129
129
  }
130
130
  /**
@@ -940,6 +940,7 @@ export class DateTimePickerComponent {
940
940
  this.cdr.markForCheck();
941
941
  // Reset tabs after actionsheet is collapsed, otherwise the tab change can be seen during the animation
942
942
  this.resetActiveTab();
943
+ this.input.focus();
943
944
  }
944
945
  /**
945
946
  * @hidden
@@ -970,12 +971,15 @@ export class DateTimePickerComponent {
970
971
  if (isPresent(show) && show && !this.isOpen) {
971
972
  this.actionSheet.toggle();
972
973
  this.updateActionSheetAdaptiveAppearance();
974
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
975
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
973
976
  this.setAriaActiveDescendant();
974
977
  }
975
978
  else if (isPresent(show) && !show && this.isOpen) {
976
979
  this.actionSheet.toggle();
977
980
  this.ariaActiveDescendantSubscription.unsubscribe();
978
981
  this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
982
+ this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaControls);
979
983
  }
980
984
  }
981
985
  updateActionSheetAdaptiveAppearance() {
@@ -1371,6 +1375,8 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
1371
1375
  [attr.title]="localization.get('clearTitle')"
1372
1376
  [svgIcon]="xIcon"
1373
1377
  fillMode="flat"
1378
+ [tabIndex]="-1"
1379
+ aria-hidden="true"
1374
1380
  size="large"
1375
1381
  innerCssClass="k-button-icon"
1376
1382
  (click)="toggleDateTime(false)">
@@ -1731,6 +1737,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1731
1737
  [attr.title]="localization.get('clearTitle')"
1732
1738
  [svgIcon]="xIcon"
1733
1739
  fillMode="flat"
1740
+ [tabIndex]="-1"
1741
+ aria-hidden="true"
1734
1742
  size="large"
1735
1743
  innerCssClass="k-button-icon"
1736
1744
  (click)="toggleDateTime(false)">
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-dateinputs',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1684487835,
13
- version: '12.2.0-develop.3',
12
+ publishDate: 1684742143,
13
+ version: '12.2.0-develop.5',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -449,6 +449,9 @@ export class TimePickerComponent {
449
449
  get timeSelector() {
450
450
  return this.pickerService.timeSelector;
451
451
  }
452
+ get inputElement() {
453
+ return this.wrapper.nativeElement.querySelector('input');
454
+ }
452
455
  /**
453
456
  * @hidden
454
457
  * Used by the TextBoxContainer to determine if the component is empty
@@ -775,10 +778,13 @@ export class TimePickerComponent {
775
778
  if (show && !this.isOpen) {
776
779
  this.actionSheet.toggle();
777
780
  this.updateActionSheetAdaptiveAppearance();
781
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
782
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
778
783
  }
779
784
  else if (!show && this.isOpen) {
780
785
  // Need to disable the pointer events to avoid triggering focus on the timelist when acionsheet close down animation starts
781
786
  this.renderer.setStyle(this.timeSelector.element.nativeElement, 'pointer-events', 'none');
787
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
782
788
  this.actionSheet.toggle();
783
789
  }
784
790
  this._show = show;
@@ -789,7 +795,6 @@ export class TimePickerComponent {
789
795
  }
790
796
  this._show = show;
791
797
  this.cdr.markForCheck();
792
- const inputElement = this.wrapper.nativeElement.querySelector('input');
793
798
  if (show) {
794
799
  const direction = this.localization.rtl ? 'right' : 'left';
795
800
  this.popupRef = this.popupService.open({
@@ -803,13 +808,13 @@ export class TimePickerComponent {
803
808
  positionMode: 'absolute'
804
809
  });
805
810
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
806
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
811
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
807
812
  this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
808
813
  }
809
814
  else {
810
815
  this.popupRef.close();
811
816
  this.popupRef = null;
812
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
817
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
813
818
  }
814
819
  }
815
820
  updateActionSheetAdaptiveAppearance() {
@@ -1064,6 +1069,8 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
1064
1069
  [svgIcon]="xIcon"
1065
1070
  fillMode="flat"
1066
1071
  size="large"
1072
+ [tabIndex]="-1"
1073
+ aria-hidden="true"
1067
1074
  innerCssClass="k-button-icon"
1068
1075
  (click)="show = false">
1069
1076
  </button>
@@ -1264,6 +1271,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1264
1271
  [svgIcon]="xIcon"
1265
1272
  fillMode="flat"
1266
1273
  size="large"
1274
+ [tabIndex]="-1"
1275
+ aria-hidden="true"
1267
1276
  innerCssClass="k-button-icon"
1268
1277
  (click)="show = false">
1269
1278
  </button>
@@ -36,8 +36,8 @@ const packageMetadata = {
36
36
  name: '@progress/kendo-angular-dateinputs',
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
39
- publishDate: 1684487835,
40
- version: '12.2.0-develop.3',
39
+ publishDate: 1684742143,
40
+ version: '12.2.0-develop.5',
41
41
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
42
42
  };
43
43
 
@@ -9273,6 +9273,9 @@ class DatePickerComponent {
9273
9273
  this.toggleCalendar(show);
9274
9274
  }
9275
9275
  }
9276
+ get inputElement() {
9277
+ return this.wrapper.nativeElement.querySelector('input');
9278
+ }
9276
9279
  /**
9277
9280
  * @hidden
9278
9281
  * Used by the TextBoxContainer to determine if the component is empty.
@@ -9571,7 +9574,6 @@ class DatePickerComponent {
9571
9574
  return;
9572
9575
  }
9573
9576
  this._show = show;
9574
- const inputElement = this.wrapper.nativeElement.querySelector('input');
9575
9577
  if (show) {
9576
9578
  const direction = this.localization.rtl ? 'right' : 'left';
9577
9579
  this.popupRef = this.popupService.open({
@@ -9586,7 +9588,7 @@ class DatePickerComponent {
9586
9588
  });
9587
9589
  this.setAriaActiveDescendant();
9588
9590
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
9589
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
9591
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
9590
9592
  this.subscription = this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
9591
9593
  }
9592
9594
  else {
@@ -9594,8 +9596,8 @@ class DatePickerComponent {
9594
9596
  this.popupRef = null;
9595
9597
  this.subscription.unsubscribe();
9596
9598
  this.ariaActiveDescendantSubscription.unsubscribe();
9597
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
9598
- this.renderer.removeAttribute(inputElement, attributeNames.ariaActiveDescendant);
9599
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
9600
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
9599
9601
  this.cdr.detectChanges();
9600
9602
  }
9601
9603
  }
@@ -9607,11 +9609,14 @@ class DatePickerComponent {
9607
9609
  this.actionSheet.toggle();
9608
9610
  this.updateActionSheetAdaptiveAppearance();
9609
9611
  this.setAriaActiveDescendant();
9612
+ this.actionSheet.element.nativeElement.setAttribute('id', this.popupUID);
9613
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
9610
9614
  }
9611
9615
  else if (!show && this.isOpen) {
9612
9616
  this.actionSheet.toggle();
9613
9617
  this.ariaActiveDescendantSubscription.unsubscribe();
9614
- this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
9618
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
9619
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
9615
9620
  }
9616
9621
  this._show = show;
9617
9622
  }
@@ -9638,7 +9643,7 @@ class DatePickerComponent {
9638
9643
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
9639
9644
  this.calendar.monthView.focusedCellChange :
9640
9645
  this.calendar.multiViewCalendar.viewList.focusedCellChange;
9641
- this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant, id));
9646
+ this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.inputElement, attributeNames.ariaActiveDescendant, id));
9642
9647
  }
9643
9648
  focusInput() {
9644
9649
  if (this.touchEnabled) {
@@ -9859,6 +9864,8 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
9859
9864
  [attr.title]="localization.get('clearTitle')"
9860
9865
  [svgIcon]="xIcon"
9861
9866
  fillMode="flat"
9867
+ [tabIndex]="-1"
9868
+ aria-hidden="true"
9862
9869
  size="large"
9863
9870
  innerCssClass="k-button-icon"
9864
9871
  (click)="show = false">
@@ -10021,6 +10028,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10021
10028
  [attr.title]="localization.get('clearTitle')"
10022
10029
  [svgIcon]="xIcon"
10023
10030
  fillMode="flat"
10031
+ [tabIndex]="-1"
10032
+ aria-hidden="true"
10024
10033
  size="large"
10025
10034
  innerCssClass="k-button-icon"
10026
10035
  (click)="show = false">
@@ -12500,6 +12509,9 @@ class TimePickerComponent {
12500
12509
  get timeSelector() {
12501
12510
  return this.pickerService.timeSelector;
12502
12511
  }
12512
+ get inputElement() {
12513
+ return this.wrapper.nativeElement.querySelector('input');
12514
+ }
12503
12515
  /**
12504
12516
  * @hidden
12505
12517
  * Used by the TextBoxContainer to determine if the component is empty
@@ -12826,10 +12838,13 @@ class TimePickerComponent {
12826
12838
  if (show && !this.isOpen) {
12827
12839
  this.actionSheet.toggle();
12828
12840
  this.updateActionSheetAdaptiveAppearance();
12841
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
12842
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
12829
12843
  }
12830
12844
  else if (!show && this.isOpen) {
12831
12845
  // Need to disable the pointer events to avoid triggering focus on the timelist when acionsheet close down animation starts
12832
12846
  this.renderer.setStyle(this.timeSelector.element.nativeElement, 'pointer-events', 'none');
12847
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
12833
12848
  this.actionSheet.toggle();
12834
12849
  }
12835
12850
  this._show = show;
@@ -12840,7 +12855,6 @@ class TimePickerComponent {
12840
12855
  }
12841
12856
  this._show = show;
12842
12857
  this.cdr.markForCheck();
12843
- const inputElement = this.wrapper.nativeElement.querySelector('input');
12844
12858
  if (show) {
12845
12859
  const direction = this.localization.rtl ? 'right' : 'left';
12846
12860
  this.popupRef = this.popupService.open({
@@ -12854,13 +12868,13 @@ class TimePickerComponent {
12854
12868
  positionMode: 'absolute'
12855
12869
  });
12856
12870
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
12857
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
12871
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
12858
12872
  this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
12859
12873
  }
12860
12874
  else {
12861
12875
  this.popupRef.close();
12862
12876
  this.popupRef = null;
12863
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
12877
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
12864
12878
  }
12865
12879
  }
12866
12880
  updateActionSheetAdaptiveAppearance() {
@@ -13115,6 +13129,8 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
13115
13129
  [svgIcon]="xIcon"
13116
13130
  fillMode="flat"
13117
13131
  size="large"
13132
+ [tabIndex]="-1"
13133
+ aria-hidden="true"
13118
13134
  innerCssClass="k-button-icon"
13119
13135
  (click)="show = false">
13120
13136
  </button>
@@ -13315,6 +13331,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13315
13331
  [svgIcon]="xIcon"
13316
13332
  fillMode="flat"
13317
13333
  size="large"
13334
+ [tabIndex]="-1"
13335
+ aria-hidden="true"
13318
13336
  innerCssClass="k-button-icon"
13319
13337
  (click)="show = false">
13320
13338
  </button>
@@ -14453,6 +14471,7 @@ class DateTimePickerComponent {
14453
14471
  this.cdr.markForCheck();
14454
14472
  // Reset tabs after actionsheet is collapsed, otherwise the tab change can be seen during the animation
14455
14473
  this.resetActiveTab();
14474
+ this.input.focus();
14456
14475
  }
14457
14476
  /**
14458
14477
  * @hidden
@@ -14483,12 +14502,15 @@ class DateTimePickerComponent {
14483
14502
  if (isPresent(show) && show && !this.isOpen) {
14484
14503
  this.actionSheet.toggle();
14485
14504
  this.updateActionSheetAdaptiveAppearance();
14505
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
14506
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
14486
14507
  this.setAriaActiveDescendant();
14487
14508
  }
14488
14509
  else if (isPresent(show) && !show && this.isOpen) {
14489
14510
  this.actionSheet.toggle();
14490
14511
  this.ariaActiveDescendantSubscription.unsubscribe();
14491
14512
  this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
14513
+ this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaControls);
14492
14514
  }
14493
14515
  }
14494
14516
  updateActionSheetAdaptiveAppearance() {
@@ -14884,6 +14906,8 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
14884
14906
  [attr.title]="localization.get('clearTitle')"
14885
14907
  [svgIcon]="xIcon"
14886
14908
  fillMode="flat"
14909
+ [tabIndex]="-1"
14910
+ aria-hidden="true"
14887
14911
  size="large"
14888
14912
  innerCssClass="k-button-icon"
14889
14913
  (click)="toggleDateTime(false)">
@@ -15244,6 +15268,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15244
15268
  [attr.title]="localization.get('clearTitle')"
15245
15269
  [svgIcon]="xIcon"
15246
15270
  fillMode="flat"
15271
+ [tabIndex]="-1"
15272
+ aria-hidden="true"
15247
15273
  size="large"
15248
15274
  innerCssClass="k-button-icon"
15249
15275
  (click)="toggleDateTime(false)">
@@ -15685,9 +15711,6 @@ class DateRangeService {
15685
15711
  */
15686
15712
  deactivatePopup() {
15687
15713
  const dateRangePopup = this.dateRangePopup$.value;
15688
- if (!(dateRangePopup && dateRangePopup.show)) {
15689
- return;
15690
- }
15691
15714
  if (this.startInput$.value) {
15692
15715
  this.renderer.removeAttribute(this.inputStartElement, attributeNames.ariaControls);
15693
15716
  this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaExpanded, 'false');
@@ -15696,6 +15719,9 @@ class DateRangeService {
15696
15719
  this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaExpanded, 'false');
15697
15720
  this.renderer.removeAttribute(this.inputEndElement, attributeNames.ariaActiveDescendant);
15698
15721
  }
15722
+ if (!(dateRangePopup && dateRangePopup.show)) {
15723
+ return;
15724
+ }
15699
15725
  dateRangePopup.show = false;
15700
15726
  }
15701
15727
  /**
@@ -16418,6 +16444,7 @@ class DateRangePopupComponent {
16418
16444
  if (show && !this.actionSheet.expanded) {
16419
16445
  this.actionSheet.toggle();
16420
16446
  this.updateActionSheetAdaptiveAppearance();
16447
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
16421
16448
  }
16422
16449
  else if (!show && this.actionSheet.expanded) {
16423
16450
  this.actionSheet.toggle();
@@ -16494,6 +16521,8 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
16494
16521
  [attr.title]="localization.get('clearTitle')"
16495
16522
  [svgIcon]="xIcon"
16496
16523
  fillMode="flat"
16524
+ [tabIndex]="-1"
16525
+ aria-hidden="true"
16497
16526
  size="large"
16498
16527
  innerCssClass="k-button-icon"
16499
16528
  (click)="show = false">
@@ -16590,6 +16619,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16590
16619
  [attr.title]="localization.get('clearTitle')"
16591
16620
  [svgIcon]="xIcon"
16592
16621
  fillMode="flat"
16622
+ [tabIndex]="-1"
16623
+ aria-hidden="true"
16593
16624
  size="large"
16594
16625
  innerCssClass="k-button-icon"
16595
16626
  (click)="show = false">
@@ -36,8 +36,8 @@ const packageMetadata = {
36
36
  name: '@progress/kendo-angular-dateinputs',
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
39
- publishDate: 1684487835,
40
- version: '12.2.0-develop.3',
39
+ publishDate: 1684742143,
40
+ version: '12.2.0-develop.5',
41
41
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
42
42
  };
43
43
 
@@ -9262,6 +9262,9 @@ class DatePickerComponent {
9262
9262
  this.toggleCalendar(show);
9263
9263
  }
9264
9264
  }
9265
+ get inputElement() {
9266
+ return this.wrapper.nativeElement.querySelector('input');
9267
+ }
9265
9268
  /**
9266
9269
  * @hidden
9267
9270
  * Used by the TextBoxContainer to determine if the component is empty.
@@ -9560,7 +9563,6 @@ class DatePickerComponent {
9560
9563
  return;
9561
9564
  }
9562
9565
  this._show = show;
9563
- const inputElement = this.wrapper.nativeElement.querySelector('input');
9564
9566
  if (show) {
9565
9567
  const direction = this.localization.rtl ? 'right' : 'left';
9566
9568
  this.popupRef = this.popupService.open({
@@ -9575,7 +9577,7 @@ class DatePickerComponent {
9575
9577
  });
9576
9578
  this.setAriaActiveDescendant();
9577
9579
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
9578
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
9580
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
9579
9581
  this.subscription = this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
9580
9582
  }
9581
9583
  else {
@@ -9583,8 +9585,8 @@ class DatePickerComponent {
9583
9585
  this.popupRef = null;
9584
9586
  this.subscription.unsubscribe();
9585
9587
  this.ariaActiveDescendantSubscription.unsubscribe();
9586
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
9587
- this.renderer.removeAttribute(inputElement, attributeNames.ariaActiveDescendant);
9588
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
9589
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
9588
9590
  this.cdr.detectChanges();
9589
9591
  }
9590
9592
  }
@@ -9596,11 +9598,14 @@ class DatePickerComponent {
9596
9598
  this.actionSheet.toggle();
9597
9599
  this.updateActionSheetAdaptiveAppearance();
9598
9600
  this.setAriaActiveDescendant();
9601
+ this.actionSheet.element.nativeElement.setAttribute('id', this.popupUID);
9602
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
9599
9603
  }
9600
9604
  else if (!show && this.isOpen) {
9601
9605
  this.actionSheet.toggle();
9602
9606
  this.ariaActiveDescendantSubscription.unsubscribe();
9603
- this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
9607
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
9608
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
9604
9609
  }
9605
9610
  this._show = show;
9606
9611
  }
@@ -9627,7 +9632,7 @@ class DatePickerComponent {
9627
9632
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
9628
9633
  this.calendar.monthView.focusedCellChange :
9629
9634
  this.calendar.multiViewCalendar.viewList.focusedCellChange;
9630
- this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant, id));
9635
+ this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.inputElement, attributeNames.ariaActiveDescendant, id));
9631
9636
  }
9632
9637
  focusInput() {
9633
9638
  if (this.touchEnabled) {
@@ -9848,6 +9853,8 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
9848
9853
  [attr.title]="localization.get('clearTitle')"
9849
9854
  [svgIcon]="xIcon"
9850
9855
  fillMode="flat"
9856
+ [tabIndex]="-1"
9857
+ aria-hidden="true"
9851
9858
  size="large"
9852
9859
  innerCssClass="k-button-icon"
9853
9860
  (click)="show = false">
@@ -10010,6 +10017,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10010
10017
  [attr.title]="localization.get('clearTitle')"
10011
10018
  [svgIcon]="xIcon"
10012
10019
  fillMode="flat"
10020
+ [tabIndex]="-1"
10021
+ aria-hidden="true"
10013
10022
  size="large"
10014
10023
  innerCssClass="k-button-icon"
10015
10024
  (click)="show = false">
@@ -12483,6 +12492,9 @@ class TimePickerComponent {
12483
12492
  get timeSelector() {
12484
12493
  return this.pickerService.timeSelector;
12485
12494
  }
12495
+ get inputElement() {
12496
+ return this.wrapper.nativeElement.querySelector('input');
12497
+ }
12486
12498
  /**
12487
12499
  * @hidden
12488
12500
  * Used by the TextBoxContainer to determine if the component is empty
@@ -12809,10 +12821,13 @@ class TimePickerComponent {
12809
12821
  if (show && !this.isOpen) {
12810
12822
  this.actionSheet.toggle();
12811
12823
  this.updateActionSheetAdaptiveAppearance();
12824
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
12825
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
12812
12826
  }
12813
12827
  else if (!show && this.isOpen) {
12814
12828
  // Need to disable the pointer events to avoid triggering focus on the timelist when acionsheet close down animation starts
12815
12829
  this.renderer.setStyle(this.timeSelector.element.nativeElement, 'pointer-events', 'none');
12830
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
12816
12831
  this.actionSheet.toggle();
12817
12832
  }
12818
12833
  this._show = show;
@@ -12823,7 +12838,6 @@ class TimePickerComponent {
12823
12838
  }
12824
12839
  this._show = show;
12825
12840
  this.cdr.markForCheck();
12826
- const inputElement = this.wrapper.nativeElement.querySelector('input');
12827
12841
  if (show) {
12828
12842
  const direction = this.localization.rtl ? 'right' : 'left';
12829
12843
  this.popupRef = this.popupService.open({
@@ -12837,13 +12851,13 @@ class TimePickerComponent {
12837
12851
  positionMode: 'absolute'
12838
12852
  });
12839
12853
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
12840
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
12854
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
12841
12855
  this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
12842
12856
  }
12843
12857
  else {
12844
12858
  this.popupRef.close();
12845
12859
  this.popupRef = null;
12846
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
12860
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
12847
12861
  }
12848
12862
  }
12849
12863
  updateActionSheetAdaptiveAppearance() {
@@ -13098,6 +13112,8 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
13098
13112
  [svgIcon]="xIcon"
13099
13113
  fillMode="flat"
13100
13114
  size="large"
13115
+ [tabIndex]="-1"
13116
+ aria-hidden="true"
13101
13117
  innerCssClass="k-button-icon"
13102
13118
  (click)="show = false">
13103
13119
  </button>
@@ -13298,6 +13314,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13298
13314
  [svgIcon]="xIcon"
13299
13315
  fillMode="flat"
13300
13316
  size="large"
13317
+ [tabIndex]="-1"
13318
+ aria-hidden="true"
13301
13319
  innerCssClass="k-button-icon"
13302
13320
  (click)="show = false">
13303
13321
  </button>
@@ -14429,6 +14447,7 @@ class DateTimePickerComponent {
14429
14447
  this.cdr.markForCheck();
14430
14448
  // Reset tabs after actionsheet is collapsed, otherwise the tab change can be seen during the animation
14431
14449
  this.resetActiveTab();
14450
+ this.input.focus();
14432
14451
  }
14433
14452
  /**
14434
14453
  * @hidden
@@ -14459,12 +14478,15 @@ class DateTimePickerComponent {
14459
14478
  if (isPresent(show) && show && !this.isOpen) {
14460
14479
  this.actionSheet.toggle();
14461
14480
  this.updateActionSheetAdaptiveAppearance();
14481
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
14482
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
14462
14483
  this.setAriaActiveDescendant();
14463
14484
  }
14464
14485
  else if (isPresent(show) && !show && this.isOpen) {
14465
14486
  this.actionSheet.toggle();
14466
14487
  this.ariaActiveDescendantSubscription.unsubscribe();
14467
14488
  this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
14489
+ this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaControls);
14468
14490
  }
14469
14491
  }
14470
14492
  updateActionSheetAdaptiveAppearance() {
@@ -14860,6 +14882,8 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
14860
14882
  [attr.title]="localization.get('clearTitle')"
14861
14883
  [svgIcon]="xIcon"
14862
14884
  fillMode="flat"
14885
+ [tabIndex]="-1"
14886
+ aria-hidden="true"
14863
14887
  size="large"
14864
14888
  innerCssClass="k-button-icon"
14865
14889
  (click)="toggleDateTime(false)">
@@ -15220,6 +15244,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15220
15244
  [attr.title]="localization.get('clearTitle')"
15221
15245
  [svgIcon]="xIcon"
15222
15246
  fillMode="flat"
15247
+ [tabIndex]="-1"
15248
+ aria-hidden="true"
15223
15249
  size="large"
15224
15250
  innerCssClass="k-button-icon"
15225
15251
  (click)="toggleDateTime(false)">
@@ -15659,9 +15685,6 @@ class DateRangeService {
15659
15685
  */
15660
15686
  deactivatePopup() {
15661
15687
  const dateRangePopup = this.dateRangePopup$.value;
15662
- if (!(dateRangePopup && dateRangePopup.show)) {
15663
- return;
15664
- }
15665
15688
  if (this.startInput$.value) {
15666
15689
  this.renderer.removeAttribute(this.inputStartElement, attributeNames.ariaControls);
15667
15690
  this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaExpanded, 'false');
@@ -15670,6 +15693,9 @@ class DateRangeService {
15670
15693
  this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaExpanded, 'false');
15671
15694
  this.renderer.removeAttribute(this.inputEndElement, attributeNames.ariaActiveDescendant);
15672
15695
  }
15696
+ if (!(dateRangePopup && dateRangePopup.show)) {
15697
+ return;
15698
+ }
15673
15699
  dateRangePopup.show = false;
15674
15700
  }
15675
15701
  /**
@@ -16388,6 +16414,7 @@ class DateRangePopupComponent {
16388
16414
  if (show && !this.actionSheet.expanded) {
16389
16415
  this.actionSheet.toggle();
16390
16416
  this.updateActionSheetAdaptiveAppearance();
16417
+ this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
16391
16418
  }
16392
16419
  else if (!show && this.actionSheet.expanded) {
16393
16420
  this.actionSheet.toggle();
@@ -16464,6 +16491,8 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
16464
16491
  [attr.title]="localization.get('clearTitle')"
16465
16492
  [svgIcon]="xIcon"
16466
16493
  fillMode="flat"
16494
+ [tabIndex]="-1"
16495
+ aria-hidden="true"
16467
16496
  size="large"
16468
16497
  innerCssClass="k-button-icon"
16469
16498
  (click)="show = false">
@@ -16560,6 +16589,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16560
16589
  [attr.title]="localization.get('clearTitle')"
16561
16590
  [svgIcon]="xIcon"
16562
16591
  fillMode="flat"
16592
+ [tabIndex]="-1"
16593
+ aria-hidden="true"
16563
16594
  size="large"
16564
16595
  innerCssClass="k-button-icon"
16565
16596
  (click)="show = false">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-dateinputs",
3
- "version": "12.2.0-develop.3",
3
+ "version": "12.2.0-develop.5",
4
4
  "description": "Kendo UI for Angular Date Inputs Package - Everything you need to add date selection functionality to apps (DatePicker, TimePicker, DateInput, DateRangePicker, DateTimePicker, Calendar, and MultiViewCalendar).",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -33,20 +33,20 @@
33
33
  "@angular/core": "13 - 16",
34
34
  "@angular/platform-browser": "13 - 16",
35
35
  "@progress/kendo-licensing": "^1.0.2",
36
- "@progress/kendo-angular-common": "12.2.0-develop.3",
37
- "@progress/kendo-angular-intl": "12.2.0-develop.3",
38
- "@progress/kendo-angular-l10n": "12.2.0-develop.3",
39
- "@progress/kendo-angular-icons": "12.2.0-develop.3",
40
- "@progress/kendo-angular-popup": "12.2.0-develop.3",
41
- "@progress/kendo-angular-navigation": "12.2.0-develop.3",
36
+ "@progress/kendo-angular-common": "12.2.0-develop.5",
37
+ "@progress/kendo-angular-intl": "12.2.0-develop.5",
38
+ "@progress/kendo-angular-l10n": "12.2.0-develop.5",
39
+ "@progress/kendo-angular-icons": "12.2.0-develop.5",
40
+ "@progress/kendo-angular-popup": "12.2.0-develop.5",
41
+ "@progress/kendo-angular-navigation": "12.2.0-develop.5",
42
42
  "rxjs": "^6.5.3 || ^7.0.0",
43
- "@progress/kendo-angular-buttons": "12.2.0-develop.3",
44
- "@progress/kendo-angular-inputs": "12.2.0-develop.3",
45
- "@progress/kendo-angular-label": "12.2.0-develop.3"
43
+ "@progress/kendo-angular-buttons": "12.2.0-develop.5",
44
+ "@progress/kendo-angular-inputs": "12.2.0-develop.5",
45
+ "@progress/kendo-angular-label": "12.2.0-develop.5"
46
46
  },
47
47
  "dependencies": {
48
48
  "tslib": "^2.3.1",
49
- "@progress/kendo-angular-schematics": "12.2.0-develop.3",
49
+ "@progress/kendo-angular-schematics": "12.2.0-develop.5",
50
50
  "@progress/kendo-common": "^0.2.0",
51
51
  "@progress/kendo-date-math": "^1.1.0"
52
52
  },
@@ -350,6 +350,7 @@ export declare class TimePickerComponent implements ControlValueAccessor, OnInit
350
350
  set show(show: boolean);
351
351
  get input(): DateInputComponent;
352
352
  get timeSelector(): TimeSelectorComponent;
353
+ private get inputElement();
353
354
  private onControlChange;
354
355
  private onControlTouched;
355
356
  private onValidatorChange;