@progress/kendo-angular-dateinputs 25.1.0-develop.2 → 25.1.0-develop.20

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.
@@ -3,8 +3,8 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Injectable, EventEmitter, Input, Directive, isDevMode, Output, Component, HostBinding, HostListener, ChangeDetectionStrategy, forwardRef, ElementRef, ViewChild, ContentChild, InjectionToken, Inject, NgZone, Optional, ViewContainerRef, ViewChildren, signal, TemplateRef, ContentChildren, NgModule } from '@angular/core';
7
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';
6
+ import { Injectable, EventEmitter, Input, Directive, isDevMode, Output, Component, HostBinding, HostListener, ChangeDetectionStrategy, signal, forwardRef, ElementRef, ViewChild, ContentChild, InjectionToken, Inject, NgZone, Optional, ViewContainerRef, ViewChildren, TemplateRef, ContentChildren, NgModule } from '@angular/core';
7
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl, TouchedChangeEvent } from '@angular/forms';
8
8
  import * as i1$1 from '@progress/kendo-angular-l10n';
9
9
  import { ComponentMessages, LocalizationService, L10N_PREFIX, RTL } from '@progress/kendo-angular-l10n';
10
10
  import { cloneDate, MS_PER_HOUR, MS_PER_MINUTE, addDays, getDate, isEqual, lastDecadeOfCentury, firstDecadeOfCentury, addCenturies, addDecades, lastYearOfDecade, firstYearOfDecade, createDate, lastMonthOfYear, lastDayOfMonth, durationInCenturies, addYears, durationInDecades, firstDayOfMonth, addMonths, addWeeks, dayOfWeek, durationInMonths, firstMonthOfYear, durationInYears, weekInYear } from '@progress/kendo-date-math';
@@ -36,8 +36,8 @@ const packageMetadata = {
36
36
  productName: 'Kendo UI for Angular',
37
37
  productCode: 'KENDOUIANGULAR',
38
38
  productCodes: ['KENDOUIANGULAR'],
39
- publishDate: 1786694181,
40
- version: '25.1.0-develop.2',
39
+ publishDate: 1787938405,
40
+ version: '25.1.0-develop.20',
41
41
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
42
42
  };
43
43
 
@@ -3581,25 +3581,56 @@ class Messages extends ComponentMessages {
3581
3581
  /**
3582
3582
  * The **Today** button text in the header of the MultiViewCalendar.
3583
3583
  */
3584
- today;
3584
+ set today(value) {
3585
+ this._today.set(value);
3586
+ }
3587
+ get today() {
3588
+ return this._today();
3589
+ }
3585
3590
  /**
3586
3591
  * The title of the **Prev** button in the header of the MultiViewCalendar.
3587
3592
  */
3588
- prevButtonTitle;
3593
+ set prevButtonTitle(value) {
3594
+ this._prevButtonTitle.set(value);
3595
+ }
3596
+ get prevButtonTitle() {
3597
+ return this._prevButtonTitle();
3598
+ }
3589
3599
  /**
3590
3600
  * The title of the **Next** button in the header of the MultiViewCalendar.
3591
3601
  */
3592
- nextButtonTitle;
3602
+ set nextButtonTitle(value) {
3603
+ this._nextButtonTitle.set(value);
3604
+ }
3605
+ get nextButtonTitle() {
3606
+ return this._nextButtonTitle();
3607
+ }
3593
3608
  /**
3594
- * The title of the **Parent View** button in the header of the MultiViewCalendar.
3609
+ * The label of the week number column in the Calendar.
3595
3610
  */
3596
- parentViewButtonTitle;
3611
+ set weekNumberLabel(value) {
3612
+ this._weekNumberLabel.set(value);
3613
+ }
3614
+ ;
3615
+ get weekNumberLabel() {
3616
+ return this._weekNumberLabel();
3617
+ }
3597
3618
  /**
3598
- * The label of the week number column in the Calendar.
3619
+ * The title of the **Parent View** button in the header of the MultiViewCalendar.
3599
3620
  */
3600
- weekNumberLabel;
3621
+ set parentViewButtonTitle(value) {
3622
+ this._parentViewButtonTitle.set(value);
3623
+ }
3624
+ get parentViewButtonTitle() {
3625
+ return this._parentViewButtonTitle();
3626
+ }
3627
+ _today = signal(undefined, ...(ngDevMode ? [{ debugName: "_today" }] : []));
3628
+ _prevButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_prevButtonTitle" }] : []));
3629
+ _nextButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_nextButtonTitle" }] : []));
3630
+ _parentViewButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_parentViewButtonTitle" }] : []));
3631
+ _weekNumberLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_weekNumberLabel" }] : []));
3601
3632
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3602
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, selector: "kendo-multiview-calendar-messages-base", inputs: { today: "today", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", parentViewButtonTitle: "parentViewButtonTitle", weekNumberLabel: "weekNumberLabel" }, usesInheritance: true, ngImport: i0 });
3633
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, selector: "kendo-multiview-calendar-messages-base", inputs: { today: "today", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", weekNumberLabel: "weekNumberLabel", parentViewButtonTitle: "parentViewButtonTitle" }, usesInheritance: true, ngImport: i0 });
3603
3634
  }
3604
3635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, decorators: [{
3605
3636
  type: Directive,
@@ -3612,10 +3643,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
3612
3643
  type: Input
3613
3644
  }], nextButtonTitle: [{
3614
3645
  type: Input
3615
- }], parentViewButtonTitle: [{
3616
- type: Input
3617
3646
  }], weekNumberLabel: [{
3618
3647
  type: Input
3648
+ }], parentViewButtonTitle: [{
3649
+ type: Input
3619
3650
  }] } });
3620
3651
 
3621
3652
  /**
@@ -6759,25 +6790,57 @@ class CalendarMessages extends ComponentMessages {
6759
6790
  /**
6760
6791
  * The **Today** button text in the header of the Calendar.
6761
6792
  */
6762
- today;
6793
+ set today(value) {
6794
+ this._today.set(value);
6795
+ }
6796
+ get today() {
6797
+ return this._today();
6798
+ }
6763
6799
  /**
6764
6800
  * The title of the **Prev** button in the header of the Classic Calendar.
6765
6801
  */
6766
- prevButtonTitle;
6802
+ set prevButtonTitle(value) {
6803
+ this._prevButtonTitle.set(value);
6804
+ }
6805
+ get prevButtonTitle() {
6806
+ return this._prevButtonTitle();
6807
+ }
6767
6808
  /**
6768
6809
  * The title of the **Next** button in the header of the Classic Calendar.
6769
6810
  */
6770
- nextButtonTitle;
6811
+ set nextButtonTitle(value) {
6812
+ this._nextButtonTitle.set(value);
6813
+ }
6814
+ ;
6815
+ get nextButtonTitle() {
6816
+ return this._nextButtonTitle();
6817
+ }
6771
6818
  /**
6772
- * The title of the **Parent View** button in the header of the Calendar.
6819
+ * The label of the week number column in the Calendar.
6773
6820
  */
6774
- parentViewButtonTitle;
6821
+ set weekNumberLabel(value) {
6822
+ this._weekNumberLabel.set(value);
6823
+ }
6824
+ ;
6825
+ get weekNumberLabel() {
6826
+ return this._weekNumberLabel();
6827
+ }
6775
6828
  /**
6776
- * The label of the week number column in the Calendar.
6829
+ * The title of the **Parent View** button in the header of the Calendar.
6777
6830
  */
6778
- weekNumberLabel;
6831
+ set parentViewButtonTitle(value) {
6832
+ this._parentViewButtonTitle.set(value);
6833
+ }
6834
+ get parentViewButtonTitle() {
6835
+ return this._parentViewButtonTitle();
6836
+ }
6837
+ _today = signal(undefined, ...(ngDevMode ? [{ debugName: "_today" }] : []));
6838
+ _prevButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_prevButtonTitle" }] : []));
6839
+ _nextButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_nextButtonTitle" }] : []));
6840
+ _parentViewButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_parentViewButtonTitle" }] : []));
6841
+ _weekNumberLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_weekNumberLabel" }] : []));
6779
6842
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CalendarMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
6780
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: CalendarMessages, isStandalone: true, selector: "kendo-calendar-messages-base", inputs: { today: "today", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", parentViewButtonTitle: "parentViewButtonTitle", weekNumberLabel: "weekNumberLabel" }, usesInheritance: true, ngImport: i0 });
6843
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: CalendarMessages, isStandalone: true, selector: "kendo-calendar-messages-base", inputs: { today: "today", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", weekNumberLabel: "weekNumberLabel", parentViewButtonTitle: "parentViewButtonTitle" }, usesInheritance: true, ngImport: i0 });
6781
6844
  }
6782
6845
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CalendarMessages, decorators: [{
6783
6846
  type: Directive,
@@ -6790,10 +6853,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
6790
6853
  type: Input
6791
6854
  }], nextButtonTitle: [{
6792
6855
  type: Input
6793
- }], parentViewButtonTitle: [{
6794
- type: Input
6795
6856
  }], weekNumberLabel: [{
6796
6857
  type: Input
6858
+ }], parentViewButtonTitle: [{
6859
+ type: Input
6797
6860
  }] } });
6798
6861
 
6799
6862
  /**
@@ -6884,19 +6947,23 @@ class CalendarComponent {
6884
6947
  * Shows days that fall outside the current month and the default values per Calendar type are false for infinite and true for classic ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/view-options#displaying-other-month-days)).
6885
6948
  */
6886
6949
  set showOtherMonthDays(_showOtherMonthDays) {
6887
- this._showOtherMonthDays = _showOtherMonthDays;
6950
+ this._showOtherMonthDays.set(_showOtherMonthDays);
6888
6951
  }
6889
6952
  get showOtherMonthDays() {
6890
- if (this._showOtherMonthDays === undefined) {
6953
+ if (this._showOtherMonthDays() === undefined) {
6891
6954
  return this.type === 'classic';
6892
6955
  }
6893
- return this._showOtherMonthDays;
6956
+ return this._showOtherMonthDays();
6894
6957
  }
6895
- _showOtherMonthDays;
6896
6958
  /**
6897
6959
  * @hidden
6898
6960
  */
6899
- id;
6961
+ set id(id) {
6962
+ this._id.set(id);
6963
+ }
6964
+ get id() {
6965
+ return this._id();
6966
+ }
6900
6967
  /**
6901
6968
  * @hidden
6902
6969
  */
@@ -6910,25 +6977,25 @@ class CalendarComponent {
6910
6977
  * If the Calendar is outside the `min` or `max` range, the component normalizes the defined `focusedDate`.
6911
6978
  */
6912
6979
  set focusedDate(focusedDate) {
6913
- if (this.activeViewDate && !isEqual(this._focusedDate, focusedDate)) {
6980
+ if (this.activeViewDate() && !isEqual(this._focusedDate(), focusedDate)) {
6914
6981
  const service = this.bus.service(this.activeViewEnum);
6915
- const lastDayInPeriod = service.lastDayOfPeriod(this.activeViewDate);
6916
- const isFocusedDateInRange = service.isInRange(focusedDate, this.activeViewDate, lastDayInPeriod);
6982
+ const lastDayInPeriod = service.lastDayOfPeriod(this.activeViewDate());
6983
+ const isFocusedDateInRange = service.isInRange(focusedDate, this.activeViewDate(), lastDayInPeriod);
6917
6984
  if (!isFocusedDateInRange) {
6918
6985
  this.emitNavigate(focusedDate);
6919
6986
  }
6920
6987
  }
6921
- this._focusedDate = focusedDate || getToday();
6988
+ this._focusedDate.set(focusedDate || getToday());
6922
6989
  this.setAriaActivedescendant();
6923
6990
  }
6924
6991
  get focusedDate() {
6925
- if (this._focusedDate > this.max) {
6992
+ if (this._focusedDate() > this.max) {
6926
6993
  return this.max;
6927
6994
  }
6928
- if (this._focusedDate < this.min) {
6995
+ if (this._focusedDate() < this.min) {
6929
6996
  return this.min;
6930
6997
  }
6931
- return this._focusedDate;
6998
+ return this._focusedDate();
6932
6999
  }
6933
7000
  /**
6934
7001
  * @hidden
@@ -6943,10 +7010,10 @@ class CalendarComponent {
6943
7010
  * @default 1900-1-1
6944
7011
  */
6945
7012
  set min(min) {
6946
- this._min = min || new Date(MIN_DATE);
7013
+ this._min.set(min || new Date(MIN_DATE));
6947
7014
  }
6948
7015
  get min() {
6949
- return this._min;
7016
+ return this._min();
6950
7017
  }
6951
7018
  /**
6952
7019
  * Specifies the maximum allowed date value
@@ -6955,49 +7022,68 @@ class CalendarComponent {
6955
7022
  * @default 2099-12-31
6956
7023
  */
6957
7024
  set max(max) {
6958
- this._max = max || new Date(MAX_DATE);
7025
+ this._max.set(max || new Date(MAX_DATE));
6959
7026
  }
6960
7027
  get max() {
6961
- return this._max;
7028
+ return this._max();
6962
7029
  }
6963
7030
  /**
6964
7031
  * Determines whether the built-in `min` or `max` validators are enforced when validating a form.
6965
7032
  *
6966
7033
  * @default false
6967
7034
  */
6968
- rangeValidation = false;
7035
+ set rangeValidation(value) {
7036
+ this._rangeValidation.set(value);
7037
+ }
7038
+ get rangeValidation() {
7039
+ return this._rangeValidation();
7040
+ }
6969
7041
  /**
6970
7042
  * Specifies the format of the displayed week day names.
6971
7043
  *
6972
7044
  * @default 'short'
6973
7045
  */
6974
- weekDaysFormat = "short";
7046
+ set weekDaysFormat(value) {
7047
+ this._weekDaysFormat.set(value);
7048
+ }
7049
+ get weekDaysFormat() {
7050
+ return this._weekDaysFormat();
7051
+ }
6975
7052
  /**
6976
7053
  * Toggles the visibility of the footer.
6977
7054
  *
6978
7055
  * @default false
6979
7056
  */
6980
- footer = false;
7057
+ set footer(value) {
7058
+ this._footer.set(value);
7059
+ }
7060
+ get footer() {
7061
+ return this._footer();
7062
+ }
6981
7063
  /**
6982
7064
  * Sets the Calendar selection mode
6983
7065
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/selection-modes)).
6984
7066
  * @default 'single'
6985
7067
  */
6986
7068
  set selection(_selection) {
6987
- this._selection = _selection;
7069
+ this._selection.set(_selection);
6988
7070
  this.selectionSetter = true;
6989
7071
  }
6990
7072
  get selection() {
6991
- return this._selection;
7073
+ return this._selection();
6992
7074
  }
6993
- _selection = 'single';
6994
7075
  /**
6995
7076
  * Allows reverse selection when using `range` selection.
6996
7077
  * If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
6997
7078
  *
6998
7079
  * @default false
6999
7080
  */
7000
- allowReverse = false;
7081
+ set allowReverse(value) {
7082
+ this._allowReverse.set(value);
7083
+ }
7084
+ get allowReverse() {
7085
+ return this._allowReverse();
7086
+ }
7001
7087
  /**
7002
7088
  * Sets or gets the `value` property of the Calendar and defines the selected value of the component.
7003
7089
  *
@@ -7005,10 +7091,10 @@ class CalendarComponent {
7005
7091
  */
7006
7092
  set value(candidate) {
7007
7093
  this.valueSetter = true;
7008
- this._value = candidate;
7094
+ this._value.set(candidate);
7009
7095
  }
7010
7096
  get value() {
7011
- return this._value;
7097
+ return this._value();
7012
7098
  }
7013
7099
  /**
7014
7100
  * Sets or gets the `disabled` property of the Calendar and
@@ -7016,7 +7102,12 @@ class CalendarComponent {
7016
7102
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/disabled-state)).
7017
7103
  * To learn how to disable the component in reactive forms, refer to the article on [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/forms#managing-the-calendar-disabled-state-in-reactive-forms).
7018
7104
  */
7019
- disabled = false;
7105
+ set disabled(value) {
7106
+ this._disabled.set(value);
7107
+ }
7108
+ get disabled() {
7109
+ return this._disabled();
7110
+ }
7020
7111
  /**
7021
7112
  * Specifies the `tabindex` property of the Calendar. Based on the
7022
7113
  * [HTML `tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) behavior,
@@ -7024,15 +7115,20 @@ class CalendarComponent {
7024
7115
  *
7025
7116
  * @default 0
7026
7117
  */
7027
- tabindex = 0;
7118
+ set tabindex(value) {
7119
+ this._tabindex.set(value);
7120
+ }
7121
+ get tabindex() {
7122
+ return this._tabindex();
7123
+ }
7028
7124
  /**
7029
7125
  * @hidden
7030
7126
  */
7031
7127
  set tabIndex(tabIndex) {
7032
- this.tabindex = tabIndex;
7128
+ this._tabindex.set(tabIndex);
7033
7129
  }
7034
7130
  get tabIndex() {
7035
- return this.tabindex;
7131
+ return this._tabindex();
7036
7132
  }
7037
7133
  /**
7038
7134
  * Specifies the dates of the Calendar that will be disabled
@@ -7040,10 +7136,10 @@ class CalendarComponent {
7040
7136
  */
7041
7137
  set disabledDates(value) {
7042
7138
  this.disabledDatesService.initialize(value);
7043
- this._disabledDates = value;
7139
+ this._disabledDates.set(value);
7044
7140
  }
7045
7141
  get disabledDates() {
7046
- return this._disabledDates;
7142
+ return this._disabledDates();
7047
7143
  }
7048
7144
  /**
7049
7145
  * Determines whether the navigation side-bar will be displayed
@@ -7052,7 +7148,12 @@ class CalendarComponent {
7052
7148
  *
7053
7149
  * @default true
7054
7150
  */
7055
- navigation = true;
7151
+ set navigation(value) {
7152
+ this._navigation.set(value);
7153
+ }
7154
+ get navigation() {
7155
+ return this._navigation();
7156
+ }
7056
7157
  /**
7057
7158
  * Defines the active view that the Calendar initially renders
7058
7159
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/view-options)).
@@ -7060,21 +7161,36 @@ class CalendarComponent {
7060
7161
  *
7061
7162
  * @default 'month'
7062
7163
  */
7063
- activeView = CalendarViewEnum[CalendarViewEnum.month];
7164
+ set activeView(value) {
7165
+ this._activeView.set(value);
7166
+ }
7167
+ get activeView() {
7168
+ return this._activeView();
7169
+ }
7064
7170
  /**
7065
7171
  * Defines the bottommost view to which the user can navigate
7066
7172
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/view-depth)).
7067
7173
  *
7068
7174
  * @default 'month'
7069
7175
  */
7070
- bottomView = CalendarViewEnum[CalendarViewEnum.month];
7176
+ set bottomView(value) {
7177
+ this._bottomView.set(value);
7178
+ }
7179
+ get bottomView() {
7180
+ return this._bottomView();
7181
+ }
7071
7182
  /**
7072
7183
  * Defines the topmost view to which the user can navigate
7073
7184
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/view-depth)).
7074
7185
  *
7075
7186
  * @default 'century'
7076
7187
  */
7077
- topView = CalendarViewEnum[CalendarViewEnum.century];
7188
+ set topView(value) {
7189
+ this._topView.set(value);
7190
+ }
7191
+ get topView() {
7192
+ return this._topView();
7193
+ }
7078
7194
  /**
7079
7195
  * Specifies the Calendar type.
7080
7196
  *
@@ -7085,10 +7201,10 @@ class CalendarComponent {
7085
7201
  if (type === 'infinite') {
7086
7202
  this.renderer.addClass(this.element.nativeElement, `k-calendar-${type}`);
7087
7203
  }
7088
- this._type = type;
7204
+ this._type.set(type);
7089
7205
  }
7090
7206
  get type() {
7091
- return this._type;
7207
+ return this._type();
7092
7208
  }
7093
7209
  /**
7094
7210
  * Determines whether to enable animation when navigating to previous/next view.
@@ -7098,14 +7214,24 @@ class CalendarComponent {
7098
7214
  *
7099
7215
  * @default false
7100
7216
  */
7101
- animateNavigation = false;
7217
+ set animateNavigation(value) {
7218
+ this._animateNavigation.set(value);
7219
+ }
7220
+ get animateNavigation() {
7221
+ return this._animateNavigation();
7222
+ }
7102
7223
  /**
7103
7224
  * Determines whether to display a week number column in the `month` view
7104
7225
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/week-num-column)).
7105
7226
  *
7106
7227
  * @default false
7107
7228
  */
7108
- weekNumber = false;
7229
+ set weekNumber(value) {
7230
+ this._weekNumber.set(value);
7231
+ }
7232
+ get weekNumber() {
7233
+ return this._weekNumber();
7234
+ }
7109
7235
  /**
7110
7236
  * @hidden
7111
7237
  */
@@ -7161,10 +7287,10 @@ class CalendarComponent {
7161
7287
  * Takes precedence over nested templates in the KendoCalendar tag.
7162
7288
  */
7163
7289
  set cellTemplateRef(template) {
7164
- this._cellTemplateRef = template;
7290
+ this._cellTemplateRef.set(template);
7165
7291
  }
7166
7292
  get cellTemplateRef() {
7167
- return this._cellTemplateRef || this.cellTemplate;
7293
+ return this._cellTemplateRef() || this.cellTemplate;
7168
7294
  }
7169
7295
  /**
7170
7296
  * @hidden
@@ -7180,10 +7306,10 @@ class CalendarComponent {
7180
7306
  * Takes precedence over nested templates in the KendoCalendar tag.
7181
7307
  */
7182
7308
  set monthCellTemplateRef(template) {
7183
- this._monthCellTemplateRef = template;
7309
+ this._monthCellTemplateRef.set(template);
7184
7310
  }
7185
7311
  get monthCellTemplateRef() {
7186
- return this._monthCellTemplateRef || this.monthCellTemplate;
7312
+ return this._monthCellTemplateRef() || this.monthCellTemplate;
7187
7313
  }
7188
7314
  /**
7189
7315
  * @hidden
@@ -7199,10 +7325,10 @@ class CalendarComponent {
7199
7325
  * Takes precedence over nested templates in the KendoCalendar tag.
7200
7326
  */
7201
7327
  set yearCellTemplateRef(template) {
7202
- this._yearCellTemplateRef = template;
7328
+ this._yearCellTemplateRef.set(template);
7203
7329
  }
7204
7330
  get yearCellTemplateRef() {
7205
- return this._yearCellTemplateRef || this.yearCellTemplate;
7331
+ return this._yearCellTemplateRef() || this.yearCellTemplate;
7206
7332
  }
7207
7333
  /**
7208
7334
  * @hidden
@@ -7218,10 +7344,10 @@ class CalendarComponent {
7218
7344
  * Takes precedence over nested templates in the KendoCalendar tag.
7219
7345
  */
7220
7346
  set decadeCellTemplateRef(template) {
7221
- this._decadeCellTemplateRef = template;
7347
+ this._decadeCellTemplateRef.set(template);
7222
7348
  }
7223
7349
  get decadeCellTemplateRef() {
7224
- return this._decadeCellTemplateRef || this.decadeCellTemplate;
7350
+ return this._decadeCellTemplateRef() || this.decadeCellTemplate;
7225
7351
  }
7226
7352
  /**
7227
7353
  * @hidden
@@ -7237,10 +7363,10 @@ class CalendarComponent {
7237
7363
  * Takes precedence over nested templates in the KendoCalendar tag.
7238
7364
  */
7239
7365
  set centuryCellTemplateRef(template) {
7240
- this._centuryCellTemplateRef = template;
7366
+ this._centuryCellTemplateRef.set(template);
7241
7367
  }
7242
7368
  get centuryCellTemplateRef() {
7243
- return this._centuryCellTemplateRef || this.centuryCellTemplate;
7369
+ return this._centuryCellTemplateRef() || this.centuryCellTemplate;
7244
7370
  }
7245
7371
  /**
7246
7372
  * @hidden
@@ -7256,10 +7382,10 @@ class CalendarComponent {
7256
7382
  * Takes precedence over nested templates in the KendoCalendar tag.
7257
7383
  */
7258
7384
  set weekNumberTemplateRef(template) {
7259
- this._weekNumberTemplateRef = template;
7385
+ this._weekNumberTemplateRef.set(template);
7260
7386
  }
7261
7387
  get weekNumberTemplateRef() {
7262
- return this._weekNumberTemplateRef || this.weekNumberTemplate;
7388
+ return this._weekNumberTemplateRef() || this.weekNumberTemplate;
7263
7389
  }
7264
7390
  /**
7265
7391
  * @hidden
@@ -7289,10 +7415,10 @@ class CalendarComponent {
7289
7415
  * Takes precedence over nested templates in the KendoCalendar tag.
7290
7416
  */
7291
7417
  set headerTitleTemplateRef(template) {
7292
- this._headerTitleTemplateRef = template;
7418
+ this._headerTitleTemplateRef.set(template);
7293
7419
  }
7294
7420
  get headerTitleTemplateRef() {
7295
- return this._headerTitleTemplateRef || this.headerTitleTemplate;
7421
+ return this._headerTitleTemplateRef() || this.headerTitleTemplate;
7296
7422
  }
7297
7423
  /**
7298
7424
  * @hidden
@@ -7301,10 +7427,10 @@ class CalendarComponent {
7301
7427
  * Takes precedence over nested templates in the KendoCalendar tag.
7302
7428
  */
7303
7429
  set headerTemplateRef(template) {
7304
- this._headerTemplateRef = template;
7430
+ this._headerTemplateRef.set(template);
7305
7431
  }
7306
7432
  get headerTemplateRef() {
7307
- return this._headerTemplateRef || this.headerTemplate;
7433
+ return this._headerTemplateRef() || this.headerTemplate;
7308
7434
  }
7309
7435
  /**
7310
7436
  * @hidden
@@ -7312,10 +7438,10 @@ class CalendarComponent {
7312
7438
  * Defines the template for the footer.
7313
7439
  */
7314
7440
  set footerTemplateRef(template) {
7315
- this._footerTemplateRef = template;
7441
+ this._footerTemplateRef.set(template);
7316
7442
  }
7317
7443
  get footerTemplateRef() {
7318
- return this._footerTemplateRef || this.footerTemplate;
7444
+ return this._footerTemplateRef() || this.footerTemplate;
7319
7445
  }
7320
7446
  /**
7321
7447
  * @hidden
@@ -7331,10 +7457,10 @@ class CalendarComponent {
7331
7457
  * Takes precedence over nested templates in the KendoCalendar tag.
7332
7458
  */
7333
7459
  set navigationItemTemplateRef(template) {
7334
- this._navigationItemTemplateRef = template;
7460
+ this._navigationItemTemplateRef.set(template);
7335
7461
  }
7336
7462
  get navigationItemTemplateRef() {
7337
- return this._navigationItemTemplateRef || this.navigationItemTemplate;
7463
+ return this._navigationItemTemplateRef() || this.navigationItemTemplate;
7338
7464
  }
7339
7465
  /**
7340
7466
  * @hidden
@@ -7350,12 +7476,11 @@ class CalendarComponent {
7350
7476
  * @default undefined
7351
7477
  */
7352
7478
  set size(size) {
7353
- this._size = size;
7479
+ this._size.set(size);
7354
7480
  }
7355
7481
  get size() {
7356
- return this._size;
7482
+ return this._size();
7357
7483
  }
7358
- _size = undefined;
7359
7484
  /**
7360
7485
  * Specifies which end of the defined selection range should be marked as active.
7361
7486
  * Value will be ignored if the selection range is undefined. If range selection is used then the default value is 'start'.
@@ -7363,25 +7488,28 @@ class CalendarComponent {
7363
7488
  * @default 'start'
7364
7489
  */
7365
7490
  set activeRangeEnd(_activeRangeEnd) {
7366
- this._activeRangeEnd = _activeRangeEnd;
7491
+ this._activeRangeEnd.set(_activeRangeEnd);
7367
7492
  }
7368
7493
  get activeRangeEnd() {
7369
- return this._activeRangeEnd;
7494
+ return this._activeRangeEnd();
7370
7495
  }
7371
- _activeRangeEnd = 'start';
7372
7496
  navigationView;
7373
7497
  monthView;
7374
7498
  multiViewCalendar;
7375
- isActive = false;
7499
+ get isActive() { return this._isActive(); }
7376
7500
  cellUID = guid();
7377
- selectionRange = { start: null, end: null };
7378
- selectedDates = [];
7379
- rangePivot;
7380
- _disabledDates;
7381
- _min = new Date(MIN_DATE);
7382
- _max = new Date(MAX_DATE);
7383
- _focusedDate = getToday();
7384
- _value;
7501
+ get selectionRange() { return this._selectionRange(); }
7502
+ get selectedDates() { return this._selectedDates(); }
7503
+ get rangePivot() { return this._rangePivot(); }
7504
+ _disabledDates = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledDates" }] : []));
7505
+ _min = signal(new Date(MIN_DATE), ...(ngDevMode ? [{ debugName: "_min" }] : []));
7506
+ _max = signal(new Date(MAX_DATE), ...(ngDevMode ? [{ debugName: "_max" }] : []));
7507
+ _focusedDate = signal(getToday(), ...(ngDevMode ? [{ debugName: "_focusedDate" }] : []));
7508
+ _value = signal(undefined, ...(ngDevMode ? [{ debugName: "_value" }] : []));
7509
+ _showOtherMonthDays = signal(undefined, ...(ngDevMode ? [{ debugName: "_showOtherMonthDays" }] : []));
7510
+ _selection = signal('single', ...(ngDevMode ? [{ debugName: "_selection" }] : []));
7511
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
7512
+ _activeRangeEnd = signal('start', ...(ngDevMode ? [{ debugName: "_activeRangeEnd" }] : []));
7385
7513
  onControlChange = noop$2;
7386
7514
  onControlTouched = noop$2;
7387
7515
  onValidatorChange = noop$2;
@@ -7392,17 +7520,35 @@ class CalendarComponent {
7392
7520
  selectionSetter = false;
7393
7521
  syncNavigation = true;
7394
7522
  viewChangeSubscription;
7395
- _type = 'infinite';
7396
- _cellTemplateRef;
7397
- _monthCellTemplateRef;
7398
- _yearCellTemplateRef;
7399
- _decadeCellTemplateRef;
7400
- _centuryCellTemplateRef;
7401
- _weekNumberTemplateRef;
7402
- _headerTitleTemplateRef;
7403
- _headerTemplateRef;
7404
- _footerTemplateRef;
7405
- _navigationItemTemplateRef;
7523
+ _type = signal('infinite', ...(ngDevMode ? [{ debugName: "_type" }] : []));
7524
+ _cellTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_cellTemplateRef" }] : []));
7525
+ _monthCellTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_monthCellTemplateRef" }] : []));
7526
+ _yearCellTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_yearCellTemplateRef" }] : []));
7527
+ _decadeCellTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_decadeCellTemplateRef" }] : []));
7528
+ _centuryCellTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_centuryCellTemplateRef" }] : []));
7529
+ _weekNumberTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_weekNumberTemplateRef" }] : []));
7530
+ _headerTitleTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_headerTitleTemplateRef" }] : []));
7531
+ _headerTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_headerTemplateRef" }] : []));
7532
+ _footerTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_footerTemplateRef" }] : []));
7533
+ _navigationItemTemplateRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_navigationItemTemplateRef" }] : []));
7534
+ _id = signal('', ...(ngDevMode ? [{ debugName: "_id" }] : []));
7535
+ _rangeValidation = signal(false, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
7536
+ _weekDaysFormat = signal('short', ...(ngDevMode ? [{ debugName: "_weekDaysFormat" }] : []));
7537
+ _footer = signal(false, ...(ngDevMode ? [{ debugName: "_footer" }] : []));
7538
+ _allowReverse = signal(false, ...(ngDevMode ? [{ debugName: "_allowReverse" }] : []));
7539
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
7540
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
7541
+ _navigation = signal(true, ...(ngDevMode ? [{ debugName: "_navigation" }] : []));
7542
+ _activeView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_activeView" }] : []));
7543
+ _bottomView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_bottomView" }] : []));
7544
+ _topView = signal(CalendarViewEnum[CalendarViewEnum.century], ...(ngDevMode ? [{ debugName: "_topView" }] : []));
7545
+ _animateNavigation = signal(false, ...(ngDevMode ? [{ debugName: "_animateNavigation" }] : []));
7546
+ _weekNumber = signal(false, ...(ngDevMode ? [{ debugName: "_weekNumber" }] : []));
7547
+ _isActive = signal(false, ...(ngDevMode ? [{ debugName: "_isActive" }] : []));
7548
+ _selectionRange = signal({ start: null, end: null }, ...(ngDevMode ? [{ debugName: "_selectionRange" }] : []));
7549
+ _selectedDates = signal([], ...(ngDevMode ? [{ debugName: "_selectedDates" }] : []));
7550
+ _rangePivot = signal(undefined, ...(ngDevMode ? [{ debugName: "_rangePivot" }] : []));
7551
+ activeViewDate = signal(undefined, ...(ngDevMode ? [{ debugName: "activeViewDate" }] : []));
7406
7552
  get activeViewEnum() {
7407
7553
  const activeView = CalendarViewEnum[this.activeView];
7408
7554
  return activeView < this.bottomViewEnum ? this.bottomViewEnum : activeView;
@@ -7427,7 +7573,7 @@ class CalendarComponent {
7427
7573
  resolvedPromise = Promise.resolve(null);
7428
7574
  destroyed = false;
7429
7575
  localizationChangeSubscription;
7430
- activeViewDate;
7576
+ controlEventsSubscription;
7431
7577
  currentlyFocusedElement;
7432
7578
  canHover = false;
7433
7579
  constructor(bus, dom, element, navigator, renderer, cdr, ngZone, injector, scrollSyncService, disabledDatesService, localization, selectionService, pickerService) {
@@ -7504,6 +7650,14 @@ class CalendarComponent {
7504
7650
  this.renderer.removeClass(element.nativeElement, getSizeClass('calendar', this.size));
7505
7651
  this.renderer.addClass(element.nativeElement, getSizeClass('calendar', this.size));
7506
7652
  }
7653
+ const control = this.control?.control;
7654
+ if (control && control.events) {
7655
+ this.controlEventsSubscription = control.events.subscribe(e => {
7656
+ if (e instanceof TouchedChangeEvent) {
7657
+ this.cdr.markForCheck();
7658
+ }
7659
+ });
7660
+ }
7507
7661
  }
7508
7662
  ngAfterViewChecked() {
7509
7663
  if (!this.syncNavigation) {
@@ -7527,6 +7681,9 @@ class CalendarComponent {
7527
7681
  if (this.localizationChangeSubscription) {
7528
7682
  this.localizationChangeSubscription.unsubscribe();
7529
7683
  }
7684
+ if (this.controlEventsSubscription) {
7685
+ this.controlEventsSubscription.unsubscribe();
7686
+ }
7530
7687
  this.destroyed = true;
7531
7688
  }
7532
7689
  /**
@@ -7537,18 +7694,18 @@ class CalendarComponent {
7537
7694
  this.ngZone.run(() => {
7538
7695
  if (this.allowReverse) {
7539
7696
  if (this.activeRangeEnd === 'end' && this.selectionRange.start) {
7540
- this.selectionRange = { start: this.selectionRange.start, end: date };
7697
+ this._selectionRange.set({ start: this.selectionRange.start, end: date });
7541
7698
  }
7542
7699
  if (this.activeRangeEnd === 'start' && this.selectionRange.end) {
7543
- this.selectionRange = { start: date, end: this.selectionRange.end };
7700
+ this._selectionRange.set({ start: date, end: this.selectionRange.end });
7544
7701
  }
7545
7702
  }
7546
7703
  else {
7547
7704
  if (this.activeRangeEnd === 'end' && this.selectionRange.start && date >= this.selectionRange.start) {
7548
- this.selectionRange = { start: this.selectionRange.start, end: date };
7705
+ this._selectionRange.set({ start: this.selectionRange.start, end: date });
7549
7706
  }
7550
7707
  if (this.selectionRange.start && date < this.selectionRange.start) {
7551
- this.selectionRange = { start: this.selectionRange.start, end: null };
7708
+ this._selectionRange.set({ start: this.selectionRange.start, end: null });
7552
7709
  }
7553
7710
  }
7554
7711
  });
@@ -7559,7 +7716,7 @@ class CalendarComponent {
7559
7716
  */
7560
7717
  onResize() {
7561
7718
  this.focusedDate = new Date(this.focusedDate);
7562
- this.cdr.detectChanges();
7719
+ this.detectChanges();
7563
7720
  }
7564
7721
  /**
7565
7722
  * Focuses the Calendar by making the table.k-calendar-table element active.
@@ -7650,11 +7807,10 @@ class CalendarComponent {
7650
7807
  return;
7651
7808
  }
7652
7809
  this.ngZone.run(() => {
7653
- this.selectedDates = availableDates.map(date => cloneDate(date));
7810
+ this._selectedDates.set(availableDates.map(date => cloneDate(date)));
7654
7811
  this.value = this.parseSelectionToValue(availableDates);
7655
7812
  this.onControlChange(this.parseSelectionToValue(availableDates));
7656
7813
  this.valueChange.emit(this.parseSelectionToValue(availableDates));
7657
- this.cdr.markForCheck();
7658
7814
  });
7659
7815
  }
7660
7816
  /**
@@ -7663,7 +7819,6 @@ class CalendarComponent {
7663
7819
  writeValue(candidate) {
7664
7820
  this.verifyValue(candidate);
7665
7821
  this.value = candidate;
7666
- this.cdr.markForCheck();
7667
7822
  }
7668
7823
  /**
7669
7824
  * @hidden
@@ -7681,8 +7836,7 @@ class CalendarComponent {
7681
7836
  * @hidden
7682
7837
  */
7683
7838
  setDisabledState(isDisabled) {
7684
- this.disabled = isDisabled;
7685
- this.cdr.markForCheck();
7839
+ this._disabled.set(isDisabled);
7686
7840
  }
7687
7841
  /**
7688
7842
  * @hidden
@@ -7718,7 +7872,7 @@ class CalendarComponent {
7718
7872
  */
7719
7873
  handleNavigate(event) {
7720
7874
  this.focusedDate = event.focusedDate;
7721
- this.activeView = event.activeView;
7875
+ this._activeView.set(event.activeView);
7722
7876
  this.emitNavigate(this.focusedDate);
7723
7877
  }
7724
7878
  /**
@@ -7742,14 +7896,14 @@ class CalendarComponent {
7742
7896
  * @hidden
7743
7897
  */
7744
7898
  handleActiveDateChange(date) {
7745
- this.activeViewDate = date;
7899
+ this.activeViewDate.set(date);
7746
7900
  this.emitEvent(this.activeViewDateChange, date);
7747
7901
  }
7748
7902
  /**
7749
7903
  * @hidden
7750
7904
  */
7751
7905
  handleActiveViewChange(view) {
7752
- this.activeView = view;
7906
+ this._activeView.set(view);
7753
7907
  this.emitEvent(this.activeViewChange, view);
7754
7908
  if (this.type === 'infinite') {
7755
7909
  this.scrollSyncService.configure(this.activeViewEnum);
@@ -7785,7 +7939,7 @@ class CalendarComponent {
7785
7939
  }
7786
7940
  if (this.selection === 'range') {
7787
7941
  this.canHover = false;
7788
- this.activeRangeEnd = 'start';
7942
+ this._activeRangeEnd.set('start');
7789
7943
  const shouldEmitValueChange = this.selectionRange.start?.getTime() !== dates[0].getTime() ||
7790
7944
  this.selectionRange.end?.getTime() !== last(dates).getTime();
7791
7945
  this.value = { start: dates[0], end: last(dates) };
@@ -7802,14 +7956,13 @@ class CalendarComponent {
7802
7956
  if (this.element.nativeElement.contains(args.relatedTarget)) {
7803
7957
  return;
7804
7958
  }
7805
- this.isActive = false;
7959
+ this._isActive.set(false);
7806
7960
  // the injector can get the NgControl instance of the parent component (for example, the DateTimePicker)
7807
7961
  // and enters the zone for no reason because the parent component is still untouched
7808
7962
  if (!this.pickerService && requiresZoneOnBlur(this.control)) {
7809
7963
  this.ngZone.run(() => {
7810
7964
  this.onControlTouched();
7811
7965
  this.emitBlur(args);
7812
- this.cdr.markForCheck();
7813
7966
  });
7814
7967
  }
7815
7968
  else {
@@ -7821,7 +7974,7 @@ class CalendarComponent {
7821
7974
  * @hidden
7822
7975
  */
7823
7976
  handleFocus() {
7824
- this.isActive = true;
7977
+ this._isActive.set(true);
7825
7978
  if (!NgZone.isInAngularZone()) {
7826
7979
  this.detectChanges();
7827
7980
  }
@@ -7883,8 +8036,7 @@ class CalendarComponent {
7883
8036
  setRangeSelectionToValue() {
7884
8037
  if (this.selection === 'range' && this.type === 'infinite' && this.value) {
7885
8038
  this.ngZone.run(() => {
7886
- this.selectionRange = this.value;
7887
- this.cdr.markForCheck();
8039
+ this._selectionRange.set(this.value);
7888
8040
  });
7889
8041
  }
7890
8042
  }
@@ -7954,7 +8106,7 @@ class CalendarComponent {
7954
8106
  focusToday() {
7955
8107
  this.focusedDate = getToday();
7956
8108
  this.bus.moveToBottom(this.activeViewEnum);
7957
- this.cdr.detectChanges();
8109
+ this.detectChanges();
7958
8110
  }
7959
8111
  detectChanges() {
7960
8112
  if (!this.destroyed) {
@@ -7987,44 +8139,45 @@ class CalendarComponent {
7987
8139
  setValue(candidate) {
7988
8140
  this.verifyValue(candidate);
7989
8141
  if (candidate === null) {
7990
- this._value = null;
7991
- this.selectedDates = [];
7992
- this.selectionRange = { start: null, end: null };
8142
+ this._value.set(null);
8143
+ this._selectedDates.set([]);
8144
+ this._selectionRange.set({ start: null, end: null });
7993
8145
  }
7994
8146
  else if (Array.isArray(candidate)) {
7995
- this.selectionRange = { start: null, end: null };
7996
- this._value = candidate.filter(date => isPresent(date)).map(element => cloneDate(element));
8147
+ this._selectionRange.set({ start: null, end: null });
8148
+ this._value.set(candidate.filter(date => isPresent(date)).map(element => cloneDate(element)));
7997
8149
  }
7998
8150
  else if (isObject(candidate) && Object.keys(candidate).find(k => k === 'start') && Object.keys(candidate).find(k => k === 'end')) {
7999
- this.selectedDates = [];
8000
- this.selectionRange = { start: null, end: null };
8001
- this._value = { start: null, end: null };
8002
- this._value.start = candidate.start instanceof Date ? cloneDate(candidate.start) : null;
8003
- this._value.end = candidate.end instanceof Date ? cloneDate(candidate.end) : null;
8004
- this.selectionRange = Object.assign({}, this._value);
8005
- if (this._value?.start && !this._value?.end) {
8006
- this.activeRangeEnd = 'end';
8151
+ this._selectedDates.set([]);
8152
+ this._selectionRange.set({ start: null, end: null });
8153
+ const rangeValue = { start: null, end: null };
8154
+ rangeValue.start = candidate.start instanceof Date ? cloneDate(candidate.start) : null;
8155
+ rangeValue.end = candidate.end instanceof Date ? cloneDate(candidate.end) : null;
8156
+ this._value.set(rangeValue);
8157
+ this._selectionRange.set(Object.assign({}, rangeValue));
8158
+ if (rangeValue.start && !rangeValue.end) {
8159
+ this._activeRangeEnd.set('end');
8007
8160
  this.canHover = true;
8008
8161
  }
8009
- if (this._value?.end && !this._value?.start) {
8010
- this.activeRangeEnd = 'start';
8162
+ if (rangeValue.end && !rangeValue.start) {
8163
+ this._activeRangeEnd.set('start');
8011
8164
  this.canHover = true;
8012
8165
  }
8013
- if (this._value?.end && this._value?.start) {
8166
+ if (rangeValue.end && rangeValue.start) {
8014
8167
  this.canHover = false;
8015
8168
  }
8016
8169
  }
8017
8170
  else {
8018
- this.selectionRange = { start: null, end: null };
8019
- this._value = cloneDate(candidate);
8171
+ this._selectionRange.set({ start: null, end: null });
8172
+ this._value.set(cloneDate(candidate));
8020
8173
  }
8021
8174
  if (this.selection !== 'range') {
8022
8175
  const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));
8023
8176
  if (!areDatesEqual(selection, this.selectedDates)) {
8024
8177
  const lastSelected = last(selection);
8025
- this.rangePivot = cloneDate(lastSelected);
8178
+ this._rangePivot.set(cloneDate(lastSelected));
8026
8179
  this.focusedDate = cloneDate(lastSelected) || this.focusedDate;
8027
- this.selectedDates = selection;
8180
+ this._selectedDates.set(selection);
8028
8181
  }
8029
8182
  }
8030
8183
  }
@@ -8035,9 +8188,9 @@ class CalendarComponent {
8035
8188
  (this.activeRangeEnd === 'end' && this.value?.end?.getTime() !== date?.getTime());
8036
8189
  this.ngZone.run(() => {
8037
8190
  const rangeSelection = handleRangeSelection(date, clonedRangeSelection, this.activeRangeEnd, this.allowReverse);
8038
- this.activeRangeEnd = rangeSelection.activeRangeEnd;
8191
+ this._activeRangeEnd.set(rangeSelection.activeRangeEnd);
8039
8192
  if (this.canHover && rangeSelection.activeRangeEnd === 'end' && rangeSelection.selectionRange.end?.getTime() === date.getTime()) {
8040
- this.activeRangeEnd = 'start';
8193
+ this._activeRangeEnd.set('start');
8041
8194
  rangeSelection.activeRangeEnd = 'start';
8042
8195
  }
8043
8196
  this.canHover = this.activeRangeEnd === 'end' && rangeSelection.selectionRange.start && !rangeSelection.selectionRange.end;
@@ -8046,7 +8199,6 @@ class CalendarComponent {
8046
8199
  this.value = rangeSelection.selectionRange;
8047
8200
  this.valueChange.emit(this.value);
8048
8201
  }
8049
- this.cdr.markForCheck();
8050
8202
  });
8051
8203
  }
8052
8204
  performSelection(date, selectionModifiers) {
@@ -8058,7 +8210,7 @@ class CalendarComponent {
8058
8210
  rangePivot: this.rangePivot,
8059
8211
  selectedDates: this.selectedDates
8060
8212
  });
8061
- this.rangePivot = selection.rangePivot;
8213
+ this._rangePivot.set(selection.rangePivot);
8062
8214
  this.handleDateChange({
8063
8215
  selectedDates: selection.selectedDates,
8064
8216
  focusedDate: date
@@ -8402,6 +8554,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
8402
8554
  type: Input
8403
8555
  }], weekNumber: [{
8404
8556
  type: Input
8557
+ }, {
8558
+ type: HostBinding,
8559
+ args: ['class.k-week-number']
8405
8560
  }], hostWeekNumberClass: [{
8406
8561
  type: HostBinding,
8407
8562
  args: ['class.k-week-number']
@@ -8536,15 +8691,33 @@ class DateInputMessages extends ComponentMessages {
8536
8691
  /**
8537
8692
  * The title of the **Decrement** button of the DateInput.
8538
8693
  */
8539
- decrement;
8694
+ set decrement(value) {
8695
+ this._decrement.set(value);
8696
+ }
8697
+ get decrement() {
8698
+ return this._decrement();
8699
+ }
8540
8700
  /**
8541
8701
  * The title of the **Increment** button of the DateInput.
8542
8702
  */
8543
- increment;
8703
+ set increment(value) {
8704
+ this._increment.set(value);
8705
+ }
8706
+ get increment() {
8707
+ return this._increment();
8708
+ }
8544
8709
  /**
8545
8710
  * The title of the **Clear** button of the DateInput.
8546
8711
  */
8547
- clearTitle;
8712
+ set clearTitle(value) {
8713
+ this._clearTitle.set(value);
8714
+ }
8715
+ get clearTitle() {
8716
+ return this._clearTitle();
8717
+ }
8718
+ _decrement = signal(undefined, ...(ngDevMode ? [{ debugName: "_decrement" }] : []));
8719
+ _increment = signal(undefined, ...(ngDevMode ? [{ debugName: "_increment" }] : []));
8720
+ _clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
8548
8721
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateInputMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
8549
8722
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DateInputMessages, isStandalone: true, selector: "kendo-dateinput-messages-base", inputs: { decrement: "decrement", increment: "increment", clearTitle: "clearTitle" }, usesInheritance: true, ngImport: i0 });
8550
8723
  }
@@ -8679,11 +8852,11 @@ class DateInputComponent {
8679
8852
  */
8680
8853
  set focusableId(_focusableId) {
8681
8854
  if (_focusableId) {
8682
- this._focusableId = _focusableId;
8855
+ this._focusableId.set(_focusableId);
8683
8856
  }
8684
8857
  }
8685
8858
  get focusableId() {
8686
- return this._focusableId;
8859
+ return this._focusableId();
8687
8860
  }
8688
8861
  /**
8689
8862
  * @hidden
@@ -8698,7 +8871,12 @@ class DateInputComponent {
8698
8871
  * Clicking this button resets the value of the component to `null` and triggers the `valueChange` event.
8699
8872
  * @default false
8700
8873
  */
8701
- clearButton = false;
8874
+ set clearButton(value) {
8875
+ this._clearButton.set(value);
8876
+ }
8877
+ get clearButton() {
8878
+ return this._clearButton();
8879
+ }
8702
8880
  /**
8703
8881
  * Specifies whether the component is disabled
8704
8882
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/disabled-state)).
@@ -8706,47 +8884,82 @@ class DateInputComponent {
8706
8884
  *
8707
8885
  * @default false
8708
8886
  */
8709
- disabled = false;
8887
+ set disabled(value) {
8888
+ this._disabled.set(value);
8889
+ }
8890
+ get disabled() {
8891
+ return this._disabled();
8892
+ }
8710
8893
  /**
8711
8894
  * Specifies the read-only state of the DateInput
8712
8895
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/readonly-state)).
8713
8896
  *
8714
8897
  * @default false
8715
8898
  */
8716
- readonly = false;
8899
+ set readonly(value) {
8900
+ this._readonly.set(value);
8901
+ }
8902
+ get readonly() {
8903
+ return this._readonly();
8904
+ }
8717
8905
  /**
8718
8906
  * Specifies the title of the input element of the DateInput.
8719
8907
  *
8720
8908
  * @default ""
8721
8909
  */
8722
- title = "";
8910
+ set title(value) {
8911
+ this._title.set(value);
8912
+ }
8913
+ get title() {
8914
+ return this._title();
8915
+ }
8723
8916
  /**
8724
8917
  * Specifies the `tabIndex` property of the DateInput.
8725
8918
  *
8726
8919
  * @default 0
8727
8920
  */
8728
- tabindex = 0;
8921
+ set tabindex(value) {
8922
+ this._tabindex.set(value);
8923
+ }
8924
+ get tabindex() {
8925
+ return this._tabindex();
8926
+ }
8729
8927
  /**
8730
8928
  * @hidden
8731
8929
  */
8732
- role = null;
8930
+ set role(value) {
8931
+ this._role.set(value);
8932
+ }
8933
+ get role() {
8934
+ return this._role();
8935
+ }
8733
8936
  /**
8734
8937
  * @hidden
8735
8938
  */
8736
- ariaReadOnly = false;
8939
+ set ariaReadOnly(value) {
8940
+ this._ariaReadOnly.set(value);
8941
+ }
8942
+ get ariaReadOnly() {
8943
+ return this._ariaReadOnly();
8944
+ }
8737
8945
  /**
8738
8946
  * @hidden
8739
8947
  */
8740
8948
  set tabIndex(tabIndex) {
8741
- this.tabindex = tabIndex;
8949
+ this._tabindex.set(tabIndex);
8742
8950
  }
8743
8951
  get tabIndex() {
8744
- return this.tabindex;
8952
+ return this._tabindex();
8745
8953
  }
8746
8954
  /**
8747
8955
  * @hidden
8748
8956
  */
8749
- isRequired = false;
8957
+ set isRequired(value) {
8958
+ this._isRequired.set(value);
8959
+ }
8960
+ get isRequired() {
8961
+ return this._isRequired();
8962
+ }
8750
8963
  /**
8751
8964
  * Specifies the date format that is used to display the input value
8752
8965
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/formats)).
@@ -8754,89 +8967,149 @@ class DateInputComponent {
8754
8967
  * You can provide a string if a single format is going to be used regardless whether the input is focused or blurred.
8755
8968
  * Alternatively, you can provide a FormatSettings object to display different formats when the component is focused or blurred by specifying inputFormat and displayFormat values.
8756
8969
  */
8757
- format = DEFAULT_FORMAT$1;
8970
+ set format(value) {
8971
+ this._format.set(value);
8972
+ }
8973
+ get format() {
8974
+ return this._format();
8975
+ }
8758
8976
  /**
8759
8977
  * Defines the descriptions of the format sections in the input field.
8760
8978
  * For more information, refer to the article on
8761
8979
  * [placeholders](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/placeholders).
8762
8980
  */
8763
8981
  set formatPlaceholder(format) {
8764
- this._formatPlaceholder = format || DEFAULT_FORMAT_PLACEHOLDER;
8982
+ this._formatPlaceholder.set(format || DEFAULT_FORMAT_PLACEHOLDER);
8765
8983
  }
8766
8984
  get formatPlaceholder() {
8767
- return this._formatPlaceholder;
8985
+ return this._formatPlaceholder();
8768
8986
  }
8769
8987
  /**
8770
8988
  * Specifies the hint the DateInput displays when its value is `null`.
8771
8989
  * For more information, refer to the article on
8772
8990
  * [placeholders](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/placeholders).
8773
8991
  */
8774
- placeholder;
8992
+ set placeholder(value) {
8993
+ this._placeholder.set(value);
8994
+ }
8995
+ get placeholder() {
8996
+ return this._placeholder();
8997
+ }
8775
8998
  /**
8776
8999
  * Configures the incremental steps of the DateInput.
8777
9000
  * For more information, refer to the article on
8778
9001
  * [incremental steps](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/incremental-steps).
8779
9002
  */
8780
- steps = {};
9003
+ set steps(value) {
9004
+ this._steps.set(value);
9005
+ }
9006
+ get steps() {
9007
+ return this._steps();
9008
+ }
8781
9009
  /**
8782
9010
  * Specifies the biggest date that is valid
8783
9011
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/date-ranges)).
8784
9012
  *
8785
9013
  * @default 2099-12-31
8786
9014
  */
8787
- max = cloneDate(MAX_DATE);
9015
+ set max(value) {
9016
+ this._max.set(value);
9017
+ }
9018
+ get max() {
9019
+ return this._max();
9020
+ }
8788
9021
  /**
8789
9022
  * Specifies the smallest date that is valid
8790
9023
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/date-ranges)).
8791
9024
  *
8792
9025
  * @default 1900-1-1
8793
9026
  */
8794
- min = cloneDate(MIN_DATE);
9027
+ set min(value) {
9028
+ this._min.set(value);
9029
+ }
9030
+ get min() {
9031
+ return this._min();
9032
+ }
8795
9033
  /**
8796
9034
  * Specifies whether to enforce the built-in min and max validators when validating a form.
8797
9035
  * Set to `true` to enable validation for the `min` and `max` values.
8798
9036
  *
8799
9037
  * @default true
8800
9038
  */
8801
- rangeValidation = true;
9039
+ set rangeValidation(value) {
9040
+ this._rangeValidation.set(value);
9041
+ }
9042
+ get rangeValidation() {
9043
+ return this._rangeValidation();
9044
+ }
8802
9045
  /**
8803
9046
  * Specifies if the component automatically corrects invalid date segments.
8804
9047
  * When set to `true`, the component fixes invalid segments as you type.
8805
9048
  *
8806
9049
  * @default true
8807
9050
  */
8808
- autoCorrectParts = true;
9051
+ set autoCorrectParts(value) {
9052
+ this._autoCorrectParts.set(value);
9053
+ }
9054
+ get autoCorrectParts() {
9055
+ return this._autoCorrectParts();
9056
+ }
8809
9057
  /**
8810
9058
  * Specifies if the component automatically moves to the next segment after you complete the current one.
8811
9059
  * When set to `true`, focus moves to the next segment as soon as you finish typing the current segment.
8812
9060
  *
8813
9061
  * @default true
8814
9062
  */
8815
- autoSwitchParts = true;
9063
+ set autoSwitchParts(value) {
9064
+ this._autoSwitchParts.set(value);
9065
+ }
9066
+ get autoSwitchParts() {
9067
+ return this._autoSwitchParts();
9068
+ }
8816
9069
  /**
8817
9070
  * Specifies custom keys that move focus to the next date format segment.
8818
9071
  * Provide an array of strings to define which keys trigger the focus change.
8819
9072
  */
8820
- autoSwitchKeys = [];
9073
+ set autoSwitchKeys(value) {
9074
+ this._autoSwitchKeys.set(value);
9075
+ }
9076
+ get autoSwitchKeys() {
9077
+ return this._autoSwitchKeys();
9078
+ }
8821
9079
  /**
8822
9080
  * Specifies if the component displays a blinking caret inside the DateInput when possible.
8823
9081
  * Set to `true` to show a blinking caret for better visual feedback.
8824
9082
  *
8825
9083
  * @default false
8826
9084
  */
8827
- allowCaretMode = false;
9085
+ set allowCaretMode(value) {
9086
+ this._allowCaretMode.set(value);
9087
+ }
9088
+ get allowCaretMode() {
9089
+ return this._allowCaretMode();
9090
+ }
8828
9091
  /**
8829
9092
  * Specifies whether to autofill the rest of the date to the current date when the component loses focus.
8830
9093
  *
8831
9094
  * @default false
8832
9095
  */
8833
- autoFill = false;
9096
+ set autoFill(value) {
9097
+ this._autoFill.set(value);
9098
+ }
9099
+ get autoFill() {
9100
+ return this._autoFill();
9101
+ }
8834
9102
  /**
8835
9103
  * Specifies whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
8836
9104
  *
8837
9105
  * @default false
8838
9106
  */
8839
- incompleteDateValidation = false;
9107
+ set incompleteDateValidation(value) {
9108
+ this._incompleteDateValidation.set(value);
9109
+ }
9110
+ get incompleteDateValidation() {
9111
+ return this._incompleteDateValidation();
9112
+ }
8840
9113
  /**
8841
9114
  * The maximum year to assume to be from the current century when typing two-digit year value
8842
9115
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/formats#two-digit-year-format)).
@@ -8845,13 +9118,23 @@ class DateInputComponent {
8845
9118
  * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.
8846
9119
  * @default 68
8847
9120
  */
8848
- twoDigitYearMax = TWO_DIGIT_YEAR_MAX$2;
9121
+ set twoDigitYearMax(value) {
9122
+ this._twoDigitYearMax.set(value);
9123
+ }
9124
+ get twoDigitYearMax() {
9125
+ return this._twoDigitYearMax();
9126
+ }
8849
9127
  /**
8850
9128
  * Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
8851
9129
  *
8852
9130
  * @default true
8853
9131
  */
8854
- enableMouseWheel = true;
9132
+ set enableMouseWheel(value) {
9133
+ this._enableMouseWheel.set(value);
9134
+ }
9135
+ get enableMouseWheel() {
9136
+ return this._enableMouseWheel();
9137
+ }
8855
9138
  /**
8856
9139
  * Specifies the value of the DateInput component.
8857
9140
  *
@@ -8860,11 +9143,11 @@ class DateInputComponent {
8860
9143
  set value(value) {
8861
9144
  this.verifyValue(value);
8862
9145
  this.showClearButton = value || (!value && this.isDateIncomplete) ? true : false;
8863
- this._value = cloneDate(value);
9146
+ this._value.set(cloneDate(value));
8864
9147
  this.valueUpdate.emit(cloneDate(value));
8865
9148
  }
8866
9149
  get value() {
8867
- return this._value;
9150
+ return this._value();
8868
9151
  }
8869
9152
  /**
8870
9153
  * Specifies whether the **Up** and **Down** spin buttons will be rendered.
@@ -8873,26 +9156,41 @@ class DateInputComponent {
8873
9156
  *
8874
9157
  * @default false
8875
9158
  */
8876
- spinners = false;
9159
+ set spinners(value) {
9160
+ this._spinners.set(value);
9161
+ }
9162
+ get spinners() {
9163
+ return this._spinners();
9164
+ }
8877
9165
  /**
8878
9166
  * @hidden
8879
9167
  */
8880
- isPopupOpen;
9168
+ set isPopupOpen(value) {
9169
+ this._isPopupOpen.set(value);
9170
+ }
9171
+ get isPopupOpen() {
9172
+ return this._isPopupOpen();
9173
+ }
8881
9174
  /**
8882
9175
  * @hidden
8883
9176
  */
8884
- hasPopup;
9177
+ set hasPopup(value) {
9178
+ this._hasPopup.set(value);
9179
+ }
9180
+ get hasPopup() {
9181
+ return this._hasPopup();
9182
+ }
8885
9183
  /**
8886
9184
  * @hidden
8887
9185
  */
8888
9186
  set ariaInvalidState(value) {
8889
- this._ariaInvalidState = value;
9187
+ this._ariaInvalidState.set(value);
8890
9188
  if (value !== null && this.inputElement) {
8891
9189
  this.setAriaInvalid();
8892
9190
  }
8893
9191
  }
8894
9192
  get ariaInvalidState() {
8895
- return this._ariaInvalidState;
9193
+ return this._ariaInvalidState();
8896
9194
  }
8897
9195
  /**
8898
9196
  * Specifies the size of the component. The default value is set by the Kendo theme.
@@ -8903,10 +9201,10 @@ class DateInputComponent {
8903
9201
  if (size) {
8904
9202
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
8905
9203
  }
8906
- this._size = size;
9204
+ this._size.set(size);
8907
9205
  }
8908
9206
  get size() {
8909
- return this._size;
9207
+ return this._size();
8910
9208
  }
8911
9209
  /**
8912
9210
  * Specifies the border radius of the component. The default value is set by the Kendo theme.
@@ -8916,10 +9214,10 @@ class DateInputComponent {
8916
9214
  if (rounded) {
8917
9215
  this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
8918
9216
  }
8919
- this._rounded = rounded;
9217
+ this._rounded.set(rounded);
8920
9218
  }
8921
9219
  get rounded() {
8922
- return this._rounded;
9220
+ return this._rounded();
8923
9221
  }
8924
9222
  /**
8925
9223
  * Specifies the fillMode of the component. The default value is set by the Kendo theme.
@@ -8933,10 +9231,10 @@ class DateInputComponent {
8933
9231
  this.setSpinnerFill(this.spindown.nativeElement, fillMode, this.fillMode);
8934
9232
  }
8935
9233
  }
8936
- this._fillMode = fillMode;
9234
+ this._fillMode.set(fillMode);
8937
9235
  }
8938
9236
  get fillMode() {
8939
- return this._fillMode;
9237
+ return this._fillMode();
8940
9238
  }
8941
9239
  /**
8942
9240
  * Specifies the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
@@ -8948,14 +9246,14 @@ class DateInputComponent {
8948
9246
  if (isObjectPresent(this.parsedAttributes)) {
8949
9247
  removeHTMLAttributes(this.parsedAttributes, this.renderer, this.dateInput.nativeElement);
8950
9248
  }
8951
- this._inputAttributes = attributes;
9249
+ this._inputAttributes.set(attributes);
8952
9250
  this.parsedAttributes = this.inputAttributes ?
8953
9251
  parseAttributes(this.inputAttributes, this.defaultAttributes) :
8954
9252
  this.inputAttributes;
8955
9253
  this.setInputAttributes();
8956
9254
  }
8957
9255
  get inputAttributes() {
8958
- return this._inputAttributes;
9256
+ return this._inputAttributes();
8959
9257
  }
8960
9258
  /**
8961
9259
  * Fires each time the user selects a new value
@@ -9037,25 +9335,27 @@ class DateInputComponent {
9037
9335
  };
9038
9336
  }
9039
9337
  arrow = Arrow;
9040
- arrowDirection = Arrow.None;
9041
- formatSections = { date: false, time: false };
9338
+ get arrowDirection() { return this._arrowDirection(); }
9339
+ set arrowDirection(v) { this._arrowDirection.set(v); }
9340
+ get formatSections() { return this._formatSections(); }
9042
9341
  hasMousedown = false;
9043
9342
  focusedPriorToMousedown = false;
9044
- showClearButton = false;
9343
+ get showClearButton() { return this._showClearButton(); }
9344
+ set showClearButton(value) { this._showClearButton.set(value); }
9045
9345
  /**
9046
9346
  * @hidden
9047
9347
  */
9048
- isDateIncomplete = false;
9348
+ get isDateIncomplete() { return this._isDateIncomplete(); }
9049
9349
  currentFormat = "";
9050
9350
  spinup;
9051
9351
  spindown;
9052
9352
  minValidator = noop$2;
9053
9353
  maxValidator = noop$2;
9054
9354
  incompleteValidator = noop$2;
9055
- _value = null;
9355
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : []));
9056
9356
  _active = false;
9057
- _focusableId = `dateinput-${nextId++}`;
9058
- _formatPlaceholder = DEFAULT_FORMAT_PLACEHOLDER;
9357
+ _focusableId = signal(`dateinput-${nextId++}`, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
9358
+ _formatPlaceholder = signal(DEFAULT_FORMAT_PLACEHOLDER, ...(ngDevMode ? [{ debugName: "_formatPlaceholder" }] : []));
9059
9359
  kendoDate = null;
9060
9360
  kendoDateObject = null;
9061
9361
  domEvents = [];
@@ -9063,14 +9363,43 @@ class DateInputComponent {
9063
9363
  onControlChange = noop$2;
9064
9364
  onControlTouched = noop$2;
9065
9365
  onValidatorChange = noop$2;
9066
- _size;
9067
- _rounded;
9068
- _fillMode;
9069
- _ariaInvalidState = null;
9366
+ _ariaInvalidState = signal(null, ...(ngDevMode ? [{ debugName: "_ariaInvalidState" }] : []));
9367
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
9368
+ _rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
9369
+ _fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
9070
9370
  control;
9071
9371
  subs = new Subscription();
9072
- _inputAttributes;
9372
+ _inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
9073
9373
  parsedAttributes = {};
9374
+ _clearButton = signal(false, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
9375
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
9376
+ _readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
9377
+ _title = signal('', ...(ngDevMode ? [{ debugName: "_title" }] : []));
9378
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
9379
+ _role = signal(null, ...(ngDevMode ? [{ debugName: "_role" }] : []));
9380
+ _ariaReadOnly = signal(false, ...(ngDevMode ? [{ debugName: "_ariaReadOnly" }] : []));
9381
+ _isRequired = signal(false, ...(ngDevMode ? [{ debugName: "_isRequired" }] : []));
9382
+ _format = signal(DEFAULT_FORMAT$1, ...(ngDevMode ? [{ debugName: "_format" }] : []));
9383
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
9384
+ _steps = signal({}, ...(ngDevMode ? [{ debugName: "_steps" }] : []));
9385
+ _max = signal(cloneDate(MAX_DATE), ...(ngDevMode ? [{ debugName: "_max" }] : []));
9386
+ _min = signal(cloneDate(MIN_DATE), ...(ngDevMode ? [{ debugName: "_min" }] : []));
9387
+ _rangeValidation = signal(true, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
9388
+ _autoCorrectParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoCorrectParts" }] : []));
9389
+ _autoSwitchParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoSwitchParts" }] : []));
9390
+ _autoSwitchKeys = signal([], ...(ngDevMode ? [{ debugName: "_autoSwitchKeys" }] : []));
9391
+ _allowCaretMode = signal(false, ...(ngDevMode ? [{ debugName: "_allowCaretMode" }] : []));
9392
+ _autoFill = signal(false, ...(ngDevMode ? [{ debugName: "_autoFill" }] : []));
9393
+ _incompleteDateValidation = signal(false, ...(ngDevMode ? [{ debugName: "_incompleteDateValidation" }] : []));
9394
+ _twoDigitYearMax = signal(TWO_DIGIT_YEAR_MAX$2, ...(ngDevMode ? [{ debugName: "_twoDigitYearMax" }] : []));
9395
+ _enableMouseWheel = signal(true, ...(ngDevMode ? [{ debugName: "_enableMouseWheel" }] : []));
9396
+ _spinners = signal(false, ...(ngDevMode ? [{ debugName: "_spinners" }] : []));
9397
+ _isPopupOpen = signal(undefined, ...(ngDevMode ? [{ debugName: "_isPopupOpen" }] : []));
9398
+ _hasPopup = signal(undefined, ...(ngDevMode ? [{ debugName: "_hasPopup" }] : []));
9399
+ _arrowDirection = signal(Arrow.None, ...(ngDevMode ? [{ debugName: "_arrowDirection" }] : []));
9400
+ _showClearButton = signal(false, ...(ngDevMode ? [{ debugName: "_showClearButton" }] : []));
9401
+ _formatSections = signal({ date: false, time: false }, ...(ngDevMode ? [{ debugName: "_formatSections" }] : []));
9402
+ _isDateIncomplete = signal(false, ...(ngDevMode ? [{ debugName: "_isDateIncomplete" }] : []));
9074
9403
  get defaultAttributes() {
9075
9404
  return {
9076
9405
  'aria-readonly': this.ariaReadOnly,
@@ -9108,7 +9437,7 @@ class DateInputComponent {
9108
9437
  this.pickerService.input = this;
9109
9438
  }
9110
9439
  else {
9111
- this.ariaReadOnly = null;
9440
+ this._ariaReadOnly.set(null);
9112
9441
  }
9113
9442
  this.renderer.addClass(this.wrapper.nativeElement, 'k-input');
9114
9443
  this.renderer.addClass(this.wrapper.nativeElement, 'k-dateinput');
@@ -9187,22 +9516,21 @@ class DateInputComponent {
9187
9516
  }
9188
9517
  }
9189
9518
  updateFormatSections() {
9190
- this.formatSections = this.intl.splitDateFormat(this.kendoDate.inputFormat)
9519
+ this._formatSections.set(this.intl.splitDateFormat(this.kendoDate.inputFormat)
9191
9520
  .reduce(({ date, time }, p) => {
9192
9521
  return {
9193
9522
  date: date || DATE_PART_REGEXP.test(p.type),
9194
9523
  time: time || TIME_PART_REGEXP.test(p.type)
9195
9524
  };
9196
- }, { date: false, time: false });
9525
+ }, { date: false, time: false }));
9197
9526
  }
9198
9527
  updateIncompleteValidationStatus() {
9199
9528
  const previousValue = this.isDateIncomplete;
9200
- this.isDateIncomplete = Boolean(this.kendoDateObject?.hasValue() && this.value === null);
9529
+ this._isDateIncomplete.set(Boolean(this.kendoDateObject?.hasValue() && this.value === null));
9201
9530
  if (previousValue === this.isDateIncomplete || !this.incompleteDateValidation) {
9202
9531
  return;
9203
9532
  }
9204
9533
  if (isPresent(this.ngControl) && !isPresent(this.pickerService)) {
9205
- this.cdr.markForCheck();
9206
9534
  this.ngZone.run(() => this.onValidatorChange());
9207
9535
  }
9208
9536
  else if (isPresent(this.pickerService)) {
@@ -9215,6 +9543,13 @@ class DateInputComponent {
9215
9543
  this.control = formControl;
9216
9544
  this.subs.add(this.formControl?.statusChanges.subscribe(() => this.setAriaInvalid()));
9217
9545
  this.setAriaInvalid();
9546
+ if (formControl && formControl.events) {
9547
+ this.subs.add(formControl.events.subscribe(e => {
9548
+ if (e instanceof TouchedChangeEvent) {
9549
+ this.cdr.markForCheck();
9550
+ }
9551
+ }));
9552
+ }
9218
9553
  this.subs.add(this.renderer.listen(this.dateInput?.nativeElement, 'keydown', this.handleKeyDown));
9219
9554
  }
9220
9555
  ngOnDestroy() {
@@ -9228,11 +9563,11 @@ class DateInputComponent {
9228
9563
  * @hidden
9229
9564
  */
9230
9565
  setAriaInvalid() {
9231
- if (this._ariaInvalidState === null && !this.control) {
9566
+ if (this.ariaInvalidState === null && !this.control) {
9232
9567
  return;
9233
9568
  }
9234
- const isInvalid = this._ariaInvalidState !== null
9235
- ? this._ariaInvalidState
9569
+ const isInvalid = this.ariaInvalidState !== null
9570
+ ? this.ariaInvalidState
9236
9571
  : !!(this.control.invalid && (this.control.touched || this.control.dirty));
9237
9572
  this.renderer.setAttribute(this.inputElement, attributeNames.ariaInvalid, `${isInvalid}`);
9238
9573
  }
@@ -9258,8 +9593,7 @@ class DateInputComponent {
9258
9593
  * @hidden
9259
9594
  */
9260
9595
  setDisabledState(isDisabled) {
9261
- this.disabled = isDisabled;
9262
- this.cdr.markForCheck();
9596
+ this._disabled.set(isDisabled);
9263
9597
  }
9264
9598
  //ngModel binding
9265
9599
  /**
@@ -9272,13 +9606,12 @@ class DateInputComponent {
9272
9606
  this.kendoDateObject?.setValue(this.value);
9273
9607
  this.kendoDate?.refreshElementValue();
9274
9608
  this.updateIncompleteValidationStatus();
9275
- this.cdr.markForCheck();
9276
9609
  }
9277
9610
  /**
9278
9611
  * Resets the value of the DateInput component to `null` and triggers the `valueChange` event.
9279
9612
  */
9280
9613
  resetInput() {
9281
- this.isDateIncomplete = false;
9614
+ this._isDateIncomplete.set(false);
9282
9615
  this.writeValue(null);
9283
9616
  // Notify datepicker that a change has happened and emit `valueChange`
9284
9617
  this.notify();
@@ -9367,7 +9700,6 @@ class DateInputComponent {
9367
9700
  this.updateIncompleteValidationStatus();
9368
9701
  if (this.clearButton) {
9369
9702
  this.showClearButton = this.value || this.isDateIncomplete ? true : false;
9370
- this.cdr.markForCheck();
9371
9703
  }
9372
9704
  }
9373
9705
  onWidgetFocus(args) {
@@ -9910,31 +10242,73 @@ class DatePickerMessages extends ComponentMessages {
9910
10242
  /**
9911
10243
  * The **Today** button text in the header of the Calendar.
9912
10244
  */
9913
- today;
10245
+ set today(value) {
10246
+ this._today.set(value);
10247
+ }
10248
+ get today() {
10249
+ return this._today();
10250
+ }
9914
10251
  /**
9915
10252
  * The title of the **Toggle** button of the DatePicker.
9916
10253
  */
9917
- toggle;
10254
+ set toggle(value) {
10255
+ this._toggle.set(value);
10256
+ }
10257
+ get toggle() {
10258
+ return this._toggle();
10259
+ }
9918
10260
  /**
9919
10261
  * The title of the **Prev** button in the header of the Classic Calendar.
9920
10262
  */
9921
- prevButtonTitle;
10263
+ set prevButtonTitle(value) {
10264
+ this._prevButtonTitle.set(value);
10265
+ }
10266
+ get prevButtonTitle() {
10267
+ return this._prevButtonTitle();
10268
+ }
9922
10269
  /**
9923
10270
  * The title of the **Next** button in the header of the Classic Calendar.
9924
10271
  */
9925
- nextButtonTitle;
10272
+ set nextButtonTitle(value) {
10273
+ this._nextButtonTitle.set(value);
10274
+ }
10275
+ get nextButtonTitle() {
10276
+ return this._nextButtonTitle();
10277
+ }
9926
10278
  /**
9927
10279
  * The title of the **Parent View** button in the header of the Calendar.
9928
10280
  */
9929
- parentViewButtonTitle;
10281
+ set parentViewButtonTitle(value) {
10282
+ this._parentViewButtonTitle.set(value);
10283
+ }
10284
+ get parentViewButtonTitle() {
10285
+ return this._parentViewButtonTitle();
10286
+ }
9930
10287
  /**
9931
10288
  * The title of the **Clear** button of the DatePicker.
9932
10289
  */
9933
- clearTitle;
10290
+ set clearTitle(value) {
10291
+ this._clearTitle.set(value);
10292
+ }
10293
+ get clearTitle() {
10294
+ return this._clearTitle();
10295
+ }
9934
10296
  /**
9935
10297
  * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
9936
10298
  */
9937
- adaptiveCloseButtonTitle;
10299
+ set adaptiveCloseButtonTitle(value) {
10300
+ this._adaptiveCloseButtonTitle.set(value);
10301
+ }
10302
+ get adaptiveCloseButtonTitle() {
10303
+ return this._adaptiveCloseButtonTitle();
10304
+ }
10305
+ _today = signal(undefined, ...(ngDevMode ? [{ debugName: "_today" }] : []));
10306
+ _toggle = signal(undefined, ...(ngDevMode ? [{ debugName: "_toggle" }] : []));
10307
+ _prevButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_prevButtonTitle" }] : []));
10308
+ _nextButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_nextButtonTitle" }] : []));
10309
+ _parentViewButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_parentViewButtonTitle" }] : []));
10310
+ _clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
10311
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
9938
10312
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DatePickerMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
9939
10313
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DatePickerMessages, isStandalone: true, selector: "kendo-datepicker-messages-base", inputs: { today: "today", toggle: "toggle", prevButtonTitle: "prevButtonTitle", nextButtonTitle: "nextButtonTitle", parentViewButtonTitle: "parentViewButtonTitle", clearTitle: "clearTitle", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle" }, usesInheritance: true, ngImport: i0 });
9940
10314
  }
@@ -10039,7 +10413,12 @@ class DatePickerComponent extends MultiTabStop {
10039
10413
  /**
10040
10414
  * @hidden
10041
10415
  */
10042
- focusableId;
10416
+ set focusableId(value) {
10417
+ this._focusableId.set(value);
10418
+ }
10419
+ get focusableId() {
10420
+ return this._focusableId();
10421
+ }
10043
10422
  /**
10044
10423
  * @hidden
10045
10424
  */
@@ -10055,7 +10434,12 @@ class DatePickerComponent extends MultiTabStop {
10055
10434
  * Click this button to reset the component value to `null` and trigger the `valueChange` event.
10056
10435
  * @default false
10057
10436
  */
10058
- clearButton = false;
10437
+ set clearButton(value) {
10438
+ this._clearButton.set(value);
10439
+ }
10440
+ get clearButton() {
10441
+ return this._clearButton();
10442
+ }
10059
10443
  /**
10060
10444
  * Specifies the HTML attributes of the inner focusable input element.
10061
10445
  * You cannot change attributes that are essential for certain component functionalities.
@@ -10063,7 +10447,12 @@ class DatePickerComponent extends MultiTabStop {
10063
10447
  * @remarks
10064
10448
  * This property is related to accessibility.
10065
10449
  */
10066
- inputAttributes;
10450
+ set inputAttributes(value) {
10451
+ this._inputAttributes.set(value);
10452
+ }
10453
+ get inputAttributes() {
10454
+ return this._inputAttributes();
10455
+ }
10067
10456
  /**
10068
10457
  * @hidden
10069
10458
  */
@@ -10148,7 +10537,12 @@ class DatePickerComponent extends MultiTabStop {
10148
10537
  * Controls the visibility of the Calendar footer.
10149
10538
  * @default false
10150
10539
  */
10151
- footer = false;
10540
+ set footer(value) {
10541
+ this._footer.set(value);
10542
+ }
10543
+ get footer() {
10544
+ return this._footer();
10545
+ }
10152
10546
  /**
10153
10547
  * @hidden
10154
10548
  */
@@ -10163,34 +10557,64 @@ class DatePickerComponent extends MultiTabStop {
10163
10557
  * Specifies the format of the displayed Calendar week days' names.
10164
10558
  * @default 'short'
10165
10559
  */
10166
- weekDaysFormat = "short";
10560
+ set weekDaysFormat(value) {
10561
+ this._weekDaysFormat.set(value);
10562
+ }
10563
+ get weekDaysFormat() {
10564
+ return this._weekDaysFormat();
10565
+ }
10167
10566
  /**
10168
10567
  * Shows the days that fall outside the current month in the Calendar ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/view-options#displaying-other-month-days)).
10169
10568
  * The default value is `false` for infinite Calendar type and `true` for classic Calendar type.
10170
10569
  */
10171
- showOtherMonthDays;
10570
+ set showOtherMonthDays(value) {
10571
+ this._showOtherMonthDays.set(value);
10572
+ }
10573
+ get showOtherMonthDays() {
10574
+ return this._showOtherMonthDays();
10575
+ }
10172
10576
  /**
10173
10577
  * Specifies the active view that the Calendar initially renders ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/view-options#active-view)).
10174
10578
  *
10175
10579
  * You have to set `activeView` within the `topView`-`bottomView` range.
10176
10580
  * @default 'month'
10177
10581
  */
10178
- activeView = CalendarViewEnum[CalendarViewEnum.month];
10582
+ set activeView(value) {
10583
+ this._activeView.set(value);
10584
+ }
10585
+ get activeView() {
10586
+ return this._activeView();
10587
+ }
10179
10588
  /**
10180
10589
  * Specifies the bottommost Calendar view to which you can navigate ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/calendar-options#view-selection-depth)).
10181
10590
  * @default 'month'
10182
10591
  */
10183
- bottomView = CalendarViewEnum[CalendarViewEnum.month];
10592
+ set bottomView(value) {
10593
+ this._bottomView.set(value);
10594
+ }
10595
+ get bottomView() {
10596
+ return this._bottomView();
10597
+ }
10184
10598
  /**
10185
10599
  * Specifies the topmost Calendar view to which you can navigate ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/calendar-options#view-selection-depth)).
10186
10600
  * @default 'century'
10187
10601
  */
10188
- topView = CalendarViewEnum[CalendarViewEnum.century];
10602
+ set topView(value) {
10603
+ this._topView.set(value);
10604
+ }
10605
+ get topView() {
10606
+ return this._topView();
10607
+ }
10189
10608
  /**
10190
10609
  * Specifies the Calendar type.
10191
10610
  * @default 'infinite'
10192
10611
  */
10193
- calendarType = 'infinite';
10612
+ set calendarType(value) {
10613
+ this._calendarType.set(value);
10614
+ }
10615
+ get calendarType() {
10616
+ return this._calendarType();
10617
+ }
10194
10618
  /**
10195
10619
  * Determines whether to enable animation when navigating to previous/next Calendar view.
10196
10620
  * Applies to the [`classic`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/datepickercomponent#calendartype) Calendar only.
@@ -10199,18 +10623,33 @@ class DatePickerComponent extends MultiTabStop {
10199
10623
  *
10200
10624
  * @default false
10201
10625
  */
10202
- animateCalendarNavigation = false;
10626
+ set animateCalendarNavigation(value) {
10627
+ this._animateCalendarNavigation.set(value);
10628
+ }
10629
+ get animateCalendarNavigation() {
10630
+ return this._animateCalendarNavigation();
10631
+ }
10203
10632
  /**
10204
10633
  * Specifies or gets the `disabled` property of the DatePicker and determines whether the component is active ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/disabled-state)).
10205
10634
  * To learn how to disable the component in reactive forms, refer to the article on [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/forms#managing-the-datepicker-disabled-state-in-reactive-forms).
10206
10635
  */
10207
- disabled = false;
10636
+ set disabled(value) {
10637
+ this._disabled.set(value);
10638
+ }
10639
+ get disabled() {
10640
+ return this._disabled();
10641
+ }
10208
10642
  /**
10209
10643
  * Specifies the read-only state of the DatePicker ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/readonly-state#read-only-datepicker)).
10210
10644
  *
10211
10645
  * @default false
10212
10646
  */
10213
- readonly = false;
10647
+ set readonly(value) {
10648
+ this._readonly.set(value);
10649
+ }
10650
+ get readonly() {
10651
+ return this._readonly();
10652
+ }
10214
10653
  /**
10215
10654
  * Sets the read-only state of the DatePicker input field
10216
10655
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/readonly-state#read-only-input)).
@@ -10218,7 +10657,12 @@ class DatePickerComponent extends MultiTabStop {
10218
10657
  * If you set the [`readonly`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/datepickercomponent#readonly) property value to `true`,
10219
10658
  * the input will be rendered in a read-only state regardless of the `readOnlyInput` value.
10220
10659
  */
10221
- readOnlyInput = false;
10660
+ set readOnlyInput(value) {
10661
+ this._readOnlyInput.set(value);
10662
+ }
10663
+ get readOnlyInput() {
10664
+ return this._readOnlyInput();
10665
+ }
10222
10666
  /**
10223
10667
  * Configures the popup options of the DatePicker.
10224
10668
  *
@@ -10227,10 +10671,10 @@ class DatePickerComponent extends MultiTabStop {
10227
10671
  * The popupClass option specifies a list of CSS classes that are used to style the popup.
10228
10672
  */
10229
10673
  set popupSettings(settings) {
10230
- this._popupSettings = { animate: true, ...settings };
10674
+ this._popupSettings.set({ animate: true, ...settings });
10231
10675
  }
10232
10676
  get popupSettings() {
10233
- return this._popupSettings;
10677
+ return this._popupSettings();
10234
10678
  }
10235
10679
  /**
10236
10680
  * Sets or gets the `navigation` property of the Calendar
@@ -10238,72 +10682,122 @@ class DatePickerComponent extends MultiTabStop {
10238
10682
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/sidebar)).
10239
10683
  */
10240
10684
  set navigation(state) {
10241
- this._navigation = state;
10685
+ this._navigation.set(state);
10242
10686
  }
10243
10687
  get navigation() {
10244
10688
  if (this.isAdaptive) {
10245
10689
  return;
10246
10690
  }
10247
- return this._navigation;
10691
+ return this._navigation();
10248
10692
  }
10249
- _navigation = true;
10693
+ _navigation = signal(true, ...(ngDevMode ? [{ debugName: "_navigation" }] : []));
10250
10694
  /**
10251
10695
  * Specifies the smallest valid date
10252
10696
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/date-ranges)).
10253
10697
  * @default 1900-1-1
10254
10698
  */
10255
- min = cloneDate(MIN_DATE);
10699
+ set min(value) {
10700
+ this._min.set(value);
10701
+ }
10702
+ get min() {
10703
+ return this._min();
10704
+ }
10256
10705
  /**
10257
10706
  * Specifies the biggest valid date
10258
10707
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/date-ranges)).
10259
10708
  * @default 2099-12-31
10260
10709
  */
10261
- max = cloneDate(MAX_DATE);
10710
+ set max(value) {
10711
+ this._max.set(value);
10712
+ }
10713
+ get max() {
10714
+ return this._max();
10715
+ }
10262
10716
  /**
10263
10717
  * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
10264
10718
  * @default false
10265
10719
  */
10266
- incompleteDateValidation = false;
10720
+ set incompleteDateValidation(value) {
10721
+ this._incompleteDateValidation.set(value);
10722
+ }
10723
+ get incompleteDateValidation() {
10724
+ return this._incompleteDateValidation();
10725
+ }
10267
10726
  /**
10268
10727
  * Determines whether to autocorrect invalid segments automatically.
10269
10728
  *
10270
10729
  * @default true
10271
10730
  */
10272
- autoCorrectParts = true;
10731
+ set autoCorrectParts(value) {
10732
+ this._autoCorrectParts.set(value);
10733
+ }
10734
+ get autoCorrectParts() {
10735
+ return this._autoCorrectParts();
10736
+ }
10273
10737
  /**
10274
10738
  * Determines whether to automatically move to the next segment after the user completes the current one.
10275
10739
  *
10276
10740
  * @default true
10277
10741
  */
10278
- autoSwitchParts = true;
10742
+ set autoSwitchParts(value) {
10743
+ this._autoSwitchParts.set(value);
10744
+ }
10745
+ get autoSwitchParts() {
10746
+ return this._autoSwitchParts();
10747
+ }
10279
10748
  /**
10280
10749
  * A string array representing custom keys, which will move the focus to the next date format segment.
10281
10750
  */
10282
- autoSwitchKeys = [];
10751
+ set autoSwitchKeys(value) {
10752
+ this._autoSwitchKeys.set(value);
10753
+ }
10754
+ get autoSwitchKeys() {
10755
+ return this._autoSwitchKeys();
10756
+ }
10283
10757
  /**
10284
10758
  * Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
10285
10759
  *
10286
10760
  * @default true
10287
10761
  */
10288
- enableMouseWheel = true;
10762
+ set enableMouseWheel(value) {
10763
+ this._enableMouseWheel.set(value);
10764
+ }
10765
+ get enableMouseWheel() {
10766
+ return this._enableMouseWheel();
10767
+ }
10289
10768
  /**
10290
10769
  * Determines if the users should see a blinking caret inside the Date Input when possible.
10291
10770
  *
10292
10771
  * @default false
10293
10772
  */
10294
- allowCaretMode = false;
10773
+ set allowCaretMode(value) {
10774
+ this._allowCaretMode.set(value);
10775
+ }
10776
+ get allowCaretMode() {
10777
+ return this._allowCaretMode();
10778
+ }
10295
10779
  /**
10296
10780
  * When enabled, the DatePicker will autofill the rest of the date to the current date when the component loses focus.
10297
10781
  *
10298
10782
  * @default false
10299
10783
  */
10300
- autoFill = false;
10784
+ set autoFill(value) {
10785
+ this._autoFill.set(value);
10786
+ }
10787
+ get autoFill() {
10788
+ return this._autoFill();
10789
+ }
10301
10790
  /**
10302
10791
  * Specifies the focused date of the Calendar component
10303
10792
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/calendar-options#focused-dates)).
10304
10793
  * @default null
10305
10794
  */
10306
- focusedDate = null;
10795
+ set focusedDate(value) {
10796
+ this._focusedDate.set(value);
10797
+ }
10798
+ get focusedDate() {
10799
+ return this._focusedDate();
10800
+ }
10307
10801
  /**
10308
10802
  * Specifies the value of the DatePicker component.
10309
10803
  *
@@ -10311,10 +10805,10 @@ class DatePickerComponent extends MultiTabStop {
10311
10805
  */
10312
10806
  set value(value) {
10313
10807
  this.verifyValue(value);
10314
- this._value = cloneDate(value);
10808
+ this._value.set(cloneDate(value));
10315
10809
  }
10316
10810
  get value() {
10317
- return this._value;
10811
+ return this._value();
10318
10812
  }
10319
10813
  /**
10320
10814
  * Specifies the date format that is used to display the input value
@@ -10323,7 +10817,12 @@ class DatePickerComponent extends MultiTabStop {
10323
10817
  * Format value options include string to provide a single format that is used regardless whether the input is focused or blurred.
10324
10818
  * FormatSettings can be used to display different formats when the component is focused or blurred by providing a settings object with specified inputFormat and displayFormat values.
10325
10819
  */
10326
- format = DEFAULT_FORMAT;
10820
+ set format(value) {
10821
+ this._format.set(value);
10822
+ }
10823
+ get format() {
10824
+ return this._format();
10825
+ }
10327
10826
  /**
10328
10827
  * The maximum year to assume to be from the current century when typing two-digit year value
10329
10828
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/formats#two-digit-year-format)).
@@ -10332,75 +10831,120 @@ class DatePickerComponent extends MultiTabStop {
10332
10831
  * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.
10333
10832
  * @default 68
10334
10833
  */
10335
- twoDigitYearMax = TWO_DIGIT_YEAR_MAX$1;
10834
+ set twoDigitYearMax(value) {
10835
+ this._twoDigitYearMax.set(value);
10836
+ }
10837
+ get twoDigitYearMax() {
10838
+ return this._twoDigitYearMax();
10839
+ }
10336
10840
  /**
10337
10841
  * Defines the descriptions of the format sections in the input field.
10338
10842
  * ([more information and examples](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/placeholders)).
10339
10843
  *
10340
10844
  */
10341
- formatPlaceholder;
10845
+ set formatPlaceholder(value) {
10846
+ this._formatPlaceholder.set(value);
10847
+ }
10848
+ get formatPlaceholder() {
10849
+ return this._formatPlaceholder();
10850
+ }
10342
10851
  /**
10343
10852
  * Specifies the hint the DatePicker displays when its value is `null`.
10344
10853
  * ([more information and exaples](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/placeholders)).
10345
10854
  */
10346
- placeholder;
10855
+ set placeholder(value) {
10856
+ this._placeholder.set(value);
10857
+ }
10858
+ get placeholder() {
10859
+ return this._placeholder();
10860
+ }
10347
10861
  /**
10348
10862
  * Sets the `tabindex` of the DatePicker.
10349
10863
  * This property is used to set the order in which the DatePicker will receive focus when navigating through the page using the Tab key.
10350
10864
  * @default 0
10351
10865
  */
10352
- tabindex = 0;
10866
+ set tabindex(value) {
10867
+ this._tabindex.set(value);
10868
+ }
10869
+ get tabindex() {
10870
+ return this._tabindex();
10871
+ }
10353
10872
  /**
10354
10873
  * @hidden
10355
10874
  */
10356
10875
  set tabIndex(tabIndex) {
10357
- this.tabindex = tabIndex;
10876
+ this._tabindex.set(tabIndex);
10358
10877
  }
10359
10878
  get tabIndex() {
10360
- return this.tabindex;
10879
+ return this._tabindex();
10361
10880
  }
10362
10881
  /**
10363
10882
  * Sets the dates of the DatePicker that will be disabled
10364
10883
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/disabled-dates)).
10365
10884
  */
10366
10885
  set disabledDates(value) {
10367
- this._disabledDates = value;
10886
+ this._disabledDates.set(value);
10368
10887
  this.disabledDatesService.initialize(value);
10369
10888
  }
10370
10889
  get disabledDates() {
10371
- return this._disabledDates;
10890
+ return this._disabledDates();
10372
10891
  }
10373
10892
  /**
10374
10893
  * Sets the title of the input element of the DatePicker and the title text rendered
10375
10894
  * in the header of the popup(action sheet). Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
10376
10895
  * @default ""
10377
10896
  */
10378
- adaptiveTitle = "";
10897
+ set adaptiveTitle(value) {
10898
+ this._adaptiveTitle.set(value);
10899
+ }
10900
+ get adaptiveTitle() {
10901
+ return this._adaptiveTitle();
10902
+ }
10379
10903
  /**
10380
10904
  * Sets the subtitle text rendered in the header of the popup(action sheet).
10381
10905
  * Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
10382
10906
  * @default ""
10383
10907
  */
10384
- adaptiveSubtitle = "";
10908
+ set adaptiveSubtitle(value) {
10909
+ this._adaptiveSubtitle.set(value);
10910
+ }
10911
+ get adaptiveSubtitle() {
10912
+ return this._adaptiveSubtitle();
10913
+ }
10385
10914
  /**
10386
10915
  * Determines whether the built-in min or max validators are enforced when validating a form.
10387
10916
  *
10388
10917
  * @default true
10389
10918
  */
10390
- rangeValidation = true;
10919
+ set rangeValidation(value) {
10920
+ this._rangeValidation.set(value);
10921
+ }
10922
+ get rangeValidation() {
10923
+ return this._rangeValidation();
10924
+ }
10391
10925
  /**
10392
10926
  * Determines whether the built-in validator for disabled
10393
10927
  * date ranges is enforced when validating a form
10394
10928
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/disabled-dates#using-a-function)).
10395
10929
  * @default true
10396
10930
  */
10397
- disabledDatesValidation = true;
10931
+ set disabledDatesValidation(value) {
10932
+ this._disabledDatesValidation.set(value);
10933
+ }
10934
+ get disabledDatesValidation() {
10935
+ return this._disabledDatesValidation();
10936
+ }
10398
10937
  /**
10399
10938
  * Determines whether to display a week number column in the `month` view of the Calendar
10400
10939
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/calendar-options#week-number-column)).
10401
10940
  * @default false
10402
10941
  */
10403
- weekNumber = false;
10942
+ set weekNumber(value) {
10943
+ this._weekNumber.set(value);
10944
+ }
10945
+ get weekNumber() {
10946
+ return this._weekNumber();
10947
+ }
10404
10948
  /**
10405
10949
  * Sets the size of the component. The default value is set by the Kendo theme.
10406
10950
  */
@@ -10411,10 +10955,10 @@ class DatePickerComponent extends MultiTabStop {
10411
10955
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
10412
10956
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', size));
10413
10957
  }
10414
- this._size = size;
10958
+ this._size.set(size);
10415
10959
  }
10416
10960
  get size() {
10417
- return this._size;
10961
+ return this._size();
10418
10962
  }
10419
10963
  /**
10420
10964
  * Specifies the border radius of the component. The default value is set by the Kendo theme.
@@ -10424,10 +10968,10 @@ class DatePickerComponent extends MultiTabStop {
10424
10968
  if (rounded) {
10425
10969
  this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
10426
10970
  }
10427
- this._rounded = rounded;
10971
+ this._rounded.set(rounded);
10428
10972
  }
10429
10973
  get rounded() {
10430
- return this._rounded;
10974
+ return this._rounded();
10431
10975
  }
10432
10976
  /**
10433
10977
  * Specifies the fillMode of the component. The default value is set by the Kendo theme.
@@ -10439,17 +10983,22 @@ class DatePickerComponent extends MultiTabStop {
10439
10983
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
10440
10984
  this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
10441
10985
  }
10442
- this._fillMode = fillMode;
10986
+ this._fillMode.set(fillMode);
10443
10987
  }
10444
10988
  get fillMode() {
10445
- return this._fillMode;
10989
+ return this._fillMode();
10446
10990
  }
10447
10991
  /**
10448
10992
  * Specifies whether to enable adaptive rendering. When enabled, the DatePicker automatically switches between a calendar popup on larger screens and an ActionSheet on mobile devices.
10449
10993
  *
10450
10994
  * @default 'none'
10451
10995
  */
10452
- adaptiveMode = 'none';
10996
+ set adaptiveMode(value) {
10997
+ this._adaptiveMode.set(value);
10998
+ }
10999
+ get adaptiveMode() {
11000
+ return this._adaptiveMode();
11001
+ }
10453
11002
  /**
10454
11003
  * Fires each time the user selects a new value
10455
11004
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/events)).
@@ -10508,20 +11057,20 @@ class DatePickerComponent extends MultiTabStop {
10508
11057
  }
10509
11058
  }
10510
11059
  get show() {
10511
- return this._show;
11060
+ return this._show();
10512
11061
  }
10513
11062
  set show(show) {
10514
11063
  if (show && (this.disabled || this.readonly)) {
10515
11064
  return;
10516
11065
  }
10517
- const skipZone = !show && (!this._show || (!hasObservers(this.close) && !hasObservers(this.open)));
11066
+ const skipZone = !show && (!this._show() || (!hasObservers(this.close) && !hasObservers(this.open)));
10518
11067
  if (!skipZone) {
10519
11068
  this.zone.run(() => {
10520
11069
  const event = new PreventableEvent();
10521
- if (!this._show && show) {
11070
+ if (!this._show() && show) {
10522
11071
  this.open.emit(event);
10523
11072
  }
10524
- else if (this._show && !show) {
11073
+ else if (this._show() && !show) {
10525
11074
  this.close.emit(event);
10526
11075
  }
10527
11076
  if (event.isDefaultPrevented()) {
@@ -10558,11 +11107,11 @@ class DatePickerComponent extends MultiTabStop {
10558
11107
  }
10559
11108
  return control.invalid && (control.touched || control.dirty);
10560
11109
  }
10561
- _popupSettings = { animate: true };
10562
- _show = false;
10563
- _value = null;
11110
+ _popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
11111
+ _show = signal(false, ...(ngDevMode ? [{ debugName: "_show" }] : []));
11112
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : []));
10564
11113
  _active = false;
10565
- _disabledDates;
11114
+ _disabledDates = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledDates" }] : []));
10566
11115
  onControlChange = noop$2;
10567
11116
  onControlTouched = noop$2;
10568
11117
  onValidatorChange = noop$2;
@@ -10578,9 +11127,44 @@ class DatePickerComponent extends MultiTabStop {
10578
11127
  ariaActiveDescendantSubscription;
10579
11128
  control;
10580
11129
  domEvents = [];
10581
- _size;
10582
- _rounded;
10583
- _fillMode;
11130
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
11131
+ _rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
11132
+ _fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
11133
+ _focusableId = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
11134
+ _clearButton = signal(false, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
11135
+ _inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
11136
+ _footer = signal(false, ...(ngDevMode ? [{ debugName: "_footer" }] : []));
11137
+ _weekDaysFormat = signal('short', ...(ngDevMode ? [{ debugName: "_weekDaysFormat" }] : []));
11138
+ _showOtherMonthDays = signal(undefined, ...(ngDevMode ? [{ debugName: "_showOtherMonthDays" }] : []));
11139
+ _activeView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_activeView" }] : []));
11140
+ _bottomView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_bottomView" }] : []));
11141
+ _topView = signal(CalendarViewEnum[CalendarViewEnum.century], ...(ngDevMode ? [{ debugName: "_topView" }] : []));
11142
+ _calendarType = signal('infinite', ...(ngDevMode ? [{ debugName: "_calendarType" }] : []));
11143
+ _animateCalendarNavigation = signal(false, ...(ngDevMode ? [{ debugName: "_animateCalendarNavigation" }] : []));
11144
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
11145
+ _readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
11146
+ _readOnlyInput = signal(false, ...(ngDevMode ? [{ debugName: "_readOnlyInput" }] : []));
11147
+ _min = signal(cloneDate(MIN_DATE), ...(ngDevMode ? [{ debugName: "_min" }] : []));
11148
+ _max = signal(cloneDate(MAX_DATE), ...(ngDevMode ? [{ debugName: "_max" }] : []));
11149
+ _incompleteDateValidation = signal(false, ...(ngDevMode ? [{ debugName: "_incompleteDateValidation" }] : []));
11150
+ _autoCorrectParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoCorrectParts" }] : []));
11151
+ _autoSwitchParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoSwitchParts" }] : []));
11152
+ _autoSwitchKeys = signal([], ...(ngDevMode ? [{ debugName: "_autoSwitchKeys" }] : []));
11153
+ _enableMouseWheel = signal(true, ...(ngDevMode ? [{ debugName: "_enableMouseWheel" }] : []));
11154
+ _allowCaretMode = signal(false, ...(ngDevMode ? [{ debugName: "_allowCaretMode" }] : []));
11155
+ _autoFill = signal(false, ...(ngDevMode ? [{ debugName: "_autoFill" }] : []));
11156
+ _focusedDate = signal(null, ...(ngDevMode ? [{ debugName: "_focusedDate" }] : []));
11157
+ _format = signal(DEFAULT_FORMAT, ...(ngDevMode ? [{ debugName: "_format" }] : []));
11158
+ _twoDigitYearMax = signal(TWO_DIGIT_YEAR_MAX$1, ...(ngDevMode ? [{ debugName: "_twoDigitYearMax" }] : []));
11159
+ _formatPlaceholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_formatPlaceholder" }] : []));
11160
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
11161
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
11162
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
11163
+ _adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
11164
+ _rangeValidation = signal(true, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
11165
+ _disabledDatesValidation = signal(true, ...(ngDevMode ? [{ debugName: "_disabledDatesValidation" }] : []));
11166
+ _weekNumber = signal(false, ...(ngDevMode ? [{ debugName: "_weekNumber" }] : []));
11167
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
10584
11168
  constructor(zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, disabledDatesService, adaptiveService) {
10585
11169
  super();
10586
11170
  this.zone = zone;
@@ -10630,6 +11214,14 @@ class DatePickerComponent extends MultiTabStop {
10630
11214
  this.setComponentClasses();
10631
11215
  this.windowSize = this.adaptiveService.size;
10632
11216
  this.pickerSubscriptions.add(this.control?.control?.statusChanges?.subscribe(() => this.cdr.markForCheck()));
11217
+ const control = this.control?.control;
11218
+ if (control && control.events) {
11219
+ this.pickerSubscriptions.add(control.events.subscribe(e => {
11220
+ if (e instanceof TouchedChangeEvent) {
11221
+ this.cdr.markForCheck();
11222
+ }
11223
+ }));
11224
+ }
10633
11225
  }
10634
11226
  /**
10635
11227
  * @hidden
@@ -10677,7 +11269,6 @@ class DatePickerComponent extends MultiTabStop {
10677
11269
  writeValue(value) {
10678
11270
  this.verifyValue(value);
10679
11271
  this.value = cloneDate(value);
10680
- this.cdr.markForCheck();
10681
11272
  if (!value && this.dateInput) {
10682
11273
  this.dateInput.placeholder = this.placeholder;
10683
11274
  this.dateInput.writeValue(value);
@@ -10699,8 +11290,7 @@ class DatePickerComponent extends MultiTabStop {
10699
11290
  * @hidden
10700
11291
  */
10701
11292
  setDisabledState(isDisabled) {
10702
- this.disabled = isDisabled;
10703
- this.cdr.markForCheck();
11293
+ this._disabled.set(isDisabled);
10704
11294
  }
10705
11295
  /**
10706
11296
  * @hidden
@@ -10718,7 +11308,7 @@ class DatePickerComponent extends MultiTabStop {
10718
11308
  * @hidden
10719
11309
  */
10720
11310
  handleActionSheetCollapse() {
10721
- // If not handled, the actionsheet expanded state does not get updated when overlay is clicked
11311
+ // markForCheck() retained - ActionSheet expanded state does not get updated when overlay is clicked without it
10722
11312
  this.cdr.markForCheck();
10723
11313
  }
10724
11314
  /**
@@ -10751,7 +11341,11 @@ class DatePickerComponent extends MultiTabStop {
10751
11341
  return;
10752
11342
  }
10753
11343
  this.resolvedPromise.then(() => {
10754
- this.toggleCalendar((show === undefined) ? !this.show : show);
11344
+ const next = (show === undefined) ? !this.show : show;
11345
+ if (next) {
11346
+ this.handleFocus();
11347
+ }
11348
+ this.toggleCalendar(next);
10755
11349
  });
10756
11350
  }
10757
11351
  /**
@@ -10769,7 +11363,6 @@ class DatePickerComponent extends MultiTabStop {
10769
11363
  //due to async IE focus event
10770
11364
  this.handleFocus();
10771
11365
  this.show = !this.show;
10772
- this.cdr.markForCheck();
10773
11366
  }
10774
11367
  /**
10775
11368
  * @hidden
@@ -10920,10 +11513,10 @@ class DatePickerComponent extends MultiTabStop {
10920
11513
  this.toggleFocus();
10921
11514
  }
10922
11515
  togglePopup(show) {
10923
- if (show === this._show) {
11516
+ if (show === this._show()) {
10924
11517
  return;
10925
11518
  }
10926
- this._show = show;
11519
+ this._show.set(show);
10927
11520
  if (show) {
10928
11521
  const direction = this.localization.rtl ? 'right' : 'left';
10929
11522
  const appendToComponent = typeof this.popupSettings.appendTo === 'string' && this.popupSettings.appendTo === 'component';
@@ -10955,7 +11548,7 @@ class DatePickerComponent extends MultiTabStop {
10955
11548
  }
10956
11549
  }
10957
11550
  toggleActionSheet(show) {
10958
- if (show === this._show) {
11551
+ if (show === this._show()) {
10959
11552
  return;
10960
11553
  }
10961
11554
  if (show && !this.isOpen) {
@@ -10973,7 +11566,7 @@ class DatePickerComponent extends MultiTabStop {
10973
11566
  this.dateInput.focus();
10974
11567
  }
10975
11568
  }
10976
- this._show = show;
11569
+ this._show.set(show);
10977
11570
  }
10978
11571
  setAriaActiveDescendant() {
10979
11572
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
@@ -11057,6 +11650,7 @@ class DatePickerComponent extends MultiTabStop {
11057
11650
  if (hasObservers(this.onBlur) || (this.show && hasObservers(this.close)) || requiresZoneOnBlur(this.control)) {
11058
11651
  this.zone.run(() => {
11059
11652
  this.blurComponent();
11653
+ // markForCheck() retained - needed after onControlTouched() in zoneless mode
11060
11654
  this.cdr.markForCheck();
11061
11655
  });
11062
11656
  }
@@ -11078,6 +11672,7 @@ class DatePickerComponent extends MultiTabStop {
11078
11672
  }
11079
11673
  }
11080
11674
  handleDateCompletenessChange() {
11675
+ // markForCheck() retained - form validation state needs to re-render in zoneless mode
11081
11676
  this.cdr.markForCheck();
11082
11677
  this.zone.run(() => this.onValidatorChange());
11083
11678
  }
@@ -12875,65 +13470,156 @@ class TimePickerMessages extends ComponentMessages {
12875
13470
  /**
12876
13471
  * Specifies the text of the **Accept** button in the popup footer of the TimeList.
12877
13472
  */
12878
- accept;
13473
+ set accept(value) {
13474
+ this._accept.set(value);
13475
+ }
13476
+ get accept() {
13477
+ return this._accept();
13478
+ }
12879
13479
  /**
12880
13480
  * Specifies the label of the **Accept** button in the popup footer of the TimeList.
12881
13481
  */
12882
- acceptLabel;
13482
+ set acceptLabel(value) {
13483
+ this._acceptLabel.set(value);
13484
+ }
13485
+ get acceptLabel() {
13486
+ return this._acceptLabel();
13487
+ }
12883
13488
  /**
12884
13489
  * Specifies the text of the **Cancel** button in the popup footer of the TimeList.
12885
13490
  */
12886
- cancel;
13491
+ set cancel(value) {
13492
+ this._cancel.set(value);
13493
+ }
13494
+ get cancel() {
13495
+ return this._cancel();
13496
+ }
12887
13497
  /**
12888
13498
  * Specifies the label of the **Cancel** button in the popup footer of the TimeList.
12889
13499
  */
12890
- cancelLabel;
13500
+ set cancelLabel(value) {
13501
+ this._cancelLabel.set(value);
13502
+ }
13503
+ get cancelLabel() {
13504
+ return this._cancelLabel();
13505
+ }
12891
13506
  /**
12892
13507
  * Specifies the text of the **Now** button in the popup header of the TimeList.
12893
13508
  */
12894
- now;
13509
+ set now(value) {
13510
+ this._now.set(value);
13511
+ }
13512
+ get now() {
13513
+ return this._now();
13514
+ }
12895
13515
  /**
12896
13516
  * Specifies the label of the **Now** button in the popup header of the TimeList.
12897
13517
  */
12898
- nowLabel;
13518
+ set nowLabel(value) {
13519
+ this._nowLabel.set(value);
13520
+ }
13521
+ get nowLabel() {
13522
+ return this._nowLabel();
13523
+ }
12899
13524
  /**
12900
13525
  * Specifies the title of the **Toggle** button of the TimePicker.
12901
13526
  */
12902
- toggle;
13527
+ set toggle(value) {
13528
+ this._toggle.set(value);
13529
+ }
13530
+ get toggle() {
13531
+ return this._toggle();
13532
+ }
12903
13533
  /**
12904
13534
  * Specifies the label of the **Hour** part in the TimePicker.
12905
13535
  */
12906
- hour;
13536
+ set hour(value) {
13537
+ this._hour.set(value);
13538
+ }
13539
+ get hour() {
13540
+ return this._hour();
13541
+ }
12907
13542
  /**
12908
13543
  * Specifies the label of the **Minute** part in the TimePicker.
12909
13544
  */
12910
- minute;
13545
+ set minute(value) {
13546
+ this._minute.set(value);
13547
+ }
13548
+ get minute() {
13549
+ return this._minute();
13550
+ }
12911
13551
  /**
12912
13552
  * Specifies the label of the **Second** part in the TimePicker.
12913
13553
  */
12914
- second;
13554
+ set second(value) {
13555
+ this._second.set(value);
13556
+ }
13557
+ get second() {
13558
+ return this._second();
13559
+ }
12915
13560
  /**
12916
13561
  * Specifies the label of the **Millisecond** part in the TimePicker.
12917
13562
  */
12918
- millisecond;
13563
+ set millisecond(value) {
13564
+ this._millisecond.set(value);
13565
+ }
13566
+ get millisecond() {
13567
+ return this._millisecond();
13568
+ }
12919
13569
  /**
12920
13570
  * Specifies the label of the **Dayperiod** part in the TimePicker.
12921
13571
  */
12922
- dayperiod;
13572
+ set dayperiod(value) {
13573
+ this._dayperiod.set(value);
13574
+ }
13575
+ get dayperiod() {
13576
+ return this._dayperiod();
13577
+ }
12923
13578
  /**
12924
13579
  * Specifies the title of the **Clear** button of the TimePicker.
12925
13580
  */
12926
- clearTitle;
13581
+ set clearTitle(value) {
13582
+ this._clearTitle.set(value);
13583
+ }
13584
+ get clearTitle() {
13585
+ return this._clearTitle();
13586
+ }
12927
13587
  /**
12928
- * Specifies the title of the **Close** button of the ActionSheet that renders instead of the popup when using small screen devices in adaptive mode.
13588
+ * Specifies the accessible label of the TimeSelector.
12929
13589
  */
12930
- adaptiveCloseButtonTitle;
13590
+ set timeSelectorLabel(value) {
13591
+ this._timeSelectorLabel.set(value);
13592
+ }
13593
+ ;
13594
+ get timeSelectorLabel() {
13595
+ return this._timeSelectorLabel();
13596
+ }
12931
13597
  /**
12932
- * Specifies the accessible label of the TimeSelector.
13598
+ * Specifies the title of the **Close** button of the ActionSheet that renders instead of the popup when using small screen devices in adaptive mode.
12933
13599
  */
12934
- timeSelectorLabel;
13600
+ set adaptiveCloseButtonTitle(value) {
13601
+ this._adaptiveCloseButtonTitle.set(value);
13602
+ }
13603
+ get adaptiveCloseButtonTitle() {
13604
+ return this._adaptiveCloseButtonTitle();
13605
+ }
13606
+ _accept = signal(undefined, ...(ngDevMode ? [{ debugName: "_accept" }] : []));
13607
+ _acceptLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_acceptLabel" }] : []));
13608
+ _cancel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancel" }] : []));
13609
+ _cancelLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancelLabel" }] : []));
13610
+ _now = signal(undefined, ...(ngDevMode ? [{ debugName: "_now" }] : []));
13611
+ _nowLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_nowLabel" }] : []));
13612
+ _toggle = signal(undefined, ...(ngDevMode ? [{ debugName: "_toggle" }] : []));
13613
+ _hour = signal(undefined, ...(ngDevMode ? [{ debugName: "_hour" }] : []));
13614
+ _minute = signal(undefined, ...(ngDevMode ? [{ debugName: "_minute" }] : []));
13615
+ _second = signal(undefined, ...(ngDevMode ? [{ debugName: "_second" }] : []));
13616
+ _millisecond = signal(undefined, ...(ngDevMode ? [{ debugName: "_millisecond" }] : []));
13617
+ _dayperiod = signal(undefined, ...(ngDevMode ? [{ debugName: "_dayperiod" }] : []));
13618
+ _clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
13619
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
13620
+ _timeSelectorLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeSelectorLabel" }] : []));
12935
13621
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TimePickerMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
12936
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: TimePickerMessages, isStandalone: true, 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", timeSelectorLabel: "timeSelectorLabel" }, usesInheritance: true, ngImport: i0 });
13622
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: TimePickerMessages, isStandalone: true, 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", timeSelectorLabel: "timeSelectorLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle" }, usesInheritance: true, ngImport: i0 });
12937
13623
  }
12938
13624
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TimePickerMessages, decorators: [{
12939
13625
  type: Directive,
@@ -12966,10 +13652,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12966
13652
  type: Input
12967
13653
  }], clearTitle: [{
12968
13654
  type: Input
12969
- }], adaptiveCloseButtonTitle: [{
12970
- type: Input
12971
13655
  }], timeSelectorLabel: [{
12972
13656
  type: Input
13657
+ }], adaptiveCloseButtonTitle: [{
13658
+ type: Input
12973
13659
  }] } });
12974
13660
 
12975
13661
  /**
@@ -13129,7 +13815,7 @@ class TimeSelectorComponent {
13129
13815
  set current(value) {
13130
13816
  this._current = timeInRange(this.snapTime(cloneDate(value || MIDNIGHT_DATE), this.min), this.min, this.max);
13131
13817
  if (!NgZone.isInAngularZone()) {
13132
- this.cdr.detectChanges();
13818
+ this.cdr.markForCheck();
13133
13819
  }
13134
13820
  }
13135
13821
  get current() {
@@ -13891,7 +14577,12 @@ class TimePickerComponent extends MultiTabStop {
13891
14577
  /**
13892
14578
  * @hidden
13893
14579
  */
13894
- focusableId;
14580
+ set focusableId(value) {
14581
+ this._focusableId.set(value);
14582
+ }
14583
+ get focusableId() {
14584
+ return this._focusableId();
14585
+ }
13895
14586
  /**
13896
14587
  * Determines whether the TimePicker is disabled
13897
14588
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/disabled-state)).
@@ -13899,14 +14590,24 @@ class TimePickerComponent extends MultiTabStop {
13899
14590
  *
13900
14591
  * @default false
13901
14592
  */
13902
- disabled = false;
14593
+ set disabled(value) {
14594
+ this._disabled.set(value);
14595
+ }
14596
+ get disabled() {
14597
+ return this._disabled();
14598
+ }
13903
14599
  /**
13904
14600
  * Determines the read-only state of the TimePicker
13905
14601
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/readonly-state#read-only-timepicker)).
13906
14602
  *
13907
14603
  * @default false
13908
14604
  */
13909
- readonly = false;
14605
+ set readonly(value) {
14606
+ this._readonly.set(value);
14607
+ }
14608
+ get readonly() {
14609
+ return this._readonly();
14610
+ }
13910
14611
  /**
13911
14612
  * Sets the read-only state of the TimePicker input field
13912
14613
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/readonly-state#read-only-input)).
@@ -13915,42 +14616,67 @@ class TimePickerComponent extends MultiTabStop {
13915
14616
  * the input will be rendered in a read-only state regardless of the `readOnlyInput` value.
13916
14617
  * @default false
13917
14618
  */
13918
- readOnlyInput = false;
14619
+ set readOnlyInput(value) {
14620
+ this._readOnlyInput.set(value);
14621
+ }
14622
+ get readOnlyInput() {
14623
+ return this._readOnlyInput();
14624
+ }
13919
14625
  /**
13920
14626
  * If set to `true`, renders a clear button after the input text or TimePicker value has been changed.
13921
14627
  * Clicking this button resets the value of the component to `null` and triggers the `valueChange` event.
13922
14628
  * @default false
13923
14629
  */
13924
- clearButton = false;
14630
+ set clearButton(value) {
14631
+ this._clearButton.set(value);
14632
+ }
14633
+ get clearButton() {
14634
+ return this._clearButton();
14635
+ }
13925
14636
  /**
13926
14637
  * Specifies the time format that is used to display the input value
13927
14638
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/formats)).
13928
14639
  * @default 't'
13929
14640
  */
13930
- format = 't';
14641
+ set format(value) {
14642
+ this._format.set(value);
14643
+ }
14644
+ get format() {
14645
+ return this._format();
14646
+ }
13931
14647
  /**
13932
14648
  * Defines the descriptions of the format sections in the input field.
13933
14649
  * For more information, refer to the article on
13934
14650
  * [placeholders](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/placeholders).
13935
14651
  */
13936
- formatPlaceholder;
14652
+ set formatPlaceholder(value) {
14653
+ this._formatPlaceholder.set(value);
14654
+ }
14655
+ get formatPlaceholder() {
14656
+ return this._formatPlaceholder();
14657
+ }
13937
14658
  /**
13938
14659
  * Specifies the hint the TimePicker displays when its value is `null`.
13939
14660
  * For more information, refer to the article on
13940
14661
  * [placeholders](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/placeholders).
13941
14662
  * @default null
13942
14663
  */
13943
- placeholder;
14664
+ set placeholder(value) {
14665
+ this._placeholder.set(value);
14666
+ }
14667
+ get placeholder() {
14668
+ return this._placeholder();
14669
+ }
13944
14670
  /**
13945
14671
  * Specifies the smallest valid time value
13946
14672
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/time-ranges)).
13947
14673
  * @default `00:00:00`
13948
14674
  */
13949
14675
  set min(min) {
13950
- this._min = cloneDate(min || MIN_TIME);
14676
+ this._min.set(cloneDate(min || MIN_TIME));
13951
14677
  }
13952
14678
  get min() {
13953
- return this._min;
14679
+ return this._min();
13954
14680
  }
13955
14681
  /**
13956
14682
  * Specifies the biggest valid time value
@@ -13958,45 +14684,75 @@ class TimePickerComponent extends MultiTabStop {
13958
14684
  * @default `23:59:59`
13959
14685
  */
13960
14686
  set max(max) {
13961
- this._max = cloneDate(max || MAX_TIME);
14687
+ this._max.set(cloneDate(max || MAX_TIME));
13962
14688
  }
13963
14689
  get max() {
13964
- return this._max;
14690
+ return this._max();
13965
14691
  }
13966
14692
  /**
13967
14693
  * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
13968
14694
  *
13969
14695
  * @default false
13970
14696
  */
13971
- incompleteDateValidation = false;
14697
+ set incompleteDateValidation(value) {
14698
+ this._incompleteDateValidation.set(value);
14699
+ }
14700
+ get incompleteDateValidation() {
14701
+ return this._incompleteDateValidation();
14702
+ }
13972
14703
  /**
13973
14704
  * Determines whether to automatically move to the next segment after the user completes the current one.
13974
14705
  *
13975
14706
  * @default true
13976
14707
  */
13977
- autoSwitchParts = true;
14708
+ set autoSwitchParts(value) {
14709
+ this._autoSwitchParts.set(value);
14710
+ }
14711
+ get autoSwitchParts() {
14712
+ return this._autoSwitchParts();
14713
+ }
13978
14714
  /**
13979
14715
  * A string array representing custom keys, which will move the focus to the next date format segment.
13980
14716
  */
13981
- autoSwitchKeys = [];
14717
+ set autoSwitchKeys(value) {
14718
+ this._autoSwitchKeys.set(value);
14719
+ }
14720
+ get autoSwitchKeys() {
14721
+ return this._autoSwitchKeys();
14722
+ }
13982
14723
  /**
13983
14724
  * Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
13984
14725
  *
13985
14726
  * @default true
13986
14727
  */
13987
- enableMouseWheel = true;
14728
+ set enableMouseWheel(value) {
14729
+ this._enableMouseWheel.set(value);
14730
+ }
14731
+ get enableMouseWheel() {
14732
+ return this._enableMouseWheel();
14733
+ }
13988
14734
  /**
13989
14735
  * Determines if the users should see a blinking caret inside the Date Input when possible.
13990
14736
  *
13991
14737
  * @default false
13992
14738
  */
13993
- allowCaretMode = false;
14739
+ set allowCaretMode(value) {
14740
+ this._allowCaretMode.set(value);
14741
+ }
14742
+ get allowCaretMode() {
14743
+ return this._allowCaretMode();
14744
+ }
13994
14745
  /**
13995
14746
  * Determines whether to display the **Cancel** button in the popup.
13996
14747
  *
13997
14748
  * @default true
13998
14749
  */
13999
- cancelButton = true;
14750
+ set cancelButton(value) {
14751
+ this._cancelButton.set(value);
14752
+ }
14753
+ get cancelButton() {
14754
+ return this._cancelButton();
14755
+ }
14000
14756
  /**
14001
14757
  * Determines whether to display the **Now** button in the popup.
14002
14758
  *
@@ -14004,7 +14760,12 @@ class TimePickerComponent extends MultiTabStop {
14004
14760
  *
14005
14761
  * @default true
14006
14762
  */
14007
- nowButton = true;
14763
+ set nowButton(value) {
14764
+ this._nowButton.set(value);
14765
+ }
14766
+ get nowButton() {
14767
+ return this._nowButton();
14768
+ }
14008
14769
  /**
14009
14770
  * Configures the incremental steps of the TimePicker.
14010
14771
  * For more information, refer to the article on
@@ -14013,10 +14774,10 @@ class TimePickerComponent extends MultiTabStop {
14013
14774
  * If the incremental step is greater than `1`, the **Now** button will be hidden.
14014
14775
  */
14015
14776
  set steps(steps) {
14016
- this._steps = steps || {};
14777
+ this._steps.set(steps || {});
14017
14778
  }
14018
14779
  get steps() {
14019
- return this._steps;
14780
+ return this._steps();
14020
14781
  }
14021
14782
  /**
14022
14783
  * Configures the popup of the TimePicker.
@@ -14026,47 +14787,72 @@ class TimePickerComponent extends MultiTabStop {
14026
14787
  * The `popupClass` option specifies a list of CSS classes that are used to style the popup.
14027
14788
  */
14028
14789
  set popupSettings(settings) {
14029
- this._popupSettings = Object.assign({}, { animate: true }, settings);
14790
+ this._popupSettings.set(Object.assign({}, { animate: true }, settings));
14030
14791
  }
14031
14792
  get popupSettings() {
14032
- return this._popupSettings;
14793
+ return this._popupSettings();
14033
14794
  }
14034
14795
  /**
14035
14796
  * Sets the tabindex of the TimePicker component.
14036
14797
  * @default 0
14037
14798
  */
14038
- tabindex = 0;
14799
+ set tabindex(value) {
14800
+ this._tabindex.set(value);
14801
+ }
14802
+ get tabindex() {
14803
+ return this._tabindex();
14804
+ }
14039
14805
  /**
14040
14806
  * @hidden
14041
14807
  */
14042
14808
  set tabIndex(tabIndex) {
14043
- this.tabindex = tabIndex;
14809
+ this._tabindex.set(tabIndex);
14044
14810
  }
14045
14811
  get tabIndex() {
14046
- return this.tabindex;
14812
+ return this._tabindex();
14047
14813
  }
14048
14814
  /**
14049
14815
  * Sets the title of the input element of the TimePicker and the title text rendered
14050
14816
  * in the header of the popup(action sheet). Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
14051
14817
  */
14052
- adaptiveTitle = '';
14818
+ set adaptiveTitle(value) {
14819
+ this._adaptiveTitle.set(value);
14820
+ }
14821
+ get adaptiveTitle() {
14822
+ return this._adaptiveTitle();
14823
+ }
14053
14824
  /**
14054
14825
  * Sets the subtitle text rendered in the header of the popup(action sheet).
14055
14826
  * Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
14056
14827
  * By default, subtitle is not rendered.
14057
14828
  */
14058
- adaptiveSubtitle;
14829
+ set adaptiveSubtitle(value) {
14830
+ this._adaptiveSubtitle.set(value);
14831
+ }
14832
+ get adaptiveSubtitle() {
14833
+ return this._adaptiveSubtitle();
14834
+ }
14059
14835
  /**
14060
14836
  * Determines whether the built-in min or max validators are enforced when a form is being validated.
14061
14837
  *
14062
14838
  * @default true
14063
14839
  */
14064
- rangeValidation = true;
14840
+ set rangeValidation(value) {
14841
+ this._rangeValidation.set(value);
14842
+ }
14843
+ get rangeValidation() {
14844
+ return this._rangeValidation();
14845
+ }
14065
14846
  /**
14066
14847
  * Determines whether the TimePicker is in adaptive mode.
14067
14848
  * @default 'none'
14068
14849
  */
14069
- adaptiveMode = 'none';
14850
+ set adaptiveMode(value) {
14851
+ this._adaptiveMode.set(value);
14852
+ }
14853
+ get adaptiveMode() {
14854
+ return this._adaptiveMode();
14855
+ }
14070
14856
  /**
14071
14857
  * Determines whether the TimePicker is in adaptive mode.
14072
14858
  *
@@ -14074,10 +14860,10 @@ class TimePickerComponent extends MultiTabStop {
14074
14860
  */
14075
14861
  set value(value) {
14076
14862
  this.verifyValue(value);
14077
- this._value = cloneDate(value);
14863
+ this._value.set(cloneDate(value));
14078
14864
  }
14079
14865
  get value() {
14080
- return this._value;
14866
+ return this._value();
14081
14867
  }
14082
14868
  /**
14083
14869
  * Sets the size of the component. The default value is set by the Kendo theme.
@@ -14089,10 +14875,10 @@ class TimePickerComponent extends MultiTabStop {
14089
14875
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
14090
14876
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', size));
14091
14877
  }
14092
- this._size = size;
14878
+ this._size.set(size);
14093
14879
  }
14094
14880
  get size() {
14095
- return this._size;
14881
+ return this._size();
14096
14882
  }
14097
14883
  /**
14098
14884
  * Sets the rounded styling of the component. The default value is set by the Kendo theme.
@@ -14103,10 +14889,10 @@ class TimePickerComponent extends MultiTabStop {
14103
14889
  if (rounded) {
14104
14890
  this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
14105
14891
  }
14106
- this._rounded = rounded;
14892
+ this._rounded.set(rounded);
14107
14893
  }
14108
14894
  get rounded() {
14109
- return this._rounded;
14895
+ return this._rounded();
14110
14896
  }
14111
14897
  /**
14112
14898
  * Sets the fillMode of the component. The default value is set by the Kendo theme.
@@ -14118,10 +14904,10 @@ class TimePickerComponent extends MultiTabStop {
14118
14904
  this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
14119
14905
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
14120
14906
  }
14121
- this._fillMode = fillMode;
14907
+ this._fillMode.set(fillMode);
14122
14908
  }
14123
14909
  get fillMode() {
14124
- return this._fillMode;
14910
+ return this._fillMode();
14125
14911
  }
14126
14912
  /**
14127
14913
  * Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
@@ -14129,7 +14915,12 @@ class TimePickerComponent extends MultiTabStop {
14129
14915
  * @remarks
14130
14916
  * This property is related to accessibility.
14131
14917
  */
14132
- inputAttributes;
14918
+ set inputAttributes(value) {
14919
+ this._inputAttributes.set(value);
14920
+ }
14921
+ get inputAttributes() {
14922
+ return this._inputAttributes();
14923
+ }
14133
14924
  /**
14134
14925
  * Fires each time the user selects a new value
14135
14926
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/events)).
@@ -14192,20 +14983,20 @@ class TimePickerComponent extends MultiTabStop {
14192
14983
  }
14193
14984
  }
14194
14985
  get show() {
14195
- return this._show;
14986
+ return this._show();
14196
14987
  }
14197
14988
  set show(show) {
14198
14989
  if (show && (this.disabled || this.readonly)) {
14199
14990
  return;
14200
14991
  }
14201
- const skipZone = !show && (!this._show || (!hasObservers(this.close) && !hasObservers(this.open)));
14992
+ const skipZone = !show && (!this._show() || (!hasObservers(this.close) && !hasObservers(this.open)));
14202
14993
  if (!skipZone) {
14203
14994
  this.zone.run(() => {
14204
14995
  const event = new PreventableEvent();
14205
- if (!this._show && show) {
14996
+ if (!this._show() && show) {
14206
14997
  this.open.emit(event);
14207
14998
  }
14208
- else if (this._show && !show) {
14999
+ else if (this._show() && !show) {
14209
15000
  this.close.emit(event);
14210
15001
  }
14211
15002
  if (event.isDefaultPrevented()) {
@@ -14261,21 +15052,42 @@ class TimePickerComponent extends MultiTabStop {
14261
15052
  resolvedPromise = Promise.resolve(null);
14262
15053
  timeRangeValidateFn = noop$2;
14263
15054
  incompleteValidator = noop$2;
14264
- _min = cloneDate(MIN_TIME);
14265
- _max = cloneDate(MAX_TIME);
14266
- _popupSettings = { animate: true };
14267
- _show = false;
14268
- _steps = {};
14269
- _value = null;
15055
+ _min = signal(cloneDate(MIN_TIME), ...(ngDevMode ? [{ debugName: "_min" }] : []));
15056
+ _max = signal(cloneDate(MAX_TIME), ...(ngDevMode ? [{ debugName: "_max" }] : []));
15057
+ _popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
15058
+ _show = signal(false, ...(ngDevMode ? [{ debugName: "_show" }] : []));
15059
+ _steps = signal({}, ...(ngDevMode ? [{ debugName: "_steps" }] : []));
15060
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : []));
14270
15061
  _active = false;
14271
15062
  localizationChangeSubscription;
14272
15063
  pickerSubscriptions;
14273
15064
  windowBlurSubscription;
14274
15065
  control;
14275
15066
  domEvents = [];
14276
- _size;
14277
- _rounded;
14278
- _fillMode;
15067
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
15068
+ _rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
15069
+ _fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
15070
+ _focusableId = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
15071
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
15072
+ _readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
15073
+ _readOnlyInput = signal(false, ...(ngDevMode ? [{ debugName: "_readOnlyInput" }] : []));
15074
+ _clearButton = signal(false, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
15075
+ _format = signal('t', ...(ngDevMode ? [{ debugName: "_format" }] : []));
15076
+ _formatPlaceholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_formatPlaceholder" }] : []));
15077
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
15078
+ _incompleteDateValidation = signal(false, ...(ngDevMode ? [{ debugName: "_incompleteDateValidation" }] : []));
15079
+ _autoSwitchParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoSwitchParts" }] : []));
15080
+ _autoSwitchKeys = signal([], ...(ngDevMode ? [{ debugName: "_autoSwitchKeys" }] : []));
15081
+ _enableMouseWheel = signal(true, ...(ngDevMode ? [{ debugName: "_enableMouseWheel" }] : []));
15082
+ _allowCaretMode = signal(false, ...(ngDevMode ? [{ debugName: "_allowCaretMode" }] : []));
15083
+ _cancelButton = signal(true, ...(ngDevMode ? [{ debugName: "_cancelButton" }] : []));
15084
+ _nowButton = signal(true, ...(ngDevMode ? [{ debugName: "_nowButton" }] : []));
15085
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
15086
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
15087
+ _adaptiveSubtitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
15088
+ _rangeValidation = signal(true, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
15089
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
15090
+ _inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
14279
15091
  constructor(bus, zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, intl, adaptiveService) {
14280
15092
  super();
14281
15093
  this.bus = bus;
@@ -14325,6 +15137,14 @@ class TimePickerComponent extends MultiTabStop {
14325
15137
  this.setComponentClasses();
14326
15138
  this.windowSize = this.adaptiveService.size;
14327
15139
  this.pickerSubscriptions.add(this.control?.control?.statusChanges?.subscribe(() => this.cdr.markForCheck()));
15140
+ const control = this.control?.control;
15141
+ if (control && control.events) {
15142
+ this.pickerSubscriptions.add(control.events.subscribe(e => {
15143
+ if (e instanceof TouchedChangeEvent) {
15144
+ this.cdr.markForCheck();
15145
+ }
15146
+ }));
15147
+ }
14328
15148
  }
14329
15149
  /**
14330
15150
  * @hidden
@@ -14389,7 +15209,6 @@ class TimePickerComponent extends MultiTabStop {
14389
15209
  writeValue(value) {
14390
15210
  this.verifyValue(value);
14391
15211
  this.value = cloneDate(value);
14392
- this.cdr.markForCheck();
14393
15212
  if (!value && this.dateInput) {
14394
15213
  this.dateInput.placeholder = this.placeholder;
14395
15214
  this.dateInput.writeValue(value);
@@ -14411,8 +15230,7 @@ class TimePickerComponent extends MultiTabStop {
14411
15230
  * @hidden
14412
15231
  */
14413
15232
  setDisabledState(isDisabled) {
14414
- this.disabled = isDisabled;
14415
- this.cdr.markForCheck();
15233
+ this._disabled.set(isDisabled);
14416
15234
  }
14417
15235
  /**
14418
15236
  * @hidden
@@ -14506,7 +15324,7 @@ class TimePickerComponent extends MultiTabStop {
14506
15324
  * @hidden
14507
15325
  */
14508
15326
  handleActionSheetCollapse() {
14509
- // If not handled, the actionsheet expanded state does not get updated when overlay is clicked
15327
+ // markForCheck() retained - ActionSheet expanded state does not get updated when overlay is clicked without it
14510
15328
  this.cdr.markForCheck();
14511
15329
  }
14512
15330
  /**
@@ -14666,7 +15484,7 @@ class TimePickerComponent extends MultiTabStop {
14666
15484
  this.toggleFocus();
14667
15485
  }
14668
15486
  toggleActionSheet(show) {
14669
- if (show === this._show) {
15487
+ if (show === this._show()) {
14670
15488
  return;
14671
15489
  }
14672
15490
  if (show && !this.isOpen) {
@@ -14683,14 +15501,13 @@ class TimePickerComponent extends MultiTabStop {
14683
15501
  this.actionSheet.toggle();
14684
15502
  this.dateInput.focus();
14685
15503
  }
14686
- this._show = show;
15504
+ this._show.set(show);
14687
15505
  }
14688
15506
  togglePopup(show) {
14689
15507
  if (show === this.isOpen) {
14690
15508
  return;
14691
15509
  }
14692
- this._show = show;
14693
- this.cdr.markForCheck();
15510
+ this._show.set(show);
14694
15511
  if (show) {
14695
15512
  const direction = this.localization.rtl ? 'right' : 'left';
14696
15513
  const appendToComponent = typeof this.popupSettings.appendTo === 'string' && this.popupSettings.appendTo === 'component';
@@ -14793,6 +15610,7 @@ class TimePickerComponent extends MultiTabStop {
14793
15610
  if (hasObservers(this.onBlur) || (this.show && hasObservers(this.close)) || requiresZoneOnBlur(this.control)) {
14794
15611
  this.zone.run(() => {
14795
15612
  this.blurComponent();
15613
+ // markForCheck() retained - needed after onControlTouched() in zoneless mode
14796
15614
  this.cdr.markForCheck();
14797
15615
  });
14798
15616
  }
@@ -14808,6 +15626,7 @@ class TimePickerComponent extends MultiTabStop {
14808
15626
  this.onBlur.emit();
14809
15627
  }
14810
15628
  handleDateCompletenessChange() {
15629
+ // markForCheck() retained - form validation state needs to re-render in zoneless mode
14811
15630
  this.cdr.markForCheck();
14812
15631
  this.zone.run(() => this.onValidatorChange());
14813
15632
  }
@@ -15427,101 +16246,247 @@ class DateTimePickerMessages extends ComponentMessages {
15427
16246
  /**
15428
16247
  * The title of the **Toggle** button of the DateTimePicker.
15429
16248
  */
15430
- toggle;
16249
+ set toggle(value) {
16250
+ this._toggle.set(value);
16251
+ }
16252
+ get toggle() {
16253
+ return this._toggle();
16254
+ }
15431
16255
  /**
15432
16256
  * The text of the **Date** tab in the popup header of the DateTimePicker.
15433
16257
  */
15434
- dateTab;
16258
+ set dateTab(value) {
16259
+ this._dateTab.set(value);
16260
+ }
16261
+ get dateTab() {
16262
+ return this._dateTab();
16263
+ }
15435
16264
  /**
15436
16265
  * The label of the **Date** tab in the popup header of the DateTimePicker.
15437
16266
  */
15438
- dateTabLabel;
16267
+ set dateTabLabel(value) {
16268
+ this._dateTabLabel.set(value);
16269
+ }
16270
+ get dateTabLabel() {
16271
+ return this._dateTabLabel();
16272
+ }
15439
16273
  /**
15440
16274
  * The text of the **Time** tab in the popup header of the DateTimePicker.
15441
16275
  */
15442
- timeTab;
16276
+ set timeTab(value) {
16277
+ this._timeTab.set(value);
16278
+ }
16279
+ get timeTab() {
16280
+ return this._timeTab();
16281
+ }
15443
16282
  /**
15444
16283
  * The label of the **Time** tab in the popup header of the DateTimePicker.
15445
16284
  */
15446
- timeTabLabel;
16285
+ set timeTabLabel(value) {
16286
+ this._timeTabLabel.set(value);
16287
+ }
16288
+ get timeTabLabel() {
16289
+ return this._timeTabLabel();
16290
+ }
15447
16291
  /**
15448
16292
  * The text of the **Accept** button in the popup footer of the DateTimePicker.
15449
16293
  */
15450
- accept;
16294
+ set accept(value) {
16295
+ this._accept.set(value);
16296
+ }
16297
+ get accept() {
16298
+ return this._accept();
16299
+ }
15451
16300
  /**
15452
16301
  * The label of the **Accept** button in the popup footer of the DateTimePicker.
15453
16302
  */
15454
- acceptLabel;
16303
+ set acceptLabel(value) {
16304
+ this._acceptLabel.set(value);
16305
+ }
16306
+ get acceptLabel() {
16307
+ return this._acceptLabel();
16308
+ }
15455
16309
  /**
15456
16310
  * The text of the **Cancel** button in the popup footer of the DateTimePicker.
15457
16311
  */
15458
- cancel;
16312
+ set cancel(value) {
16313
+ this._cancel.set(value);
16314
+ }
16315
+ get cancel() {
16316
+ return this._cancel();
16317
+ }
15459
16318
  /**
15460
16319
  * The label of the **Cancel** button in the popup footer of the DateTimePicker.
15461
16320
  */
15462
- cancelLabel;
16321
+ set cancelLabel(value) {
16322
+ this._cancelLabel.set(value);
16323
+ }
16324
+ get cancelLabel() {
16325
+ return this._cancelLabel();
16326
+ }
15463
16327
  /**
15464
16328
  * The **Today** button text in the header of the Calendar.
15465
16329
  */
15466
- today;
16330
+ set today(value) {
16331
+ this._today.set(value);
16332
+ }
16333
+ get today() {
16334
+ return this._today();
16335
+ }
15467
16336
  /**
15468
16337
  * The text of the **Now** button in the popup header of the TimePicker.
15469
16338
  */
15470
- now;
16339
+ set now(value) {
16340
+ this._now.set(value);
16341
+ }
16342
+ get now() {
16343
+ return this._now();
16344
+ }
15471
16345
  /**
15472
16346
  * The label of the **Now** button in the popup header of the TimePicker.
15473
16347
  */
15474
- nowLabel;
16348
+ set nowLabel(value) {
16349
+ this._nowLabel.set(value);
16350
+ }
16351
+ get nowLabel() {
16352
+ return this._nowLabel();
16353
+ }
15475
16354
  /**
15476
16355
  * The title of the **Prev** button in the header of the Classic Calendar.
15477
16356
  */
15478
- prevButtonTitle;
16357
+ set prevButtonTitle(value) {
16358
+ this._prevButtonTitle.set(value);
16359
+ }
16360
+ get prevButtonTitle() {
16361
+ return this._prevButtonTitle();
16362
+ }
15479
16363
  /**
15480
16364
  * The title of the **Next** button in the header of the Classic Calendar.
15481
16365
  */
15482
- nextButtonTitle;
16366
+ set nextButtonTitle(value) {
16367
+ this._nextButtonTitle.set(value);
16368
+ }
16369
+ get nextButtonTitle() {
16370
+ return this._nextButtonTitle();
16371
+ }
15483
16372
  /**
15484
16373
  * The title of the **Parent View** button in the header of the Calendar.
15485
16374
  */
15486
- parentViewButtonTitle;
16375
+ set parentViewButtonTitle(value) {
16376
+ this._parentViewButtonTitle.set(value);
16377
+ }
16378
+ get parentViewButtonTitle() {
16379
+ return this._parentViewButtonTitle();
16380
+ }
15487
16381
  /**
15488
16382
  * The label of the **Hour** part in the TimePicker.
15489
16383
  */
15490
- hour;
16384
+ set hour(value) {
16385
+ this._hour.set(value);
16386
+ }
16387
+ get hour() {
16388
+ return this._hour();
16389
+ }
15491
16390
  /**
15492
16391
  * The label of the **Minute** part in the TimePicker.
15493
16392
  */
15494
- minute;
16393
+ set minute(value) {
16394
+ this._minute.set(value);
16395
+ }
16396
+ get minute() {
16397
+ return this._minute();
16398
+ }
15495
16399
  /**
15496
16400
  * The label of the **Second** part in the TimePicker.
15497
16401
  */
15498
- second;
16402
+ set second(value) {
16403
+ this._second.set(value);
16404
+ }
16405
+ get second() {
16406
+ return this._second();
16407
+ }
15499
16408
  /**
15500
16409
  * The label of the **Millisecond** part in the TimePicker.
15501
16410
  */
15502
- millisecond;
16411
+ set millisecond(value) {
16412
+ this._millisecond.set(value);
16413
+ }
16414
+ get millisecond() {
16415
+ return this._millisecond();
16416
+ }
15503
16417
  /**
15504
16418
  * The label of the **Dayperiod** part in the TimePicker.
15505
16419
  */
15506
- dayperiod;
16420
+ set dayperiod(value) {
16421
+ this._dayperiod.set(value);
16422
+ }
16423
+ get dayperiod() {
16424
+ return this._dayperiod();
16425
+ }
15507
16426
  /**
15508
16427
  * The title of the **Clear** button of the DateTimePicker.
15509
16428
  */
15510
- clearTitle;
15511
- /**
15512
- * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
15513
- */
15514
- adaptiveCloseButtonTitle;
16429
+ set clearTitle(value) {
16430
+ this._clearTitle.set(value);
16431
+ }
16432
+ get clearTitle() {
16433
+ return this._clearTitle();
16434
+ }
15515
16435
  /**
15516
16436
  * The accessible label of the date and time selector container.
15517
16437
  */
15518
- dateTimeSelectorLabel;
16438
+ set dateTimeSelectorLabel(value) {
16439
+ this._dateTimeSelectorLabel.set(value);
16440
+ }
16441
+ ;
16442
+ get dateTimeSelectorLabel() {
16443
+ return this._dateTimeSelectorLabel();
16444
+ }
15519
16445
  /**
15520
16446
  * The accessible label of the time selector element.
15521
16447
  */
15522
- timeSelectorLabel;
16448
+ set timeSelectorLabel(value) {
16449
+ this._timeSelectorLabel.set(value);
16450
+ }
16451
+ ;
16452
+ get timeSelectorLabel() {
16453
+ return this._timeSelectorLabel();
16454
+ }
16455
+ /**
16456
+ * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
16457
+ */
16458
+ set adaptiveCloseButtonTitle(value) {
16459
+ this._adaptiveCloseButtonTitle.set(value);
16460
+ }
16461
+ get adaptiveCloseButtonTitle() {
16462
+ return this._adaptiveCloseButtonTitle();
16463
+ }
16464
+ _toggle = signal(undefined, ...(ngDevMode ? [{ debugName: "_toggle" }] : []));
16465
+ _dateTab = signal(undefined, ...(ngDevMode ? [{ debugName: "_dateTab" }] : []));
16466
+ _dateTabLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_dateTabLabel" }] : []));
16467
+ _timeTab = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeTab" }] : []));
16468
+ _timeTabLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeTabLabel" }] : []));
16469
+ _accept = signal(undefined, ...(ngDevMode ? [{ debugName: "_accept" }] : []));
16470
+ _acceptLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_acceptLabel" }] : []));
16471
+ _cancel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancel" }] : []));
16472
+ _cancelLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancelLabel" }] : []));
16473
+ _today = signal(undefined, ...(ngDevMode ? [{ debugName: "_today" }] : []));
16474
+ _now = signal(undefined, ...(ngDevMode ? [{ debugName: "_now" }] : []));
16475
+ _nowLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_nowLabel" }] : []));
16476
+ _prevButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_prevButtonTitle" }] : []));
16477
+ _nextButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_nextButtonTitle" }] : []));
16478
+ _parentViewButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_parentViewButtonTitle" }] : []));
16479
+ _hour = signal(undefined, ...(ngDevMode ? [{ debugName: "_hour" }] : []));
16480
+ _minute = signal(undefined, ...(ngDevMode ? [{ debugName: "_minute" }] : []));
16481
+ _second = signal(undefined, ...(ngDevMode ? [{ debugName: "_second" }] : []));
16482
+ _millisecond = signal(undefined, ...(ngDevMode ? [{ debugName: "_millisecond" }] : []));
16483
+ _dayperiod = signal(undefined, ...(ngDevMode ? [{ debugName: "_dayperiod" }] : []));
16484
+ _clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
16485
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
16486
+ _dateTimeSelectorLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_dateTimeSelectorLabel" }] : []));
16487
+ _timeSelectorLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeSelectorLabel" }] : []));
15523
16488
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateTimePickerMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
15524
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DateTimePickerMessages, isStandalone: true, 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", dateTimeSelectorLabel: "dateTimeSelectorLabel", timeSelectorLabel: "timeSelectorLabel" }, usesInheritance: true, ngImport: i0 });
16489
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DateTimePickerMessages, isStandalone: true, 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", dateTimeSelectorLabel: "dateTimeSelectorLabel", timeSelectorLabel: "timeSelectorLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle" }, usesInheritance: true, ngImport: i0 });
15525
16490
  }
15526
16491
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateTimePickerMessages, decorators: [{
15527
16492
  type: Directive,
@@ -15570,12 +16535,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
15570
16535
  type: Input
15571
16536
  }], clearTitle: [{
15572
16537
  type: Input
15573
- }], adaptiveCloseButtonTitle: [{
15574
- type: Input
15575
16538
  }], dateTimeSelectorLabel: [{
15576
16539
  type: Input
15577
16540
  }], timeSelectorLabel: [{
15578
16541
  type: Input
16542
+ }], adaptiveCloseButtonTitle: [{
16543
+ type: Input
15579
16544
  }] } });
15580
16545
 
15581
16546
  /**
@@ -15699,19 +16664,22 @@ class DateTimePickerComponent extends MultiTabStop {
15699
16664
  /**
15700
16665
  * @hidden
15701
16666
  */
15702
- focusableId;
16667
+ set focusableId(value) { this._focusableId.set(value); }
16668
+ get focusableId() { return this._focusableId(); }
15703
16669
  /**
15704
16670
  * Sets the format of the displayed Calendar week days' names.
15705
16671
  * @default 'short'
15706
16672
  */
15707
- weekDaysFormat = "short";
16673
+ set weekDaysFormat(value) { this._weekDaysFormat.set(value); }
16674
+ get weekDaysFormat() { return this._weekDaysFormat(); }
15708
16675
  /**
15709
16676
  * Displays the days that fall out of the current month in the Calendar ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/calendar-options#displaying-other-month-days)).
15710
16677
  * You can set this to show or hide days from other months.
15711
16678
  *
15712
16679
  * For infinite Calendar the default value is `false`, while for classic Calendar it is `true`.
15713
16680
  */
15714
- showOtherMonthDays;
16681
+ set showOtherMonthDays(value) { this._showOtherMonthDays.set(value); }
16682
+ get showOtherMonthDays() { return this._showOtherMonthDays(); }
15715
16683
  /**
15716
16684
  * Sets the value of the DateTimePicker component.
15717
16685
  * You can set a specific date and time for the picker to display and use.
@@ -15720,12 +16688,11 @@ class DateTimePickerComponent extends MultiTabStop {
15720
16688
  */
15721
16689
  set value(value) {
15722
16690
  this.verifyValue(value);
15723
- this._value = cloneDate(value);
16691
+ this._value.set(cloneDate(value));
15724
16692
  this.setCalendarValue(value);
15725
- this.cdr.markForCheck();
15726
16693
  }
15727
16694
  get value() {
15728
- return this._value;
16695
+ return this._value();
15729
16696
  }
15730
16697
  /**
15731
16698
  * Specifies the date format for displaying the input value
@@ -15737,12 +16704,12 @@ class DateTimePickerComponent extends MultiTabStop {
15737
16704
  * If a FormatSettings object is provided, the displayFormat value will be used for the popup TimePicker.
15738
16705
  */
15739
16706
  set format(format) {
15740
- this._format = format;
16707
+ this._format.set(format);
15741
16708
  const displayFormat = this.getDisplayFormat(format);
15742
16709
  this.timeSelectorFormat = this.getTimeSelectorFormat(displayFormat);
15743
16710
  }
15744
16711
  get format() {
15745
- return this._format;
16712
+ return this._format();
15746
16713
  }
15747
16714
  /**
15748
16715
  * The maximum year to assume to be from the current century when typing two-digit year value
@@ -15752,7 +16719,8 @@ class DateTimePickerComponent extends MultiTabStop {
15752
16719
  * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.
15753
16720
  * @default 68
15754
16721
  */
15755
- twoDigitYearMax = TWO_DIGIT_YEAR_MAX;
16722
+ set twoDigitYearMax(value) { this._twoDigitYearMax.set(value); }
16723
+ get twoDigitYearMax() { return this._twoDigitYearMax(); }
15756
16724
  /**
15757
16725
  * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the DateTimePicker.
15758
16726
  *
@@ -15761,21 +16729,21 @@ class DateTimePickerComponent extends MultiTabStop {
15761
16729
  set tabindex(value) {
15762
16730
  const tabindex = Number(value);
15763
16731
  const defaultValue = 0;
15764
- this._tabindex = !isNaN(tabindex) ? tabindex : defaultValue;
16732
+ this._tabindex.set(!isNaN(tabindex) ? tabindex : defaultValue);
15765
16733
  }
15766
16734
  get tabindex() {
15767
- return this.disabled ? -1 : this._tabindex;
16735
+ return this.disabled ? -1 : this._tabindex();
15768
16736
  }
15769
16737
  /**
15770
16738
  * Sets the dates of the DateTimePicker that will be disabled
15771
16739
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/disabled-dates)).
15772
16740
  */
15773
16741
  set disabledDates(value) {
15774
- this._disabledDates = value;
16742
+ this._disabledDates.set(value);
15775
16743
  this.disabledDatesService.initialize(value);
15776
16744
  }
15777
16745
  get disabledDates() {
15778
- return this._disabledDates;
16746
+ return this._disabledDates();
15779
16747
  }
15780
16748
  /**
15781
16749
  * Configures the popup settings of the DateTimePicker
@@ -15786,30 +16754,33 @@ class DateTimePickerComponent extends MultiTabStop {
15786
16754
  * The `popupClass` option specifies a list of CSS classes that are used to style the popup.
15787
16755
  */
15788
16756
  set popupSettings(settings) {
15789
- this._popupSettings = Object.assign({}, { animate: true }, settings);
16757
+ this._popupSettings.set(Object.assign({}, { animate: true }, settings));
15790
16758
  }
15791
16759
  get popupSettings() {
15792
- return this._popupSettings;
16760
+ return this._popupSettings();
15793
16761
  }
15794
16762
  /**
15795
16763
  * Specifies the title of the input element of the DateTimePicker and the title text rendered
15796
16764
  * in the header of the popup (action sheet). Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
15797
16765
  * @default ''
15798
16766
  */
15799
- adaptiveTitle = '';
16767
+ set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
16768
+ get adaptiveTitle() { return this._adaptiveTitle(); }
15800
16769
  /**
15801
16770
  * Specifies the subtitle text rendered in the header of the popup (action sheet).
15802
16771
  * Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
15803
16772
  * @default ''
15804
16773
  */
15805
- adaptiveSubtitle = '';
16774
+ set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
16775
+ get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
15806
16776
  /**
15807
16777
  * Specifies the `disabled` property of the DateTimePicker and determines whether the component is active
15808
16778
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/disabled-state)).
15809
16779
  * To learn how to disable the component in reactive forms, refer to the article on [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/forms#managing-the-datetimepicker-disabled-state-in-reactive-forms).
15810
16780
  * @default false
15811
16781
  */
15812
- disabled = false;
16782
+ set disabled(value) { this._disabled.set(value); }
16783
+ get disabled() { return this._disabled(); }
15813
16784
  /**
15814
16785
  * Specifies the read-only state of the DateTimePicker
15815
16786
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/readonly-state#read-only-datetimepicker)).
@@ -15817,7 +16788,8 @@ class DateTimePickerComponent extends MultiTabStop {
15817
16788
  *
15818
16789
  * @default false
15819
16790
  */
15820
- readonly = false;
16791
+ set readonly(value) { this._readonly.set(value); }
16792
+ get readonly() { return this._readonly(); }
15821
16793
  /**
15822
16794
  * Determines whether the input field of the DateTimePicker is read-only
15823
16795
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/readonly-state#read-only-input)).
@@ -15827,39 +16799,46 @@ class DateTimePickerComponent extends MultiTabStop {
15827
16799
  *
15828
16800
  * @default false
15829
16801
  */
15830
- readOnlyInput = false;
16802
+ set readOnlyInput(value) { this._readOnlyInput.set(value); }
16803
+ get readOnlyInput() { return this._readOnlyInput(); }
15831
16804
  /**
15832
16805
  * Determines whether to display the **Cancel** button in the popup
15833
16806
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/popup-options#toggling-the-cancel-button)).
15834
16807
  * @default true
15835
16808
  */
15836
- cancelButton = true;
16809
+ set cancelButton(value) { this._cancelButton.set(value); }
16810
+ get cancelButton() { return this._cancelButton(); }
15837
16811
  /**
15838
16812
  * Defines the descriptions of the format sections in the input field
15839
16813
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/placeholders#format-sections-description)).
15840
16814
  */
15841
- formatPlaceholder;
16815
+ set formatPlaceholder(value) { this._formatPlaceholder.set(value); }
16816
+ get formatPlaceholder() { return this._formatPlaceholder(); }
15842
16817
  /**
15843
16818
  * Specifies the hint which is displayed by the DateTimePicker when its value is `null`
15844
16819
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/placeholders#text-hints)).
15845
16820
  */
15846
- placeholder;
16821
+ set placeholder(value) { this._placeholder.set(value); }
16822
+ get placeholder() { return this._placeholder(); }
15847
16823
  /**
15848
16824
  * Configures the incremental steps of the DateInput and the popup component of the TimePicker
15849
16825
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/incremental-steps)).
15850
16826
  */
15851
- steps = {};
16827
+ set steps(value) { this._steps.set(value); }
16828
+ get steps() { return this._steps(); }
15852
16829
  /**
15853
16830
  * Specifies the focused date of the popup Calendar
15854
16831
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/calendar-options#focused-dates)).
15855
16832
  */
15856
- focusedDate;
16833
+ set focusedDate(value) { this._focusedDate.set(value); }
16834
+ get focusedDate() { return this._focusedDate(); }
15857
16835
  /**
15858
16836
  * Specifies the Calendar type.
15859
16837
  *
15860
16838
  * @default 'infinite'
15861
16839
  */
15862
- calendarType = 'infinite';
16840
+ set calendarType(value) { this._calendarType.set(value); }
16841
+ get calendarType() { return this._calendarType(); }
15863
16842
  /**
15864
16843
  * Determines whether to enable animation when navigating to previous/next Calendar view.
15865
16844
  * Applies to the [`classic`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/datetimepickercomponent#calendartype) Calendar only.
@@ -15868,13 +16847,15 @@ class DateTimePickerComponent extends MultiTabStop {
15868
16847
  *
15869
16848
  * @default false
15870
16849
  */
15871
- animateCalendarNavigation = false;
16850
+ set animateCalendarNavigation(value) { this._animateCalendarNavigation.set(value); }
16851
+ get animateCalendarNavigation() { return this._animateCalendarNavigation(); }
15872
16852
  /**
15873
16853
  * Determines whether to display a week number column in the `month` view of the popup Calendar
15874
16854
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/calendar-options#week-number-column)).
15875
16855
  * @default false
15876
16856
  */
15877
- weekNumber = false;
16857
+ set weekNumber(value) { this._weekNumber.set(value); }
16858
+ get weekNumber() { return this._weekNumber(); }
15878
16859
  /**
15879
16860
  * Specifies the smallest valid date.
15880
16861
  * The Calendar will not display dates before this value.
@@ -15909,70 +16890,82 @@ class DateTimePickerComponent extends MultiTabStop {
15909
16890
  *
15910
16891
  * @default true
15911
16892
  */
15912
- rangeValidation = true;
16893
+ set rangeValidation(value) { this._rangeValidation.set(value); }
16894
+ get rangeValidation() { return this._rangeValidation(); }
15913
16895
  /**
15914
16896
  * Determines whether the built-in validator for disabled date ranges is enforced when validating a form
15915
16897
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/disabled-dates)).
15916
16898
  * @default true
15917
16899
  */
15918
- disabledDatesValidation = true;
16900
+ set disabledDatesValidation(value) { this._disabledDatesValidation.set(value); }
16901
+ get disabledDatesValidation() { return this._disabledDatesValidation(); }
15919
16902
  /**
15920
16903
  * Determines whether the built-in validation for incomplete dates is enforced when validating a form.
15921
16904
  * @default false
15922
16905
  */
15923
- incompleteDateValidation = false;
16906
+ set incompleteDateValidation(value) { this._incompleteDateValidation.set(value); }
16907
+ get incompleteDateValidation() { return this._incompleteDateValidation(); }
15924
16908
  /**
15925
16909
  * Determines whether to auto correct invalid segments automatically.
15926
16910
  *
15927
16911
  * @default true
15928
16912
  */
15929
- autoCorrectParts = true;
16913
+ set autoCorrectParts(value) { this._autoCorrectParts.set(value); }
16914
+ get autoCorrectParts() { return this._autoCorrectParts(); }
15930
16915
  /**
15931
16916
  * Determines whether to automatically move to the next segment after the user completes the current one.
15932
16917
  *
15933
16918
  * @default true
15934
16919
  */
15935
- autoSwitchParts = true;
16920
+ set autoSwitchParts(value) { this._autoSwitchParts.set(value); }
16921
+ get autoSwitchParts() { return this._autoSwitchParts(); }
15936
16922
  /**
15937
16923
  * Specifies custom keys that move the focus to the next date format segment.
15938
16924
  */
15939
- autoSwitchKeys = [];
16925
+ set autoSwitchKeys(value) { this._autoSwitchKeys.set(value); }
16926
+ get autoSwitchKeys() { return this._autoSwitchKeys(); }
15940
16927
  /**
15941
16928
  * Determines whether you can use the mouse scroll to increase or decrease the time segment values.
15942
16929
  *
15943
16930
  * @default true
15944
16931
  */
15945
- enableMouseWheel = true;
16932
+ set enableMouseWheel(value) { this._enableMouseWheel.set(value); }
16933
+ get enableMouseWheel() { return this._enableMouseWheel(); }
15946
16934
  /**
15947
16935
  * Determines whether you can see a blinking caret inside the DateInput when possible.
15948
16936
  *
15949
16937
  * @default false
15950
16938
  */
15951
- allowCaretMode = false;
16939
+ set allowCaretMode(value) { this._allowCaretMode.set(value); }
16940
+ get allowCaretMode() { return this._allowCaretMode(); }
15952
16941
  /**
15953
16942
  * Renders a clear button when set to `true` after the input text or DateTimePicker value has been changed.
15954
16943
  * Clicking this button resets the value of the component to `null` and triggers the `valueChange` event.
15955
16944
  * @default false
15956
16945
  */
15957
- clearButton = false;
16946
+ set clearButton(value) { this._clearButton.set(value); }
16947
+ get clearButton() { return this._clearButton(); }
15958
16948
  /**
15959
16949
  * Auto fills the rest of the date to the current date when the component loses focus.
15960
16950
  *
15961
16951
  * @default false
15962
16952
  */
15963
- autoFill = false;
16953
+ set autoFill(value) { this._autoFill.set(value); }
16954
+ get autoFill() { return this._autoFill(); }
15964
16955
  /**
15965
16956
  * Enables or disables the adaptive mode. The adaptive rendering is disabled by default.
15966
16957
  * @default 'none'
15967
16958
  */
15968
- adaptiveMode = 'none';
16959
+ set adaptiveMode(value) { this._adaptiveMode.set(value); }
16960
+ get adaptiveMode() { return this._adaptiveMode(); }
15969
16961
  /**
15970
16962
  * Specifies the HTML attributes of the inner focusable input element. You cannot change attributes that are essential for certain component functionalities.
15971
16963
  *
15972
16964
  * @remarks
15973
16965
  * This property is related to accessibility.
15974
16966
  */
15975
- inputAttributes;
16967
+ set inputAttributes(value) { this._inputAttributes.set(value); }
16968
+ get inputAttributes() { return this._inputAttributes(); }
15976
16969
  /**
15977
16970
  * Fires each time the user selects a new value
15978
16971
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/events)).
@@ -16030,11 +17023,11 @@ class DateTimePickerComponent extends MultiTabStop {
16030
17023
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/popup-options#setting-the-default-tab)).
16031
17024
  */
16032
17025
  set defaultTab(tab) {
16033
- this._defaultTab = tab || DEFAULT_ACTIVE_TAB;
17026
+ this._defaultTab.set(tab || DEFAULT_ACTIVE_TAB);
16034
17027
  this.activeTab = this.defaultTab;
16035
17028
  }
16036
17029
  get defaultTab() {
16037
- return this._defaultTab;
17030
+ return this._defaultTab();
16038
17031
  }
16039
17032
  /**
16040
17033
  * Specifies the size of the component. The default value is set by the Kendo theme.
@@ -16046,10 +17039,10 @@ class DateTimePickerComponent extends MultiTabStop {
16046
17039
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
16047
17040
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', size));
16048
17041
  }
16049
- this._size = size;
17042
+ this._size.set(size);
16050
17043
  }
16051
17044
  get size() {
16052
- return this._size;
17045
+ return this._size();
16053
17046
  }
16054
17047
  /**
16055
17048
  * Specifies the border radius of the component. The default value is set by the Kendo theme.
@@ -16060,10 +17053,10 @@ class DateTimePickerComponent extends MultiTabStop {
16060
17053
  if (rounded) {
16061
17054
  this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
16062
17055
  }
16063
- this._rounded = rounded;
17056
+ this._rounded.set(rounded);
16064
17057
  }
16065
17058
  get rounded() {
16066
- return this._rounded;
17059
+ return this._rounded();
16067
17060
  }
16068
17061
  /**
16069
17062
  * Specifies the fill mode of the component. The default value is set by the Kendo theme.
@@ -16076,10 +17069,10 @@ class DateTimePickerComponent extends MultiTabStop {
16076
17069
  this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
16077
17070
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
16078
17071
  }
16079
- this._fillMode = fillMode;
17072
+ this._fillMode.set(fillMode);
16080
17073
  }
16081
17074
  get fillMode() {
16082
- return this._fillMode;
17075
+ return this._fillMode();
16083
17076
  }
16084
17077
  /**
16085
17078
  * @hidden
@@ -16237,7 +17230,8 @@ class DateTimePickerComponent extends MultiTabStop {
16237
17230
  * Toggles the visibility of the Calendar footer.
16238
17231
  * @default false
16239
17232
  */
16240
- footer = false;
17233
+ set footer(value) { this._footer.set(value); }
17234
+ get footer() { return this._footer(); }
16241
17235
  get activeTabComponent() {
16242
17236
  if (!this.isOpen) {
16243
17237
  return;
@@ -16292,6 +17286,9 @@ class DateTimePickerComponent extends MultiTabStop {
16292
17286
  return this.popupRef?.popup.instance.container.nativeElement.querySelector(TIME_TAB_BUTTON_SELECTOR);
16293
17287
  }
16294
17288
  }
17289
+ get activeTabButton() {
17290
+ return this.activeTab === 'date' ? this.dateTabButton : this.timeTabButton;
17291
+ }
16295
17292
  get todayButton() {
16296
17293
  if (this.isAdaptive) {
16297
17294
  return this.actionSheet.element.nativeElement.querySelector(TODAY_BUTTON_SELECTOR);
@@ -16335,16 +17332,46 @@ class DateTimePickerComponent extends MultiTabStop {
16335
17332
  return control.invalid && (control.touched || control.dirty);
16336
17333
  }
16337
17334
  popupRef;
16338
- _popupSettings = { animate: true };
16339
- _value = null;
16340
- _format = DEFAULT_DATEINPUT_FORMAT;
16341
- _tabindex = 0;
16342
- _defaultTab = DEFAULT_ACTIVE_TAB;
17335
+ _popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
17336
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : []));
17337
+ _format = signal(DEFAULT_DATEINPUT_FORMAT, ...(ngDevMode ? [{ debugName: "_format" }] : []));
17338
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
17339
+ _defaultTab = signal(DEFAULT_ACTIVE_TAB, ...(ngDevMode ? [{ debugName: "_defaultTab" }] : []));
16343
17340
  _min = signal(mergeDateAndTime(MIN_DATE, MIN_TIME), ...(ngDevMode ? [{ debugName: "_min" }] : []));
16344
17341
  _max = signal(mergeDateAndTime(MAX_DATE, MAX_TIME), ...(ngDevMode ? [{ debugName: "_max" }] : []));
16345
- _disabledDates;
17342
+ _disabledDates = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledDates" }] : []));
16346
17343
  _isActive = false;
16347
17344
  _activeTab = signal(DEFAULT_ACTIVE_TAB, ...(ngDevMode ? [{ debugName: "_activeTab" }] : []));
17345
+ _focusableId = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
17346
+ _weekDaysFormat = signal('short', ...(ngDevMode ? [{ debugName: "_weekDaysFormat" }] : []));
17347
+ _showOtherMonthDays = signal(undefined, ...(ngDevMode ? [{ debugName: "_showOtherMonthDays" }] : []));
17348
+ _twoDigitYearMax = signal(TWO_DIGIT_YEAR_MAX, ...(ngDevMode ? [{ debugName: "_twoDigitYearMax" }] : []));
17349
+ _readOnlyInput = signal(false, ...(ngDevMode ? [{ debugName: "_readOnlyInput" }] : []));
17350
+ _cancelButton = signal(true, ...(ngDevMode ? [{ debugName: "_cancelButton" }] : []));
17351
+ _formatPlaceholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_formatPlaceholder" }] : []));
17352
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
17353
+ _steps = signal({}, ...(ngDevMode ? [{ debugName: "_steps" }] : []));
17354
+ _focusedDate = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusedDate" }] : []));
17355
+ _calendarType = signal('infinite', ...(ngDevMode ? [{ debugName: "_calendarType" }] : []));
17356
+ _animateCalendarNavigation = signal(false, ...(ngDevMode ? [{ debugName: "_animateCalendarNavigation" }] : []));
17357
+ _weekNumber = signal(false, ...(ngDevMode ? [{ debugName: "_weekNumber" }] : []));
17358
+ _rangeValidation = signal(true, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
17359
+ _disabledDatesValidation = signal(true, ...(ngDevMode ? [{ debugName: "_disabledDatesValidation" }] : []));
17360
+ _incompleteDateValidation = signal(false, ...(ngDevMode ? [{ debugName: "_incompleteDateValidation" }] : []));
17361
+ _autoCorrectParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoCorrectParts" }] : []));
17362
+ _autoSwitchParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoSwitchParts" }] : []));
17363
+ _autoSwitchKeys = signal([], ...(ngDevMode ? [{ debugName: "_autoSwitchKeys" }] : []));
17364
+ _enableMouseWheel = signal(true, ...(ngDevMode ? [{ debugName: "_enableMouseWheel" }] : []));
17365
+ _allowCaretMode = signal(false, ...(ngDevMode ? [{ debugName: "_allowCaretMode" }] : []));
17366
+ _clearButton = signal(false, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
17367
+ _autoFill = signal(false, ...(ngDevMode ? [{ debugName: "_autoFill" }] : []));
17368
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
17369
+ _inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
17370
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
17371
+ _adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
17372
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
17373
+ _footer = signal(false, ...(ngDevMode ? [{ debugName: "_footer" }] : []));
17374
+ _readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
16348
17375
  onControlTouched = noop$2;
16349
17376
  onControlChange = noop$2;
16350
17377
  onValidatorChange = noop$2;
@@ -16354,9 +17381,9 @@ class DateTimePickerComponent extends MultiTabStop {
16354
17381
  incompleteValidator = noop$2;
16355
17382
  subscriptions = new Subscription();
16356
17383
  ariaActiveDescendantSubscription;
16357
- _size;
16358
- _rounded;
16359
- _fillMode;
17384
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
17385
+ _rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
17386
+ _fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
16360
17387
  constructor(popupService, intl, cdr, pickerService, ngZone, wrapper, localization, disabledDatesService, renderer, injector, adaptiveService) {
16361
17388
  super();
16362
17389
  this.popupService = popupService;
@@ -16398,6 +17425,14 @@ class DateTimePickerComponent extends MultiTabStop {
16398
17425
  this.setComponentClasses();
16399
17426
  this.windowSize = this.adaptiveService.size;
16400
17427
  this.subscriptions.add(this.formControl?.statusChanges?.subscribe(() => this.cdr.markForCheck()));
17428
+ const control = this.formControl;
17429
+ if (control && control.events) {
17430
+ this.subscriptions.add(control.events.subscribe(e => {
17431
+ if (e instanceof TouchedChangeEvent) {
17432
+ this.cdr.markForCheck();
17433
+ }
17434
+ }));
17435
+ }
16401
17436
  }
16402
17437
  ngOnChanges(changes) {
16403
17438
  if (isPresent(changes['min']) || isPresent(changes['max'])) {
@@ -16482,7 +17517,6 @@ class DateTimePickerComponent extends MultiTabStop {
16482
17517
  writeValue(value) {
16483
17518
  this.verifyValue(value);
16484
17519
  this.value = cloneDate(value);
16485
- this.cdr.markForCheck();
16486
17520
  if (!value && this.dateInput) {
16487
17521
  this.dateInput.placeholder = this.placeholder;
16488
17522
  this.dateInput.writeValue(value);
@@ -16505,7 +17539,6 @@ class DateTimePickerComponent extends MultiTabStop {
16505
17539
  */
16506
17540
  setDisabledState(disabled) {
16507
17541
  this.disabled = disabled;
16508
- this.cdr.markForCheck();
16509
17542
  }
16510
17543
  /**
16511
17544
  * @hidden
@@ -16605,8 +17638,7 @@ class DateTimePickerComponent extends MultiTabStop {
16605
17638
  if (event.key !== Keys.Tab) {
16606
17639
  return;
16607
17640
  }
16608
- if ((event.shiftKey && event.target === this.dateTabButton) ||
16609
- (!event.shiftKey && event.target === this.timeTabButton)) {
17641
+ if (event.target === this.dateTabButton || event.target === this.timeTabButton) {
16610
17642
  this.handleTab(event);
16611
17643
  }
16612
17644
  }
@@ -16649,7 +17681,7 @@ class DateTimePickerComponent extends MultiTabStop {
16649
17681
  this.cancelButtonElement.focus();
16650
17682
  }
16651
17683
  else {
16652
- this.dateTabButton.focus();
17684
+ this.activeTabButton.focus();
16653
17685
  }
16654
17686
  }
16655
17687
  /**
@@ -16761,7 +17793,7 @@ class DateTimePickerComponent extends MultiTabStop {
16761
17793
  switch (event.target) {
16762
17794
  case this.acceptButton:
16763
17795
  if (!shiftKey) {
16764
- this.cancelButton ? this.cancelButtonElement.focus() : this.dateTabButton.focus();
17796
+ this.cancelButton ? this.cancelButtonElement.focus() : this.activeTabButton.focus();
16765
17797
  }
16766
17798
  else {
16767
17799
  if (this.activeTab === 'date') {
@@ -16774,7 +17806,7 @@ class DateTimePickerComponent extends MultiTabStop {
16774
17806
  break;
16775
17807
  case this.cancelButtonElement:
16776
17808
  if (this.calendarValue) {
16777
- shiftKey ? this.acceptButton.focus() : this.dateTabButton.focus();
17809
+ shiftKey ? this.acceptButton.focus() : this.activeTabButton.focus();
16778
17810
  }
16779
17811
  else {
16780
17812
  if (shiftKey) {
@@ -16786,34 +17818,37 @@ class DateTimePickerComponent extends MultiTabStop {
16786
17818
  }
16787
17819
  }
16788
17820
  else {
16789
- this.dateTabButton.focus();
17821
+ this.activeTabButton.focus();
16790
17822
  }
16791
17823
  }
16792
17824
  break;
16793
17825
  case this.dateTabButton:
16794
- if (this.cancelButton) {
16795
- this.cancelButtonElement.focus();
16796
- }
16797
- if (!this.cancelButton && this.calendarValue) {
16798
- this.acceptButton.focus();
16799
- }
16800
- if (!this.cancelButton && !this.calendarValue) {
16801
- if (this.activeTab === 'date') {
17826
+ case this.timeTabButton:
17827
+ if (shiftKey) {
17828
+ if (this.cancelButton) {
17829
+ this.cancelButtonElement.focus();
17830
+ }
17831
+ else if (this.calendarValue) {
17832
+ this.acceptButton.focus();
17833
+ }
17834
+ else if (this.activeTab === 'date') {
16802
17835
  this.calendar.monthView.list.nativeElement.focus();
16803
17836
  }
16804
17837
  else {
16805
17838
  this.timeSelector.timeLists.last.focus();
16806
17839
  }
16807
17840
  }
16808
- break;
16809
- case this.timeTabButton:
16810
- if (this.activeTab === 'time') {
16811
- this.timeSelector.showNowButton ?
16812
- this.timeSelector.now.nativeElement.focus() :
16813
- this.timeSelector.timeLists.first.focus();
16814
- }
16815
17841
  else {
16816
- this.todayButton.focus();
17842
+ if (this.activeTab === 'time') {
17843
+ this.timeSelector.showNowButton ?
17844
+ this.timeSelector.now.nativeElement.focus() :
17845
+ this.timeSelector.timeLists.first.focus();
17846
+ }
17847
+ else {
17848
+ (!this.todayButton || this.todayButton.disabled) ?
17849
+ this.calendar.monthView.list.nativeElement.focus() :
17850
+ this.todayButton.focus();
17851
+ }
16817
17852
  }
16818
17853
  break;
16819
17854
  default:
@@ -18550,23 +19585,53 @@ class DateRangePopupMessages extends ComponentMessages {
18550
19585
  /**
18551
19586
  * The text of the **Accept** button in the popup footer of the DateRange Popup.
18552
19587
  */
18553
- accept;
19588
+ set accept(value) {
19589
+ this._accept.set(value);
19590
+ }
19591
+ get accept() {
19592
+ return this._accept();
19593
+ }
18554
19594
  /**
18555
19595
  * The label of the **Accept** button in the popup footer of the DateRange Popup.
18556
19596
  */
18557
- acceptLabel;
19597
+ set acceptLabel(value) {
19598
+ this._acceptLabel.set(value);
19599
+ }
19600
+ get acceptLabel() {
19601
+ return this._acceptLabel();
19602
+ }
18558
19603
  /**
18559
19604
  * The text of the **Cancel** button in the popup footer of the DateRange Popup.
18560
19605
  */
18561
- cancel;
19606
+ set cancel(value) {
19607
+ this._cancel.set(value);
19608
+ }
19609
+ get cancel() {
19610
+ return this._cancel();
19611
+ }
18562
19612
  /**
18563
19613
  * The label of the **Cancel** button in the popup footer of the DateRange Popup.
18564
19614
  */
18565
- cancelLabel;
19615
+ set cancelLabel(value) {
19616
+ this._cancelLabel.set(value);
19617
+ }
19618
+ get cancelLabel() {
19619
+ return this._cancelLabel();
19620
+ }
18566
19621
  /**
18567
19622
  * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
18568
19623
  */
18569
- adaptiveCloseButtonTitle;
19624
+ set adaptiveCloseButtonTitle(value) {
19625
+ this._adaptiveCloseButtonTitle.set(value);
19626
+ }
19627
+ get adaptiveCloseButtonTitle() {
19628
+ return this._adaptiveCloseButtonTitle();
19629
+ }
19630
+ _accept = signal(undefined, ...(ngDevMode ? [{ debugName: "_accept" }] : []));
19631
+ _acceptLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_acceptLabel" }] : []));
19632
+ _cancel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancel" }] : []));
19633
+ _cancelLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancelLabel" }] : []));
19634
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
18570
19635
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateRangePopupMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18571
19636
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DateRangePopupMessages, isStandalone: true, selector: "kendo-daterangepopup-messages-base", inputs: { accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle" }, usesInheritance: true, ngImport: i0 });
18572
19637
  }
@@ -18658,18 +19723,21 @@ class DateRangePopupComponent {
18658
19723
  *
18659
19724
  * Determines whether to display the MultiViewCalendar header.
18660
19725
  */
18661
- showCalendarHeader = true;
19726
+ set showCalendarHeader(value) { this._showCalendarHeader.set(value); }
19727
+ get showCalendarHeader() { return this._showCalendarHeader(); }
18662
19728
  /**
18663
19729
  * Specifies the focused date of the MultiViewCalendar component.
18664
19730
  * Defines which date receives focus when the component loads ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/dates#focused-dates)).
18665
19731
  *
18666
19732
  * If the MultiViewCalendar is out of the min or max range, it normalizes the defined `focusedDate`.
18667
19733
  */
18668
- focusedDate;
19734
+ set focusedDate(value) { this._focusedDate.set(value); }
19735
+ get focusedDate() { return this._focusedDate(); }
18669
19736
  /**
18670
19737
  * Specifies the dates in the MultiViewCalendar that you want to disable ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/disabled-dates)).
18671
19738
  */
18672
- disabledDates;
19739
+ set disabledDates(value) { this._disabledDates.set(value); }
19740
+ get disabledDates() { return this._disabledDates(); }
18673
19741
  /**
18674
19742
  * Specifies the initial view that the MultiViewCalendar displays when it loads ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/view-options)).
18675
19743
  * By default, the active view is `month`.
@@ -18678,63 +19746,73 @@ class DateRangePopupComponent {
18678
19746
  *
18679
19747
  * @default 'month
18680
19748
  */
18681
- activeView = CalendarViewEnum[CalendarViewEnum.month];
19749
+ set activeView(value) { this._activeView.set(value); }
19750
+ get activeView() { return this._activeView(); }
18682
19751
  /**
18683
19752
  * Specifies the lowest view level that users can navigate to ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/view-depth)).
18684
19753
  *
18685
19754
  * @default 'month'
18686
19755
  */
18687
- bottomView = CalendarViewEnum[CalendarViewEnum.month];
19756
+ set bottomView(value) { this._bottomView.set(value); }
19757
+ get bottomView() { return this._bottomView(); }
18688
19758
  /**
18689
19759
  * Specifies the highest view level that users can navigate to ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/view-depth)).
18690
19760
  *
18691
19761
  * @default 'century'
18692
19762
  */
18693
- topView = CalendarViewEnum[CalendarViewEnum.century];
19763
+ set topView(value) { this._topView.set(value); }
19764
+ get topView() { return this._topView(); }
18694
19765
  /**
18695
19766
  * Specifies the minimum date that users can select ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/dates#focused-dates)).
18696
19767
  *
18697
19768
  * @default '1900-01-01'
18698
19769
  */
18699
- min;
19770
+ set min(value) { this._min.set(value); }
19771
+ get min() { return this._min(); }
18700
19772
  /**
18701
19773
  * Specifies the maximum date that users can select ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/dates#focused-dates)).
18702
19774
  *
18703
19775
  * @default '2099-12-31'
18704
19776
  */
18705
- max;
19777
+ set max(value) { this._max.set(value); }
19778
+ get max() { return this._max(); }
18706
19779
  /**
18707
19780
  * Determines whether users can select dates in reverse order.
18708
19781
  * When you set `allowReverse` to `true`, the component does not validate if the start date comes after the end date.
18709
19782
  *
18710
19783
  * @default false
18711
19784
  */
18712
- allowReverse = false;
19785
+ set allowReverse(value) { this._allowReverse.set(value); }
19786
+ get allowReverse() { return this._allowReverse(); }
18713
19787
  /**
18714
19788
  * Determines whether to animate transitions when users navigate between views.
18715
19789
  *
18716
19790
  * @default false
18717
19791
  */
18718
- animateNavigation = false;
19792
+ set animateNavigation(value) { this._animateNavigation.set(value); }
19793
+ get animateNavigation() { return this._animateNavigation(); }
18719
19794
  /**
18720
19795
  * Determines whether the MultiViewCalendar is interactive ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/disabled-state)).
18721
19796
  * When you set `disabled` to `true`, users cannot interact with the component.
18722
19797
  *
18723
19798
  * @default false
18724
19799
  */
18725
- disabled = false;
19800
+ set disabled(value) { this._disabled.set(value); }
19801
+ get disabled() { return this._disabled(); }
18726
19802
  /**
18727
19803
  * Specifies the number of calendar views to display side by side.
18728
19804
  *
18729
19805
  * @default 2
18730
19806
  */
18731
- views = 2;
19807
+ set views(value) { this._views.set(value); }
19808
+ get views() { return this._views(); }
18732
19809
  /**
18733
19810
  * Determines whether to display week numbers in the `month` view ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/week-num-column)).
18734
19811
  *
18735
19812
  * @default false
18736
19813
  */
18737
- weekNumber = false;
19814
+ set weekNumber(value) { this._weekNumber.set(value); }
19815
+ get weekNumber() { return this._weekNumber(); }
18738
19816
  /**
18739
19817
  * Controls the popup animations.
18740
19818
  * When you set `animate` to `true`, the popup displays opening and closing animations.
@@ -18743,40 +19821,46 @@ class DateRangePopupComponent {
18743
19821
  *
18744
19822
  * @default true
18745
19823
  */
18746
- animate = true;
19824
+ set animate(value) { this._animate.set(value); }
19825
+ get animate() { return this._animate(); }
18747
19826
  /**
18748
19827
  * Specifies the element that serves as an anchor for the popup.
18749
19828
  * The popup opens next to this element.
18750
19829
  * For more information, refer to the section on
18751
19830
  * [aligning to specific components](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#aligning-to-components).
18752
19831
  */
18753
- anchor;
19832
+ set anchor(value) { this._anchor.set(value); }
19833
+ get anchor() { return this._anchor(); }
18754
19834
  /**
18755
19835
  * Specifies the alignment point for the anchor element.
18756
19836
  * For more information, refer to the section on
18757
19837
  * [positioning](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning).
18758
19838
  */
18759
- anchorAlign;
19839
+ set anchorAlign(value) { this._anchorAlign.set(value); }
19840
+ get anchorAlign() { return this._anchorAlign(); }
18760
19841
  /**
18761
19842
  * Determines whether to display a header for each view ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/view-header)).
18762
19843
  * For example, displays the month name in the month view.
18763
19844
  *
18764
19845
  * @default false
18765
19846
  */
18766
- showViewHeader = false;
19847
+ set showViewHeader(value) { this._showViewHeader.set(value); }
19848
+ get showViewHeader() { return this._showViewHeader(); }
18767
19849
  /**
18768
19850
  * Determines whether to display days from adjacent months in the current month view ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/view-options#displaying-other-month-days)).
18769
19851
  *
18770
19852
  * @default false
18771
19853
  */
18772
- showOtherMonthDays = false;
19854
+ set showOtherMonthDays(value) { this._showOtherMonthDays.set(value); }
19855
+ get showOtherMonthDays() { return this._showOtherMonthDays(); }
18773
19856
  /**
18774
19857
  * Specifies where to render the popup container.
18775
19858
  * By default, the popup renders in the root component.
18776
19859
  *
18777
19860
  * @default 'root'
18778
19861
  */
18779
- appendTo;
19862
+ set appendTo(value) { this._appendToValue.set(value); }
19863
+ get appendTo() { return this._appendToValue(); }
18780
19864
  /**
18781
19865
  * Configures how the popup behaves when it encounters viewport boundaries.
18782
19866
  * For more information, refer to the article on
@@ -18784,39 +19868,45 @@ class DateRangePopupComponent {
18784
19868
  *
18785
19869
  * @default { horizontal: 'fit', vertical: 'flip' }
18786
19870
  */
18787
- collision = { horizontal: 'fit', vertical: 'flip' };
19871
+ set collision(value) { this._collision.set(value); }
19872
+ get collision() { return this._collision(); }
18788
19873
  /**
18789
19874
  * Specifies the alignment point for the popup element.
18790
19875
  * For more information, refer to the section on
18791
19876
  * [positioning](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning).
18792
19877
  */
18793
- popupAlign;
19878
+ set popupAlign(value) { this._popupAlign.set(value); }
19879
+ get popupAlign() { return this._popupAlign(); }
18794
19880
  /**
18795
19881
  * Specifies the margin around the popup in pixels.
18796
19882
  * Creates empty space between the popup and its anchor element.
18797
19883
  */
18798
- margin;
19884
+ set margin(value) { this._margin.set(value); }
19885
+ get margin() { return this._margin(); }
18799
19886
  /**
18800
19887
  * Determines whether the component uses adaptive rendering for different screen sizes.
18801
19888
  * By default, adaptive rendering is disabled.
18802
19889
  *
18803
19890
  * @default 'none'
18804
19891
  */
18805
- adaptiveMode = 'none';
19892
+ set adaptiveMode(value) { this._adaptiveMode.set(value); }
19893
+ get adaptiveMode() { return this._adaptiveMode(); }
18806
19894
  /**
18807
19895
  * Specifies the title text for the input element and the header of the action sheet.
18808
19896
  * Applies only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
18809
19897
  *
18810
19898
  * @default ""
18811
19899
  */
18812
- adaptiveTitle = "";
19900
+ set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
19901
+ get adaptiveTitle() { return this._adaptiveTitle(); }
18813
19902
  /**
18814
19903
  * Specifies the subtitle text displayed in the header of the action sheet.
18815
19904
  * Applies only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
18816
19905
  *
18817
19906
  * @default ""
18818
19907
  */
18819
- adaptiveSubtitle = "";
19908
+ set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
19909
+ get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
18820
19910
  /**
18821
19911
  * @hidden
18822
19912
  *
@@ -18824,7 +19914,8 @@ class DateRangePopupComponent {
18824
19914
  * Sets the size of the component.
18825
19915
  * @default undefined
18826
19916
  */
18827
- size;
19917
+ set size(value) { this._size.set(value); }
19918
+ get size() { return this._size(); }
18828
19919
  /**
18829
19920
  * Fires when the popup is about to open ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/daterange/popup#events)).
18830
19921
  * You can prevent this event to keep the popup closed.
@@ -18897,7 +19988,8 @@ class DateRangePopupComponent {
18897
19988
  /**
18898
19989
  * @hidden
18899
19990
  */
18900
- windowSize;
19991
+ get windowSize() { return this._windowSize(); }
19992
+ set windowSize(value) { this._windowSize.set(value); }
18901
19993
  /**
18902
19994
  * @hidden
18903
19995
  */
@@ -18906,7 +19998,7 @@ class DateRangePopupComponent {
18906
19998
  * Gets or sets the visibility state of the component.
18907
19999
  */
18908
20000
  set show(show) {
18909
- if (this._show === show) {
20001
+ if (this._show() === show) {
18910
20002
  return;
18911
20003
  }
18912
20004
  const event = new PreventableEvent();
@@ -18922,7 +20014,7 @@ class DateRangePopupComponent {
18922
20014
  this.toggleDateRange(show);
18923
20015
  }
18924
20016
  get show() {
18925
- return this._show;
20017
+ return this._show();
18926
20018
  }
18927
20019
  /**
18928
20020
  * @hidden
@@ -18940,7 +20032,34 @@ class DateRangePopupComponent {
18940
20032
  localizationSubscriptions = new Subscription();
18941
20033
  resolvedPromise = Promise.resolve();
18942
20034
  _calendar;
18943
- _show;
20035
+ _show = signal(undefined, ...(ngDevMode ? [{ debugName: "_show" }] : []));
20036
+ _showCalendarHeader = signal(true, ...(ngDevMode ? [{ debugName: "_showCalendarHeader" }] : []));
20037
+ _focusedDate = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusedDate" }] : []));
20038
+ _disabledDates = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledDates" }] : []));
20039
+ _activeView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_activeView" }] : []));
20040
+ _bottomView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_bottomView" }] : []));
20041
+ _topView = signal(CalendarViewEnum[CalendarViewEnum.century], ...(ngDevMode ? [{ debugName: "_topView" }] : []));
20042
+ _min = signal(undefined, ...(ngDevMode ? [{ debugName: "_min" }] : []));
20043
+ _max = signal(undefined, ...(ngDevMode ? [{ debugName: "_max" }] : []));
20044
+ _allowReverse = signal(false, ...(ngDevMode ? [{ debugName: "_allowReverse" }] : []));
20045
+ _animateNavigation = signal(false, ...(ngDevMode ? [{ debugName: "_animateNavigation" }] : []));
20046
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
20047
+ _views = signal(2, ...(ngDevMode ? [{ debugName: "_views" }] : []));
20048
+ _weekNumber = signal(false, ...(ngDevMode ? [{ debugName: "_weekNumber" }] : []));
20049
+ _animate = signal(true, ...(ngDevMode ? [{ debugName: "_animate" }] : []));
20050
+ _anchor = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchor" }] : []));
20051
+ _anchorAlign = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchorAlign" }] : []));
20052
+ _showViewHeader = signal(false, ...(ngDevMode ? [{ debugName: "_showViewHeader" }] : []));
20053
+ _showOtherMonthDays = signal(false, ...(ngDevMode ? [{ debugName: "_showOtherMonthDays" }] : []));
20054
+ _appendToValue = signal(undefined, ...(ngDevMode ? [{ debugName: "_appendToValue" }] : []));
20055
+ _collision = signal({ horizontal: 'fit', vertical: 'flip' }, ...(ngDevMode ? [{ debugName: "_collision" }] : []));
20056
+ _popupAlign = signal(undefined, ...(ngDevMode ? [{ debugName: "_popupAlign" }] : []));
20057
+ _margin = signal(undefined, ...(ngDevMode ? [{ debugName: "_margin" }] : []));
20058
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
20059
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
20060
+ _adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
20061
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
20062
+ _windowSize = signal(undefined, ...(ngDevMode ? [{ debugName: "_windowSize" }] : []));
18944
20063
  constructor(popupService, dateRangeService, zone, renderer, localization, cdr, rtl, adaptiveService) {
18945
20064
  this.popupService = popupService;
18946
20065
  this.dateRangeService = dateRangeService;
@@ -19022,7 +20141,6 @@ class DateRangePopupComponent {
19022
20141
  this.activateSubscription.unsubscribe();
19023
20142
  }
19024
20143
  this.show = true;
19025
- this.cdr.markForCheck();
19026
20144
  this.zone.runOutsideAngular(() => {
19027
20145
  this.activateSubscription = merge(this.contentCalendar.changes, this.viewCalendar.changes).pipe(filter(changes => changes && changes.first), map(changes => changes.first)).subscribe((calendar) => setTimeout(() => {
19028
20146
  calendar.focus();
@@ -19173,11 +20291,11 @@ class DateRangePopupComponent {
19173
20291
  return appendTo === 'component' ? this.container : appendTo;
19174
20292
  }
19175
20293
  togglePopup(show) {
19176
- this._show = show;
20294
+ this._show.set(show);
19177
20295
  if (this.popupRef) {
19178
20296
  this.destroyPopup();
19179
20297
  }
19180
- if (this._show) {
20298
+ if (this._show()) {
19181
20299
  const direction = this.rtl ? 'right' : 'left';
19182
20300
  this.popupRef = this.popupService.open({
19183
20301
  anchor: this.anchor,
@@ -19215,7 +20333,7 @@ class DateRangePopupComponent {
19215
20333
  }
19216
20334
  }
19217
20335
  toggleActionSheet(show) {
19218
- if (show === this._show) {
20336
+ if (show === this._show()) {
19219
20337
  return;
19220
20338
  }
19221
20339
  if (show && !this.actionSheet.expanded) {
@@ -19226,7 +20344,7 @@ class DateRangePopupComponent {
19226
20344
  else if (!show && this.actionSheet.expanded) {
19227
20345
  this.actionSheet.toggle();
19228
20346
  }
19229
- this._show = show;
20347
+ this._show.set(show);
19230
20348
  }
19231
20349
  addCalendarSubscription = (calendar) => {
19232
20350
  this.calendarSubscriptions.add(calendar.viewList.focusedCellChange.subscribe((id) => {
@@ -19389,11 +20507,13 @@ class DateRangePopupComponent {
19389
20507
  </div>
19390
20508
  </ng-template>
19391
20509
  </kendo-actionsheet>
19392
- `, isInline: true, dependencies: [{ kind: "directive", type: DateRangePopupLocalizedMessagesDirective, selector: "[kendoDateRangePopupLocalizedMessages]" }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { 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: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
20510
+ `, isInline: true, dependencies: [{ kind: "directive", type: DateRangePopupLocalizedMessagesDirective, selector: "[kendoDateRangePopupLocalizedMessages]" }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { 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: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19393
20511
  }
19394
20512
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateRangePopupComponent, decorators: [{
19395
20513
  type: Component,
19396
20514
  args: [{
20515
+ selector: 'kendo-daterange-popup',
20516
+ changeDetection: ChangeDetectionStrategy.OnPush,
19397
20517
  exportAs: 'kendo-daterange-popup',
19398
20518
  providers: [
19399
20519
  LocalizationService,
@@ -19402,7 +20522,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
19402
20522
  useValue: 'kendo.daterangepopup'
19403
20523
  }
19404
20524
  ],
19405
- selector: 'kendo-daterange-popup',
19406
20525
  template: `
19407
20526
  <ng-container kendoDateRangePopupLocalizedMessages
19408
20527
  i18n-accept="kendo.daterangepopup.accept|The Accept button text in the timepicker component"
@@ -19680,7 +20799,8 @@ class DateRangeComponent {
19680
20799
  *
19681
20800
  * @default undefined
19682
20801
  */
19683
- size;
20802
+ set size(value) { this._size.set(value); }
20803
+ get size() { return this._size(); }
19684
20804
  /**
19685
20805
  * @hidden
19686
20806
  */
@@ -19699,20 +20819,22 @@ class DateRangeComponent {
19699
20819
  /**
19700
20820
  * @hidden
19701
20821
  */
19702
- showDefault = false;
20822
+ get showDefault() { return this._showDefault(); }
19703
20823
  contentPopup;
19704
20824
  get hasContentPopup() {
19705
20825
  return this.contentPopup.length > 0;
19706
20826
  }
19707
20827
  subscription;
20828
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
20829
+ _showDefault = signal(false, ...(ngDevMode ? [{ debugName: "_showDefault" }] : []));
19708
20830
  constructor(dateRangeService) {
19709
20831
  this.dateRangeService = dateRangeService;
19710
20832
  validatePackage(packageMetadata);
19711
20833
  }
19712
20834
  ngAfterContentInit() {
19713
- this.showDefault = !this.hasContentPopup;
20835
+ this._showDefault.set(!this.hasContentPopup);
19714
20836
  this.subscription = this.contentPopup.changes.subscribe(() => {
19715
- this.showDefault = !this.hasContentPopup;
20837
+ this._showDefault.set(!this.hasContentPopup);
19716
20838
  });
19717
20839
  }
19718
20840
  ngOnDestroy() {
@@ -19728,17 +20850,18 @@ class DateRangeComponent {
19728
20850
  @if (showDefault) {
19729
20851
  <kendo-daterange-popup [size]="size"></kendo-daterange-popup>
19730
20852
  }
19731
- `, isInline: true, dependencies: [{ kind: "component", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: ["showCalendarHeader", "focusedDate", "disabledDates", "activeView", "bottomView", "topView", "min", "max", "allowReverse", "animateNavigation", "disabled", "views", "weekNumber", "animate", "anchor", "anchorAlign", "showViewHeader", "showOtherMonthDays", "appendTo", "collision", "popupAlign", "margin", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "size"], outputs: ["open", "close", "blur", "focus", "cancel"], exportAs: ["kendo-daterange-popup"] }] });
20853
+ `, isInline: true, dependencies: [{ kind: "component", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: ["showCalendarHeader", "focusedDate", "disabledDates", "activeView", "bottomView", "topView", "min", "max", "allowReverse", "animateNavigation", "disabled", "views", "weekNumber", "animate", "anchor", "anchorAlign", "showViewHeader", "showOtherMonthDays", "appendTo", "collision", "popupAlign", "margin", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "size"], outputs: ["open", "close", "blur", "focus", "cancel"], exportAs: ["kendo-daterange-popup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19732
20854
  }
19733
20855
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateRangeComponent, decorators: [{
19734
20856
  type: Component,
19735
20857
  args: [{
20858
+ selector: 'kendo-daterange',
20859
+ changeDetection: ChangeDetectionStrategy.OnPush,
19736
20860
  providers: [
19737
20861
  DateRangeService,
19738
20862
  { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DateRangeComponent) },
19739
20863
  provideComponentName('daterange')
19740
20864
  ],
19741
- selector: 'kendo-daterange',
19742
20865
  template: `
19743
20866
  <ng-content></ng-content>
19744
20867
  @if (showDefault) {