myrta-ui 17.2.0 → 17.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2022/lib/components/form/input-date-time/helpers/cursor-position.mjs +24 -19
  2. package/esm2022/lib/components/form/input-date-time/helpers/formatting-from-models.mjs +11 -3
  3. package/esm2022/lib/components/form/input-date-time/helpers/validate-value-models.mjs +64 -33
  4. package/esm2022/lib/components/form/input-date-time/helpers/value-parser.mjs +39 -18
  5. package/esm2022/lib/components/form/input-date-time/input-date-time.component.mjs +121 -49
  6. package/esm2022/lib/components/form/input-date-time/models/input-date-time.model.mjs +1 -1
  7. package/fesm2022/myrta-ui.mjs +244 -137
  8. package/fesm2022/myrta-ui.mjs.map +1 -1
  9. package/lib/components/form/input-date-time/helpers/cursor-position.d.ts +4 -1
  10. package/lib/components/form/input-date-time/helpers/validate-value-models.d.ts +5 -5
  11. package/lib/components/form/input-date-time/helpers/value-parser.d.ts +1 -1
  12. package/lib/components/form/input-date-time/input-date-time.component.d.ts +10 -3
  13. package/lib/components/form/input-date-time/models/input-date-time.model.d.ts +1 -1
  14. package/package.json +1 -1
  15. package/esm2022/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.mjs +0 -37
  16. package/esm2022/lib/components/gallery/components/gallery-item/gallery-item.component.mjs +0 -115
  17. package/esm2022/lib/components/gallery/constants/custom-buttons-default.mjs +0 -7
  18. package/esm2022/lib/components/gallery/constants/thumbs-config-default.mjs +0 -5
  19. package/esm2022/lib/components/gallery/gallery.component.mjs +0 -203
  20. package/esm2022/lib/components/gallery/gallery.module.mjs +0 -50
  21. package/esm2022/lib/components/gallery/models/gallery-item.model.mjs +0 -2
  22. package/esm2022/lib/components/gallery/services/gallery.service.mjs +0 -33
  23. package/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.d.ts +0 -20
  24. package/lib/components/gallery/components/gallery-item/gallery-item.component.d.ts +0 -38
  25. package/lib/components/gallery/constants/custom-buttons-default.d.ts +0 -3
  26. package/lib/components/gallery/constants/thumbs-config-default.d.ts +0 -2
  27. package/lib/components/gallery/gallery.component.d.ts +0 -38
  28. package/lib/components/gallery/gallery.module.d.ts +0 -15
  29. package/lib/components/gallery/models/gallery-item.model.d.ts +0 -24
  30. package/lib/components/gallery/services/gallery.service.d.ts +0 -14
@@ -1,23 +1,28 @@
1
- export const markPosition = (start, end, pattern = 'date') => {
2
- if (start) {
3
- if (start === 1) {
4
- return { start: 0, end: 2 };
1
+ export const markPosition = (start, end, format = 'DD.MM.YYYY') => {
2
+ if (start === null)
3
+ return { start: 0, end: 0 };
4
+ // Определяем разделитель
5
+ const separator = format.includes('.') ? '.' : (format.includes('-') ? '-' : '');
6
+ const parts = format.split(separator);
7
+ let currentPos = 0;
8
+ for (const part of parts) {
9
+ const partLength = part.length;
10
+ const partEnd = currentPos + partLength;
11
+ // Если курсор находится внутри текущего сегмента (или на его границе)
12
+ if (start <= partEnd) {
13
+ return { start: currentPos, end: partEnd };
5
14
  }
6
- else if (start === 4) {
7
- return { start: 3, end: 5 };
8
- }
9
- else if (start >= 7 && start <= 9) {
10
- return { start: 6, end: 10 };
11
- }
12
- else if (start === 12) {
13
- return { start: 11, end: 13 };
14
- }
15
- else if (start === 15) {
16
- return { start: 14, end: 16 };
17
- }
18
- else {
19
- return { start, end };
15
+ // Плюсуем длину сегмента и 1 символ разделителя
16
+ currentPos = partEnd + 1;
17
+ }
18
+ // Если есть время (после пробела)
19
+ if (start > format.length) {
20
+ const timeStart = format.length + 1;
21
+ if (start <= timeStart + 2) {
22
+ return { start: timeStart, end: timeStart + 2 }; // Часы
20
23
  }
24
+ return { start: timeStart + 3, end: timeStart + 5 }; // Минуты
21
25
  }
26
+ return { start: start || 0, end: end || 0 };
22
27
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2hlbHBlcnMvY3Vyc29yLXBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQW9CLEVBQUUsR0FBa0IsRUFBRSxVQUFrQixNQUFNLEVBQU8sRUFBRTtJQUN0RyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBQyxDQUFBO1FBQzNCLENBQUM7YUFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUE7UUFDM0IsQ0FBQzthQUFNLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBQyxDQUFBO1FBQzVCLENBQUM7YUFBTSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFDLENBQUE7UUFDN0IsQ0FBQzthQUFNLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUMsQ0FBQTtRQUM3QixDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgbWFya1Bvc2l0aW9uID0gKHN0YXJ0OiBudW1iZXIgfCBudWxsLCBlbmQ6IG51bWJlciB8IG51bGwsIHBhdHRlcm46IHN0cmluZyA9ICdkYXRlJyk6IGFueSA9PiB7XHJcbiAgaWYgKHN0YXJ0KSB7XHJcbiAgICBpZiAoc3RhcnQgPT09IDEpIHtcclxuICAgICAgcmV0dXJuIHtzdGFydDogMCwgZW5kOiAyfVxyXG4gICAgfSBlbHNlIGlmIChzdGFydCA9PT0gNCkge1xyXG4gICAgICByZXR1cm4ge3N0YXJ0OiAzLCBlbmQ6IDV9XHJcbiAgICB9IGVsc2UgaWYgKHN0YXJ0ID49IDcgJiYgc3RhcnQgPD0gOSkge1xyXG4gICAgICByZXR1cm4ge3N0YXJ0OiA2LCBlbmQ6IDEwfVxyXG4gICAgfSBlbHNlIGlmIChzdGFydCA9PT0gMTIpIHtcclxuICAgICAgcmV0dXJuIHtzdGFydDogMTEsIGVuZDogMTN9XHJcbiAgICB9IGVsc2UgaWYgKHN0YXJ0ID09PSAxNSkge1xyXG4gICAgICByZXR1cm4ge3N0YXJ0OiAxNCwgZW5kOiAxNn1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4ge3N0YXJ0LCBlbmR9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2hlbHBlcnMvY3Vyc29yLXBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMxQixLQUFvQixFQUNwQixHQUFrQixFQUNsQixTQUFpQixZQUFZLEVBQ0csRUFBRTtJQUNsQyxJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRWhELHlCQUF5QjtJQUN6QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXRDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVuQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUV4QyxzRUFBc0U7UUFDdEUsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDckIsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdDLENBQUM7UUFFRCxnREFBZ0Q7UUFDaEQsVUFBVSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPO1FBQzFELENBQUM7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVM7SUFDaEUsQ0FBQztJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzlDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBtYXJrUG9zaXRpb24gPSAoXHJcbiAgc3RhcnQ6IG51bWJlciB8IG51bGwsIFxyXG4gIGVuZDogbnVtYmVyIHwgbnVsbCwgXHJcbiAgZm9ybWF0OiBzdHJpbmcgPSAnREQuTU0uWVlZWSdcclxuKTogeyBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciB9ID0+IHtcclxuICBpZiAoc3RhcnQgPT09IG51bGwpIHJldHVybiB7IHN0YXJ0OiAwLCBlbmQ6IDAgfTtcclxuXHJcbiAgLy8g0J7Qv9GA0LXQtNC10LvRj9C10Lwg0YDQsNC30LTQtdC70LjRgtC10LvRjFxyXG4gIGNvbnN0IHNlcGFyYXRvciA9IGZvcm1hdC5pbmNsdWRlcygnLicpID8gJy4nIDogKGZvcm1hdC5pbmNsdWRlcygnLScpID8gJy0nIDogJycpO1xyXG4gIGNvbnN0IHBhcnRzID0gZm9ybWF0LnNwbGl0KHNlcGFyYXRvcik7XHJcbiAgXHJcbiAgbGV0IGN1cnJlbnRQb3MgPSAwO1xyXG5cclxuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcclxuICAgIGNvbnN0IHBhcnRMZW5ndGggPSBwYXJ0Lmxlbmd0aDtcclxuICAgIGNvbnN0IHBhcnRFbmQgPSBjdXJyZW50UG9zICsgcGFydExlbmd0aDtcclxuXHJcbiAgICAvLyDQldGB0LvQuCDQutGD0YDRgdC+0YAg0L3QsNGF0L7QtNC40YLRgdGPINCy0L3Rg9GC0YDQuCDRgtC10LrRg9GJ0LXQs9C+INGB0LXQs9C80LXQvdGC0LAgKNC40LvQuCDQvdCwINC10LPQviDQs9GA0LDQvdC40YbQtSlcclxuICAgIGlmIChzdGFydCA8PSBwYXJ0RW5kKSB7XHJcbiAgICAgIHJldHVybiB7IHN0YXJ0OiBjdXJyZW50UG9zLCBlbmQ6IHBhcnRFbmQgfTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8g0J/Qu9GO0YHRg9C10Lwg0LTQu9C40L3RgyDRgdC10LPQvNC10L3RgtCwINC4IDEg0YHQuNC80LLQvtC7INGA0LDQt9C00LXQu9C40YLQtdC70Y9cclxuICAgIGN1cnJlbnRQb3MgPSBwYXJ0RW5kICsgMTtcclxuICB9XHJcblxyXG4gIC8vINCV0YHQu9C4INC10YHRgtGMINCy0YDQtdC80Y8gKNC/0L7RgdC70LUg0L/RgNC+0LHQtdC70LApXHJcbiAgaWYgKHN0YXJ0ID4gZm9ybWF0Lmxlbmd0aCkge1xyXG4gICAgY29uc3QgdGltZVN0YXJ0ID0gZm9ybWF0Lmxlbmd0aCArIDE7XHJcbiAgICBpZiAoc3RhcnQgPD0gdGltZVN0YXJ0ICsgMikge1xyXG4gICAgICByZXR1cm4geyBzdGFydDogdGltZVN0YXJ0LCBlbmQ6IHRpbWVTdGFydCArIDIgfTsgLy8g0KfQsNGB0YtcclxuICAgIH1cclxuICAgIHJldHVybiB7IHN0YXJ0OiB0aW1lU3RhcnQgKyAzLCBlbmQ6IHRpbWVTdGFydCArIDUgfTsgLy8g0JzQuNC90YPRgtGLXHJcbiAgfVxyXG5cclxuICByZXR1cm4geyBzdGFydDogc3RhcnQgfHwgMCwgZW5kOiBlbmQgfHwgMCB9O1xyXG59OyJdfQ==
@@ -1,10 +1,18 @@
1
1
  import dayjs from 'dayjs';
2
2
  export const formattingFromModels = (dateModel, timeModel, timepicker) => {
3
+ // Если части даты отсутствуют в модели (например, при формате MM.YYYY),
4
+ // подставляем значения по умолчанию, чтобы dayjs мог собрать валидный объект Date.
5
+ const year = dateModel.year || dayjs().format('YYYY');
6
+ const month = dateModel.month || '01';
7
+ const day = dateModel.day || '01'; // Вот здесь магия: если дня нет, берем первое число
8
+ const dateString = `${year}-${month}-${day}`;
3
9
  if (timepicker) {
4
- return dayjs(`${dateModel.year}-${dateModel.month}-${dateModel.day} ${timeModel.hour}:${timeModel.minute}`, 'YYYY-MM-DD HH:mm');
10
+ const hour = timeModel.hour || '00';
11
+ const minute = timeModel.minute || '00';
12
+ return dayjs(`${dateString} ${hour}:${minute}`, 'YYYY-MM-DD HH:mm');
5
13
  }
6
14
  else {
7
- return dayjs(`${dateModel.year}-${dateModel.month}-${dateModel.day}`, 'YYYY-MM-DD');
15
+ return dayjs(dateString, 'YYYY-MM-DD');
8
16
  }
9
17
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGluZy1mcm9tLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWRhdGUtdGltZS9oZWxwZXJzL2Zvcm1hdHRpbmctZnJvbS1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQW9CLEVBQUUsU0FBb0IsRUFBRSxVQUFtQixFQUFTLEVBQUU7SUFDN0csSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE9BQU8sS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUNqSSxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUNyRixDQUFDO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZU1vZGVsLCBUaW1lTW9kZWwgfSBmcm9tICcuL3ZhbGlkYXRlLXZhbHVlLW1vZGVscyc7XHJcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtYXR0aW5nRnJvbU1vZGVscyA9IChkYXRlTW9kZWw6IERhdGVNb2RlbCwgdGltZU1vZGVsOiBUaW1lTW9kZWwsIHRpbWVwaWNrZXI6IGJvb2xlYW4pOiBEYXlqcyA9PiB7XHJcbiAgaWYgKHRpbWVwaWNrZXIpIHtcclxuICAgIHJldHVybiBkYXlqcyhgJHtkYXRlTW9kZWwueWVhcn0tJHtkYXRlTW9kZWwubW9udGh9LSR7ZGF0ZU1vZGVsLmRheX0gJHt0aW1lTW9kZWwuaG91cn06JHt0aW1lTW9kZWwubWludXRlfWAsICdZWVlZLU1NLUREIEhIOm1tJylcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGRheWpzKGAke2RhdGVNb2RlbC55ZWFyfS0ke2RhdGVNb2RlbC5tb250aH0tJHtkYXRlTW9kZWwuZGF5fWAsICdZWVlZLU1NLUREJylcclxuICB9XHJcbn1cclxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGluZy1mcm9tLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWRhdGUtdGltZS9oZWxwZXJzL2Zvcm1hdHRpbmctZnJvbS1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQW9CLEVBQUUsU0FBb0IsRUFBRSxVQUFtQixFQUFTLEVBQUU7SUFDN0cseUVBQXlFO0lBQ3pFLG1GQUFtRjtJQUNuRixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztJQUN0QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLG9EQUFvRDtJQUV2RixNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7SUFFN0MsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLEdBQUcsVUFBVSxJQUFJLElBQUksSUFBSSxNQUFNLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlTW9kZWwsIFRpbWVNb2RlbCB9IGZyb20gJy4vdmFsaWRhdGUtdmFsdWUtbW9kZWxzJztcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZvcm1hdHRpbmdGcm9tTW9kZWxzID0gKGRhdGVNb2RlbDogRGF0ZU1vZGVsLCB0aW1lTW9kZWw6IFRpbWVNb2RlbCwgdGltZXBpY2tlcjogYm9vbGVhbik6IERheWpzID0+IHtcclxuICAvLyDQldGB0LvQuCDRh9Cw0YHRgtC4INC00LDRgtGLINC+0YLRgdGD0YLRgdGC0LLRg9GO0YIg0LIg0LzQvtC00LXQu9C4ICjQvdCw0L/RgNC40LzQtdGALCDQv9GA0Lgg0YTQvtGA0LzQsNGC0LUgTU0uWVlZWSksIFxyXG4gIC8vINC/0L7QtNGB0YLQsNCy0LvRj9C10Lwg0LfQvdCw0YfQtdC90LjRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0YfRgtC+0LHRiyBkYXlqcyDQvNC+0LMg0YHQvtCx0YDQsNGC0Ywg0LLQsNC70LjQtNC90YvQuSDQvtCx0YrQtdC60YIgRGF0ZS5cclxuICBjb25zdCB5ZWFyID0gZGF0ZU1vZGVsLnllYXIgfHwgZGF5anMoKS5mb3JtYXQoJ1lZWVknKTtcclxuICBjb25zdCBtb250aCA9IGRhdGVNb2RlbC5tb250aCB8fCAnMDEnO1xyXG4gIGNvbnN0IGRheSA9IGRhdGVNb2RlbC5kYXkgfHwgJzAxJzsgLy8g0JLQvtGCINC30LTQtdGB0Ywg0LzQsNCz0LjRjzog0LXRgdC70Lgg0LTQvdGPINC90LXRgiwg0LHQtdGA0LXQvCDQv9C10YDQstC+0LUg0YfQuNGB0LvQvlxyXG5cclxuICBjb25zdCBkYXRlU3RyaW5nID0gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuXHJcbiAgaWYgKHRpbWVwaWNrZXIpIHtcclxuICAgIGNvbnN0IGhvdXIgPSB0aW1lTW9kZWwuaG91ciB8fCAnMDAnO1xyXG4gICAgY29uc3QgbWludXRlID0gdGltZU1vZGVsLm1pbnV0ZSB8fCAnMDAnO1xyXG4gICAgcmV0dXJuIGRheWpzKGAke2RhdGVTdHJpbmd9ICR7aG91cn06JHttaW51dGV9YCwgJ1lZWVktTU0tREQgSEg6bW0nKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGRheWpzKGRhdGVTdHJpbmcsICdZWVlZLU1NLUREJyk7XHJcbiAgfVxyXG59Il19
@@ -1,60 +1,91 @@
1
1
  import dayjs from 'dayjs';
2
2
  import customParseFormat from 'dayjs/plugin/customParseFormat';
3
3
  dayjs.extend(customParseFormat);
4
- export const validateDateModel = (value) => {
5
- const splitDateAndTime = value.split(' ');
6
- const dateArray = splitDateAndTime[0].split('.');
7
- const day = validateDay(dateArray[0]) || '';
8
- const month = validateMonth(dateArray[1]) || '';
9
- const year = dateArray[2] || '';
4
+ export const validateDateModel = (value, format = 'DD.MM.YYYY') => {
5
+ if (!value)
6
+ return { view: '', day: '', month: '', year: '', invalid: true };
7
+ // Отделяем дату от времени, если оно есть
8
+ const dateStr = value.split(' ')[0];
9
+ // Динамически определяем разделитель (точка, дефис или слэш)
10
+ const separator = format.includes('.') ? '.' : (format.includes('-') ? '-' : (format.includes('/') ? '/' : ''));
11
+ const formatParts = format.split(separator);
12
+ const valueParts = dateStr.split(separator);
13
+ let day = '', month = '', year = '';
14
+ // Распределяем значения по частям модели на основе формата
15
+ formatParts.forEach((part, index) => {
16
+ const val = valueParts[index] || '';
17
+ if (part.toUpperCase().includes('D'))
18
+ day = validateDay(val);
19
+ if (part.toUpperCase().includes('M'))
20
+ month = validateMonth(val);
21
+ if (part.toUpperCase().includes('Y'))
22
+ year = val;
23
+ });
24
+ // Собираем view строго по формату, используя отвалидированные части
25
+ const view = formatParts
26
+ .map((part) => {
27
+ if (part.toUpperCase().includes('D'))
28
+ return day;
29
+ if (part.toUpperCase().includes('M'))
30
+ return month;
31
+ if (part.toUpperCase().includes('Y'))
32
+ return year;
33
+ return '';
34
+ })
35
+ .filter(val => val !== '')
36
+ .join(separator);
37
+ // Валидация: длина строки должна соответствовать формату, и дата должна быть реальной
38
+ const isFullLength = dateStr.length === format.length;
39
+ const isValidDate = dayjs(dateStr, format, true).isValid();
10
40
  return {
11
- view: `${day}${month ? '.' + month : ''}${year ? '.' + year : value[5] ? '.' + '' : ''}`,
12
- day: day,
13
- month: month,
14
- year: year,
15
- invalid: !(dayjs(`${dateArray[2]}-${dateArray[1]}-${dateArray[0]}`, 'YYYY-MM-DD').isValid() && splitDateAndTime[0].length === 10)
41
+ view,
42
+ day,
43
+ month,
44
+ year,
45
+ invalid: !(isFullLength && isValidDate)
16
46
  };
17
47
  };
18
48
  export const validateTimeModel = (value) => {
19
49
  const splitDateAndTime = value.split(' ');
20
- const timeArray = splitDateAndTime[1] ? splitDateAndTime[1].split(':') : '';
21
- const hour = validateHours(timeArray[0]) || '';
22
- const minutes = validateMinutes(timeArray[1]) || '';
50
+ const timeStr = splitDateAndTime[1] || '';
51
+ const timeArray = timeStr ? timeStr.split(':') : [];
52
+ const hour = validateHours(timeArray[0] || '');
53
+ const minutes = validateMinutes(timeArray[1] || '');
23
54
  return {
24
- view: `${hour}${minutes ? ':' + minutes : ''}`,
55
+ view: hour ? `${hour}${minutes ? ':' + minutes : ''}` : '',
25
56
  hour: hour,
26
57
  minute: minutes,
27
- invalid: !!splitDateAndTime[1] ? splitDateAndTime[1].length !== 5 : true
58
+ invalid: timeStr ? timeStr.length !== 5 : true
28
59
  };
29
60
  };
30
61
  export const validateDay = (value) => {
31
- if (Number(value) > 31) {
62
+ if (!value)
63
+ return '';
64
+ const num = Number(value);
65
+ if (num > 31)
32
66
  return '31';
33
- }
34
- if (value === '00') {
67
+ if (value === '00')
35
68
  return '01';
36
- }
37
69
  return value;
38
70
  };
39
71
  export const validateMonth = (value) => {
40
- if (Number(value) > 12) {
72
+ if (!value)
73
+ return '';
74
+ const num = Number(value);
75
+ if (num > 12)
41
76
  return '12';
42
- }
43
- if (value === '00') {
77
+ if (value === '00')
44
78
  return '01';
45
- }
46
79
  return value;
47
80
  };
48
81
  export const validateHours = (value) => {
49
- if (Number(value) > 23) {
50
- return '23';
51
- }
52
- return value;
82
+ if (!value)
83
+ return '';
84
+ return Number(value) > 23 ? '23' : value;
53
85
  };
54
86
  export const validateMinutes = (value) => {
55
- if (Number(value) > 59) {
56
- return '59';
57
- }
58
- return value;
87
+ if (!value)
88
+ return '';
89
+ return Number(value) > 59 ? '59' : value;
59
90
  };
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdmFsdWUtbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2hlbHBlcnMvdmFsaWRhdGUtdmFsdWUtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUUvQixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBYSxFQUFFO0lBQzVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6QyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQy9DLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFFL0IsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFH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bnRlbnQiOlsiaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XHJcblxyXG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpXHJcblxyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVEYXRlTW9kZWwgPSAodmFsdWU6IHN0cmluZyk6IERhdGVNb2RlbCA9PiB7XHJcbiAgY29uc3Qgc3BsaXREYXRlQW5kVGltZSA9IHZhbHVlLnNwbGl0KCcgJylcclxuICBjb25zdCBkYXRlQXJyYXkgPSBzcGxpdERhdGVBbmRUaW1lWzBdLnNwbGl0KCcuJylcclxuICBjb25zdCBkYXkgPSB2YWxpZGF0ZURheShkYXRlQXJyYXlbMF0pIHx8ICcnXHJcbiAgY29uc3QgbW9udGggPSB2YWxpZGF0ZU1vbnRoKGRhdGVBcnJheVsxXSkgfHwgJydcclxuICBjb25zdCB5ZWFyID0gZGF0ZUFycmF5WzJdIHx8ICcnXHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2aWV3OiBgJHtkYXl9JHttb250aCA/ICcuJyArIG1vbnRoIDogJyd9JHt5ZWFyID8gJy4nICsgeWVhciA6IHZhbHVlWzVdID8gJy4nICsgJycgOiAnJ31gLFxyXG4gICAgZGF5OiBkYXksXHJcbiAgICBtb250aDogbW9udGgsXHJcbiAgICB5ZWFyOiB5ZWFyLFxyXG4gICAgaW52YWxpZDogIShkYXlqcyhgJHtkYXRlQXJyYXlbMl19LSR7ZGF0ZUFycmF5WzFdfS0ke2RhdGVBcnJheVswXX1gLCAnWVlZWS1NTS1ERCcpLmlzVmFsaWQoKSAmJiBzcGxpdERhdGVBbmRUaW1lWzBdLmxlbmd0aCA9PT0gMTApXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVUaW1lTW9kZWwgPSAodmFsdWU6IHN0cmluZyk6IFRpbWVNb2RlbCA9PiB7XHJcbiAgY29uc3Qgc3BsaXREYXRlQW5kVGltZSA9IHZhbHVlLnNwbGl0KCcgJylcclxuICBjb25zdCB0aW1lQXJyYXkgPSBzcGxpdERhdGVBbmRUaW1lWzFdID8gc3BsaXREYXRlQW5kVGltZVsxXS5zcGxpdCgnOicpIDogJydcclxuICBjb25zdCBob3VyID0gdmFsaWRhdGVIb3Vycyh0aW1lQXJyYXlbMF0pIHx8ICcnXHJcbiAgY29uc3QgbWludXRlcyA9IHZhbGlkYXRlTWludXRlcyh0aW1lQXJyYXlbMV0pIHx8ICcnXHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2aWV3OiBgJHtob3VyfSR7bWludXRlcyA/ICc6JyArIG1pbnV0ZXMgOiAnJ31gLFxyXG4gICAgaG91cjogaG91cixcclxuICAgIG1pbnV0ZTogbWludXRlcyxcclxuICAgIGludmFsaWQ6ICEhc3BsaXREYXRlQW5kVGltZVsxXSA/IHNwbGl0RGF0ZUFuZFRpbWVbMV0ubGVuZ3RoICE9PSA1IDogdHJ1ZVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRGF5ID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGlmIChOdW1iZXIodmFsdWUpID4gMzEpIHtcclxuICAgIHJldHVybiAnMzEnXHJcbiAgfVxyXG4gIGlmICh2YWx1ZSA9PT0gJzAwJykge1xyXG4gICAgcmV0dXJuICcwMSdcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1vbnRoID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGlmIChOdW1iZXIodmFsdWUpID4gMTIpIHtcclxuICAgIHJldHVybiAnMTInXHJcbiAgfVxyXG4gIGlmICh2YWx1ZSA9PT0gJzAwJykge1xyXG4gICAgcmV0dXJuICcwMSdcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlXHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVIb3VycyA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICBpZiAoTnVtYmVyKHZhbHVlKSA+IDIzKSB7XHJcbiAgICByZXR1cm4gJzIzJ1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWVcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTWludXRlcyA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICBpZiAoTnVtYmVyKHZhbHVlKSA+IDU5KSB7XHJcbiAgICByZXR1cm4gJzU5J1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGF0ZU1vZGVsID0ge1xyXG4gIHZpZXc6IHN0cmluZyxcclxuICBkYXk6IHN0cmluZyxcclxuICBtb250aDogc3RyaW5nLFxyXG4gIHllYXI6IHN0cmluZyxcclxuICBpbnZhbGlkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRpbWVNb2RlbCA9IHtcclxuICB2aWV3OiBzdHJpbmcsXHJcbiAgaG91cjogc3RyaW5nLFxyXG4gIG1pbnV0ZTogc3RyaW5nLFxyXG4gIGludmFsaWQ6IGJvb2xlYW5cclxufVxyXG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdmFsdWUtbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2hlbHBlcnMvdmFsaWRhdGUtdmFsdWUtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxTQUFpQixZQUFZLEVBQWEsRUFBRTtJQUMzRixJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUU3RSwwQ0FBMEM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwQyw2REFBNkQ7SUFDN0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEgsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTVDLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEMsMkRBQTJEO0lBQzNELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILG9FQUFvRTtJQUNwRSxNQUFNLElBQUksR0FBRyxXQUFXO1NBQ3JCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1osSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO1NBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVuQixzRkFBc0Y7SUFDdEYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRTNELE9BQU87UUFDTCxJQUFJO1FBQ0osR0FBRztRQUNILEtBQUs7UUFDTCxJQUFJO1FBQ0osT0FBTyxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDO0tBQ3hDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBYSxFQUFFO0lBQzVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFcEQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBELE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzFELElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLE9BQU87UUFDZixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtLQUMvQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYSxFQUFVLEVBQUU7SUFDbkQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzFCLElBQUksS0FBSyxLQUFLLElBQUk7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNoQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQ3JELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLElBQUksR0FBRyxHQUFHLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQztJQUMxQixJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRTtJQUNyRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBYSxFQUFVLEVBQUU7SUFDdkQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5cclxuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuXHJcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZURhdGVNb2RlbCA9ICh2YWx1ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyA9ICdERC5NTS5ZWVlZJyk6IERhdGVNb2RlbCA9PiB7XHJcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHsgdmlldzogJycsIGRheTogJycsIG1vbnRoOiAnJywgeWVhcjogJycsIGludmFsaWQ6IHRydWUgfTtcclxuXHJcbiAgLy8g0J7RgtC00LXQu9GP0LXQvCDQtNCw0YLRgyDQvtGCINCy0YDQtdC80LXQvdC4LCDQtdGB0LvQuCDQvtC90L4g0LXRgdGC0YxcclxuICBjb25zdCBkYXRlU3RyID0gdmFsdWUuc3BsaXQoJyAnKVswXTtcclxuICBcclxuICAvLyDQlNC40L3QsNC80LjRh9C10YHQutC4INC+0L/RgNC10LTQtdC70Y/QtdC8INGA0LDQt9C00LXQu9C40YLQtdC70YwgKNGC0L7Rh9C60LAsINC00LXRhNC40YEg0LjQu9C4INGB0LvRjdGIKVxyXG4gIGNvbnN0IHNlcGFyYXRvciA9IGZvcm1hdC5pbmNsdWRlcygnLicpID8gJy4nIDogKGZvcm1hdC5pbmNsdWRlcygnLScpID8gJy0nIDogKGZvcm1hdC5pbmNsdWRlcygnLycpID8gJy8nIDogJycpKTtcclxuICBjb25zdCBmb3JtYXRQYXJ0cyA9IGZvcm1hdC5zcGxpdChzZXBhcmF0b3IpO1xyXG4gIGNvbnN0IHZhbHVlUGFydHMgPSBkYXRlU3RyLnNwbGl0KHNlcGFyYXRvcik7XHJcblxyXG4gIGxldCBkYXkgPSAnJywgbW9udGggPSAnJywgeWVhciA9ICcnO1xyXG5cclxuICAvLyDQoNCw0YHQv9GA0LXQtNC10LvRj9C10Lwg0LfQvdCw0YfQtdC90LjRjyDQv9C+INGH0LDRgdGC0Y/QvCDQvNC+0LTQtdC70Lgg0L3QsCDQvtGB0L3QvtCy0LUg0YTQvtGA0LzQsNGC0LBcclxuICBmb3JtYXRQYXJ0cy5mb3JFYWNoKChwYXJ0LCBpbmRleCkgPT4ge1xyXG4gICAgY29uc3QgdmFsID0gdmFsdWVQYXJ0c1tpbmRleF0gfHwgJyc7XHJcbiAgICBpZiAocGFydC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdEJykpIGRheSA9IHZhbGlkYXRlRGF5KHZhbCk7XHJcbiAgICBpZiAocGFydC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdNJykpIG1vbnRoID0gdmFsaWRhdGVNb250aCh2YWwpO1xyXG4gICAgaWYgKHBhcnQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnWScpKSB5ZWFyID0gdmFsO1xyXG4gIH0pO1xyXG5cclxuICAvLyDQodC+0LHQuNGA0LDQtdC8IHZpZXcg0YHRgtGA0L7Qs9C+INC/0L4g0YTQvtGA0LzQsNGC0YMsINC40YHQv9C+0LvRjNC30YPRjyDQvtGC0LLQsNC70LjQtNC40YDQvtCy0LDQvdC90YvQtSDRh9Cw0YHRgtC4XHJcbiAgY29uc3QgdmlldyA9IGZvcm1hdFBhcnRzXHJcbiAgICAubWFwKChwYXJ0KSA9PiB7XHJcbiAgICAgIGlmIChwYXJ0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ0QnKSkgcmV0dXJuIGRheTtcclxuICAgICAgaWYgKHBhcnQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnTScpKSByZXR1cm4gbW9udGg7XHJcbiAgICAgIGlmIChwYXJ0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ1knKSkgcmV0dXJuIHllYXI7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0pXHJcbiAgICAuZmlsdGVyKHZhbCA9PiB2YWwgIT09ICcnKVxyXG4gICAgLmpvaW4oc2VwYXJhdG9yKTtcclxuXHJcbiAgLy8g0JLQsNC70LjQtNCw0YbQuNGPOiDQtNC70LjQvdCwINGB0YLRgNC+0LrQuCDQtNC+0LvQttC90LAg0YHQvtC+0YLQstC10YLRgdGC0LLQvtCy0LDRgtGMINGE0L7RgNC80LDRgtGDLCDQuCDQtNCw0YLQsCDQtNC+0LvQttC90LAg0LHRi9GC0Ywg0YDQtdCw0LvRjNC90L7QuVxyXG4gIGNvbnN0IGlzRnVsbExlbmd0aCA9IGRhdGVTdHIubGVuZ3RoID09PSBmb3JtYXQubGVuZ3RoO1xyXG4gIGNvbnN0IGlzVmFsaWREYXRlID0gZGF5anMoZGF0ZVN0ciwgZm9ybWF0LCB0cnVlKS5pc1ZhbGlkKCk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2aWV3LFxyXG4gICAgZGF5LFxyXG4gICAgbW9udGgsXHJcbiAgICB5ZWFyLFxyXG4gICAgaW52YWxpZDogIShpc0Z1bGxMZW5ndGggJiYgaXNWYWxpZERhdGUpXHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVRpbWVNb2RlbCA9ICh2YWx1ZTogc3RyaW5nKTogVGltZU1vZGVsID0+IHtcclxuICBjb25zdCBzcGxpdERhdGVBbmRUaW1lID0gdmFsdWUuc3BsaXQoJyAnKTtcclxuICBjb25zdCB0aW1lU3RyID0gc3BsaXREYXRlQW5kVGltZVsxXSB8fCAnJztcclxuICBjb25zdCB0aW1lQXJyYXkgPSB0aW1lU3RyID8gdGltZVN0ci5zcGxpdCgnOicpIDogW107XHJcbiAgXHJcbiAgY29uc3QgaG91ciA9IHZhbGlkYXRlSG91cnModGltZUFycmF5WzBdIHx8ICcnKTtcclxuICBjb25zdCBtaW51dGVzID0gdmFsaWRhdGVNaW51dGVzKHRpbWVBcnJheVsxXSB8fCAnJyk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2aWV3OiBob3VyID8gYCR7aG91cn0ke21pbnV0ZXMgPyAnOicgKyBtaW51dGVzIDogJyd9YCA6ICcnLFxyXG4gICAgaG91cjogaG91cixcclxuICAgIG1pbnV0ZTogbWludXRlcyxcclxuICAgIGludmFsaWQ6IHRpbWVTdHIgPyB0aW1lU3RyLmxlbmd0aCAhPT0gNSA6IHRydWVcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRGF5ID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xyXG4gIGlmIChudW0gPiAzMSkgcmV0dXJuICczMSc7XHJcbiAgaWYgKHZhbHVlID09PSAnMDAnKSByZXR1cm4gJzAxJztcclxuICByZXR1cm4gdmFsdWU7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNb250aCA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcbiAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcclxuICBpZiAobnVtID4gMTIpIHJldHVybiAnMTInO1xyXG4gIGlmICh2YWx1ZSA9PT0gJzAwJykgcmV0dXJuICcwMSc7XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlSG91cnMgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xyXG4gIHJldHVybiBOdW1iZXIodmFsdWUpID4gMjMgPyAnMjMnIDogdmFsdWU7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNaW51dGVzID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuICByZXR1cm4gTnVtYmVyKHZhbHVlKSA+IDU5ID8gJzU5JyA6IHZhbHVlO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRlTW9kZWwge1xyXG4gIHZpZXc6IHN0cmluZztcclxuICBkYXk6IHN0cmluZztcclxuICBtb250aDogc3RyaW5nO1xyXG4gIHllYXI6IHN0cmluZztcclxuICBpbnZhbGlkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVNb2RlbCB7XHJcbiAgdmlldzogc3RyaW5nO1xyXG4gIGhvdXI6IHN0cmluZztcclxuICBtaW51dGU6IHN0cmluZztcclxuICBpbnZhbGlkOiBib29sZWFuO1xyXG59Il19
@@ -2,32 +2,53 @@ import { Timezone } from '../enum/timezone';
2
2
  import dayjs from 'dayjs';
3
3
  import tz from 'dayjs/plugin/timezone';
4
4
  import utc from 'dayjs/plugin/utc';
5
- export const dateModelValueParse = (value, timezone) => {
6
- dayjs.extend(utc);
7
- dayjs.extend(tz);
8
- const date = timezone === 'default' ? dayjs(value) : dayjs.utc(value).utcOffset(Timezone[timezone]);
5
+ dayjs.extend(utc);
6
+ dayjs.extend(tz);
7
+ export const dateModelValueParse = (value, timezone, format = 'DD.MM.YYYY' // Добавили формат с дефолтным значением
8
+ ) => {
9
+ if (!value) {
10
+ return { view: '', day: '', month: '', year: '', invalid: true };
11
+ }
12
+ const date = timezone === 'default'
13
+ ? dayjs(value)
14
+ : dayjs.utc(value).utcOffset(Timezone[timezone]);
15
+ if (!date.isValid()) {
16
+ return { view: '', day: '', month: '', year: '', invalid: true };
17
+ }
9
18
  const day = date.date();
10
19
  const month = date.month() + 1;
11
20
  const year = date.year();
12
- const formattedDay = String(day).length === 2 ? String(day) : String('0' + day);
13
- const formattedMonth = String(month).length === 2 ? String(month) : String('0' + month);
14
- const dateString = `${String(year)}.${String(formattedMonth)}.${String(formattedDay)}`;
21
+ const formattedDay = String(day).padStart(2, '0');
22
+ const formattedMonth = String(month).padStart(2, '0');
23
+ const formattedYear = String(year);
24
+ // Формируем view динамически на основе переданного формата
25
+ // Это предотвратит появление лишних цифр (например, дня, если он не нужен)
26
+ const view = format
27
+ .replace(/DD/g, formattedDay)
28
+ .replace(/MM/g, formattedMonth)
29
+ .replace(/YYYY/g, formattedYear);
15
30
  return {
16
- view: dayjs(dateString).format('DD.MM.YYYY'),
17
- day: formattedDay,
18
- month: formattedMonth,
19
- year: String(year),
20
- invalid: !(dayjs(dateString).isValid() && dateString.length === 10)
31
+ view: view,
32
+ day: format.includes('D') ? formattedDay : '',
33
+ month: format.includes('M') ? formattedMonth : '',
34
+ year: format.includes('Y') ? formattedYear : '',
35
+ invalid: false
21
36
  };
22
37
  };
23
38
  export const timeModelValueParse = (value, timezone) => {
24
- dayjs.extend(utc);
25
- dayjs.extend(tz);
26
- const date = timezone === 'default' ? dayjs(value) : dayjs.utc(value).utcOffset(Timezone[timezone]);
39
+ if (!value) {
40
+ return { view: '', hour: '', minute: '', invalid: true };
41
+ }
42
+ const date = timezone === 'default'
43
+ ? dayjs(value)
44
+ : dayjs.utc(value).utcOffset(Timezone[timezone]);
45
+ if (!date.isValid()) {
46
+ return { view: '', hour: '', minute: '', invalid: true };
47
+ }
27
48
  const hour = date.hour();
28
49
  const minute = date.minute();
29
- const formattedHour = String(hour).length === 2 ? String(hour) : String('0' + hour);
30
- const formattedMinute = String(minute).length === 2 ? String(minute) : String('0' + minute);
50
+ const formattedHour = String(hour).padStart(2, '0');
51
+ const formattedMinute = String(minute).padStart(2, '0');
31
52
  const timeString = `${formattedHour}:${formattedMinute}`;
32
53
  return {
33
54
  view: timeString,
@@ -36,4 +57,4 @@ export const timeModelValueParse = (value, timezone) => {
36
57
  invalid: timeString.length !== 5
37
58
  };
38
59
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2hlbHBlcnMvdmFsdWUtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBYSxFQUFFLFFBQXNCLEVBQWEsRUFBRTtJQUN0RixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFaEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNuRyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDeEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUMvRSxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFBO0lBQ3ZGLE1BQU0sVUFBVSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQTtJQUV0RixPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQzVDLEdBQUcsRUFBRSxZQUFZO1FBQ2pCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDO0tBQ3BFLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxRQUFzQixFQUFhLEVBQUU7SUFDdEYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNqQixLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRWhCLE1BQU0sSUFBSSxHQUFHLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFFbkcsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUM1QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ25GLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUE7SUFDM0YsTUFBTSxVQUFVLEdBQUcsR0FBRyxhQUFhLElBQUksZUFBZSxFQUFFLENBQUE7SUFFeEQsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxhQUFhO1FBQ25CLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE9BQU8sRUFBRSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUM7S0FDakMsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVNb2RlbCwgVGltZU1vZGVsIH0gZnJvbSAnLi92YWxpZGF0ZS12YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBUaW1lem9uZSwgVGltZXpvbmVUeXBlIH0gZnJvbSAnLi4vZW51bS90aW1lem9uZSc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB0eiBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRhdGVNb2RlbFZhbHVlUGFyc2UgPSAodmFsdWU6IHN0cmluZywgdGltZXpvbmU6IFRpbWV6b25lVHlwZSk6IERhdGVNb2RlbCA9PiB7XHJcbiAgZGF5anMuZXh0ZW5kKHV0YylcclxuICBkYXlqcy5leHRlbmQodHopXHJcblxyXG4gIGNvbnN0IGRhdGUgPSB0aW1lem9uZSA9PT0gJ2RlZmF1bHQnID8gZGF5anModmFsdWUpIDogZGF5anMudXRjKHZhbHVlKS51dGNPZmZzZXQoVGltZXpvbmVbdGltZXpvbmVdKVxyXG4gIGNvbnN0IGRheSA9IGRhdGUuZGF0ZSgpXHJcbiAgY29uc3QgbW9udGggPSBkYXRlLm1vbnRoKCkgKyAxXHJcbiAgY29uc3QgeWVhciA9IGRhdGUueWVhcigpXHJcbiAgY29uc3QgZm9ybWF0dGVkRGF5ID0gU3RyaW5nKGRheSkubGVuZ3RoID09PSAyID8gU3RyaW5nKGRheSkgOiBTdHJpbmcoJzAnICsgZGF5KVxyXG4gIGNvbnN0IGZvcm1hdHRlZE1vbnRoID0gU3RyaW5nKG1vbnRoKS5sZW5ndGggPT09IDIgPyBTdHJpbmcobW9udGgpIDogU3RyaW5nKCcwJyArIG1vbnRoKVxyXG4gIGNvbnN0IGRhdGVTdHJpbmcgPSBgJHtTdHJpbmcoeWVhcil9LiR7U3RyaW5nKGZvcm1hdHRlZE1vbnRoKX0uJHtTdHJpbmcoZm9ybWF0dGVkRGF5KX1gXHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2aWV3OiBkYXlqcyhkYXRlU3RyaW5nKS5mb3JtYXQoJ0RELk1NLllZWVknKSxcclxuICAgIGRheTogZm9ybWF0dGVkRGF5LFxyXG4gICAgbW9udGg6IGZvcm1hdHRlZE1vbnRoLFxyXG4gICAgeWVhcjogU3RyaW5nKHllYXIpLFxyXG4gICAgaW52YWxpZDogIShkYXlqcyhkYXRlU3RyaW5nKS5pc1ZhbGlkKCkgJiYgZGF0ZVN0cmluZy5sZW5ndGggPT09IDEwKVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHRpbWVNb2RlbFZhbHVlUGFyc2UgPSAodmFsdWU6IHN0cmluZywgdGltZXpvbmU6IFRpbWV6b25lVHlwZSk6IFRpbWVNb2RlbCA9PiB7XHJcbiAgZGF5anMuZXh0ZW5kKHV0YylcclxuICBkYXlqcy5leHRlbmQodHopXHJcblxyXG4gIGNvbnN0IGRhdGUgPSB0aW1lem9uZSA9PT0gJ2RlZmF1bHQnID8gZGF5anModmFsdWUpIDogZGF5anMudXRjKHZhbHVlKS51dGNPZmZzZXQoVGltZXpvbmVbdGltZXpvbmVdKVxyXG5cclxuICBjb25zdCBob3VyID0gZGF0ZS5ob3VyKClcclxuICBjb25zdCBtaW51dGUgPSBkYXRlLm1pbnV0ZSgpXHJcbiAgY29uc3QgZm9ybWF0dGVkSG91ciA9IFN0cmluZyhob3VyKS5sZW5ndGggPT09IDIgPyBTdHJpbmcoaG91cikgOiBTdHJpbmcoJzAnICsgaG91cilcclxuICBjb25zdCBmb3JtYXR0ZWRNaW51dGUgPSBTdHJpbmcobWludXRlKS5sZW5ndGggPT09IDIgPyBTdHJpbmcobWludXRlKSA6IFN0cmluZygnMCcgKyBtaW51dGUpXHJcbiAgY29uc3QgdGltZVN0cmluZyA9IGAke2Zvcm1hdHRlZEhvdXJ9OiR7Zm9ybWF0dGVkTWludXRlfWBcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIHZpZXc6IHRpbWVTdHJpbmcsXHJcbiAgICBob3VyOiBmb3JtYXR0ZWRIb3VyLFxyXG4gICAgbWludXRlOiBmb3JtYXR0ZWRNaW51dGUsXHJcbiAgICBpbnZhbGlkOiB0aW1lU3RyaW5nLmxlbmd0aCAhPT0gNVxyXG4gIH1cclxufVxyXG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2hlbHBlcnMvdmFsdWUtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBRW5DLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVqQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxLQUFhLEVBQ2IsUUFBc0IsRUFDdEIsU0FBaUIsWUFBWSxDQUFDLHdDQUF3QztFQUMzRCxFQUFFO0lBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLEtBQUssU0FBUztRQUNqQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDcEIsT0FBTyxFQUFFLElB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RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsTUFBTSxFQUFFLGVBQWU7UUFDdkIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZU1vZGVsLCBUaW1lTW9kZWwgfSBmcm9tICcuL3ZhbGlkYXRlLXZhbHVlLW1vZGVscyc7XHJcbmltcG9ydCB7IFRpbWV6b25lLCBUaW1lem9uZVR5cGUgfSBmcm9tICcuLi9lbnVtL3RpbWV6b25lJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHR6IGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcblxyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHR6KTtcclxuXHJcbmV4cG9ydCBjb25zdCBkYXRlTW9kZWxWYWx1ZVBhcnNlID0gKFxyXG4gIHZhbHVlOiBzdHJpbmcsIFxyXG4gIHRpbWV6b25lOiBUaW1lem9uZVR5cGUsIFxyXG4gIGZvcm1hdDogc3RyaW5nID0gJ0RELk1NLllZWVknIC8vINCU0L7QsdCw0LLQuNC70Lgg0YTQvtGA0LzQsNGCINGBINC00LXRhNC+0LvRgtC90YvQvCDQt9C90LDRh9C10L3QuNC10LxcclxuKTogRGF0ZU1vZGVsID0+IHtcclxuICBpZiAoIXZhbHVlKSB7XHJcbiAgICByZXR1cm4geyB2aWV3OiAnJywgZGF5OiAnJywgbW9udGg6ICcnLCB5ZWFyOiAnJywgaW52YWxpZDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGF0ZSA9IHRpbWV6b25lID09PSAnZGVmYXVsdCcgXHJcbiAgICA/IGRheWpzKHZhbHVlKSBcclxuICAgIDogZGF5anMudXRjKHZhbHVlKS51dGNPZmZzZXQoVGltZXpvbmVbdGltZXpvbmVdKTtcclxuXHJcbiAgaWYgKCFkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgcmV0dXJuIHsgdmlldzogJycsIGRheTogJycsIG1vbnRoOiAnJywgeWVhcjogJycsIGludmFsaWQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGRheSA9IGRhdGUuZGF0ZSgpO1xyXG4gIGNvbnN0IG1vbnRoID0gZGF0ZS5tb250aCgpICsgMTtcclxuICBjb25zdCB5ZWFyID0gZGF0ZS55ZWFyKCk7XHJcblxyXG4gIGNvbnN0IGZvcm1hdHRlZERheSA9IFN0cmluZyhkYXkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgY29uc3QgZm9ybWF0dGVkTW9udGggPSBTdHJpbmcobW9udGgpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgY29uc3QgZm9ybWF0dGVkWWVhciA9IFN0cmluZyh5ZWFyKTtcclxuXHJcbiAgLy8g0KTQvtGA0LzQuNGA0YPQtdC8IHZpZXcg0LTQuNC90LDQvNC40YfQtdGB0LrQuCDQvdCwINC+0YHQvdC+0LLQtSDQv9C10YDQtdC00LDQvdC90L7Qs9C+INGE0L7RgNC80LDRgtCwXHJcbiAgLy8g0K3RgtC+INC/0YDQtdC00L7RgtCy0YDQsNGC0LjRgiDQv9C+0Y/QstC70LXQvdC40LUg0LvQuNGI0L3QuNGFINGG0LjRhNGAICjQvdCw0L/RgNC40LzQtdGALCDQtNC90Y8sINC10YHQu9C4INC+0L0g0L3QtSDQvdGD0LbQtdC9KVxyXG4gIGNvbnN0IHZpZXcgPSBmb3JtYXRcclxuICAgIC5yZXBsYWNlKC9ERC9nLCBmb3JtYXR0ZWREYXkpXHJcbiAgICAucmVwbGFjZSgvTU0vZywgZm9ybWF0dGVkTW9udGgpXHJcbiAgICAucmVwbGFjZSgvWVlZWS9nLCBmb3JtYXR0ZWRZZWFyKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIHZpZXc6IHZpZXcsXHJcbiAgICBkYXk6IGZvcm1hdC5pbmNsdWRlcygnRCcpID8gZm9ybWF0dGVkRGF5IDogJycsXHJcbiAgICBtb250aDogZm9ybWF0LmluY2x1ZGVzKCdNJykgPyBmb3JtYXR0ZWRNb250aCA6ICcnLFxyXG4gICAgeWVhcjogZm9ybWF0LmluY2x1ZGVzKCdZJykgPyBmb3JtYXR0ZWRZZWFyIDogJycsXHJcbiAgICBpbnZhbGlkOiBmYWxzZVxyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdGltZU1vZGVsVmFsdWVQYXJzZSA9ICh2YWx1ZTogc3RyaW5nLCB0aW1lem9uZTogVGltZXpvbmVUeXBlKTogVGltZU1vZGVsID0+IHtcclxuICBpZiAoIXZhbHVlKSB7XHJcbiAgICByZXR1cm4geyB2aWV3OiAnJywgaG91cjogJycsIG1pbnV0ZTogJycsIGludmFsaWQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGRhdGUgPSB0aW1lem9uZSA9PT0gJ2RlZmF1bHQnIFxyXG4gICAgPyBkYXlqcyh2YWx1ZSkgXHJcbiAgICA6IGRheWpzLnV0Yyh2YWx1ZSkudXRjT2Zmc2V0KFRpbWV6b25lW3RpbWV6b25lXSk7XHJcblxyXG4gIGlmICghZGF0ZS5pc1ZhbGlkKCkpIHtcclxuICAgIHJldHVybiB7IHZpZXc6ICcnLCBob3VyOiAnJywgbWludXRlOiAnJywgaW52YWxpZDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaG91ciA9IGRhdGUuaG91cigpO1xyXG4gIGNvbnN0IG1pbnV0ZSA9IGRhdGUubWludXRlKCk7XHJcbiAgY29uc3QgZm9ybWF0dGVkSG91ciA9IFN0cmluZyhob3VyKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gIGNvbnN0IGZvcm1hdHRlZE1pbnV0ZSA9IFN0cmluZyhtaW51dGUpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgY29uc3QgdGltZVN0cmluZyA9IGAke2Zvcm1hdHRlZEhvdXJ9OiR7Zm9ybWF0dGVkTWludXRlfWA7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2aWV3OiB0aW1lU3RyaW5nLFxyXG4gICAgaG91cjogZm9ybWF0dGVkSG91cixcclxuICAgIG1pbnV0ZTogZm9ybWF0dGVkTWludXRlLFxyXG4gICAgaW52YWxpZDogdGltZVN0cmluZy5sZW5ndGggIT09IDVcclxuICB9O1xyXG59OyJdfQ==