myrta-ui 17.1.47 → 17.1.49

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 (24) hide show
  1. package/esm2022/lib/components/form/input-date/components/date-calendar/date-calendar.component.mjs +222 -0
  2. package/esm2022/lib/components/form/input-date/helpers/date-helpers.mjs +70 -0
  3. package/esm2022/lib/components/form/input-date/input-date.component.mjs +316 -0
  4. package/esm2022/lib/components/form/input-date/input-date.enum.mjs +7 -0
  5. package/esm2022/lib/components/form/input-date/input-date.module.mjs +51 -0
  6. package/esm2022/lib/components/form/input-date-time/input-date-time.component.mjs +3 -3
  7. package/esm2022/lib/components/form/input-date-time/input-date-time.enum.mjs +7 -7
  8. package/esm2022/lib/components/form/input-tel/data/all-countries.mjs +2 -2
  9. package/esm2022/lib/components/form/input-timepicker/input-timepicker.component.mjs +3 -3
  10. package/esm2022/lib/services/toaster-service/config/index.mjs +3 -2
  11. package/esm2022/lib/services/toaster-service/toaster-service.service.mjs +1 -1
  12. package/esm2022/public-api.mjs +3 -1
  13. package/fesm2022/myrta-ui.mjs +648 -9
  14. package/fesm2022/myrta-ui.mjs.map +1 -1
  15. package/lib/components/form/input-date/components/date-calendar/date-calendar.component.d.ts +63 -0
  16. package/lib/components/form/input-date/helpers/date-helpers.d.ts +14 -0
  17. package/lib/components/form/input-date/input-date.component.d.ts +65 -0
  18. package/lib/components/form/input-date/input-date.enum.d.ts +11 -0
  19. package/lib/components/form/input-date/input-date.module.d.ts +14 -0
  20. package/lib/components/form/input-date-time/input-date-time.component.d.ts +2 -2
  21. package/lib/components/form/input-date-time/input-date-time.enum.d.ts +2 -2
  22. package/lib/services/toaster-service/config/index.d.ts +1 -1
  23. package/package.json +1 -1
  24. package/public-api.d.ts +2 -0
@@ -16,7 +16,7 @@ import { OverlayModule } from '@angular/cdk/overlay';
16
16
  import { createPopper } from '@popperjs/core';
17
17
  import * as i6$1 from '@ng-select/ng-select';
18
18
  import { NgSelectModule } from '@ng-select/ng-select';
19
- import { Subscription, asyncScheduler, delay, of, timer, Subject, filter, BehaviorSubject, EMPTY } from 'rxjs';
19
+ import { Subscription, asyncScheduler, delay, of, timer, Subject, filter, BehaviorSubject, fromEvent, EMPTY } from 'rxjs';
20
20
  import isEqual from 'lodash-es/isEqual';
21
21
  import * as i1$4 from '@angular/common/http';
22
22
  import { HttpEventType, HttpClientModule, HttpHeaders } from '@angular/common/http';
@@ -3563,7 +3563,8 @@ const toastrDefaultConfig = {
3563
3563
  warning: 'mrx-toaster-attention',
3564
3564
  },
3565
3565
  autoDismiss: true,
3566
- toastClass: 'mrx-toaster'
3566
+ toastClass: 'mrx-toaster',
3567
+ preventDuplicates: true,
3567
3568
  };
3568
3569
 
3569
3570
  class ToasterServiceModule {
@@ -9135,7 +9136,7 @@ const markPosition$2 = (start, end, pattern = 'date') => {
9135
9136
  }
9136
9137
  };
9137
9138
 
9138
- const cleanDate$2 = (value, format) => {
9139
+ const cleanDate$3 = (value, format) => {
9139
9140
  return dayjs(value).format(format);
9140
9141
  };
9141
9142
 
@@ -9407,7 +9408,7 @@ class InputDatepickerComponent {
9407
9408
  }
9408
9409
  writeValue(outsideValue) {
9409
9410
  if (outsideValue) {
9410
- this.value = cleanDate$2(outsideValue, this.format);
9411
+ this.value = cleanDate$3(outsideValue, this.format);
9411
9412
  this.dateModel = dateModelValueParse$1(outsideValue, this.format);
9412
9413
  this.timeModel = timeModelValueParse$2(outsideValue, this.format);
9413
9414
  this.checkingInvalid(outsideValue, this.maxDate, this.minDate);
@@ -9546,6 +9547,295 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
9546
9547
  }]
9547
9548
  }] });
9548
9549
 
9550
+ function formatDate(date, format) {
9551
+ const pad = (n) => n.toString().padStart(2, '0');
9552
+ const map = {
9553
+ 'DD': pad(date.getDate()),
9554
+ 'MM': pad(date.getMonth() + 1),
9555
+ 'YYYY': date.getFullYear().toString()
9556
+ };
9557
+ return format.replace(/DD|MM|YYYY/g, match => map[match]);
9558
+ }
9559
+ function toOutputFormat(date) {
9560
+ const pad = (n) => n.toString().padStart(2, '0');
9561
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
9562
+ }
9563
+ function isValidDate(date) {
9564
+ return date instanceof Date && !isNaN(date.getTime());
9565
+ }
9566
+ function getDaysInMonth(year, month) {
9567
+ return new Date(year, month + 1, 0).getDate();
9568
+ }
9569
+ function isDateInRange(date, minDate, maxDate) {
9570
+ const min = minDate ? cleanDate$2(minDate) : null;
9571
+ const max = maxDate ? cleanDate$2(maxDate) : null;
9572
+ return (!min || date >= min) && (!max || date <= max);
9573
+ }
9574
+ function clampDate(date, minDate, maxDate) {
9575
+ const min = minDate ? cleanDate$2(minDate) : null;
9576
+ const max = maxDate ? cleanDate$2(maxDate) : null;
9577
+ if (min && date < min)
9578
+ return new Date(min);
9579
+ if (max && date > max)
9580
+ return new Date(max);
9581
+ return date;
9582
+ }
9583
+ function getRangeErrorMessage(date, minDate, maxDate) {
9584
+ const min = minDate ? cleanDate$2(minDate) : null;
9585
+ const max = maxDate ? cleanDate$2(maxDate) : null;
9586
+ if (min && date < min)
9587
+ return 'Дата меньше минимальной';
9588
+ if (max && date > max)
9589
+ return 'Дата больше максимальной';
9590
+ return '';
9591
+ }
9592
+ function parseInputDate(dateStr) {
9593
+ if (dateStr) {
9594
+ const [year, month, day] = dateStr.split('-').map(Number);
9595
+ const date = new Date(year, month - 1, day);
9596
+ return isValidDate(date) ? date : null;
9597
+ }
9598
+ else {
9599
+ return null;
9600
+ }
9601
+ }
9602
+ function adjustInvalidDate(year, month, day) {
9603
+ const maxDays = getDaysInMonth(year, month);
9604
+ if (day > maxDays) {
9605
+ month += 1;
9606
+ if (month > 11) {
9607
+ month = 0;
9608
+ year += 1;
9609
+ }
9610
+ day = 1;
9611
+ }
9612
+ year = Math.min(Math.max(year, 1900), 9999);
9613
+ month = Math.min(Math.max(month, 0), 11);
9614
+ return { year, month, day };
9615
+ }
9616
+ const cleanDate$2 = (date) => {
9617
+ return new Date(new Date(date).setHours(0, 0, 0, 0));
9618
+ };
9619
+
9620
+ class DateCalendarComponent {
9621
+ _detector;
9622
+ selectedDate = null;
9623
+ dateSelected = new EventEmitter();
9624
+ close = new EventEmitter();
9625
+ currentMonth = new Date().getMonth();
9626
+ currentYear = new Date().getFullYear();
9627
+ view = 'days';
9628
+ monthNames = [
9629
+ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
9630
+ 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
9631
+ ];
9632
+ daysOfWeek = ['ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ', 'ВС'];
9633
+ months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
9634
+ _minDate = null;
9635
+ _maxDate = null;
9636
+ _minDateStr = null;
9637
+ _maxDateStr = null;
9638
+ calendarDaysCache = null;
9639
+ constructor(_detector) {
9640
+ this._detector = _detector;
9641
+ }
9642
+ ngOnInit() {
9643
+ if (this.selectedDate) {
9644
+ this.currentMonth = this.selectedDate.getMonth();
9645
+ this.currentYear = this.selectedDate.getFullYear();
9646
+ }
9647
+ this.updateDateBounds();
9648
+ }
9649
+ set minDate(value) {
9650
+ if (this._minDateStr !== value) {
9651
+ this._minDateStr = value;
9652
+ this.updateDateBounds();
9653
+ this._detector.markForCheck();
9654
+ }
9655
+ }
9656
+ get minDate() {
9657
+ return this._minDateStr;
9658
+ }
9659
+ set maxDate(value) {
9660
+ if (this._maxDateStr !== value) {
9661
+ this._maxDateStr = value;
9662
+ this.updateDateBounds();
9663
+ this._detector.markForCheck();
9664
+ }
9665
+ }
9666
+ get maxDate() {
9667
+ return this._maxDateStr;
9668
+ }
9669
+ updateDateBounds() {
9670
+ this._minDate = this._minDateStr ? cleanDate$2(this._minDateStr) : null;
9671
+ this._maxDate = this._maxDateStr ? cleanDate$2(this._maxDateStr) : null;
9672
+ }
9673
+ get headerText() {
9674
+ switch (this.view) {
9675
+ case 'days':
9676
+ return `${this.monthNames[this.currentMonth]} ${this.currentYear}`;
9677
+ case 'months':
9678
+ return `${this.currentYear}`;
9679
+ default:
9680
+ return 'Выберите год';
9681
+ }
9682
+ }
9683
+ switchView() {
9684
+ this.view = this.view === 'days' ? 'months' : this.view === 'months' ? 'years' : 'days';
9685
+ this._detector.markForCheck();
9686
+ }
9687
+ getCalendarDays() {
9688
+ if (this.calendarDaysCache?.month === this.currentMonth && this.calendarDaysCache?.year === this.currentYear) {
9689
+ return this.calendarDaysCache.days;
9690
+ }
9691
+ const daysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();
9692
+ const prevMonthDays = new Date(this.currentYear, this.currentMonth, 0).getDate();
9693
+ const days = [];
9694
+ const prevDaysCount = 2;
9695
+ const prevMonth = this.currentMonth === 0 ? 11 : this.currentMonth - 1;
9696
+ const prevYear = this.currentMonth === 0 ? this.currentYear - 1 : this.currentYear;
9697
+ const nextMonth = this.currentMonth === 11 ? 0 : this.currentMonth + 1;
9698
+ const nextYear = this.currentMonth === 11 ? this.currentYear + 1 : this.currentYear;
9699
+ for (let i = 0; i < prevDaysCount; i++) {
9700
+ days.push({ day: prevMonthDays - prevDaysCount + 1 + i, month: prevMonth, year: prevYear });
9701
+ }
9702
+ for (let i = 1; i <= daysInMonth; i++) {
9703
+ days.push({ day: i, month: this.currentMonth, year: this.currentYear });
9704
+ }
9705
+ const remainingDays = 35 - days.length;
9706
+ for (let i = 1; i <= remainingDays; i++) {
9707
+ days.push({ day: i, month: nextMonth, year: nextYear });
9708
+ }
9709
+ this.calendarDaysCache = { month: this.currentMonth, year: this.currentYear, days };
9710
+ return days;
9711
+ }
9712
+ getYears() {
9713
+ const centerYear = this.selectedDate?.getFullYear() ?? this.currentYear;
9714
+ const startYear = centerYear - 5;
9715
+ return Array.from({ length: 12 }, (_, i) => startYear + i);
9716
+ }
9717
+ isSelected(day) {
9718
+ if (!this.selectedDate)
9719
+ return false;
9720
+ return (day.day === this.selectedDate.getDate() &&
9721
+ day.month === this.selectedDate.getMonth() &&
9722
+ day.year === this.selectedDate.getFullYear());
9723
+ }
9724
+ isMonthSelected(month) {
9725
+ return this.selectedDate?.getMonth() === month && this.selectedDate?.getFullYear() === this.currentYear;
9726
+ }
9727
+ isYearSelected(year) {
9728
+ return this.selectedDate?.getFullYear() === year;
9729
+ }
9730
+ isDateEnabled(day) {
9731
+ const date = new Date(day.year, day.month, day.day);
9732
+ return ((!this._minDate || date >= this._minDate) &&
9733
+ (!this._maxDate || date <= this._maxDate));
9734
+ }
9735
+ isMonthDisabled(month) {
9736
+ if (!this._minDate && !this._maxDate)
9737
+ return false;
9738
+ const startOfMonth = new Date(this.currentYear, month, 1);
9739
+ const endOfMonth = new Date(this.currentYear, month + 1, 0);
9740
+ return ((!!this._minDate && !isNaN(this._minDate.getTime()) && endOfMonth < this._minDate) ||
9741
+ (!!this._maxDate && !isNaN(this._maxDate.getTime()) && startOfMonth > this._maxDate));
9742
+ }
9743
+ isYearDisabled(year) {
9744
+ if (!this._minDate && !this._maxDate)
9745
+ return false;
9746
+ const minYear = this._minDate && !isNaN(this._minDate.getTime()) ? this._minDate.getFullYear() : null;
9747
+ const maxYear = this._maxDate && !isNaN(this._maxDate.getTime()) ? this._maxDate.getFullYear() : null;
9748
+ return (minYear !== null && year < minYear) || (maxYear !== null && year > maxYear);
9749
+ }
9750
+ selectDate(day) {
9751
+ if (!this.isDateEnabled(day))
9752
+ return;
9753
+ const date = new Date(day.year, day.month, day.day);
9754
+ this.dateSelected.emit(date);
9755
+ const needsUpdate = day.month !== this.currentMonth || day.year !== this.currentYear;
9756
+ if (needsUpdate) {
9757
+ setTimeout(() => {
9758
+ this.currentMonth = day.month;
9759
+ this.currentYear = day.year;
9760
+ this._detector.markForCheck();
9761
+ });
9762
+ }
9763
+ }
9764
+ selectMonth(month) {
9765
+ if (this.isMonthDisabled(month))
9766
+ return;
9767
+ setTimeout(() => {
9768
+ this.currentMonth = month;
9769
+ this.view = 'days';
9770
+ this._detector.markForCheck();
9771
+ });
9772
+ }
9773
+ selectYear(year) {
9774
+ if (this.isYearDisabled(year))
9775
+ return;
9776
+ setTimeout(() => {
9777
+ this.currentYear = year;
9778
+ this.view = 'months';
9779
+ this._detector.markForCheck();
9780
+ });
9781
+ }
9782
+ changeMonth(offset) {
9783
+ let newMonth = this.currentMonth + offset;
9784
+ let newYear = this.currentYear;
9785
+ if (newMonth < 0) {
9786
+ newMonth = 11;
9787
+ newYear--;
9788
+ }
9789
+ else if (newMonth > 11) {
9790
+ newMonth = 0;
9791
+ newYear++;
9792
+ }
9793
+ this.currentMonth = newMonth;
9794
+ this.currentYear = newYear;
9795
+ this._detector.markForCheck();
9796
+ }
9797
+ changeYearRange(offset) {
9798
+ this.currentYear += offset * 12;
9799
+ this._detector.markForCheck();
9800
+ }
9801
+ isPreviousMonthDisabled() {
9802
+ if (!this._minDate)
9803
+ return false;
9804
+ return new Date(this.currentYear, this.currentMonth, 0) < this._minDate;
9805
+ }
9806
+ isNextMonthDisabled() {
9807
+ if (!this._maxDate)
9808
+ return false;
9809
+ return new Date(this.currentYear, this.currentMonth + 1, 1) > this._maxDate;
9810
+ }
9811
+ isPreviousYearRangeDisabled() {
9812
+ if (!this._minDate)
9813
+ return false;
9814
+ return this.getYears()[0] <= this._minDate.getFullYear();
9815
+ }
9816
+ isNextYearRangeDisabled() {
9817
+ if (!this._maxDate)
9818
+ return false;
9819
+ return this.getYears()[this.getYears().length - 1] >= this._maxDate.getFullYear();
9820
+ }
9821
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
9822
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DateCalendarComponent, selector: "mrx-date-calendar", inputs: { selectedDate: "selectedDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateSelected: "dateSelected", close: "close" }, ngImport: i0, template: "<div class=\"mrx-calendar\">\r\n <div class=\"mrx-calendar-header\">\r\n @if (view === 'days') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeMonth(-1)\" [disabled]=\"isPreviousMonthDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-left icon-font-16\"></span>\r\n </button>\r\n }\r\n\r\n @if (view === 'years') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeYearRange(-1)\" [disabled]=\"isPreviousYearRangeDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-left icon-font-16\"></span>\r\n </button>\r\n }\r\n\r\n <button class=\"mrx-calendar-header__button\" (click)=\"switchView()\">\r\n {{ headerText }}\r\n </button>\r\n\r\n @if (view === 'days') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeMonth(1)\" [disabled]=\"isNextMonthDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-right icon-font-16\"></span>\r\n </button>\r\n }\r\n\r\n @if (view === 'years') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeYearRange(1)\" [disabled]=\"isNextYearRangeDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-right icon-font-16\"></span>\r\n </button>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-calendar-body\">\r\n @switch (view) {\r\n @case ('years') {\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--years\">\r\n @for (year of getYears(); track year) {\r\n <div\r\n class=\"mrx-calendar-body__grid__item mrx-calendar-body__grid__item--year\"\r\n [class.selected]=\"isYearSelected(year)\"\r\n [class.disabled]=\"isYearDisabled(year)\"\r\n [class.hoverable]=\"!isYearDisabled(year)\"\r\n (click)=\"selectYear(year)\"\r\n >\r\n {{ year }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('months') {\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--months\">\r\n @for (month of months; track month) {\r\n <div\r\n class=\"mrx-calendar-body__grid__item mrx-calendar-body__grid__item--month\"\r\n [class.selected]=\"isMonthSelected(month)\"\r\n [class.disabled]=\"isMonthDisabled(month)\"\r\n [class.hoverable]=\"!isMonthDisabled(month)\"\r\n (click)=\"selectMonth(month)\"\r\n >\r\n {{ monthNames[month] }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @default {\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--days\">\r\n @for (day of daysOfWeek; track day) {\r\n <div class=\"mrx-calendar-body__grid__label\">{{ day }}</div>\r\n }\r\n\r\n @for (day of getCalendarDays(); track day) {\r\n <div\r\n class=\"mrx-calendar-body__grid__item mrx-calendar-body__grid__item--day\"\r\n [class.selected]=\"isSelected(day)\"\r\n [class.other-month]=\"day.month !== currentMonth\"\r\n [class.disabled]=\"!isDateEnabled(day)\"\r\n [class.hoverable]=\"isDateEnabled(day)\"\r\n (click)=\"selectDate(day)\"\r\n >\r\n {{ day.day }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [".mrx-calendar{width:272px;border-radius:4px;background-color:var(--brand-bg-tertiary-default, #FFF);box-shadow:0 1px 4px #3a3a3a4d}.mrx-calendar-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--neutral-bg-divider, #DBDFE5)}.mrx-calendar-header__button{border:none;border-radius:4px;background-color:transparent;padding:6px 12px;text-align:center;flex-grow:1;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary, #262626);cursor:pointer;transition:background-color .3s}.mrx-calendar-header__button:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-calendar-header__chevron{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border:none;border-radius:4px;background-color:transparent;cursor:pointer;transition:background-color .3s}.mrx-calendar-header__chevron:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-calendar-header__chevron:disabled{cursor:default}.mrx-calendar-header__chevron:disabled:hover{background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-calendar-body{padding:8px 12px}.mrx-calendar-body__grid--days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.mrx-calendar-body__grid--months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.mrx-calendar-body__grid--years{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;max-height:190px;overflow-y:auto}.mrx-calendar-body__grid__label{display:flex;justify-content:center;align-items:center;width:32px;height:32px;font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--brand-text-accent, #003780)}.mrx-calendar-body__grid__item{display:flex;justify-content:center;align-items:center;border-radius:4px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary, #262626);transition:background-color .3s}.mrx-calendar-body__grid__item--day{width:32px;height:32px}.mrx-calendar-body__grid__item--month,.mrx-calendar-body__grid__item--year{height:32px}.mrx-calendar-body__grid__item.hoverable{cursor:pointer}.mrx-calendar-body__grid__item.hoverable:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-calendar-body__grid__item.selected{background-color:var(--brand-bg-primary-default, #2A6AB8);color:var(--neutral-text-inverse, #FFF)}.mrx-calendar-body__grid__item.selected:hover{background-color:var(--brand-bg-primary-hover, #0F54AA)}.mrx-calendar-body__grid__item.other-month{background-color:transparent;color:var(--neutral-text-tertiary, #71767E)}.mrx-calendar-body__grid__item.other-month.selected{background-color:var(--brand-bg-secondary-default, #EDF5FF);color:var(--neutral-text-tertiary, #71767E)}.mrx-calendar-body__grid__item.other-month.selected:hover{background-color:var(--brand-bg-secondary-hover, #BED6F1)}.mrx-calendar-body__grid__item.other-month:hover{background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-calendar-body__grid__item.disabled{background-color:transparent;color:var(--neutral-text-tertiary, #71767E)}.mrx-calendar-body__grid__item.disabled:hover{background-color:var(--neutral-bg-island-default, #F8F9FA)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9823
+ }
9824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateCalendarComponent, decorators: [{
9825
+ type: Component,
9826
+ args: [{ selector: 'mrx-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-calendar\">\r\n <div class=\"mrx-calendar-header\">\r\n @if (view === 'days') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeMonth(-1)\" [disabled]=\"isPreviousMonthDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-left icon-font-16\"></span>\r\n </button>\r\n }\r\n\r\n @if (view === 'years') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeYearRange(-1)\" [disabled]=\"isPreviousYearRangeDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-left icon-font-16\"></span>\r\n </button>\r\n }\r\n\r\n <button class=\"mrx-calendar-header__button\" (click)=\"switchView()\">\r\n {{ headerText }}\r\n </button>\r\n\r\n @if (view === 'days') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeMonth(1)\" [disabled]=\"isNextMonthDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-right icon-font-16\"></span>\r\n </button>\r\n }\r\n\r\n @if (view === 'years') {\r\n <button class=\"mrx-calendar-header__chevron\" (click)=\"changeYearRange(1)\" [disabled]=\"isNextYearRangeDisabled()\">\r\n <span class=\"mrx-icon icon-chevron-right icon-font-16\"></span>\r\n </button>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-calendar-body\">\r\n @switch (view) {\r\n @case ('years') {\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--years\">\r\n @for (year of getYears(); track year) {\r\n <div\r\n class=\"mrx-calendar-body__grid__item mrx-calendar-body__grid__item--year\"\r\n [class.selected]=\"isYearSelected(year)\"\r\n [class.disabled]=\"isYearDisabled(year)\"\r\n [class.hoverable]=\"!isYearDisabled(year)\"\r\n (click)=\"selectYear(year)\"\r\n >\r\n {{ year }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('months') {\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--months\">\r\n @for (month of months; track month) {\r\n <div\r\n class=\"mrx-calendar-body__grid__item mrx-calendar-body__grid__item--month\"\r\n [class.selected]=\"isMonthSelected(month)\"\r\n [class.disabled]=\"isMonthDisabled(month)\"\r\n [class.hoverable]=\"!isMonthDisabled(month)\"\r\n (click)=\"selectMonth(month)\"\r\n >\r\n {{ monthNames[month] }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @default {\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--days\">\r\n @for (day of daysOfWeek; track day) {\r\n <div class=\"mrx-calendar-body__grid__label\">{{ day }}</div>\r\n }\r\n\r\n @for (day of getCalendarDays(); track day) {\r\n <div\r\n class=\"mrx-calendar-body__grid__item mrx-calendar-body__grid__item--day\"\r\n [class.selected]=\"isSelected(day)\"\r\n [class.other-month]=\"day.month !== currentMonth\"\r\n [class.disabled]=\"!isDateEnabled(day)\"\r\n [class.hoverable]=\"isDateEnabled(day)\"\r\n (click)=\"selectDate(day)\"\r\n >\r\n {{ day.day }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [".mrx-calendar{width:272px;border-radius:4px;background-color:var(--brand-bg-tertiary-default, #FFF);box-shadow:0 1px 4px #3a3a3a4d}.mrx-calendar-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--neutral-bg-divider, #DBDFE5)}.mrx-calendar-header__button{border:none;border-radius:4px;background-color:transparent;padding:6px 12px;text-align:center;flex-grow:1;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary, #262626);cursor:pointer;transition:background-color .3s}.mrx-calendar-header__button:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-calendar-header__chevron{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border:none;border-radius:4px;background-color:transparent;cursor:pointer;transition:background-color .3s}.mrx-calendar-header__chevron:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-calendar-header__chevron:disabled{cursor:default}.mrx-calendar-header__chevron:disabled:hover{background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-calendar-body{padding:8px 12px}.mrx-calendar-body__grid--days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.mrx-calendar-body__grid--months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.mrx-calendar-body__grid--years{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;max-height:190px;overflow-y:auto}.mrx-calendar-body__grid__label{display:flex;justify-content:center;align-items:center;width:32px;height:32px;font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--brand-text-accent, #003780)}.mrx-calendar-body__grid__item{display:flex;justify-content:center;align-items:center;border-radius:4px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary, #262626);transition:background-color .3s}.mrx-calendar-body__grid__item--day{width:32px;height:32px}.mrx-calendar-body__grid__item--month,.mrx-calendar-body__grid__item--year{height:32px}.mrx-calendar-body__grid__item.hoverable{cursor:pointer}.mrx-calendar-body__grid__item.hoverable:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-calendar-body__grid__item.selected{background-color:var(--brand-bg-primary-default, #2A6AB8);color:var(--neutral-text-inverse, #FFF)}.mrx-calendar-body__grid__item.selected:hover{background-color:var(--brand-bg-primary-hover, #0F54AA)}.mrx-calendar-body__grid__item.other-month{background-color:transparent;color:var(--neutral-text-tertiary, #71767E)}.mrx-calendar-body__grid__item.other-month.selected{background-color:var(--brand-bg-secondary-default, #EDF5FF);color:var(--neutral-text-tertiary, #71767E)}.mrx-calendar-body__grid__item.other-month.selected:hover{background-color:var(--brand-bg-secondary-hover, #BED6F1)}.mrx-calendar-body__grid__item.other-month:hover{background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-calendar-body__grid__item.disabled{background-color:transparent;color:var(--neutral-text-tertiary, #71767E)}.mrx-calendar-body__grid__item.disabled:hover{background-color:var(--neutral-bg-island-default, #F8F9FA)}\n"] }]
9827
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { selectedDate: [{
9828
+ type: Input
9829
+ }], dateSelected: [{
9830
+ type: Output
9831
+ }], close: [{
9832
+ type: Output
9833
+ }], minDate: [{
9834
+ type: Input
9835
+ }], maxDate: [{
9836
+ type: Input
9837
+ }] } });
9838
+
9549
9839
  var InputDateSizesEnum$1;
9550
9840
  (function (InputDateSizesEnum) {
9551
9841
  InputDateSizesEnum["small"] = "mrx-input-date-sm";
@@ -9553,6 +9843,355 @@ var InputDateSizesEnum$1;
9553
9843
  InputDateSizesEnum["large"] = "mrx-input-date-lg";
9554
9844
  })(InputDateSizesEnum$1 || (InputDateSizesEnum$1 = {}));
9555
9845
 
9846
+ class InputDateComponent {
9847
+ _overlay;
9848
+ _detector;
9849
+ _elementRef;
9850
+ _clickSubscription;
9851
+ _overlayRef = null;
9852
+ displayValue = '';
9853
+ selectedDate = null;
9854
+ mask = '';
9855
+ errorMessage = null;
9856
+ // SAVE STATE
9857
+ uuid = v4();
9858
+ fields = [];
9859
+ format = 'DD.MM.YYYY';
9860
+ minDate = null;
9861
+ maxDate = null;
9862
+ isSilentValidation = true;
9863
+ isManualInput = true;
9864
+ closeAfterSelect = true;
9865
+ required = false;
9866
+ size = 'large';
9867
+ customClasses = '';
9868
+ disabled = false;
9869
+ readonly = false;
9870
+ placeholder = 'дд.мм.гггг';
9871
+ popupPosition = 'bottom-start';
9872
+ invalid = false;
9873
+ invalidMessage = '';
9874
+ checkInvalid = null;
9875
+ changed = new EventEmitter();
9876
+ modelChange = new EventEmitter();
9877
+ blurred = new EventEmitter();
9878
+ dateInput;
9879
+ onChange = () => { };
9880
+ onTouched = () => { };
9881
+ constructor(_overlay, _detector, _elementRef) {
9882
+ this._overlay = _overlay;
9883
+ this._detector = _detector;
9884
+ this._elementRef = _elementRef;
9885
+ }
9886
+ ngOnInit() {
9887
+ this.mask = this.format.replace(/[DMY]/g, '0');
9888
+ }
9889
+ ngOnDestroy() {
9890
+ this._clickSubscription?.unsubscribe();
9891
+ this.closeCalendar();
9892
+ }
9893
+ get checkValidClasses() {
9894
+ if (!this.required) {
9895
+ return '';
9896
+ }
9897
+ else {
9898
+ return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
9899
+ }
9900
+ }
9901
+ get getClasses() {
9902
+ return `${InputDateSizesEnum$1[this.size]} ${this.customClasses} ${this.checkValidClasses}`;
9903
+ }
9904
+ get isViewCleanIcon() {
9905
+ return !!this.dateInput?.nativeElement.value;
9906
+ }
9907
+ writeValue(value) {
9908
+ const date = parseInputDate(value);
9909
+ if (date && isDateInRange(date, this.minDate, this.maxDate)) {
9910
+ this.selectedDate = date;
9911
+ this.displayValue = formatDate(date, this.format);
9912
+ this.errorMessage = null;
9913
+ }
9914
+ else if (this.isSilentValidation && date) {
9915
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
9916
+ this.selectedDate = clampedDate;
9917
+ this.displayValue = formatDate(clampedDate, this.format);
9918
+ this.errorMessage = null;
9919
+ }
9920
+ else {
9921
+ this.selectedDate = null;
9922
+ this.displayValue = date ? formatDate(date, this.format) : '';
9923
+ this.errorMessage = date ? getRangeErrorMessage(date, this.minDate, this.maxDate) : null;
9924
+ }
9925
+ this._detector.markForCheck();
9926
+ }
9927
+ registerOnChange(fn) {
9928
+ this.onChange = fn;
9929
+ }
9930
+ registerOnTouched(fn) {
9931
+ this.onTouched = fn;
9932
+ }
9933
+ setDisabledState(isDisabled) {
9934
+ this.disabled = isDisabled;
9935
+ this._detector.markForCheck();
9936
+ }
9937
+ set value(value) {
9938
+ const date = parseInputDate(value);
9939
+ if (date && isDateInRange(date, this.minDate, this.maxDate)) {
9940
+ this.selectedDate = date;
9941
+ this.displayValue = formatDate(date, this.format);
9942
+ this.errorMessage = null;
9943
+ this.updateValue(value);
9944
+ }
9945
+ else if (this.isSilentValidation && date) {
9946
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
9947
+ this.selectedDate = clampedDate;
9948
+ this.displayValue = formatDate(clampedDate, this.format);
9949
+ this.errorMessage = null;
9950
+ const clampedValue = toOutputFormat(clampedDate);
9951
+ this.updateValue(clampedValue);
9952
+ }
9953
+ else {
9954
+ this.selectedDate = null;
9955
+ this.displayValue = date ? formatDate(date, this.format) : '';
9956
+ this.errorMessage = date ? getRangeErrorMessage(date, this.minDate, this.maxDate) : null;
9957
+ }
9958
+ this._detector.markForCheck();
9959
+ }
9960
+ onInput(event) {
9961
+ const inputElement = event.target;
9962
+ const inputValue = inputElement.value;
9963
+ this.processInput(inputValue);
9964
+ }
9965
+ processInput(inputValue) {
9966
+ this.displayValue = inputValue;
9967
+ this.errorMessage = null;
9968
+ if (inputValue.length === this.format.length) {
9969
+ const separator = this.format.match(/[^DMY]/)?.[0] || '.';
9970
+ const regex = new RegExp(`^(\\d{2})${separator}(\\d{2})${separator}(\\d{4})$`);
9971
+ const match = inputValue.match(regex);
9972
+ if (!match)
9973
+ return;
9974
+ let day, month, year;
9975
+ if (this.format.startsWith('DD')) {
9976
+ [day, month, year] = [match[1], match[2], match[3]].map(Number);
9977
+ }
9978
+ else if (this.format.startsWith('MM')) {
9979
+ [month, day, year] = [match[1], match[2], match[3]].map(Number);
9980
+ }
9981
+ else {
9982
+ [year, month, day] = [match[1], match[2], match[3]].map(Number);
9983
+ }
9984
+ month -= 1;
9985
+ let date = new Date(year, month, day);
9986
+ if (isValidDate(date) && isDateInRange(date, this.minDate, this.maxDate)) {
9987
+ this.selectedDate = date;
9988
+ this.updateValue(toOutputFormat(date));
9989
+ }
9990
+ else {
9991
+ const { year: adjYear, month: adjMonth, day: adjDay } = adjustInvalidDate(year, month, day);
9992
+ date = new Date(adjYear, adjMonth, adjDay);
9993
+ if (isDateInRange(date, this.minDate, this.maxDate)) {
9994
+ this.selectedDate = date;
9995
+ this.displayValue = formatDate(date, this.format);
9996
+ this.updateValue(toOutputFormat(date));
9997
+ }
9998
+ else if (this.isSilentValidation) {
9999
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
10000
+ this.selectedDate = clampedDate;
10001
+ this.displayValue = formatDate(clampedDate, this.format);
10002
+ this.updateValue(toOutputFormat(clampedDate));
10003
+ }
10004
+ else {
10005
+ this.selectedDate = null;
10006
+ this.errorMessage = getRangeErrorMessage(date, this.minDate, this.maxDate);
10007
+ }
10008
+ }
10009
+ }
10010
+ this._detector.markForCheck();
10011
+ }
10012
+ onBlur() {
10013
+ this.onTouched();
10014
+ if (this.displayValue.length > 0 && this.displayValue.length < this.format.length) {
10015
+ this.displayValue = '';
10016
+ this.selectedDate = null;
10017
+ this.updateValue('');
10018
+ this.errorMessage = null;
10019
+ }
10020
+ this._detector.markForCheck();
10021
+ }
10022
+ openCalendar() {
10023
+ if (this.disabled || this._overlayRef)
10024
+ return;
10025
+ const positionStrategy = this._overlay
10026
+ .position()
10027
+ .flexibleConnectedTo(this.dateInput)
10028
+ .withPositions(PositionStrategyEnum[this.popupPosition]);
10029
+ this._overlayRef = this._overlay.create({
10030
+ positionStrategy,
10031
+ hasBackdrop: false
10032
+ });
10033
+ const portal = new ComponentPortal(DateCalendarComponent);
10034
+ const componentRef = this._overlayRef.attach(portal);
10035
+ componentRef.instance.selectedDate = this.selectedDate;
10036
+ componentRef.instance.minDate = this.minDate;
10037
+ componentRef.instance.maxDate = this.maxDate;
10038
+ componentRef.instance.dateSelected.subscribe((date) => this.onDateSelected(date));
10039
+ componentRef.instance.close.subscribe(() => this.closeCalendar());
10040
+ this._clickSubscription = fromEvent(document, 'click')
10041
+ .pipe(filter((event) => {
10042
+ const clickTarget = event.target;
10043
+ return (!!this._overlayRef &&
10044
+ !this._overlayRef.overlayElement.contains(clickTarget) &&
10045
+ !this._elementRef.nativeElement.contains(clickTarget));
10046
+ }))
10047
+ .subscribe(() => this.closeCalendar());
10048
+ }
10049
+ onDateSelected(date) {
10050
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
10051
+ this.selectedDate = clampedDate;
10052
+ this.displayValue = formatDate(clampedDate, this.format);
10053
+ this.errorMessage = null;
10054
+ this.updateValue(toOutputFormat(clampedDate));
10055
+ if (this.closeAfterSelect) {
10056
+ this.closeCalendar();
10057
+ }
10058
+ this._detector.markForCheck();
10059
+ }
10060
+ closeCalendar() {
10061
+ if (this._overlayRef) {
10062
+ this._overlayRef.dispose();
10063
+ this._overlayRef = null;
10064
+ }
10065
+ this.errorMessage = null;
10066
+ }
10067
+ clickToIconCalendar() {
10068
+ this.openCalendar();
10069
+ }
10070
+ clickToIconClear() {
10071
+ this.displayValue = '';
10072
+ this.selectedDate = null;
10073
+ this.errorMessage = null;
10074
+ this.updateValue('');
10075
+ this.closeCalendar();
10076
+ this._detector.markForCheck();
10077
+ }
10078
+ updateValue(insideValue) {
10079
+ this.changed.emit(insideValue);
10080
+ this.modelChange.emit({ value: insideValue, id: this.uuid });
10081
+ this.onChange(insideValue);
10082
+ this.onTouched();
10083
+ }
10084
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, deps: [{ token: i1$3.Overlay }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
10085
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "mrx-input-date", inputs: { fields: "fields", format: "format", minDate: "minDate", maxDate: "maxDate", isSilentValidation: "isSilentValidation", isManualInput: "isManualInput", closeAfterSelect: "closeAfterSelect", required: "required", size: "size", customClasses: "customClasses", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", popupPosition: "popupPosition", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed", modelChange: "modelChange", blurred: "blurred" }, providers: [
10086
+ {
10087
+ provide: NG_VALUE_ACCESSOR,
10088
+ useExisting: forwardRef(() => InputDateComponent),
10089
+ multi: true
10090
+ }
10091
+ ], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"mrx-input-date\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class.mrx-input-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-input-date__wrapper\">\r\n <input\r\n #dateInput\r\n type=\"text\"\r\n autocomplete=\"nope\"\r\n class=\"mrx-input-date__input mrx-input-date__date\"\r\n [ngModel]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"!isManualInput\"\r\n [mask]=\"mask\"\r\n [leadZeroDateTime]=\"true\"\r\n [dropSpecialCharacters]=\"false\"\r\n [placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n\r\n @if (!disabled) {\r\n <div class=\"mrx-input-date__icons\">\r\n @if (isViewCleanIcon) {\r\n <span\r\n class=\"mrx-icon icon-close\"\r\n (click)=\"clickToIconClear()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n }\r\n\r\n <span\r\n class=\"mrx-icon icon-calendar\"\r\n (click)=\"clickToIconCalendar()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (invalid) {\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n } @else {\r\n @if (errorMessage) {\r\n <mrx-error-message [invalidMessage]=\"errorMessage\"></mrx-error-message>\r\n }\r\n }\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-date{width:100%;position:relative}.mrx-input-date .mrx-input-date__wrapper{position:relative}.mrx-input-date .mrx-input-date__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);color:var(--neutral-text-primary);width:100%;transition:outline-width .2s,border .2s}.mrx-input-date .mrx-input-date__input:focus,.mrx-input-date .mrx-input-date__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-date .mrx-input-date__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-date .mrx-input-date__input:disabled{background-color:var(--neutral-bg-disabled);color:var(--neutral-text-tertiary)}.mrx-input-date.mrx-input-date-lg .mrx-input-date__input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-4) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date-md .mrx-input-date__input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-3) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date-sm .mrx-input-date__input{padding:calc(var(--spacing-2) - var(--border-width-default)) calc(var(--spacing-2) - var(--border-width-default));font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-date.mrx-input-date.mrx-input-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default)}.mrx-input-date.mrx-input-date.mrx-input-checked-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-date.mrx-input-date.mrx-input-checked-error .mrx-input-date__input:disabled{background-color:var(--neutral-bg-disabled, #EEF0F4);border-color:var(--neutral-bg-stroke-default)}.mrx-input-date.mrx-input-date.mrx-input-checked-success .mrx-input-date__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-input-date.mrx-input-date.mrx-input-checked-success .mrx-input-date__input:disabled{background-color:var(--neutral-bg-disabled, #EEF0F4);border-color:var(--neutral-bg-stroke-default)}.mrx-input-date.mrx-input-date .mrx-input-date__icons{position:absolute;top:0;right:0;display:flex;align-items:center}.mrx-input-date.mrx-input-date .mrx-input-date__icons-item,.mrx-input-date.mrx-input-date .mrx-input-date__icons .mrx-icon{cursor:pointer}.mrx-input-date.mrx-input-date.mrx-input-date-lg .mrx-icon{margin-top:calc(var(--spacing-3) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-md .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-sm .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-2)}\n"], dependencies: [{ kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { kind: "component", type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10092
+ }
10093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, decorators: [{
10094
+ type: Component,
10095
+ args: [{ selector: 'mrx-input-date', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
10096
+ {
10097
+ provide: NG_VALUE_ACCESSOR,
10098
+ useExisting: forwardRef(() => InputDateComponent),
10099
+ multi: true
10100
+ }
10101
+ ], template: "<div\r\n class=\"mrx-input-date\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class.mrx-input-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"mrx-input-date__wrapper\">\r\n <input\r\n #dateInput\r\n type=\"text\"\r\n autocomplete=\"nope\"\r\n class=\"mrx-input-date__input mrx-input-date__date\"\r\n [ngModel]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"!isManualInput\"\r\n [mask]=\"mask\"\r\n [leadZeroDateTime]=\"true\"\r\n [dropSpecialCharacters]=\"false\"\r\n [placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n\r\n @if (!disabled) {\r\n <div class=\"mrx-input-date__icons\">\r\n @if (isViewCleanIcon) {\r\n <span\r\n class=\"mrx-icon icon-close\"\r\n (click)=\"clickToIconClear()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n }\r\n\r\n <span\r\n class=\"mrx-icon icon-calendar\"\r\n (click)=\"clickToIconCalendar()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (invalid) {\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n } @else {\r\n @if (errorMessage) {\r\n <mrx-error-message [invalidMessage]=\"errorMessage\"></mrx-error-message>\r\n }\r\n }\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-date{width:100%;position:relative}.mrx-input-date .mrx-input-date__wrapper{position:relative}.mrx-input-date .mrx-input-date__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);color:var(--neutral-text-primary);width:100%;transition:outline-width .2s,border .2s}.mrx-input-date .mrx-input-date__input:focus,.mrx-input-date .mrx-input-date__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-date .mrx-input-date__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-date .mrx-input-date__input:disabled{background-color:var(--neutral-bg-disabled);color:var(--neutral-text-tertiary)}.mrx-input-date.mrx-input-date-lg .mrx-input-date__input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-4) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date-md .mrx-input-date__input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-3) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date-sm .mrx-input-date__input{padding:calc(var(--spacing-2) - var(--border-width-default)) calc(var(--spacing-2) - var(--border-width-default));font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-date.mrx-input-date.mrx-input-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default)}.mrx-input-date.mrx-input-date.mrx-input-checked-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-date.mrx-input-date.mrx-input-checked-error .mrx-input-date__input:disabled{background-color:var(--neutral-bg-disabled, #EEF0F4);border-color:var(--neutral-bg-stroke-default)}.mrx-input-date.mrx-input-date.mrx-input-checked-success .mrx-input-date__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-input-date.mrx-input-date.mrx-input-checked-success .mrx-input-date__input:disabled{background-color:var(--neutral-bg-disabled, #EEF0F4);border-color:var(--neutral-bg-stroke-default)}.mrx-input-date.mrx-input-date .mrx-input-date__icons{position:absolute;top:0;right:0;display:flex;align-items:center}.mrx-input-date.mrx-input-date .mrx-input-date__icons-item,.mrx-input-date.mrx-input-date .mrx-input-date__icons .mrx-icon{cursor:pointer}.mrx-input-date.mrx-input-date.mrx-input-date-lg .mrx-icon{margin-top:calc(var(--spacing-3) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-md .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-sm .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-2)}\n"] }]
10102
+ }], ctorParameters: () => [{ type: i1$3.Overlay }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { fields: [{
10103
+ type: Input
10104
+ }], format: [{
10105
+ type: Input
10106
+ }], minDate: [{
10107
+ type: Input
10108
+ }], maxDate: [{
10109
+ type: Input
10110
+ }], isSilentValidation: [{
10111
+ type: Input
10112
+ }], isManualInput: [{
10113
+ type: Input
10114
+ }], closeAfterSelect: [{
10115
+ type: Input
10116
+ }], required: [{
10117
+ type: Input
10118
+ }], size: [{
10119
+ type: Input
10120
+ }], customClasses: [{
10121
+ type: Input
10122
+ }], disabled: [{
10123
+ type: Input
10124
+ }], readonly: [{
10125
+ type: Input
10126
+ }], placeholder: [{
10127
+ type: Input
10128
+ }], popupPosition: [{
10129
+ type: Input
10130
+ }], invalid: [{
10131
+ type: Input
10132
+ }], invalidMessage: [{
10133
+ type: Input
10134
+ }], checkInvalid: [{
10135
+ type: Input
10136
+ }], changed: [{
10137
+ type: Output
10138
+ }], modelChange: [{
10139
+ type: Output
10140
+ }], blurred: [{
10141
+ type: Output
10142
+ }], dateInput: [{
10143
+ type: ViewChild,
10144
+ args: ['dateInput']
10145
+ }] } });
10146
+
10147
+ class InputDateModule {
10148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10149
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: InputDateModule, declarations: [InputDateComponent,
10150
+ DateCalendarComponent], imports: [CommonModule,
10151
+ NgxMaskDirective,
10152
+ FormsModule,
10153
+ ErrorMessageModule,
10154
+ LabelModule,
10155
+ SaveStateModule], exports: [InputDateComponent] });
10156
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateModule, providers: [
10157
+ provideNgxMask(),
10158
+ ], imports: [CommonModule,
10159
+ FormsModule,
10160
+ ErrorMessageModule,
10161
+ LabelModule,
10162
+ SaveStateModule] });
10163
+ }
10164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateModule, decorators: [{
10165
+ type: NgModule,
10166
+ args: [{
10167
+ declarations: [
10168
+ InputDateComponent,
10169
+ DateCalendarComponent
10170
+ ],
10171
+ imports: [
10172
+ CommonModule,
10173
+ NgxMaskDirective,
10174
+ FormsModule,
10175
+ ErrorMessageModule,
10176
+ LabelModule,
10177
+ SaveStateModule
10178
+ ],
10179
+ exports: [
10180
+ InputDateComponent
10181
+ ],
10182
+ providers: [
10183
+ provideNgxMask(),
10184
+ ]
10185
+ }]
10186
+ }] });
10187
+
10188
+ var InputDateTimeSizesEnum;
10189
+ (function (InputDateTimeSizesEnum) {
10190
+ InputDateTimeSizesEnum["small"] = "mrx-input-date-sm";
10191
+ InputDateTimeSizesEnum["medium"] = "mrx-input-date-md";
10192
+ InputDateTimeSizesEnum["large"] = "mrx-input-date-lg";
10193
+ })(InputDateTimeSizesEnum || (InputDateTimeSizesEnum = {}));
10194
+
9556
10195
  dayjs.extend(customParseFormat);
9557
10196
  const validateDateModel = (value) => {
9558
10197
  const splitDateAndTime = value.split(' ');
@@ -9858,7 +10497,7 @@ class InputDateTimeComponent {
9858
10497
  return `${this.dateModel.view}${this.timeModel.view ? ' ' + this.timeModel.view : ''}`;
9859
10498
  }
9860
10499
  get getClasses() {
9861
- return `${InputDateSizesEnum$1[this.size]} ${this.customClasses} ${this.checkValidClasses}`;
10500
+ return `${InputDateTimeSizesEnum[this.size]} ${this.customClasses} ${this.checkValidClasses}`;
9862
10501
  }
9863
10502
  get isValidModels() {
9864
10503
  return !this.dateModel.invalid && (this.timepicker ? !this.timeModel.invalid : true);
@@ -10500,13 +11139,13 @@ class InputTimepickerComponent {
10500
11139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10501
11140
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: InputTimepickerComponent, selector: "mrx-input-timepicker", inputs: { fields: "fields", size: "size", format: "format", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", minValue: "minValue", maxValue: "maxValue", inline: "inline", closable: "closable", leadZeroDateTime: "leadZeroDateTime", mask: "mask", container: "container", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
10502
11141
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputTimepickerComponent), multi: true }
10503
- ], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"mrx-input-date\"\r\n [class.mrx-input-error]=\"invalid || innerInvalid\"\r\n [class.mrx-input-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"\">\r\n <div class=\"mrx-input-date__wrapper\">\r\n <input\r\n #dateInput\r\n type=\"text\"\r\n autocomplete=\"nope\"\r\n class=\"mrx-input-date__input mrx-input-date__date\"\r\n [placeholder]=\"placeholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"mask\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n />\r\n <div *ngIf=\"!disabled\" class=\"mrx-input-date__icons\">\r\n <span\r\n class=\"mrx-icon icon-close\"\r\n *ngIf=\"isViewCleanIcon\"\r\n (click)=\"clickToIconClear()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n <span\r\n class=\"mrx-icon icon-calendar\"\r\n (click)=\"clickToIconCalendar()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"invalid; else innerInvalidTemplate\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <ng-template #innerInvalidTemplate>\r\n <mrx-error-message\r\n *ngIf=\"innerInvalid\"\r\n [invalidMessage]=\"innerInvalidMessage\"\r\n ></mrx-error-message>\r\n </ng-template>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n\r\n\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { kind: "component", type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
11142
+ ], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"mrx-input-date\"\r\n [class.mrx-input-error]=\"invalid || innerInvalid\"\r\n [class.mrx-input-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"\">\r\n <div class=\"mrx-input-date__wrapper\">\r\n <input\r\n #dateInput\r\n type=\"text\"\r\n autocomplete=\"nope\"\r\n class=\"mrx-input-date__input mrx-input-date__date\"\r\n [placeholder]=\"placeholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"mask\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n />\r\n <div *ngIf=\"!disabled\" class=\"mrx-input-date__icons\">\r\n <span\r\n class=\"mrx-icon icon-close\"\r\n *ngIf=\"isViewCleanIcon\"\r\n (click)=\"clickToIconClear()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n <span\r\n class=\"mrx-icon icon-calendar\"\r\n (click)=\"clickToIconCalendar()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"invalid; else innerInvalidTemplate\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <ng-template #innerInvalidTemplate>\r\n <mrx-error-message\r\n *ngIf=\"innerInvalid\"\r\n [invalidMessage]=\"innerInvalidMessage\"\r\n ></mrx-error-message>\r\n </ng-template>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".mrx-input-date.mrx-input-date{width:100%;position:relative}.mrx-input-date.mrx-input-date .mrx-input-date__wrapper{position:relative}.mrx-input-date.mrx-input-date .mrx-input-date__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;transition:outline-width .2s,border .2s}.mrx-input-date.mrx-input-date .mrx-input-date__input:focus,.mrx-input-date.mrx-input-date .mrx-input-date__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-date.mrx-input-date .mrx-input-date__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-date.mrx-input-date.mrx-input-date-lg .mrx-input-date__input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-4) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date.mrx-input-date-md .mrx-input-date__input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-3) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date.mrx-input-date-sm .mrx-input-date__input{padding:calc(var(--spacing-2) - var(--border-width-default)) calc(var(--spacing-2) - var(--border-width-default));font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-date.mrx-input-date.mrx-input-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default)!important}.mrx-input-date.mrx-input-date.mrx-input-checked-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default)!important;background-color:var(--system-bg-negative-secondary)!important}.mrx-input-date.mrx-input-date.mrx-input-checked-success .mrx-input-date__input{background-color:var(--system-bg-positive-secondary)!important;border-color:var(--system-bg-controls-positive-default)!important}.mrx-input-date.mrx-input-date .mrx-input-date__icons{position:absolute;top:0;right:0;display:flex;align-items:center}.mrx-input-date.mrx-input-date .mrx-input-date__icons-item,.mrx-input-date.mrx-input-date .mrx-input-date__icons .mrx-icon{cursor:pointer}.mrx-input-date.mrx-input-date.mrx-input-date-lg .mrx-icon{margin-top:calc(var(--spacing-3) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-md .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-sm .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-2)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { kind: "component", type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
10504
11143
  }
10505
11144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTimepickerComponent, decorators: [{
10506
11145
  type: Component,
10507
11146
  args: [{ selector: 'mrx-input-timepicker', providers: [
10508
11147
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputTimepickerComponent), multi: true }
10509
- ], template: "<div\r\n class=\"mrx-input-date\"\r\n [class.mrx-input-error]=\"invalid || innerInvalid\"\r\n [class.mrx-input-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"\">\r\n <div class=\"mrx-input-date__wrapper\">\r\n <input\r\n #dateInput\r\n type=\"text\"\r\n autocomplete=\"nope\"\r\n class=\"mrx-input-date__input mrx-input-date__date\"\r\n [placeholder]=\"placeholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"mask\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n />\r\n <div *ngIf=\"!disabled\" class=\"mrx-input-date__icons\">\r\n <span\r\n class=\"mrx-icon icon-close\"\r\n *ngIf=\"isViewCleanIcon\"\r\n (click)=\"clickToIconClear()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n <span\r\n class=\"mrx-icon icon-calendar\"\r\n (click)=\"clickToIconCalendar()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"invalid; else innerInvalidTemplate\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <ng-template #innerInvalidTemplate>\r\n <mrx-error-message\r\n *ngIf=\"innerInvalid\"\r\n [invalidMessage]=\"innerInvalidMessage\"\r\n ></mrx-error-message>\r\n </ng-template>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n\r\n\r\n\r\n" }]
11148
+ ], template: "<div\r\n class=\"mrx-input-date\"\r\n [class.mrx-input-error]=\"invalid || innerInvalid\"\r\n [class.mrx-input-readonly]=\"readonly\"\r\n [class]=\"getClasses\"\r\n>\r\n <div class=\"\">\r\n <div class=\"mrx-input-date__wrapper\">\r\n <input\r\n #dateInput\r\n type=\"text\"\r\n autocomplete=\"nope\"\r\n class=\"mrx-input-date__input mrx-input-date__date\"\r\n [placeholder]=\"placeholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"mask\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n />\r\n <div *ngIf=\"!disabled\" class=\"mrx-input-date__icons\">\r\n <span\r\n class=\"mrx-icon icon-close\"\r\n *ngIf=\"isViewCleanIcon\"\r\n (click)=\"clickToIconClear()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n <span\r\n class=\"mrx-icon icon-calendar\"\r\n (click)=\"clickToIconCalendar()\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'medium' || size === 'large'\"\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"invalid; else innerInvalidTemplate\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <ng-template #innerInvalidTemplate>\r\n <mrx-error-message\r\n *ngIf=\"innerInvalid\"\r\n [invalidMessage]=\"innerInvalidMessage\"\r\n ></mrx-error-message>\r\n </ng-template>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".mrx-input-date.mrx-input-date{width:100%;position:relative}.mrx-input-date.mrx-input-date .mrx-input-date__wrapper{position:relative}.mrx-input-date.mrx-input-date .mrx-input-date__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;transition:outline-width .2s,border .2s}.mrx-input-date.mrx-input-date .mrx-input-date__input:focus,.mrx-input-date.mrx-input-date .mrx-input-date__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-date.mrx-input-date .mrx-input-date__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-date.mrx-input-date.mrx-input-date-lg .mrx-input-date__input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-4) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date.mrx-input-date-md .mrx-input-date__input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-3) - var(--border-width-default));font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-date.mrx-input-date.mrx-input-date-sm .mrx-input-date__input{padding:calc(var(--spacing-2) - var(--border-width-default)) calc(var(--spacing-2) - var(--border-width-default));font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-date.mrx-input-date.mrx-input-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default)!important}.mrx-input-date.mrx-input-date.mrx-input-checked-error .mrx-input-date__input{border-color:var(--system-bg-controls-negative-default)!important;background-color:var(--system-bg-negative-secondary)!important}.mrx-input-date.mrx-input-date.mrx-input-checked-success .mrx-input-date__input{background-color:var(--system-bg-positive-secondary)!important;border-color:var(--system-bg-controls-positive-default)!important}.mrx-input-date.mrx-input-date .mrx-input-date__icons{position:absolute;top:0;right:0;display:flex;align-items:center}.mrx-input-date.mrx-input-date .mrx-input-date__icons-item,.mrx-input-date.mrx-input-date .mrx-input-date__icons .mrx-icon{cursor:pointer}.mrx-input-date.mrx-input-date.mrx-input-date-lg .mrx-icon{margin-top:calc(var(--spacing-3) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-md .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-3)}.mrx-input-date.mrx-input-date.mrx-input-date-sm .mrx-icon{margin-top:calc(var(--spacing-2) - var(--border-width-default));margin-right:var(--spacing-2)}\n"] }]
10510
11149
  }], ctorParameters: () => [], propDecorators: { fields: [{
10511
11150
  type: Input
10512
11151
  }], size: [{
@@ -18431,7 +19070,7 @@ const countryData = [
18431
19070
  CountriesISO.Uzbekistan,
18432
19071
  '998',
18433
19072
  0,
18434
- [],
19073
+ ['69'],
18435
19074
  CountriesRusLabel[CountriesISO.Uzbekistan]
18436
19075
  ],
18437
19076
  [
@@ -19410,5 +20049,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
19410
20049
  * Generated bundle index. Do not edit.
19411
20050
  */
19412
20051
 
19413
- export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, AutoSaveStore, BadgeColorClassesEnum, BadgeComponent, BadgeGroupComponent, BadgeSizeEnum, BadgeTagTypeClassesEnum, BadgeTargetTypesEnum, BadgeTypeEnum, BadgesModule, BreadcrumbsComponent, BreadcrumbsModule, BreadcrumbsTypeEnum, ButtonColorsEnum, ButtonComponent, ButtonIconPositionEnum, ButtonModule, ButtonSizesEnum, ButtonTypesEnum, CdkTooltipDirective, CdkTooltipModule, CharsLeftComponent, CharsLeftModule, CheckboxComponent, CheckboxGroupComponent, CheckboxGroupModule, CheckboxModule, CodeEditorComponent, CodeEditorModule, CodeEditorOptions, ColumnComponent, ContentTitleWrapperComponent, ContentTitleWrapperModule, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateSizesEnum$1 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, InputDatepickerSizesEnum, InputEditorModeEnum, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTelSizesEnum, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, JsonEditorComponent, JsonEditorModule, JsonEditorOptions, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, MODAL_CONFIG, MODAL_DATA, ModalAlignButtonsEnum, ModalBackdropTypeClasses, ModalColorEnum, ModalComponent, ModalModule, ModalRef, ModalService, ModalServiceComponent, ModalServiceModule, ModalSizesEnum, ModalType, ModalTypeClasses, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PdfViewerComponent, PdfViewerComponentModule, PhoneFormatModule, PhoneFormatPipe, PopupComponent, PopupItemComponent, PopupModule, PopupTriggerDirective, PositionEnum, PositionStrategyEnum, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SelectComponent, SelectModule, SelectSizeEnum, SidePageComponent, SidePageHeaderSizesEnum, SidePageModule, SidePagePositionEnum, SidePageSizesEnum, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, ToasterPosition, ToasterService, ToasterServiceModule, ToasterType, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, convertBase64ToFile, countryData, dateTimeFormat, defaultConfig, defaultCustomConfig, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, innerListToList, sHashCode, sliceDate, toBytes, toDate, toNumberFormat, toastrDefaultConfig, wordForm };
20052
+ export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, AutoSaveStore, BadgeColorClassesEnum, BadgeComponent, BadgeGroupComponent, BadgeSizeEnum, BadgeTagTypeClassesEnum, BadgeTargetTypesEnum, BadgeTypeEnum, BadgesModule, BreadcrumbsComponent, BreadcrumbsModule, BreadcrumbsTypeEnum, ButtonColorsEnum, ButtonComponent, ButtonIconPositionEnum, ButtonModule, ButtonSizesEnum, ButtonTypesEnum, CdkTooltipDirective, CdkTooltipModule, CharsLeftComponent, CharsLeftModule, CheckboxComponent, CheckboxGroupComponent, CheckboxGroupModule, CheckboxModule, CodeEditorComponent, CodeEditorModule, CodeEditorOptions, ColumnComponent, ContentTitleWrapperComponent, ContentTitleWrapperModule, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateComponent, InputDateModule, InputDateTimeComponent, InputDateTimeModule, InputDateTimeSizesEnum, InputDatepickerComponent, InputDatepickerModule, InputDatepickerSizesEnum, InputEditorModeEnum, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTelSizesEnum, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, JsonEditorComponent, JsonEditorModule, JsonEditorOptions, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, MODAL_CONFIG, MODAL_DATA, ModalAlignButtonsEnum, ModalBackdropTypeClasses, ModalColorEnum, ModalComponent, ModalModule, ModalRef, ModalService, ModalServiceComponent, ModalServiceModule, ModalSizesEnum, ModalType, ModalTypeClasses, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PdfViewerComponent, PdfViewerComponentModule, PhoneFormatModule, PhoneFormatPipe, PopupComponent, PopupItemComponent, PopupModule, PopupTriggerDirective, PositionEnum, PositionStrategyEnum, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SelectComponent, SelectModule, SelectSizeEnum, SidePageComponent, SidePageHeaderSizesEnum, SidePageModule, SidePagePositionEnum, SidePageSizesEnum, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, ToasterPosition, ToasterService, ToasterServiceModule, ToasterType, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, convertBase64ToFile, countryData, dateTimeFormat, defaultConfig, defaultCustomConfig, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, innerListToList, sHashCode, sliceDate, toBytes, toDate, toNumberFormat, toastrDefaultConfig, wordForm };
19414
20053
  //# sourceMappingURL=myrta-ui.mjs.map