@tetacom/ng-components 1.1.38 → 1.1.40

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/assets/icons.svg +17 -1
  2. package/component/date-picker/base-calendar.d.ts +3 -3
  3. package/component/date-picker/base-picker.d.ts +3 -2
  4. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +3 -2
  5. package/component/date-picker/date-picker/date-picker.component.d.ts +5 -4
  6. package/component/date-picker/date-range/date-range.component.d.ts +4 -3
  7. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +2 -1
  8. package/component/date-picker/day-picker/day-picker.component.d.ts +6 -4
  9. package/component/date-picker/month-picker/month-picker.component.d.ts +2 -3
  10. package/component/date-picker/year-picker/year-picker.component.d.ts +2 -3
  11. package/esm2022/component/date-picker/base-calendar.mjs +14 -34
  12. package/esm2022/component/date-picker/base-picker.mjs +2 -2
  13. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +7 -8
  14. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +10 -11
  15. package/esm2022/component/date-picker/date-range/date-range.component.mjs +5 -6
  16. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +5 -6
  17. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +9 -4
  18. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +4 -7
  19. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +3 -5
  20. package/esm2022/component/filter/date-filter/date-filter.component.mjs +1 -1
  21. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +2 -2
  22. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +1 -1
  23. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +1 -1
  24. package/esm2022/locale/en.mjs +2 -1
  25. package/esm2022/locale/ru.mjs +2 -1
  26. package/esm2022/locale/teta-localisation.mjs +1 -1
  27. package/fesm2022/tetacom-ng-components.mjs +56 -78
  28. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  29. package/locale/teta-localisation.d.ts +1 -0
  30. package/package.json +1 -1
package/assets/icons.svg CHANGED
@@ -454,9 +454,25 @@
454
454
  <path d="M13.999 5.71733L13.9964 10.2704C13.996 11.0397 13.1634 11.5204 12.497 11.1362L8.51565 8.84104C7.8454 8.45466 7.84894 7.48616 8.52201 7.1047L12.506 4.84677C13.1728 4.46882 13.9995 4.95082 13.999 5.71733Z" stroke="currentColor" stroke-opacity="0.87" stroke-width="1.25" />
455
455
  <path d="M6.99909 5.86115L6.99701 10.1234C6.99662 10.9237 6.10303 11.3994 5.43893 10.9527L2.2443 8.80417C1.65228 8.406 1.6557 7.53375 2.25083 7.14024L5.44754 5.02651C6.11253 4.58682 6.99948 5.06394 6.99909 5.86115Z" stroke="currentColor" stroke-opacity="0.87" stroke-width="1.25" />
456
456
  </symbol>
457
+ <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="chisel">
458
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5 0.875C5.34518 0.875 5.625 1.15482 5.625 1.5V2.26201L10.375 3.44951V1.5C10.375 1.15482 10.6548 0.875 11 0.875C11.3452 0.875 11.625 1.15482 11.625 1.5V3.76201L12.1516 3.89366C12.4865 3.97738 12.6901 4.31671 12.6063 4.65158C12.5226 4.98646 12.1833 5.19006 11.8484 5.10634L11.625 5.05049V6.76201L12.1516 6.89366C12.4865 6.97738 12.6901 7.31671 12.6063 7.65158C12.5226 7.98646 12.1833 8.19006 11.8484 8.10634L11.4088 7.99644C11.4059 8.00042 11.403 8.00438 11.4 8.00833L8.9 11.3417C8.45 11.9417 7.55 11.9417 7.1 11.3417L4.6 8.00833C4.45395 7.8136 4.375 7.57675 4.375 7.33333V6.23799L3.84842 6.10634C3.51354 6.02262 3.30994 5.68329 3.39366 5.34842C3.47738 5.01354 3.81671 4.80994 4.15158 4.89366L4.375 4.94951V3.23799L3.84842 3.10634C3.51354 3.02262 3.30994 2.68329 3.39366 2.34842C3.47738 2.01354 3.81671 1.80994 4.15158 1.89366L4.375 1.94951V1.5C4.375 1.15482 4.65482 0.875 5 0.875ZM5.625 3.55049V5.26201L10.375 6.44951V4.73799L5.625 3.55049ZM10.0931 7.66751L5.625 6.55049V7.29167L8 10.4583L10.0931 7.66751ZM5.6 7.25833C5.60004 7.25839 5.60009 7.25845 5.60013 7.25851L5.6 7.25833ZM0.375 11.5C0.375 11.1548 0.654822 10.875 1 10.875H3.03875C3.83618 10.875 4.59038 11.2375 5.08853 11.8602L6.14544 13.1813C7.09621 14.3698 8.90379 14.3698 9.85456 13.1813L10.9115 11.8602C11.4096 11.2375 12.1638 10.875 12.9612 10.875H15C15.3452 10.875 15.625 11.1548 15.625 11.5C15.625 11.8452 15.3452 12.125 15 12.125H12.9612C12.5435 12.125 12.1485 12.3149 11.8876 12.641L10.8306 13.9622C9.37947 15.7761 6.62053 15.7761 5.16935 13.9622L4.11244 12.641C3.85151 12.3149 3.45645 12.125 3.03875 12.125H1C0.654822 12.125 0.375 11.8452 0.375 11.5Z" fill="currentColor"/>
459
+ </symbol>
460
+ <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="documentAnalyse">
461
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M2.17999 3.5C2.17999 2.74061 2.7956 2.125 3.55499 2.125H6.42999V5.5C6.42999 6.39746 7.15753 7.125 8.05499 7.125H12.555C12.8132 7.125 13.0448 6.96621 13.1379 6.72537C13.231 6.48453 13.1665 6.21123 12.9754 6.03754L7.47541 1.03754C7.36037 0.932951 7.21047 0.875 7.05499 0.875H3.55499C2.10524 0.875 0.929993 2.05025 0.929993 3.5V12.5C0.929993 13.9497 2.10524 15.125 3.55499 15.125H6.05499C6.40017 15.125 6.67999 14.8452 6.67999 14.5C6.67999 14.1548 6.40017 13.875 6.05499 13.875H3.55499C2.7956 13.875 2.17999 13.2594 2.17999 12.5V3.5ZM10.9384 5.875L7.67999 2.91284V5.5C7.67999 5.70711 7.84788 5.875 8.05499 5.875H10.9384ZM10.0415 13.25C11.008 13.25 11.7915 12.4665 11.7915 11.5C11.7915 10.5335 11.008 9.75 10.0415 9.75C9.07498 9.75 8.29147 10.5335 8.29147 11.5C8.29147 12.4665 9.07498 13.25 10.0415 13.25ZM10.0415 14.5C10.5583 14.5 11.0446 14.3693 11.4691 14.1392L12.5199 15.4001C12.7408 15.6653 13.1349 15.7011 13.4001 15.4801C13.6653 15.2592 13.7011 14.8651 13.4801 14.5999L12.4203 13.3281C12.8098 12.822 13.0415 12.188 13.0415 11.5C13.0415 9.84314 11.6983 8.5 10.0415 8.5C8.38462 8.5 7.04147 9.84314 7.04147 11.5C7.04147 13.1569 8.38462 14.5 10.0415 14.5Z" fill="currentColor"/>
462
+ </symbol>
463
+ <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="gis">
464
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 5.5C8.5 6.60457 9.39543 7.5 10.5 7.5C11.6046 7.5 12.5 6.60457 12.5 5.5C12.5 4.39543 11.6046 3.5 10.5 3.5C9.39543 3.5 8.5 4.39543 8.5 5.5ZM9.75 5.5C9.75 5.91421 10.0858 6.25 10.5 6.25C10.9142 6.25 11.25 5.91421 11.25 5.5C11.25 5.08579 10.9142 4.75 10.5 4.75C10.0858 4.75 9.75 5.08579 9.75 5.5Z" fill="currentColor" fill-opacity="0.87"/>
465
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2.5C3.5 3.60457 4.39543 4.5 5.5 4.5C5.99989 4.5 6.45695 4.3166 6.80755 4.01342L8.54891 5.05823C8.64451 4.63424 8.87477 4.26126 9.1924 3.98659L7.45105 2.94177C7.48309 2.79965 7.5 2.6518 7.5 2.5C7.5 1.39543 6.60457 0.5 5.5 0.5C4.39543 0.5 3.5 1.39543 3.5 2.5ZM4.75 2.5C4.75 2.91421 5.08579 3.25 5.5 3.25C5.91421 3.25 6.25 2.91421 6.25 2.5C6.25 2.08579 5.91421 1.75 5.5 1.75C5.08579 1.75 4.75 2.08579 4.75 2.5Z" fill="currentColor" fill-opacity="0.87"/>
466
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.5 12.5C5.39543 12.5 4.5 11.6046 4.5 10.5C4.5 9.39543 5.39543 8.5 6.5 8.5C6.74593 8.5 6.98149 8.54439 7.19912 8.62559L8.82495 6.59329C9.05678 6.94775 9.39809 7.22413 9.80084 7.37441L8.175 9.40671C8.38052 9.72093 8.5 10.0965 8.5 10.5C8.5 10.7239 8.4632 10.9392 8.39532 11.1403L9.35497 11.86C9.33757 11.8722 9.32036 11.8846 9.30337 11.8973C9.63705 11.6478 10.0513 11.5 10.5 11.5C11.6046 11.5 12.5 12.3954 12.5 13.5C12.5 14.6046 11.6046 15.5 10.5 15.5C9.39543 15.5 8.5 14.6046 8.5 13.5C8.5 13.2761 8.53679 13.0608 8.60467 12.8598L7.645 12.14C7.32064 12.3669 6.92587 12.5 6.5 12.5ZM6.5 11.25C6.08579 11.25 5.75 10.9142 5.75 10.5C5.75 10.0858 6.08579 9.75 6.5 9.75C6.91421 9.75 7.25 10.0858 7.25 10.5C7.25 10.9142 6.91421 11.25 6.5 11.25ZM9.75 13.5C9.75 13.9142 10.0858 14.25 10.5 14.25C10.9142 14.25 11.25 13.9142 11.25 13.5C11.25 13.0858 10.9142 12.75 10.5 12.75C10.0858 12.75 9.75 13.0858 9.75 13.5Z" fill="currentColor" fill-opacity="0.87"/>
467
+ </symbol>
457
468
  <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="playForwardRight">
458
469
  <path fill-rule="evenodd" clip-rule="evenodd" d="M4.62994 3.87691C4.63009 3.57679 4.96518 3.39843 5.21422 3.56592L11.4069 7.73082C11.6289 7.88013 11.6276 8.20723 11.4044 8.3548L5.20773 12.4522C4.95837 12.6171 4.62576 12.4381 4.6259 12.1392L4.62994 3.87691ZM5.91181 2.52868C4.83266 1.80289 3.38057 2.57578 3.37994 3.87629L3.3759 12.1386C3.37527 13.434 4.81658 14.2094 5.89717 13.4948L11.874 9.54285L11.874 13.0002C11.874 13.3454 12.1538 13.6252 12.499 13.6252C12.8442 13.6252 13.124 13.3454 13.124 13.0002L13.124 3.00018C13.124 2.65501 12.8442 2.37518 12.499 2.37518C12.1538 2.37518 11.874 2.65501 11.874 3.00018L11.874 6.53858L5.91181 2.52868Z" fill="currentColor" fill-opacity="0.87" />
459
470
  </symbol>
471
+ <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="liner">
472
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5.16998 3.37C5.16998 2.26543 4.27455 1.37 3.16998 1.37C2.06541 1.37 1.16998 2.26543 1.16998 3.37C1.16998 4.26553 1.75857 5.0236 2.57001 5.27844V8.995C2.57001 12.1016 5.08841 14.62 8.19501 14.62V13.37C5.77876 13.37 3.82001 11.4112 3.82001 8.995V5.26199C4.60548 4.99219 5.16998 4.24701 5.16998 3.37ZM3.91998 3.37C3.91998 2.95578 3.5842 2.62 3.16998 2.62C2.75577 2.62 2.41998 2.95578 2.41998 3.37C2.41998 3.78421 2.75577 4.12 3.16998 4.12C3.5842 4.12 3.91998 3.78421 3.91998 3.37Z" fill="currentColor" fill-opacity="0.87"/>
473
+ <path d="M9.44501 14.62H11.445V13.37H9.44501V14.62Z" fill="currentColor" fill-opacity="0.87"/>
474
+ <path d="M12.695 14.62V13.37H14.195C14.5402 13.37 14.82 13.6498 14.82 13.995C14.82 14.3402 14.5402 14.62 14.195 14.62H12.695Z" fill="currentColor" fill-opacity="0.87"/>
475
+ </symbol>
460
476
  <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="playBackRight">
461
477
  <path d="M12 3.85512L12.625 3.85512V3.85512L12 3.85512ZM12 12.118L11.375 12.118V12.118L12 12.118ZM10.4503 3.01976L10.1067 2.49765L10.1067 2.49765L10.4503 3.01976ZM4.25311 7.0977L4.59667 7.61981H4.59667L4.25311 7.0977ZM4.24316 8.7618L3.89338 9.27976H3.89338L4.24316 8.7618ZM10.4404 12.9468L10.7901 12.4288H10.7901L10.4404 12.9468ZM4.12598 2.99982C4.12598 2.65464 3.84615 2.37482 3.50098 2.37482C3.1558 2.37482 2.87598 2.65464 2.87598 2.99982H4.12598ZM2.87598 12.9998C2.87598 13.345 3.1558 13.6248 3.50098 13.6248C3.84615 13.6248 4.12598 13.345 4.12598 12.9998H2.87598ZM11.375 3.85512L11.375 12.118L12.625 12.118L12.625 3.85512L11.375 3.85512ZM10.7939 3.54186C11.0432 3.37778 11.375 3.55663 11.375 3.85512L12.625 3.85512C12.625 2.56165 11.1872 1.78664 10.1067 2.49765L10.7939 3.54186ZM4.59667 7.61981L10.7939 3.54186L10.1067 2.49765L3.90955 6.5756L4.59667 7.61981ZM4.59294 8.24384C4.37117 8.09408 4.37313 7.7669 4.59667 7.61981L3.90955 6.5756C2.94086 7.21303 2.93239 8.6308 3.89338 9.27976L4.59294 8.24384ZM10.7901 12.4288L4.59294 8.24384L3.89338 9.27976L10.0906 13.4647L10.7901 12.4288ZM11.375 12.118C11.375 12.4186 11.0392 12.597 10.7901 12.4288L10.0906 13.4647C11.1698 14.1935 12.625 13.4203 12.625 12.118L11.375 12.118ZM2.87598 2.99982V12.9998H4.12598V2.99982H2.87598Z" fill="currentColor" fill-opacity="0.87" />
462
478
  </symbol>
@@ -594,7 +610,7 @@
594
610
  <path fill-rule="evenodd" clip-rule="evenodd" d="M12.488 3.39046C12.7037 3.12092 12.66 2.72761 12.3904 2.51198C12.1209 2.29635 11.7276 2.34005 11.5119 2.60959L7.99999 6.99953L4.48804 2.60959C4.27241 2.34005 3.8791 2.29635 3.60956 2.51198C3.34002 2.72761 3.29632 3.12092 3.51195 3.39046L7.1996 8.00002L3.51195 12.6096C3.29632 12.8791 3.34002 13.2724 3.60956 13.4881C3.8791 13.7037 4.2724 13.66 4.48804 13.3905L7.99999 9.00051L11.512 13.3905C11.7276 13.66 12.1209 13.7037 12.3904 13.4881C12.66 13.2724 12.7037 12.8791 12.488 12.6096L8.80038 8.00002L12.488 3.39046Z" fill="currentColor" fill-opacity="0.87" />
595
611
  </symbol>
596
612
  <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="sum">
597
- <path d="M12 3H4.20711C3.76165 3 3.53857 3.53857 3.85355 3.85355L7.64645 7.64645C7.84171 7.84171 7.84171 8.15829 7.64645 8.35355L3.85355 12.1464C3.53857 12.4614 3.76165 13 4.20711 13H12" stroke="currentColor" stroke-opacity="0.87" stroke-width="1.25" stroke-linecap="round" />
613
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3.41159 4.2955C2.70288 3.58678 3.20482 2.375 4.20709 2.375H12C12.3452 2.375 12.625 2.65482 12.625 3C12.625 3.34518 12.3452 3.625 12 3.625H4.50887L8.08837 7.20451C8.52771 7.64385 8.52771 8.35616 8.08837 8.7955L4.50887 12.375H12C12.3452 12.375 12.625 12.6548 12.625 13C12.625 13.3452 12.3452 13.625 12 13.625H4.20709C3.20482 13.625 2.70288 12.4132 3.41159 11.7045L7.1161 8L3.41159 4.2955Z" fill="currentColor"/>
598
614
  </symbol>
599
615
  <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="sortZA">
600
616
  <path d="M2 12H6M2 8H10M2 4H14" stroke="currentColor" stroke-opacity="0.87" stroke-width="1.25" stroke-linecap="round" />
@@ -4,11 +4,12 @@ import { BehaviorSubject, ReplaySubject } from 'rxjs';
4
4
  import { viewType } from '../../common/model/view-type.model';
5
5
  import { DayModel } from './model/day-model';
6
6
  import { MinMaxDateModel } from './model/min-max-date.model';
7
+ import { TetaLocalisation } from "../../locale/teta-localisation";
7
8
  import * as i0 from "@angular/core";
8
9
  export declare abstract class BaseCalendar implements OnChanges, OnDestroy {
9
10
  protected _cdr: ChangeDetectorRef;
10
11
  abstract selectedDate: any;
11
- abstract locale: string;
12
+ abstract locale: TetaLocalisation;
12
13
  abstract open: boolean;
13
14
  abstract viewType: viewType;
14
15
  abstract min: Date | string | number;
@@ -23,7 +24,6 @@ export declare abstract class BaseCalendar implements OnChanges, OnDestroy {
23
24
  currentMonth: DayModel[];
24
25
  nextMonth: DayModel[];
25
26
  };
26
- localeMonths: Map<any, any>;
27
27
  alive: boolean;
28
28
  protected constructor(_cdr: ChangeDetectorRef);
29
29
  generateCalendar(selectedDate: Dayjs, year: number, month: number, minMax: MinMaxDateModel): DayModel[];
@@ -42,7 +42,7 @@ export declare abstract class BaseCalendar implements OnChanges, OnDestroy {
42
42
  availableMonth: number;
43
43
  availableYear: number;
44
44
  };
45
- getMothName(month: number): any;
45
+ getMothName(month: number): string;
46
46
  selectDate(date: Date): void;
47
47
  scrollMonth: (e: any, month: number, year: number) => void;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseCalendar, never>;
@@ -1,18 +1,19 @@
1
1
  import { DatePipe } from '@angular/common';
2
2
  import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
3
3
  import { MaskitoOptions } from '@maskito/core';
4
- import { ReplaySubject } from 'rxjs';
4
+ import { Observable, ReplaySubject } from 'rxjs';
5
5
  import { Align } from '../../common/enum/align.enum';
6
6
  import { VerticalAlign } from '../../common/enum/vertical-align.enum';
7
7
  import { viewType } from '../../common/model/view-type.model';
8
8
  import { DateFromToModel } from './model/from-to.model';
9
+ import { TetaLocalisation } from "../../locale/teta-localisation";
9
10
  export declare abstract class BasePicker {
10
11
  protected _elementRef: ElementRef;
11
12
  protected _cdr: ChangeDetectorRef;
12
13
  protected datePipe: DatePipe;
13
14
  abstract mask: string;
14
15
  abstract date: any;
15
- abstract locale: string;
16
+ abstract locale: Observable<TetaLocalisation>;
16
17
  abstract showTime: boolean;
17
18
  abstract minDate: Date | string | number;
18
19
  abstract maxDate: Date | string | number;
@@ -2,12 +2,13 @@ import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy } from '@angular/
2
2
  import { viewType } from '../../../../common/model/view-type.model';
3
3
  import { BaseCalendar } from '../../base-calendar';
4
4
  import { DayModel } from '../../model/day-model';
5
+ import { TetaLocalisation } from "../../../../locale/teta-localisation";
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class DateCalendarComponent extends BaseCalendar implements OnChanges, OnDestroy {
7
8
  _cdr: ChangeDetectorRef;
8
9
  selectedDate: Date | string | number;
9
- locale: string;
10
10
  open: boolean;
11
+ locale: TetaLocalisation;
11
12
  viewType: viewType;
12
13
  min: Date | string | number;
13
14
  isDateNull: boolean;
@@ -16,5 +17,5 @@ export declare class DateCalendarComponent extends BaseCalendar implements OnCha
16
17
  calendar: DayModel[];
17
18
  constructor(_cdr: ChangeDetectorRef);
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<DateCalendarComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<DateCalendarComponent, "teta-date-calendar", never, { "selectedDate": { "alias": "selectedDate"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "open": { "alias": "open"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "min": { "alias": "min"; "required": false; }; "isDateNull": { "alias": "isDateNull"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, { "setDate": "setDate"; }, never, never, false, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateCalendarComponent, "teta-date-calendar", never, { "selectedDate": { "alias": "selectedDate"; "required": false; }; "open": { "alias": "open"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "min": { "alias": "min"; "required": false; }; "isDateNull": { "alias": "isDateNull"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, { "setDate": "setDate"; }, never, never, false, never>;
20
21
  }
@@ -1,13 +1,14 @@
1
1
  import { DatePipe } from '@angular/common';
2
2
  import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
- import { ReplaySubject } from 'rxjs';
4
+ import { Observable, ReplaySubject } from 'rxjs';
5
5
  import { Align } from '../../../common/enum/align.enum';
6
6
  import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
7
7
  import { viewType } from '../../../common/model/view-type.model';
8
8
  import { BasePicker } from '../base-picker';
9
9
  import { DatePeriod } from '../model/date-period';
10
10
  import { TetaConfigService } from '../../../locale/teta-config.service';
11
+ import { TetaLocalisation } from "../../../locale/teta-localisation";
11
12
  import * as i0 from "@angular/core";
12
13
  export declare const DATE_PICKER_CONTROL_VALUE_ACCESSOR: any;
13
14
  export declare class DatePickerComponent extends BasePicker implements OnInit, ControlValueAccessor, OnChanges {
@@ -16,7 +17,7 @@ export declare class DatePickerComponent extends BasePicker implements OnInit, C
16
17
  datePipe: DatePipe;
17
18
  private localeService;
18
19
  date: Date | string | number;
19
- locale: 'en' | 'ru';
20
+ locale: Observable<TetaLocalisation>;
20
21
  showTime: boolean;
21
22
  minDate: Date | string | number;
22
23
  maxDate: Date | string | number;
@@ -43,7 +44,7 @@ export declare class DatePickerComponent extends BasePicker implements OnInit, C
43
44
  private readonly tabindex;
44
45
  constructor(_elementRef: ElementRef, _cdr: ChangeDetectorRef, datePipe: DatePipe, localeService: TetaConfigService);
45
46
  ngOnInit(): void;
46
- prepareInput(): Promise<void>;
47
+ prepareInput(isFirstRender?: boolean): Promise<void>;
47
48
  onBlur(): void;
48
49
  setDate(date: any): void;
49
50
  onChange(date: Date): void;
@@ -52,5 +53,5 @@ export declare class DatePickerComponent extends BasePicker implements OnInit, C
52
53
  writeValue(obj: Date | string | number): void;
53
54
  ngOnChanges(changes: SimpleChanges): void;
54
55
  static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "teta-date-picker", never, { "date": { "alias": "date"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "align": { "alias": "align"; "required": false; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "backdrop": { "alias": "backdrop"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "disabledPeriods": { "alias": "disabledPeriods"; "required": false; }; "disabledDays": { "alias": "disabledDays"; "required": false; }; "minYearDate": { "alias": "minYearDate"; "required": false; }; "maxYearDate": { "alias": "maxYearDate"; "required": false; }; }, { "selectDate": "selectDate"; }, never, never, false, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "teta-date-picker", never, { "date": { "alias": "date"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "align": { "alias": "align"; "required": false; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "backdrop": { "alias": "backdrop"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "disabledPeriods": { "alias": "disabledPeriods"; "required": false; }; "disabledDays": { "alias": "disabledDays"; "required": false; }; "minYearDate": { "alias": "minYearDate"; "required": false; }; "maxYearDate": { "alias": "maxYearDate"; "required": false; }; }, { "selectDate": "selectDate"; }, never, never, false, never>;
56
57
  }
@@ -1,13 +1,14 @@
1
1
  import { DatePipe } from '@angular/common';
2
2
  import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
- import { ReplaySubject } from 'rxjs';
4
+ import { Observable, ReplaySubject } from 'rxjs';
5
5
  import { Align } from '../../../common/enum/align.enum';
6
6
  import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
7
7
  import { viewType } from '../../../common/model/view-type.model';
8
8
  import { BasePicker } from '../base-picker';
9
9
  import { DateFromToModel } from '../model/from-to.model';
10
10
  import { TetaConfigService } from '../../../locale/teta-config.service';
11
+ import { TetaLocalisation } from "../../../locale/teta-localisation";
11
12
  import * as i0 from "@angular/core";
12
13
  export declare const DATE_Range_CONTROL_VALUE_ACCESSOR: any;
13
14
  export declare class DateRangeComponent extends BasePicker implements OnInit, ControlValueAccessor {
@@ -16,7 +17,7 @@ export declare class DateRangeComponent extends BasePicker implements OnInit, Co
16
17
  datePipe: DatePipe;
17
18
  private localeService;
18
19
  date: DateFromToModel;
19
- locale: 'en' | 'ru';
20
+ locale: Observable<TetaLocalisation>;
20
21
  showTime: boolean;
21
22
  minDate: Date | string | number;
22
23
  maxDate: Date | string | number;
@@ -46,5 +47,5 @@ export declare class DateRangeComponent extends BasePicker implements OnInit, Co
46
47
  ngOnInit(): void;
47
48
  onChange(date: any): void;
48
49
  static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeComponent, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeComponent, "teta-date-range", never, { "date": { "alias": "date"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "align": { "alias": "align"; "required": false; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "backdrop": { "alias": "backdrop"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; }, { "selectDate": "selectDate"; }, never, never, false, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeComponent, "teta-date-range", never, { "date": { "alias": "date"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "align": { "alias": "align"; "required": false; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "backdrop": { "alias": "backdrop"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; }, { "selectDate": "selectDate"; }, never, never, false, never>;
50
51
  }
@@ -3,10 +3,11 @@ import { viewType } from '../../../../common/model/view-type.model';
3
3
  import { BaseCalendar } from '../../base-calendar';
4
4
  import { DayModel } from '../../model/day-model';
5
5
  import { DateFromToModel } from '../../model/from-to.model';
6
+ import { TetaLocalisation } from "../../../../locale/teta-localisation";
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class RangeCalendarComponent extends BaseCalendar implements OnChanges, OnDestroy {
8
9
  _cdr: ChangeDetectorRef;
9
- locale: string;
10
+ locale: TetaLocalisation;
10
11
  open: boolean;
11
12
  date: DateFromToModel;
12
13
  viewType: viewType;
@@ -1,20 +1,21 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { DayModel } from "../model/day-model";
3
3
  import { DateFromToModel } from "../model/from-to.model";
4
4
  import { viewType } from "../../../common/model/view-type.model";
5
+ import { TetaLocalisation } from "../../../locale/teta-localisation";
5
6
  import * as i0 from "@angular/core";
6
- export declare class DayPickerComponent {
7
+ export declare class DayPickerComponent implements OnChanges {
7
8
  date: Date | string | number;
8
9
  calendar: DayModel[];
9
10
  viewType: viewType;
10
11
  range?: DateFromToModel;
11
12
  min: Date | string | number;
12
13
  max: Date | string | number;
13
- locale: string;
14
+ locale: TetaLocalisation;
14
15
  hoveredDate?: Date;
15
16
  hoveredDateChange?: EventEmitter<Date>;
16
17
  selectDate: EventEmitter<Date>;
17
- daysOfWeek: Map<any, any>;
18
+ dayOrder: string[];
18
19
  constructor();
19
20
  isInRange(day: DayModel, from: Date | number | string, to: Date | number | string): boolean;
20
21
  isHoveredRange(day: DayModel): boolean;
@@ -25,6 +26,7 @@ export declare class DayPickerComponent {
25
26
  getClassStaticItem(d: DayModel): "" | "datepicker-date_active-first" | "datepicker-date_active-second";
26
27
  getClassHoveredItem(): "datepicker-date_active-first" | "datepicker-date_active-second";
27
28
  getClassSelectedItem(d: DayModel): "" | "datepicker-date_active-first" | "datepicker-date_active-second";
29
+ ngOnChanges(changes: SimpleChanges): void;
28
30
  static ɵfac: i0.ɵɵFactoryDeclaration<DayPickerComponent, never>;
29
31
  static ɵcmp: i0.ɵɵComponentDeclaration<DayPickerComponent, "teta-day-picker", never, { "date": { "alias": "date"; "required": false; }; "calendar": { "alias": "calendar"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "range": { "alias": "range"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "hoveredDate": { "alias": "hoveredDate"; "required": false; }; }, { "hoveredDateChange": "hoveredDateChange"; "selectDate": "selectDate"; }, never, never, false, never>;
30
32
  }
@@ -3,11 +3,10 @@ import { IIdName } from "../../../common/contract/i-id-name";
3
3
  import { viewType } from "../../../common/model/view-type.model";
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MonthPickerComponent implements OnInit {
6
- locale: string;
7
6
  selectedMonth: number;
8
7
  viewType: viewType;
9
8
  currentYear: number;
10
- localeMoths: Map<string, string[]>;
9
+ localeMoths: string[];
11
10
  selectMonth: EventEmitter<number>;
12
11
  changeYear: EventEmitter<number>;
13
12
  months: IIdName<any>[];
@@ -16,5 +15,5 @@ export declare class MonthPickerComponent implements OnInit {
16
15
  pickYear(year: number): void;
17
16
  ngOnInit(): void;
18
17
  static ɵfac: i0.ɵɵFactoryDeclaration<MonthPickerComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<MonthPickerComponent, "teta-month-picker", never, { "locale": { "alias": "locale"; "required": false; }; "selectedMonth": { "alias": "selectedMonth"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "currentYear": { "alias": "currentYear"; "required": false; }; "localeMoths": { "alias": "localeMoths"; "required": false; }; }, { "selectMonth": "selectMonth"; "changeYear": "changeYear"; }, never, never, false, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<MonthPickerComponent, "teta-month-picker", never, { "selectedMonth": { "alias": "selectedMonth"; "required": false; }; "viewType": { "alias": "viewType"; "required": false; }; "currentYear": { "alias": "currentYear"; "required": false; }; "localeMoths": { "alias": "localeMoths"; "required": false; }; }, { "selectMonth": "selectMonth"; "changeYear": "changeYear"; }, never, never, false, never>;
20
19
  }
@@ -1,15 +1,14 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { viewType } from "../../../common/model/view-type.model";
3
3
  import { MinMaxDateModel } from "../model/min-max-date.model";
4
+ import { TetaLocalisation } from "../../../locale/teta-localisation";
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class YearPickerComponent implements OnInit {
6
7
  selectedYear: number;
7
8
  viewType: viewType;
8
9
  minMax?: MinMaxDateModel;
9
- locale: string;
10
+ locale: TetaLocalisation;
10
11
  selectYear: EventEmitter<number>;
11
- yearPickerDictionary: Map<string, string>;
12
- alive: boolean;
13
12
  years: {
14
13
  id: number;
15
14
  isSelected: boolean;
@@ -9,35 +9,6 @@ export class BaseCalendar {
9
9
  minMax = new ReplaySubject(1);
10
10
  currentYear = new ReplaySubject(1);
11
11
  selectedPicker = new BehaviorSubject('day');
12
- localeMonths = new Map()
13
- .set('ru', [
14
- 'Январь',
15
- 'Февраль',
16
- 'Март',
17
- 'Апрель',
18
- 'Май',
19
- 'Июнь',
20
- 'Июль',
21
- 'Август',
22
- 'Сентябрь',
23
- 'Октябрь',
24
- 'Ноябрь',
25
- 'Декабрь',
26
- ])
27
- .set('en', [
28
- 'January',
29
- 'February',
30
- 'March',
31
- 'April',
32
- 'May',
33
- 'June',
34
- 'July',
35
- 'August',
36
- 'September',
37
- 'October',
38
- 'November',
39
- 'December',
40
- ]);
41
12
  alive = true;
42
13
  constructor(_cdr) {
43
14
  this._cdr = _cdr;
@@ -63,11 +34,11 @@ export class BaseCalendar {
63
34
  }
64
35
  isSuitableMinDate(d, minDate) {
65
36
  return (dayjs(new Date(minDate)).startOf('date').toDate() <= new Date(d) ||
66
- minDate === null);
37
+ !minDate);
67
38
  }
68
39
  isSuitableMaxDate(d, maxDate) {
69
40
  return (new Date(d) < dayjs(new Date(maxDate)).endOf('date').toDate() ||
70
- maxDate === null);
41
+ !maxDate);
71
42
  }
72
43
  isSelected(date, selectedDate) {
73
44
  const isSelectedDate = date.getDate() === selectedDate?.getDate();
@@ -96,7 +67,16 @@ export class BaseCalendar {
96
67
  }
97
68
  }
98
69
  changeCalendarData(selectedDate) {
99
- const date = new Date(selectedDate || new Date());
70
+ let date;
71
+ if (!this.isSuitableMinDate(new Date(selectedDate), this.min)) {
72
+ date = this.min;
73
+ }
74
+ else if (!this.isSuitableMaxDate(new Date(selectedDate), this.max)) {
75
+ date = this.max;
76
+ }
77
+ else {
78
+ date = selectedDate;
79
+ }
100
80
  this.currentMonth.next(new Date(date).getMonth());
101
81
  this.currentYear.next(new Date(date).getFullYear());
102
82
  this.minMax.next({ min: this.min, max: this.max });
@@ -119,7 +99,7 @@ export class BaseCalendar {
119
99
  return { availableMonth: month, availableYear: year };
120
100
  }
121
101
  getMothName(month) {
122
- return this.localeMonths.get(this.locale)[month];
102
+ return this.locale.months[month];
123
103
  }
124
104
  selectDate(date) {
125
105
  this.setDate.emit(date);
@@ -146,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
146
126
  changeDetection: ChangeDetectionStrategy.OnPush,
147
127
  }]
148
128
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jYWxlbmRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvYmFzZS1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsR0FLVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPN0MsTUFBTSxPQUFnQixZQUFZO0lBa0RBO0lBekN6QixZQUFZLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sR0FDWCxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7SUFDakMsV0FBVyxHQUEwQixJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxjQUFjLEdBQ25CLElBQUksZUFBZSxDQUEyQixLQUFLLENBQUMsQ0FBQztJQUloRCxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUU7U0FDNUIsR0FBRyxDQUFDLElBQUksRUFBRTtRQUNULFFBQVE7UUFDUixTQUFTO1FBQ1QsTUFBTTtRQUNOLFFBQVE7UUFDUixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixRQUFRO1FBQ1IsVUFBVTtRQUNWLFNBQVM7UUFDVCxRQUFRO1FBQ1IsU0FBUztLQUNWLENBQUM7U0FDRCxHQUFHLENBQUMsSUFBSSxFQUFFO1FBQ1QsU0FBUztRQUNULFVBQVU7UUFDVixPQUFPO1FBQ1AsT0FBTztRQUNQLEtBQUs7UUFDTCxNQUFNO1FBQ04sTUFBTTtRQUNOLFFBQVE7UUFDUixXQUFXO1FBQ1gsU0FBUztRQUNULFVBQVU7UUFDVixVQUFVO0tBQ1gsQ0FBQyxDQUFDO0lBRUUsS0FBSyxHQUFHLElBQUksQ0FBQztJQUVwQixZQUFnQyxJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtJQUFHLENBQUM7SUFFM0QsZ0JBQWdCLENBQ2QsWUFBbUIsRUFDbkIsSUFBWSxFQUNaLEtBQWEsRUFDYixNQUF1QjtRQUV2QixNQUFNLGdCQUFnQixHQUFHLFlBQVk7YUFDbEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7YUFDakIsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7YUFDbkIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxJQUFJLFFBQVEsQ0FBQztnQkFDbEIsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsY0FBYyxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxRQUFRLEVBQ04sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUM7b0JBQy9DLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDO2dCQUNqRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzdELENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLENBQU8sRUFBRSxPQUErQjtRQUN4RCxPQUFPLENBQ0wsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoRSxPQUFPLEtBQUssSUFBSSxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLENBQU8sRUFBRSxPQUErQjtRQUN4RCxPQUFPLENBQ0wsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM3RCxPQUFPLEtBQUssSUFBSSxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVLEVBQUUsWUFBa0I7UUFDdkMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUNMLGNBQWMsSUFBSSxlQUFlLElBQUksY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFnQztRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxJQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBQztZQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUNoQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxZQUFvQztRQUNyRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVk7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUNyQyxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FDbEUsS0FBSyxFQUNMLElBQUksQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQy9DLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRTtZQUNkLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDaEU7UUFDRCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsV0FBVyxHQUFHLENBQUMsQ0FBTSxFQUFFLEtBQWEsRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUNwRCxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxVQUFVLEVBQUU7WUFDM0IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDLENBQUM7dUdBN0trQixZQUFZOzJGQUFaLFlBQVkseUVBSHRCLEVBQUU7OzJGQUdRLFlBQVk7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3ZpZXctdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4vbW9kZWwvZGF5LW1vZGVsJztcbmltcG9ydCB7IE1pbk1heERhdGVNb2RlbCB9IGZyb20gJy4vbW9kZWwvbWluLW1heC1kYXRlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDYWxlbmRhciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgYWJzdHJhY3Qgc2VsZWN0ZWREYXRlO1xuICBhYnN0cmFjdCBsb2NhbGU6IHN0cmluZztcbiAgYWJzdHJhY3Qgb3BlbjogYm9vbGVhbjtcbiAgYWJzdHJhY3Qgdmlld1R5cGU6IHZpZXdUeXBlO1xuICBhYnN0cmFjdCBtaW46IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG4gIGFic3RyYWN0IGlzRGF0ZU51bGw6IGJvb2xlYW47XG4gIGFic3RyYWN0IG1heDogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgYWJzdHJhY3Qgc2V0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGU+O1xuICBwdWJsaWMgY3VycmVudE1vbnRoOiBSZXBsYXlTdWJqZWN0PG51bWJlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xuICBwdWJsaWMgbWluTWF4OiBSZXBsYXlTdWJqZWN0PE1pbk1heERhdGVNb2RlbD4gPVxuICAgIG5ldyBSZXBsYXlTdWJqZWN0PE1pbk1heERhdGVNb2RlbD4oMSk7XG4gIHB1YmxpYyBjdXJyZW50WWVhcjogUmVwbGF5U3ViamVjdDxudW1iZXI+ID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHVibGljIHNlbGVjdGVkUGlja2VyOiBCZWhhdmlvclN1YmplY3Q8J2RheScgfCAnbW9udGgnIHwgJ3llYXInPiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDwnZGF5JyB8ICdtb250aCcgfCAneWVhcic+KCdkYXknKTtcbiAgYWJzdHJhY3QgY2FsZW5kYXI6XG4gICAgfCBEYXlNb2RlbFtdXG4gICAgfCB7IGN1cnJlbnRNb250aDogRGF5TW9kZWxbXTsgbmV4dE1vbnRoOiBEYXlNb2RlbFtdIH07XG4gIHB1YmxpYyBsb2NhbGVNb250aHMgPSBuZXcgTWFwKClcbiAgICAuc2V0KCdydScsIFtcbiAgICAgICfQr9C90LLQsNGA0YwnLFxuICAgICAgJ9Ck0LXQstGA0LDQu9GMJyxcbiAgICAgICfQnNCw0YDRgicsXG4gICAgICAn0JDQv9GA0LXQu9GMJyxcbiAgICAgICfQnNCw0LknLFxuICAgICAgJ9CY0Y7QvdGMJyxcbiAgICAgICfQmNGO0LvRjCcsXG4gICAgICAn0JDQstCz0YPRgdGCJyxcbiAgICAgICfQodC10L3RgtGP0LHRgNGMJyxcbiAgICAgICfQntC60YLRj9Cx0YDRjCcsXG4gICAgICAn0J3QvtGP0LHRgNGMJyxcbiAgICAgICfQlNC10LrQsNCx0YDRjCcsXG4gICAgXSlcbiAgICAuc2V0KCdlbicsIFtcbiAgICAgICdKYW51YXJ5JyxcbiAgICAgICdGZWJydWFyeScsXG4gICAgICAnTWFyY2gnLFxuICAgICAgJ0FwcmlsJyxcbiAgICAgICdNYXknLFxuICAgICAgJ0p1bmUnLFxuICAgICAgJ0p1bHknLFxuICAgICAgJ0F1Z3VzdCcsXG4gICAgICAnU2VwdGVtYmVyJyxcbiAgICAgICdPY3RvYmVyJyxcbiAgICAgICdOb3ZlbWJlcicsXG4gICAgICAnRGVjZW1iZXInLFxuICAgIF0pO1xuXG4gIHB1YmxpYyBhbGl2ZSA9IHRydWU7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZW5lcmF0ZUNhbGVuZGFyKFxuICAgIHNlbGVjdGVkRGF0ZTogRGF5anMsXG4gICAgeWVhcjogbnVtYmVyLFxuICAgIG1vbnRoOiBudW1iZXIsXG4gICAgbWluTWF4OiBNaW5NYXhEYXRlTW9kZWxcbiAgKTogRGF5TW9kZWxbXSB7XG4gICAgY29uc3QgY2FsZW5kYXJTdGFydERheSA9IHNlbGVjdGVkRGF0ZVxuICAgICAgLnNldCgneWVhcicsIHllYXIpXG4gICAgICAuc2V0KCdtb250aCcsIG1vbnRoKVxuICAgICAgLnNldCgnZGF0ZScsIDEpXG4gICAgICAuc3RhcnRPZignd2VlaycpO1xuICAgIGNvbnN0IGNhbGVuZGFyID0gbmV3IEFycmF5KDQyKS5maWxsKDEpLm1hcCgodiwgaSkgPT4ge1xuICAgICAgcmV0dXJuIGNhbGVuZGFyU3RhcnREYXkuYWRkKGksICdkYXknKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY2FsZW5kYXIubWFwKGQgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBEYXlNb2RlbCh7XG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKGQudG9EYXRlKCkpLFxuICAgICAgICBpc0N1cnJlbnRNb250aDogbW9udGggPT09IGQubW9udGgoKSxcbiAgICAgICAgZGlzYWJsZWQ6XG4gICAgICAgICAgIXRoaXMuaXNTdWl0YWJsZU1pbkRhdGUoZC50b0RhdGUoKSwgbWluTWF4Lm1pbikgfHxcbiAgICAgICAgICAhdGhpcy5pc1N1aXRhYmxlTWF4RGF0ZShkLnRvRGF0ZSgpLCBtaW5NYXgubWF4KSxcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuaXNTZWxlY3RlZChkLnRvRGF0ZSgpLCBzZWxlY3RlZERhdGUudG9EYXRlKCkpLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBpc1N1aXRhYmxlTWluRGF0ZShkOiBEYXRlLCBtaW5EYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGRheWpzKG5ldyBEYXRlKG1pbkRhdGUpKS5zdGFydE9mKCdkYXRlJykudG9EYXRlKCkgPD0gbmV3IERhdGUoZCkgfHxcbiAgICAgIG1pbkRhdGUgPT09IG51bGxcbiAgICApO1xuICB9XG5cbiAgaXNTdWl0YWJsZU1heERhdGUoZDogRGF0ZSwgbWF4RGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcikge1xuICAgIHJldHVybiAoXG4gICAgICBuZXcgRGF0ZShkKSA8IGRheWpzKG5ldyBEYXRlKG1heERhdGUpKS5lbmRPZignZGF0ZScpLnRvRGF0ZSgpIHx8XG4gICAgICBtYXhEYXRlID09PSBudWxsXG4gICAgKTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoZGF0ZTogRGF0ZSwgc2VsZWN0ZWREYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgaXNTZWxlY3RlZERhdGUgPSBkYXRlLmdldERhdGUoKSA9PT0gc2VsZWN0ZWREYXRlPy5nZXREYXRlKCk7XG4gICAgY29uc3QgaXNTZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBpc1NlbGVjdGVkTW9udGggPSBkYXRlLmdldE1vbnRoKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0TW9udGgoKTtcbiAgICByZXR1cm4gKFxuICAgICAgaXNTZWxlY3RlZERhdGUgJiYgaXNTZWxlY3RlZE1vbnRoICYmIGlzU2VsZWN0ZWRZZWFyICYmICF0aGlzLmlzRGF0ZU51bGxcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0UGlja2VyKGVudGl0eTogJ2RheScgfCAnbW9udGgnIHwgJ3llYXInKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBpY2tlci5uZXh0KGVudGl0eSk7XG4gIH1cblxuICBzZWxlY3RNb250aChtb250aDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50TW9udGgubmV4dChtb250aCk7XG4gICAgdGhpcy5zZWxlY3RQaWNrZXIoJ2RheScpO1xuICB9XG5cbiAgc2VsZWN0WWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFllYXIoeWVhcik7XG4gICAgdGhpcy5zZWxlY3RQaWNrZXIoJ2RheScpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlQ2FsZW5kYXJEYXRhKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBpZihjaGFuZ2VzWydvcGVuJ10pe1xuICAgICAgdGhpcy5zZWxlY3RlZFBpY2tlci5uZXh0KCdkYXknKVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUNhbGVuZGFyRGF0YShzZWxlY3RlZERhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoc2VsZWN0ZWREYXRlIHx8IG5ldyBEYXRlKCkpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoLm5leHQobmV3IERhdGUoZGF0ZSkuZ2V0TW9udGgoKSk7XG4gICAgdGhpcy5jdXJyZW50WWVhci5uZXh0KG5ldyBEYXRlKGRhdGUpLmdldEZ1bGxZZWFyKCkpO1xuICAgIHRoaXMubWluTWF4Lm5leHQoeyBtaW46IHRoaXMubWluLCBtYXg6IHRoaXMubWF4IH0pO1xuICB9XG5cbiAgc2V0WWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRZZWFyLm5leHQoeWVhcik7XG4gIH1cblxuICBjaGFuZ2VNb250aChtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IGF2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRoIH0gPSB0aGlzLmdldEF2YWlsYWJsZU1vbnRoWWVhcihcbiAgICAgIG1vbnRoLFxuICAgICAgeWVhclxuICAgICk7XG4gICAgdGhpcy5jdXJyZW50TW9udGgubmV4dChhdmFpbGFibGVNb250aCk7XG4gICAgdGhpcy5jdXJyZW50WWVhci5uZXh0KGF2YWlsYWJsZVllYXIpO1xuICB9XG5cbiAgZ2V0QXZhaWxhYmxlTW9udGhZZWFyKG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcikge1xuICAgIGlmIChtb250aCA+IDExKSB7XG4gICAgICByZXR1cm4geyBhdmFpbGFibGVNb250aDogbW9udGggLSAxMiwgYXZhaWxhYmxlWWVhcjogeWVhciArIDEgfTtcbiAgICB9XG4gICAgaWYgKG1vbnRoIDwgMCkge1xuICAgICAgcmV0dXJuIHsgYXZhaWxhYmxlTW9udGg6IDEyICsgbW9udGgsIGF2YWlsYWJsZVllYXI6IHllYXIgLSAxIH07XG4gICAgfVxuICAgIHJldHVybiB7IGF2YWlsYWJsZU1vbnRoOiBtb250aCwgYXZhaWxhYmxlWWVhcjogeWVhciB9O1xuICB9XG5cbiAgZ2V0TW90aE5hbWUobW9udGg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmxvY2FsZU1vbnRocy5nZXQodGhpcy5sb2NhbGUpW21vbnRoXTtcbiAgfVxuXG4gIHNlbGVjdERhdGUoZGF0ZTogRGF0ZSkge1xuICAgIHRoaXMuc2V0RGF0ZS5lbWl0KGRhdGUpO1xuICB9XG4gIHNjcm9sbE1vbnRoID0gKGU6IGFueSwgbW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgZGVsdGEgPSBlPy5kZWx0YVkgPz8gZTtcbiAgICBpZiAoZSBpbnN0YW5jZW9mIFdoZWVsRXZlbnQpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgdGhpcy5jaGFuZ2VNb250aChtb250aCAtIDEsIHllYXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoYW5nZU1vbnRoKG1vbnRoICsgMSwgeWVhcik7XG4gICAgfVxuICB9O1xufVxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jYWxlbmRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvYmFzZS1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsR0FLVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQWMsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHcEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQVEzQyxNQUFNLE9BQWdCLFlBQVk7SUFxQkE7SUFaekIsWUFBWSxHQUEwQixJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLEdBQ1gsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLFdBQVcsR0FBMEIsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsY0FBYyxHQUNuQixJQUFJLGVBQWUsQ0FBMkIsS0FBSyxDQUFDLENBQUM7SUFLaEQsS0FBSyxHQUFHLElBQUksQ0FBQztJQUVwQixZQUFnQyxJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtJQUN2RCxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsWUFBbUIsRUFDbkIsSUFBWSxFQUNaLEtBQWEsRUFDYixNQUF1QjtRQUV2QixNQUFNLGdCQUFnQixHQUFHLFlBQVk7YUFDbEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7YUFDakIsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7YUFDbkIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFB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QUksQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDLENBQUM7dUdBekprQixZQUFZOzJGQUFaLFlBQVkseUVBSHRCLEVBQUU7OzJGQUdRLFlBQVk7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7RGF5anN9IGZyb20gJ2RheWpzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHt2aWV3VHlwZX0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3ZpZXctdHlwZS5tb2RlbCc7XG5pbXBvcnQge0RheU1vZGVsfSBmcm9tICcuL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQge01pbk1heERhdGVNb2RlbH0gZnJvbSAnLi9tb2RlbC9taW4tbWF4LWRhdGUubW9kZWwnO1xuaW1wb3J0IHtUZXRhTG9jYWxpc2F0aW9ufSBmcm9tIFwiLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ2FsZW5kYXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGFic3RyYWN0IHNlbGVjdGVkRGF0ZTtcbiAgYWJzdHJhY3QgbG9jYWxlOiBUZXRhTG9jYWxpc2F0aW9uO1xuICBhYnN0cmFjdCBvcGVuOiBib29sZWFuO1xuICBhYnN0cmFjdCB2aWV3VHlwZTogdmlld1R5cGU7XG4gIGFic3RyYWN0IG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgYWJzdHJhY3QgaXNEYXRlTnVsbDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBhYnN0cmFjdCBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT47XG4gIHB1YmxpYyBjdXJyZW50TW9udGg6IFJlcGxheVN1YmplY3Q8bnVtYmVyPiA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIHB1YmxpYyBtaW5NYXg6IFJlcGxheVN1YmplY3Q8TWluTWF4RGF0ZU1vZGVsPiA9XG4gICAgbmV3IFJlcGxheVN1YmplY3Q8TWluTWF4RGF0ZU1vZGVsPigxKTtcbiAgcHVibGljIGN1cnJlbnRZZWFyOiBSZXBsYXlTdWJqZWN0PG51bWJlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xuICBwdWJsaWMgc2VsZWN0ZWRQaWNrZXI6IEJlaGF2aW9yU3ViamVjdDwnZGF5JyB8ICdtb250aCcgfCAneWVhcic+ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PCdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJz4oJ2RheScpO1xuICBhYnN0cmFjdCBjYWxlbmRhcjpcbiAgICB8IERheU1vZGVsW11cbiAgICB8IHsgY3VycmVudE1vbnRoOiBEYXlNb2RlbFtdOyBuZXh0TW9udGg6IERheU1vZGVsW10gfTtcblxuICBwdWJsaWMgYWxpdmUgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIGdlbmVyYXRlQ2FsZW5kYXIoXG4gICAgc2VsZWN0ZWREYXRlOiBEYXlqcyxcbiAgICB5ZWFyOiBudW1iZXIsXG4gICAgbW9udGg6IG51bWJlcixcbiAgICBtaW5NYXg6IE1pbk1heERhdGVNb2RlbFxuICApOiBEYXlNb2RlbFtdIHtcbiAgICBjb25zdCBjYWxlbmRhclN0YXJ0RGF5ID0gc2VsZWN0ZWREYXRlXG4gICAgICAuc2V0KCd5ZWFyJywgeWVhcilcbiAgICAgIC5zZXQoJ21vbnRoJywgbW9udGgpXG4gICAgICAuc2V0KCdkYXRlJywgMSlcbiAgICAgIC5zdGFydE9mKCd3ZWVrJyk7XG4gICAgY29uc3QgY2FsZW5kYXIgPSBuZXcgQXJyYXkoNDIpLmZpbGwoMSkubWFwKCh2LCBpKSA9PiB7XG4gICAgICByZXR1cm4gY2FsZW5kYXJTdGFydERheS5hZGQoaSwgJ2RheScpO1xuICAgIH0pO1xuICAgIHJldHVybiBjYWxlbmRhci5tYXAoZCA9PiB7XG4gICAgICByZXR1cm4gbmV3IERheU1vZGVsKHtcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoZC50b0RhdGUoKSksXG4gICAgICAgIGlzQ3VycmVudE1vbnRoOiBtb250aCA9PT0gZC5tb250aCgpLFxuICAgICAgICBkaXNhYmxlZDpcbiAgICAgICAgICAhdGhpcy5pc1N1aXRhYmxlTWluRGF0ZShkLnRvRGF0ZSgpLCBtaW5NYXgubWluKSB8fFxuICAgICAgICAgICF0aGlzLmlzU3VpdGFibGVNYXhEYXRlKGQudG9EYXRlKCksIG1pbk1heC5tYXgpLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5pc1NlbGVjdGVkKGQudG9EYXRlKCksIHNlbGVjdGVkRGF0ZS50b0RhdGUoKSksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzU3VpdGFibGVNaW5EYXRlKGQ6IERhdGUsIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgZGF5anMobmV3IERhdGUobWluRGF0ZSkpLnN0YXJ0T2YoJ2RhdGUnKS50b0RhdGUoKSA8PSBuZXcgRGF0ZShkKSB8fFxuICAgICAgIW1pbkRhdGVcbiAgICApO1xuICB9XG5cbiAgaXNTdWl0YWJsZU1heERhdGUoZDogRGF0ZSwgbWF4RGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcikge1xuICAgIHJldHVybiAoXG4gICAgICBuZXcgRGF0ZShkKSA8IGRheWpzKG5ldyBEYXRlKG1heERhdGUpKS5lbmRPZignZGF0ZScpLnRvRGF0ZSgpIHx8XG4gICAgICAhbWF4RGF0ZVxuICAgICk7XG4gIH1cblxuICBpc1NlbGVjdGVkKGRhdGU6IERhdGUsIHNlbGVjdGVkRGF0ZTogRGF0ZSkge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWREYXRlID0gZGF0ZS5nZXREYXRlKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RGF0ZSgpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpID09PSBzZWxlY3RlZERhdGU/LmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgaXNTZWxlY3RlZE1vbnRoID0gZGF0ZS5nZXRNb250aCgpID09PSBzZWxlY3RlZERhdGU/LmdldE1vbnRoKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGlzU2VsZWN0ZWREYXRlICYmIGlzU2VsZWN0ZWRNb250aCAmJiBpc1NlbGVjdGVkWWVhciAmJiAhdGhpcy5pc0RhdGVOdWxsXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdFBpY2tlcihlbnRpdHk6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJykge1xuICAgIHRoaXMuc2VsZWN0ZWRQaWNrZXIubmV4dChlbnRpdHkpO1xuICB9XG5cbiAgc2VsZWN0TW9udGgobW9udGg6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudE1vbnRoLm5leHQobW9udGgpO1xuICAgIHRoaXMuc2VsZWN0UGlja2VyKCdkYXknKTtcbiAgfVxuXG4gIHNlbGVjdFllYXIoeWVhcjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRZZWFyKHllYXIpO1xuICAgIHRoaXMuc2VsZWN0UGlja2VyKCdkYXknKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUNhbGVuZGFyRGF0YSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgaWYgKGNoYW5nZXNbJ29wZW4nXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFBpY2tlci5uZXh0KCdkYXknKVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUNhbGVuZGFyRGF0YShzZWxlY3RlZERhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBsZXQgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgICBpZiAoIXRoaXMuaXNTdWl0YWJsZU1pbkRhdGUobmV3IERhdGUoc2VsZWN0ZWREYXRlKSwgdGhpcy5taW4pKSB7XG4gICAgICBkYXRlPXRoaXMubWluXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1N1aXRhYmxlTWF4RGF0ZShuZXcgRGF0ZShzZWxlY3RlZERhdGUpLCB0aGlzLm1heCkpIHtcbiAgICAgIGRhdGU9dGhpcy5tYXhcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0ZT1zZWxlY3RlZERhdGVcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50TW9udGgubmV4dChuZXcgRGF0ZShkYXRlKS5nZXRNb250aCgpKTtcbiAgICB0aGlzLmN1cnJlbnRZZWFyLm5leHQobmV3IERhdGUoZGF0ZSkuZ2V0RnVsbFllYXIoKSk7XG4gICAgdGhpcy5taW5NYXgubmV4dCh7bWluOiB0aGlzLm1pbiwgbWF4OiB0aGlzLm1heH0pO1xuICB9XG5cbiAgc2V0WWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRZZWFyLm5leHQoeWVhcik7XG4gIH1cblxuICBjaGFuZ2VNb250aChtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpIHtcbiAgICBjb25zdCB7YXZhaWxhYmxlWWVhciwgYXZhaWxhYmxlTW9udGh9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIoXG4gICAgICBtb250aCxcbiAgICAgIHllYXJcbiAgICApO1xuICAgIHRoaXMuY3VycmVudE1vbnRoLm5leHQoYXZhaWxhYmxlTW9udGgpO1xuICAgIHRoaXMuY3VycmVudFllYXIubmV4dChhdmFpbGFibGVZZWFyKTtcbiAgfVxuXG4gIGdldEF2YWlsYWJsZU1vbnRoWWVhcihtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpIHtcbiAgICBpZiAobW9udGggPiAxMSkge1xuICAgICAgcmV0dXJuIHthdmFpbGFibGVNb250aDogbW9udGggLSAxMiwgYXZhaWxhYmxlWWVhcjogeWVhciArIDF9O1xuICAgIH1cbiAgICBpZiAobW9udGggPCAwKSB7XG4gICAgICByZXR1cm4ge2F2YWlsYWJsZU1vbnRoOiAxMiArIG1vbnRoLCBhdmFpbGFibGVZZWFyOiB5ZWFyIC0gMX07XG4gICAgfVxuICAgIHJldHVybiB7YXZhaWxhYmxlTW9udGg6IG1vbnRoLCBhdmFpbGFibGVZZWFyOiB5ZWFyfTtcbiAgfVxuXG4gIGdldE1vdGhOYW1lKG1vbnRoOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbGUubW9udGhzW21vbnRoXTtcbiAgfVxuXG4gIHNlbGVjdERhdGUoZGF0ZTogRGF0ZSkge1xuICAgIHRoaXMuc2V0RGF0ZS5lbWl0KGRhdGUpO1xuICB9XG5cbiAgc2Nyb2xsTW9udGggPSAoZTogYW55LCBtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBkZWx0YSA9IGU/LmRlbHRhWSA/PyBlO1xuICAgIGlmIChlIGluc3RhbmNlb2YgV2hlZWxFdmVudCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoZGVsdGEgPiAwKSB7XG4gICAgICB0aGlzLmNoYW5nZU1vbnRoKG1vbnRoIC0gMSwgeWVhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hhbmdlTW9udGgobW9udGggKyAxLCB5ZWFyKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -93,7 +93,7 @@ export class BasePicker {
93
93
  return new Date(date).toLocaleString([], {
94
94
  year: 'numeric',
95
95
  month: '2-digit',
96
- day: '2-digit',
96
+ day: '2-digit', hourCycle: 'h24',
97
97
  hour: this.showTime ? '2-digit' : undefined,
98
98
  minute: this.showTime ? '2-digit' : undefined,
99
99
  });
@@ -110,4 +110,4 @@ export class BasePicker {
110
110
  return new Date(date);
111
111
  }
112
112
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2Jhc2UtcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQVExQixNQUFNLE9BQWdCLFVBQVU7SUF3QmxCO0lBQ0E7SUFDQTtJQVRMLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsQ0FBUztJQUNsQixjQUFjLENBQWlCO0lBRXRDLFlBQ1ksV0FBdUIsRUFDdkIsSUFBdUIsRUFDdkIsUUFBa0I7UUFGbEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUU1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBVUQsV0FBVyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBVTtRQUNuQixJ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WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXNraXRvT3B0aW9ucyB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICcuLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7IFZlcnRpY2FsQWxpZ24gfSBmcm9tICcuLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7IHZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3ZpZXctdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuL21vZGVsL2Zyb20tdG8ubW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVBpY2tlciB7XG4gIGFic3RyYWN0IG1hc2s6IHN0cmluZztcbiAgYWJzdHJhY3QgZGF0ZTtcbiAgYWJzdHJhY3QgbG9jYWxlOiBzdHJpbmc7XG4gIGFic3RyYWN0IHNob3dUaW1lOiBib29sZWFuO1xuICBhYnN0cmFjdCBtaW5EYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBhYnN0cmFjdCBtYXhEYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBhYnN0cmFjdCBpbnZhbGlkOiBib29sZWFuO1xuICBhYnN0cmFjdCBkaXNhYmxlZDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgYWxpZ246IEFsaWduO1xuICBhYnN0cmFjdCB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduO1xuICBhYnN0cmFjdCB2aWV3VHlwZTogdmlld1R5cGU7XG4gIGFic3RyYWN0IGFwcGVuZFRvQm9keTogYm9vbGVhbjtcbiAgYWJzdHJhY3QgYmFja2Ryb3A6IGJvb2xlYW47XG4gIGFic3RyYWN0IGFsbG93TnVsbDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gIGFic3RyYWN0IHNlbGVjdERhdGU6IEV2ZW50RW1pdHRlcjxEYXRlIHwgRGF0ZUZyb21Ub01vZGVsPjtcbiAgcHVibGljIG9wZW4gPSBmYWxzZTtcbiAgYWJzdHJhY3Qgc2VsZWN0ZWREYXRlOiBSZXBsYXlTdWJqZWN0PGFueT47XG4gIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuICBwdWJsaWMgaW5wdXRUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBtYXNraXRvT3B0aW9uczogTWFza2l0b09wdGlvbnM7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIGRhdGVQaXBlOiBEYXRlUGlwZVxuICApIHtcbiAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuY2hlY2tOdWxsKCk7XG4gIH1cblxuICBhYnN0cmFjdCBvbkNoYW5nZShkYXRlOiBEYXRlKTtcblxuICBhYnN0cmFjdCBwcmVwYXJlSW5wdXQoKTtcblxuICBhYnN0cmFjdCBvbkJsdXIoKTtcblxuICBhYnN0cmFjdCBzZXREYXRlKGRhdGUpO1xuXG4gIGNoYW5nZUlucHV0KHYpIHtcbiAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKHYpO1xuICB9XG5cbiAgY2hhbmdlUGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMubWFzay5zcGxpdCgnJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IHZhbHVlLmxlbmd0aCA+IGk7IGkrKykge1xuICAgICAgdmFsLnNwbGljZShpLCAxLCB2YWx1ZVtpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHZhbC5qb2luKCcnKTtcbiAgfVxuXG4gIG9wZW5DaGFuZ2UoZTogYm9vbGVhbikge1xuICAgIGlmICghZSkge1xuICAgICAgdGhpcy5vbkJsdXIoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuID0gZTtcbiAgfVxuXG4gIGNoZWNrTnVsbCgpIHtcbiAgICBpZiAoIXRoaXMuZGF0ZSAmJiB0aGlzLmFsbG93TnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShuZXcgRGF0ZSgpLCAnZGQuTU0ueXl5eSwgSEg6bW0nKTtcbiAgfVxuXG4gIG9wZW5QaWNrZXIgPSAoc2hvdzogYm9vbGVhbikgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3BlbiA9IHNob3c7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGNoYW5nZVNlbGVjdGVkRGF0ZShkYXRlLCBzZWxlY3RlZERhdGU/KSB7XG4gICAgdGhpcy5zZXREYXRlKGRhdGUpO1xuICAgIHRoaXMuZW1pdFZhbHVlKGRhdGUpO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgZW1pdFZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZUNoYW5nZSh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuZGF0ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQodmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgaXNWYWx1ZUNoYW5nZSh2YWx1ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpICE9PSBuZXcgRGF0ZSh0aGlzLmRhdGUpLmdldFRpbWUoKTtcbiAgfVxuXG4gIGNoZWNrRW50ZXIoZSkge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgIHRoaXMub25CbHVyKCk7XG4gICAgfVxuICAgIGlmIChlLmtleSA9PT0gJy0nKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gIH1cblxuICBpc0F2YWlsYWJsZUxlbmd0aCh2YWw6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpIHtcbiAgICBpZiAodmFsPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB2YWwubGVuZ3RoID09PSBsZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldERhdGVGcm9tU3RyKHN0cjogc3RyaW5nLCBzZXBhcmF0b3IgPSAnLicpIHtcbiAgICBjb25zdCBkYXRlID0gc3RyPy5zcGxpdChzZXBhcmF0b3IpO1xuICAgIGNvbnN0IGRheSA9IHRoaXMuaXNBdmFpbGFibGVMZW5ndGgoZGF0ZT8uWzBdLCAyKSA/IE51bWJlcihkYXRlWzBdKSA6IG51bGw7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLmlzQXZhaWxhYmxlTGVuZ3RoKGRhdGU/LlsxXSwgMikgPyBOdW1iZXIoZGF0ZVsxXSkgOiBudWxsO1xuICAgIGNvbnN0IHllYXIgPSB0aGlzLmlzQXZhaWxhYmxlTGVuZ3RoKGRhdGU/LlsyXSwgNCkgPyBOdW1iZXIoZGF0ZVsyXSkgOiBudWxsO1xuICAgIHJldHVybiB7IGRheSwgbW9udGgsIHllYXIgfTtcbiAgfVxuXG4gIGdldFRpbWVGcm9tU3RyKHN0cjogc3RyaW5nLCBzZXBhcmF0b3IgPSAnOicpIHtcbiAgICBjb25zdCB0aW1lID0gc3RyPy50cmltKCkuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICBjb25zdCBob3VycyA9IHRoaXMuaXNBdmFpbGFibGVMZW5ndGgodGltZT8uWzBdLCAyKSA/IE51bWJlcih0aW1lWzBdKSA6IG51bGw7XG4gICAgY29uc3QgbWlucyA9IHRoaXMuaXNBdmFpbGFibGVMZW5ndGgodGltZT8uWzFdLCAyKSA/IE51bWJlcih0aW1lWzFdKSA6IG51bGw7XG4gICAgcmV0dXJuIHsgaG91cnMsIG1pbnMgfTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgZ2V0TG9jYWxlU3RyaW5nKGRhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9Mb2NhbGVTdHJpbmcoW10sIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXI6IHRoaXMuc2hvd1RpbWUgPyAnMi1kaWdpdCcgOiB1bmRlZmluZWQsXG4gICAgICBtaW51dGU6IHRoaXMuc2hvd1RpbWUgPyAnMi1kaWdpdCcgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVEYXRlKFxuICAgIG1pbjogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICBtYXg6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsXG4gICAgZGF0ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBtaW5EYXRlID10aGlzLnNob3dUaW1lP25ldyBEYXRlKG1pbik6IGRheWpzKG5ldyBEYXRlKG1pbikpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLnNob3dUaW1lP25ldyBEYXRlKG1heCk6ZGF5anMobmV3IERhdGUobWF4KSkuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuICAgIGlmIChtaW4gJiYgbWluRGF0ZS5nZXRUaW1lKCkgPj0gbmV3IERhdGUoZGF0ZSkuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gbWluRGF0ZXx8bmV3IERhdGUoKTtcbiAgICB9XG4gICAgaWYgKG1heCAmJiBtYXhEYXRlLmdldFRpbWUoKSA8PSBuZXcgRGF0ZShkYXRlKS5nZXRUaW1lKCkpIHtcbiAgICAgIHJldHVybiBtYXhEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gIH1cbn1cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2Jhc2UtcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQVMxQixNQUFNLE9BQWdCLFVBQVU7SUF3QmxCO0lBQ0E7SUFDQTtJQVRMLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsQ0FBUztJQUNsQixjQUFjLENBQWlCO0lBRXRDLFlBQ1ksV0FBdUIsRUFDdkIsSUFBdUIsRUFDdkIsUUFBa0I7UUFGbEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUU1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBVUQsV0FBVyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBVTtRQUNuQixJ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Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXNraXRvT3B0aW9ucyB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFsaWduIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWduIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgRGF0ZUZyb21Ub01vZGVsIH0gZnJvbSAnLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCB7VGV0YUxvY2FsaXNhdGlvbn0gZnJvbSBcIi4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvblwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVBpY2tlciB7XG4gIGFic3RyYWN0IG1hc2s6IHN0cmluZztcbiAgYWJzdHJhY3QgZGF0ZTtcbiAgYWJzdHJhY3QgbG9jYWxlOiBPYnNlcnZhYmxlPFRldGFMb2NhbGlzYXRpb24+O1xuICBhYnN0cmFjdCBzaG93VGltZTogYm9vbGVhbjtcbiAgYWJzdHJhY3QgbWluRGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgYWJzdHJhY3QgbWF4RGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgYWJzdHJhY3QgaW52YWxpZDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGFic3RyYWN0IGFsaWduOiBBbGlnbjtcbiAgYWJzdHJhY3QgdmVydGljYWxBbGlnbjogVmVydGljYWxBbGlnbjtcbiAgYWJzdHJhY3Qgdmlld1R5cGU6IHZpZXdUeXBlO1xuICBhYnN0cmFjdCBhcHBlbmRUb0JvZHk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGJhY2tkcm9wOiBib29sZWFuO1xuICBhYnN0cmFjdCBhbGxvd051bGw6IGJvb2xlYW47XG4gIGFic3RyYWN0IGlucHV0OiBFbGVtZW50UmVmO1xuICBhYnN0cmFjdCBzZWxlY3REYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IERhdGVGcm9tVG9Nb2RlbD47XG4gIHB1YmxpYyBvcGVuID0gZmFsc2U7XG4gIGFic3RyYWN0IHNlbGVjdGVkRGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+O1xuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcbiAgcHVibGljIGlucHV0VGV4dDogc3RyaW5nO1xuICBwdWJsaWMgbWFza2l0b09wdGlvbnM6IE1hc2tpdG9PcHRpb25zO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLmNoZWNrTnVsbCgpO1xuICB9XG5cbiAgYWJzdHJhY3Qgb25DaGFuZ2UoZGF0ZTogRGF0ZSk7XG5cbiAgYWJzdHJhY3QgcHJlcGFyZUlucHV0KCk7XG5cbiAgYWJzdHJhY3Qgb25CbHVyKCk7XG5cbiAgYWJzdHJhY3Qgc2V0RGF0ZShkYXRlKTtcblxuICBjaGFuZ2VJbnB1dCh2KSB7XG4gICAgdGhpcy5jaGFuZ2VQbGFjZWhvbGRlcih2KTtcbiAgfVxuXG4gIGNoYW5nZVBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB2YWwgPSB0aGlzLm1hc2suc3BsaXQoJycpO1xuICAgIGZvciAobGV0IGkgPSAwOyB2YWx1ZS5sZW5ndGggPiBpOyBpKyspIHtcbiAgICAgIHZhbC5zcGxpY2UoaSwgMSwgdmFsdWVbaV0pO1xuICAgIH1cblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB2YWwuam9pbignJyk7XG4gIH1cblxuICBvcGVuQ2hhbmdlKGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIWUpIHtcbiAgICAgIHRoaXMub25CbHVyKCk7XG4gICAgfVxuICAgIHRoaXMub3BlbiA9IGU7XG4gIH1cblxuICBjaGVja051bGwoKSB7XG4gICAgaWYgKCF0aGlzLmRhdGUgJiYgdGhpcy5hbGxvd051bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ2RkLk1NLnl5eXksIEhIOm1tJyk7XG4gIH1cblxuICBvcGVuUGlja2VyID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW4gPSBzaG93O1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZSwgc2VsZWN0ZWREYXRlPykge1xuICAgIHRoaXMuc2V0RGF0ZShkYXRlKTtcbiAgICB0aGlzLmVtaXRWYWx1ZShkYXRlKTtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIGVtaXRWYWx1ZSh2YWx1ZSkge1xuICAgIGlmICh0aGlzLmlzVmFsdWVDaGFuZ2UodmFsdWUpKSB7XG4gICAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuc2VsZWN0RGF0ZS5lbWl0KHZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsdWVDaGFuZ2UodmFsdWUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpLmdldFRpbWUoKSAhPT0gbmV3IERhdGUodGhpcy5kYXRlKS5nZXRUaW1lKCk7XG4gIH1cblxuICBjaGVja0VudGVyKGUpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuaW5wdXRUZXh0ID0gZS50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLm9uQmx1cigpO1xuICAgIH1cbiAgICBpZiAoZS5rZXkgPT09ICctJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICB9XG5cbiAgaXNBdmFpbGFibGVMZW5ndGgodmFsOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdmFsLmxlbmd0aCA9PT0gbGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXREYXRlRnJvbVN0cihzdHI6IHN0cmluZywgc2VwYXJhdG9yID0gJy4nKSB7XG4gICAgY29uc3QgZGF0ZSA9IHN0cj8uc3BsaXQoc2VwYXJhdG9yKTtcbiAgICBjb25zdCBkYXkgPSB0aGlzLmlzQXZhaWxhYmxlTGVuZ3RoKGRhdGU/LlswXSwgMikgPyBOdW1iZXIoZGF0ZVswXSkgOiBudWxsO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5pc0F2YWlsYWJsZUxlbmd0aChkYXRlPy5bMV0sIDIpID8gTnVtYmVyKGRhdGVbMV0pIDogbnVsbDtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5pc0F2YWlsYWJsZUxlbmd0aChkYXRlPy5bMl0sIDQpID8gTnVtYmVyKGRhdGVbMl0pIDogbnVsbDtcbiAgICByZXR1cm4geyBkYXksIG1vbnRoLCB5ZWFyIH07XG4gIH1cblxuICBnZXRUaW1lRnJvbVN0cihzdHI6IHN0cmluZywgc2VwYXJhdG9yID0gJzonKSB7XG4gICAgY29uc3QgdGltZSA9IHN0cj8udHJpbSgpLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmlzQXZhaWxhYmxlTGVuZ3RoKHRpbWU/LlswXSwgMikgPyBOdW1iZXIodGltZVswXSkgOiBudWxsO1xuICAgIGNvbnN0IG1pbnMgPSB0aGlzLmlzQXZhaWxhYmxlTGVuZ3RoKHRpbWU/LlsxXSwgMikgPyBOdW1iZXIodGltZVsxXSkgOiBudWxsO1xuICAgIHJldHVybiB7IGhvdXJzLCBtaW5zIH07XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGdldExvY2FsZVN0cmluZyhkYXRlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvTG9jYWxlU3RyaW5nKFtdLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgZGF5OiAnMi1kaWdpdCcsaG91ckN5Y2xlOidoMjQnLFxuICAgICAgaG91cjogdGhpcy5zaG93VGltZSA/ICcyLWRpZ2l0JyA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbnV0ZTogdGhpcy5zaG93VGltZSA/ICcyLWRpZ2l0JyA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldEF2YWlsYWJsZURhdGUoXG4gICAgbWluOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nLFxuICAgIG1heDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICBkYXRlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IG1pbkRhdGUgPXRoaXMuc2hvd1RpbWU/bmV3IERhdGUobWluKTogZGF5anMobmV3IERhdGUobWluKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuc2hvd1RpbWU/bmV3IERhdGUobWF4KTpkYXlqcyhuZXcgRGF0ZShtYXgpKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG4gICAgaWYgKG1pbiAmJiBtaW5EYXRlLmdldFRpbWUoKSA+PSBuZXcgRGF0ZShkYXRlKS5nZXRUaW1lKCkpIHtcbiAgICAgIHJldHVybiBtaW5EYXRlfHxuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIG1heERhdGUuZ2V0VGltZSgpIDw9IG5ldyBEYXRlKGRhdGUpLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuIG1heERhdGU7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKTtcbiAgfVxufVxuIl19