myrta-ui 1.1.89 → 1.1.90

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 (25) hide show
  1. package/esm2020/lib/components/form/input-date/components/date-calendar/date-calendar.component.mjs +222 -0
  2. package/esm2020/lib/components/form/input-date/helpers/date-helpers.mjs +70 -0
  3. package/esm2020/lib/components/form/input-date/input-date.component.mjs +313 -0
  4. package/esm2020/lib/components/form/input-date/input-date.enum.mjs +7 -0
  5. package/esm2020/lib/components/form/input-date/input-date.module.mjs +54 -0
  6. package/esm2020/lib/components/form/input-date-time/helpers/formatting-moscow-timezone.mjs +15 -3
  7. package/esm2020/lib/components/form/input-date-time/input-date-time.component.mjs +67 -23
  8. package/esm2020/lib/components/form/input-date-time/input-date-time.enum.mjs +7 -7
  9. package/esm2020/lib/enums/overlay/index.mjs +78 -0
  10. package/esm2020/public-api.mjs +3 -1
  11. package/fesm2015/myrta-ui.mjs +834 -61
  12. package/fesm2015/myrta-ui.mjs.map +1 -1
  13. package/fesm2020/myrta-ui.mjs +827 -61
  14. package/fesm2020/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/helpers/formatting-moscow-timezone.d.ts +1 -0
  21. package/lib/components/form/input-date-time/input-date-time.component.d.ts +8 -7
  22. package/lib/components/form/input-date-time/input-date-time.enum.d.ts +2 -2
  23. package/lib/enums/overlay/index.d.ts +13 -0
  24. package/package.json +1 -1
  25. package/public-api.d.ts +2 -0
@@ -16,9 +16,9 @@ import { OverlayModule, OverlayContainer, FullscreenOverlayContainer } from '@an
16
16
  import { createPopper } from '@popperjs/core';
17
17
  import * as i1$3 from '@ng-select/ng-select';
18
18
  import { NgSelectModule } from '@ng-select/ng-select';
19
- import { Subscription, Subject, timer, EMPTY } from 'rxjs';
19
+ import { Subscription, Subject, timer, fromEvent, EMPTY } from 'rxjs';
20
20
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
21
- import { first, switchMap, map, mergeMap, startWith, distinctUntilChanged, pairwise, catchError } from 'rxjs/operators';
21
+ import { first, switchMap, map, mergeMap, filter, startWith, distinctUntilChanged, pairwise, catchError } from 'rxjs/operators';
22
22
  import * as i2 from '@angular/cdk/layout';
23
23
  import { Fancybox } from 'mrx-gallery-lib';
24
24
  import * as i1$5 from '@angular/common/http';
@@ -1170,56 +1170,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1170
1170
  }] }];
1171
1171
  } });
1172
1172
 
1173
- const topPosition = {
1173
+ const topPosition$1 = {
1174
1174
  originX: 'center',
1175
1175
  originY: 'top',
1176
1176
  overlayX: 'center',
1177
1177
  overlayY: 'bottom',
1178
1178
  panelClass: 'top',
1179
1179
  };
1180
- const bottomPosition = {
1180
+ const bottomPosition$1 = {
1181
1181
  originX: 'center',
1182
1182
  originY: 'bottom',
1183
1183
  overlayX: 'center',
1184
1184
  overlayY: 'top',
1185
1185
  panelClass: 'bottom',
1186
1186
  };
1187
- const leftPosition = {
1187
+ const leftPosition$1 = {
1188
1188
  originX: 'start',
1189
1189
  originY: 'center',
1190
1190
  overlayX: 'end',
1191
1191
  overlayY: 'center',
1192
1192
  panelClass: 'start',
1193
1193
  };
1194
- const rightPosition = {
1194
+ const rightPosition$1 = {
1195
1195
  originX: 'end',
1196
1196
  originY: 'center',
1197
1197
  overlayX: 'start',
1198
1198
  overlayY: 'center',
1199
1199
  panelClass: 'end',
1200
1200
  };
1201
- const topStartPosition = {
1201
+ const topStartPosition$1 = {
1202
1202
  originX: 'start',
1203
1203
  originY: 'top',
1204
1204
  overlayX: 'start',
1205
1205
  overlayY: 'bottom',
1206
1206
  panelClass: 'top-start',
1207
1207
  };
1208
- const topEndPosition = {
1208
+ const topEndPosition$1 = {
1209
1209
  originX: 'end',
1210
1210
  originY: 'top',
1211
1211
  overlayX: 'end',
1212
1212
  overlayY: 'bottom',
1213
1213
  panelClass: 'top-end',
1214
1214
  };
1215
- const bottomStartPosition = {
1215
+ const bottomStartPosition$1 = {
1216
1216
  originX: 'start',
1217
1217
  originY: 'bottom',
1218
1218
  overlayX: 'start',
1219
1219
  overlayY: 'top',
1220
1220
  panelClass: 'bottom-start',
1221
1221
  };
1222
- const bottomEndPosition = {
1222
+ const bottomEndPosition$1 = {
1223
1223
  originX: 'end',
1224
1224
  originY: 'bottom',
1225
1225
  overlayX: 'end',
@@ -1227,17 +1227,17 @@ const bottomEndPosition = {
1227
1227
  panelClass: 'bottom-end',
1228
1228
  };
1229
1229
  const positions = [
1230
- topPosition, bottomPosition, leftPosition, rightPosition
1230
+ topPosition$1, bottomPosition$1, leftPosition$1, rightPosition$1
1231
1231
  ];
1232
1232
  const positionStrategy = {
1233
- top: [topPosition, topStartPosition, topEndPosition, bottomPosition, bottomStartPosition, bottomEndPosition, leftPosition, rightPosition],
1234
- bottom: [bottomPosition, bottomStartPosition, bottomEndPosition, topPosition, topStartPosition, topEndPosition, leftPosition, rightPosition],
1235
- left: [leftPosition, rightPosition, topPosition, bottomPosition],
1236
- right: [rightPosition, leftPosition, topPosition, bottomPosition],
1237
- 'top-start': [topStartPosition, topPosition, topEndPosition, bottomStartPosition, bottomPosition, bottomEndPosition],
1238
- 'top-end': [topEndPosition, topPosition, topStartPosition, bottomEndPosition, bottomPosition, bottomStartPosition],
1239
- 'bottom-start': [bottomStartPosition, bottomPosition, bottomEndPosition, topStartPosition, topPosition, topEndPosition],
1240
- 'bottom-end': [bottomEndPosition, bottomPosition, bottomStartPosition, topEndPosition, topPosition, topStartPosition],
1233
+ top: [topPosition$1, topStartPosition$1, topEndPosition$1, bottomPosition$1, bottomStartPosition$1, bottomEndPosition$1, leftPosition$1, rightPosition$1],
1234
+ bottom: [bottomPosition$1, bottomStartPosition$1, bottomEndPosition$1, topPosition$1, topStartPosition$1, topEndPosition$1, leftPosition$1, rightPosition$1],
1235
+ left: [leftPosition$1, rightPosition$1, topPosition$1, bottomPosition$1],
1236
+ right: [rightPosition$1, leftPosition$1, topPosition$1, bottomPosition$1],
1237
+ 'top-start': [topStartPosition$1, topPosition$1, topEndPosition$1, bottomStartPosition$1, bottomPosition$1, bottomEndPosition$1],
1238
+ 'top-end': [topEndPosition$1, topPosition$1, topStartPosition$1, bottomEndPosition$1, bottomPosition$1, bottomStartPosition$1],
1239
+ 'bottom-start': [bottomStartPosition$1, bottomPosition$1, bottomEndPosition$1, topStartPosition$1, topPosition$1, topEndPosition$1],
1240
+ 'bottom-end': [bottomEndPosition$1, bottomPosition$1, bottomStartPosition$1, topEndPosition$1, topPosition$1, topStartPosition$1],
1241
1241
  };
1242
1242
 
1243
1243
  class CdkTooltipDirective {
@@ -5657,7 +5657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5657
5657
  }]
5658
5658
  }] });
5659
5659
 
5660
- const maskConfigFunction$7 = () => {
5660
+ const maskConfigFunction$8 = () => {
5661
5661
  return {
5662
5662
  validation: false,
5663
5663
  };
@@ -5676,7 +5676,7 @@ InputTextareaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
5676
5676
  CharsLeftModule,
5677
5677
  ErrorMessageModule,
5678
5678
  SaveStateModule,
5679
- NgxMaskModule.forRoot(maskConfigFunction$7),
5679
+ NgxMaskModule.forRoot(maskConfigFunction$8),
5680
5680
  AutosizeModule
5681
5681
  ]] });
5682
5682
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTextareaModule, decorators: [{
@@ -5689,7 +5689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5689
5689
  CharsLeftModule,
5690
5690
  ErrorMessageModule,
5691
5691
  SaveStateModule,
5692
- NgxMaskModule.forRoot(maskConfigFunction$7),
5692
+ NgxMaskModule.forRoot(maskConfigFunction$8),
5693
5693
  AutosizeModule
5694
5694
  ],
5695
5695
  exports: [InputTextareaComponent],
@@ -6008,7 +6008,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6008
6008
  type: Output
6009
6009
  }] } });
6010
6010
 
6011
- const maskConfigFunction$6 = () => {
6011
+ const maskConfigFunction$7 = () => {
6012
6012
  return {
6013
6013
  validation: false,
6014
6014
  };
@@ -6029,7 +6029,7 @@ InputTextModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
6029
6029
  ErrorMessageModule,
6030
6030
  SaveStateModule,
6031
6031
  CdkTooltipModule,
6032
- NgxMaskModule.forRoot(maskConfigFunction$6)
6032
+ NgxMaskModule.forRoot(maskConfigFunction$7)
6033
6033
  ]] });
6034
6034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTextModule, decorators: [{
6035
6035
  type: NgModule,
@@ -6042,7 +6042,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6042
6042
  ErrorMessageModule,
6043
6043
  SaveStateModule,
6044
6044
  CdkTooltipModule,
6045
- NgxMaskModule.forRoot(maskConfigFunction$6)
6045
+ NgxMaskModule.forRoot(maskConfigFunction$7)
6046
6046
  ],
6047
6047
  exports: [InputTextComponent],
6048
6048
  }]
@@ -8525,7 +8525,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8525
8525
  args: ['phoneInput']
8526
8526
  }] } });
8527
8527
 
8528
- const maskConfigFunction$5 = () => {
8528
+ const maskConfigFunction$6 = () => {
8529
8529
  return {
8530
8530
  validation: false,
8531
8531
  };
@@ -8546,7 +8546,7 @@ InputPhoneModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
8546
8546
  DropdownModule,
8547
8547
  SaveStateModule,
8548
8548
  ErrorMessageModule,
8549
- NgxMaskModule.forRoot(maskConfigFunction$5)
8549
+ NgxMaskModule.forRoot(maskConfigFunction$6)
8550
8550
  ]] });
8551
8551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputPhoneModule, decorators: [{
8552
8552
  type: NgModule,
@@ -8560,7 +8560,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8560
8560
  DropdownModule,
8561
8561
  SaveStateModule,
8562
8562
  ErrorMessageModule,
8563
- NgxMaskModule.forRoot(maskConfigFunction$5)
8563
+ NgxMaskModule.forRoot(maskConfigFunction$6)
8564
8564
  ],
8565
8565
  exports: [InputPhoneComponent]
8566
8566
  }]
@@ -8737,7 +8737,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8737
8737
  type: Output
8738
8738
  }] } });
8739
8739
 
8740
- const maskConfigFunction$4 = () => {
8740
+ const maskConfigFunction$5 = () => {
8741
8741
  return {
8742
8742
  validation: false,
8743
8743
  };
@@ -8754,7 +8754,7 @@ InputSearchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
8754
8754
  FormsModule,
8755
8755
  CharsLeftModule,
8756
8756
  ErrorMessageModule,
8757
- NgxMaskModule.forRoot(maskConfigFunction$4),
8757
+ NgxMaskModule.forRoot(maskConfigFunction$5),
8758
8758
  SaveStateModule
8759
8759
  ]] });
8760
8760
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputSearchModule, decorators: [{
@@ -8766,7 +8766,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8766
8766
  FormsModule,
8767
8767
  CharsLeftModule,
8768
8768
  ErrorMessageModule,
8769
- NgxMaskModule.forRoot(maskConfigFunction$4),
8769
+ NgxMaskModule.forRoot(maskConfigFunction$5),
8770
8770
  SaveStateModule
8771
8771
  ],
8772
8772
  exports: [InputSearchComponent],
@@ -8936,7 +8936,7 @@ const markPosition$2 = (start, end, pattern = 'date') => {
8936
8936
  }
8937
8937
  };
8938
8938
 
8939
- const cleanDate$2 = (value, format) => {
8939
+ const cleanDate$3 = (value, format) => {
8940
8940
  return dayjs(value).format(format);
8941
8941
  };
8942
8942
 
@@ -9193,7 +9193,7 @@ class InputDatepickerComponent {
9193
9193
  }
9194
9194
  writeValue(outsideValue) {
9195
9195
  if (outsideValue) {
9196
- this.value = cleanDate$2(outsideValue, this.format);
9196
+ this.value = cleanDate$3(outsideValue, this.format);
9197
9197
  this.dateModel = dateModelValueParse$1(outsideValue, this.format);
9198
9198
  this.timeModel = timeModelValueParse$2(outsideValue, this.format);
9199
9199
  if (!this.disableValidation) {
@@ -9295,7 +9295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9295
9295
  type: Output
9296
9296
  }] } });
9297
9297
 
9298
- const maskConfigFunction$3 = () => {
9298
+ const maskConfigFunction$4 = () => {
9299
9299
  return {
9300
9300
  validation: false,
9301
9301
  };
@@ -9314,7 +9314,7 @@ InputDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
9314
9314
  SaveStateModule,
9315
9315
  ErrorMessageModule,
9316
9316
  LabelModule,
9317
- NgxMaskModule.forRoot(maskConfigFunction$3),
9317
+ NgxMaskModule.forRoot(maskConfigFunction$4),
9318
9318
  ]] });
9319
9319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDatepickerModule, decorators: [{
9320
9320
  type: NgModule,
@@ -9326,13 +9326,305 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9326
9326
  SaveStateModule,
9327
9327
  ErrorMessageModule,
9328
9328
  LabelModule,
9329
- NgxMaskModule.forRoot(maskConfigFunction$3),
9329
+ NgxMaskModule.forRoot(maskConfigFunction$4),
9330
9330
  ],
9331
9331
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
9332
9332
  exports: [InputDatepickerComponent],
9333
9333
  }]
9334
9334
  }] });
9335
9335
 
9336
+ function formatDate(date, format) {
9337
+ const pad = (n) => n.toString().padStart(2, '0');
9338
+ const map = {
9339
+ 'DD': pad(date.getDate()),
9340
+ 'MM': pad(date.getMonth() + 1),
9341
+ 'YYYY': date.getFullYear().toString()
9342
+ };
9343
+ return format.replace(/DD|MM|YYYY/g, match => map[match]);
9344
+ }
9345
+ function toOutputFormat(date) {
9346
+ const pad = (n) => n.toString().padStart(2, '0');
9347
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
9348
+ }
9349
+ function isValidDate(date) {
9350
+ return date instanceof Date && !isNaN(date.getTime());
9351
+ }
9352
+ function getDaysInMonth(year, month) {
9353
+ return new Date(year, month + 1, 0).getDate();
9354
+ }
9355
+ function isDateInRange(date, minDate, maxDate) {
9356
+ const min = minDate ? cleanDate$2(minDate) : null;
9357
+ const max = maxDate ? cleanDate$2(maxDate) : null;
9358
+ return (!min || date >= min) && (!max || date <= max);
9359
+ }
9360
+ function clampDate(date, minDate, maxDate) {
9361
+ const min = minDate ? cleanDate$2(minDate) : null;
9362
+ const max = maxDate ? cleanDate$2(maxDate) : null;
9363
+ if (min && date < min)
9364
+ return new Date(min);
9365
+ if (max && date > max)
9366
+ return new Date(max);
9367
+ return date;
9368
+ }
9369
+ function getRangeErrorMessage(date, minDate, maxDate) {
9370
+ const min = minDate ? cleanDate$2(minDate) : null;
9371
+ const max = maxDate ? cleanDate$2(maxDate) : null;
9372
+ if (min && date < min)
9373
+ return 'Дата меньше минимальной';
9374
+ if (max && date > max)
9375
+ return 'Дата больше максимальной';
9376
+ return '';
9377
+ }
9378
+ function parseInputDate(dateStr) {
9379
+ if (dateStr) {
9380
+ const [year, month, day] = dateStr.split('-').map(Number);
9381
+ const date = new Date(year, month - 1, day);
9382
+ return isValidDate(date) ? date : null;
9383
+ }
9384
+ else {
9385
+ return null;
9386
+ }
9387
+ }
9388
+ function adjustInvalidDate(year, month, day) {
9389
+ const maxDays = getDaysInMonth(year, month);
9390
+ if (day > maxDays) {
9391
+ month += 1;
9392
+ if (month > 11) {
9393
+ month = 0;
9394
+ year += 1;
9395
+ }
9396
+ day = 1;
9397
+ }
9398
+ year = Math.min(Math.max(year, 1900), 9999);
9399
+ month = Math.min(Math.max(month, 0), 11);
9400
+ return { year, month, day };
9401
+ }
9402
+ const cleanDate$2 = (date) => {
9403
+ return new Date(new Date(date).setHours(0, 0, 0, 0));
9404
+ };
9405
+
9406
+ class DateCalendarComponent {
9407
+ constructor(_detector) {
9408
+ this._detector = _detector;
9409
+ this.selectedDate = null;
9410
+ this.dateSelected = new EventEmitter();
9411
+ this.close = new EventEmitter();
9412
+ this.currentMonth = new Date().getMonth();
9413
+ this.currentYear = new Date().getFullYear();
9414
+ this.view = 'days';
9415
+ this.monthNames = [
9416
+ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
9417
+ 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
9418
+ ];
9419
+ this.daysOfWeek = ['ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ', 'ВС'];
9420
+ this.months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
9421
+ this._minDate = null;
9422
+ this._maxDate = null;
9423
+ this._minDateStr = null;
9424
+ this._maxDateStr = null;
9425
+ this.calendarDaysCache = null;
9426
+ }
9427
+ ngOnInit() {
9428
+ if (this.selectedDate) {
9429
+ this.currentMonth = this.selectedDate.getMonth();
9430
+ this.currentYear = this.selectedDate.getFullYear();
9431
+ }
9432
+ this.updateDateBounds();
9433
+ }
9434
+ set minDate(value) {
9435
+ if (this._minDateStr !== value) {
9436
+ this._minDateStr = value;
9437
+ this.updateDateBounds();
9438
+ this._detector.markForCheck();
9439
+ }
9440
+ }
9441
+ get minDate() {
9442
+ return this._minDateStr;
9443
+ }
9444
+ set maxDate(value) {
9445
+ if (this._maxDateStr !== value) {
9446
+ this._maxDateStr = value;
9447
+ this.updateDateBounds();
9448
+ this._detector.markForCheck();
9449
+ }
9450
+ }
9451
+ get maxDate() {
9452
+ return this._maxDateStr;
9453
+ }
9454
+ updateDateBounds() {
9455
+ this._minDate = this._minDateStr ? cleanDate$2(this._minDateStr) : null;
9456
+ this._maxDate = this._maxDateStr ? cleanDate$2(this._maxDateStr) : null;
9457
+ }
9458
+ get headerText() {
9459
+ switch (this.view) {
9460
+ case 'days':
9461
+ return `${this.monthNames[this.currentMonth]} ${this.currentYear}`;
9462
+ case 'months':
9463
+ return `${this.currentYear}`;
9464
+ default:
9465
+ return 'Выберите год';
9466
+ }
9467
+ }
9468
+ switchView() {
9469
+ this.view = this.view === 'days' ? 'months' : this.view === 'months' ? 'years' : 'days';
9470
+ this._detector.markForCheck();
9471
+ }
9472
+ getCalendarDays() {
9473
+ var _a, _b;
9474
+ if (((_a = this.calendarDaysCache) === null || _a === void 0 ? void 0 : _a.month) === this.currentMonth && ((_b = this.calendarDaysCache) === null || _b === void 0 ? void 0 : _b.year) === this.currentYear) {
9475
+ return this.calendarDaysCache.days;
9476
+ }
9477
+ const daysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();
9478
+ const prevMonthDays = new Date(this.currentYear, this.currentMonth, 0).getDate();
9479
+ const days = [];
9480
+ const prevDaysCount = 2;
9481
+ const prevMonth = this.currentMonth === 0 ? 11 : this.currentMonth - 1;
9482
+ const prevYear = this.currentMonth === 0 ? this.currentYear - 1 : this.currentYear;
9483
+ const nextMonth = this.currentMonth === 11 ? 0 : this.currentMonth + 1;
9484
+ const nextYear = this.currentMonth === 11 ? this.currentYear + 1 : this.currentYear;
9485
+ for (let i = 0; i < prevDaysCount; i++) {
9486
+ days.push({ day: prevMonthDays - prevDaysCount + 1 + i, month: prevMonth, year: prevYear });
9487
+ }
9488
+ for (let i = 1; i <= daysInMonth; i++) {
9489
+ days.push({ day: i, month: this.currentMonth, year: this.currentYear });
9490
+ }
9491
+ const remainingDays = 35 - days.length;
9492
+ for (let i = 1; i <= remainingDays; i++) {
9493
+ days.push({ day: i, month: nextMonth, year: nextYear });
9494
+ }
9495
+ this.calendarDaysCache = { month: this.currentMonth, year: this.currentYear, days };
9496
+ return days;
9497
+ }
9498
+ getYears() {
9499
+ var _a, _b;
9500
+ const centerYear = (_b = (_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.getFullYear()) !== null && _b !== void 0 ? _b : this.currentYear;
9501
+ const startYear = centerYear - 5;
9502
+ return Array.from({ length: 12 }, (_, i) => startYear + i);
9503
+ }
9504
+ isSelected(day) {
9505
+ if (!this.selectedDate)
9506
+ return false;
9507
+ return (day.day === this.selectedDate.getDate() &&
9508
+ day.month === this.selectedDate.getMonth() &&
9509
+ day.year === this.selectedDate.getFullYear());
9510
+ }
9511
+ isMonthSelected(month) {
9512
+ var _a, _b;
9513
+ return ((_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.getMonth()) === month && ((_b = this.selectedDate) === null || _b === void 0 ? void 0 : _b.getFullYear()) === this.currentYear;
9514
+ }
9515
+ isYearSelected(year) {
9516
+ var _a;
9517
+ return ((_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.getFullYear()) === year;
9518
+ }
9519
+ isDateEnabled(day) {
9520
+ const date = new Date(day.year, day.month, day.day);
9521
+ return ((!this._minDate || date >= this._minDate) &&
9522
+ (!this._maxDate || date <= this._maxDate));
9523
+ }
9524
+ isMonthDisabled(month) {
9525
+ if (!this._minDate && !this._maxDate)
9526
+ return false;
9527
+ const startOfMonth = new Date(this.currentYear, month, 1);
9528
+ const endOfMonth = new Date(this.currentYear, month + 1, 0);
9529
+ return ((!!this._minDate && !isNaN(this._minDate.getTime()) && endOfMonth < this._minDate) ||
9530
+ (!!this._maxDate && !isNaN(this._maxDate.getTime()) && startOfMonth > this._maxDate));
9531
+ }
9532
+ isYearDisabled(year) {
9533
+ if (!this._minDate && !this._maxDate)
9534
+ return false;
9535
+ const minYear = this._minDate && !isNaN(this._minDate.getTime()) ? this._minDate.getFullYear() : null;
9536
+ const maxYear = this._maxDate && !isNaN(this._maxDate.getTime()) ? this._maxDate.getFullYear() : null;
9537
+ return (minYear !== null && year < minYear) || (maxYear !== null && year > maxYear);
9538
+ }
9539
+ selectDate(day) {
9540
+ if (!this.isDateEnabled(day))
9541
+ return;
9542
+ const date = new Date(day.year, day.month, day.day);
9543
+ this.dateSelected.emit(date);
9544
+ const needsUpdate = day.month !== this.currentMonth || day.year !== this.currentYear;
9545
+ if (needsUpdate) {
9546
+ setTimeout(() => {
9547
+ this.currentMonth = day.month;
9548
+ this.currentYear = day.year;
9549
+ this._detector.markForCheck();
9550
+ });
9551
+ }
9552
+ }
9553
+ selectMonth(month) {
9554
+ if (this.isMonthDisabled(month))
9555
+ return;
9556
+ setTimeout(() => {
9557
+ this.currentMonth = month;
9558
+ this.view = 'days';
9559
+ this._detector.markForCheck();
9560
+ });
9561
+ }
9562
+ selectYear(year) {
9563
+ if (this.isYearDisabled(year))
9564
+ return;
9565
+ setTimeout(() => {
9566
+ this.currentYear = year;
9567
+ this.view = 'months';
9568
+ this._detector.markForCheck();
9569
+ });
9570
+ }
9571
+ changeMonth(offset) {
9572
+ let newMonth = this.currentMonth + offset;
9573
+ let newYear = this.currentYear;
9574
+ if (newMonth < 0) {
9575
+ newMonth = 11;
9576
+ newYear--;
9577
+ }
9578
+ else if (newMonth > 11) {
9579
+ newMonth = 0;
9580
+ newYear++;
9581
+ }
9582
+ this.currentMonth = newMonth;
9583
+ this.currentYear = newYear;
9584
+ this._detector.markForCheck();
9585
+ }
9586
+ changeYearRange(offset) {
9587
+ this.currentYear += offset * 12;
9588
+ this._detector.markForCheck();
9589
+ }
9590
+ isPreviousMonthDisabled() {
9591
+ if (!this._minDate)
9592
+ return false;
9593
+ return new Date(this.currentYear, this.currentMonth, 0) < this._minDate;
9594
+ }
9595
+ isNextMonthDisabled() {
9596
+ if (!this._maxDate)
9597
+ return false;
9598
+ return new Date(this.currentYear, this.currentMonth + 1, 1) > this._maxDate;
9599
+ }
9600
+ isPreviousYearRangeDisabled() {
9601
+ if (!this._minDate)
9602
+ return false;
9603
+ return this.getYears()[0] <= this._minDate.getFullYear();
9604
+ }
9605
+ isNextYearRangeDisabled() {
9606
+ if (!this._maxDate)
9607
+ return false;
9608
+ return this.getYears()[this.getYears().length - 1] >= this._maxDate.getFullYear();
9609
+ }
9610
+ }
9611
+ DateCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DateCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
9612
+ DateCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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 <button *ngIf=\"view === 'days'\" 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 <button *ngIf=\"view === 'years'\" 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 <button class=\"mrx-calendar-header__button\" (click)=\"switchView()\">\r\n {{ headerText }}\r\n </button>\r\n\r\n <button *ngIf=\"view === 'days'\" 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 <button *ngIf=\"view === 'years'\" 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 </div>\r\n\r\n <div class=\"mrx-calendar-body\">\r\n <ng-container [ngSwitch]=\"view\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--years\">\r\n <div\r\n *ngFor=\"let year of getYears()\"\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 </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--months\">\r\n <div\r\n *ngFor=\"let month of months\"\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 </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--days\">\r\n <div *ngFor=\"let day of daysOfWeek\" class=\"mrx-calendar-body__grid__label\">{{ day }}</div>\r\n\r\n <div\r\n *ngFor=\"let day of getCalendarDays()\"\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 </div>\r\n </ng-container>\r\n </ng-container>\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);grid-gap:4px;gap:4px;text-align:center}.mrx-calendar-body__grid--months{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;text-align:center}.mrx-calendar-body__grid--years{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;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"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9613
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DateCalendarComponent, decorators: [{
9614
+ type: Component,
9615
+ args: [{ selector: 'mrx-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-calendar\">\r\n <div class=\"mrx-calendar-header\">\r\n <button *ngIf=\"view === 'days'\" 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 <button *ngIf=\"view === 'years'\" 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 <button class=\"mrx-calendar-header__button\" (click)=\"switchView()\">\r\n {{ headerText }}\r\n </button>\r\n\r\n <button *ngIf=\"view === 'days'\" 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 <button *ngIf=\"view === 'years'\" 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 </div>\r\n\r\n <div class=\"mrx-calendar-body\">\r\n <ng-container [ngSwitch]=\"view\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--years\">\r\n <div\r\n *ngFor=\"let year of getYears()\"\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 </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--months\">\r\n <div\r\n *ngFor=\"let month of months\"\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 </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"mrx-calendar-body__grid mrx-calendar-body__grid--days\">\r\n <div *ngFor=\"let day of daysOfWeek\" class=\"mrx-calendar-body__grid__label\">{{ day }}</div>\r\n\r\n <div\r\n *ngFor=\"let day of getCalendarDays()\"\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 </div>\r\n </ng-container>\r\n </ng-container>\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);grid-gap:4px;gap:4px;text-align:center}.mrx-calendar-body__grid--months{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;text-align:center}.mrx-calendar-body__grid--years{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;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"] }]
9616
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectedDate: [{
9617
+ type: Input
9618
+ }], dateSelected: [{
9619
+ type: Output
9620
+ }], close: [{
9621
+ type: Output
9622
+ }], minDate: [{
9623
+ type: Input
9624
+ }], maxDate: [{
9625
+ type: Input
9626
+ }] } });
9627
+
9336
9628
  var InputDateSizesEnum$1;
9337
9629
  (function (InputDateSizesEnum) {
9338
9630
  InputDateSizesEnum["small"] = "mrx-input-date-sm";
@@ -9340,6 +9632,433 @@ var InputDateSizesEnum$1;
9340
9632
  InputDateSizesEnum["large"] = "mrx-input-date-lg";
9341
9633
  })(InputDateSizesEnum$1 || (InputDateSizesEnum$1 = {}));
9342
9634
 
9635
+ const topPosition = {
9636
+ originX: 'center',
9637
+ originY: 'top',
9638
+ overlayX: 'center',
9639
+ overlayY: 'bottom',
9640
+ panelClass: 'top',
9641
+ };
9642
+ const bottomPosition = {
9643
+ originX: 'center',
9644
+ originY: 'bottom',
9645
+ overlayX: 'center',
9646
+ overlayY: 'top',
9647
+ panelClass: 'bottom',
9648
+ };
9649
+ const leftPosition = {
9650
+ originX: 'start',
9651
+ originY: 'center',
9652
+ overlayX: 'end',
9653
+ overlayY: 'center',
9654
+ panelClass: 'start',
9655
+ };
9656
+ const rightPosition = {
9657
+ originX: 'end',
9658
+ originY: 'center',
9659
+ overlayX: 'start',
9660
+ overlayY: 'center',
9661
+ panelClass: 'end',
9662
+ };
9663
+ const topStartPosition = {
9664
+ originX: 'start',
9665
+ originY: 'top',
9666
+ overlayX: 'start',
9667
+ overlayY: 'bottom',
9668
+ panelClass: 'top-start',
9669
+ };
9670
+ const topEndPosition = {
9671
+ originX: 'end',
9672
+ originY: 'top',
9673
+ overlayX: 'end',
9674
+ overlayY: 'bottom',
9675
+ panelClass: 'top-end',
9676
+ };
9677
+ const bottomStartPosition = {
9678
+ originX: 'start',
9679
+ originY: 'bottom',
9680
+ overlayX: 'start',
9681
+ overlayY: 'top',
9682
+ panelClass: 'bottom-start',
9683
+ };
9684
+ const bottomEndPosition = {
9685
+ originX: 'end',
9686
+ originY: 'bottom',
9687
+ overlayX: 'end',
9688
+ overlayY: 'top',
9689
+ panelClass: 'bottom-end',
9690
+ };
9691
+ var PositionEnum;
9692
+ (function (PositionEnum) {
9693
+ PositionEnum["Top"] = "top";
9694
+ PositionEnum["Bottom"] = "bottom";
9695
+ PositionEnum["Left"] = "left";
9696
+ PositionEnum["Right"] = "right";
9697
+ PositionEnum["TopStart"] = "top-start";
9698
+ PositionEnum["TopEnd"] = "top-end";
9699
+ PositionEnum["BottomStart"] = "bottom-start";
9700
+ PositionEnum["BottomEnd"] = "bottom-end";
9701
+ })(PositionEnum || (PositionEnum = {}));
9702
+ const PositionStrategyEnum = {
9703
+ [PositionEnum.Top]: [topPosition, bottomPosition, leftPosition, rightPosition],
9704
+ [PositionEnum.Bottom]: [bottomPosition, topPosition, leftPosition, rightPosition],
9705
+ [PositionEnum.Left]: [leftPosition, rightPosition, topPosition, bottomPosition],
9706
+ [PositionEnum.Right]: [rightPosition, leftPosition, topPosition, bottomPosition],
9707
+ [PositionEnum.TopStart]: [topStartPosition, topPosition, bottomStartPosition, bottomPosition],
9708
+ [PositionEnum.TopEnd]: [topEndPosition, topPosition, bottomEndPosition, bottomPosition],
9709
+ [PositionEnum.BottomStart]: [bottomStartPosition, bottomPosition, topStartPosition, topPosition],
9710
+ [PositionEnum.BottomEnd]: [bottomEndPosition, bottomPosition, topEndPosition, topPosition],
9711
+ };
9712
+
9713
+ class InputDateComponent {
9714
+ constructor(_overlay, _detector, _elementRef) {
9715
+ this._overlay = _overlay;
9716
+ this._detector = _detector;
9717
+ this._elementRef = _elementRef;
9718
+ this._overlayRef = null;
9719
+ this.displayValue = '';
9720
+ this.selectedDate = null;
9721
+ this.mask = '';
9722
+ this.errorMessage = null;
9723
+ // SAVE STATE
9724
+ this.uuid = v4();
9725
+ this.fields = [];
9726
+ this.format = 'DD.MM.YYYY';
9727
+ this.minDate = null;
9728
+ this.maxDate = null;
9729
+ this.isSilentValidation = true;
9730
+ this.isManualInput = true;
9731
+ this.closeAfterSelect = true;
9732
+ this.required = false;
9733
+ this.size = 'large';
9734
+ this.customClasses = '';
9735
+ this.disabled = false;
9736
+ this.readonly = false;
9737
+ this.placeholder = 'дд.мм.гггг';
9738
+ this.popupPosition = 'bottom-start';
9739
+ this.invalid = false;
9740
+ this.invalidMessage = '';
9741
+ this.checkInvalid = null;
9742
+ this.changed = new EventEmitter();
9743
+ this.modelChange = new EventEmitter();
9744
+ this.blurred = new EventEmitter();
9745
+ this.onChange = () => { };
9746
+ this.onTouched = () => { };
9747
+ }
9748
+ ngOnInit() {
9749
+ this.mask = this.format.replace(/[DMY]/g, '0');
9750
+ }
9751
+ ngOnDestroy() {
9752
+ var _a;
9753
+ (_a = this._clickSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
9754
+ this.closeCalendar();
9755
+ }
9756
+ get checkValidClasses() {
9757
+ if (!this.required) {
9758
+ return '';
9759
+ }
9760
+ else {
9761
+ return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
9762
+ }
9763
+ }
9764
+ get getClasses() {
9765
+ return `${InputDateSizesEnum$1[this.size]} ${this.customClasses} ${this.checkValidClasses}`;
9766
+ }
9767
+ get isViewCleanIcon() {
9768
+ var _a;
9769
+ return !!((_a = this.dateInput) === null || _a === void 0 ? void 0 : _a.nativeElement.value);
9770
+ }
9771
+ writeValue(value) {
9772
+ const date = parseInputDate(value);
9773
+ if (date && isDateInRange(date, this.minDate, this.maxDate)) {
9774
+ this.selectedDate = date;
9775
+ this.displayValue = formatDate(date, this.format);
9776
+ this.errorMessage = null;
9777
+ }
9778
+ else if (this.isSilentValidation && date) {
9779
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
9780
+ this.selectedDate = clampedDate;
9781
+ this.displayValue = formatDate(clampedDate, this.format);
9782
+ this.errorMessage = null;
9783
+ }
9784
+ else {
9785
+ this.selectedDate = null;
9786
+ this.displayValue = date ? formatDate(date, this.format) : '';
9787
+ this.errorMessage = date ? getRangeErrorMessage(date, this.minDate, this.maxDate) : null;
9788
+ }
9789
+ this._detector.markForCheck();
9790
+ }
9791
+ registerOnChange(fn) {
9792
+ this.onChange = fn;
9793
+ }
9794
+ registerOnTouched(fn) {
9795
+ this.onTouched = fn;
9796
+ }
9797
+ setDisabledState(isDisabled) {
9798
+ this.disabled = isDisabled;
9799
+ this._detector.markForCheck();
9800
+ }
9801
+ set value(value) {
9802
+ const date = parseInputDate(value);
9803
+ if (date && isDateInRange(date, this.minDate, this.maxDate)) {
9804
+ this.selectedDate = date;
9805
+ this.displayValue = formatDate(date, this.format);
9806
+ this.errorMessage = null;
9807
+ this.updateValue(value);
9808
+ }
9809
+ else if (this.isSilentValidation && date) {
9810
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
9811
+ this.selectedDate = clampedDate;
9812
+ this.displayValue = formatDate(clampedDate, this.format);
9813
+ this.errorMessage = null;
9814
+ const clampedValue = toOutputFormat(clampedDate);
9815
+ this.updateValue(clampedValue);
9816
+ }
9817
+ else {
9818
+ this.selectedDate = null;
9819
+ this.displayValue = date ? formatDate(date, this.format) : '';
9820
+ this.errorMessage = date ? getRangeErrorMessage(date, this.minDate, this.maxDate) : null;
9821
+ }
9822
+ this._detector.markForCheck();
9823
+ }
9824
+ onInput(event) {
9825
+ const inputElement = event.target;
9826
+ const inputValue = inputElement.value;
9827
+ this.processInput(inputValue);
9828
+ }
9829
+ processInput(inputValue) {
9830
+ var _a;
9831
+ this.displayValue = inputValue;
9832
+ this.errorMessage = null;
9833
+ if (inputValue.length === this.format.length) {
9834
+ const separator = ((_a = this.format.match(/[^DMY]/)) === null || _a === void 0 ? void 0 : _a[0]) || '.';
9835
+ const regex = new RegExp(`^(\\d{2})${separator}(\\d{2})${separator}(\\d{4})$`);
9836
+ const match = inputValue.match(regex);
9837
+ if (!match)
9838
+ return;
9839
+ let day, month, year;
9840
+ if (this.format.startsWith('DD')) {
9841
+ [day, month, year] = [match[1], match[2], match[3]].map(Number);
9842
+ }
9843
+ else if (this.format.startsWith('MM')) {
9844
+ [month, day, year] = [match[1], match[2], match[3]].map(Number);
9845
+ }
9846
+ else {
9847
+ [year, month, day] = [match[1], match[2], match[3]].map(Number);
9848
+ }
9849
+ month -= 1;
9850
+ let date = new Date(year, month, day);
9851
+ if (isValidDate(date) && isDateInRange(date, this.minDate, this.maxDate)) {
9852
+ this.selectedDate = date;
9853
+ this.updateValue(toOutputFormat(date));
9854
+ }
9855
+ else {
9856
+ const { year: adjYear, month: adjMonth, day: adjDay } = adjustInvalidDate(year, month, day);
9857
+ date = new Date(adjYear, adjMonth, adjDay);
9858
+ if (isDateInRange(date, this.minDate, this.maxDate)) {
9859
+ this.selectedDate = date;
9860
+ this.displayValue = formatDate(date, this.format);
9861
+ this.updateValue(toOutputFormat(date));
9862
+ }
9863
+ else if (this.isSilentValidation) {
9864
+ const clampedDate = clampDate(date, this.minDate, this.maxDate);
9865
+ this.selectedDate = clampedDate;
9866
+ this.displayValue = formatDate(clampedDate, this.format);
9867
+ this.updateValue(toOutputFormat(clampedDate));
9868
+ }
9869
+ else {
9870
+ this.selectedDate = null;
9871
+ this.errorMessage = getRangeErrorMessage(date, this.minDate, this.maxDate);
9872
+ }
9873
+ }
9874
+ }
9875
+ this._detector.markForCheck();
9876
+ }
9877
+ onBlur() {
9878
+ this.onTouched();
9879
+ if (this.displayValue.length > 0 && this.displayValue.length < this.format.length) {
9880
+ this.displayValue = '';
9881
+ this.selectedDate = null;
9882
+ this.updateValue('');
9883
+ this.errorMessage = null;
9884
+ }
9885
+ this._detector.markForCheck();
9886
+ }
9887
+ openCalendar() {
9888
+ if (this.disabled || this._overlayRef)
9889
+ return;
9890
+ const positionStrategy = this._overlay
9891
+ .position()
9892
+ .flexibleConnectedTo(this.dateInput)
9893
+ .withPositions(PositionStrategyEnum[this.popupPosition]);
9894
+ this._overlayRef = this._overlay.create({
9895
+ positionStrategy,
9896
+ hasBackdrop: false
9897
+ });
9898
+ const portal = new ComponentPortal(DateCalendarComponent);
9899
+ const componentRef = this._overlayRef.attach(portal);
9900
+ componentRef.instance.selectedDate = this.selectedDate;
9901
+ componentRef.instance.minDate = this.minDate;
9902
+ componentRef.instance.maxDate = this.maxDate;
9903
+ componentRef.instance.dateSelected.subscribe((date) => this.onDateSelected(date));
9904
+ componentRef.instance.close.subscribe(() => this.closeCalendar());
9905
+ this._clickSubscription = fromEvent(document, 'click')
9906
+ .pipe(filter((event) => {
9907
+ const clickTarget = event.target;
9908
+ return (!!this._overlayRef &&
9909
+ !this._overlayRef.overlayElement.contains(clickTarget) &&
9910
+ !this._elementRef.nativeElement.contains(clickTarget));
9911
+ }))
9912
+ .subscribe(() => this.closeCalendar());
9913
+ }
9914
+ onDateSelected(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
+ this.updateValue(toOutputFormat(clampedDate));
9920
+ if (this.closeAfterSelect) {
9921
+ this.closeCalendar();
9922
+ }
9923
+ this._detector.markForCheck();
9924
+ }
9925
+ closeCalendar() {
9926
+ if (this._overlayRef) {
9927
+ this._overlayRef.dispose();
9928
+ this._overlayRef = null;
9929
+ }
9930
+ this.errorMessage = null;
9931
+ }
9932
+ clickToIconCalendar() {
9933
+ this.openCalendar();
9934
+ }
9935
+ clickToIconClear() {
9936
+ this.displayValue = '';
9937
+ this.selectedDate = null;
9938
+ this.errorMessage = null;
9939
+ this.updateValue('');
9940
+ this.closeCalendar();
9941
+ this._detector.markForCheck();
9942
+ }
9943
+ updateValue(insideValue) {
9944
+ this.changed.emit(insideValue);
9945
+ this.modelChange.emit({ value: insideValue, id: this.uuid });
9946
+ this.onChange(insideValue);
9947
+ this.onTouched();
9948
+ }
9949
+ }
9950
+ InputDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateComponent, deps: [{ token: i1$2.Overlay }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9951
+ InputDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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: [
9952
+ {
9953
+ provide: NG_VALUE_ACCESSOR,
9954
+ useExisting: forwardRef(() => InputDateComponent),
9955
+ multi: true
9956
+ }
9957
+ ], 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 <div class=\"mrx-input-date__icons\" *ngIf=\"!disabled\">\r\n <span\r\n *ngIf=\"isViewCleanIcon\"\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 <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\r\n <mrx-error-message\r\n *ngIf=\"invalid\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-error-message\r\n *ngIf=\"!invalid && errorMessage\"\r\n [invalidMessage]=\"errorMessage\"\r\n ></mrx-error-message>\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"], components: [{ type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$7.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "triggerOnMaskChange"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9958
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateComponent, decorators: [{
9959
+ type: Component,
9960
+ args: [{ selector: 'mrx-input-date', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
9961
+ {
9962
+ provide: NG_VALUE_ACCESSOR,
9963
+ useExisting: forwardRef(() => InputDateComponent),
9964
+ multi: true
9965
+ }
9966
+ ], 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 <div class=\"mrx-input-date__icons\" *ngIf=\"!disabled\">\r\n <span\r\n *ngIf=\"isViewCleanIcon\"\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 <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\r\n <mrx-error-message\r\n *ngIf=\"invalid\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-error-message\r\n *ngIf=\"!invalid && errorMessage\"\r\n [invalidMessage]=\"errorMessage\"\r\n ></mrx-error-message>\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"] }]
9967
+ }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { fields: [{
9968
+ type: Input
9969
+ }], format: [{
9970
+ type: Input
9971
+ }], minDate: [{
9972
+ type: Input
9973
+ }], maxDate: [{
9974
+ type: Input
9975
+ }], isSilentValidation: [{
9976
+ type: Input
9977
+ }], isManualInput: [{
9978
+ type: Input
9979
+ }], closeAfterSelect: [{
9980
+ type: Input
9981
+ }], required: [{
9982
+ type: Input
9983
+ }], size: [{
9984
+ type: Input
9985
+ }], customClasses: [{
9986
+ type: Input
9987
+ }], disabled: [{
9988
+ type: Input
9989
+ }], readonly: [{
9990
+ type: Input
9991
+ }], placeholder: [{
9992
+ type: Input
9993
+ }], popupPosition: [{
9994
+ type: Input
9995
+ }], invalid: [{
9996
+ type: Input
9997
+ }], invalidMessage: [{
9998
+ type: Input
9999
+ }], checkInvalid: [{
10000
+ type: Input
10001
+ }], changed: [{
10002
+ type: Output
10003
+ }], modelChange: [{
10004
+ type: Output
10005
+ }], blurred: [{
10006
+ type: Output
10007
+ }], dateInput: [{
10008
+ type: ViewChild,
10009
+ args: ['dateInput']
10010
+ }] } });
10011
+
10012
+ const maskConfigFunction$3 = () => {
10013
+ return {
10014
+ validation: false,
10015
+ };
10016
+ };
10017
+ class InputDateModule {
10018
+ }
10019
+ InputDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10020
+ InputDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateModule, declarations: [InputDateComponent,
10021
+ DateCalendarComponent], imports: [CommonModule,
10022
+ FormsModule,
10023
+ ErrorMessageModule,
10024
+ LabelModule,
10025
+ SaveStateModule, i1$7.NgxMaskModule], exports: [InputDateComponent] });
10026
+ InputDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateModule, imports: [[
10027
+ CommonModule,
10028
+ FormsModule,
10029
+ ErrorMessageModule,
10030
+ LabelModule,
10031
+ SaveStateModule,
10032
+ NgxMaskModule.forRoot(maskConfigFunction$3)
10033
+ ]] });
10034
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateModule, decorators: [{
10035
+ type: NgModule,
10036
+ args: [{
10037
+ declarations: [
10038
+ InputDateComponent,
10039
+ DateCalendarComponent
10040
+ ],
10041
+ imports: [
10042
+ CommonModule,
10043
+ FormsModule,
10044
+ ErrorMessageModule,
10045
+ LabelModule,
10046
+ SaveStateModule,
10047
+ NgxMaskModule.forRoot(maskConfigFunction$3)
10048
+ ],
10049
+ exports: [
10050
+ InputDateComponent
10051
+ ]
10052
+ }]
10053
+ }] });
10054
+
10055
+ var InputDateTimeSizesEnum;
10056
+ (function (InputDateTimeSizesEnum) {
10057
+ InputDateTimeSizesEnum["small"] = "mrx-input-date-sm";
10058
+ InputDateTimeSizesEnum["medium"] = "mrx-input-date-md";
10059
+ InputDateTimeSizesEnum["large"] = "mrx-input-date-lg";
10060
+ })(InputDateTimeSizesEnum || (InputDateTimeSizesEnum = {}));
10061
+
9343
10062
  dayjs.extend(customParseFormat);
9344
10063
  const validateDateModel = (value) => {
9345
10064
  const splitDateAndTime = value.split(' ');
@@ -9481,10 +10200,22 @@ const cleanDate$1 = (value) => {
9481
10200
  return dayjs(value).second(0).millisecond(0).toISOString();
9482
10201
  };
9483
10202
 
9484
- const formattingToMoscowTimezone = (date, tz$1) => {
9485
- dayjs.extend(utc);
9486
- dayjs.extend(tz);
9487
- return dayjs.utc(date).utcOffset(Timezone$1[tz$1], tz$1 !== 'default').toISOString();
10203
+ dayjs.extend(utc);
10204
+ dayjs.extend(tz);
10205
+ const formattingToMoscowTimezone = (date, tz) => {
10206
+ return dayjs.utc(date).utcOffset(Timezone$1[tz], tz !== 'default').toISOString();
10207
+ };
10208
+ const formattingFromMoscowTimezone = (date, tz) => {
10209
+ const utcTime = dayjs.utc(date);
10210
+ const moscowOffsetMinutes = dayjs().tz('Europe/Moscow').utcOffset();
10211
+ const localOffsetMinutes = dayjs().utcOffset();
10212
+ const offsetDifferenceMinutes = localOffsetMinutes - moscowOffsetMinutes;
10213
+ if (offsetDifferenceMinutes >= 0) {
10214
+ return utcTime.subtract(offsetDifferenceMinutes, 'minute').toISOString();
10215
+ }
10216
+ else {
10217
+ return utcTime.add(Math.abs(offsetDifferenceMinutes), 'minute').toISOString();
10218
+ }
9488
10219
  };
9489
10220
 
9490
10221
  const formattingFromModels = (dateModel, timeModel, timepicker) => {
@@ -9496,6 +10227,8 @@ const formattingFromModels = (dateModel, timeModel, timepicker) => {
9496
10227
  }
9497
10228
  };
9498
10229
 
10230
+ dayjs.extend(utc);
10231
+ dayjs.extend(tz);
9499
10232
  class InputDateTimeComponent {
9500
10233
  constructor() {
9501
10234
  this.value = '';
@@ -9517,18 +10250,19 @@ class InputDateTimeComponent {
9517
10250
  this.required = false;
9518
10251
  this.timepicker = false;
9519
10252
  this.range = false;
9520
- this.minDate = '';
9521
- this.maxDate = '';
9522
10253
  this.timezone = 'default';
9523
10254
  this.inline = false;
9524
10255
  this.isManualInput = true;
9525
10256
  this.addMinTime = false;
9526
10257
  this.addMaxTime = false;
9527
10258
  this.disableValidate = false;
10259
+ this.disableIncludes = false;
9528
10260
  this.container = 'div.page-wrapper';
9529
10261
  this.invalid = false;
9530
10262
  this.invalidMessage = '';
9531
10263
  this.checkInvalid = null;
10264
+ this.minDate = '';
10265
+ this.maxDate = '';
9532
10266
  this.changed = new EventEmitter();
9533
10267
  this.modelChange = new EventEmitter();
9534
10268
  this.blurred = new EventEmitter();
@@ -9554,8 +10288,8 @@ class InputDateTimeComponent {
9554
10288
  range: this.range,
9555
10289
  multipleDatesSeparator: ' - ',
9556
10290
  timepicker: this.timepicker,
9557
- minDate: this.minDate,
9558
- maxDate: this.maxDate,
10291
+ minDate: this.minDate ? formattingFromMoscowTimezone(this.minDate, this.timezone) : '',
10292
+ maxDate: this.maxDate ? formattingFromMoscowTimezone(this.maxDate, this.timezone) : '',
9559
10293
  inline: this.inline,
9560
10294
  position({ $datepicker, $target, $pointer, done }) {
9561
10295
  let popper = createPopper($target, $datepicker, {
@@ -9637,7 +10371,7 @@ class InputDateTimeComponent {
9637
10371
  return `${this.dateModel.view}${this.timeModel.view ? ' ' + this.timeModel.view : ''}`;
9638
10372
  }
9639
10373
  get getClasses() {
9640
- return `${InputDateSizesEnum$1[this.size]} ${this.customClasses} ${this.checkValidClasses}`;
10374
+ return `${InputDateTimeSizesEnum[this.size]} ${this.customClasses} ${this.checkValidClasses}`;
9641
10375
  }
9642
10376
  get isValidModels() {
9643
10377
  return !this.dateModel.invalid && (this.timepicker ? !this.timeModel.invalid : true);
@@ -9647,9 +10381,32 @@ class InputDateTimeComponent {
9647
10381
  return !!((_a = this.dateInput) === null || _a === void 0 ? void 0 : _a.nativeElement.value);
9648
10382
  }
9649
10383
  get checkValidClasses() {
9650
- return this.checkInvalid === false ?
9651
- 'mrx-input-checked-success' :
9652
- this.checkInvalid === true ? 'mrx-input-checked-error' : '';
10384
+ if (!this.required) {
10385
+ return '';
10386
+ }
10387
+ else {
10388
+ return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
10389
+ }
10390
+ }
10391
+ _getDateFromTimezone(date) {
10392
+ if (!date) {
10393
+ return date;
10394
+ }
10395
+ if (this.timezone !== 'default') {
10396
+ const utcTime = dayjs.utc(date);
10397
+ const localOffsetMinutes = dayjs().utcOffset();
10398
+ const moscowOffsetMinutes = dayjs().tz(this.timezone).utcOffset();
10399
+ const offsetDifferenceMinutes = localOffsetMinutes - moscowOffsetMinutes;
10400
+ if (offsetDifferenceMinutes >= 0) {
10401
+ return utcTime.subtract(offsetDifferenceMinutes, 'minute').toISOString();
10402
+ }
10403
+ else {
10404
+ return utcTime.add(Math.abs(offsetDifferenceMinutes), 'minute').toISOString();
10405
+ }
10406
+ }
10407
+ else {
10408
+ return date;
10409
+ }
9653
10410
  }
9654
10411
  _checkExtraTime() {
9655
10412
  if (this.addMaxTime && !this.timepicker) {
@@ -9737,23 +10494,37 @@ class InputDateTimeComponent {
9737
10494
  }
9738
10495
  }
9739
10496
  checkingInvalid(value, maxDate, minDate) {
10497
+ let validMaxDate = '';
10498
+ let validMinDate = '';
10499
+ if (this.timepicker) {
10500
+ validMaxDate = this.maxDate;
10501
+ validMinDate = this.minDate;
10502
+ }
10503
+ else {
10504
+ if (this.maxDate) {
10505
+ validMaxDate = dayjs(this.maxDate).tz(this.timezone).hour(23).minute(59).second(59).millisecond(0).toISOString();
10506
+ }
10507
+ if (this.minDate) {
10508
+ validMinDate = dayjs(this.minDate).tz(this.timezone).hour(0).minute(0).second(0 - 1).millisecond(0).toISOString();
10509
+ }
10510
+ }
9740
10511
  if (this.disableValidate) {
9741
10512
  this.invalidMessageOff();
9742
10513
  return true;
9743
10514
  }
9744
- if (maxDate && (dayjs(value).diff(dayjs(maxDate)) === 0)) {
10515
+ if (validMaxDate && (dayjs(value).diff(dayjs(validMaxDate)) === 0) && !this.disableIncludes) {
9745
10516
  this.invalidMessageOn('Дата и время окончания не может быть равна дате и времени начала');
9746
10517
  return false;
9747
10518
  }
9748
- else if (maxDate && (dayjs(value).diff(dayjs(maxDate)) > 0)) {
10519
+ else if (validMaxDate && (dayjs(value).diff(dayjs(validMaxDate)) > 0)) {
9749
10520
  this.invalidMessageOn('Дата окончания не может быть раньше даты начала');
9750
10521
  return false;
9751
10522
  }
9752
- else if (minDate && (dayjs(value).diff(dayjs(minDate)) === 0)) {
10523
+ else if (validMinDate && (dayjs(value).diff(dayjs(validMinDate)) === 0) && !this.disableIncludes) {
9753
10524
  this.invalidMessageOn('Дата и время окончания не может быть равна дате и времени начала');
9754
10525
  return false;
9755
10526
  }
9756
- else if (minDate && dayjs(value).diff(dayjs(minDate)) < 0) {
10527
+ else if (validMinDate && dayjs(value).diff(dayjs(validMinDate)) < 0) {
9757
10528
  this.invalidMessageOn('Дата окончания не может быть раньше даты начала');
9758
10529
  return false;
9759
10530
  }
@@ -9815,15 +10586,15 @@ class InputDateTimeComponent {
9815
10586
  }
9816
10587
  }
9817
10588
  InputDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9818
- InputDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputDateTimeComponent, selector: "mrx-input-date-time", inputs: { fields: "fields", size: "size", customClasses: "customClasses", dateLabel: "dateLabel", timeLabel: "timeLabel", datePlaceholder: "datePlaceholder", timePlaceholder: "timePlaceholder", disabled: "disabled", readonly: "readonly", required: "required", timepicker: "timepicker", range: "range", minDate: "minDate", maxDate: "maxDate", timezone: "timezone", inline: "inline", isManualInput: "isManualInput", addMinTime: "addMinTime", addMaxTime: "addMaxTime", addMinTimeObj: "addMinTimeObj", addMaxTimeObj: "addMaxTimeObj", disableValidate: "disableValidate", container: "container", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed", modelChange: "modelChange", blurred: "blurred" }, providers: [
10589
+ InputDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputDateTimeComponent, selector: "mrx-input-date-time", inputs: { fields: "fields", size: "size", customClasses: "customClasses", dateLabel: "dateLabel", timeLabel: "timeLabel", datePlaceholder: "datePlaceholder", timePlaceholder: "timePlaceholder", disabled: "disabled", readonly: "readonly", required: "required", timepicker: "timepicker", range: "range", timezone: "timezone", inline: "inline", isManualInput: "isManualInput", addMinTime: "addMinTime", addMaxTime: "addMaxTime", addMinTimeObj: "addMinTimeObj", addMaxTimeObj: "addMaxTimeObj", disableValidate: "disableValidate", disableIncludes: "disableIncludes", container: "container", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", minDate: "minDate", maxDate: "maxDate" }, outputs: { changed: "changed", modelChange: "modelChange", blurred: "blurred" }, providers: [
9819
10590
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputDateTimeComponent), multi: true }
9820
- ], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }, { propertyName: "timeInput", first: true, predicate: ["timeInput"], 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 <mrx-label *ngIf=\"timeLabel || dateLabel\">{{ dateLabel }}</mrx-label>\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]=\"datePlaceholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"'00.00.0000 00:m0'\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"!isManualInput\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n (blur)=\"onBlur($event)\"\r\n />\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{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)!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"], components: [{ type: LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "disabled", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }, { type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$7.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "triggerOnMaskChange"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10591
+ ], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }, { propertyName: "timeInput", first: true, predicate: ["timeInput"], 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 <mrx-label *ngIf=\"timeLabel || dateLabel\">{{ dateLabel }}</mrx-label>\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]=\"datePlaceholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"'00.00.0000 00:m0'\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"!isManualInput\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n (blur)=\"onBlur($event)\"\r\n />\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", 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)!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"], components: [{ type: LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "disabled", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }, { type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$7.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "triggerOnMaskChange"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9821
10592
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateTimeComponent, decorators: [{
9822
10593
  type: Component,
9823
10594
  args: [{ selector: 'mrx-input-date-time', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
9824
10595
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputDateTimeComponent), multi: true }
9825
- ], 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 <mrx-label *ngIf=\"timeLabel || dateLabel\">{{ dateLabel }}</mrx-label>\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]=\"datePlaceholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"'00.00.0000 00:m0'\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"!isManualInput\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n (blur)=\"onBlur($event)\"\r\n />\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{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)!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"] }]
9826
- }], ctorParameters: function () { return []; }, propDecorators: { fields: [{
10596
+ ], 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 <mrx-label *ngIf=\"timeLabel || dateLabel\">{{ dateLabel }}</mrx-label>\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]=\"datePlaceholder\"\r\n [ngModel]=\"getDateValue\"\r\n [mask]=\"'00.00.0000 00:m0'\"\r\n [leadZeroDateTime]=\"true\"\r\n [validation]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"!isManualInput\"\r\n (input)=\"updateDateValue(dateInput)\"\r\n (click)=\"clickToInput(dateInput)\"\r\n (blur)=\"onBlur($event)\"\r\n />\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", 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)!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"] }]
10597
+ }], propDecorators: { fields: [{
9827
10598
  type: Input
9828
10599
  }], size: [{
9829
10600
  type: Input
@@ -9847,10 +10618,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9847
10618
  type: Input
9848
10619
  }], range: [{
9849
10620
  type: Input
9850
- }], minDate: [{
9851
- type: Input
9852
- }], maxDate: [{
9853
- type: Input
9854
10621
  }], timezone: [{
9855
10622
  type: Input
9856
10623
  }], inline: [{
@@ -9867,6 +10634,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9867
10634
  type: Input
9868
10635
  }], disableValidate: [{
9869
10636
  type: Input
10637
+ }], disableIncludes: [{
10638
+ type: Input
9870
10639
  }], container: [{
9871
10640
  type: Input
9872
10641
  }], invalid: [{
@@ -9875,6 +10644,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9875
10644
  type: Input
9876
10645
  }], checkInvalid: [{
9877
10646
  type: Input
10647
+ }], minDate: [{
10648
+ type: Input
10649
+ }], maxDate: [{
10650
+ type: Input
9878
10651
  }], dateInput: [{
9879
10652
  type: ViewChild,
9880
10653
  args: ['dateInput']
@@ -18825,5 +19598,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
18825
19598
  * Generated bundle index. Do not edit.
18826
19599
  */
18827
19600
 
18828
- export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, 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, ColumnComponent, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ContextMenuAttachDirective, ContextMenuComponent, ContextMenuContentComponent, ContextMenuFixedService, ContextMenuItemDirective, ContextMenuModule, ContextMenuService, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DocumentEditorComponent, DocumentEditorModule, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, 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, ModalAlignButtonsEnum, ModalColorEnum, ModalComponent, ModalModule, ModalSizesEnum, MrxAutoSaveActionsEnum, MrxAutosaveService, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PdfViewerComponent, PdfViewerComponentModule, PhoneFormatModule, PhoneFormatPipe, PopupComponent, PopupItemComponent, PopupModule, PopupTriggerDirective, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SaveStoreModule, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, autosaveAddId, autosaveError, autosaveErrorFor, autosaveStart, autosaveStartFor, autosaveStop, autosaveStopFor, autosaveSuccess, autosaveSuccessFor, convertBase64ToFile, countryData, dateTimeFormat, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, wordForm };
19601
+ export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, 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, ColumnComponent, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ContextMenuAttachDirective, ContextMenuComponent, ContextMenuContentComponent, ContextMenuFixedService, ContextMenuItemDirective, ContextMenuModule, ContextMenuService, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DocumentEditorComponent, DocumentEditorModule, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateComponent, InputDateModule, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, 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, ModalAlignButtonsEnum, ModalColorEnum, ModalComponent, ModalModule, ModalSizesEnum, MrxAutoSaveActionsEnum, MrxAutosaveService, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PdfViewerComponent, PdfViewerComponentModule, PhoneFormatModule, PhoneFormatPipe, PopupComponent, PopupItemComponent, PopupModule, PopupTriggerDirective, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SaveStoreModule, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, autosaveAddId, autosaveError, autosaveErrorFor, autosaveStart, autosaveStartFor, autosaveStop, autosaveStopFor, autosaveSuccess, autosaveSuccessFor, convertBase64ToFile, countryData, dateTimeFormat, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, wordForm };
18829
19602
  //# sourceMappingURL=myrta-ui.mjs.map