@progress/kendo-angular-dateinputs 19.0.0-develop.1 → 19.0.0-develop.11

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.
@@ -9,14 +9,14 @@ import { tap } from 'rxjs/operators';
9
9
  import { cloneDate, isEqual, getDate } from '@progress/kendo-date-math';
10
10
  import { PopupService } from '@progress/kendo-angular-popup';
11
11
  import { IntlService } from '@progress/kendo-angular-intl';
12
- import { hasObservers, isControlRequired, isDocumentAvailable, KendoInput, Keys, MultiTabStop, ResizeSensorComponent, EventsOutsideAngularDirective } from '@progress/kendo-angular-common';
12
+ import { hasObservers, isControlRequired, KendoInput, Keys, MultiTabStop, ResizeSensorComponent, EventsOutsideAngularDirective } from '@progress/kendo-angular-common';
13
13
  import { AdaptiveService } from '@progress/kendo-angular-utils';
14
14
  import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
15
15
  import { validatePackage } from '@progress/kendo-licensing';
16
16
  import { packageMetadata } from '../package-metadata';
17
17
  import { PickerService } from '../common/picker.service';
18
18
  import { DisabledDatesService } from '../calendar/services/disabled-dates.service';
19
- import { attributeNames, isPresent, isTruthy } from '../common/utils';
19
+ import { attributeNames, isPresent } from '../common/utils';
20
20
  import { mergeDateAndTime, noop, lastMillisecondOfDate, isInRange, isValidRange, isWindowAvailable, getFillModeClass, getRoundedClass, getSizeClass, DEFAULT_FILL_MODE, DEFAULT_ROUNDED, DEFAULT_SIZE } from '../util';
21
21
  import { CalendarComponent } from '../calendar/calendar.component';
22
22
  import { TimeSelectorComponent } from '../timepicker/timeselector.component';
@@ -35,7 +35,7 @@ import { CenturyCellTemplateDirective } from '../calendar/templates/century-cell
35
35
  import { WeekNumberCellTemplateDirective } from '../calendar/templates/weeknumber-cell-template.directive';
36
36
  import { HeaderTitleTemplateDirective } from '../calendar/templates/header-title-template.directive';
37
37
  import { incompleteDateValidator } from '../validators/incomplete-date.validator';
38
- import { calendarIcon, clockIcon, xIcon } from '@progress/kendo-svg-icons';
38
+ import { calendarIcon, clockIcon, checkIcon } from '@progress/kendo-svg-icons';
39
39
  import { ActionSheetComponent, ActionSheetTemplateDirective } from '@progress/kendo-angular-navigation';
40
40
  import { HeaderTemplateDirective } from '../calendar/templates/header-template.directive';
41
41
  import { FooterTemplateDirective } from '../calendar/templates/footer-template.directive';
@@ -218,18 +218,12 @@ export class DateTimePickerComponent extends MultiTabStop {
218
218
  * Sets the title of the input element of the DateTimePicker and the title text rendered
219
219
  * in the header of the popup(action sheet). Applicable only when [`AdaptiveMode` is set to `auto`](slug:api_dateinputs_adaptivemode).
220
220
  */
221
- title = '';
221
+ adaptiveTitle = '';
222
222
  /**
223
223
  * Sets the subtitle text rendered in the header of the popup(action sheet).
224
224
  * Applicable only when [`AdaptiveMode` is set to `auto`](slug:api_dateinputs_adaptivemode).
225
225
  */
226
- set subtitle(subtitle) {
227
- this._subtitle = subtitle;
228
- }
229
- get subtitle() {
230
- return this._subtitle || this.placeholder;
231
- }
232
- _subtitle;
226
+ adaptiveSubtitle = '';
233
227
  /**
234
228
  * Sets or gets the `disabled` property of the DateTimePicker and determines whether the component is active
235
229
  * ([see example]({% slug disabled_datetimepicker %})).
@@ -427,7 +421,7 @@ export class DateTimePickerComponent extends MultiTabStop {
427
421
  * Indicates whether the component is currently open. That is when the popup or actionSheet is open.
428
422
  */
429
423
  get isOpen() {
430
- return isTruthy(this.actionSheet?.expanded) || isPresent(this.popupRef);
424
+ return this.actionSheet?.expanded || isPresent(this.popupRef);
431
425
  }
432
426
  /**
433
427
  * Indicates whether the component or its popup content is focused.
@@ -619,7 +613,11 @@ export class DateTimePickerComponent extends MultiTabStop {
619
613
  /**
620
614
  * @hidden
621
615
  */
622
- xIcon = xIcon;
616
+ checkIcon = checkIcon;
617
+ /**
618
+ * @hidden
619
+ */
620
+ windowSize;
623
621
  /**
624
622
  * @hidden
625
623
  */
@@ -770,7 +768,6 @@ export class DateTimePickerComponent extends MultiTabStop {
770
768
  _size = DEFAULT_SIZE;
771
769
  _rounded = DEFAULT_ROUNDED;
772
770
  _fillMode = DEFAULT_FILL_MODE;
773
- windowSize;
774
771
  constructor(popupService, intl, cdr, pickerService, ngZone, wrapper, localization, disabledDatesService, renderer, injector, adaptiveService) {
775
772
  super();
776
773
  this.popupService = popupService;
@@ -809,11 +806,6 @@ export class DateTimePickerComponent extends MultiTabStop {
809
806
  ngAfterViewInit() {
810
807
  this.setComponentClasses();
811
808
  this.windowSize = this.adaptiveService.size;
812
- if (this.actionSheet && isDocumentAvailable()) {
813
- // The following syntax is used as it does not violate CSP compliance
814
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
815
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
816
- }
817
809
  }
818
810
  ngOnChanges(changes) {
819
811
  if (isPresent(changes['min']) || isPresent(changes['max'])) {
@@ -1208,14 +1200,6 @@ export class DateTimePickerComponent extends MultiTabStop {
1208
1200
  // Reset tabs after actionsheet is collapsed, otherwise the tab change can be seen during the animation
1209
1201
  this.resetActiveTab();
1210
1202
  }
1211
- /**
1212
- * @hidden
1213
- */
1214
- popupButtonsClasses(type) {
1215
- const buttonType = type ? type : 'base';
1216
- const sizeClass = `${this.isAdaptive ? getSizeClass('button', 'large') : this.size ? getSizeClass('button', this.size) : ''}`;
1217
- return `${sizeClass} ${this.rounded ? getRoundedClass(this.rounded) : ''} ${this.fillMode ? 'k-button-' + this.fillMode + ' ' + 'k-button-' + this.fillMode + '-' + buttonType : ''}`;
1218
- }
1219
1203
  /**
1220
1204
  * @hidden
1221
1205
  *
@@ -1224,50 +1208,35 @@ export class DateTimePickerComponent extends MultiTabStop {
1224
1208
  preventMouseDown(event) {
1225
1209
  event.preventDefault();
1226
1210
  }
1227
- _togglePopup(show) {
1228
- const shouldOpen = isPresent(show) ? show : !this.isOpen;
1229
- if (shouldOpen) {
1230
- this.openPopup();
1231
- return;
1232
- }
1233
- this.closePopup();
1234
- this.resetActiveTab();
1235
- }
1211
+ /**
1212
+ * @hidden
1213
+ */
1236
1214
  toggleActionSheet(show) {
1237
1215
  if (isPresent(show) && show && !this.isOpen) {
1238
1216
  this.actionSheet.toggle();
1239
- this.updateActionSheetAdaptiveAppearance();
1240
1217
  this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
1241
1218
  this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
1242
1219
  this.setAriaActiveDescendant();
1243
1220
  }
1244
1221
  else if (isPresent(show) && !show && this.isOpen) {
1222
+ this.handleBlur();
1245
1223
  this.actionSheet.toggle();
1246
1224
  this.ariaActiveDescendantSubscription.unsubscribe();
1247
1225
  if (this.dateInput) {
1248
1226
  this.renderer.removeAttribute(this.dateInput.inputElement, attributeNames.ariaActiveDescendant);
1249
1227
  this.renderer.removeAttribute(this.dateInput.inputElement, attributeNames.ariaControls);
1228
+ this.dateInput.focus();
1250
1229
  }
1251
1230
  }
1252
1231
  }
1253
- updateActionSheetAdaptiveAppearance() {
1254
- let element;
1255
- let animationContainer;
1256
- if (this.actionSheet) {
1257
- element = this.actionSheet['element'].nativeElement.querySelector('.k-actionsheet');
1258
- animationContainer = this.actionSheet['element'].nativeElement.querySelector('.k-child-animation-container');
1259
- if (this.windowSize === 'medium') {
1260
- this.renderer.removeClass(element, 'k-actionsheet-fullscreen');
1261
- this.renderer.removeStyle(animationContainer, 'height');
1262
- }
1263
- else if (this.windowSize === 'small') {
1264
- this.renderer.addClass(element, 'k-actionsheet-fullscreen');
1265
- this.renderer.setStyle(animationContainer, 'height', '100%');
1266
- }
1267
- this.renderer.addClass(element, 'k-adaptive-actionsheet');
1268
- this.renderer.addClass(element, 'k-actionsheet-bottom');
1269
- this.renderer.setStyle(animationContainer, 'bottom', '0px');
1232
+ _togglePopup(show) {
1233
+ const shouldOpen = isPresent(show) ? show : !this.isOpen;
1234
+ if (shouldOpen) {
1235
+ this.openPopup();
1236
+ return;
1270
1237
  }
1238
+ this.closePopup();
1239
+ this.resetActiveTab();
1271
1240
  }
1272
1241
  /**
1273
1242
  * Changes the tab and the calendar or clock icon to the designated default.
@@ -1498,7 +1467,7 @@ export class DateTimePickerComponent extends MultiTabStop {
1498
1467
  }
1499
1468
  }
1500
1469
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i1.PopupService }, { token: i2.IntlService }, { token: i0.ChangeDetectorRef }, { token: i3.PickerService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i4.LocalizationService }, { token: i5.DisabledDatesService }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i6.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
1501
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateTimePickerComponent, isStandalone: true, selector: "kendo-datetimepicker", inputs: { focusableId: "focusableId", weekDaysFormat: "weekDaysFormat", showOtherMonthDays: "showOtherMonthDays", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", tabindex: "tabindex", disabledDates: "disabledDates", popupSettings: "popupSettings", title: "title", subtitle: "subtitle", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", cancelButton: "cancelButton", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", focusedDate: "focusedDate", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", weekNumber: "weekNumber", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", incompleteDateValidation: "incompleteDateValidation", autoCorrectParts: "autoCorrectParts", autoSwitchParts: "autoSwitchParts", autoSwitchKeys: "autoSwitchKeys", enableMouseWheel: "enableMouseWheel", allowCaretMode: "allowCaretMode", clearButton: "clearButton", autoFill: "autoFill", adaptiveMode: "adaptiveMode", inputAttributes: "inputAttributes", defaultTab: "defaultTab", size: "size", rounded: "rounded", fillMode: "fillMode", headerTemplateRef: ["headerTemplate", "headerTemplateRef"], footerTemplateRef: ["footerTemplate", "footerTemplateRef"], footer: "footer" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur", escape: "escape" }, host: { properties: { "class.k-datetimepicker": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.disabledClass", "class.k-readonly": "this.readonly" } }, providers: [
1470
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateTimePickerComponent, isStandalone: true, selector: "kendo-datetimepicker", inputs: { focusableId: "focusableId", weekDaysFormat: "weekDaysFormat", showOtherMonthDays: "showOtherMonthDays", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", tabindex: "tabindex", disabledDates: "disabledDates", popupSettings: "popupSettings", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", cancelButton: "cancelButton", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", focusedDate: "focusedDate", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", weekNumber: "weekNumber", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", incompleteDateValidation: "incompleteDateValidation", autoCorrectParts: "autoCorrectParts", autoSwitchParts: "autoSwitchParts", autoSwitchKeys: "autoSwitchKeys", enableMouseWheel: "enableMouseWheel", allowCaretMode: "allowCaretMode", clearButton: "clearButton", autoFill: "autoFill", adaptiveMode: "adaptiveMode", inputAttributes: "inputAttributes", defaultTab: "defaultTab", size: "size", rounded: "rounded", fillMode: "fillMode", headerTemplateRef: ["headerTemplate", "headerTemplateRef"], footerTemplateRef: ["footerTemplate", "footerTemplateRef"], footer: "footer" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur", escape: "escape" }, host: { properties: { "class.k-datetimepicker": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.disabledClass", "class.k-readonly": "this.readonly" } }, providers: [
1502
1471
  PickerService,
1503
1472
  LocalizationService,
1504
1473
  DisabledDatesService,
@@ -1573,6 +1542,9 @@ export class DateTimePickerComponent extends MultiTabStop {
1573
1542
 
1574
1543
  i18n-clearTitle="kendo.datetimepicker.clearTitle|The title of the clear button"
1575
1544
  clearTitle="clear"
1545
+
1546
+ i18n-adaptiveCloseButtonTitle="kendo.datetimepicker.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
1547
+ adaptiveCloseButtonTitle="Close"
1576
1548
  >
1577
1549
  </ng-container>
1578
1550
 
@@ -1600,7 +1572,7 @@ export class DateTimePickerComponent extends MultiTabStop {
1600
1572
  [steps]="steps"
1601
1573
  [tabindex]="tabindex"
1602
1574
  [isRequired]="isControlRequired"
1603
- [title]="title"
1575
+ [title]="adaptiveTitle"
1604
1576
  pickerType="datetimepicker"
1605
1577
  hasPopup="dialog"
1606
1578
  [inputAttributes]="inputAttributes"
@@ -1660,35 +1632,44 @@ export class DateTimePickerComponent extends MultiTabStop {
1660
1632
 
1661
1633
  <kendo-actionsheet
1662
1634
  #actionSheet
1663
- (overlayClick)="toggleDateTime(false)"
1635
+ (overlayClick)="toggleActionSheet(false)"
1664
1636
  (collapse)="handleActionSheetCollapse()"
1665
1637
  [titleId]="calendar?.headerId"
1638
+ [cssClass]="{
1639
+ 'k-adaptive-actionsheet': true,
1640
+ 'k-actionsheet-fullscreen': windowSize === 'small',
1641
+ 'k-actionsheet-bottom': windowSize === 'medium'
1642
+ }"
1643
+ [cssStyle]="{
1644
+ height: windowSize === 'small' ? '100vh' : '60vh'
1645
+ }"
1666
1646
  >
1667
1647
  <ng-template kendoActionSheetTemplate>
1668
1648
  <div class="k-actionsheet-titlebar">
1669
- <div class="k-actionsheet-titlebar-group k-hbox">
1649
+ <div class="k-actionsheet-titlebar-group">
1670
1650
  <div class="k-actionsheet-title">
1671
- <div class="k-text-center">{{ title }}</div>
1672
- <div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
1651
+ <div class="k-text-center" *ngIf="adaptiveTitle">{{ adaptiveTitle }}</div>
1652
+ <div class="k-actionsheet-subtitle k-text-center" *ngIf="adaptiveSubtitle">{{ adaptiveSubtitle }}</div>
1673
1653
  </div>
1674
1654
  <div class="k-actionsheet-actions">
1675
1655
  <button
1676
1656
  kendoButton
1677
1657
  type="button"
1678
- icon="x"
1679
- [attr.title]="localization.get('clearTitle')"
1680
- [svgIcon]="xIcon"
1658
+ icon="check"
1659
+ [attr.title]="localization.get('adaptiveCloseButtonTitle')"
1660
+ [svgIcon]="checkIcon"
1681
1661
  fillMode="flat"
1662
+ themeColor="primary"
1682
1663
  [tabIndex]="-1"
1683
1664
  aria-hidden="true"
1684
1665
  size="large"
1685
1666
  innerCssClass="k-button-icon"
1686
- (click)="toggleDateTime(false)">
1667
+ (click)="toggleActionSheet(false)">
1687
1668
  </button>
1688
1669
  </div>
1689
1670
  </div>
1690
1671
  </div>
1691
- <div class="k-actionsheet-content !k-overflow-hidden">
1672
+ <div class="k-actionsheet-content">
1692
1673
  <ng-container *ngTemplateOutlet="dateTimeTemplate"></ng-container>
1693
1674
  </div>
1694
1675
  <div class="k-actions k-actions-stretched k-actions-horizontal k-actionsheet-footer">
@@ -1741,10 +1722,10 @@ export class DateTimePickerComponent extends MultiTabStop {
1741
1722
  [scope]="this"
1742
1723
  >
1743
1724
  <div class="k-button-group k-button-group-solid k-button-group-stretched" role="group">
1744
- <button
1725
+ <button kendoButton
1745
1726
  type="button"
1746
- class="k-button k-group-start"
1747
- [ngClass]="popupButtonsClasses()"
1727
+ class="k-group-start"
1728
+ [size]="isAdaptive ? 'large' : size"
1748
1729
  [class.k-selected]="activeTab === 'date'"
1749
1730
  [attr.aria-pressed]="activeTab === 'date' ? 'true' : 'false'"
1750
1731
  [attr.title]="localization.get('dateTabLabel')"
@@ -1757,10 +1738,10 @@ export class DateTimePickerComponent extends MultiTabStop {
1757
1738
  >
1758
1739
  {{localization.get('dateTab')}}
1759
1740
  </button>
1760
- <button
1741
+ <button kendoButton
1761
1742
  type="button"
1762
- class="k-button k-group-end"
1763
- [ngClass]="popupButtonsClasses()"
1743
+ class="k-group-end"
1744
+ [size]="isAdaptive ? 'large' : size"
1764
1745
  [class.k-selected]="activeTab === 'time'"
1765
1746
  [attr.aria-pressed]="activeTab === 'time' ? 'true' : 'false'"
1766
1747
  [attr.title]="localization.get('timeTabLabel')"
@@ -1770,7 +1751,6 @@ export class DateTimePickerComponent extends MultiTabStop {
1770
1751
  'keydown.tab': handleTab
1771
1752
  }"
1772
1753
  [scope]="this"
1773
-
1774
1754
  >
1775
1755
  {{localization.get('timeTab')}}
1776
1756
  </button>
@@ -1864,10 +1844,10 @@ export class DateTimePickerComponent extends MultiTabStop {
1864
1844
  }"
1865
1845
  [scope]="this"
1866
1846
  >
1867
- <button
1847
+ <button kendoButton
1868
1848
  type="button"
1869
- class="k-button k-time-accept"
1870
- [ngClass]="popupButtonsClasses('primary')"
1849
+ class="k-time-accept"
1850
+ themeColor="primary"
1871
1851
  [attr.title]="localization.get('acceptLabel')"
1872
1852
  [attr.aria-label]="localization.get('acceptLabel')"
1873
1853
  [disabled]="!calendarValue"
@@ -1881,11 +1861,10 @@ export class DateTimePickerComponent extends MultiTabStop {
1881
1861
  {{localization.get('accept')}}
1882
1862
  </button>
1883
1863
 
1884
- <button
1864
+ <button kendoButton
1885
1865
  *ngIf="cancelButton"
1886
1866
  type="button"
1887
- class="k-button k-time-cancel"
1888
- [ngClass]="popupButtonsClasses()"
1867
+ class="k-time-cancel"
1889
1868
  [attr.title]="localization.get('cancelLabel')"
1890
1869
  [attr.aria-label]="localization.get('cancelLabel')"
1891
1870
  [kendoEventsOutsideAngular]="{
@@ -1900,7 +1879,7 @@ export class DateTimePickerComponent extends MultiTabStop {
1900
1879
  </div>
1901
1880
  </div>
1902
1881
  </ng-template>
1903
- `, 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 });
1882
+ `, 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: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "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 });
1904
1883
  }
1905
1884
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
1906
1885
  type: Component,
@@ -1984,6 +1963,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1984
1963
 
1985
1964
  i18n-clearTitle="kendo.datetimepicker.clearTitle|The title of the clear button"
1986
1965
  clearTitle="clear"
1966
+
1967
+ i18n-adaptiveCloseButtonTitle="kendo.datetimepicker.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
1968
+ adaptiveCloseButtonTitle="Close"
1987
1969
  >
1988
1970
  </ng-container>
1989
1971
 
@@ -2011,7 +1993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2011
1993
  [steps]="steps"
2012
1994
  [tabindex]="tabindex"
2013
1995
  [isRequired]="isControlRequired"
2014
- [title]="title"
1996
+ [title]="adaptiveTitle"
2015
1997
  pickerType="datetimepicker"
2016
1998
  hasPopup="dialog"
2017
1999
  [inputAttributes]="inputAttributes"
@@ -2071,35 +2053,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2071
2053
 
2072
2054
  <kendo-actionsheet
2073
2055
  #actionSheet
2074
- (overlayClick)="toggleDateTime(false)"
2056
+ (overlayClick)="toggleActionSheet(false)"
2075
2057
  (collapse)="handleActionSheetCollapse()"
2076
2058
  [titleId]="calendar?.headerId"
2059
+ [cssClass]="{
2060
+ 'k-adaptive-actionsheet': true,
2061
+ 'k-actionsheet-fullscreen': windowSize === 'small',
2062
+ 'k-actionsheet-bottom': windowSize === 'medium'
2063
+ }"
2064
+ [cssStyle]="{
2065
+ height: windowSize === 'small' ? '100vh' : '60vh'
2066
+ }"
2077
2067
  >
2078
2068
  <ng-template kendoActionSheetTemplate>
2079
2069
  <div class="k-actionsheet-titlebar">
2080
- <div class="k-actionsheet-titlebar-group k-hbox">
2070
+ <div class="k-actionsheet-titlebar-group">
2081
2071
  <div class="k-actionsheet-title">
2082
- <div class="k-text-center">{{ title }}</div>
2083
- <div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
2072
+ <div class="k-text-center" *ngIf="adaptiveTitle">{{ adaptiveTitle }}</div>
2073
+ <div class="k-actionsheet-subtitle k-text-center" *ngIf="adaptiveSubtitle">{{ adaptiveSubtitle }}</div>
2084
2074
  </div>
2085
2075
  <div class="k-actionsheet-actions">
2086
2076
  <button
2087
2077
  kendoButton
2088
2078
  type="button"
2089
- icon="x"
2090
- [attr.title]="localization.get('clearTitle')"
2091
- [svgIcon]="xIcon"
2079
+ icon="check"
2080
+ [attr.title]="localization.get('adaptiveCloseButtonTitle')"
2081
+ [svgIcon]="checkIcon"
2092
2082
  fillMode="flat"
2083
+ themeColor="primary"
2093
2084
  [tabIndex]="-1"
2094
2085
  aria-hidden="true"
2095
2086
  size="large"
2096
2087
  innerCssClass="k-button-icon"
2097
- (click)="toggleDateTime(false)">
2088
+ (click)="toggleActionSheet(false)">
2098
2089
  </button>
2099
2090
  </div>
2100
2091
  </div>
2101
2092
  </div>
2102
- <div class="k-actionsheet-content !k-overflow-hidden">
2093
+ <div class="k-actionsheet-content">
2103
2094
  <ng-container *ngTemplateOutlet="dateTimeTemplate"></ng-container>
2104
2095
  </div>
2105
2096
  <div class="k-actions k-actions-stretched k-actions-horizontal k-actionsheet-footer">
@@ -2152,10 +2143,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2152
2143
  [scope]="this"
2153
2144
  >
2154
2145
  <div class="k-button-group k-button-group-solid k-button-group-stretched" role="group">
2155
- <button
2146
+ <button kendoButton
2156
2147
  type="button"
2157
- class="k-button k-group-start"
2158
- [ngClass]="popupButtonsClasses()"
2148
+ class="k-group-start"
2149
+ [size]="isAdaptive ? 'large' : size"
2159
2150
  [class.k-selected]="activeTab === 'date'"
2160
2151
  [attr.aria-pressed]="activeTab === 'date' ? 'true' : 'false'"
2161
2152
  [attr.title]="localization.get('dateTabLabel')"
@@ -2168,10 +2159,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2168
2159
  >
2169
2160
  {{localization.get('dateTab')}}
2170
2161
  </button>
2171
- <button
2162
+ <button kendoButton
2172
2163
  type="button"
2173
- class="k-button k-group-end"
2174
- [ngClass]="popupButtonsClasses()"
2164
+ class="k-group-end"
2165
+ [size]="isAdaptive ? 'large' : size"
2175
2166
  [class.k-selected]="activeTab === 'time'"
2176
2167
  [attr.aria-pressed]="activeTab === 'time' ? 'true' : 'false'"
2177
2168
  [attr.title]="localization.get('timeTabLabel')"
@@ -2181,7 +2172,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2181
2172
  'keydown.tab': handleTab
2182
2173
  }"
2183
2174
  [scope]="this"
2184
-
2185
2175
  >
2186
2176
  {{localization.get('timeTab')}}
2187
2177
  </button>
@@ -2275,10 +2265,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2275
2265
  }"
2276
2266
  [scope]="this"
2277
2267
  >
2278
- <button
2268
+ <button kendoButton
2279
2269
  type="button"
2280
- class="k-button k-time-accept"
2281
- [ngClass]="popupButtonsClasses('primary')"
2270
+ class="k-time-accept"
2271
+ themeColor="primary"
2282
2272
  [attr.title]="localization.get('acceptLabel')"
2283
2273
  [attr.aria-label]="localization.get('acceptLabel')"
2284
2274
  [disabled]="!calendarValue"
@@ -2292,11 +2282,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2292
2282
  {{localization.get('accept')}}
2293
2283
  </button>
2294
2284
 
2295
- <button
2285
+ <button kendoButton
2296
2286
  *ngIf="cancelButton"
2297
2287
  type="button"
2298
- class="k-button k-time-cancel"
2299
- [ngClass]="popupButtonsClasses()"
2288
+ class="k-time-cancel"
2300
2289
  [attr.title]="localization.get('cancelLabel')"
2301
2290
  [attr.aria-label]="localization.get('cancelLabel')"
2302
2291
  [kendoEventsOutsideAngular]="{
@@ -2345,9 +2334,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2345
2334
  type: Input
2346
2335
  }], popupSettings: [{
2347
2336
  type: Input
2348
- }], title: [{
2337
+ }], adaptiveTitle: [{
2349
2338
  type: Input
2350
- }], subtitle: [{
2339
+ }], adaptiveSubtitle: [{
2351
2340
  type: Input
2352
2341
  }], disabled: [{
2353
2342
  type: Input
@@ -93,8 +93,12 @@ export class DateTimePickerMessages extends ComponentMessages {
93
93
  * The title of the **Clear** button of the DateTimePicker.
94
94
  */
95
95
  clearTitle;
96
+ /**
97
+ * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
98
+ */
99
+ adaptiveCloseButtonTitle;
96
100
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
97
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DateTimePickerMessages, selector: "kendo-datetimepicker-messages-base", inputs: { toggle: "toggle", dateTab: "dateTab", dateTabLabel: "dateTabLabel", timeTab: "timeTab", timeTabLabel: "timeTabLabel", accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", today: "today", now: "now", nowLabel: "nowLabel", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", parentViewButtonTitle: "parentViewButtonTitle", hour: "hour", minute: "minute", second: "second", millisecond: "millisecond", dayperiod: "dayperiod", clearTitle: "clearTitle" }, usesInheritance: true, ngImport: i0 });
101
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DateTimePickerMessages, selector: "kendo-datetimepicker-messages-base", inputs: { toggle: "toggle", dateTab: "dateTab", dateTabLabel: "dateTabLabel", timeTab: "timeTab", timeTabLabel: "timeTabLabel", accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", today: "today", now: "now", nowLabel: "nowLabel", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", parentViewButtonTitle: "parentViewButtonTitle", hour: "hour", minute: "minute", second: "second", millisecond: "millisecond", dayperiod: "dayperiod", clearTitle: "clearTitle", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle" }, usesInheritance: true, ngImport: i0 });
98
102
  }
99
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerMessages, decorators: [{
100
104
  type: Directive,
@@ -144,4 +148,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
144
148
  type: Input
145
149
  }], clearTitle: [{
146
150
  type: Input
151
+ }], adaptiveCloseButtonTitle: [{
152
+ type: Input
147
153
  }] } });
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1745317422,
14
- version: '19.0.0-develop.1',
13
+ publishDate: 1746798448,
14
+ version: '19.0.0-develop.11',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -61,8 +61,12 @@ export class TimePickerMessages extends ComponentMessages {
61
61
  * The title of the **Clear** button of the TimePicker.
62
62
  */
63
63
  clearTitle;
64
+ /**
65
+ * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
66
+ */
67
+ adaptiveCloseButtonTitle;
64
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimePickerMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
65
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimePickerMessages, selector: "kendo-timepicker-messages-base", inputs: { accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", now: "now", nowLabel: "nowLabel", toggle: "toggle", hour: "hour", minute: "minute", second: "second", millisecond: "millisecond", dayperiod: "dayperiod", clearTitle: "clearTitle" }, usesInheritance: true, ngImport: i0 });
69
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimePickerMessages, selector: "kendo-timepicker-messages-base", inputs: { accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", now: "now", nowLabel: "nowLabel", toggle: "toggle", hour: "hour", minute: "minute", second: "second", millisecond: "millisecond", dayperiod: "dayperiod", clearTitle: "clearTitle", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle" }, usesInheritance: true, ngImport: i0 });
66
70
  }
67
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimePickerMessages, decorators: [{
68
72
  type: Directive,
@@ -96,4 +100,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
96
100
  type: Input
97
101
  }], clearTitle: [{
98
102
  type: Input
103
+ }], adaptiveCloseButtonTitle: [{
104
+ type: Input
99
105
  }] } });