@progress/kendo-angular-dateinputs 17.0.2-develop.6 → 17.0.2-develop.8
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.
- package/datetimepicker/datetimepicker.component.d.ts +5 -0
- package/esm2022/calendar/header.component.mjs +0 -2
- package/esm2022/datetimepicker/datetimepicker.component.mjs +63 -10
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/timepicker/timelist.component.mjs +23 -15
- package/esm2022/timepicker/timepicker.component.mjs +28 -1
- package/esm2022/timepicker/timeselector.component.mjs +15 -20
- package/fesm2022/progress-kendo-angular-dateinputs.mjs +131 -49
- package/package.json +9 -9
- package/timepicker/timelist.component.d.ts +5 -3
- package/timepicker/timepicker.component.d.ts +8 -0
- package/timepicker/timeselector.component.d.ts +4 -4
|
@@ -522,6 +522,7 @@ export declare class DateTimePickerComponent extends MultiTabStop implements OnI
|
|
|
522
522
|
private get cancelButtonElement();
|
|
523
523
|
private get dateTabButton();
|
|
524
524
|
private get timeTabButton();
|
|
525
|
+
private get todayButton();
|
|
525
526
|
/**
|
|
526
527
|
* @hidden
|
|
527
528
|
*/
|
|
@@ -629,6 +630,10 @@ export declare class DateTimePickerComponent extends MultiTabStop implements OnI
|
|
|
629
630
|
* @hidden
|
|
630
631
|
*/
|
|
631
632
|
onTabOutLastPart(): void;
|
|
633
|
+
/**
|
|
634
|
+
* @hidden
|
|
635
|
+
*/
|
|
636
|
+
onTabOutFirstPart(): void;
|
|
632
637
|
/**
|
|
633
638
|
* @hidden
|
|
634
639
|
*/
|
|
@@ -194,7 +194,6 @@ export class HeaderComponent {
|
|
|
194
194
|
<button
|
|
195
195
|
kendoButton
|
|
196
196
|
class="k-calendar-nav-today"
|
|
197
|
-
tabindex="-1"
|
|
198
197
|
fillMode="flat"
|
|
199
198
|
role="link"
|
|
200
199
|
[size]="size"
|
|
@@ -281,7 +280,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
281
280
|
<button
|
|
282
281
|
kendoButton
|
|
283
282
|
class="k-calendar-nav-today"
|
|
284
|
-
tabindex="-1"
|
|
285
283
|
fillMode="flat"
|
|
286
284
|
role="link"
|
|
287
285
|
[size]="size"
|
|
@@ -63,6 +63,7 @@ const ACCEPT_BUTTON_SELECTOR = '.k-button.k-time-accept';
|
|
|
63
63
|
const CANCEL_BUTTON_SELECOTR = '.k-button.k-time-cancel';
|
|
64
64
|
const DATE_TAB_BUTTON_SELECTOR = '.k-button.k-group-start';
|
|
65
65
|
const TIME_TAB_BUTTON_SELECTOR = '.k-button.k-group-end';
|
|
66
|
+
const TODAY_BUTTON_SELECTOR = '.k-button.k-calendar-nav-today';
|
|
66
67
|
/**
|
|
67
68
|
* Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).
|
|
68
69
|
*/
|
|
@@ -723,6 +724,14 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
723
724
|
return this.popupRef?.popup.instance.container.nativeElement.querySelector(TIME_TAB_BUTTON_SELECTOR);
|
|
724
725
|
}
|
|
725
726
|
}
|
|
727
|
+
get todayButton() {
|
|
728
|
+
if (this.isAdaptive) {
|
|
729
|
+
return this.actionSheet.element.nativeElement.querySelector(TODAY_BUTTON_SELECTOR);
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
return this.popupRef?.popup.instance.container.nativeElement.querySelector(TODAY_BUTTON_SELECTOR);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
726
735
|
/**
|
|
727
736
|
* @hidden
|
|
728
737
|
*/
|
|
@@ -1008,6 +1017,15 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1008
1017
|
this.dateTabButton.focus();
|
|
1009
1018
|
}
|
|
1010
1019
|
}
|
|
1020
|
+
/**
|
|
1021
|
+
* @hidden
|
|
1022
|
+
*/
|
|
1023
|
+
onTabOutFirstPart() {
|
|
1024
|
+
if (this.activeTab === 'time') {
|
|
1025
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.first.nativeElement, 'k-focus');
|
|
1026
|
+
this.timeSelector.showNowButton ? this.timeSelector.now.nativeElement.focus() : this.timeTabButton.focus();
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1011
1029
|
/**
|
|
1012
1030
|
* @hidden
|
|
1013
1031
|
*/
|
|
@@ -1094,7 +1112,6 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1094
1112
|
break;
|
|
1095
1113
|
default: return;
|
|
1096
1114
|
}
|
|
1097
|
-
event.preventDefault();
|
|
1098
1115
|
}
|
|
1099
1116
|
/**
|
|
1100
1117
|
* @hidden
|
|
@@ -1111,6 +1128,9 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1111
1128
|
if (this.activeTab === 'date') {
|
|
1112
1129
|
this.calendar.monthView.list.nativeElement.focus();
|
|
1113
1130
|
}
|
|
1131
|
+
else {
|
|
1132
|
+
this.timeSelector.timeLists.last.focus();
|
|
1133
|
+
}
|
|
1114
1134
|
}
|
|
1115
1135
|
break;
|
|
1116
1136
|
case this.cancelButtonElement:
|
|
@@ -1122,6 +1142,9 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1122
1142
|
if (this.activeTab === 'date') {
|
|
1123
1143
|
this.calendar.monthView.list.nativeElement.focus();
|
|
1124
1144
|
}
|
|
1145
|
+
else {
|
|
1146
|
+
this.timeSelector.timeLists.last.focus();
|
|
1147
|
+
}
|
|
1125
1148
|
}
|
|
1126
1149
|
else {
|
|
1127
1150
|
this.dateTabButton.focus();
|
|
@@ -1144,6 +1167,16 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1144
1167
|
}
|
|
1145
1168
|
}
|
|
1146
1169
|
break;
|
|
1170
|
+
case this.timeTabButton:
|
|
1171
|
+
if (this.activeTab === 'time') {
|
|
1172
|
+
this.timeSelector.showNowButton ?
|
|
1173
|
+
this.timeSelector.now.nativeElement.focus() :
|
|
1174
|
+
this.timeSelector.timeLists.first.focus();
|
|
1175
|
+
}
|
|
1176
|
+
else {
|
|
1177
|
+
this.todayButton.focus();
|
|
1178
|
+
}
|
|
1179
|
+
break;
|
|
1147
1180
|
default:
|
|
1148
1181
|
break;
|
|
1149
1182
|
}
|
|
@@ -1338,9 +1371,17 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1338
1371
|
if (this.calendar.type === 'infinite') {
|
|
1339
1372
|
this.subscriptions.add(fromEvent(this.calendar.monthView.list.nativeElement, 'keydown').subscribe((event) => {
|
|
1340
1373
|
const { keyCode, shiftKey } = event;
|
|
1341
|
-
if (keyCode === Keys.Tab && !shiftKey
|
|
1374
|
+
if (keyCode === Keys.Tab && !shiftKey) {
|
|
1342
1375
|
event.preventDefault();
|
|
1343
|
-
this.
|
|
1376
|
+
if (!this.calendarValue && !this.cancelButton) {
|
|
1377
|
+
this.dateTabButton.focus();
|
|
1378
|
+
}
|
|
1379
|
+
else if (this.calendarValue) {
|
|
1380
|
+
this.acceptButton.focus();
|
|
1381
|
+
}
|
|
1382
|
+
else if (this.cancelButton) {
|
|
1383
|
+
this.cancelButtonElement.focus();
|
|
1384
|
+
}
|
|
1344
1385
|
}
|
|
1345
1386
|
}));
|
|
1346
1387
|
}
|
|
@@ -1702,8 +1743,11 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1702
1743
|
[attr.title]="localization.get('timeTabLabel')"
|
|
1703
1744
|
[attr.aria-label]="localization.get('timeTabLabel')"
|
|
1704
1745
|
[kendoEventsOutsideAngular]="{
|
|
1705
|
-
click: changeActiveTab.bind(this, 'time')
|
|
1746
|
+
click: changeActiveTab.bind(this, 'time'),
|
|
1747
|
+
'keydown.tab': handleTab
|
|
1706
1748
|
}"
|
|
1749
|
+
[scope]="this"
|
|
1750
|
+
|
|
1707
1751
|
>
|
|
1708
1752
|
{{localization.get('timeTab')}}
|
|
1709
1753
|
</button>
|
|
@@ -1768,6 +1812,7 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1768
1812
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
1769
1813
|
[isDateTimePicker]="true"
|
|
1770
1814
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
1815
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
1771
1816
|
(tabOutNow)="onTabOutNow()"
|
|
1772
1817
|
>
|
|
1773
1818
|
<kendo-timeselector-messages
|
|
@@ -1805,7 +1850,8 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1805
1850
|
[disabled]="!calendarValue"
|
|
1806
1851
|
[kendoEventsOutsideAngular]="{
|
|
1807
1852
|
click: handleAccept,
|
|
1808
|
-
'keydown.tab': handleTab
|
|
1853
|
+
'keydown.tab': handleTab,
|
|
1854
|
+
'keydown.shift.tab': handleTab
|
|
1809
1855
|
}"
|
|
1810
1856
|
[scope]="this"
|
|
1811
1857
|
>
|
|
@@ -1821,7 +1867,8 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1821
1867
|
[attr.aria-label]="localization.get('cancelLabel')"
|
|
1822
1868
|
[kendoEventsOutsideAngular]="{
|
|
1823
1869
|
click: handleCancel,
|
|
1824
|
-
'keydown.tab': handleTab
|
|
1870
|
+
'keydown.tab': handleTab,
|
|
1871
|
+
'keydown.shift.tab': handleTab
|
|
1825
1872
|
}"
|
|
1826
1873
|
[scope]="this"
|
|
1827
1874
|
>
|
|
@@ -1830,7 +1877,7 @@ export class DateTimePickerComponent extends MultiTabStop {
|
|
|
1830
1877
|
</div>
|
|
1831
1878
|
</div>
|
|
1832
1879
|
</ng-template>
|
|
1833
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1880
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutFirstPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1834
1881
|
}
|
|
1835
1882
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
1836
1883
|
type: Component,
|
|
@@ -2106,8 +2153,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2106
2153
|
[attr.title]="localization.get('timeTabLabel')"
|
|
2107
2154
|
[attr.aria-label]="localization.get('timeTabLabel')"
|
|
2108
2155
|
[kendoEventsOutsideAngular]="{
|
|
2109
|
-
click: changeActiveTab.bind(this, 'time')
|
|
2156
|
+
click: changeActiveTab.bind(this, 'time'),
|
|
2157
|
+
'keydown.tab': handleTab
|
|
2110
2158
|
}"
|
|
2159
|
+
[scope]="this"
|
|
2160
|
+
|
|
2111
2161
|
>
|
|
2112
2162
|
{{localization.get('timeTab')}}
|
|
2113
2163
|
</button>
|
|
@@ -2172,6 +2222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2172
2222
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
2173
2223
|
[isDateTimePicker]="true"
|
|
2174
2224
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
2225
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
2175
2226
|
(tabOutNow)="onTabOutNow()"
|
|
2176
2227
|
>
|
|
2177
2228
|
<kendo-timeselector-messages
|
|
@@ -2209,7 +2260,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2209
2260
|
[disabled]="!calendarValue"
|
|
2210
2261
|
[kendoEventsOutsideAngular]="{
|
|
2211
2262
|
click: handleAccept,
|
|
2212
|
-
'keydown.tab': handleTab
|
|
2263
|
+
'keydown.tab': handleTab,
|
|
2264
|
+
'keydown.shift.tab': handleTab
|
|
2213
2265
|
}"
|
|
2214
2266
|
[scope]="this"
|
|
2215
2267
|
>
|
|
@@ -2225,7 +2277,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2225
2277
|
[attr.aria-label]="localization.get('cancelLabel')"
|
|
2226
2278
|
[kendoEventsOutsideAngular]="{
|
|
2227
2279
|
click: handleCancel,
|
|
2228
|
-
'keydown.tab': handleTab
|
|
2280
|
+
'keydown.tab': handleTab,
|
|
2281
|
+
'keydown.shift.tab': handleTab
|
|
2229
2282
|
}"
|
|
2230
2283
|
[scope]="this"
|
|
2231
2284
|
>
|
|
@@ -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:
|
|
13
|
-
version: '17.0.2-develop.
|
|
12
|
+
publishDate: 1731677134,
|
|
13
|
+
version: '17.0.2-develop.8',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
15
15
|
};
|
|
@@ -55,15 +55,11 @@ export class TimeListComponent {
|
|
|
55
55
|
disabled = false;
|
|
56
56
|
value;
|
|
57
57
|
isLast = false;
|
|
58
|
+
isFirst = false;
|
|
58
59
|
valueChange = new EventEmitter();
|
|
59
60
|
tabOutLastPart = new EventEmitter();
|
|
61
|
+
tabOutFirstPart = new EventEmitter();
|
|
60
62
|
virtualization;
|
|
61
|
-
get roleAttribute() {
|
|
62
|
-
return 'listbox';
|
|
63
|
-
}
|
|
64
|
-
get ariaLabel() {
|
|
65
|
-
return this.localization.get(this.part?.type);
|
|
66
|
-
}
|
|
67
63
|
get tabIndex() {
|
|
68
64
|
return this.disabled ? undefined : 0;
|
|
69
65
|
}
|
|
@@ -74,6 +70,12 @@ export class TimeListComponent {
|
|
|
74
70
|
get currentSelectedIndex() {
|
|
75
71
|
return this.selectedIndex(this.value);
|
|
76
72
|
}
|
|
73
|
+
get roleAttribute() {
|
|
74
|
+
return 'listbox';
|
|
75
|
+
}
|
|
76
|
+
get ariaLabel() {
|
|
77
|
+
return this.localization.get(this.part?.type);
|
|
78
|
+
}
|
|
77
79
|
animateToIndex = true;
|
|
78
80
|
isActive = false;
|
|
79
81
|
skip = 0;
|
|
@@ -254,6 +256,10 @@ export class TimeListComponent {
|
|
|
254
256
|
e.preventDefault();
|
|
255
257
|
this.tabOutLastPart.emit();
|
|
256
258
|
}
|
|
259
|
+
if (e.keyCode === Keys.Tab && e.shiftKey && this.isFirst) {
|
|
260
|
+
e.preventDefault();
|
|
261
|
+
this.tabOutFirstPart.emit();
|
|
262
|
+
}
|
|
257
263
|
const getter = getters[e.keyCode] || nil;
|
|
258
264
|
const dataItem = getter(this.data, this.service.selectedIndex(this.value));
|
|
259
265
|
if (dataItem) {
|
|
@@ -273,8 +279,10 @@ export class TimeListComponent {
|
|
|
273
279
|
this.domEvents.push(this.renderer.listen(element, 'mouseover', () => !this.isActive && this.focus()), this.renderer.listen(element, 'click', () => this.focus()), this.renderer.listen(element, 'blur', () => this.isActive = false), this.renderer.listen(element, 'focus', () => this.isActive = true), this.renderer.listen(element, 'keydown', this.handleKeyDown.bind(this)));
|
|
274
280
|
}
|
|
275
281
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeListComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.TimePickerDOMService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
276
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeListComponent, isStandalone: true, selector: "kendo-timelist", inputs: { min: "min", max: "max", part: "part", step: "step", disabled: "disabled", value: "value", isLast: "isLast" }, outputs: { valueChange: "valueChange", tabOutLastPart: "tabOutLastPart" }, host: { properties: { "attr.
|
|
282
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeListComponent, isStandalone: true, selector: "kendo-timelist", inputs: { min: "min", max: "max", part: "part", step: "step", disabled: "disabled", value: "value", isLast: "isLast", isFirst: "isFirst" }, outputs: { valueChange: "valueChange", tabOutLastPart: "tabOutLastPart", tabOutFirstPart: "tabOutFirstPart" }, host: { properties: { "attr.tabindex": "this.tabIndex", "class.k-time-list": "this.componentClass" } }, viewQueries: [{ propertyName: "virtualization", first: true, predicate: VirtualizationComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
277
283
|
<kendo-virtualization
|
|
284
|
+
[attr.role]="roleAttribute"
|
|
285
|
+
[attr.aria-label]="ariaLabel"
|
|
278
286
|
[skip]="skip"
|
|
279
287
|
[take]="total"
|
|
280
288
|
[total]="total"
|
|
@@ -283,7 +291,7 @@ export class TimeListComponent {
|
|
|
283
291
|
[topOffset]="topOffset"
|
|
284
292
|
[bottomOffset]="bottomOffset"
|
|
285
293
|
class="k-time-container"
|
|
286
|
-
|
|
294
|
+
tabindex="-1"
|
|
287
295
|
>
|
|
288
296
|
<ul [ngStyle]="style" class="k-reset"
|
|
289
297
|
[kendoEventsOutsideAngular]="{
|
|
@@ -309,6 +317,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
309
317
|
selector: 'kendo-timelist',
|
|
310
318
|
template: `
|
|
311
319
|
<kendo-virtualization
|
|
320
|
+
[attr.role]="roleAttribute"
|
|
321
|
+
[attr.aria-label]="ariaLabel"
|
|
312
322
|
[skip]="skip"
|
|
313
323
|
[take]="total"
|
|
314
324
|
[total]="total"
|
|
@@ -317,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
317
327
|
[topOffset]="topOffset"
|
|
318
328
|
[bottomOffset]="bottomOffset"
|
|
319
329
|
class="k-time-container"
|
|
320
|
-
|
|
330
|
+
tabindex="-1"
|
|
321
331
|
>
|
|
322
332
|
<ul [ngStyle]="style" class="k-reset"
|
|
323
333
|
[kendoEventsOutsideAngular]="{
|
|
@@ -353,19 +363,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
353
363
|
type: Input
|
|
354
364
|
}], isLast: [{
|
|
355
365
|
type: Input
|
|
366
|
+
}], isFirst: [{
|
|
367
|
+
type: Input
|
|
356
368
|
}], valueChange: [{
|
|
357
369
|
type: Output
|
|
358
370
|
}], tabOutLastPart: [{
|
|
359
371
|
type: Output
|
|
372
|
+
}], tabOutFirstPart: [{
|
|
373
|
+
type: Output
|
|
360
374
|
}], virtualization: [{
|
|
361
375
|
type: ViewChild,
|
|
362
376
|
args: [VirtualizationComponent, { static: true }]
|
|
363
|
-
}], roleAttribute: [{
|
|
364
|
-
type: HostBinding,
|
|
365
|
-
args: ["attr.role"]
|
|
366
|
-
}], ariaLabel: [{
|
|
367
|
-
type: HostBinding,
|
|
368
|
-
args: ["attr.aria-label"]
|
|
369
377
|
}], tabIndex: [{
|
|
370
378
|
type: HostBinding,
|
|
371
379
|
args: ["attr.tabindex"]
|
|
@@ -780,6 +780,16 @@ export class TimePickerComponent extends MultiTabStop {
|
|
|
780
780
|
this.show = true;
|
|
781
781
|
}
|
|
782
782
|
}
|
|
783
|
+
/**
|
|
784
|
+
* @hidden
|
|
785
|
+
*/
|
|
786
|
+
onTabOutNow() {
|
|
787
|
+
if (!this.timeSelector.showNowButton) {
|
|
788
|
+
this.cancelButton ?
|
|
789
|
+
this.timeSelector.cancel.nativeElement.focus() :
|
|
790
|
+
this.timeSelector.accept.nativeElement.focus();
|
|
791
|
+
}
|
|
792
|
+
}
|
|
783
793
|
/**
|
|
784
794
|
* @hidden
|
|
785
795
|
*/
|
|
@@ -852,6 +862,7 @@ export class TimePickerComponent extends MultiTabStop {
|
|
|
852
862
|
* @hidden
|
|
853
863
|
*/
|
|
854
864
|
onTabOutLastPart() {
|
|
865
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.last.nativeElement, 'k-focus');
|
|
855
866
|
if (this.isAdaptive) {
|
|
856
867
|
this.cancelButton ? this.adaptiveCancelButton.focus() : this.adaptiveAcceptButton.focus();
|
|
857
868
|
}
|
|
@@ -859,6 +870,18 @@ export class TimePickerComponent extends MultiTabStop {
|
|
|
859
870
|
this.timeSelector.accept.nativeElement.focus();
|
|
860
871
|
}
|
|
861
872
|
}
|
|
873
|
+
/**
|
|
874
|
+
* @hidden
|
|
875
|
+
*/
|
|
876
|
+
onTabOutFirstPart() {
|
|
877
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.first.nativeElement, 'k-focus');
|
|
878
|
+
if (this.timeSelector.showNowButton) {
|
|
879
|
+
this.timeSelector.now.nativeElement.focus();
|
|
880
|
+
}
|
|
881
|
+
else {
|
|
882
|
+
this.cancelButton ? this.timeSelector.cancel.nativeElement.focus() : this.timeSelector.accept.nativeElement.focus();
|
|
883
|
+
}
|
|
884
|
+
}
|
|
862
885
|
toggleTimeSelector(show) {
|
|
863
886
|
this.windowSize = windowSize();
|
|
864
887
|
if (this.isAdaptive) {
|
|
@@ -1247,6 +1270,8 @@ export class TimePickerComponent extends MultiTabStop {
|
|
|
1247
1270
|
(valueChange)="handleChange($event)"
|
|
1248
1271
|
(valueReject)="handleReject()"
|
|
1249
1272
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
1273
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
1274
|
+
(tabOutNow)="onTabOutNow()"
|
|
1250
1275
|
>
|
|
1251
1276
|
<kendo-timeselector-messages
|
|
1252
1277
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -1264,7 +1289,7 @@ export class TimePickerComponent extends MultiTabStop {
|
|
|
1264
1289
|
</kendo-timeselector-messages>
|
|
1265
1290
|
</kendo-timeselector>
|
|
1266
1291
|
</ng-template>
|
|
1267
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1292
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutFirstPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1268
1293
|
}
|
|
1269
1294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
1270
1295
|
type: Component,
|
|
@@ -1472,6 +1497,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1472
1497
|
(valueChange)="handleChange($event)"
|
|
1473
1498
|
(valueReject)="handleReject()"
|
|
1474
1499
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
1500
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
1501
|
+
(tabOutNow)="onTabOutNow()"
|
|
1475
1502
|
>
|
|
1476
1503
|
<kendo-timeselector-messages
|
|
1477
1504
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -12,7 +12,6 @@ import { TimeListComponent } from './timelist.component';
|
|
|
12
12
|
import { TimePickerDOMService } from './services/dom.service';
|
|
13
13
|
import { getNow, hasChange, isInTimeRange, timeInRange } from '../util';
|
|
14
14
|
import { generateGetters, generateSnappers, snapTime, valueMerger } from './util';
|
|
15
|
-
import { fromEvent } from 'rxjs';
|
|
16
15
|
import { PickerService } from '../common/picker.service';
|
|
17
16
|
import { closest } from '../common/dom-queries';
|
|
18
17
|
import { currentFocusTarget, isPresent } from '../common/utils';
|
|
@@ -139,6 +138,7 @@ export class TimeSelectorComponent {
|
|
|
139
138
|
*/
|
|
140
139
|
valueReject = new EventEmitter();
|
|
141
140
|
tabOutLastPart = new EventEmitter();
|
|
141
|
+
tabOutFirstPart = new EventEmitter();
|
|
142
142
|
tabOutNow = new EventEmitter();
|
|
143
143
|
dateFormatParts;
|
|
144
144
|
isActive = false;
|
|
@@ -208,22 +208,6 @@ export class TimeSelectorComponent {
|
|
|
208
208
|
this.init();
|
|
209
209
|
this.bindEvents();
|
|
210
210
|
}
|
|
211
|
-
ngAfterViewInit() {
|
|
212
|
-
this.subscriptions.add(fromEvent(this.timeListWrappers.first.nativeElement, 'keydown').subscribe((event) => {
|
|
213
|
-
const { keyCode, shiftKey } = event;
|
|
214
|
-
if (keyCode === Keys.Tab && shiftKey) {
|
|
215
|
-
event.preventDefault();
|
|
216
|
-
this.renderer.removeClass(this.timeListWrappers.first.nativeElement, 'k-focus');
|
|
217
|
-
this.now ? this.now.nativeElement.focus() : this.cancel.nativeElement.focus();
|
|
218
|
-
}
|
|
219
|
-
}));
|
|
220
|
-
this.subscriptions.add(fromEvent(this.timeListWrappers.last.nativeElement, 'keydown').subscribe((event) => {
|
|
221
|
-
const { keyCode, shiftKey } = event;
|
|
222
|
-
if (keyCode === Keys.Tab && !shiftKey) {
|
|
223
|
-
this.renderer.removeClass(this.timeListWrappers.last.nativeElement, 'k-focus');
|
|
224
|
-
}
|
|
225
|
-
}));
|
|
226
|
-
}
|
|
227
211
|
/**
|
|
228
212
|
* @hidden
|
|
229
213
|
*/
|
|
@@ -346,7 +330,12 @@ export class TimeSelectorComponent {
|
|
|
346
330
|
if (keyCode === Keys.Tab && !shiftKey && event.target !== this.now?.nativeElement) {
|
|
347
331
|
event.preventDefault();
|
|
348
332
|
if (document.activeElement === this.accept.nativeElement) {
|
|
349
|
-
|
|
333
|
+
if (this.cancel) {
|
|
334
|
+
this.cancel.nativeElement.focus();
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
338
|
+
}
|
|
350
339
|
}
|
|
351
340
|
else {
|
|
352
341
|
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
@@ -439,7 +428,7 @@ export class TimeSelectorComponent {
|
|
|
439
428
|
return listIdx;
|
|
440
429
|
}
|
|
441
430
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeSelectorComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i2.IntlService }, { token: i3.TimePickerDOMService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i4.PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
442
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeSelectorComponent, isStandalone: true, selector: "kendo-timeselector", inputs: { format: "format", min: "min", max: "max", cancelButton: "cancelButton", setButton: "setButton", nowButton: "nowButton", disabled: "disabled", isAdaptiveEnabled: "isAdaptiveEnabled", isDateTimePicker: "isDateTimePicker", steps: "steps", value: "value" }, outputs: { valueChange: "valueChange", valueReject: "valueReject", tabOutLastPart: "tabOutLastPart", tabOutNow: "tabOutNow" }, host: { properties: { "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
431
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeSelectorComponent, isStandalone: true, selector: "kendo-timeselector", inputs: { format: "format", min: "min", max: "max", cancelButton: "cancelButton", setButton: "setButton", nowButton: "nowButton", disabled: "disabled", isAdaptiveEnabled: "isAdaptiveEnabled", isDateTimePicker: "isDateTimePicker", steps: "steps", value: "value" }, outputs: { valueChange: "valueChange", valueReject: "valueReject", tabOutLastPart: "tabOutLastPart", tabOutFirstPart: "tabOutFirstPart", tabOutNow: "tabOutNow" }, host: { properties: { "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
443
432
|
LocalizationService,
|
|
444
433
|
{
|
|
445
434
|
provide: L10N_PREFIX,
|
|
@@ -499,6 +488,7 @@ export class TimeSelectorComponent {
|
|
|
499
488
|
<span class="k-title k-timeselector-title">{{intl.dateFieldName(part)}}</span>
|
|
500
489
|
<kendo-timelist
|
|
501
490
|
[isLast]="idx === dateFormatParts.length - 1"
|
|
491
|
+
[isFirst]="idx === 0"
|
|
502
492
|
[min]="min"
|
|
503
493
|
[max]="max"
|
|
504
494
|
[part]="part"
|
|
@@ -506,6 +496,7 @@ export class TimeSelectorComponent {
|
|
|
506
496
|
[disabled]="disabled"
|
|
507
497
|
[(value)]="current"
|
|
508
498
|
(tabOutLastPart)="tabOutLastPart.emit()"
|
|
499
|
+
(tabOutFirstPart)="tabOutFirstPart.emit()"
|
|
509
500
|
[kendoEventsOutsideAngular]="{
|
|
510
501
|
focus: handleListFocus,
|
|
511
502
|
blur: handleBlur
|
|
@@ -553,7 +544,7 @@ export class TimeSelectorComponent {
|
|
|
553
544
|
[disabled]="disabled"
|
|
554
545
|
>{{localization.get('cancel')}}</button>
|
|
555
546
|
</div>
|
|
556
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: TimeSelectorLocalizedMessagesDirective, selector: "[kendoTimeSelectorLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TimeListComponent, selector: "kendo-timelist", inputs: ["min", "max", "part", "step", "disabled", "value", "isLast"], outputs: ["valueChange", "tabOutLastPart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
547
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: TimeSelectorLocalizedMessagesDirective, selector: "[kendoTimeSelectorLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TimeListComponent, selector: "kendo-timelist", inputs: ["min", "max", "part", "step", "disabled", "value", "isLast", "isFirst"], outputs: ["valueChange", "tabOutLastPart", "tabOutFirstPart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
557
548
|
}
|
|
558
549
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeSelectorComponent, decorators: [{
|
|
559
550
|
type: Component,
|
|
@@ -622,6 +613,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
622
613
|
<span class="k-title k-timeselector-title">{{intl.dateFieldName(part)}}</span>
|
|
623
614
|
<kendo-timelist
|
|
624
615
|
[isLast]="idx === dateFormatParts.length - 1"
|
|
616
|
+
[isFirst]="idx === 0"
|
|
625
617
|
[min]="min"
|
|
626
618
|
[max]="max"
|
|
627
619
|
[part]="part"
|
|
@@ -629,6 +621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
629
621
|
[disabled]="disabled"
|
|
630
622
|
[(value)]="current"
|
|
631
623
|
(tabOutLastPart)="tabOutLastPart.emit()"
|
|
624
|
+
(tabOutFirstPart)="tabOutFirstPart.emit()"
|
|
632
625
|
[kendoEventsOutsideAngular]="{
|
|
633
626
|
focus: handleListFocus,
|
|
634
627
|
blur: handleBlur
|
|
@@ -728,6 +721,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
728
721
|
type: Output
|
|
729
722
|
}], tabOutLastPart: [{
|
|
730
723
|
type: Output
|
|
724
|
+
}], tabOutFirstPart: [{
|
|
725
|
+
type: Output
|
|
731
726
|
}], tabOutNow: [{
|
|
732
727
|
type: Output
|
|
733
728
|
}] } });
|
|
@@ -33,8 +33,8 @@ const packageMetadata = {
|
|
|
33
33
|
name: '@progress/kendo-angular-dateinputs',
|
|
34
34
|
productName: 'Kendo UI for Angular',
|
|
35
35
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
36
|
-
publishDate:
|
|
37
|
-
version: '17.0.2-develop.
|
|
36
|
+
publishDate: 1731677134,
|
|
37
|
+
version: '17.0.2-develop.8',
|
|
38
38
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
39
39
|
};
|
|
40
40
|
|
|
@@ -2777,7 +2777,6 @@ class HeaderComponent {
|
|
|
2777
2777
|
<button
|
|
2778
2778
|
kendoButton
|
|
2779
2779
|
class="k-calendar-nav-today"
|
|
2780
|
-
tabindex="-1"
|
|
2781
2780
|
fillMode="flat"
|
|
2782
2781
|
role="link"
|
|
2783
2782
|
[size]="size"
|
|
@@ -2864,7 +2863,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2864
2863
|
<button
|
|
2865
2864
|
kendoButton
|
|
2866
2865
|
class="k-calendar-nav-today"
|
|
2867
|
-
tabindex="-1"
|
|
2868
2866
|
fillMode="flat"
|
|
2869
2867
|
role="link"
|
|
2870
2868
|
[size]="size"
|
|
@@ -12333,15 +12331,11 @@ class TimeListComponent {
|
|
|
12333
12331
|
disabled = false;
|
|
12334
12332
|
value;
|
|
12335
12333
|
isLast = false;
|
|
12334
|
+
isFirst = false;
|
|
12336
12335
|
valueChange = new EventEmitter();
|
|
12337
12336
|
tabOutLastPart = new EventEmitter();
|
|
12337
|
+
tabOutFirstPart = new EventEmitter();
|
|
12338
12338
|
virtualization;
|
|
12339
|
-
get roleAttribute() {
|
|
12340
|
-
return 'listbox';
|
|
12341
|
-
}
|
|
12342
|
-
get ariaLabel() {
|
|
12343
|
-
return this.localization.get(this.part?.type);
|
|
12344
|
-
}
|
|
12345
12339
|
get tabIndex() {
|
|
12346
12340
|
return this.disabled ? undefined : 0;
|
|
12347
12341
|
}
|
|
@@ -12352,6 +12346,12 @@ class TimeListComponent {
|
|
|
12352
12346
|
get currentSelectedIndex() {
|
|
12353
12347
|
return this.selectedIndex(this.value);
|
|
12354
12348
|
}
|
|
12349
|
+
get roleAttribute() {
|
|
12350
|
+
return 'listbox';
|
|
12351
|
+
}
|
|
12352
|
+
get ariaLabel() {
|
|
12353
|
+
return this.localization.get(this.part?.type);
|
|
12354
|
+
}
|
|
12355
12355
|
animateToIndex = true;
|
|
12356
12356
|
isActive = false;
|
|
12357
12357
|
skip = 0;
|
|
@@ -12532,6 +12532,10 @@ class TimeListComponent {
|
|
|
12532
12532
|
e.preventDefault();
|
|
12533
12533
|
this.tabOutLastPart.emit();
|
|
12534
12534
|
}
|
|
12535
|
+
if (e.keyCode === Keys$1.Tab && e.shiftKey && this.isFirst) {
|
|
12536
|
+
e.preventDefault();
|
|
12537
|
+
this.tabOutFirstPart.emit();
|
|
12538
|
+
}
|
|
12535
12539
|
const getter = getters[e.keyCode] || nil;
|
|
12536
12540
|
const dataItem = getter(this.data, this.service.selectedIndex(this.value));
|
|
12537
12541
|
if (dataItem) {
|
|
@@ -12551,8 +12555,10 @@ class TimeListComponent {
|
|
|
12551
12555
|
this.domEvents.push(this.renderer.listen(element, 'mouseover', () => !this.isActive && this.focus()), this.renderer.listen(element, 'click', () => this.focus()), this.renderer.listen(element, 'blur', () => this.isActive = false), this.renderer.listen(element, 'focus', () => this.isActive = true), this.renderer.listen(element, 'keydown', this.handleKeyDown.bind(this)));
|
|
12552
12556
|
}
|
|
12553
12557
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeListComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: TimePickerDOMService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12554
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeListComponent, isStandalone: true, selector: "kendo-timelist", inputs: { min: "min", max: "max", part: "part", step: "step", disabled: "disabled", value: "value", isLast: "isLast" }, outputs: { valueChange: "valueChange", tabOutLastPart: "tabOutLastPart" }, host: { properties: { "attr.
|
|
12558
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeListComponent, isStandalone: true, selector: "kendo-timelist", inputs: { min: "min", max: "max", part: "part", step: "step", disabled: "disabled", value: "value", isLast: "isLast", isFirst: "isFirst" }, outputs: { valueChange: "valueChange", tabOutLastPart: "tabOutLastPart", tabOutFirstPart: "tabOutFirstPart" }, host: { properties: { "attr.tabindex": "this.tabIndex", "class.k-time-list": "this.componentClass" } }, viewQueries: [{ propertyName: "virtualization", first: true, predicate: VirtualizationComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
12555
12559
|
<kendo-virtualization
|
|
12560
|
+
[attr.role]="roleAttribute"
|
|
12561
|
+
[attr.aria-label]="ariaLabel"
|
|
12556
12562
|
[skip]="skip"
|
|
12557
12563
|
[take]="total"
|
|
12558
12564
|
[total]="total"
|
|
@@ -12561,7 +12567,7 @@ class TimeListComponent {
|
|
|
12561
12567
|
[topOffset]="topOffset"
|
|
12562
12568
|
[bottomOffset]="bottomOffset"
|
|
12563
12569
|
class="k-time-container"
|
|
12564
|
-
|
|
12570
|
+
tabindex="-1"
|
|
12565
12571
|
>
|
|
12566
12572
|
<ul [ngStyle]="style" class="k-reset"
|
|
12567
12573
|
[kendoEventsOutsideAngular]="{
|
|
@@ -12587,6 +12593,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12587
12593
|
selector: 'kendo-timelist',
|
|
12588
12594
|
template: `
|
|
12589
12595
|
<kendo-virtualization
|
|
12596
|
+
[attr.role]="roleAttribute"
|
|
12597
|
+
[attr.aria-label]="ariaLabel"
|
|
12590
12598
|
[skip]="skip"
|
|
12591
12599
|
[take]="total"
|
|
12592
12600
|
[total]="total"
|
|
@@ -12595,7 +12603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12595
12603
|
[topOffset]="topOffset"
|
|
12596
12604
|
[bottomOffset]="bottomOffset"
|
|
12597
12605
|
class="k-time-container"
|
|
12598
|
-
|
|
12606
|
+
tabindex="-1"
|
|
12599
12607
|
>
|
|
12600
12608
|
<ul [ngStyle]="style" class="k-reset"
|
|
12601
12609
|
[kendoEventsOutsideAngular]="{
|
|
@@ -12631,19 +12639,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12631
12639
|
type: Input
|
|
12632
12640
|
}], isLast: [{
|
|
12633
12641
|
type: Input
|
|
12642
|
+
}], isFirst: [{
|
|
12643
|
+
type: Input
|
|
12634
12644
|
}], valueChange: [{
|
|
12635
12645
|
type: Output
|
|
12636
12646
|
}], tabOutLastPart: [{
|
|
12637
12647
|
type: Output
|
|
12648
|
+
}], tabOutFirstPart: [{
|
|
12649
|
+
type: Output
|
|
12638
12650
|
}], virtualization: [{
|
|
12639
12651
|
type: ViewChild,
|
|
12640
12652
|
args: [VirtualizationComponent, { static: true }]
|
|
12641
|
-
}], roleAttribute: [{
|
|
12642
|
-
type: HostBinding,
|
|
12643
|
-
args: ["attr.role"]
|
|
12644
|
-
}], ariaLabel: [{
|
|
12645
|
-
type: HostBinding,
|
|
12646
|
-
args: ["attr.aria-label"]
|
|
12647
12653
|
}], tabIndex: [{
|
|
12648
12654
|
type: HostBinding,
|
|
12649
12655
|
args: ["attr.tabindex"]
|
|
@@ -12957,6 +12963,7 @@ class TimeSelectorComponent {
|
|
|
12957
12963
|
*/
|
|
12958
12964
|
valueReject = new EventEmitter();
|
|
12959
12965
|
tabOutLastPart = new EventEmitter();
|
|
12966
|
+
tabOutFirstPart = new EventEmitter();
|
|
12960
12967
|
tabOutNow = new EventEmitter();
|
|
12961
12968
|
dateFormatParts;
|
|
12962
12969
|
isActive = false;
|
|
@@ -13026,22 +13033,6 @@ class TimeSelectorComponent {
|
|
|
13026
13033
|
this.init();
|
|
13027
13034
|
this.bindEvents();
|
|
13028
13035
|
}
|
|
13029
|
-
ngAfterViewInit() {
|
|
13030
|
-
this.subscriptions.add(fromEvent(this.timeListWrappers.first.nativeElement, 'keydown').subscribe((event) => {
|
|
13031
|
-
const { keyCode, shiftKey } = event;
|
|
13032
|
-
if (keyCode === Keys$1.Tab && shiftKey) {
|
|
13033
|
-
event.preventDefault();
|
|
13034
|
-
this.renderer.removeClass(this.timeListWrappers.first.nativeElement, 'k-focus');
|
|
13035
|
-
this.now ? this.now.nativeElement.focus() : this.cancel.nativeElement.focus();
|
|
13036
|
-
}
|
|
13037
|
-
}));
|
|
13038
|
-
this.subscriptions.add(fromEvent(this.timeListWrappers.last.nativeElement, 'keydown').subscribe((event) => {
|
|
13039
|
-
const { keyCode, shiftKey } = event;
|
|
13040
|
-
if (keyCode === Keys$1.Tab && !shiftKey) {
|
|
13041
|
-
this.renderer.removeClass(this.timeListWrappers.last.nativeElement, 'k-focus');
|
|
13042
|
-
}
|
|
13043
|
-
}));
|
|
13044
|
-
}
|
|
13045
13036
|
/**
|
|
13046
13037
|
* @hidden
|
|
13047
13038
|
*/
|
|
@@ -13164,7 +13155,12 @@ class TimeSelectorComponent {
|
|
|
13164
13155
|
if (keyCode === Keys$1.Tab && !shiftKey && event.target !== this.now?.nativeElement) {
|
|
13165
13156
|
event.preventDefault();
|
|
13166
13157
|
if (document.activeElement === this.accept.nativeElement) {
|
|
13167
|
-
|
|
13158
|
+
if (this.cancel) {
|
|
13159
|
+
this.cancel.nativeElement.focus();
|
|
13160
|
+
}
|
|
13161
|
+
else {
|
|
13162
|
+
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
13163
|
+
}
|
|
13168
13164
|
}
|
|
13169
13165
|
else {
|
|
13170
13166
|
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
@@ -13257,7 +13253,7 @@ class TimeSelectorComponent {
|
|
|
13257
13253
|
return listIdx;
|
|
13258
13254
|
}
|
|
13259
13255
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeSelectorComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.IntlService }, { token: TimePickerDOMService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
13260
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeSelectorComponent, isStandalone: true, selector: "kendo-timeselector", inputs: { format: "format", min: "min", max: "max", cancelButton: "cancelButton", setButton: "setButton", nowButton: "nowButton", disabled: "disabled", isAdaptiveEnabled: "isAdaptiveEnabled", isDateTimePicker: "isDateTimePicker", steps: "steps", value: "value" }, outputs: { valueChange: "valueChange", valueReject: "valueReject", tabOutLastPart: "tabOutLastPart", tabOutNow: "tabOutNow" }, host: { properties: { "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
13256
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeSelectorComponent, isStandalone: true, selector: "kendo-timeselector", inputs: { format: "format", min: "min", max: "max", cancelButton: "cancelButton", setButton: "setButton", nowButton: "nowButton", disabled: "disabled", isAdaptiveEnabled: "isAdaptiveEnabled", isDateTimePicker: "isDateTimePicker", steps: "steps", value: "value" }, outputs: { valueChange: "valueChange", valueReject: "valueReject", tabOutLastPart: "tabOutLastPart", tabOutFirstPart: "tabOutFirstPart", tabOutNow: "tabOutNow" }, host: { properties: { "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
13261
13257
|
LocalizationService,
|
|
13262
13258
|
{
|
|
13263
13259
|
provide: L10N_PREFIX,
|
|
@@ -13317,6 +13313,7 @@ class TimeSelectorComponent {
|
|
|
13317
13313
|
<span class="k-title k-timeselector-title">{{intl.dateFieldName(part)}}</span>
|
|
13318
13314
|
<kendo-timelist
|
|
13319
13315
|
[isLast]="idx === dateFormatParts.length - 1"
|
|
13316
|
+
[isFirst]="idx === 0"
|
|
13320
13317
|
[min]="min"
|
|
13321
13318
|
[max]="max"
|
|
13322
13319
|
[part]="part"
|
|
@@ -13324,6 +13321,7 @@ class TimeSelectorComponent {
|
|
|
13324
13321
|
[disabled]="disabled"
|
|
13325
13322
|
[(value)]="current"
|
|
13326
13323
|
(tabOutLastPart)="tabOutLastPart.emit()"
|
|
13324
|
+
(tabOutFirstPart)="tabOutFirstPart.emit()"
|
|
13327
13325
|
[kendoEventsOutsideAngular]="{
|
|
13328
13326
|
focus: handleListFocus,
|
|
13329
13327
|
blur: handleBlur
|
|
@@ -13371,7 +13369,7 @@ class TimeSelectorComponent {
|
|
|
13371
13369
|
[disabled]="disabled"
|
|
13372
13370
|
>{{localization.get('cancel')}}</button>
|
|
13373
13371
|
</div>
|
|
13374
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: TimeSelectorLocalizedMessagesDirective, selector: "[kendoTimeSelectorLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TimeListComponent, selector: "kendo-timelist", inputs: ["min", "max", "part", "step", "disabled", "value", "isLast"], outputs: ["valueChange", "tabOutLastPart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13372
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: TimeSelectorLocalizedMessagesDirective, selector: "[kendoTimeSelectorLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TimeListComponent, selector: "kendo-timelist", inputs: ["min", "max", "part", "step", "disabled", "value", "isLast", "isFirst"], outputs: ["valueChange", "tabOutLastPart", "tabOutFirstPart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13375
13373
|
}
|
|
13376
13374
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeSelectorComponent, decorators: [{
|
|
13377
13375
|
type: Component,
|
|
@@ -13440,6 +13438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13440
13438
|
<span class="k-title k-timeselector-title">{{intl.dateFieldName(part)}}</span>
|
|
13441
13439
|
<kendo-timelist
|
|
13442
13440
|
[isLast]="idx === dateFormatParts.length - 1"
|
|
13441
|
+
[isFirst]="idx === 0"
|
|
13443
13442
|
[min]="min"
|
|
13444
13443
|
[max]="max"
|
|
13445
13444
|
[part]="part"
|
|
@@ -13447,6 +13446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13447
13446
|
[disabled]="disabled"
|
|
13448
13447
|
[(value)]="current"
|
|
13449
13448
|
(tabOutLastPart)="tabOutLastPart.emit()"
|
|
13449
|
+
(tabOutFirstPart)="tabOutFirstPart.emit()"
|
|
13450
13450
|
[kendoEventsOutsideAngular]="{
|
|
13451
13451
|
focus: handleListFocus,
|
|
13452
13452
|
blur: handleBlur
|
|
@@ -13546,6 +13546,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13546
13546
|
type: Output
|
|
13547
13547
|
}], tabOutLastPart: [{
|
|
13548
13548
|
type: Output
|
|
13549
|
+
}], tabOutFirstPart: [{
|
|
13550
|
+
type: Output
|
|
13549
13551
|
}], tabOutNow: [{
|
|
13550
13552
|
type: Output
|
|
13551
13553
|
}] } });
|
|
@@ -14379,6 +14381,16 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14379
14381
|
this.show = true;
|
|
14380
14382
|
}
|
|
14381
14383
|
}
|
|
14384
|
+
/**
|
|
14385
|
+
* @hidden
|
|
14386
|
+
*/
|
|
14387
|
+
onTabOutNow() {
|
|
14388
|
+
if (!this.timeSelector.showNowButton) {
|
|
14389
|
+
this.cancelButton ?
|
|
14390
|
+
this.timeSelector.cancel.nativeElement.focus() :
|
|
14391
|
+
this.timeSelector.accept.nativeElement.focus();
|
|
14392
|
+
}
|
|
14393
|
+
}
|
|
14382
14394
|
/**
|
|
14383
14395
|
* @hidden
|
|
14384
14396
|
*/
|
|
@@ -14451,6 +14463,7 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14451
14463
|
* @hidden
|
|
14452
14464
|
*/
|
|
14453
14465
|
onTabOutLastPart() {
|
|
14466
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.last.nativeElement, 'k-focus');
|
|
14454
14467
|
if (this.isAdaptive) {
|
|
14455
14468
|
this.cancelButton ? this.adaptiveCancelButton.focus() : this.adaptiveAcceptButton.focus();
|
|
14456
14469
|
}
|
|
@@ -14458,6 +14471,18 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14458
14471
|
this.timeSelector.accept.nativeElement.focus();
|
|
14459
14472
|
}
|
|
14460
14473
|
}
|
|
14474
|
+
/**
|
|
14475
|
+
* @hidden
|
|
14476
|
+
*/
|
|
14477
|
+
onTabOutFirstPart() {
|
|
14478
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.first.nativeElement, 'k-focus');
|
|
14479
|
+
if (this.timeSelector.showNowButton) {
|
|
14480
|
+
this.timeSelector.now.nativeElement.focus();
|
|
14481
|
+
}
|
|
14482
|
+
else {
|
|
14483
|
+
this.cancelButton ? this.timeSelector.cancel.nativeElement.focus() : this.timeSelector.accept.nativeElement.focus();
|
|
14484
|
+
}
|
|
14485
|
+
}
|
|
14461
14486
|
toggleTimeSelector(show) {
|
|
14462
14487
|
this.windowSize = windowSize();
|
|
14463
14488
|
if (this.isAdaptive) {
|
|
@@ -14846,6 +14871,8 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14846
14871
|
(valueChange)="handleChange($event)"
|
|
14847
14872
|
(valueReject)="handleReject()"
|
|
14848
14873
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
14874
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
14875
|
+
(tabOutNow)="onTabOutNow()"
|
|
14849
14876
|
>
|
|
14850
14877
|
<kendo-timeselector-messages
|
|
14851
14878
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -14863,7 +14890,7 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14863
14890
|
</kendo-timeselector-messages>
|
|
14864
14891
|
</kendo-timeselector>
|
|
14865
14892
|
</ng-template>
|
|
14866
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14893
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutFirstPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14867
14894
|
}
|
|
14868
14895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
14869
14896
|
type: Component,
|
|
@@ -15071,6 +15098,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
15071
15098
|
(valueChange)="handleChange($event)"
|
|
15072
15099
|
(valueReject)="handleReject()"
|
|
15073
15100
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
15101
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
15102
|
+
(tabOutNow)="onTabOutNow()"
|
|
15074
15103
|
>
|
|
15075
15104
|
<kendo-timeselector-messages
|
|
15076
15105
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -15375,6 +15404,7 @@ const ACCEPT_BUTTON_SELECTOR = '.k-button.k-time-accept';
|
|
|
15375
15404
|
const CANCEL_BUTTON_SELECOTR = '.k-button.k-time-cancel';
|
|
15376
15405
|
const DATE_TAB_BUTTON_SELECTOR = '.k-button.k-group-start';
|
|
15377
15406
|
const TIME_TAB_BUTTON_SELECTOR = '.k-button.k-group-end';
|
|
15407
|
+
const TODAY_BUTTON_SELECTOR = '.k-button.k-calendar-nav-today';
|
|
15378
15408
|
/**
|
|
15379
15409
|
* Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).
|
|
15380
15410
|
*/
|
|
@@ -16035,6 +16065,14 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16035
16065
|
return this.popupRef?.popup.instance.container.nativeElement.querySelector(TIME_TAB_BUTTON_SELECTOR);
|
|
16036
16066
|
}
|
|
16037
16067
|
}
|
|
16068
|
+
get todayButton() {
|
|
16069
|
+
if (this.isAdaptive) {
|
|
16070
|
+
return this.actionSheet.element.nativeElement.querySelector(TODAY_BUTTON_SELECTOR);
|
|
16071
|
+
}
|
|
16072
|
+
else {
|
|
16073
|
+
return this.popupRef?.popup.instance.container.nativeElement.querySelector(TODAY_BUTTON_SELECTOR);
|
|
16074
|
+
}
|
|
16075
|
+
}
|
|
16038
16076
|
/**
|
|
16039
16077
|
* @hidden
|
|
16040
16078
|
*/
|
|
@@ -16320,6 +16358,15 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16320
16358
|
this.dateTabButton.focus();
|
|
16321
16359
|
}
|
|
16322
16360
|
}
|
|
16361
|
+
/**
|
|
16362
|
+
* @hidden
|
|
16363
|
+
*/
|
|
16364
|
+
onTabOutFirstPart() {
|
|
16365
|
+
if (this.activeTab === 'time') {
|
|
16366
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.first.nativeElement, 'k-focus');
|
|
16367
|
+
this.timeSelector.showNowButton ? this.timeSelector.now.nativeElement.focus() : this.timeTabButton.focus();
|
|
16368
|
+
}
|
|
16369
|
+
}
|
|
16323
16370
|
/**
|
|
16324
16371
|
* @hidden
|
|
16325
16372
|
*/
|
|
@@ -16406,7 +16453,6 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16406
16453
|
break;
|
|
16407
16454
|
default: return;
|
|
16408
16455
|
}
|
|
16409
|
-
event.preventDefault();
|
|
16410
16456
|
}
|
|
16411
16457
|
/**
|
|
16412
16458
|
* @hidden
|
|
@@ -16423,6 +16469,9 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16423
16469
|
if (this.activeTab === 'date') {
|
|
16424
16470
|
this.calendar.monthView.list.nativeElement.focus();
|
|
16425
16471
|
}
|
|
16472
|
+
else {
|
|
16473
|
+
this.timeSelector.timeLists.last.focus();
|
|
16474
|
+
}
|
|
16426
16475
|
}
|
|
16427
16476
|
break;
|
|
16428
16477
|
case this.cancelButtonElement:
|
|
@@ -16434,6 +16483,9 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16434
16483
|
if (this.activeTab === 'date') {
|
|
16435
16484
|
this.calendar.monthView.list.nativeElement.focus();
|
|
16436
16485
|
}
|
|
16486
|
+
else {
|
|
16487
|
+
this.timeSelector.timeLists.last.focus();
|
|
16488
|
+
}
|
|
16437
16489
|
}
|
|
16438
16490
|
else {
|
|
16439
16491
|
this.dateTabButton.focus();
|
|
@@ -16456,6 +16508,16 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16456
16508
|
}
|
|
16457
16509
|
}
|
|
16458
16510
|
break;
|
|
16511
|
+
case this.timeTabButton:
|
|
16512
|
+
if (this.activeTab === 'time') {
|
|
16513
|
+
this.timeSelector.showNowButton ?
|
|
16514
|
+
this.timeSelector.now.nativeElement.focus() :
|
|
16515
|
+
this.timeSelector.timeLists.first.focus();
|
|
16516
|
+
}
|
|
16517
|
+
else {
|
|
16518
|
+
this.todayButton.focus();
|
|
16519
|
+
}
|
|
16520
|
+
break;
|
|
16459
16521
|
default:
|
|
16460
16522
|
break;
|
|
16461
16523
|
}
|
|
@@ -16650,9 +16712,17 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16650
16712
|
if (this.calendar.type === 'infinite') {
|
|
16651
16713
|
this.subscriptions.add(fromEvent(this.calendar.monthView.list.nativeElement, 'keydown').subscribe((event) => {
|
|
16652
16714
|
const { keyCode, shiftKey } = event;
|
|
16653
|
-
if (keyCode === Keys$1.Tab && !shiftKey
|
|
16715
|
+
if (keyCode === Keys$1.Tab && !shiftKey) {
|
|
16654
16716
|
event.preventDefault();
|
|
16655
|
-
this.
|
|
16717
|
+
if (!this.calendarValue && !this.cancelButton) {
|
|
16718
|
+
this.dateTabButton.focus();
|
|
16719
|
+
}
|
|
16720
|
+
else if (this.calendarValue) {
|
|
16721
|
+
this.acceptButton.focus();
|
|
16722
|
+
}
|
|
16723
|
+
else if (this.cancelButton) {
|
|
16724
|
+
this.cancelButtonElement.focus();
|
|
16725
|
+
}
|
|
16656
16726
|
}
|
|
16657
16727
|
}));
|
|
16658
16728
|
}
|
|
@@ -17014,8 +17084,11 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17014
17084
|
[attr.title]="localization.get('timeTabLabel')"
|
|
17015
17085
|
[attr.aria-label]="localization.get('timeTabLabel')"
|
|
17016
17086
|
[kendoEventsOutsideAngular]="{
|
|
17017
|
-
click: changeActiveTab.bind(this, 'time')
|
|
17087
|
+
click: changeActiveTab.bind(this, 'time'),
|
|
17088
|
+
'keydown.tab': handleTab
|
|
17018
17089
|
}"
|
|
17090
|
+
[scope]="this"
|
|
17091
|
+
|
|
17019
17092
|
>
|
|
17020
17093
|
{{localization.get('timeTab')}}
|
|
17021
17094
|
</button>
|
|
@@ -17080,6 +17153,7 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17080
17153
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
17081
17154
|
[isDateTimePicker]="true"
|
|
17082
17155
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
17156
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
17083
17157
|
(tabOutNow)="onTabOutNow()"
|
|
17084
17158
|
>
|
|
17085
17159
|
<kendo-timeselector-messages
|
|
@@ -17117,7 +17191,8 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17117
17191
|
[disabled]="!calendarValue"
|
|
17118
17192
|
[kendoEventsOutsideAngular]="{
|
|
17119
17193
|
click: handleAccept,
|
|
17120
|
-
'keydown.tab': handleTab
|
|
17194
|
+
'keydown.tab': handleTab,
|
|
17195
|
+
'keydown.shift.tab': handleTab
|
|
17121
17196
|
}"
|
|
17122
17197
|
[scope]="this"
|
|
17123
17198
|
>
|
|
@@ -17133,7 +17208,8 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17133
17208
|
[attr.aria-label]="localization.get('cancelLabel')"
|
|
17134
17209
|
[kendoEventsOutsideAngular]="{
|
|
17135
17210
|
click: handleCancel,
|
|
17136
|
-
'keydown.tab': handleTab
|
|
17211
|
+
'keydown.tab': handleTab,
|
|
17212
|
+
'keydown.shift.tab': handleTab
|
|
17137
17213
|
}"
|
|
17138
17214
|
[scope]="this"
|
|
17139
17215
|
>
|
|
@@ -17142,7 +17218,7 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17142
17218
|
</div>
|
|
17143
17219
|
</div>
|
|
17144
17220
|
</ng-template>
|
|
17145
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17221
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "clearButton", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: DateInputCustomMessagesComponent, selector: "kendo-dateinput-messages" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutFirstPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17146
17222
|
}
|
|
17147
17223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
17148
17224
|
type: Component,
|
|
@@ -17418,8 +17494,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17418
17494
|
[attr.title]="localization.get('timeTabLabel')"
|
|
17419
17495
|
[attr.aria-label]="localization.get('timeTabLabel')"
|
|
17420
17496
|
[kendoEventsOutsideAngular]="{
|
|
17421
|
-
click: changeActiveTab.bind(this, 'time')
|
|
17497
|
+
click: changeActiveTab.bind(this, 'time'),
|
|
17498
|
+
'keydown.tab': handleTab
|
|
17422
17499
|
}"
|
|
17500
|
+
[scope]="this"
|
|
17501
|
+
|
|
17423
17502
|
>
|
|
17424
17503
|
{{localization.get('timeTab')}}
|
|
17425
17504
|
</button>
|
|
@@ -17484,6 +17563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17484
17563
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
17485
17564
|
[isDateTimePicker]="true"
|
|
17486
17565
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
17566
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
17487
17567
|
(tabOutNow)="onTabOutNow()"
|
|
17488
17568
|
>
|
|
17489
17569
|
<kendo-timeselector-messages
|
|
@@ -17521,7 +17601,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17521
17601
|
[disabled]="!calendarValue"
|
|
17522
17602
|
[kendoEventsOutsideAngular]="{
|
|
17523
17603
|
click: handleAccept,
|
|
17524
|
-
'keydown.tab': handleTab
|
|
17604
|
+
'keydown.tab': handleTab,
|
|
17605
|
+
'keydown.shift.tab': handleTab
|
|
17525
17606
|
}"
|
|
17526
17607
|
[scope]="this"
|
|
17527
17608
|
>
|
|
@@ -17537,7 +17618,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17537
17618
|
[attr.aria-label]="localization.get('cancelLabel')"
|
|
17538
17619
|
[kendoEventsOutsideAngular]="{
|
|
17539
17620
|
click: handleCancel,
|
|
17540
|
-
'keydown.tab': handleTab
|
|
17621
|
+
'keydown.tab': handleTab,
|
|
17622
|
+
'keydown.shift.tab': handleTab
|
|
17541
17623
|
}"
|
|
17542
17624
|
[scope]="this"
|
|
17543
17625
|
>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-dateinputs",
|
|
3
|
-
"version": "17.0.2-develop.
|
|
3
|
+
"version": "17.0.2-develop.8",
|
|
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",
|
|
@@ -34,18 +34,18 @@
|
|
|
34
34
|
"@angular/forms": "16 - 18",
|
|
35
35
|
"@angular/platform-browser": "16 - 18",
|
|
36
36
|
"@progress/kendo-licensing": "^1.0.2",
|
|
37
|
-
"@progress/kendo-angular-buttons": "17.0.2-develop.
|
|
38
|
-
"@progress/kendo-angular-common": "17.0.2-develop.
|
|
39
|
-
"@progress/kendo-angular-intl": "17.0.2-develop.
|
|
40
|
-
"@progress/kendo-angular-l10n": "17.0.2-develop.
|
|
41
|
-
"@progress/kendo-angular-icons": "17.0.2-develop.
|
|
42
|
-
"@progress/kendo-angular-popup": "17.0.2-develop.
|
|
43
|
-
"@progress/kendo-angular-navigation": "17.0.2-develop.
|
|
37
|
+
"@progress/kendo-angular-buttons": "17.0.2-develop.8",
|
|
38
|
+
"@progress/kendo-angular-common": "17.0.2-develop.8",
|
|
39
|
+
"@progress/kendo-angular-intl": "17.0.2-develop.8",
|
|
40
|
+
"@progress/kendo-angular-l10n": "17.0.2-develop.8",
|
|
41
|
+
"@progress/kendo-angular-icons": "17.0.2-develop.8",
|
|
42
|
+
"@progress/kendo-angular-popup": "17.0.2-develop.8",
|
|
43
|
+
"@progress/kendo-angular-navigation": "17.0.2-develop.8",
|
|
44
44
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"tslib": "^2.3.1",
|
|
48
|
-
"@progress/kendo-angular-schematics": "17.0.2-develop.
|
|
48
|
+
"@progress/kendo-angular-schematics": "17.0.2-develop.8",
|
|
49
49
|
"@progress/kendo-common": "^1.0.1",
|
|
50
50
|
"@progress/kendo-date-math": "^1.1.0",
|
|
51
51
|
"@progress/kendo-dateinputs-common": "^0.4.0"
|
|
@@ -27,15 +27,17 @@ export declare class TimeListComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
27
27
|
disabled: boolean;
|
|
28
28
|
value: Date;
|
|
29
29
|
isLast: boolean;
|
|
30
|
+
isFirst: boolean;
|
|
30
31
|
valueChange: EventEmitter<Date>;
|
|
31
32
|
tabOutLastPart: EventEmitter<any>;
|
|
33
|
+
tabOutFirstPart: EventEmitter<any>;
|
|
32
34
|
virtualization: VirtualizationComponent;
|
|
33
|
-
get roleAttribute(): string;
|
|
34
|
-
get ariaLabel(): string;
|
|
35
35
|
get tabIndex(): number;
|
|
36
36
|
componentClass: boolean;
|
|
37
37
|
get isDayPeriod(): boolean;
|
|
38
38
|
get currentSelectedIndex(): number;
|
|
39
|
+
get roleAttribute(): string;
|
|
40
|
+
get ariaLabel(): string;
|
|
39
41
|
animateToIndex: boolean;
|
|
40
42
|
isActive: boolean;
|
|
41
43
|
skip: number;
|
|
@@ -90,5 +92,5 @@ export declare class TimeListComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
90
92
|
private handleKeyDown;
|
|
91
93
|
private bindEvents;
|
|
92
94
|
static ɵfac: i0.ɵɵFactoryDeclaration<TimeListComponent, never>;
|
|
93
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TimeListComponent, "kendo-timelist", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "part": { "alias": "part"; "required": false; }; "step": { "alias": "step"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; }, { "valueChange": "valueChange"; "tabOutLastPart": "tabOutLastPart"; }, never, never, true, never>;
|
|
95
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TimeListComponent, "kendo-timelist", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "part": { "alias": "part"; "required": false; }; "step": { "alias": "step"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; "isFirst": { "alias": "isFirst"; "required": false; }; }, { "valueChange": "valueChange"; "tabOutLastPart": "tabOutLastPart"; "tabOutFirstPart": "tabOutFirstPart"; }, never, never, true, never>;
|
|
94
96
|
}
|
|
@@ -495,6 +495,10 @@ export declare class TimePickerComponent extends MultiTabStop implements Control
|
|
|
495
495
|
* @hidden
|
|
496
496
|
*/
|
|
497
497
|
handleDateInputClick(): void;
|
|
498
|
+
/**
|
|
499
|
+
* @hidden
|
|
500
|
+
*/
|
|
501
|
+
onTabOutNow(): void;
|
|
498
502
|
/**
|
|
499
503
|
* @hidden
|
|
500
504
|
*/
|
|
@@ -531,6 +535,10 @@ export declare class TimePickerComponent extends MultiTabStop implements Control
|
|
|
531
535
|
* @hidden
|
|
532
536
|
*/
|
|
533
537
|
onTabOutLastPart(): void;
|
|
538
|
+
/**
|
|
539
|
+
* @hidden
|
|
540
|
+
*/
|
|
541
|
+
onTabOutFirstPart(): void;
|
|
534
542
|
private toggleTimeSelector;
|
|
535
543
|
private toggleActionSheet;
|
|
536
544
|
private togglePopup;
|
|
@@ -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 { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, QueryList, OnInit, OnChanges, OnDestroy, Renderer2
|
|
5
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, QueryList, OnInit, OnChanges, OnDestroy, Renderer2 } from '@angular/core';
|
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
7
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
8
8
|
import { TimeListComponent } from './timelist.component';
|
|
@@ -15,7 +15,7 @@ import * as i0 from "@angular/core";
|
|
|
15
15
|
*
|
|
16
16
|
* Represents the Kendo UI TimeSelector component for Angular.
|
|
17
17
|
*/
|
|
18
|
-
export declare class TimeSelectorComponent implements OnChanges, OnInit, OnDestroy
|
|
18
|
+
export declare class TimeSelectorComponent implements OnChanges, OnInit, OnDestroy {
|
|
19
19
|
localization: LocalizationService;
|
|
20
20
|
private cdr;
|
|
21
21
|
element: ElementRef;
|
|
@@ -106,6 +106,7 @@ export declare class TimeSelectorComponent implements OnChanges, OnInit, OnDestr
|
|
|
106
106
|
*/
|
|
107
107
|
valueReject: EventEmitter<any>;
|
|
108
108
|
tabOutLastPart: EventEmitter<any>;
|
|
109
|
+
tabOutFirstPart: EventEmitter<any>;
|
|
109
110
|
tabOutNow: EventEmitter<any>;
|
|
110
111
|
dateFormatParts: any[];
|
|
111
112
|
isActive: boolean;
|
|
@@ -126,7 +127,6 @@ export declare class TimeSelectorComponent implements OnChanges, OnInit, OnDestr
|
|
|
126
127
|
* @hidden
|
|
127
128
|
*/
|
|
128
129
|
ngOnInit(): void;
|
|
129
|
-
ngAfterViewInit(): void;
|
|
130
130
|
/**
|
|
131
131
|
* @hidden
|
|
132
132
|
*/
|
|
@@ -197,5 +197,5 @@ export declare class TimeSelectorComponent implements OnChanges, OnInit, OnDestr
|
|
|
197
197
|
private emitFocus;
|
|
198
198
|
private listIndex;
|
|
199
199
|
static ɵfac: i0.ɵɵFactoryDeclaration<TimeSelectorComponent, [null, null, null, null, null, null, null, { optional: true; }]>;
|
|
200
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TimeSelectorComponent, "kendo-timeselector", ["kendo-timeselector"], { "format": { "alias": "format"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "cancelButton": { "alias": "cancelButton"; "required": false; }; "setButton": { "alias": "setButton"; "required": false; }; "nowButton": { "alias": "nowButton"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isAdaptiveEnabled": { "alias": "isAdaptiveEnabled"; "required": false; }; "isDateTimePicker": { "alias": "isDateTimePicker"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "valueReject": "valueReject"; "tabOutLastPart": "tabOutLastPart"; "tabOutNow": "tabOutNow"; }, never, never, true, never>;
|
|
200
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TimeSelectorComponent, "kendo-timeselector", ["kendo-timeselector"], { "format": { "alias": "format"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "cancelButton": { "alias": "cancelButton"; "required": false; }; "setButton": { "alias": "setButton"; "required": false; }; "nowButton": { "alias": "nowButton"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isAdaptiveEnabled": { "alias": "isAdaptiveEnabled"; "required": false; }; "isDateTimePicker": { "alias": "isDateTimePicker"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "valueReject": "valueReject"; "tabOutLastPart": "tabOutLastPart"; "tabOutFirstPart": "tabOutFirstPart"; "tabOutNow": "tabOutNow"; }, never, never, true, never>;
|
|
201
201
|
}
|