@ptsecurity/mosaic 15.6.0 → 15.7.2

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.
Files changed (124) hide show
  1. package/_theming.scss +19 -0
  2. package/_visual.scss +2 -0
  3. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -15
  4. package/checkbox/_checkbox-theme.scss +4 -0
  5. package/core/formatters/index.d.ts +1 -1
  6. package/core/formatters/number/formatter.d.ts +25 -0
  7. package/core/locales/en-US.d.ts +1 -2
  8. package/core/locales/es-LA.d.ts +9 -0
  9. package/core/locales/fa-IR.d.ts +9 -0
  10. package/core/locales/locale-service.d.ts +39 -5
  11. package/core/locales/pt-BR.d.ts +9 -0
  12. package/core/locales/ru-RU.d.ts +1 -2
  13. package/core/locales/zh-CN.d.ts +9 -0
  14. package/core/option/option.d.ts +36 -7
  15. package/core/overlay/overlay-position-map.d.ts +7 -1
  16. package/core/styles/_variables.scss +1 -0
  17. package/core/styles/theming/_theming.scss +1 -0
  18. package/datepicker/calendar-header.component.d.ts +8 -2
  19. package/datepicker/calendar.component.d.ts +3 -4
  20. package/datepicker/month-view.component.d.ts +3 -4
  21. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +27 -24
  22. package/esm2020/core/formatters/index.mjs +6 -2
  23. package/esm2020/core/formatters/number/formatter.mjs +90 -1
  24. package/esm2020/core/locales/en-US.mjs +3 -4
  25. package/esm2020/core/locales/es-LA.mjs +11 -2
  26. package/esm2020/core/locales/fa-IR.mjs +11 -2
  27. package/esm2020/core/locales/locale-service.mjs +4 -4
  28. package/esm2020/core/locales/pt-BR.mjs +11 -2
  29. package/esm2020/core/locales/ru-RU.mjs +3 -4
  30. package/esm2020/core/locales/zh-CN.mjs +11 -2
  31. package/esm2020/core/option/option.mjs +43 -7
  32. package/esm2020/core/overlay/overlay-position-map.mjs +7 -1
  33. package/esm2020/core/version.mjs +2 -2
  34. package/esm2020/datepicker/calendar-header.component.mjs +8 -7
  35. package/esm2020/datepicker/calendar.component.mjs +5 -14
  36. package/esm2020/datepicker/datepicker-input.directive.mjs +7 -6
  37. package/esm2020/datepicker/month-view.component.mjs +6 -15
  38. package/esm2020/file-upload/multiple-file-upload.component.mjs +9 -5
  39. package/esm2020/file-upload/single-file-upload.component.mjs +10 -6
  40. package/esm2020/loader-overlay/loader-overlay.component.mjs +2 -2
  41. package/esm2020/modal/modal.component.mjs +6 -5
  42. package/esm2020/modal/modal.module.mjs +8 -4
  43. package/esm2020/navbar/navbar.component.mjs +18 -9
  44. package/esm2020/navbar/vertical-navbar.component.mjs +9 -6
  45. package/esm2020/select/select.component.mjs +23 -9
  46. package/esm2020/tabs/tab.component.mjs +13 -4
  47. package/esm2020/timezone/timezone-select.component.mjs +2 -2
  48. package/esm2020/title/title.directive.mjs +2 -2
  49. package/esm2020/toast/toast.module.mjs +10 -4
  50. package/esm2020/tree/tree-option.component.mjs +6 -3
  51. package/esm2020/tree/tree-selection.component.mjs +6 -5
  52. package/esm2020/tree-select/tree-select.component.mjs +3 -3
  53. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +30 -24
  54. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  55. package/fesm2015/ptsecurity-mosaic-core.mjs +189 -22
  56. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  57. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +20 -36
  58. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  59. package/fesm2015/ptsecurity-mosaic-file-upload.mjs +15 -7
  60. package/fesm2015/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  61. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +2 -2
  62. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  63. package/fesm2015/ptsecurity-mosaic-modal.mjs +10 -5
  64. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  65. package/fesm2015/ptsecurity-mosaic-navbar.mjs +23 -15
  66. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  67. package/fesm2015/ptsecurity-mosaic-select.mjs +23 -8
  68. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  69. package/fesm2015/ptsecurity-mosaic-tabs.mjs +12 -3
  70. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  71. package/fesm2015/ptsecurity-mosaic-timezone.mjs +2 -2
  72. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -1
  73. package/fesm2015/ptsecurity-mosaic-title.mjs +1 -1
  74. package/fesm2015/ptsecurity-mosaic-title.mjs.map +1 -1
  75. package/fesm2015/ptsecurity-mosaic-toast.mjs +8 -2
  76. package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
  77. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +2 -2
  78. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  79. package/fesm2015/ptsecurity-mosaic-tree.mjs +11 -6
  80. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  81. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +27 -24
  82. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  83. package/fesm2020/ptsecurity-mosaic-core.mjs +189 -21
  84. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  85. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +20 -36
  86. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  87. package/fesm2020/ptsecurity-mosaic-file-upload.mjs +15 -7
  88. package/fesm2020/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  89. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +2 -2
  90. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  91. package/fesm2020/ptsecurity-mosaic-modal.mjs +10 -5
  92. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  93. package/fesm2020/ptsecurity-mosaic-navbar.mjs +23 -15
  94. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  95. package/fesm2020/ptsecurity-mosaic-select.mjs +22 -8
  96. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  97. package/fesm2020/ptsecurity-mosaic-tabs.mjs +12 -3
  98. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  99. package/fesm2020/ptsecurity-mosaic-timezone.mjs +2 -2
  100. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -1
  101. package/fesm2020/ptsecurity-mosaic-title.mjs +1 -1
  102. package/fesm2020/ptsecurity-mosaic-title.mjs.map +1 -1
  103. package/fesm2020/ptsecurity-mosaic-toast.mjs +8 -2
  104. package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
  105. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +2 -2
  106. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  107. package/fesm2020/ptsecurity-mosaic-tree.mjs +10 -6
  108. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  109. package/file-upload/multiple-file-upload.component.d.ts +4 -3
  110. package/file-upload/single-file-upload.component.d.ts +4 -3
  111. package/form-field/_form-field-theme.scss +4 -0
  112. package/loader-overlay/loader-overlay.scss +3 -0
  113. package/modal/modal.module.d.ts +2 -1
  114. package/modal/modal.scss +14 -2
  115. package/navbar/navbar.component.d.ts +5 -2
  116. package/navbar/vertical-navbar.component.d.ts +4 -2
  117. package/package.json +4 -7
  118. package/prebuilt-themes/dark-theme.css +1 -1
  119. package/prebuilt-themes/default-theme.css +1 -1
  120. package/prebuilt-visual/default-visual.css +1 -1
  121. package/radio/_radio-theme.scss +4 -0
  122. package/select/select.component.d.ts +12 -9
  123. package/select/select.scss +1 -1
  124. package/tree/tree-option.scss +4 -2
@@ -5,7 +5,7 @@ import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
5
5
  import * as i1 from '@angular/common';
6
6
  import { DOCUMENT, CommonModule } from '@angular/common';
7
7
  import * as i0 from '@angular/core';
8
- import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, Injectable, Optional, Inject, ViewChild, InjectionToken, forwardRef, Directive, ContentChild, NgModule } from '@angular/core';
8
+ import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, Injectable, Optional, ViewChild, InjectionToken, Inject, forwardRef, Directive, ContentChild, NgModule } from '@angular/core';
9
9
  import * as i3 from '@ptsecurity/mosaic/button';
10
10
  import { McButtonModule } from '@ptsecurity/mosaic/button';
11
11
  import * as i6 from '@ptsecurity/mosaic/icon';
@@ -13,7 +13,7 @@ import { McIconModule } from '@ptsecurity/mosaic/icon';
13
13
  import * as i5 from '@ptsecurity/mosaic/select';
14
14
  import { McSelectModule } from '@ptsecurity/mosaic/select';
15
15
  import * as i1$1 from '@ptsecurity/mosaic/core';
16
- import { MC_DATE_FORMATS, validationTooltipShowDelay, validationTooltipHideDelay, MC_LOCALE_SERVICE } from '@ptsecurity/mosaic/core';
16
+ import { validationTooltipShowDelay, validationTooltipHideDelay, MC_DATE_FORMATS, MC_LOCALE_SERVICE } from '@ptsecurity/mosaic/core';
17
17
  import * as i4 from '@ptsecurity/mosaic/form-field';
18
18
  import { McFormFieldControl } from '@ptsecurity/mosaic/form-field';
19
19
  import { Subject, Subscription, merge, of } from 'rxjs';
@@ -201,25 +201,26 @@ class McCalendarHeader {
201
201
  }
202
202
  updateSelectedValues() {
203
203
  this.selectedMonth = this.monthNames[this.adapter.getMonth(this.activeDate)].value;
204
- const selectedYear = this.adapter.getYear(this.activeDate);
205
- this.selectedYear = this.years.includes(selectedYear) ? selectedYear : this.years[0];
204
+ const year = this.adapter.getYear(this.activeDate);
205
+ this.selectedYear = this.years.find(({ name }) => name === year)
206
+ || { name: year, value: this.adapter.getYearName(this.activeDate) };
206
207
  }
207
208
  updateYearsArray() {
208
209
  const minYear = this.adapter.getYear(this.minDate);
209
210
  const maxYear = this.adapter.getYear(this.maxDate);
210
211
  this.years = [];
211
- for (let i = minYear; i <= maxYear; i++) {
212
- this.years.push(i);
212
+ for (let key = minYear; key <= maxYear; key++) {
213
+ this.years.push({ name: key, value: this.adapter.getYearName(this.adapter.createDate(key)) });
213
214
  }
214
215
  }
215
216
  }
216
217
  /** @nocollapse */ McCalendarHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendarHeader, deps: [{ token: i1$1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
217
- /** @nocollapse */ McCalendarHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCalendarHeader, selector: "mc-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "mc-calendar-header" }, exportAs: ["mcCalendarHeader"], ngImport: i0, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ yearSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i3.McButtonCssStyler, selector: "[mc-button]" }, { kind: "directive", type: i4.McValidateDirective, selector: " input[mcInput], input[mcInputPassword], input[mcTimepicker], input[mcDatepicker], textarea[mcTextarea], mc-select, mc-tree-select, mc-tag-list ", exportAs: ["McValidate"] }, { kind: "component", type: i5.McSelect, selector: "mc-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["mcSelect"] }, { kind: "directive", type: i5.McSelectMatcher, selector: "mc-select-matcher, [mc-select-matcher]" }, { kind: "directive", type: i5.McOptionTooltip, selector: "mc-option" }, { kind: "component", type: i1$1.McOption, selector: "mc-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["mcOption"] }, { kind: "component", type: i6.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i6.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
218
+ /** @nocollapse */ McCalendarHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCalendarHeader, selector: "mc-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "mc-calendar-header" }, exportAs: ["mcCalendarHeader"], ngImport: i0, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value.name)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ this.selectedYear.value }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year.value }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i3.McButtonCssStyler, selector: "[mc-button]" }, { kind: "directive", type: i4.McValidateDirective, selector: " input[mcInput], input[mcInputPassword], input[mcTimepicker], input[mcDatepicker], textarea[mcTextarea], mc-select, mc-tree-select, mc-tag-list ", exportAs: ["McValidate"] }, { kind: "component", type: i5.McSelect, selector: "mc-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["mcSelect"] }, { kind: "directive", type: i5.McSelectMatcher, selector: "mc-select-matcher, [mc-select-matcher]" }, { kind: "directive", type: i5.McOptionTooltip, selector: "mc-option" }, { kind: "component", type: i1$1.McOption, selector: "mc-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["mcOption"] }, { kind: "component", type: i6.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i6.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
218
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendarHeader, decorators: [{
219
220
  type: Component,
220
221
  args: [{ selector: 'mc-calendar-header', exportAs: 'mcCalendarHeader', host: {
221
222
  class: 'mc-calendar-header'
222
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ yearSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"] }]
223
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value.name)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ this.selectedYear.value }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year.value }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"] }]
223
224
  }], ctorParameters: function () { return [{ type: i1$1.DateAdapter }]; }, propDecorators: { activeDate: [{
224
225
  type: Input
225
226
  }], maxDate: [{
@@ -284,9 +285,8 @@ const DAYS_PER_WEEK = 7;
284
285
  * @docs-private
285
286
  */
286
287
  class McMonthView {
287
- constructor(changeDetectorRef, dateFormats, adapter) {
288
+ constructor(changeDetectorRef, adapter) {
288
289
  this.changeDetectorRef = changeDetectorRef;
289
- this.dateFormats = dateFormats;
290
290
  this.adapter = adapter;
291
291
  /** Emits when a new date is selected. */
292
292
  this.selectedChange = new EventEmitter();
@@ -297,9 +297,6 @@ class McMonthView {
297
297
  if (!this.adapter) {
298
298
  throw createMissingDateImplError('DateAdapter');
299
299
  }
300
- if (!this.dateFormats) {
301
- throw createMissingDateImplError('MC_DATE_FORMATS');
302
- }
303
300
  const firstDayOfWeek = this.adapter.getFirstDayOfWeek();
304
301
  const narrowWeekdays = this.adapter.getDayOfWeekNames('short');
305
302
  const longWeekdays = this.adapter.getDayOfWeekNames('long');
@@ -392,17 +389,12 @@ class McMonthView {
392
389
  this.adapter.getYear(d1) === this.adapter.getYear(d2));
393
390
  }
394
391
  }
395
- /** @nocollapse */ McMonthView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McMonthView, deps: [{ token: i0.ChangeDetectorRef }, { token: MC_DATE_FORMATS, optional: true }, { token: i1$1.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Component });
392
+ /** @nocollapse */ McMonthView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McMonthView, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Component });
396
393
  /** @nocollapse */ McMonthView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McMonthView, selector: "mc-month-view", inputs: { activeDate: "activeDate", selected: "selected", minDate: "minDate", maxDate: "maxDate", dateFilter: "dateFilter", dateClass: "dateClass" }, outputs: { selectedChange: "selectedChange", userSelection: "userSelection", activeDateChange: "activeDateChange" }, viewQueries: [{ propertyName: "mcCalendarBody", first: true, predicate: McCalendarBody, descendants: true }], exportAs: ["mcMonthView"], ngImport: i0, template: "<table class=\"mc-calendar__table\">\n <thead class=\"mc-calendar__table-header\">\n <tr>\n <th *ngFor=\"let day of weekdays\" [attr.aria-label]=\"day.long\">{{day.narrow}}</th>\n </tr>\n <tr>\n <th class=\"mc-calendar__table-header-divider\" colspan=\"7\"></th>\n </tr>\n </thead>\n <tbody mc-calendar-body\n [rows]=\"weeks\"\n [todayValue]=\"todayDate!\"\n [selectedValue]=\"selectedDate!\"\n [labelMinRequiredCells]=\"3\"\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n (selectedValueChange)=\"dateSelected($event)\">\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: McCalendarBody, selector: "[mc-calendar-body]", inputs: ["rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "activeCell", "cellAspectRatio"], outputs: ["selectedValueChange"], exportAs: ["mcCalendarBody"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
397
394
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McMonthView, decorators: [{
398
395
  type: Component,
399
396
  args: [{ selector: 'mc-month-view', exportAs: 'mcMonthView', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"mc-calendar__table\">\n <thead class=\"mc-calendar__table-header\">\n <tr>\n <th *ngFor=\"let day of weekdays\" [attr.aria-label]=\"day.long\">{{day.narrow}}</th>\n </tr>\n <tr>\n <th class=\"mc-calendar__table-header-divider\" colspan=\"7\"></th>\n </tr>\n </thead>\n <tbody mc-calendar-body\n [rows]=\"weeks\"\n [todayValue]=\"todayDate!\"\n [selectedValue]=\"selectedDate!\"\n [labelMinRequiredCells]=\"3\"\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n (selectedValueChange)=\"dateSelected($event)\">\n </tbody>\n</table>\n" }]
400
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
401
- type: Optional
402
- }, {
403
- type: Inject,
404
- args: [MC_DATE_FORMATS]
405
- }] }, { type: i1$1.DateAdapter, decorators: [{
397
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.DateAdapter, decorators: [{
406
398
  type: Optional
407
399
  }] }]; }, propDecorators: { activeDate: [{
408
400
  type: Input
@@ -432,9 +424,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
432
424
  * @docs-private
433
425
  */
434
426
  class McCalendar {
435
- constructor(intl, adapter, dateFormats, changeDetectorRef) {
427
+ constructor(intl, adapter, changeDetectorRef) {
436
428
  this.adapter = adapter;
437
- this.dateFormats = dateFormats;
438
429
  this.changeDetectorRef = changeDetectorRef;
439
430
  /** Emits when the currently selected date changes. */
440
431
  this.selectedChange = new EventEmitter();
@@ -457,9 +448,6 @@ class McCalendar {
457
448
  if (!this.adapter) {
458
449
  throw createMissingDateImplError('DateAdapter');
459
450
  }
460
- if (!this.dateFormats) {
461
- throw createMissingDateImplError('MC_DATE_FORMATS');
462
- }
463
451
  this.intlChanges = intl.changes.subscribe(() => {
464
452
  changeDetectorRef.markForCheck();
465
453
  this.stateChanges.next();
@@ -552,7 +540,7 @@ class McCalendar {
552
540
  return this.startAt || this.adapter.today();
553
541
  }
554
542
  }
555
- /** @nocollapse */ McCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendar, deps: [{ token: McDatepickerIntl }, { token: i1$1.DateAdapter, optional: true }, { token: MC_DATE_FORMATS, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
543
+ /** @nocollapse */ McCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendar, deps: [{ token: McDatepickerIntl }, { token: i1$1.DateAdapter, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
556
544
  /** @nocollapse */ McCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCalendar, selector: "mc-calendar", inputs: { startAt: "startAt", selected: "selected", minDate: "minDate", maxDate: "maxDate", dateFilter: "dateFilter", dateClass: "dateClass" }, outputs: { selectedChange: "selectedChange", yearSelected: "yearSelected", monthSelected: "monthSelected", userSelection: "userSelection" }, host: { classAttribute: "mc-calendar" }, viewQueries: [{ propertyName: "monthView", first: true, predicate: McMonthView, descendants: true }], exportAs: ["mcCalendar"], usesOnChanges: true, ngImport: i0, template: "<mc-calendar-header\n [(activeDate)]=\"activeDate\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n (monthSelected)=\"monthSelected.emit(activeDate)\"\n (yearSelected)=\"yearSelected.emit(activeDate)\">\n</mc-calendar-header>\n\n<div class=\"mc-calendar__content\">\n <mc-month-view\n [(activeDate)]=\"activeDate\"\n [selected]=\"selected\"\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [dateClass]=\"dateClass\"\n (selectedChange)=\"dateSelected($event!)\"\n (userSelection)=\"userSelected()\">\n </mc-month-view>\n</div>\n", styles: [".mc-calendar{display:block}.mc-calendar__content{padding:0 var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px);outline:none}.mc-calendar__table{border-spacing:0;border-collapse:collapse;width:100%}.mc-calendar__table-header th{text-align:center;height:30px}.mc-calendar__table-header th.mc-calendar__table-header-divider{position:relative;height:calc(var(--mc-datepicker-calendar-size-padding-blocks, 12px) - 2px)}.mc-calendar__table-header th.mc-calendar__table-header-divider:after{content:\"\";position:absolute;top:0;left:calc(-1 * var(--mc-datepicker-calendar-size-padding-horizontal, 8px));right:calc(-1 * var(--mc-datepicker-calendar-size-padding-horizontal, 8px));height:var(--mc-datepicker-calendar-size-divider-width, 1px)}\n"], dependencies: [{ kind: "component", type: McMonthView, selector: "mc-month-view", inputs: ["activeDate", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "userSelection", "activeDateChange"], exportAs: ["mcMonthView"] }, { kind: "component", type: McCalendarHeader, selector: "mc-calendar-header", inputs: ["activeDate", "maxDate", "minDate"], outputs: ["activeDateChange", "monthSelected", "yearSelected"], exportAs: ["mcCalendarHeader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
557
545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendar, decorators: [{
558
546
  type: Component,
@@ -561,11 +549,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
561
549
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mc-calendar-header\n [(activeDate)]=\"activeDate\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n (monthSelected)=\"monthSelected.emit(activeDate)\"\n (yearSelected)=\"yearSelected.emit(activeDate)\">\n</mc-calendar-header>\n\n<div class=\"mc-calendar__content\">\n <mc-month-view\n [(activeDate)]=\"activeDate\"\n [selected]=\"selected\"\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [dateClass]=\"dateClass\"\n (selectedChange)=\"dateSelected($event!)\"\n (userSelection)=\"userSelected()\">\n </mc-month-view>\n</div>\n", styles: [".mc-calendar{display:block}.mc-calendar__content{padding:0 var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px);outline:none}.mc-calendar__table{border-spacing:0;border-collapse:collapse;width:100%}.mc-calendar__table-header th{text-align:center;height:30px}.mc-calendar__table-header th.mc-calendar__table-header-divider{position:relative;height:calc(var(--mc-datepicker-calendar-size-padding-blocks, 12px) - 2px)}.mc-calendar__table-header th.mc-calendar__table-header-divider:after{content:\"\";position:absolute;top:0;left:calc(-1 * var(--mc-datepicker-calendar-size-padding-horizontal, 8px));right:calc(-1 * var(--mc-datepicker-calendar-size-padding-horizontal, 8px));height:var(--mc-datepicker-calendar-size-divider-width, 1px)}\n"] }]
562
550
  }], ctorParameters: function () { return [{ type: McDatepickerIntl }, { type: i1$1.DateAdapter, decorators: [{
563
551
  type: Optional
564
- }] }, { type: undefined, decorators: [{
565
- type: Optional
566
- }, {
567
- type: Inject,
568
- args: [MC_DATE_FORMATS]
569
552
  }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { startAt: [{
570
553
  type: Input
571
554
  }], selected: [{
@@ -1197,6 +1180,10 @@ class McDatepickerInput {
1197
1180
  this.cvaOnChange(null);
1198
1181
  return setTimeout(() => this.control.updateValueAndValidity());
1199
1182
  }
1183
+ /* Check if the number of days entered does not match the entered month */
1184
+ if (!this.getValidDateOrNull(newTimeObj)) {
1185
+ return null;
1186
+ }
1200
1187
  this.lastValueValid = !!newTimeObj;
1201
1188
  this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.dateInputFormat), true);
1202
1189
  this.updateValue(newTimeObj);
@@ -1247,9 +1234,6 @@ class McDatepickerInput {
1247
1234
  if (!this.adapter) {
1248
1235
  throw createMissingDateImplError('DateAdapter');
1249
1236
  }
1250
- if (!this.dateFormats) {
1251
- throw createMissingDateImplError('MC_DATE_FORMATS');
1252
- }
1253
1237
  this.setFormat(this.dateInputFormat);
1254
1238
  this.localeSubscription = adapter.localeChanges
1255
1239
  .subscribe(this.updateLocaleParams);
@@ -1373,7 +1357,7 @@ class McDatepickerInput {
1373
1357
  return this.elementRef.nativeElement.readOnly;
1374
1358
  }
1375
1359
  get dateInputFormat() {
1376
- return this.localeService?.getParams('datepicker').dateInput || this.dateFormats.dateInput;
1360
+ return this.dateFormats?.dateInput || this.adapter.config.dateInput;
1377
1361
  }
1378
1362
  get readyForParse() {
1379
1363
  return !!(this.firstDigit && this.secondDigit && this.thirdDigit);
@@ -1639,7 +1623,7 @@ class McDatepickerInput {
1639
1623
  else {
1640
1624
  return null;
1641
1625
  }
1642
- return this.createDateTime(date);
1626
+ return this.getValidDateOrNull(this.createDateTime(date));
1643
1627
  }
1644
1628
  getDefaultValue() {
1645
1629
  const defaultValue = this.value || this.adapter.today();