@progress/kendo-angular-dateinputs 25.1.0-develop.15 → 25.1.0-develop.16

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: 1787905705,
40
- version: '25.1.0-develop.15',
39
+ publishDate: 1787916702,
40
+ version: '25.1.0-develop.16',
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
  /**
@@ -10769,7 +11359,6 @@ class DatePickerComponent extends MultiTabStop {
10769
11359
  //due to async IE focus event
10770
11360
  this.handleFocus();
10771
11361
  this.show = !this.show;
10772
- this.cdr.markForCheck();
10773
11362
  }
10774
11363
  /**
10775
11364
  * @hidden
@@ -10920,10 +11509,10 @@ class DatePickerComponent extends MultiTabStop {
10920
11509
  this.toggleFocus();
10921
11510
  }
10922
11511
  togglePopup(show) {
10923
- if (show === this._show) {
11512
+ if (show === this._show()) {
10924
11513
  return;
10925
11514
  }
10926
- this._show = show;
11515
+ this._show.set(show);
10927
11516
  if (show) {
10928
11517
  const direction = this.localization.rtl ? 'right' : 'left';
10929
11518
  const appendToComponent = typeof this.popupSettings.appendTo === 'string' && this.popupSettings.appendTo === 'component';
@@ -10955,7 +11544,7 @@ class DatePickerComponent extends MultiTabStop {
10955
11544
  }
10956
11545
  }
10957
11546
  toggleActionSheet(show) {
10958
- if (show === this._show) {
11547
+ if (show === this._show()) {
10959
11548
  return;
10960
11549
  }
10961
11550
  if (show && !this.isOpen) {
@@ -10973,7 +11562,7 @@ class DatePickerComponent extends MultiTabStop {
10973
11562
  this.dateInput.focus();
10974
11563
  }
10975
11564
  }
10976
- this._show = show;
11565
+ this._show.set(show);
10977
11566
  }
10978
11567
  setAriaActiveDescendant() {
10979
11568
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
@@ -11057,6 +11646,7 @@ class DatePickerComponent extends MultiTabStop {
11057
11646
  if (hasObservers(this.onBlur) || (this.show && hasObservers(this.close)) || requiresZoneOnBlur(this.control)) {
11058
11647
  this.zone.run(() => {
11059
11648
  this.blurComponent();
11649
+ // markForCheck() retained - needed after onControlTouched() in zoneless mode
11060
11650
  this.cdr.markForCheck();
11061
11651
  });
11062
11652
  }
@@ -11078,6 +11668,7 @@ class DatePickerComponent extends MultiTabStop {
11078
11668
  }
11079
11669
  }
11080
11670
  handleDateCompletenessChange() {
11671
+ // markForCheck() retained - form validation state needs to re-render in zoneless mode
11081
11672
  this.cdr.markForCheck();
11082
11673
  this.zone.run(() => this.onValidatorChange());
11083
11674
  }
@@ -12875,65 +13466,156 @@ class TimePickerMessages extends ComponentMessages {
12875
13466
  /**
12876
13467
  * Specifies the text of the **Accept** button in the popup footer of the TimeList.
12877
13468
  */
12878
- accept;
13469
+ set accept(value) {
13470
+ this._accept.set(value);
13471
+ }
13472
+ get accept() {
13473
+ return this._accept();
13474
+ }
12879
13475
  /**
12880
13476
  * Specifies the label of the **Accept** button in the popup footer of the TimeList.
12881
13477
  */
12882
- acceptLabel;
13478
+ set acceptLabel(value) {
13479
+ this._acceptLabel.set(value);
13480
+ }
13481
+ get acceptLabel() {
13482
+ return this._acceptLabel();
13483
+ }
12883
13484
  /**
12884
13485
  * Specifies the text of the **Cancel** button in the popup footer of the TimeList.
12885
13486
  */
12886
- cancel;
13487
+ set cancel(value) {
13488
+ this._cancel.set(value);
13489
+ }
13490
+ get cancel() {
13491
+ return this._cancel();
13492
+ }
12887
13493
  /**
12888
13494
  * Specifies the label of the **Cancel** button in the popup footer of the TimeList.
12889
13495
  */
12890
- cancelLabel;
13496
+ set cancelLabel(value) {
13497
+ this._cancelLabel.set(value);
13498
+ }
13499
+ get cancelLabel() {
13500
+ return this._cancelLabel();
13501
+ }
12891
13502
  /**
12892
13503
  * Specifies the text of the **Now** button in the popup header of the TimeList.
12893
13504
  */
12894
- now;
13505
+ set now(value) {
13506
+ this._now.set(value);
13507
+ }
13508
+ get now() {
13509
+ return this._now();
13510
+ }
12895
13511
  /**
12896
13512
  * Specifies the label of the **Now** button in the popup header of the TimeList.
12897
13513
  */
12898
- nowLabel;
13514
+ set nowLabel(value) {
13515
+ this._nowLabel.set(value);
13516
+ }
13517
+ get nowLabel() {
13518
+ return this._nowLabel();
13519
+ }
12899
13520
  /**
12900
13521
  * Specifies the title of the **Toggle** button of the TimePicker.
12901
13522
  */
12902
- toggle;
13523
+ set toggle(value) {
13524
+ this._toggle.set(value);
13525
+ }
13526
+ get toggle() {
13527
+ return this._toggle();
13528
+ }
12903
13529
  /**
12904
13530
  * Specifies the label of the **Hour** part in the TimePicker.
12905
13531
  */
12906
- hour;
13532
+ set hour(value) {
13533
+ this._hour.set(value);
13534
+ }
13535
+ get hour() {
13536
+ return this._hour();
13537
+ }
12907
13538
  /**
12908
13539
  * Specifies the label of the **Minute** part in the TimePicker.
12909
13540
  */
12910
- minute;
13541
+ set minute(value) {
13542
+ this._minute.set(value);
13543
+ }
13544
+ get minute() {
13545
+ return this._minute();
13546
+ }
12911
13547
  /**
12912
13548
  * Specifies the label of the **Second** part in the TimePicker.
12913
13549
  */
12914
- second;
13550
+ set second(value) {
13551
+ this._second.set(value);
13552
+ }
13553
+ get second() {
13554
+ return this._second();
13555
+ }
12915
13556
  /**
12916
13557
  * Specifies the label of the **Millisecond** part in the TimePicker.
12917
13558
  */
12918
- millisecond;
13559
+ set millisecond(value) {
13560
+ this._millisecond.set(value);
13561
+ }
13562
+ get millisecond() {
13563
+ return this._millisecond();
13564
+ }
12919
13565
  /**
12920
13566
  * Specifies the label of the **Dayperiod** part in the TimePicker.
12921
13567
  */
12922
- dayperiod;
13568
+ set dayperiod(value) {
13569
+ this._dayperiod.set(value);
13570
+ }
13571
+ get dayperiod() {
13572
+ return this._dayperiod();
13573
+ }
12923
13574
  /**
12924
13575
  * Specifies the title of the **Clear** button of the TimePicker.
12925
13576
  */
12926
- clearTitle;
13577
+ set clearTitle(value) {
13578
+ this._clearTitle.set(value);
13579
+ }
13580
+ get clearTitle() {
13581
+ return this._clearTitle();
13582
+ }
12927
13583
  /**
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.
13584
+ * Specifies the accessible label of the TimeSelector.
12929
13585
  */
12930
- adaptiveCloseButtonTitle;
13586
+ set timeSelectorLabel(value) {
13587
+ this._timeSelectorLabel.set(value);
13588
+ }
13589
+ ;
13590
+ get timeSelectorLabel() {
13591
+ return this._timeSelectorLabel();
13592
+ }
12931
13593
  /**
12932
- * Specifies the accessible label of the TimeSelector.
13594
+ * 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
13595
  */
12934
- timeSelectorLabel;
13596
+ set adaptiveCloseButtonTitle(value) {
13597
+ this._adaptiveCloseButtonTitle.set(value);
13598
+ }
13599
+ get adaptiveCloseButtonTitle() {
13600
+ return this._adaptiveCloseButtonTitle();
13601
+ }
13602
+ _accept = signal(undefined, ...(ngDevMode ? [{ debugName: "_accept" }] : []));
13603
+ _acceptLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_acceptLabel" }] : []));
13604
+ _cancel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancel" }] : []));
13605
+ _cancelLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancelLabel" }] : []));
13606
+ _now = signal(undefined, ...(ngDevMode ? [{ debugName: "_now" }] : []));
13607
+ _nowLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_nowLabel" }] : []));
13608
+ _toggle = signal(undefined, ...(ngDevMode ? [{ debugName: "_toggle" }] : []));
13609
+ _hour = signal(undefined, ...(ngDevMode ? [{ debugName: "_hour" }] : []));
13610
+ _minute = signal(undefined, ...(ngDevMode ? [{ debugName: "_minute" }] : []));
13611
+ _second = signal(undefined, ...(ngDevMode ? [{ debugName: "_second" }] : []));
13612
+ _millisecond = signal(undefined, ...(ngDevMode ? [{ debugName: "_millisecond" }] : []));
13613
+ _dayperiod = signal(undefined, ...(ngDevMode ? [{ debugName: "_dayperiod" }] : []));
13614
+ _clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
13615
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
13616
+ _timeSelectorLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeSelectorLabel" }] : []));
12935
13617
  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 });
13618
+ 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
13619
  }
12938
13620
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TimePickerMessages, decorators: [{
12939
13621
  type: Directive,
@@ -12966,10 +13648,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12966
13648
  type: Input
12967
13649
  }], clearTitle: [{
12968
13650
  type: Input
12969
- }], adaptiveCloseButtonTitle: [{
12970
- type: Input
12971
13651
  }], timeSelectorLabel: [{
12972
13652
  type: Input
13653
+ }], adaptiveCloseButtonTitle: [{
13654
+ type: Input
12973
13655
  }] } });
12974
13656
 
12975
13657
  /**
@@ -13129,7 +13811,7 @@ class TimeSelectorComponent {
13129
13811
  set current(value) {
13130
13812
  this._current = timeInRange(this.snapTime(cloneDate(value || MIDNIGHT_DATE), this.min), this.min, this.max);
13131
13813
  if (!NgZone.isInAngularZone()) {
13132
- this.cdr.detectChanges();
13814
+ this.cdr.markForCheck();
13133
13815
  }
13134
13816
  }
13135
13817
  get current() {
@@ -13891,7 +14573,12 @@ class TimePickerComponent extends MultiTabStop {
13891
14573
  /**
13892
14574
  * @hidden
13893
14575
  */
13894
- focusableId;
14576
+ set focusableId(value) {
14577
+ this._focusableId.set(value);
14578
+ }
14579
+ get focusableId() {
14580
+ return this._focusableId();
14581
+ }
13895
14582
  /**
13896
14583
  * Determines whether the TimePicker is disabled
13897
14584
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/disabled-state)).
@@ -13899,14 +14586,24 @@ class TimePickerComponent extends MultiTabStop {
13899
14586
  *
13900
14587
  * @default false
13901
14588
  */
13902
- disabled = false;
14589
+ set disabled(value) {
14590
+ this._disabled.set(value);
14591
+ }
14592
+ get disabled() {
14593
+ return this._disabled();
14594
+ }
13903
14595
  /**
13904
14596
  * Determines the read-only state of the TimePicker
13905
14597
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/readonly-state#read-only-timepicker)).
13906
14598
  *
13907
14599
  * @default false
13908
14600
  */
13909
- readonly = false;
14601
+ set readonly(value) {
14602
+ this._readonly.set(value);
14603
+ }
14604
+ get readonly() {
14605
+ return this._readonly();
14606
+ }
13910
14607
  /**
13911
14608
  * Sets the read-only state of the TimePicker input field
13912
14609
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/readonly-state#read-only-input)).
@@ -13915,42 +14612,67 @@ class TimePickerComponent extends MultiTabStop {
13915
14612
  * the input will be rendered in a read-only state regardless of the `readOnlyInput` value.
13916
14613
  * @default false
13917
14614
  */
13918
- readOnlyInput = false;
14615
+ set readOnlyInput(value) {
14616
+ this._readOnlyInput.set(value);
14617
+ }
14618
+ get readOnlyInput() {
14619
+ return this._readOnlyInput();
14620
+ }
13919
14621
  /**
13920
14622
  * If set to `true`, renders a clear button after the input text or TimePicker value has been changed.
13921
14623
  * Clicking this button resets the value of the component to `null` and triggers the `valueChange` event.
13922
14624
  * @default false
13923
14625
  */
13924
- clearButton = false;
14626
+ set clearButton(value) {
14627
+ this._clearButton.set(value);
14628
+ }
14629
+ get clearButton() {
14630
+ return this._clearButton();
14631
+ }
13925
14632
  /**
13926
14633
  * Specifies the time format that is used to display the input value
13927
14634
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/formats)).
13928
14635
  * @default 't'
13929
14636
  */
13930
- format = 't';
14637
+ set format(value) {
14638
+ this._format.set(value);
14639
+ }
14640
+ get format() {
14641
+ return this._format();
14642
+ }
13931
14643
  /**
13932
14644
  * Defines the descriptions of the format sections in the input field.
13933
14645
  * For more information, refer to the article on
13934
14646
  * [placeholders](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/placeholders).
13935
14647
  */
13936
- formatPlaceholder;
14648
+ set formatPlaceholder(value) {
14649
+ this._formatPlaceholder.set(value);
14650
+ }
14651
+ get formatPlaceholder() {
14652
+ return this._formatPlaceholder();
14653
+ }
13937
14654
  /**
13938
14655
  * Specifies the hint the TimePicker displays when its value is `null`.
13939
14656
  * For more information, refer to the article on
13940
14657
  * [placeholders](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/placeholders).
13941
14658
  * @default null
13942
14659
  */
13943
- placeholder;
14660
+ set placeholder(value) {
14661
+ this._placeholder.set(value);
14662
+ }
14663
+ get placeholder() {
14664
+ return this._placeholder();
14665
+ }
13944
14666
  /**
13945
14667
  * Specifies the smallest valid time value
13946
14668
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/time-ranges)).
13947
14669
  * @default `00:00:00`
13948
14670
  */
13949
14671
  set min(min) {
13950
- this._min = cloneDate(min || MIN_TIME);
14672
+ this._min.set(cloneDate(min || MIN_TIME));
13951
14673
  }
13952
14674
  get min() {
13953
- return this._min;
14675
+ return this._min();
13954
14676
  }
13955
14677
  /**
13956
14678
  * Specifies the biggest valid time value
@@ -13958,45 +14680,75 @@ class TimePickerComponent extends MultiTabStop {
13958
14680
  * @default `23:59:59`
13959
14681
  */
13960
14682
  set max(max) {
13961
- this._max = cloneDate(max || MAX_TIME);
14683
+ this._max.set(cloneDate(max || MAX_TIME));
13962
14684
  }
13963
14685
  get max() {
13964
- return this._max;
14686
+ return this._max();
13965
14687
  }
13966
14688
  /**
13967
14689
  * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
13968
14690
  *
13969
14691
  * @default false
13970
14692
  */
13971
- incompleteDateValidation = false;
14693
+ set incompleteDateValidation(value) {
14694
+ this._incompleteDateValidation.set(value);
14695
+ }
14696
+ get incompleteDateValidation() {
14697
+ return this._incompleteDateValidation();
14698
+ }
13972
14699
  /**
13973
14700
  * Determines whether to automatically move to the next segment after the user completes the current one.
13974
14701
  *
13975
14702
  * @default true
13976
14703
  */
13977
- autoSwitchParts = true;
14704
+ set autoSwitchParts(value) {
14705
+ this._autoSwitchParts.set(value);
14706
+ }
14707
+ get autoSwitchParts() {
14708
+ return this._autoSwitchParts();
14709
+ }
13978
14710
  /**
13979
14711
  * A string array representing custom keys, which will move the focus to the next date format segment.
13980
14712
  */
13981
- autoSwitchKeys = [];
14713
+ set autoSwitchKeys(value) {
14714
+ this._autoSwitchKeys.set(value);
14715
+ }
14716
+ get autoSwitchKeys() {
14717
+ return this._autoSwitchKeys();
14718
+ }
13982
14719
  /**
13983
14720
  * Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
13984
14721
  *
13985
14722
  * @default true
13986
14723
  */
13987
- enableMouseWheel = true;
14724
+ set enableMouseWheel(value) {
14725
+ this._enableMouseWheel.set(value);
14726
+ }
14727
+ get enableMouseWheel() {
14728
+ return this._enableMouseWheel();
14729
+ }
13988
14730
  /**
13989
14731
  * Determines if the users should see a blinking caret inside the Date Input when possible.
13990
14732
  *
13991
14733
  * @default false
13992
14734
  */
13993
- allowCaretMode = false;
14735
+ set allowCaretMode(value) {
14736
+ this._allowCaretMode.set(value);
14737
+ }
14738
+ get allowCaretMode() {
14739
+ return this._allowCaretMode();
14740
+ }
13994
14741
  /**
13995
14742
  * Determines whether to display the **Cancel** button in the popup.
13996
14743
  *
13997
14744
  * @default true
13998
14745
  */
13999
- cancelButton = true;
14746
+ set cancelButton(value) {
14747
+ this._cancelButton.set(value);
14748
+ }
14749
+ get cancelButton() {
14750
+ return this._cancelButton();
14751
+ }
14000
14752
  /**
14001
14753
  * Determines whether to display the **Now** button in the popup.
14002
14754
  *
@@ -14004,7 +14756,12 @@ class TimePickerComponent extends MultiTabStop {
14004
14756
  *
14005
14757
  * @default true
14006
14758
  */
14007
- nowButton = true;
14759
+ set nowButton(value) {
14760
+ this._nowButton.set(value);
14761
+ }
14762
+ get nowButton() {
14763
+ return this._nowButton();
14764
+ }
14008
14765
  /**
14009
14766
  * Configures the incremental steps of the TimePicker.
14010
14767
  * For more information, refer to the article on
@@ -14013,10 +14770,10 @@ class TimePickerComponent extends MultiTabStop {
14013
14770
  * If the incremental step is greater than `1`, the **Now** button will be hidden.
14014
14771
  */
14015
14772
  set steps(steps) {
14016
- this._steps = steps || {};
14773
+ this._steps.set(steps || {});
14017
14774
  }
14018
14775
  get steps() {
14019
- return this._steps;
14776
+ return this._steps();
14020
14777
  }
14021
14778
  /**
14022
14779
  * Configures the popup of the TimePicker.
@@ -14026,47 +14783,72 @@ class TimePickerComponent extends MultiTabStop {
14026
14783
  * The `popupClass` option specifies a list of CSS classes that are used to style the popup.
14027
14784
  */
14028
14785
  set popupSettings(settings) {
14029
- this._popupSettings = Object.assign({}, { animate: true }, settings);
14786
+ this._popupSettings.set(Object.assign({}, { animate: true }, settings));
14030
14787
  }
14031
14788
  get popupSettings() {
14032
- return this._popupSettings;
14789
+ return this._popupSettings();
14033
14790
  }
14034
14791
  /**
14035
14792
  * Sets the tabindex of the TimePicker component.
14036
14793
  * @default 0
14037
14794
  */
14038
- tabindex = 0;
14795
+ set tabindex(value) {
14796
+ this._tabindex.set(value);
14797
+ }
14798
+ get tabindex() {
14799
+ return this._tabindex();
14800
+ }
14039
14801
  /**
14040
14802
  * @hidden
14041
14803
  */
14042
14804
  set tabIndex(tabIndex) {
14043
- this.tabindex = tabIndex;
14805
+ this._tabindex.set(tabIndex);
14044
14806
  }
14045
14807
  get tabIndex() {
14046
- return this.tabindex;
14808
+ return this._tabindex();
14047
14809
  }
14048
14810
  /**
14049
14811
  * Sets the title of the input element of the TimePicker and the title text rendered
14050
14812
  * 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
14813
  */
14052
- adaptiveTitle = '';
14814
+ set adaptiveTitle(value) {
14815
+ this._adaptiveTitle.set(value);
14816
+ }
14817
+ get adaptiveTitle() {
14818
+ return this._adaptiveTitle();
14819
+ }
14053
14820
  /**
14054
14821
  * Sets the subtitle text rendered in the header of the popup(action sheet).
14055
14822
  * Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
14056
14823
  * By default, subtitle is not rendered.
14057
14824
  */
14058
- adaptiveSubtitle;
14825
+ set adaptiveSubtitle(value) {
14826
+ this._adaptiveSubtitle.set(value);
14827
+ }
14828
+ get adaptiveSubtitle() {
14829
+ return this._adaptiveSubtitle();
14830
+ }
14059
14831
  /**
14060
14832
  * Determines whether the built-in min or max validators are enforced when a form is being validated.
14061
14833
  *
14062
14834
  * @default true
14063
14835
  */
14064
- rangeValidation = true;
14836
+ set rangeValidation(value) {
14837
+ this._rangeValidation.set(value);
14838
+ }
14839
+ get rangeValidation() {
14840
+ return this._rangeValidation();
14841
+ }
14065
14842
  /**
14066
14843
  * Determines whether the TimePicker is in adaptive mode.
14067
14844
  * @default 'none'
14068
14845
  */
14069
- adaptiveMode = 'none';
14846
+ set adaptiveMode(value) {
14847
+ this._adaptiveMode.set(value);
14848
+ }
14849
+ get adaptiveMode() {
14850
+ return this._adaptiveMode();
14851
+ }
14070
14852
  /**
14071
14853
  * Determines whether the TimePicker is in adaptive mode.
14072
14854
  *
@@ -14074,10 +14856,10 @@ class TimePickerComponent extends MultiTabStop {
14074
14856
  */
14075
14857
  set value(value) {
14076
14858
  this.verifyValue(value);
14077
- this._value = cloneDate(value);
14859
+ this._value.set(cloneDate(value));
14078
14860
  }
14079
14861
  get value() {
14080
- return this._value;
14862
+ return this._value();
14081
14863
  }
14082
14864
  /**
14083
14865
  * Sets the size of the component. The default value is set by the Kendo theme.
@@ -14089,10 +14871,10 @@ class TimePickerComponent extends MultiTabStop {
14089
14871
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
14090
14872
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', size));
14091
14873
  }
14092
- this._size = size;
14874
+ this._size.set(size);
14093
14875
  }
14094
14876
  get size() {
14095
- return this._size;
14877
+ return this._size();
14096
14878
  }
14097
14879
  /**
14098
14880
  * Sets the rounded styling of the component. The default value is set by the Kendo theme.
@@ -14103,10 +14885,10 @@ class TimePickerComponent extends MultiTabStop {
14103
14885
  if (rounded) {
14104
14886
  this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
14105
14887
  }
14106
- this._rounded = rounded;
14888
+ this._rounded.set(rounded);
14107
14889
  }
14108
14890
  get rounded() {
14109
- return this._rounded;
14891
+ return this._rounded();
14110
14892
  }
14111
14893
  /**
14112
14894
  * Sets the fillMode of the component. The default value is set by the Kendo theme.
@@ -14118,10 +14900,10 @@ class TimePickerComponent extends MultiTabStop {
14118
14900
  this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
14119
14901
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
14120
14902
  }
14121
- this._fillMode = fillMode;
14903
+ this._fillMode.set(fillMode);
14122
14904
  }
14123
14905
  get fillMode() {
14124
- return this._fillMode;
14906
+ return this._fillMode();
14125
14907
  }
14126
14908
  /**
14127
14909
  * Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
@@ -14129,7 +14911,12 @@ class TimePickerComponent extends MultiTabStop {
14129
14911
  * @remarks
14130
14912
  * This property is related to accessibility.
14131
14913
  */
14132
- inputAttributes;
14914
+ set inputAttributes(value) {
14915
+ this._inputAttributes.set(value);
14916
+ }
14917
+ get inputAttributes() {
14918
+ return this._inputAttributes();
14919
+ }
14133
14920
  /**
14134
14921
  * Fires each time the user selects a new value
14135
14922
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/events)).
@@ -14192,20 +14979,20 @@ class TimePickerComponent extends MultiTabStop {
14192
14979
  }
14193
14980
  }
14194
14981
  get show() {
14195
- return this._show;
14982
+ return this._show();
14196
14983
  }
14197
14984
  set show(show) {
14198
14985
  if (show && (this.disabled || this.readonly)) {
14199
14986
  return;
14200
14987
  }
14201
- const skipZone = !show && (!this._show || (!hasObservers(this.close) && !hasObservers(this.open)));
14988
+ const skipZone = !show && (!this._show() || (!hasObservers(this.close) && !hasObservers(this.open)));
14202
14989
  if (!skipZone) {
14203
14990
  this.zone.run(() => {
14204
14991
  const event = new PreventableEvent();
14205
- if (!this._show && show) {
14992
+ if (!this._show() && show) {
14206
14993
  this.open.emit(event);
14207
14994
  }
14208
- else if (this._show && !show) {
14995
+ else if (this._show() && !show) {
14209
14996
  this.close.emit(event);
14210
14997
  }
14211
14998
  if (event.isDefaultPrevented()) {
@@ -14261,21 +15048,42 @@ class TimePickerComponent extends MultiTabStop {
14261
15048
  resolvedPromise = Promise.resolve(null);
14262
15049
  timeRangeValidateFn = noop$2;
14263
15050
  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;
15051
+ _min = signal(cloneDate(MIN_TIME), ...(ngDevMode ? [{ debugName: "_min" }] : []));
15052
+ _max = signal(cloneDate(MAX_TIME), ...(ngDevMode ? [{ debugName: "_max" }] : []));
15053
+ _popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
15054
+ _show = signal(false, ...(ngDevMode ? [{ debugName: "_show" }] : []));
15055
+ _steps = signal({}, ...(ngDevMode ? [{ debugName: "_steps" }] : []));
15056
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : []));
14270
15057
  _active = false;
14271
15058
  localizationChangeSubscription;
14272
15059
  pickerSubscriptions;
14273
15060
  windowBlurSubscription;
14274
15061
  control;
14275
15062
  domEvents = [];
14276
- _size;
14277
- _rounded;
14278
- _fillMode;
15063
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
15064
+ _rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
15065
+ _fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
15066
+ _focusableId = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
15067
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
15068
+ _readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
15069
+ _readOnlyInput = signal(false, ...(ngDevMode ? [{ debugName: "_readOnlyInput" }] : []));
15070
+ _clearButton = signal(false, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
15071
+ _format = signal('t', ...(ngDevMode ? [{ debugName: "_format" }] : []));
15072
+ _formatPlaceholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_formatPlaceholder" }] : []));
15073
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
15074
+ _incompleteDateValidation = signal(false, ...(ngDevMode ? [{ debugName: "_incompleteDateValidation" }] : []));
15075
+ _autoSwitchParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoSwitchParts" }] : []));
15076
+ _autoSwitchKeys = signal([], ...(ngDevMode ? [{ debugName: "_autoSwitchKeys" }] : []));
15077
+ _enableMouseWheel = signal(true, ...(ngDevMode ? [{ debugName: "_enableMouseWheel" }] : []));
15078
+ _allowCaretMode = signal(false, ...(ngDevMode ? [{ debugName: "_allowCaretMode" }] : []));
15079
+ _cancelButton = signal(true, ...(ngDevMode ? [{ debugName: "_cancelButton" }] : []));
15080
+ _nowButton = signal(true, ...(ngDevMode ? [{ debugName: "_nowButton" }] : []));
15081
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
15082
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
15083
+ _adaptiveSubtitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
15084
+ _rangeValidation = signal(true, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
15085
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
15086
+ _inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
14279
15087
  constructor(bus, zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, intl, adaptiveService) {
14280
15088
  super();
14281
15089
  this.bus = bus;
@@ -14325,6 +15133,14 @@ class TimePickerComponent extends MultiTabStop {
14325
15133
  this.setComponentClasses();
14326
15134
  this.windowSize = this.adaptiveService.size;
14327
15135
  this.pickerSubscriptions.add(this.control?.control?.statusChanges?.subscribe(() => this.cdr.markForCheck()));
15136
+ const control = this.control?.control;
15137
+ if (control && control.events) {
15138
+ this.pickerSubscriptions.add(control.events.subscribe(e => {
15139
+ if (e instanceof TouchedChangeEvent) {
15140
+ this.cdr.markForCheck();
15141
+ }
15142
+ }));
15143
+ }
14328
15144
  }
14329
15145
  /**
14330
15146
  * @hidden
@@ -14389,7 +15205,6 @@ class TimePickerComponent extends MultiTabStop {
14389
15205
  writeValue(value) {
14390
15206
  this.verifyValue(value);
14391
15207
  this.value = cloneDate(value);
14392
- this.cdr.markForCheck();
14393
15208
  if (!value && this.dateInput) {
14394
15209
  this.dateInput.placeholder = this.placeholder;
14395
15210
  this.dateInput.writeValue(value);
@@ -14411,8 +15226,7 @@ class TimePickerComponent extends MultiTabStop {
14411
15226
  * @hidden
14412
15227
  */
14413
15228
  setDisabledState(isDisabled) {
14414
- this.disabled = isDisabled;
14415
- this.cdr.markForCheck();
15229
+ this._disabled.set(isDisabled);
14416
15230
  }
14417
15231
  /**
14418
15232
  * @hidden
@@ -14506,7 +15320,7 @@ class TimePickerComponent extends MultiTabStop {
14506
15320
  * @hidden
14507
15321
  */
14508
15322
  handleActionSheetCollapse() {
14509
- // If not handled, the actionsheet expanded state does not get updated when overlay is clicked
15323
+ // markForCheck() retained - ActionSheet expanded state does not get updated when overlay is clicked without it
14510
15324
  this.cdr.markForCheck();
14511
15325
  }
14512
15326
  /**
@@ -14666,7 +15480,7 @@ class TimePickerComponent extends MultiTabStop {
14666
15480
  this.toggleFocus();
14667
15481
  }
14668
15482
  toggleActionSheet(show) {
14669
- if (show === this._show) {
15483
+ if (show === this._show()) {
14670
15484
  return;
14671
15485
  }
14672
15486
  if (show && !this.isOpen) {
@@ -14683,14 +15497,13 @@ class TimePickerComponent extends MultiTabStop {
14683
15497
  this.actionSheet.toggle();
14684
15498
  this.dateInput.focus();
14685
15499
  }
14686
- this._show = show;
15500
+ this._show.set(show);
14687
15501
  }
14688
15502
  togglePopup(show) {
14689
15503
  if (show === this.isOpen) {
14690
15504
  return;
14691
15505
  }
14692
- this._show = show;
14693
- this.cdr.markForCheck();
15506
+ this._show.set(show);
14694
15507
  if (show) {
14695
15508
  const direction = this.localization.rtl ? 'right' : 'left';
14696
15509
  const appendToComponent = typeof this.popupSettings.appendTo === 'string' && this.popupSettings.appendTo === 'component';
@@ -14793,6 +15606,7 @@ class TimePickerComponent extends MultiTabStop {
14793
15606
  if (hasObservers(this.onBlur) || (this.show && hasObservers(this.close)) || requiresZoneOnBlur(this.control)) {
14794
15607
  this.zone.run(() => {
14795
15608
  this.blurComponent();
15609
+ // markForCheck() retained - needed after onControlTouched() in zoneless mode
14796
15610
  this.cdr.markForCheck();
14797
15611
  });
14798
15612
  }
@@ -14808,6 +15622,7 @@ class TimePickerComponent extends MultiTabStop {
14808
15622
  this.onBlur.emit();
14809
15623
  }
14810
15624
  handleDateCompletenessChange() {
15625
+ // markForCheck() retained - form validation state needs to re-render in zoneless mode
14811
15626
  this.cdr.markForCheck();
14812
15627
  this.zone.run(() => this.onValidatorChange());
14813
15628
  }
@@ -15427,101 +16242,247 @@ class DateTimePickerMessages extends ComponentMessages {
15427
16242
  /**
15428
16243
  * The title of the **Toggle** button of the DateTimePicker.
15429
16244
  */
15430
- toggle;
16245
+ set toggle(value) {
16246
+ this._toggle.set(value);
16247
+ }
16248
+ get toggle() {
16249
+ return this._toggle();
16250
+ }
15431
16251
  /**
15432
16252
  * The text of the **Date** tab in the popup header of the DateTimePicker.
15433
16253
  */
15434
- dateTab;
16254
+ set dateTab(value) {
16255
+ this._dateTab.set(value);
16256
+ }
16257
+ get dateTab() {
16258
+ return this._dateTab();
16259
+ }
15435
16260
  /**
15436
16261
  * The label of the **Date** tab in the popup header of the DateTimePicker.
15437
16262
  */
15438
- dateTabLabel;
16263
+ set dateTabLabel(value) {
16264
+ this._dateTabLabel.set(value);
16265
+ }
16266
+ get dateTabLabel() {
16267
+ return this._dateTabLabel();
16268
+ }
15439
16269
  /**
15440
16270
  * The text of the **Time** tab in the popup header of the DateTimePicker.
15441
16271
  */
15442
- timeTab;
16272
+ set timeTab(value) {
16273
+ this._timeTab.set(value);
16274
+ }
16275
+ get timeTab() {
16276
+ return this._timeTab();
16277
+ }
15443
16278
  /**
15444
16279
  * The label of the **Time** tab in the popup header of the DateTimePicker.
15445
16280
  */
15446
- timeTabLabel;
16281
+ set timeTabLabel(value) {
16282
+ this._timeTabLabel.set(value);
16283
+ }
16284
+ get timeTabLabel() {
16285
+ return this._timeTabLabel();
16286
+ }
15447
16287
  /**
15448
16288
  * The text of the **Accept** button in the popup footer of the DateTimePicker.
15449
16289
  */
15450
- accept;
16290
+ set accept(value) {
16291
+ this._accept.set(value);
16292
+ }
16293
+ get accept() {
16294
+ return this._accept();
16295
+ }
15451
16296
  /**
15452
16297
  * The label of the **Accept** button in the popup footer of the DateTimePicker.
15453
16298
  */
15454
- acceptLabel;
16299
+ set acceptLabel(value) {
16300
+ this._acceptLabel.set(value);
16301
+ }
16302
+ get acceptLabel() {
16303
+ return this._acceptLabel();
16304
+ }
15455
16305
  /**
15456
16306
  * The text of the **Cancel** button in the popup footer of the DateTimePicker.
15457
16307
  */
15458
- cancel;
16308
+ set cancel(value) {
16309
+ this._cancel.set(value);
16310
+ }
16311
+ get cancel() {
16312
+ return this._cancel();
16313
+ }
15459
16314
  /**
15460
16315
  * The label of the **Cancel** button in the popup footer of the DateTimePicker.
15461
16316
  */
15462
- cancelLabel;
16317
+ set cancelLabel(value) {
16318
+ this._cancelLabel.set(value);
16319
+ }
16320
+ get cancelLabel() {
16321
+ return this._cancelLabel();
16322
+ }
15463
16323
  /**
15464
16324
  * The **Today** button text in the header of the Calendar.
15465
16325
  */
15466
- today;
16326
+ set today(value) {
16327
+ this._today.set(value);
16328
+ }
16329
+ get today() {
16330
+ return this._today();
16331
+ }
15467
16332
  /**
15468
16333
  * The text of the **Now** button in the popup header of the TimePicker.
15469
16334
  */
15470
- now;
16335
+ set now(value) {
16336
+ this._now.set(value);
16337
+ }
16338
+ get now() {
16339
+ return this._now();
16340
+ }
15471
16341
  /**
15472
16342
  * The label of the **Now** button in the popup header of the TimePicker.
15473
16343
  */
15474
- nowLabel;
16344
+ set nowLabel(value) {
16345
+ this._nowLabel.set(value);
16346
+ }
16347
+ get nowLabel() {
16348
+ return this._nowLabel();
16349
+ }
15475
16350
  /**
15476
16351
  * The title of the **Prev** button in the header of the Classic Calendar.
15477
16352
  */
15478
- prevButtonTitle;
16353
+ set prevButtonTitle(value) {
16354
+ this._prevButtonTitle.set(value);
16355
+ }
16356
+ get prevButtonTitle() {
16357
+ return this._prevButtonTitle();
16358
+ }
15479
16359
  /**
15480
16360
  * The title of the **Next** button in the header of the Classic Calendar.
15481
16361
  */
15482
- nextButtonTitle;
16362
+ set nextButtonTitle(value) {
16363
+ this._nextButtonTitle.set(value);
16364
+ }
16365
+ get nextButtonTitle() {
16366
+ return this._nextButtonTitle();
16367
+ }
15483
16368
  /**
15484
16369
  * The title of the **Parent View** button in the header of the Calendar.
15485
16370
  */
15486
- parentViewButtonTitle;
16371
+ set parentViewButtonTitle(value) {
16372
+ this._parentViewButtonTitle.set(value);
16373
+ }
16374
+ get parentViewButtonTitle() {
16375
+ return this._parentViewButtonTitle();
16376
+ }
15487
16377
  /**
15488
16378
  * The label of the **Hour** part in the TimePicker.
15489
16379
  */
15490
- hour;
16380
+ set hour(value) {
16381
+ this._hour.set(value);
16382
+ }
16383
+ get hour() {
16384
+ return this._hour();
16385
+ }
15491
16386
  /**
15492
16387
  * The label of the **Minute** part in the TimePicker.
15493
16388
  */
15494
- minute;
16389
+ set minute(value) {
16390
+ this._minute.set(value);
16391
+ }
16392
+ get minute() {
16393
+ return this._minute();
16394
+ }
15495
16395
  /**
15496
16396
  * The label of the **Second** part in the TimePicker.
15497
16397
  */
15498
- second;
16398
+ set second(value) {
16399
+ this._second.set(value);
16400
+ }
16401
+ get second() {
16402
+ return this._second();
16403
+ }
15499
16404
  /**
15500
16405
  * The label of the **Millisecond** part in the TimePicker.
15501
16406
  */
15502
- millisecond;
16407
+ set millisecond(value) {
16408
+ this._millisecond.set(value);
16409
+ }
16410
+ get millisecond() {
16411
+ return this._millisecond();
16412
+ }
15503
16413
  /**
15504
16414
  * The label of the **Dayperiod** part in the TimePicker.
15505
16415
  */
15506
- dayperiod;
16416
+ set dayperiod(value) {
16417
+ this._dayperiod.set(value);
16418
+ }
16419
+ get dayperiod() {
16420
+ return this._dayperiod();
16421
+ }
15507
16422
  /**
15508
16423
  * The title of the **Clear** button of the DateTimePicker.
15509
16424
  */
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;
16425
+ set clearTitle(value) {
16426
+ this._clearTitle.set(value);
16427
+ }
16428
+ get clearTitle() {
16429
+ return this._clearTitle();
16430
+ }
15515
16431
  /**
15516
16432
  * The accessible label of the date and time selector container.
15517
16433
  */
15518
- dateTimeSelectorLabel;
16434
+ set dateTimeSelectorLabel(value) {
16435
+ this._dateTimeSelectorLabel.set(value);
16436
+ }
16437
+ ;
16438
+ get dateTimeSelectorLabel() {
16439
+ return this._dateTimeSelectorLabel();
16440
+ }
15519
16441
  /**
15520
16442
  * The accessible label of the time selector element.
15521
16443
  */
15522
- timeSelectorLabel;
16444
+ set timeSelectorLabel(value) {
16445
+ this._timeSelectorLabel.set(value);
16446
+ }
16447
+ ;
16448
+ get timeSelectorLabel() {
16449
+ return this._timeSelectorLabel();
16450
+ }
16451
+ /**
16452
+ * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
16453
+ */
16454
+ set adaptiveCloseButtonTitle(value) {
16455
+ this._adaptiveCloseButtonTitle.set(value);
16456
+ }
16457
+ get adaptiveCloseButtonTitle() {
16458
+ return this._adaptiveCloseButtonTitle();
16459
+ }
16460
+ _toggle = signal(undefined, ...(ngDevMode ? [{ debugName: "_toggle" }] : []));
16461
+ _dateTab = signal(undefined, ...(ngDevMode ? [{ debugName: "_dateTab" }] : []));
16462
+ _dateTabLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_dateTabLabel" }] : []));
16463
+ _timeTab = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeTab" }] : []));
16464
+ _timeTabLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeTabLabel" }] : []));
16465
+ _accept = signal(undefined, ...(ngDevMode ? [{ debugName: "_accept" }] : []));
16466
+ _acceptLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_acceptLabel" }] : []));
16467
+ _cancel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancel" }] : []));
16468
+ _cancelLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancelLabel" }] : []));
16469
+ _today = signal(undefined, ...(ngDevMode ? [{ debugName: "_today" }] : []));
16470
+ _now = signal(undefined, ...(ngDevMode ? [{ debugName: "_now" }] : []));
16471
+ _nowLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_nowLabel" }] : []));
16472
+ _prevButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_prevButtonTitle" }] : []));
16473
+ _nextButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_nextButtonTitle" }] : []));
16474
+ _parentViewButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_parentViewButtonTitle" }] : []));
16475
+ _hour = signal(undefined, ...(ngDevMode ? [{ debugName: "_hour" }] : []));
16476
+ _minute = signal(undefined, ...(ngDevMode ? [{ debugName: "_minute" }] : []));
16477
+ _second = signal(undefined, ...(ngDevMode ? [{ debugName: "_second" }] : []));
16478
+ _millisecond = signal(undefined, ...(ngDevMode ? [{ debugName: "_millisecond" }] : []));
16479
+ _dayperiod = signal(undefined, ...(ngDevMode ? [{ debugName: "_dayperiod" }] : []));
16480
+ _clearTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_clearTitle" }] : []));
16481
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
16482
+ _dateTimeSelectorLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_dateTimeSelectorLabel" }] : []));
16483
+ _timeSelectorLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeSelectorLabel" }] : []));
15523
16484
  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 });
16485
+ 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
16486
  }
15526
16487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateTimePickerMessages, decorators: [{
15527
16488
  type: Directive,
@@ -15570,12 +16531,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
15570
16531
  type: Input
15571
16532
  }], clearTitle: [{
15572
16533
  type: Input
15573
- }], adaptiveCloseButtonTitle: [{
15574
- type: Input
15575
16534
  }], dateTimeSelectorLabel: [{
15576
16535
  type: Input
15577
16536
  }], timeSelectorLabel: [{
15578
16537
  type: Input
16538
+ }], adaptiveCloseButtonTitle: [{
16539
+ type: Input
15579
16540
  }] } });
15580
16541
 
15581
16542
  /**
@@ -15699,19 +16660,22 @@ class DateTimePickerComponent extends MultiTabStop {
15699
16660
  /**
15700
16661
  * @hidden
15701
16662
  */
15702
- focusableId;
16663
+ set focusableId(value) { this._focusableId.set(value); }
16664
+ get focusableId() { return this._focusableId(); }
15703
16665
  /**
15704
16666
  * Sets the format of the displayed Calendar week days' names.
15705
16667
  * @default 'short'
15706
16668
  */
15707
- weekDaysFormat = "short";
16669
+ set weekDaysFormat(value) { this._weekDaysFormat.set(value); }
16670
+ get weekDaysFormat() { return this._weekDaysFormat(); }
15708
16671
  /**
15709
16672
  * 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
16673
  * You can set this to show or hide days from other months.
15711
16674
  *
15712
16675
  * For infinite Calendar the default value is `false`, while for classic Calendar it is `true`.
15713
16676
  */
15714
- showOtherMonthDays;
16677
+ set showOtherMonthDays(value) { this._showOtherMonthDays.set(value); }
16678
+ get showOtherMonthDays() { return this._showOtherMonthDays(); }
15715
16679
  /**
15716
16680
  * Sets the value of the DateTimePicker component.
15717
16681
  * You can set a specific date and time for the picker to display and use.
@@ -15720,12 +16684,11 @@ class DateTimePickerComponent extends MultiTabStop {
15720
16684
  */
15721
16685
  set value(value) {
15722
16686
  this.verifyValue(value);
15723
- this._value = cloneDate(value);
16687
+ this._value.set(cloneDate(value));
15724
16688
  this.setCalendarValue(value);
15725
- this.cdr.markForCheck();
15726
16689
  }
15727
16690
  get value() {
15728
- return this._value;
16691
+ return this._value();
15729
16692
  }
15730
16693
  /**
15731
16694
  * Specifies the date format for displaying the input value
@@ -15737,12 +16700,12 @@ class DateTimePickerComponent extends MultiTabStop {
15737
16700
  * If a FormatSettings object is provided, the displayFormat value will be used for the popup TimePicker.
15738
16701
  */
15739
16702
  set format(format) {
15740
- this._format = format;
16703
+ this._format.set(format);
15741
16704
  const displayFormat = this.getDisplayFormat(format);
15742
16705
  this.timeSelectorFormat = this.getTimeSelectorFormat(displayFormat);
15743
16706
  }
15744
16707
  get format() {
15745
- return this._format;
16708
+ return this._format();
15746
16709
  }
15747
16710
  /**
15748
16711
  * The maximum year to assume to be from the current century when typing two-digit year value
@@ -15752,7 +16715,8 @@ class DateTimePickerComponent extends MultiTabStop {
15752
16715
  * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.
15753
16716
  * @default 68
15754
16717
  */
15755
- twoDigitYearMax = TWO_DIGIT_YEAR_MAX;
16718
+ set twoDigitYearMax(value) { this._twoDigitYearMax.set(value); }
16719
+ get twoDigitYearMax() { return this._twoDigitYearMax(); }
15756
16720
  /**
15757
16721
  * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the DateTimePicker.
15758
16722
  *
@@ -15761,21 +16725,21 @@ class DateTimePickerComponent extends MultiTabStop {
15761
16725
  set tabindex(value) {
15762
16726
  const tabindex = Number(value);
15763
16727
  const defaultValue = 0;
15764
- this._tabindex = !isNaN(tabindex) ? tabindex : defaultValue;
16728
+ this._tabindex.set(!isNaN(tabindex) ? tabindex : defaultValue);
15765
16729
  }
15766
16730
  get tabindex() {
15767
- return this.disabled ? -1 : this._tabindex;
16731
+ return this.disabled ? -1 : this._tabindex();
15768
16732
  }
15769
16733
  /**
15770
16734
  * Sets the dates of the DateTimePicker that will be disabled
15771
16735
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/disabled-dates)).
15772
16736
  */
15773
16737
  set disabledDates(value) {
15774
- this._disabledDates = value;
16738
+ this._disabledDates.set(value);
15775
16739
  this.disabledDatesService.initialize(value);
15776
16740
  }
15777
16741
  get disabledDates() {
15778
- return this._disabledDates;
16742
+ return this._disabledDates();
15779
16743
  }
15780
16744
  /**
15781
16745
  * Configures the popup settings of the DateTimePicker
@@ -15786,30 +16750,33 @@ class DateTimePickerComponent extends MultiTabStop {
15786
16750
  * The `popupClass` option specifies a list of CSS classes that are used to style the popup.
15787
16751
  */
15788
16752
  set popupSettings(settings) {
15789
- this._popupSettings = Object.assign({}, { animate: true }, settings);
16753
+ this._popupSettings.set(Object.assign({}, { animate: true }, settings));
15790
16754
  }
15791
16755
  get popupSettings() {
15792
- return this._popupSettings;
16756
+ return this._popupSettings();
15793
16757
  }
15794
16758
  /**
15795
16759
  * Specifies the title of the input element of the DateTimePicker and the title text rendered
15796
16760
  * 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
16761
  * @default ''
15798
16762
  */
15799
- adaptiveTitle = '';
16763
+ set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
16764
+ get adaptiveTitle() { return this._adaptiveTitle(); }
15800
16765
  /**
15801
16766
  * Specifies the subtitle text rendered in the header of the popup (action sheet).
15802
16767
  * Applicable only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
15803
16768
  * @default ''
15804
16769
  */
15805
- adaptiveSubtitle = '';
16770
+ set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
16771
+ get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
15806
16772
  /**
15807
16773
  * Specifies the `disabled` property of the DateTimePicker and determines whether the component is active
15808
16774
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/disabled-state)).
15809
16775
  * 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
16776
  * @default false
15811
16777
  */
15812
- disabled = false;
16778
+ set disabled(value) { this._disabled.set(value); }
16779
+ get disabled() { return this._disabled(); }
15813
16780
  /**
15814
16781
  * Specifies the read-only state of the DateTimePicker
15815
16782
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/readonly-state#read-only-datetimepicker)).
@@ -15817,7 +16784,8 @@ class DateTimePickerComponent extends MultiTabStop {
15817
16784
  *
15818
16785
  * @default false
15819
16786
  */
15820
- readonly = false;
16787
+ set readonly(value) { this._readonly.set(value); }
16788
+ get readonly() { return this._readonly(); }
15821
16789
  /**
15822
16790
  * Determines whether the input field of the DateTimePicker is read-only
15823
16791
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/readonly-state#read-only-input)).
@@ -15827,39 +16795,46 @@ class DateTimePickerComponent extends MultiTabStop {
15827
16795
  *
15828
16796
  * @default false
15829
16797
  */
15830
- readOnlyInput = false;
16798
+ set readOnlyInput(value) { this._readOnlyInput.set(value); }
16799
+ get readOnlyInput() { return this._readOnlyInput(); }
15831
16800
  /**
15832
16801
  * Determines whether to display the **Cancel** button in the popup
15833
16802
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/popup-options#toggling-the-cancel-button)).
15834
16803
  * @default true
15835
16804
  */
15836
- cancelButton = true;
16805
+ set cancelButton(value) { this._cancelButton.set(value); }
16806
+ get cancelButton() { return this._cancelButton(); }
15837
16807
  /**
15838
16808
  * Defines the descriptions of the format sections in the input field
15839
16809
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/placeholders#format-sections-description)).
15840
16810
  */
15841
- formatPlaceholder;
16811
+ set formatPlaceholder(value) { this._formatPlaceholder.set(value); }
16812
+ get formatPlaceholder() { return this._formatPlaceholder(); }
15842
16813
  /**
15843
16814
  * Specifies the hint which is displayed by the DateTimePicker when its value is `null`
15844
16815
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/placeholders#text-hints)).
15845
16816
  */
15846
- placeholder;
16817
+ set placeholder(value) { this._placeholder.set(value); }
16818
+ get placeholder() { return this._placeholder(); }
15847
16819
  /**
15848
16820
  * Configures the incremental steps of the DateInput and the popup component of the TimePicker
15849
16821
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/incremental-steps)).
15850
16822
  */
15851
- steps = {};
16823
+ set steps(value) { this._steps.set(value); }
16824
+ get steps() { return this._steps(); }
15852
16825
  /**
15853
16826
  * Specifies the focused date of the popup Calendar
15854
16827
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/calendar-options#focused-dates)).
15855
16828
  */
15856
- focusedDate;
16829
+ set focusedDate(value) { this._focusedDate.set(value); }
16830
+ get focusedDate() { return this._focusedDate(); }
15857
16831
  /**
15858
16832
  * Specifies the Calendar type.
15859
16833
  *
15860
16834
  * @default 'infinite'
15861
16835
  */
15862
- calendarType = 'infinite';
16836
+ set calendarType(value) { this._calendarType.set(value); }
16837
+ get calendarType() { return this._calendarType(); }
15863
16838
  /**
15864
16839
  * Determines whether to enable animation when navigating to previous/next Calendar view.
15865
16840
  * Applies to the [`classic`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/datetimepickercomponent#calendartype) Calendar only.
@@ -15868,13 +16843,15 @@ class DateTimePickerComponent extends MultiTabStop {
15868
16843
  *
15869
16844
  * @default false
15870
16845
  */
15871
- animateCalendarNavigation = false;
16846
+ set animateCalendarNavigation(value) { this._animateCalendarNavigation.set(value); }
16847
+ get animateCalendarNavigation() { return this._animateCalendarNavigation(); }
15872
16848
  /**
15873
16849
  * Determines whether to display a week number column in the `month` view of the popup Calendar
15874
16850
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/calendar-options#week-number-column)).
15875
16851
  * @default false
15876
16852
  */
15877
- weekNumber = false;
16853
+ set weekNumber(value) { this._weekNumber.set(value); }
16854
+ get weekNumber() { return this._weekNumber(); }
15878
16855
  /**
15879
16856
  * Specifies the smallest valid date.
15880
16857
  * The Calendar will not display dates before this value.
@@ -15909,70 +16886,82 @@ class DateTimePickerComponent extends MultiTabStop {
15909
16886
  *
15910
16887
  * @default true
15911
16888
  */
15912
- rangeValidation = true;
16889
+ set rangeValidation(value) { this._rangeValidation.set(value); }
16890
+ get rangeValidation() { return this._rangeValidation(); }
15913
16891
  /**
15914
16892
  * Determines whether the built-in validator for disabled date ranges is enforced when validating a form
15915
16893
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/disabled-dates)).
15916
16894
  * @default true
15917
16895
  */
15918
- disabledDatesValidation = true;
16896
+ set disabledDatesValidation(value) { this._disabledDatesValidation.set(value); }
16897
+ get disabledDatesValidation() { return this._disabledDatesValidation(); }
15919
16898
  /**
15920
16899
  * Determines whether the built-in validation for incomplete dates is enforced when validating a form.
15921
16900
  * @default false
15922
16901
  */
15923
- incompleteDateValidation = false;
16902
+ set incompleteDateValidation(value) { this._incompleteDateValidation.set(value); }
16903
+ get incompleteDateValidation() { return this._incompleteDateValidation(); }
15924
16904
  /**
15925
16905
  * Determines whether to auto correct invalid segments automatically.
15926
16906
  *
15927
16907
  * @default true
15928
16908
  */
15929
- autoCorrectParts = true;
16909
+ set autoCorrectParts(value) { this._autoCorrectParts.set(value); }
16910
+ get autoCorrectParts() { return this._autoCorrectParts(); }
15930
16911
  /**
15931
16912
  * Determines whether to automatically move to the next segment after the user completes the current one.
15932
16913
  *
15933
16914
  * @default true
15934
16915
  */
15935
- autoSwitchParts = true;
16916
+ set autoSwitchParts(value) { this._autoSwitchParts.set(value); }
16917
+ get autoSwitchParts() { return this._autoSwitchParts(); }
15936
16918
  /**
15937
16919
  * Specifies custom keys that move the focus to the next date format segment.
15938
16920
  */
15939
- autoSwitchKeys = [];
16921
+ set autoSwitchKeys(value) { this._autoSwitchKeys.set(value); }
16922
+ get autoSwitchKeys() { return this._autoSwitchKeys(); }
15940
16923
  /**
15941
16924
  * Determines whether you can use the mouse scroll to increase or decrease the time segment values.
15942
16925
  *
15943
16926
  * @default true
15944
16927
  */
15945
- enableMouseWheel = true;
16928
+ set enableMouseWheel(value) { this._enableMouseWheel.set(value); }
16929
+ get enableMouseWheel() { return this._enableMouseWheel(); }
15946
16930
  /**
15947
16931
  * Determines whether you can see a blinking caret inside the DateInput when possible.
15948
16932
  *
15949
16933
  * @default false
15950
16934
  */
15951
- allowCaretMode = false;
16935
+ set allowCaretMode(value) { this._allowCaretMode.set(value); }
16936
+ get allowCaretMode() { return this._allowCaretMode(); }
15952
16937
  /**
15953
16938
  * Renders a clear button when set to `true` after the input text or DateTimePicker value has been changed.
15954
16939
  * Clicking this button resets the value of the component to `null` and triggers the `valueChange` event.
15955
16940
  * @default false
15956
16941
  */
15957
- clearButton = false;
16942
+ set clearButton(value) { this._clearButton.set(value); }
16943
+ get clearButton() { return this._clearButton(); }
15958
16944
  /**
15959
16945
  * Auto fills the rest of the date to the current date when the component loses focus.
15960
16946
  *
15961
16947
  * @default false
15962
16948
  */
15963
- autoFill = false;
16949
+ set autoFill(value) { this._autoFill.set(value); }
16950
+ get autoFill() { return this._autoFill(); }
15964
16951
  /**
15965
16952
  * Enables or disables the adaptive mode. The adaptive rendering is disabled by default.
15966
16953
  * @default 'none'
15967
16954
  */
15968
- adaptiveMode = 'none';
16955
+ set adaptiveMode(value) { this._adaptiveMode.set(value); }
16956
+ get adaptiveMode() { return this._adaptiveMode(); }
15969
16957
  /**
15970
16958
  * Specifies the HTML attributes of the inner focusable input element. You cannot change attributes that are essential for certain component functionalities.
15971
16959
  *
15972
16960
  * @remarks
15973
16961
  * This property is related to accessibility.
15974
16962
  */
15975
- inputAttributes;
16963
+ set inputAttributes(value) { this._inputAttributes.set(value); }
16964
+ get inputAttributes() { return this._inputAttributes(); }
15976
16965
  /**
15977
16966
  * Fires each time the user selects a new value
15978
16967
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/events)).
@@ -16030,11 +17019,11 @@ class DateTimePickerComponent extends MultiTabStop {
16030
17019
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/popup-options#setting-the-default-tab)).
16031
17020
  */
16032
17021
  set defaultTab(tab) {
16033
- this._defaultTab = tab || DEFAULT_ACTIVE_TAB;
17022
+ this._defaultTab.set(tab || DEFAULT_ACTIVE_TAB);
16034
17023
  this.activeTab = this.defaultTab;
16035
17024
  }
16036
17025
  get defaultTab() {
16037
- return this._defaultTab;
17026
+ return this._defaultTab();
16038
17027
  }
16039
17028
  /**
16040
17029
  * Specifies the size of the component. The default value is set by the Kendo theme.
@@ -16046,10 +17035,10 @@ class DateTimePickerComponent extends MultiTabStop {
16046
17035
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
16047
17036
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', size));
16048
17037
  }
16049
- this._size = size;
17038
+ this._size.set(size);
16050
17039
  }
16051
17040
  get size() {
16052
- return this._size;
17041
+ return this._size();
16053
17042
  }
16054
17043
  /**
16055
17044
  * Specifies the border radius of the component. The default value is set by the Kendo theme.
@@ -16060,10 +17049,10 @@ class DateTimePickerComponent extends MultiTabStop {
16060
17049
  if (rounded) {
16061
17050
  this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
16062
17051
  }
16063
- this._rounded = rounded;
17052
+ this._rounded.set(rounded);
16064
17053
  }
16065
17054
  get rounded() {
16066
- return this._rounded;
17055
+ return this._rounded();
16067
17056
  }
16068
17057
  /**
16069
17058
  * Specifies the fill mode of the component. The default value is set by the Kendo theme.
@@ -16076,10 +17065,10 @@ class DateTimePickerComponent extends MultiTabStop {
16076
17065
  this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
16077
17066
  this.toggleButton && this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
16078
17067
  }
16079
- this._fillMode = fillMode;
17068
+ this._fillMode.set(fillMode);
16080
17069
  }
16081
17070
  get fillMode() {
16082
- return this._fillMode;
17071
+ return this._fillMode();
16083
17072
  }
16084
17073
  /**
16085
17074
  * @hidden
@@ -16237,7 +17226,8 @@ class DateTimePickerComponent extends MultiTabStop {
16237
17226
  * Toggles the visibility of the Calendar footer.
16238
17227
  * @default false
16239
17228
  */
16240
- footer = false;
17229
+ set footer(value) { this._footer.set(value); }
17230
+ get footer() { return this._footer(); }
16241
17231
  get activeTabComponent() {
16242
17232
  if (!this.isOpen) {
16243
17233
  return;
@@ -16335,16 +17325,46 @@ class DateTimePickerComponent extends MultiTabStop {
16335
17325
  return control.invalid && (control.touched || control.dirty);
16336
17326
  }
16337
17327
  popupRef;
16338
- _popupSettings = { animate: true };
16339
- _value = null;
16340
- _format = DEFAULT_DATEINPUT_FORMAT;
16341
- _tabindex = 0;
16342
- _defaultTab = DEFAULT_ACTIVE_TAB;
17328
+ _popupSettings = signal({ animate: true }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : []));
17329
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : []));
17330
+ _format = signal(DEFAULT_DATEINPUT_FORMAT, ...(ngDevMode ? [{ debugName: "_format" }] : []));
17331
+ _tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : []));
17332
+ _defaultTab = signal(DEFAULT_ACTIVE_TAB, ...(ngDevMode ? [{ debugName: "_defaultTab" }] : []));
16343
17333
  _min = signal(mergeDateAndTime(MIN_DATE, MIN_TIME), ...(ngDevMode ? [{ debugName: "_min" }] : []));
16344
17334
  _max = signal(mergeDateAndTime(MAX_DATE, MAX_TIME), ...(ngDevMode ? [{ debugName: "_max" }] : []));
16345
- _disabledDates;
17335
+ _disabledDates = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledDates" }] : []));
16346
17336
  _isActive = false;
16347
17337
  _activeTab = signal(DEFAULT_ACTIVE_TAB, ...(ngDevMode ? [{ debugName: "_activeTab" }] : []));
17338
+ _focusableId = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusableId" }] : []));
17339
+ _weekDaysFormat = signal('short', ...(ngDevMode ? [{ debugName: "_weekDaysFormat" }] : []));
17340
+ _showOtherMonthDays = signal(undefined, ...(ngDevMode ? [{ debugName: "_showOtherMonthDays" }] : []));
17341
+ _twoDigitYearMax = signal(TWO_DIGIT_YEAR_MAX, ...(ngDevMode ? [{ debugName: "_twoDigitYearMax" }] : []));
17342
+ _readOnlyInput = signal(false, ...(ngDevMode ? [{ debugName: "_readOnlyInput" }] : []));
17343
+ _cancelButton = signal(true, ...(ngDevMode ? [{ debugName: "_cancelButton" }] : []));
17344
+ _formatPlaceholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_formatPlaceholder" }] : []));
17345
+ _placeholder = signal(undefined, ...(ngDevMode ? [{ debugName: "_placeholder" }] : []));
17346
+ _steps = signal({}, ...(ngDevMode ? [{ debugName: "_steps" }] : []));
17347
+ _focusedDate = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusedDate" }] : []));
17348
+ _calendarType = signal('infinite', ...(ngDevMode ? [{ debugName: "_calendarType" }] : []));
17349
+ _animateCalendarNavigation = signal(false, ...(ngDevMode ? [{ debugName: "_animateCalendarNavigation" }] : []));
17350
+ _weekNumber = signal(false, ...(ngDevMode ? [{ debugName: "_weekNumber" }] : []));
17351
+ _rangeValidation = signal(true, ...(ngDevMode ? [{ debugName: "_rangeValidation" }] : []));
17352
+ _disabledDatesValidation = signal(true, ...(ngDevMode ? [{ debugName: "_disabledDatesValidation" }] : []));
17353
+ _incompleteDateValidation = signal(false, ...(ngDevMode ? [{ debugName: "_incompleteDateValidation" }] : []));
17354
+ _autoCorrectParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoCorrectParts" }] : []));
17355
+ _autoSwitchParts = signal(true, ...(ngDevMode ? [{ debugName: "_autoSwitchParts" }] : []));
17356
+ _autoSwitchKeys = signal([], ...(ngDevMode ? [{ debugName: "_autoSwitchKeys" }] : []));
17357
+ _enableMouseWheel = signal(true, ...(ngDevMode ? [{ debugName: "_enableMouseWheel" }] : []));
17358
+ _allowCaretMode = signal(false, ...(ngDevMode ? [{ debugName: "_allowCaretMode" }] : []));
17359
+ _clearButton = signal(false, ...(ngDevMode ? [{ debugName: "_clearButton" }] : []));
17360
+ _autoFill = signal(false, ...(ngDevMode ? [{ debugName: "_autoFill" }] : []));
17361
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
17362
+ _inputAttributes = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputAttributes" }] : []));
17363
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
17364
+ _adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
17365
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
17366
+ _footer = signal(false, ...(ngDevMode ? [{ debugName: "_footer" }] : []));
17367
+ _readonly = signal(false, ...(ngDevMode ? [{ debugName: "_readonly" }] : []));
16348
17368
  onControlTouched = noop$2;
16349
17369
  onControlChange = noop$2;
16350
17370
  onValidatorChange = noop$2;
@@ -16354,9 +17374,9 @@ class DateTimePickerComponent extends MultiTabStop {
16354
17374
  incompleteValidator = noop$2;
16355
17375
  subscriptions = new Subscription();
16356
17376
  ariaActiveDescendantSubscription;
16357
- _size;
16358
- _rounded;
16359
- _fillMode;
17377
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
17378
+ _rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : []));
17379
+ _fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : []));
16360
17380
  constructor(popupService, intl, cdr, pickerService, ngZone, wrapper, localization, disabledDatesService, renderer, injector, adaptiveService) {
16361
17381
  super();
16362
17382
  this.popupService = popupService;
@@ -16398,6 +17418,14 @@ class DateTimePickerComponent extends MultiTabStop {
16398
17418
  this.setComponentClasses();
16399
17419
  this.windowSize = this.adaptiveService.size;
16400
17420
  this.subscriptions.add(this.formControl?.statusChanges?.subscribe(() => this.cdr.markForCheck()));
17421
+ const control = this.formControl;
17422
+ if (control && control.events) {
17423
+ this.subscriptions.add(control.events.subscribe(e => {
17424
+ if (e instanceof TouchedChangeEvent) {
17425
+ this.cdr.markForCheck();
17426
+ }
17427
+ }));
17428
+ }
16401
17429
  }
16402
17430
  ngOnChanges(changes) {
16403
17431
  if (isPresent(changes['min']) || isPresent(changes['max'])) {
@@ -16482,7 +17510,6 @@ class DateTimePickerComponent extends MultiTabStop {
16482
17510
  writeValue(value) {
16483
17511
  this.verifyValue(value);
16484
17512
  this.value = cloneDate(value);
16485
- this.cdr.markForCheck();
16486
17513
  if (!value && this.dateInput) {
16487
17514
  this.dateInput.placeholder = this.placeholder;
16488
17515
  this.dateInput.writeValue(value);
@@ -16505,7 +17532,6 @@ class DateTimePickerComponent extends MultiTabStop {
16505
17532
  */
16506
17533
  setDisabledState(disabled) {
16507
17534
  this.disabled = disabled;
16508
- this.cdr.markForCheck();
16509
17535
  }
16510
17536
  /**
16511
17537
  * @hidden
@@ -18550,23 +19576,53 @@ class DateRangePopupMessages extends ComponentMessages {
18550
19576
  /**
18551
19577
  * The text of the **Accept** button in the popup footer of the DateRange Popup.
18552
19578
  */
18553
- accept;
19579
+ set accept(value) {
19580
+ this._accept.set(value);
19581
+ }
19582
+ get accept() {
19583
+ return this._accept();
19584
+ }
18554
19585
  /**
18555
19586
  * The label of the **Accept** button in the popup footer of the DateRange Popup.
18556
19587
  */
18557
- acceptLabel;
19588
+ set acceptLabel(value) {
19589
+ this._acceptLabel.set(value);
19590
+ }
19591
+ get acceptLabel() {
19592
+ return this._acceptLabel();
19593
+ }
18558
19594
  /**
18559
19595
  * The text of the **Cancel** button in the popup footer of the DateRange Popup.
18560
19596
  */
18561
- cancel;
19597
+ set cancel(value) {
19598
+ this._cancel.set(value);
19599
+ }
19600
+ get cancel() {
19601
+ return this._cancel();
19602
+ }
18562
19603
  /**
18563
19604
  * The label of the **Cancel** button in the popup footer of the DateRange Popup.
18564
19605
  */
18565
- cancelLabel;
19606
+ set cancelLabel(value) {
19607
+ this._cancelLabel.set(value);
19608
+ }
19609
+ get cancelLabel() {
19610
+ return this._cancelLabel();
19611
+ }
18566
19612
  /**
18567
19613
  * 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
19614
  */
18569
- adaptiveCloseButtonTitle;
19615
+ set adaptiveCloseButtonTitle(value) {
19616
+ this._adaptiveCloseButtonTitle.set(value);
19617
+ }
19618
+ get adaptiveCloseButtonTitle() {
19619
+ return this._adaptiveCloseButtonTitle();
19620
+ }
19621
+ _accept = signal(undefined, ...(ngDevMode ? [{ debugName: "_accept" }] : []));
19622
+ _acceptLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_acceptLabel" }] : []));
19623
+ _cancel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancel" }] : []));
19624
+ _cancelLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_cancelLabel" }] : []));
19625
+ _adaptiveCloseButtonTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_adaptiveCloseButtonTitle" }] : []));
18570
19626
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateRangePopupMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18571
19627
  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
19628
  }
@@ -18658,18 +19714,21 @@ class DateRangePopupComponent {
18658
19714
  *
18659
19715
  * Determines whether to display the MultiViewCalendar header.
18660
19716
  */
18661
- showCalendarHeader = true;
19717
+ set showCalendarHeader(value) { this._showCalendarHeader.set(value); }
19718
+ get showCalendarHeader() { return this._showCalendarHeader(); }
18662
19719
  /**
18663
19720
  * Specifies the focused date of the MultiViewCalendar component.
18664
19721
  * 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
19722
  *
18666
19723
  * If the MultiViewCalendar is out of the min or max range, it normalizes the defined `focusedDate`.
18667
19724
  */
18668
- focusedDate;
19725
+ set focusedDate(value) { this._focusedDate.set(value); }
19726
+ get focusedDate() { return this._focusedDate(); }
18669
19727
  /**
18670
19728
  * 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
19729
  */
18672
- disabledDates;
19730
+ set disabledDates(value) { this._disabledDates.set(value); }
19731
+ get disabledDates() { return this._disabledDates(); }
18673
19732
  /**
18674
19733
  * 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
19734
  * By default, the active view is `month`.
@@ -18678,63 +19737,73 @@ class DateRangePopupComponent {
18678
19737
  *
18679
19738
  * @default 'month
18680
19739
  */
18681
- activeView = CalendarViewEnum[CalendarViewEnum.month];
19740
+ set activeView(value) { this._activeView.set(value); }
19741
+ get activeView() { return this._activeView(); }
18682
19742
  /**
18683
19743
  * 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
19744
  *
18685
19745
  * @default 'month'
18686
19746
  */
18687
- bottomView = CalendarViewEnum[CalendarViewEnum.month];
19747
+ set bottomView(value) { this._bottomView.set(value); }
19748
+ get bottomView() { return this._bottomView(); }
18688
19749
  /**
18689
19750
  * 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
19751
  *
18691
19752
  * @default 'century'
18692
19753
  */
18693
- topView = CalendarViewEnum[CalendarViewEnum.century];
19754
+ set topView(value) { this._topView.set(value); }
19755
+ get topView() { return this._topView(); }
18694
19756
  /**
18695
19757
  * Specifies the minimum date that users can select ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/dates#focused-dates)).
18696
19758
  *
18697
19759
  * @default '1900-01-01'
18698
19760
  */
18699
- min;
19761
+ set min(value) { this._min.set(value); }
19762
+ get min() { return this._min(); }
18700
19763
  /**
18701
19764
  * Specifies the maximum date that users can select ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/dates#focused-dates)).
18702
19765
  *
18703
19766
  * @default '2099-12-31'
18704
19767
  */
18705
- max;
19768
+ set max(value) { this._max.set(value); }
19769
+ get max() { return this._max(); }
18706
19770
  /**
18707
19771
  * Determines whether users can select dates in reverse order.
18708
19772
  * When you set `allowReverse` to `true`, the component does not validate if the start date comes after the end date.
18709
19773
  *
18710
19774
  * @default false
18711
19775
  */
18712
- allowReverse = false;
19776
+ set allowReverse(value) { this._allowReverse.set(value); }
19777
+ get allowReverse() { return this._allowReverse(); }
18713
19778
  /**
18714
19779
  * Determines whether to animate transitions when users navigate between views.
18715
19780
  *
18716
19781
  * @default false
18717
19782
  */
18718
- animateNavigation = false;
19783
+ set animateNavigation(value) { this._animateNavigation.set(value); }
19784
+ get animateNavigation() { return this._animateNavigation(); }
18719
19785
  /**
18720
19786
  * Determines whether the MultiViewCalendar is interactive ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/disabled-state)).
18721
19787
  * When you set `disabled` to `true`, users cannot interact with the component.
18722
19788
  *
18723
19789
  * @default false
18724
19790
  */
18725
- disabled = false;
19791
+ set disabled(value) { this._disabled.set(value); }
19792
+ get disabled() { return this._disabled(); }
18726
19793
  /**
18727
19794
  * Specifies the number of calendar views to display side by side.
18728
19795
  *
18729
19796
  * @default 2
18730
19797
  */
18731
- views = 2;
19798
+ set views(value) { this._views.set(value); }
19799
+ get views() { return this._views(); }
18732
19800
  /**
18733
19801
  * 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
19802
  *
18735
19803
  * @default false
18736
19804
  */
18737
- weekNumber = false;
19805
+ set weekNumber(value) { this._weekNumber.set(value); }
19806
+ get weekNumber() { return this._weekNumber(); }
18738
19807
  /**
18739
19808
  * Controls the popup animations.
18740
19809
  * When you set `animate` to `true`, the popup displays opening and closing animations.
@@ -18743,40 +19812,46 @@ class DateRangePopupComponent {
18743
19812
  *
18744
19813
  * @default true
18745
19814
  */
18746
- animate = true;
19815
+ set animate(value) { this._animate.set(value); }
19816
+ get animate() { return this._animate(); }
18747
19817
  /**
18748
19818
  * Specifies the element that serves as an anchor for the popup.
18749
19819
  * The popup opens next to this element.
18750
19820
  * For more information, refer to the section on
18751
19821
  * [aligning to specific components](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#aligning-to-components).
18752
19822
  */
18753
- anchor;
19823
+ set anchor(value) { this._anchor.set(value); }
19824
+ get anchor() { return this._anchor(); }
18754
19825
  /**
18755
19826
  * Specifies the alignment point for the anchor element.
18756
19827
  * For more information, refer to the section on
18757
19828
  * [positioning](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning).
18758
19829
  */
18759
- anchorAlign;
19830
+ set anchorAlign(value) { this._anchorAlign.set(value); }
19831
+ get anchorAlign() { return this._anchorAlign(); }
18760
19832
  /**
18761
19833
  * Determines whether to display a header for each view ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/multiviewcalendar/view-header)).
18762
19834
  * For example, displays the month name in the month view.
18763
19835
  *
18764
19836
  * @default false
18765
19837
  */
18766
- showViewHeader = false;
19838
+ set showViewHeader(value) { this._showViewHeader.set(value); }
19839
+ get showViewHeader() { return this._showViewHeader(); }
18767
19840
  /**
18768
19841
  * 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
19842
  *
18770
19843
  * @default false
18771
19844
  */
18772
- showOtherMonthDays = false;
19845
+ set showOtherMonthDays(value) { this._showOtherMonthDays.set(value); }
19846
+ get showOtherMonthDays() { return this._showOtherMonthDays(); }
18773
19847
  /**
18774
19848
  * Specifies where to render the popup container.
18775
19849
  * By default, the popup renders in the root component.
18776
19850
  *
18777
19851
  * @default 'root'
18778
19852
  */
18779
- appendTo;
19853
+ set appendTo(value) { this._appendToValue.set(value); }
19854
+ get appendTo() { return this._appendToValue(); }
18780
19855
  /**
18781
19856
  * Configures how the popup behaves when it encounters viewport boundaries.
18782
19857
  * For more information, refer to the article on
@@ -18784,39 +19859,45 @@ class DateRangePopupComponent {
18784
19859
  *
18785
19860
  * @default { horizontal: 'fit', vertical: 'flip' }
18786
19861
  */
18787
- collision = { horizontal: 'fit', vertical: 'flip' };
19862
+ set collision(value) { this._collision.set(value); }
19863
+ get collision() { return this._collision(); }
18788
19864
  /**
18789
19865
  * Specifies the alignment point for the popup element.
18790
19866
  * For more information, refer to the section on
18791
19867
  * [positioning](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning).
18792
19868
  */
18793
- popupAlign;
19869
+ set popupAlign(value) { this._popupAlign.set(value); }
19870
+ get popupAlign() { return this._popupAlign(); }
18794
19871
  /**
18795
19872
  * Specifies the margin around the popup in pixels.
18796
19873
  * Creates empty space between the popup and its anchor element.
18797
19874
  */
18798
- margin;
19875
+ set margin(value) { this._margin.set(value); }
19876
+ get margin() { return this._margin(); }
18799
19877
  /**
18800
19878
  * Determines whether the component uses adaptive rendering for different screen sizes.
18801
19879
  * By default, adaptive rendering is disabled.
18802
19880
  *
18803
19881
  * @default 'none'
18804
19882
  */
18805
- adaptiveMode = 'none';
19883
+ set adaptiveMode(value) { this._adaptiveMode.set(value); }
19884
+ get adaptiveMode() { return this._adaptiveMode(); }
18806
19885
  /**
18807
19886
  * Specifies the title text for the input element and the header of the action sheet.
18808
19887
  * Applies only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
18809
19888
  *
18810
19889
  * @default ""
18811
19890
  */
18812
- adaptiveTitle = "";
19891
+ set adaptiveTitle(value) { this._adaptiveTitle.set(value); }
19892
+ get adaptiveTitle() { return this._adaptiveTitle(); }
18813
19893
  /**
18814
19894
  * Specifies the subtitle text displayed in the header of the action sheet.
18815
19895
  * Applies only when [`AdaptiveMode` is set to `auto`](https://www.telerik.com/kendo-angular-ui/components/dateinputs/api/adaptivemode).
18816
19896
  *
18817
19897
  * @default ""
18818
19898
  */
18819
- adaptiveSubtitle = "";
19899
+ set adaptiveSubtitle(value) { this._adaptiveSubtitle.set(value); }
19900
+ get adaptiveSubtitle() { return this._adaptiveSubtitle(); }
18820
19901
  /**
18821
19902
  * @hidden
18822
19903
  *
@@ -18824,7 +19905,8 @@ class DateRangePopupComponent {
18824
19905
  * Sets the size of the component.
18825
19906
  * @default undefined
18826
19907
  */
18827
- size;
19908
+ set size(value) { this._size.set(value); }
19909
+ get size() { return this._size(); }
18828
19910
  /**
18829
19911
  * Fires when the popup is about to open ([see example](https://www.telerik.com/kendo-angular-ui/components/dateinputs/daterange/popup#events)).
18830
19912
  * You can prevent this event to keep the popup closed.
@@ -18897,7 +19979,8 @@ class DateRangePopupComponent {
18897
19979
  /**
18898
19980
  * @hidden
18899
19981
  */
18900
- windowSize;
19982
+ get windowSize() { return this._windowSize(); }
19983
+ set windowSize(value) { this._windowSize.set(value); }
18901
19984
  /**
18902
19985
  * @hidden
18903
19986
  */
@@ -18906,7 +19989,7 @@ class DateRangePopupComponent {
18906
19989
  * Gets or sets the visibility state of the component.
18907
19990
  */
18908
19991
  set show(show) {
18909
- if (this._show === show) {
19992
+ if (this._show() === show) {
18910
19993
  return;
18911
19994
  }
18912
19995
  const event = new PreventableEvent();
@@ -18922,7 +20005,7 @@ class DateRangePopupComponent {
18922
20005
  this.toggleDateRange(show);
18923
20006
  }
18924
20007
  get show() {
18925
- return this._show;
20008
+ return this._show();
18926
20009
  }
18927
20010
  /**
18928
20011
  * @hidden
@@ -18940,7 +20023,34 @@ class DateRangePopupComponent {
18940
20023
  localizationSubscriptions = new Subscription();
18941
20024
  resolvedPromise = Promise.resolve();
18942
20025
  _calendar;
18943
- _show;
20026
+ _show = signal(undefined, ...(ngDevMode ? [{ debugName: "_show" }] : []));
20027
+ _showCalendarHeader = signal(true, ...(ngDevMode ? [{ debugName: "_showCalendarHeader" }] : []));
20028
+ _focusedDate = signal(undefined, ...(ngDevMode ? [{ debugName: "_focusedDate" }] : []));
20029
+ _disabledDates = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabledDates" }] : []));
20030
+ _activeView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_activeView" }] : []));
20031
+ _bottomView = signal(CalendarViewEnum[CalendarViewEnum.month], ...(ngDevMode ? [{ debugName: "_bottomView" }] : []));
20032
+ _topView = signal(CalendarViewEnum[CalendarViewEnum.century], ...(ngDevMode ? [{ debugName: "_topView" }] : []));
20033
+ _min = signal(undefined, ...(ngDevMode ? [{ debugName: "_min" }] : []));
20034
+ _max = signal(undefined, ...(ngDevMode ? [{ debugName: "_max" }] : []));
20035
+ _allowReverse = signal(false, ...(ngDevMode ? [{ debugName: "_allowReverse" }] : []));
20036
+ _animateNavigation = signal(false, ...(ngDevMode ? [{ debugName: "_animateNavigation" }] : []));
20037
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
20038
+ _views = signal(2, ...(ngDevMode ? [{ debugName: "_views" }] : []));
20039
+ _weekNumber = signal(false, ...(ngDevMode ? [{ debugName: "_weekNumber" }] : []));
20040
+ _animate = signal(true, ...(ngDevMode ? [{ debugName: "_animate" }] : []));
20041
+ _anchor = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchor" }] : []));
20042
+ _anchorAlign = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchorAlign" }] : []));
20043
+ _showViewHeader = signal(false, ...(ngDevMode ? [{ debugName: "_showViewHeader" }] : []));
20044
+ _showOtherMonthDays = signal(false, ...(ngDevMode ? [{ debugName: "_showOtherMonthDays" }] : []));
20045
+ _appendToValue = signal(undefined, ...(ngDevMode ? [{ debugName: "_appendToValue" }] : []));
20046
+ _collision = signal({ horizontal: 'fit', vertical: 'flip' }, ...(ngDevMode ? [{ debugName: "_collision" }] : []));
20047
+ _popupAlign = signal(undefined, ...(ngDevMode ? [{ debugName: "_popupAlign" }] : []));
20048
+ _margin = signal(undefined, ...(ngDevMode ? [{ debugName: "_margin" }] : []));
20049
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
20050
+ _adaptiveTitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveTitle" }] : []));
20051
+ _adaptiveSubtitle = signal('', ...(ngDevMode ? [{ debugName: "_adaptiveSubtitle" }] : []));
20052
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
20053
+ _windowSize = signal(undefined, ...(ngDevMode ? [{ debugName: "_windowSize" }] : []));
18944
20054
  constructor(popupService, dateRangeService, zone, renderer, localization, cdr, rtl, adaptiveService) {
18945
20055
  this.popupService = popupService;
18946
20056
  this.dateRangeService = dateRangeService;
@@ -19022,7 +20132,6 @@ class DateRangePopupComponent {
19022
20132
  this.activateSubscription.unsubscribe();
19023
20133
  }
19024
20134
  this.show = true;
19025
- this.cdr.markForCheck();
19026
20135
  this.zone.runOutsideAngular(() => {
19027
20136
  this.activateSubscription = merge(this.contentCalendar.changes, this.viewCalendar.changes).pipe(filter(changes => changes && changes.first), map(changes => changes.first)).subscribe((calendar) => setTimeout(() => {
19028
20137
  calendar.focus();
@@ -19173,11 +20282,11 @@ class DateRangePopupComponent {
19173
20282
  return appendTo === 'component' ? this.container : appendTo;
19174
20283
  }
19175
20284
  togglePopup(show) {
19176
- this._show = show;
20285
+ this._show.set(show);
19177
20286
  if (this.popupRef) {
19178
20287
  this.destroyPopup();
19179
20288
  }
19180
- if (this._show) {
20289
+ if (this._show()) {
19181
20290
  const direction = this.rtl ? 'right' : 'left';
19182
20291
  this.popupRef = this.popupService.open({
19183
20292
  anchor: this.anchor,
@@ -19215,7 +20324,7 @@ class DateRangePopupComponent {
19215
20324
  }
19216
20325
  }
19217
20326
  toggleActionSheet(show) {
19218
- if (show === this._show) {
20327
+ if (show === this._show()) {
19219
20328
  return;
19220
20329
  }
19221
20330
  if (show && !this.actionSheet.expanded) {
@@ -19226,7 +20335,7 @@ class DateRangePopupComponent {
19226
20335
  else if (!show && this.actionSheet.expanded) {
19227
20336
  this.actionSheet.toggle();
19228
20337
  }
19229
- this._show = show;
20338
+ this._show.set(show);
19230
20339
  }
19231
20340
  addCalendarSubscription = (calendar) => {
19232
20341
  this.calendarSubscriptions.add(calendar.viewList.focusedCellChange.subscribe((id) => {
@@ -19389,11 +20498,13 @@ class DateRangePopupComponent {
19389
20498
  </div>
19390
20499
  </ng-template>
19391
20500
  </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"] }] });
20501
+ `, 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
20502
  }
19394
20503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateRangePopupComponent, decorators: [{
19395
20504
  type: Component,
19396
20505
  args: [{
20506
+ selector: 'kendo-daterange-popup',
20507
+ changeDetection: ChangeDetectionStrategy.OnPush,
19397
20508
  exportAs: 'kendo-daterange-popup',
19398
20509
  providers: [
19399
20510
  LocalizationService,
@@ -19402,7 +20513,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
19402
20513
  useValue: 'kendo.daterangepopup'
19403
20514
  }
19404
20515
  ],
19405
- selector: 'kendo-daterange-popup',
19406
20516
  template: `
19407
20517
  <ng-container kendoDateRangePopupLocalizedMessages
19408
20518
  i18n-accept="kendo.daterangepopup.accept|The Accept button text in the timepicker component"
@@ -19680,7 +20790,8 @@ class DateRangeComponent {
19680
20790
  *
19681
20791
  * @default undefined
19682
20792
  */
19683
- size;
20793
+ set size(value) { this._size.set(value); }
20794
+ get size() { return this._size(); }
19684
20795
  /**
19685
20796
  * @hidden
19686
20797
  */
@@ -19699,20 +20810,22 @@ class DateRangeComponent {
19699
20810
  /**
19700
20811
  * @hidden
19701
20812
  */
19702
- showDefault = false;
20813
+ get showDefault() { return this._showDefault(); }
19703
20814
  contentPopup;
19704
20815
  get hasContentPopup() {
19705
20816
  return this.contentPopup.length > 0;
19706
20817
  }
19707
20818
  subscription;
20819
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
20820
+ _showDefault = signal(false, ...(ngDevMode ? [{ debugName: "_showDefault" }] : []));
19708
20821
  constructor(dateRangeService) {
19709
20822
  this.dateRangeService = dateRangeService;
19710
20823
  validatePackage(packageMetadata);
19711
20824
  }
19712
20825
  ngAfterContentInit() {
19713
- this.showDefault = !this.hasContentPopup;
20826
+ this._showDefault.set(!this.hasContentPopup);
19714
20827
  this.subscription = this.contentPopup.changes.subscribe(() => {
19715
- this.showDefault = !this.hasContentPopup;
20828
+ this._showDefault.set(!this.hasContentPopup);
19716
20829
  });
19717
20830
  }
19718
20831
  ngOnDestroy() {
@@ -19728,17 +20841,18 @@ class DateRangeComponent {
19728
20841
  @if (showDefault) {
19729
20842
  <kendo-daterange-popup [size]="size"></kendo-daterange-popup>
19730
20843
  }
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"] }] });
20844
+ `, 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
20845
  }
19733
20846
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DateRangeComponent, decorators: [{
19734
20847
  type: Component,
19735
20848
  args: [{
20849
+ selector: 'kendo-daterange',
20850
+ changeDetection: ChangeDetectionStrategy.OnPush,
19736
20851
  providers: [
19737
20852
  DateRangeService,
19738
20853
  { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DateRangeComponent) },
19739
20854
  provideComponentName('daterange')
19740
20855
  ],
19741
- selector: 'kendo-daterange',
19742
20856
  template: `
19743
20857
  <ng-content></ng-content>
19744
20858
  @if (showDefault) {