@progress/kendo-angular-dateinputs 17.0.1 → 17.0.2-develop.10
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/dateinput/dateinput.component.mjs +2 -1
- 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 +133 -50
- 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"
|
|
@@ -767,7 +767,8 @@ export class DateInputComponent {
|
|
|
767
767
|
*/
|
|
768
768
|
triggerChange() {
|
|
769
769
|
const value = this.kendoDate.value;
|
|
770
|
-
|
|
770
|
+
const oneValuePresent = isPresent(value) !== isPresent(this.value);
|
|
771
|
+
if (+value !== +this.value || oneValuePresent) {
|
|
771
772
|
this.value = cloneDate(value);
|
|
772
773
|
this.notify();
|
|
773
774
|
}
|
|
@@ -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.
|
|
12
|
+
publishDate: 1731943998,
|
|
13
|
+
version: '17.0.2-develop.10',
|
|
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.
|
|
36
|
+
publishDate: 1731943998,
|
|
37
|
+
version: '17.0.2-develop.10',
|
|
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"
|
|
@@ -9208,7 +9206,8 @@ class DateInputComponent {
|
|
|
9208
9206
|
*/
|
|
9209
9207
|
triggerChange() {
|
|
9210
9208
|
const value = this.kendoDate.value;
|
|
9211
|
-
|
|
9209
|
+
const oneValuePresent = isPresent(value) !== isPresent(this.value);
|
|
9210
|
+
if (+value !== +this.value || oneValuePresent) {
|
|
9212
9211
|
this.value = cloneDate(value);
|
|
9213
9212
|
this.notify();
|
|
9214
9213
|
}
|
|
@@ -12332,15 +12331,11 @@ class TimeListComponent {
|
|
|
12332
12331
|
disabled = false;
|
|
12333
12332
|
value;
|
|
12334
12333
|
isLast = false;
|
|
12334
|
+
isFirst = false;
|
|
12335
12335
|
valueChange = new EventEmitter();
|
|
12336
12336
|
tabOutLastPart = new EventEmitter();
|
|
12337
|
+
tabOutFirstPart = new EventEmitter();
|
|
12337
12338
|
virtualization;
|
|
12338
|
-
get roleAttribute() {
|
|
12339
|
-
return 'listbox';
|
|
12340
|
-
}
|
|
12341
|
-
get ariaLabel() {
|
|
12342
|
-
return this.localization.get(this.part?.type);
|
|
12343
|
-
}
|
|
12344
12339
|
get tabIndex() {
|
|
12345
12340
|
return this.disabled ? undefined : 0;
|
|
12346
12341
|
}
|
|
@@ -12351,6 +12346,12 @@ class TimeListComponent {
|
|
|
12351
12346
|
get currentSelectedIndex() {
|
|
12352
12347
|
return this.selectedIndex(this.value);
|
|
12353
12348
|
}
|
|
12349
|
+
get roleAttribute() {
|
|
12350
|
+
return 'listbox';
|
|
12351
|
+
}
|
|
12352
|
+
get ariaLabel() {
|
|
12353
|
+
return this.localization.get(this.part?.type);
|
|
12354
|
+
}
|
|
12354
12355
|
animateToIndex = true;
|
|
12355
12356
|
isActive = false;
|
|
12356
12357
|
skip = 0;
|
|
@@ -12531,6 +12532,10 @@ class TimeListComponent {
|
|
|
12531
12532
|
e.preventDefault();
|
|
12532
12533
|
this.tabOutLastPart.emit();
|
|
12533
12534
|
}
|
|
12535
|
+
if (e.keyCode === Keys$1.Tab && e.shiftKey && this.isFirst) {
|
|
12536
|
+
e.preventDefault();
|
|
12537
|
+
this.tabOutFirstPart.emit();
|
|
12538
|
+
}
|
|
12534
12539
|
const getter = getters[e.keyCode] || nil;
|
|
12535
12540
|
const dataItem = getter(this.data, this.service.selectedIndex(this.value));
|
|
12536
12541
|
if (dataItem) {
|
|
@@ -12550,8 +12555,10 @@ class TimeListComponent {
|
|
|
12550
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)));
|
|
12551
12556
|
}
|
|
12552
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 });
|
|
12553
|
-
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: `
|
|
12554
12559
|
<kendo-virtualization
|
|
12560
|
+
[attr.role]="roleAttribute"
|
|
12561
|
+
[attr.aria-label]="ariaLabel"
|
|
12555
12562
|
[skip]="skip"
|
|
12556
12563
|
[take]="total"
|
|
12557
12564
|
[total]="total"
|
|
@@ -12560,7 +12567,7 @@ class TimeListComponent {
|
|
|
12560
12567
|
[topOffset]="topOffset"
|
|
12561
12568
|
[bottomOffset]="bottomOffset"
|
|
12562
12569
|
class="k-time-container"
|
|
12563
|
-
|
|
12570
|
+
tabindex="-1"
|
|
12564
12571
|
>
|
|
12565
12572
|
<ul [ngStyle]="style" class="k-reset"
|
|
12566
12573
|
[kendoEventsOutsideAngular]="{
|
|
@@ -12586,6 +12593,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12586
12593
|
selector: 'kendo-timelist',
|
|
12587
12594
|
template: `
|
|
12588
12595
|
<kendo-virtualization
|
|
12596
|
+
[attr.role]="roleAttribute"
|
|
12597
|
+
[attr.aria-label]="ariaLabel"
|
|
12589
12598
|
[skip]="skip"
|
|
12590
12599
|
[take]="total"
|
|
12591
12600
|
[total]="total"
|
|
@@ -12594,7 +12603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12594
12603
|
[topOffset]="topOffset"
|
|
12595
12604
|
[bottomOffset]="bottomOffset"
|
|
12596
12605
|
class="k-time-container"
|
|
12597
|
-
|
|
12606
|
+
tabindex="-1"
|
|
12598
12607
|
>
|
|
12599
12608
|
<ul [ngStyle]="style" class="k-reset"
|
|
12600
12609
|
[kendoEventsOutsideAngular]="{
|
|
@@ -12630,19 +12639,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12630
12639
|
type: Input
|
|
12631
12640
|
}], isLast: [{
|
|
12632
12641
|
type: Input
|
|
12642
|
+
}], isFirst: [{
|
|
12643
|
+
type: Input
|
|
12633
12644
|
}], valueChange: [{
|
|
12634
12645
|
type: Output
|
|
12635
12646
|
}], tabOutLastPart: [{
|
|
12636
12647
|
type: Output
|
|
12648
|
+
}], tabOutFirstPart: [{
|
|
12649
|
+
type: Output
|
|
12637
12650
|
}], virtualization: [{
|
|
12638
12651
|
type: ViewChild,
|
|
12639
12652
|
args: [VirtualizationComponent, { static: true }]
|
|
12640
|
-
}], roleAttribute: [{
|
|
12641
|
-
type: HostBinding,
|
|
12642
|
-
args: ["attr.role"]
|
|
12643
|
-
}], ariaLabel: [{
|
|
12644
|
-
type: HostBinding,
|
|
12645
|
-
args: ["attr.aria-label"]
|
|
12646
12653
|
}], tabIndex: [{
|
|
12647
12654
|
type: HostBinding,
|
|
12648
12655
|
args: ["attr.tabindex"]
|
|
@@ -12956,6 +12963,7 @@ class TimeSelectorComponent {
|
|
|
12956
12963
|
*/
|
|
12957
12964
|
valueReject = new EventEmitter();
|
|
12958
12965
|
tabOutLastPart = new EventEmitter();
|
|
12966
|
+
tabOutFirstPart = new EventEmitter();
|
|
12959
12967
|
tabOutNow = new EventEmitter();
|
|
12960
12968
|
dateFormatParts;
|
|
12961
12969
|
isActive = false;
|
|
@@ -13025,22 +13033,6 @@ class TimeSelectorComponent {
|
|
|
13025
13033
|
this.init();
|
|
13026
13034
|
this.bindEvents();
|
|
13027
13035
|
}
|
|
13028
|
-
ngAfterViewInit() {
|
|
13029
|
-
this.subscriptions.add(fromEvent(this.timeListWrappers.first.nativeElement, 'keydown').subscribe((event) => {
|
|
13030
|
-
const { keyCode, shiftKey } = event;
|
|
13031
|
-
if (keyCode === Keys$1.Tab && shiftKey) {
|
|
13032
|
-
event.preventDefault();
|
|
13033
|
-
this.renderer.removeClass(this.timeListWrappers.first.nativeElement, 'k-focus');
|
|
13034
|
-
this.now ? this.now.nativeElement.focus() : this.cancel.nativeElement.focus();
|
|
13035
|
-
}
|
|
13036
|
-
}));
|
|
13037
|
-
this.subscriptions.add(fromEvent(this.timeListWrappers.last.nativeElement, 'keydown').subscribe((event) => {
|
|
13038
|
-
const { keyCode, shiftKey } = event;
|
|
13039
|
-
if (keyCode === Keys$1.Tab && !shiftKey) {
|
|
13040
|
-
this.renderer.removeClass(this.timeListWrappers.last.nativeElement, 'k-focus');
|
|
13041
|
-
}
|
|
13042
|
-
}));
|
|
13043
|
-
}
|
|
13044
13036
|
/**
|
|
13045
13037
|
* @hidden
|
|
13046
13038
|
*/
|
|
@@ -13163,7 +13155,12 @@ class TimeSelectorComponent {
|
|
|
13163
13155
|
if (keyCode === Keys$1.Tab && !shiftKey && event.target !== this.now?.nativeElement) {
|
|
13164
13156
|
event.preventDefault();
|
|
13165
13157
|
if (document.activeElement === this.accept.nativeElement) {
|
|
13166
|
-
|
|
13158
|
+
if (this.cancel) {
|
|
13159
|
+
this.cancel.nativeElement.focus();
|
|
13160
|
+
}
|
|
13161
|
+
else {
|
|
13162
|
+
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
13163
|
+
}
|
|
13167
13164
|
}
|
|
13168
13165
|
else {
|
|
13169
13166
|
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
@@ -13256,7 +13253,7 @@ class TimeSelectorComponent {
|
|
|
13256
13253
|
return listIdx;
|
|
13257
13254
|
}
|
|
13258
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 });
|
|
13259
|
-
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: [
|
|
13260
13257
|
LocalizationService,
|
|
13261
13258
|
{
|
|
13262
13259
|
provide: L10N_PREFIX,
|
|
@@ -13316,6 +13313,7 @@ class TimeSelectorComponent {
|
|
|
13316
13313
|
<span class="k-title k-timeselector-title">{{intl.dateFieldName(part)}}</span>
|
|
13317
13314
|
<kendo-timelist
|
|
13318
13315
|
[isLast]="idx === dateFormatParts.length - 1"
|
|
13316
|
+
[isFirst]="idx === 0"
|
|
13319
13317
|
[min]="min"
|
|
13320
13318
|
[max]="max"
|
|
13321
13319
|
[part]="part"
|
|
@@ -13323,6 +13321,7 @@ class TimeSelectorComponent {
|
|
|
13323
13321
|
[disabled]="disabled"
|
|
13324
13322
|
[(value)]="current"
|
|
13325
13323
|
(tabOutLastPart)="tabOutLastPart.emit()"
|
|
13324
|
+
(tabOutFirstPart)="tabOutFirstPart.emit()"
|
|
13326
13325
|
[kendoEventsOutsideAngular]="{
|
|
13327
13326
|
focus: handleListFocus,
|
|
13328
13327
|
blur: handleBlur
|
|
@@ -13370,7 +13369,7 @@ class TimeSelectorComponent {
|
|
|
13370
13369
|
[disabled]="disabled"
|
|
13371
13370
|
>{{localization.get('cancel')}}</button>
|
|
13372
13371
|
</div>
|
|
13373
|
-
`, 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 });
|
|
13374
13373
|
}
|
|
13375
13374
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeSelectorComponent, decorators: [{
|
|
13376
13375
|
type: Component,
|
|
@@ -13439,6 +13438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13439
13438
|
<span class="k-title k-timeselector-title">{{intl.dateFieldName(part)}}</span>
|
|
13440
13439
|
<kendo-timelist
|
|
13441
13440
|
[isLast]="idx === dateFormatParts.length - 1"
|
|
13441
|
+
[isFirst]="idx === 0"
|
|
13442
13442
|
[min]="min"
|
|
13443
13443
|
[max]="max"
|
|
13444
13444
|
[part]="part"
|
|
@@ -13446,6 +13446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13446
13446
|
[disabled]="disabled"
|
|
13447
13447
|
[(value)]="current"
|
|
13448
13448
|
(tabOutLastPart)="tabOutLastPart.emit()"
|
|
13449
|
+
(tabOutFirstPart)="tabOutFirstPart.emit()"
|
|
13449
13450
|
[kendoEventsOutsideAngular]="{
|
|
13450
13451
|
focus: handleListFocus,
|
|
13451
13452
|
blur: handleBlur
|
|
@@ -13545,6 +13546,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13545
13546
|
type: Output
|
|
13546
13547
|
}], tabOutLastPart: [{
|
|
13547
13548
|
type: Output
|
|
13549
|
+
}], tabOutFirstPart: [{
|
|
13550
|
+
type: Output
|
|
13548
13551
|
}], tabOutNow: [{
|
|
13549
13552
|
type: Output
|
|
13550
13553
|
}] } });
|
|
@@ -14378,6 +14381,16 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14378
14381
|
this.show = true;
|
|
14379
14382
|
}
|
|
14380
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
|
+
}
|
|
14381
14394
|
/**
|
|
14382
14395
|
* @hidden
|
|
14383
14396
|
*/
|
|
@@ -14450,6 +14463,7 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14450
14463
|
* @hidden
|
|
14451
14464
|
*/
|
|
14452
14465
|
onTabOutLastPart() {
|
|
14466
|
+
this.renderer.removeClass(this.timeSelector.timeListWrappers.last.nativeElement, 'k-focus');
|
|
14453
14467
|
if (this.isAdaptive) {
|
|
14454
14468
|
this.cancelButton ? this.adaptiveCancelButton.focus() : this.adaptiveAcceptButton.focus();
|
|
14455
14469
|
}
|
|
@@ -14457,6 +14471,18 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14457
14471
|
this.timeSelector.accept.nativeElement.focus();
|
|
14458
14472
|
}
|
|
14459
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
|
+
}
|
|
14460
14486
|
toggleTimeSelector(show) {
|
|
14461
14487
|
this.windowSize = windowSize();
|
|
14462
14488
|
if (this.isAdaptive) {
|
|
@@ -14845,6 +14871,8 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14845
14871
|
(valueChange)="handleChange($event)"
|
|
14846
14872
|
(valueReject)="handleReject()"
|
|
14847
14873
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
14874
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
14875
|
+
(tabOutNow)="onTabOutNow()"
|
|
14848
14876
|
>
|
|
14849
14877
|
<kendo-timeselector-messages
|
|
14850
14878
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -14862,7 +14890,7 @@ class TimePickerComponent extends MultiTabStop {
|
|
|
14862
14890
|
</kendo-timeselector-messages>
|
|
14863
14891
|
</kendo-timeselector>
|
|
14864
14892
|
</ng-template>
|
|
14865
|
-
`, 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 });
|
|
14866
14894
|
}
|
|
14867
14895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
14868
14896
|
type: Component,
|
|
@@ -15070,6 +15098,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
15070
15098
|
(valueChange)="handleChange($event)"
|
|
15071
15099
|
(valueReject)="handleReject()"
|
|
15072
15100
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
15101
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
15102
|
+
(tabOutNow)="onTabOutNow()"
|
|
15073
15103
|
>
|
|
15074
15104
|
<kendo-timeselector-messages
|
|
15075
15105
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -15374,6 +15404,7 @@ const ACCEPT_BUTTON_SELECTOR = '.k-button.k-time-accept';
|
|
|
15374
15404
|
const CANCEL_BUTTON_SELECOTR = '.k-button.k-time-cancel';
|
|
15375
15405
|
const DATE_TAB_BUTTON_SELECTOR = '.k-button.k-group-start';
|
|
15376
15406
|
const TIME_TAB_BUTTON_SELECTOR = '.k-button.k-group-end';
|
|
15407
|
+
const TODAY_BUTTON_SELECTOR = '.k-button.k-calendar-nav-today';
|
|
15377
15408
|
/**
|
|
15378
15409
|
* Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).
|
|
15379
15410
|
*/
|
|
@@ -16034,6 +16065,14 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16034
16065
|
return this.popupRef?.popup.instance.container.nativeElement.querySelector(TIME_TAB_BUTTON_SELECTOR);
|
|
16035
16066
|
}
|
|
16036
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
|
+
}
|
|
16037
16076
|
/**
|
|
16038
16077
|
* @hidden
|
|
16039
16078
|
*/
|
|
@@ -16319,6 +16358,15 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16319
16358
|
this.dateTabButton.focus();
|
|
16320
16359
|
}
|
|
16321
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
|
+
}
|
|
16322
16370
|
/**
|
|
16323
16371
|
* @hidden
|
|
16324
16372
|
*/
|
|
@@ -16405,7 +16453,6 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16405
16453
|
break;
|
|
16406
16454
|
default: return;
|
|
16407
16455
|
}
|
|
16408
|
-
event.preventDefault();
|
|
16409
16456
|
}
|
|
16410
16457
|
/**
|
|
16411
16458
|
* @hidden
|
|
@@ -16422,6 +16469,9 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16422
16469
|
if (this.activeTab === 'date') {
|
|
16423
16470
|
this.calendar.monthView.list.nativeElement.focus();
|
|
16424
16471
|
}
|
|
16472
|
+
else {
|
|
16473
|
+
this.timeSelector.timeLists.last.focus();
|
|
16474
|
+
}
|
|
16425
16475
|
}
|
|
16426
16476
|
break;
|
|
16427
16477
|
case this.cancelButtonElement:
|
|
@@ -16433,6 +16483,9 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16433
16483
|
if (this.activeTab === 'date') {
|
|
16434
16484
|
this.calendar.monthView.list.nativeElement.focus();
|
|
16435
16485
|
}
|
|
16486
|
+
else {
|
|
16487
|
+
this.timeSelector.timeLists.last.focus();
|
|
16488
|
+
}
|
|
16436
16489
|
}
|
|
16437
16490
|
else {
|
|
16438
16491
|
this.dateTabButton.focus();
|
|
@@ -16455,6 +16508,16 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16455
16508
|
}
|
|
16456
16509
|
}
|
|
16457
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;
|
|
16458
16521
|
default:
|
|
16459
16522
|
break;
|
|
16460
16523
|
}
|
|
@@ -16649,9 +16712,17 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
16649
16712
|
if (this.calendar.type === 'infinite') {
|
|
16650
16713
|
this.subscriptions.add(fromEvent(this.calendar.monthView.list.nativeElement, 'keydown').subscribe((event) => {
|
|
16651
16714
|
const { keyCode, shiftKey } = event;
|
|
16652
|
-
if (keyCode === Keys$1.Tab && !shiftKey
|
|
16715
|
+
if (keyCode === Keys$1.Tab && !shiftKey) {
|
|
16653
16716
|
event.preventDefault();
|
|
16654
|
-
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
|
+
}
|
|
16655
16726
|
}
|
|
16656
16727
|
}));
|
|
16657
16728
|
}
|
|
@@ -17013,8 +17084,11 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17013
17084
|
[attr.title]="localization.get('timeTabLabel')"
|
|
17014
17085
|
[attr.aria-label]="localization.get('timeTabLabel')"
|
|
17015
17086
|
[kendoEventsOutsideAngular]="{
|
|
17016
|
-
click: changeActiveTab.bind(this, 'time')
|
|
17087
|
+
click: changeActiveTab.bind(this, 'time'),
|
|
17088
|
+
'keydown.tab': handleTab
|
|
17017
17089
|
}"
|
|
17090
|
+
[scope]="this"
|
|
17091
|
+
|
|
17018
17092
|
>
|
|
17019
17093
|
{{localization.get('timeTab')}}
|
|
17020
17094
|
</button>
|
|
@@ -17079,6 +17153,7 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17079
17153
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
17080
17154
|
[isDateTimePicker]="true"
|
|
17081
17155
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
17156
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
17082
17157
|
(tabOutNow)="onTabOutNow()"
|
|
17083
17158
|
>
|
|
17084
17159
|
<kendo-timeselector-messages
|
|
@@ -17116,7 +17191,8 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17116
17191
|
[disabled]="!calendarValue"
|
|
17117
17192
|
[kendoEventsOutsideAngular]="{
|
|
17118
17193
|
click: handleAccept,
|
|
17119
|
-
'keydown.tab': handleTab
|
|
17194
|
+
'keydown.tab': handleTab,
|
|
17195
|
+
'keydown.shift.tab': handleTab
|
|
17120
17196
|
}"
|
|
17121
17197
|
[scope]="this"
|
|
17122
17198
|
>
|
|
@@ -17132,7 +17208,8 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17132
17208
|
[attr.aria-label]="localization.get('cancelLabel')"
|
|
17133
17209
|
[kendoEventsOutsideAngular]="{
|
|
17134
17210
|
click: handleCancel,
|
|
17135
|
-
'keydown.tab': handleTab
|
|
17211
|
+
'keydown.tab': handleTab,
|
|
17212
|
+
'keydown.shift.tab': handleTab
|
|
17136
17213
|
}"
|
|
17137
17214
|
[scope]="this"
|
|
17138
17215
|
>
|
|
@@ -17141,7 +17218,7 @@ class DateTimePickerComponent extends MultiTabStop {
|
|
|
17141
17218
|
</div>
|
|
17142
17219
|
</div>
|
|
17143
17220
|
</ng-template>
|
|
17144
|
-
`, 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 });
|
|
17145
17222
|
}
|
|
17146
17223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
17147
17224
|
type: Component,
|
|
@@ -17417,8 +17494,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17417
17494
|
[attr.title]="localization.get('timeTabLabel')"
|
|
17418
17495
|
[attr.aria-label]="localization.get('timeTabLabel')"
|
|
17419
17496
|
[kendoEventsOutsideAngular]="{
|
|
17420
|
-
click: changeActiveTab.bind(this, 'time')
|
|
17497
|
+
click: changeActiveTab.bind(this, 'time'),
|
|
17498
|
+
'keydown.tab': handleTab
|
|
17421
17499
|
}"
|
|
17500
|
+
[scope]="this"
|
|
17501
|
+
|
|
17422
17502
|
>
|
|
17423
17503
|
{{localization.get('timeTab')}}
|
|
17424
17504
|
</button>
|
|
@@ -17483,6 +17563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17483
17563
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
17484
17564
|
[isDateTimePicker]="true"
|
|
17485
17565
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
17566
|
+
(tabOutFirstPart)="onTabOutFirstPart()"
|
|
17486
17567
|
(tabOutNow)="onTabOutNow()"
|
|
17487
17568
|
>
|
|
17488
17569
|
<kendo-timeselector-messages
|
|
@@ -17520,7 +17601,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17520
17601
|
[disabled]="!calendarValue"
|
|
17521
17602
|
[kendoEventsOutsideAngular]="{
|
|
17522
17603
|
click: handleAccept,
|
|
17523
|
-
'keydown.tab': handleTab
|
|
17604
|
+
'keydown.tab': handleTab,
|
|
17605
|
+
'keydown.shift.tab': handleTab
|
|
17524
17606
|
}"
|
|
17525
17607
|
[scope]="this"
|
|
17526
17608
|
>
|
|
@@ -17536,7 +17618,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17536
17618
|
[attr.aria-label]="localization.get('cancelLabel')"
|
|
17537
17619
|
[kendoEventsOutsideAngular]="{
|
|
17538
17620
|
click: handleCancel,
|
|
17539
|
-
'keydown.tab': handleTab
|
|
17621
|
+
'keydown.tab': handleTab,
|
|
17622
|
+
'keydown.shift.tab': handleTab
|
|
17540
17623
|
}"
|
|
17541
17624
|
[scope]="this"
|
|
17542
17625
|
>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-dateinputs",
|
|
3
|
-
"version": "17.0.
|
|
3
|
+
"version": "17.0.2-develop.10",
|
|
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.
|
|
38
|
-
"@progress/kendo-angular-common": "17.0.
|
|
39
|
-
"@progress/kendo-angular-intl": "17.0.
|
|
40
|
-
"@progress/kendo-angular-l10n": "17.0.
|
|
41
|
-
"@progress/kendo-angular-icons": "17.0.
|
|
42
|
-
"@progress/kendo-angular-popup": "17.0.
|
|
43
|
-
"@progress/kendo-angular-navigation": "17.0.
|
|
37
|
+
"@progress/kendo-angular-buttons": "17.0.2-develop.10",
|
|
38
|
+
"@progress/kendo-angular-common": "17.0.2-develop.10",
|
|
39
|
+
"@progress/kendo-angular-intl": "17.0.2-develop.10",
|
|
40
|
+
"@progress/kendo-angular-l10n": "17.0.2-develop.10",
|
|
41
|
+
"@progress/kendo-angular-icons": "17.0.2-develop.10",
|
|
42
|
+
"@progress/kendo-angular-popup": "17.0.2-develop.10",
|
|
43
|
+
"@progress/kendo-angular-navigation": "17.0.2-develop.10",
|
|
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.
|
|
48
|
+
"@progress/kendo-angular-schematics": "17.0.2-develop.10",
|
|
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
|
}
|