@datarailsshared/datarailsshared 1.4.122 → 1.4.124

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 (35) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +330 -363
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.124.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +13 -13
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +14 -14
  7. package/esm2015/lib/date-tags/date-tag.module.js +5 -18
  8. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +28 -21
  9. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +23 -18
  10. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +25 -23
  11. package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +26 -21
  12. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +27 -63
  13. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +22 -28
  14. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +11 -2
  15. package/esm2015/lib/dr-popover/dr-popover.component.js +31 -2
  16. package/esm2015/lib/dr-popover/dr-popover.directive.js +8 -1
  17. package/esm2015/lib/dr-popover/dr-popover.service.js +3 -2
  18. package/esm2015/lib/list-tags/list-tag.component.js +3 -8
  19. package/esm2015/lib/list-tags/list-tag.module.js +3 -9
  20. package/esm2015/lib/models/popover.js +1 -1
  21. package/fesm2015/datarailsshared-datarailsshared.js +355 -347
  22. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  23. package/lib/date-tags/day-tag/day-tag.component.d.ts +3 -5
  24. package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +1 -0
  25. package/lib/date-tags/month-tag/month-tag.component.d.ts +2 -6
  26. package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +2 -4
  27. package/lib/date-tags/week-tag/week-tag.component.d.ts +2 -9
  28. package/lib/date-tags/year-tag/year-tag.component.d.ts +2 -6
  29. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +2 -0
  30. package/lib/dr-popover/dr-popover.component.d.ts +11 -1
  31. package/lib/dr-popover/dr-popover.directive.d.ts +2 -0
  32. package/lib/list-tags/list-tag.component.d.ts +0 -3
  33. package/lib/models/popover.d.ts +1 -0
  34. package/package.json +1 -1
  35. package/datarailsshared-datarailsshared-1.4.122.tgz +0 -0
@@ -8,27 +8,26 @@ export class QuarterTagComponent extends AnyTagComponent {
8
8
  this.lockedDate = [];
9
9
  this.selectedValue = 0;
10
10
  this.quarters = [];
11
- this.dateFilter = (date) => {
12
- let status = true;
13
- this.lockedDate.forEach(timestamp => {
11
+ this.dateFilter = (quarter) => {
12
+ const quarterDate = moment.unix(quarter.value);
13
+ return !this.lockedDate.some((timestamp) => {
14
14
  const lockDate = moment.unix(timestamp);
15
- const quarterDate = moment.unix(date.value);
16
15
  if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {
17
- date.disable = true;
18
- status = false;
16
+ quarter.disabled = true;
17
+ return true;
19
18
  }
19
+ return false;
20
20
  });
21
- return status;
22
21
  };
23
22
  }
24
23
  ngOnInit() {
25
24
  this.initName();
26
25
  this.quarters = this.getQuarterOptions();
27
26
  for (const quarter of this.quarters) {
28
- quarter.disable = false;
27
+ quarter.disabled = false;
29
28
  if (quarter.isSelected) {
30
- this.selectedValue = quarter.value;
31
- this.chosenTagHandler(quarter.value);
29
+ this.selectedValue = quarter;
30
+ this.chosenTagHandler(quarter);
32
31
  }
33
32
  this.dateFilter(quarter);
34
33
  }
@@ -38,17 +37,13 @@ export class QuarterTagComponent extends AnyTagComponent {
38
37
  this.name = 'Quarter';
39
38
  }
40
39
  }
41
- changeSelectHandler(event) {
42
- this.chosenTagHandler(event.value);
43
- }
44
- chosenTagHandler(value) {
45
- const date = new Date(value * 1000);
46
- const resultDate = moment.utc(date);
40
+ chosenTagHandler(quarter) {
41
+ const resultDate = moment.unix(quarter.value).utc();
47
42
  const resultTag = {
48
43
  name: this.name,
49
- value: parseInt(resultDate.format('X'), 10),
44
+ value: resultDate.unix(),
50
45
  label: this.getQuarterLabel(resultDate.toString()),
51
- locked: !this.dateFilter(value)
46
+ locked: !this.dateFilter(quarter)
52
47
  };
53
48
  this.dateChange.emit(resultTag);
54
49
  }
@@ -91,12 +86,22 @@ export class QuarterTagComponent extends AnyTagComponent {
91
86
  }
92
87
  QuarterTagComponent.decorators = [
93
88
  { type: Component, args: [{
94
- template: "<div>\n <mat-form-field>\n <mat-select placeholder=\"{{name}}\" (selectionChange)=\"changeSelectHandler($event)\" [(value)]=\"selectedValue\">\n <mat-option *ngFor=\"let quarter of quarters\" [value]=\"quarter.value\"\n [disabled]=\"quarter.disable\">{{quarter.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n",
95
- selector: 'quarter-tag'
89
+ template: "<div>\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [items]=\"quarters\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n",
90
+ selector: 'quarter-tag',
91
+ styles: [`
92
+ .tag__label {
93
+ margin: 0 0 4px 0;
94
+ color: #0C142B;
95
+ font-size: 14px;
96
+ font-weight: 400;
97
+ line-height: 22px;
98
+
99
+ }
100
+ `]
96
101
  },] }
97
102
  ];
98
103
  QuarterTagComponent.ctorParameters = () => [];
99
104
  QuarterTagComponent.propDecorators = {
100
105
  lockedDate: [{ type: Input }]
101
106
  };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3F1YXJ0ZXItdGFnL3F1YXJ0ZXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU1qQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUtwRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTEgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBbUZyQixlQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUU1QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDcEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3BCLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ2xCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUM7SUE3RkYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFFeEIsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEM7WUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQXNCO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQUs7UUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sVUFBVSxHQUFXLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxTQUFTLEdBQWE7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDbEMsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM5QixNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMzQztRQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdEcsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxDQUFDO1FBQUMsSUFBSSxTQUFTLENBQUM7UUFDckIsTUFBTSxTQUFTLEdBQVUsRUFBRSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RELFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNYLEtBQUssRUFBRSxTQUFTLEdBQUcsSUFBSTtnQkFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO2dCQUN0QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hCLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUFTO1FBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsRixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQUk7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7WUF4RkosU0FBUyxTQUFDO2dCQUNQLHlZQUF5QztnQkFDekMsUUFBUSxFQUFFLGFBQWE7YUFDMUI7Ozs7eUJBRUksS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURhdGVUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS10YWcuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG4vLyBAdHMtaWdub3JlXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdxdWFydGVyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdxdWFydGVyLXRhZycsXG59KVxuZXhwb3J0IGNsYXNzIFF1YXJ0ZXJUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG4gICAgc2VsZWN0ZWRWYWx1ZSA9IDA7XG4gICAgcXVhcnRlcnM6IGFueVtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0TmFtZSgpO1xuICAgICAgICB0aGlzLnF1YXJ0ZXJzID0gdGhpcy5nZXRRdWFydGVyT3B0aW9ucygpO1xuXG4gICAgICAgIGZvciAoY29uc3QgcXVhcnRlciBvZiB0aGlzLnF1YXJ0ZXJzKSB7XG4gICAgICAgICAgICBxdWFydGVyLmRpc2FibGUgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKHF1YXJ0ZXIuaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHF1YXJ0ZXIudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHF1YXJ0ZXIudmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRhdGVGaWx0ZXIocXVhcnRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0TmFtZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICdRdWFydGVyJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZVNlbGVjdEhhbmRsZXIoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlICogMTAwMCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGU6IE1vbWVudCA9IG1vbWVudC51dGMoZGF0ZSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQocmVzdWx0RGF0ZS5mb3JtYXQoJ1gnKSwgMTApLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0UXVhcnRlckxhYmVsKHJlc3VsdERhdGUudG9TdHJpbmcoKSksXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgZ2V0UXVhcnRlck9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJzQmVmb3JlVG9kYXkgPSA4O1xuICAgICAgICBjb25zdCBxdWFydGVyc0FmdGVyVG9kYXkgPSA4O1xuICAgICAgICBjb25zdCBkYXRlTm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZGF0ZU5vd1VuaXggPSB0aGlzLmdldFVUQ1RpbWVzdGFtcChkYXRlTm93KTtcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IGRhdGVOb3dVbml4O1xuICAgICAgICBsZXQgdGVtcERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlICogMTAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhZnRlckRlZmF1bHQgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRhdGVOb3dVbml4IC0gZGVmYXVsdFZhbHVlKSAvIDc3NzYwMDAwMDApICsgcXVhcnRlcnNBZnRlclRvZGF5O1xuICAgICAgICBhZnRlckRlZmF1bHQgPSBNYXRoLm1pbihhZnRlckRlZmF1bHQsIDEwMCk7XG4gICAgICAgIGxldCBpOyBsZXQgdGVtcFZhbHVlO1xuICAgICAgICBjb25zdCB0b19yZXR1cm46IGFueVtdID0gW107XG4gICAgICAgIGZvciAoaSA9IDAgLSBxdWFydGVyc0JlZm9yZVRvZGF5OyBpIDw9IGFmdGVyRGVmYXVsdDsgaSsrKSB7XG4gICAgICAgICAgICB0ZW1wRGF0ZSA9IG5ldyBEYXRlKGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0ZW1wRGF0ZS5zZXREYXRlKDE1KTtcbiAgICAgICAgICAgIHRlbXBEYXRlLnNldE1vbnRoKHRlbXBEYXRlLmdldE1vbnRoKCkgKyAzICogaSk7XG4gICAgICAgICAgICB0ZW1wVmFsdWUgPSB0aGlzLmdldFVUQ1RpbWVzdGFtcCh0ZW1wRGF0ZSk7XG4gICAgICAgICAgICB0b19yZXR1cm4ucHVzaCh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHRlbXBWYWx1ZSAvIDEwMDAsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0UXVhcnRlckxhYmVsKHRlbXBWYWx1ZSksXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZDogKGkgPT09IDApLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRvX3JldHVybjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1YXJ0ZXJMYWJlbCh0aW1lVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVWYWx1ZSk7XG4gICAgICAgIHJldHVybiAnUScgKyBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSArIDEpICsgJyAnICsgZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VVRDVGltZXN0YW1wKGRhdGUpIHtcbiAgICAgICAgY29uc3QgbW9udGggPSBNYXRoLmZsb29yKGRhdGUuZ2V0TW9udGgoKSAvIDMpICogMztcbiAgICAgICAgcmV0dXJuIERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGgsIDEsIDEyLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyID0gKGRhdGUpID0+IHtcbiAgICAgICAgbGV0IHN0YXR1cyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5sb2NrZWREYXRlLmZvckVhY2godGltZXN0YW1wID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcbiAgICAgICAgICAgIGNvbnN0IHF1YXJ0ZXJEYXRlID0gbW9tZW50LnVuaXgoZGF0ZS52YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmIChsb2NrRGF0ZS55ZWFyKCkgPT09IHF1YXJ0ZXJEYXRlLnllYXIoKSAmJiBsb2NrRGF0ZS5tb250aCgpID09PSBxdWFydGVyRGF0ZS5tb250aCgpKSB7XG4gICAgICAgICAgICAgICAgZGF0ZS5kaXNhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9O1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3F1YXJ0ZXItdGFnL3F1YXJ0ZXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQWdCakMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFLcEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxILGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFVLEVBQUUsQ0FBQztRQThFckIsZUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNwRixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDeEIsT0FBTyxJQUFJLENBQUM7aUJBQ2Y7Z0JBRUQsT0FBTyxL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QUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RDLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEIsQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQVM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xGLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBSTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7OztZQTdGSixTQUFTLFNBQUM7Z0JBQ1AsK1NBQXlDO2dCQVd6QyxRQUFRLEVBQUUsYUFBYTt5QkFWZDs7Ozs7Ozs7O0tBU1I7YUFFSjs7Ozt5QkFFSSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZVRhZyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IEFueVRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtdGFnLmNvbXBvbmVudCc7XG4vLyBAdHMtaWdub3JlXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdxdWFydGVyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbYFxuICAgICAgICAudGFnX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA0cHggMDtcbiAgICAgICAgICAgIGNvbG9yOiAjMEMxNDJCO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXG4gICAgICAgIH1cbiAgICBgXSxcbiAgICBzZWxlY3RvcjogJ3F1YXJ0ZXItdGFnJyxcbn0pXG5leHBvcnQgY2xhc3MgUXVhcnRlclRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZFZhbHVlID0gMDtcbiAgICBxdWFydGVyczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXROYW1lKCk7XG4gICAgICAgIHRoaXMucXVhcnRlcnMgPSB0aGlzLmdldFF1YXJ0ZXJPcHRpb25zKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBxdWFydGVyIG9mIHRoaXMucXVhcnRlcnMpIHtcbiAgICAgICAgICAgIHF1YXJ0ZXIuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKHF1YXJ0ZXIuaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHF1YXJ0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHF1YXJ0ZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRhdGVGaWx0ZXIocXVhcnRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0TmFtZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICdRdWFydGVyJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIocXVhcnRlcikge1xuICAgICAgICBjb25zdCByZXN1bHREYXRlID0gbW9tZW50LnVuaXgocXVhcnRlci52YWx1ZSkudXRjKCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogcmVzdWx0RGF0ZS51bml4KCksXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRRdWFydGVyTGFiZWwocmVzdWx0RGF0ZS50b1N0cmluZygpKSxcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcihxdWFydGVyKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIGdldFF1YXJ0ZXJPcHRpb25zKCkge1xuICAgICAgICBjb25zdCBxdWFydGVyc0JlZm9yZVRvZGF5ID0gODtcbiAgICAgICAgY29uc3QgcXVhcnRlcnNBZnRlclRvZGF5ID0gODtcbiAgICAgICAgY29uc3QgZGF0ZU5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGRhdGVOb3dVbml4ID0gdGhpcy5nZXRVVENUaW1lc3RhbXAoZGF0ZU5vdyk7XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSBkYXRlTm93VW5peDtcbiAgICAgICAgbGV0IHRlbXBEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDA7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXRlTm93VW5peCAtIGRlZmF1bHRWYWx1ZSkgLyA3Nzc2MDAwMDAwKSArIHF1YXJ0ZXJzQWZ0ZXJUb2RheTtcbiAgICAgICAgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5taW4oYWZ0ZXJEZWZhdWx0LCAxMDApO1xuICAgICAgICBsZXQgaTsgbGV0IHRlbXBWYWx1ZTtcbiAgICAgICAgY29uc3QgdG9fcmV0dXJuOiBhbnlbXSA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwIC0gcXVhcnRlcnNCZWZvcmVUb2RheTsgaSA8PSBhZnRlckRlZmF1bHQ7IGkrKykge1xuICAgICAgICAgICAgdGVtcERhdGUgPSBuZXcgRGF0ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgdGVtcERhdGUuc2V0RGF0ZSgxNSk7XG4gICAgICAgICAgICB0ZW1wRGF0ZS5zZXRNb250aCh0ZW1wRGF0ZS5nZXRNb250aCgpICsgMyAqIGkpO1xuICAgICAgICAgICAgdGVtcFZhbHVlID0gdGhpcy5nZXRVVENUaW1lc3RhbXAodGVtcERhdGUpO1xuICAgICAgICAgICAgdG9fcmV0dXJuLnB1c2goe1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0ZW1wVmFsdWUgLyAxMDAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbCh0ZW1wVmFsdWUpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IChpID09PSAwKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b19yZXR1cm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWFydGVyTGFiZWwodGltZVZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lVmFsdWUpO1xuICAgICAgICByZXR1cm4gJ1EnICsgTWF0aC5mbG9vcigoZGF0ZS5nZXRNb250aCgpIC8gMykgKyAxKSArICcgJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVUQ1RpbWVzdGFtcChkYXRlKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gTWF0aC5mbG9vcihkYXRlLmdldE1vbnRoKCkgLyAzKSAqIDM7XG4gICAgICAgIHJldHVybiBEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoLCAxLCAxMiwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgZGF0ZUZpbHRlciA9IChxdWFydGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJEYXRlID0gbW9tZW50LnVuaXgocXVhcnRlci52YWx1ZSk7XG4gICAgICAgIHJldHVybiAhdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgaWYgKGxvY2tEYXRlLnllYXIoKSA9PT0gcXVhcnRlckRhdGUueWVhcigpICYmIGxvY2tEYXRlLm1vbnRoKCkgPT09IHF1YXJ0ZXJEYXRlLm1vbnRoKCkpIHtcbiAgICAgICAgICAgICAgICBxdWFydGVyLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { AnyTagComponent } from '../date-tag.component';
3
- import { FormControl } from '@angular/forms';
4
3
  import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
5
4
  import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
6
5
  // @ts-ignore
@@ -21,90 +20,45 @@ export class WeekTagComponent extends AnyTagComponent {
21
20
  constructor() {
22
21
  super();
23
22
  this.lockedDate = [];
24
- this.date = new FormControl(moment());
25
- this.selectedValue = '';
26
23
  this.dateFilter = (date) => {
27
- const calendarDate = moment(date);
28
- let status = true;
29
- this.lockedDate.forEach(timestamp => {
24
+ const week = date.week();
25
+ const year = date.year();
26
+ return !this.lockedDate.some((timestamp) => {
30
27
  const lockDate = moment.unix(timestamp);
31
- return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());
28
+ return lockDate.week() === week && lockDate.year() === year;
32
29
  });
33
- return status;
34
30
  };
35
31
  }
36
32
  ngOnInit() {
37
33
  this.initName();
38
- const now = new Date();
39
- now.setHours(0, 0, 0, 0);
40
- const dateUnix = this.getUTCTimestamp(this.getMonday(now));
41
- let default_value_time = dateUnix;
42
- const one_day_in_seconds = 86400;
43
- if (this.defaultValue) {
44
- default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;
45
- }
46
- const default_date = new Date(default_value_time);
47
- const weekNumber = this.getWeekNumberByDate(default_date);
48
- const yearNumber = default_date.getFullYear();
49
- const dateStr = `${yearNumber}-W${weekNumber}`;
50
- this.dateObj.date = dateStr;
51
- this.selectedValue = dateStr;
52
- this.chosenTagHandler(default_date);
34
+ const timestamp = this.defaultValue || moment().unix();
35
+ this.date = timestamp;
36
+ this.dateObj.date = timestamp;
37
+ this.chosenTagHandler(timestamp);
53
38
  }
54
39
  initName() {
55
40
  if (!this.name) {
56
41
  this.name = 'Week';
57
42
  }
58
43
  }
59
- chosenDateHandler(normalizedDay) {
60
- const date = moment(normalizedDay).unix();
61
- this.chosenTagHandler(date);
62
- }
63
44
  chosenTagHandler(value) {
64
- let date;
65
- console.log('chosenTag', value);
66
- if (value > 1000000000000) {
67
- date = new Date(value);
68
- }
69
- else {
70
- date = new Date(value * 1000);
71
- }
72
- const resultDate = moment(date);
45
+ const resultDate = moment.unix(value).utc();
73
46
  const resultTag = {
74
47
  name: this.name,
75
- value: parseInt(resultDate.format('X'), 10),
76
- label: this.getWeekLabel(date),
77
- locked: !this.dateFilter(value)
48
+ value: resultDate.unix(),
49
+ label: this.getWeekLabel(resultDate),
50
+ locked: !this.dateFilter(resultDate)
78
51
  };
79
52
  console.log('resultTag', resultTag);
80
53
  this.dateChange.emit(resultTag);
81
54
  }
82
- getWeekLabel(date) {
83
- return 'W' + this.pad(moment(date).isoWeek(), 2) +
84
- ' ' + moment(date).year();
85
- }
86
- getUTCTimestamp(date) {
87
- return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);
88
- }
89
- getMonday(date) {
90
- const day = date.getDay() || 7;
91
- if (day !== 1) {
92
- date.setHours(-24 * (day - 1));
93
- }
94
- return date;
95
- }
96
- getWeekNumberByDate(date) {
97
- return this.pad(moment(date).isoWeek(), 2);
98
- }
99
- pad(n, width, z = '0') {
100
- z = z || '0';
101
- n = n + '';
102
- return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
55
+ getWeekLabel(moment) {
56
+ return `W${moment.isoWeek()} ${moment.year()}`;
103
57
  }
104
58
  }
105
59
  WeekTagComponent.decorators = [
106
60
  { type: Component, args: [{
107
- template: "<div>\n <mat-form-field class=\"date-select-box\">\n <input\n matInput\n placeholder=\"{{name}}\"\n name=\"week\"\n [formControl]=\"date\"\n [matDatepicker]=\"datepicker\"\n [matDatepickerFilter]=\"dateFilter\"\n (ngModelChange)=\"chosenDateHandler($event)\">\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #datepicker\n startView=\"month\"\n ></mat-datepicker>\n </mat-form-field>\n</div>\n",
61
+ template: "<div>\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"week\"\n [(ngModel)]=\"date\"\n [datepickerFilter]=\"dateFilter\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n",
108
62
  selector: 'week-tag',
109
63
  providers: [
110
64
  {
@@ -113,7 +67,17 @@ WeekTagComponent.decorators = [
113
67
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
114
68
  },
115
69
  { provide: MAT_DATE_FORMATS, useValue: ɵ0 },
116
- ]
70
+ ],
71
+ styles: [`
72
+ .tag__label {
73
+ margin: 0 0 4px 0;
74
+ color: #0C142B;
75
+ font-size: 14px;
76
+ font-weight: 400;
77
+ line-height: 22px;
78
+
79
+ }
80
+ `]
117
81
  },] }
118
82
  ];
119
83
  WeekTagComponent.ctorParameters = () => [];
@@ -121,4 +85,4 @@ WeekTagComponent.propDecorators = {
121
85
  lockedDate: [{ type: Input }]
122
86
  };
123
87
  export { ɵ0 };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3dlZWstdGFnL3dlZWstdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLFlBQVksR0FBRztJQUNqQixLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsU0FBUztLQUN2QjtJQUNELE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsY0FBYyxFQUFFLFdBQVc7UUFDM0IsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNsQztDQUNKLENBQUM7V0FXNkMsWUFBWTtBQUczRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQU1qRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTkgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUVoQyxTQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQXVDbkIsZUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEIs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QUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFHO1FBQ3pCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0UsQ0FBQzs7O1lBakhKLFNBQVMsU0FBQztnQkFDUCxrbkJBQXNDO2dCQUN0QyxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO3dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7cUJBQzNEO29CQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsSUFBYyxFQUFFO2lCQUN4RDthQUNKOzs7O3lCQUVJLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEFueVRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5cbmNvbnN0IFdFRUtfRk9STUFUUyA9IHtcbiAgICBwYXJzZToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdXVy1ZWVlZJyxcbiAgICB9LFxuICAgIGRpc3BsYXk6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnW1dlZWtdIFdXLCBZWVlZJyxcbiAgICAgICAgbW9udGhZZWFyTGFiZWw6ICdNTU1NIFlZWVknLFxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknXG4gICAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnd2Vlay10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnd2Vlay10YWcnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBXRUVLX0ZPUk1BVFMgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXZWVrVGFnQ29tcG9uZW50IGV4dGVuZHMgQW55VGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gICAgZGF0ZSA9IG5ldyBGb3JtQ29udHJvbChtb21lbnQoKSk7XG4gICAgc2VsZWN0ZWRWYWx1ZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE5hbWUoKTtcblxuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBub3cuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgICAgICAgY29uc3QgZGF0ZVVuaXggPSB0aGlzLmdldFVUQ1RpbWVzdGFtcCh0aGlzLmdldE1vbmRheShub3cpKTtcbiAgICAgICAgbGV0IGRlZmF1bHRfdmFsdWVfdGltZSA9IGRhdGVVbml4O1xuICAgICAgICBjb25zdCBvbmVfZGF5X2luX3NlY29uZHMgPSA4NjQwMDtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICBkZWZhdWx0X3ZhbHVlX3RpbWUgPSAodGhpcy5kZWZhdWx0VmFsdWUgKyBvbmVfZGF5X2luX3NlY29uZHMpICogMTAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRfZGF0ZSA9IG5ldyBEYXRlKGRlZmF1bHRfdmFsdWVfdGltZSk7XG4gICAgICAgIGNvbnN0IHdlZWtOdW1iZXIgPSB0aGlzLmdldFdlZWtOdW1iZXJCeURhdGUoZGVmYXVsdF9kYXRlKTtcbiAgICAgICAgY29uc3QgeWVhck51bWJlciA9IGRlZmF1bHRfZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBkYXRlU3RyID0gYCR7IHllYXJOdW1iZXIgfS1XJHsgd2Vla051bWJlciB9YDtcbiAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSBkYXRlU3RyO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBkYXRlU3RyO1xuICAgICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoZGVmYXVsdF9kYXRlKTtcbiAgICB9XG5cbiAgICBpbml0TmFtZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICdXZWVrJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNob3NlbkRhdGVIYW5kbGVyKG5vcm1hbGl6ZWREYXkpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChub3JtYWxpemVkRGF5KS51bml4KCk7XG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcihkYXRlKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyID0gKGRhdGUpID0+IHtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJEYXRlID0gbW9tZW50KGRhdGUpO1xuICAgICAgICBsZXQgc3RhdHVzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmxvY2tlZERhdGUuZm9yRWFjaCh0aW1lc3RhbXAgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuXG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzID0gIShsb2NrRGF0ZS53ZWVrKCkgPT09IGNhbGVuZGFyRGF0ZS53ZWVrKCkgJiYgbG9ja0RhdGUueWVhcigpID09PSBjYWxlbmRhckRhdGUueWVhcigpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9O1xuXG4gICAgY2hvc2VuVGFnSGFuZGxlcih2YWx1ZSkge1xuICAgICAgICBsZXQgZGF0ZTtcbiAgICAgICAgY29uc29sZS5sb2coJ2Nob3NlblRhZycsIHZhbHVlKTtcbiAgICAgICAgaWYgKHZhbHVlID4gMTAwMDAwMDAwMDAwMCkge1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0RGF0ZTogTW9tZW50ID0gbW9tZW50KGRhdGUpO1xuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHBhcnNlSW50KHJlc3VsdERhdGUuZm9ybWF0KCdYJyksIDEwKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFdlZWtMYWJlbChkYXRlKSxcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcih2YWx1ZSlcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdFRhZycsIHJlc3VsdFRhZyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRXZWVrTGFiZWwoZGF0ZSkge1xuICAgICAgICByZXR1cm4gJ1cnICsgdGhpcy5wYWQobW9tZW50KGRhdGUpLmlzb1dlZWsoKSwgMikgK1xuICAgICAgICAgICAgJyAnICsgbW9tZW50KGRhdGUpLnllYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVUQ1RpbWVzdGFtcChkYXRlKSB7XG4gICAgICAgIHJldHVybiBEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksIDEyLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vbmRheShkYXRlKSB7XG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF5KCkgfHwgNztcbiAgICAgICAgaWYgKGRheSAhPT0gMSkge1xuICAgICAgICAgICAgZGF0ZS5zZXRIb3VycygtMjQgKiAoZGF5IC0gMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V2Vla051bWJlckJ5RGF0ZShkYXRlOiBEYXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZChtb21lbnQoZGF0ZSkuaXNvV2VlaygpLCAyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZChuLCB3aWR0aCwgeiA9ICcwJykge1xuICAgICAgICB6ID0geiB8fCAnMCc7XG4gICAgICAgIG4gPSBuICsgJyc7XG4gICAgICAgIHJldHVybiBuLmxlbmd0aCA+PSB3aWR0aCA/IG4gOiBuZXcgQXJyYXkod2lkdGggLSBuLmxlbmd0aCArIDEpLmpvaW4oeikgKyBuO1xuICAgIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3dlZWstdGFnL3dlZWstdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxhQUFhO0FBQ2IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sWUFBWSxHQUFHO0lBQ2pCLEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxTQUFTO0tBQ3ZCO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixjQUFjLEVBQUUsV0FBVztRQUMzQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2xDO0NBQ0osQ0FBQztXQXFCNkMsWUFBWTtBQUczRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQUtqRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTEgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQXNCaEMsZUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUV6QixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7SUF4QkYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBRTtRQUN4RCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFZRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzFCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDNUMsTUFBTSxTQUFTLEdBQWE7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1NBQ3ZDLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQU07UUFDdkIsT0FBUSxJQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUcsSUFBSyxNQUFNLENBQUMsSUFBSSxFQUFHLEVBQUUsQ0FBQztJQUN4RCxDQUFDOzs7WUFyRUosU0FBUyxTQUFDO2dCQUNQLGlTQUFzQztnQkFDdEMsUUFBUSxFQUFFLFVBQVU7Z0JBV3BCLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUMzRDtvQkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQWMsRUFBRTtpQkFDeEQ7eUJBakJROzs7Ozs7Ozs7S0FTUjthQVNKOzs7O3lCQUVJLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS10YWcuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5cbmNvbnN0IFdFRUtfRk9STUFUUyA9IHtcbiAgICBwYXJzZToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdXVy1ZWVlZJyxcbiAgICB9LFxuICAgIGRpc3BsYXk6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnW1dlZWtdIFdXLCBZWVlZJyxcbiAgICAgICAgbW9udGhZZWFyTGFiZWw6ICdNTU1NIFlZWVknLFxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknXG4gICAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnd2Vlay10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnd2Vlay10YWcnLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgLnRhZ19fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgNHB4IDA7XG4gICAgICAgICAgICBjb2xvcjogIzBDMTQyQjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcblxuICAgICAgICB9XG4gICAgYF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IFdFRUtfRk9STUFUUyB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdlZWtUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG5cbiAgICBkYXRlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE5hbWUoKTtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5kZWZhdWx0VmFsdWUgfHwgbW9tZW50KCkudW5peCgpIDtcbiAgICAgICAgdGhpcy5kYXRlID0gdGltZXN0YW1wO1xuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IHRpbWVzdGFtcDtcbiAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHRpbWVzdGFtcCk7XG4gICAgfVxuXG4gICAgaW5pdE5hbWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnV2Vlayc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyID0gKGRhdGUpID0+IHtcbiAgICAgICAgY29uc3Qgd2VlayA9IGRhdGUud2VlaygpO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS55ZWFyKCk7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmxvY2tlZERhdGUuc29tZSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG4gICAgICAgICAgICByZXR1cm4gbG9ja0RhdGUud2VlaygpID09PSB3ZWVrICYmIGxvY2tEYXRlLnllYXIoKSA9PT0geWVhcjtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCByZXN1bHREYXRlID0gbW9tZW50LnVuaXgodmFsdWUpLnV0YygpO1xuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHJlc3VsdERhdGUudW5peCgpLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0V2Vla0xhYmVsKHJlc3VsdERhdGUpLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKHJlc3VsdERhdGUpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZXN1bHRUYWcnLCByZXN1bHRUYWcpO1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V2Vla0xhYmVsKG1vbWVudCkge1xuICAgICAgICByZXR1cm4gIGBXJHsgbW9tZW50Lmlzb1dlZWsoKSB9ICR7IG1vbWVudC55ZWFyKCkgfWA7XG4gICAgfVxufVxuIl19
@@ -1,5 +1,4 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
2
  import { AnyTagComponent } from '../date-tag.component';
4
3
  import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
5
4
  import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
@@ -21,24 +20,21 @@ export class YearTagComponent extends AnyTagComponent {
21
20
  constructor() {
22
21
  super();
23
22
  this.lockedDate = [];
24
- this.date = new FormControl(moment());
25
23
  this.dateFilter = (date) => {
26
- const calendarDateYear = moment(date).year();
27
- let status = true;
28
- this.lockedDate.forEach(timestamp => {
24
+ const calendarDateYear = date.year();
25
+ return !this.lockedDate.some((timestamp) => {
29
26
  const lockDate = moment.unix(timestamp);
30
- return status = !(lockDate.year() === calendarDateYear);
27
+ return lockDate.year() === calendarDateYear;
31
28
  });
32
- return status;
33
29
  };
34
30
  }
35
31
  initDate() {
36
32
  if (this.defaultValue) {
37
- this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format('YYYY');
38
- this.date = new FormControl(moment(this.defaultValue * 1000));
33
+ this.date = this.defaultValue;
34
+ this.dateObj.date = this.date;
39
35
  }
40
36
  else {
41
- this.dateObj.date = moment(new Date()).format('YYYY');
37
+ this.dateObj.date = moment().unix();
42
38
  }
43
39
  }
44
40
  initName() {
@@ -47,33 +43,21 @@ export class YearTagComponent extends AnyTagComponent {
47
43
  }
48
44
  }
49
45
  chosenTagHandler(value) {
50
- const date = new Date();
51
- const year = moment(value).year();
52
- date.setTime(0);
53
- date.setFullYear(year, 0, 1);
54
- const resultDate = moment.utc(date);
46
+ const resultDate = moment.unix(value).utc();
55
47
  resultDate.hour(12);
56
48
  const resultTag = {
57
49
  name: this.name,
58
- value: parseInt(resultDate.format('X'), 10),
50
+ value: resultDate.unix(),
59
51
  label: resultDate.format('YYYY'),
60
- locked: !this.dateFilter(value)
52
+ locked: !this.dateFilter(resultDate)
61
53
  };
62
54
  console.log('resultTag', resultTag);
63
55
  this.dateChange.emit(resultTag);
64
56
  }
65
- chosenYearHandler(normalizedYear, datepicker) {
66
- const ctrlValue = this.date.value;
67
- ctrlValue.year(normalizedYear.year());
68
- this.date.setValue(ctrlValue);
69
- this.dateObj.date = this.date.value;
70
- this.chosenTagHandler(this.date.value);
71
- datepicker.close();
72
- }
73
57
  }
74
58
  YearTagComponent.decorators = [
75
59
  { type: Component, args: [{
76
- template: "<div>\n <mat-form-field class=\"date-select-box\">\n <input\n matInput\n placeholder=\"{{name}}\"\n name=\"Year\"\n [formControl]=\"date\"\n [matDatepicker]=\"datepicker\"\n [matDatepickerFilter]=\"dateFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #datepicker\n startView=\"multi-year\"\n (yearSelected)=\"chosenYearHandler($event, datepicker)\"\n panelClass=\"date-month-picker\"\n ></mat-datepicker>\n </mat-form-field>\n</div>\n",
60
+ template: "<div>\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"year\"\n [(ngModel)]=\"date\"\n [datepickerFilter]=\"dateFilter\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n",
77
61
  selector: 'year-tag',
78
62
  providers: [
79
63
  {
@@ -82,7 +66,17 @@ YearTagComponent.decorators = [
82
66
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
83
67
  },
84
68
  { provide: MAT_DATE_FORMATS, useValue: ɵ0 },
85
- ]
69
+ ],
70
+ styles: [`
71
+ .tag__label {
72
+ margin: 0 0 4px 0;
73
+ color: #0C142B;
74
+ font-size: 14px;
75
+ font-weight: 400;
76
+ line-height: 22px;
77
+
78
+ }
79
+ `]
86
80
  },] }
87
81
  ];
88
82
  YearTagComponent.ctorParameters = () => [];
@@ -90,4 +84,4 @@ YearTagComponent.propDecorators = {
90
84
  lockedDate: [{ type: Input }]
91
85
  };
92
86
  export { ɵ0 };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3llYXItdGFnL3llYXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLFlBQVksR0FBRztJQUNqQixLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsTUFBTTtLQUNwQjtJQUNELE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDbEM7Q0FDSixDQUFDO1dBVzZDLFlBQVk7QUFJM0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFLakQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxILGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFpRGpDLGVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElB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LEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQS9ESixTQUFTLFNBQUM7Z0JBQ1Asb3JCQUFzQztnQkFDdEMsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUMzRDtvQkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQWMsRUFBRTtpQkFDeEQ7YUFDSjs7Ozt5QkFHSSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgSURhdGVUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBBbnlUYWdDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG4vLyBAdHMtaWdub3JlXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuY29uc3QgWUVBUl9GT1JNQVRTID0ge1xuICAgIHBhcnNlOiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ1lZWVknLFxuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcbiAgICAgICAgbW9udGhZZWFyTGFiZWw6ICdNTU1NIFlZWVknLFxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknXG4gICAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAneWVhci10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAneWVhci10YWcnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBZRUFSX0ZPUk1BVFMgfSxcbiAgICBdLFxufSlcblxuZXhwb3J0IGNsYXNzIFllYXJUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG5cbiAgICBkYXRlID0gbmV3IEZvcm1Db250cm9sKG1vbWVudCgpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuZGVmYXVsdFZhbHVlICogMTAwMCkpLnV0YygpLmZvcm1hdCgnWVlZWScpO1xuICAgICAgICAgICAgdGhpcy5kYXRlID0gbmV3IEZvcm1Db250cm9sKG1vbWVudCh0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDApKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCgnWVlZWScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdE5hbWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnWWVhcic7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCB5ZWFyID0gbW9tZW50KHZhbHVlKS55ZWFyKCk7XG4gICAgICAgIGRhdGUuc2V0VGltZSgwKTtcbiAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyLCAwLCAxKTtcbiAgICAgICAgY29uc3QgcmVzdWx0RGF0ZTogTW9tZW50ID0gbW9tZW50LnV0YyhkYXRlKTtcbiAgICAgICAgcmVzdWx0RGF0ZS5ob3VyKDEyKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludChyZXN1bHREYXRlLmZvcm1hdCgnWCcpLCAxMCksXG4gICAgICAgICAgICBsYWJlbDogcmVzdWx0RGF0ZS5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcih2YWx1ZSlcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdFRhZycsIHJlc3VsdFRhZyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgY2hvc2VuWWVhckhhbmRsZXIobm9ybWFsaXplZFllYXI6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSB7XG4gICAgICAgIGNvbnN0IGN0cmxWYWx1ZSA9IHRoaXMuZGF0ZS52YWx1ZTtcbiAgICAgICAgY3RybFZhbHVlLnllYXIobm9ybWFsaXplZFllYXIueWVhcigpKTtcblxuICAgICAgICB0aGlzLmRhdGUuc2V0VmFsdWUoY3RybFZhbHVlKTtcbiAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSB0aGlzLmRhdGUudmFsdWU7XG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcih0aGlzLmRhdGUudmFsdWUpO1xuXG4gICAgICAgIGRhdGVwaWNrZXIuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyID0gKGRhdGUpID0+IHtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJEYXRlWWVhciA9IG1vbWVudChkYXRlKS55ZWFyKCk7XG4gICAgICAgIGxldCBzdGF0dXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMubG9ja2VkRGF0ZS5mb3JFYWNoKHRpbWVzdGFtcCA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0dXMgPSAhKGxvY2tEYXRlLnllYXIoKSA9PT0gY2FsZW5kYXJEYXRlWWVhcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfTtcbn1cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3llYXItdGFnL3llYXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxhQUFhO0FBQ2IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sWUFBWSxHQUFHO0lBQ2pCLEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxNQUFNO0tBQ3BCO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLE1BQU07UUFDakIsY0FBYyxFQUFFLFdBQVc7UUFDM0IsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNsQztDQUNKLENBQUM7V0FxQjZDLFlBQVk7QUFJM0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFLakQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxILGVBQVUsR0FBVSxFQUFFLENBQUM7UUFxQ2hDLGVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztJQXRDRixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNqQzthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUMxQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEIsTUFBTSxTQUFTLEdBQWE7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDeEIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1NBQ3ZDLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7WUEzREosU0FBUyxTQUFDO2dCQUNQLGlTQUFzQztnQkFDdEMsUUFBUSxFQUFFLFVBQVU7Z0JBV3BCLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUMzRDtvQkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQWMsRUFBRTtpQkFDeEQ7eUJBakJROzs7Ozs7Ozs7S0FTUjthQVNKOzs7O3lCQUdJLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZVRhZyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IEFueVRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbi8vIEB0cy1pZ25vcmVcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xuXG5jb25zdCBZRUFSX0ZPUk1BVFMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnWVlZWScsXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ1lZWVknLFxuICAgICAgICBtb250aFllYXJMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcbiAgICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICd5ZWFyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICd5ZWFyLXRhZycsXG4gICAgc3R5bGVzOiBbYFxuICAgICAgICAudGFnX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA0cHggMDtcbiAgICAgICAgICAgIGNvbG9yOiAjMEMxNDJCO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXG4gICAgICAgIH1cbiAgICBgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogWUVBUl9GT1JNQVRTIH0sXG4gICAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBZZWFyVGFnQ29tcG9uZW50IGV4dGVuZHMgQW55VGFnQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gICAgZGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSB0aGlzLmRhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudCgpLnVuaXgoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ1llYXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hvc2VuVGFnSGFuZGxlcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGUgPSBtb21lbnQudW5peCh2YWx1ZSkudXRjKCk7XG4gICAgICAgIHJlc3VsdERhdGUuaG91cigxMik7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiByZXN1bHREYXRlLnVuaXgoKSxcbiAgICAgICAgICAgIGxhYmVsOiByZXN1bHREYXRlLmZvcm1hdCgnWVlZWScpLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKHJlc3VsdERhdGUpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZXN1bHRUYWcnLCByZXN1bHRUYWcpO1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIGRhdGVGaWx0ZXIgPSAoZGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCBjYWxlbmRhckRhdGVZZWFyID0gZGF0ZS55ZWFyKCk7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmxvY2tlZERhdGUuc29tZSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG4gICAgICAgICAgICByZXR1cm4gbG9ja0RhdGUueWVhcigpID09PSBjYWxlbmRhckRhdGVZZWFyO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuIl19
@@ -6,6 +6,7 @@ import { DrDatePickerService } from '../services/dr-date-picker.service';
6
6
  import { Subject } from 'rxjs';
7
7
  import { takeUntil } from 'rxjs/operators';
8
8
  import { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';
9
+ // @ts-ignore
9
10
  const moment = require('moment');
10
11
  const noop = () => {
11
12
  };
@@ -32,6 +33,13 @@ export class DrDatePickerComponent {
32
33
  this.destroyed$ = new Subject();
33
34
  this.onTouchedCallback = noop;
34
35
  this.onChangeCallback = noop;
36
+ // Should be as arrow function to avoid lose scope
37
+ this.dateFilter = (moment) => {
38
+ if (this.datepickerFilter && moment) {
39
+ return this.datepickerFilter(moment);
40
+ }
41
+ return true;
42
+ };
35
43
  datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {
36
44
  this.setValueFromMoment(value);
37
45
  });
@@ -174,7 +182,7 @@ export class DrDatePickerComponent {
174
182
  DrDatePickerComponent.decorators = [
175
183
  { type: Component, args: [{
176
184
  selector: 'dr-date-picker',
177
- template: "<i class=\"dr-icon-schedule\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\">\n</mat-datepicker>\n",
185
+ template: "<i class=\"dr-icon-schedule\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\">\n</mat-datepicker>\n",
178
186
  changeDetection: ChangeDetectionStrategy.OnPush,
179
187
  providers: [
180
188
  { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },
@@ -195,7 +203,8 @@ DrDatePickerComponent.propDecorators = {
195
203
  periodPosition: [{ type: Input }],
196
204
  placeholder: [{ type: Input }],
197
205
  fiscalYearMonthsModifier: [{ type: Input }],
206
+ datepickerFilter: [{ type: Input }],
198
207
  datePicker: [{ type: ViewChild, args: ['datePicker',] }]
199
208
  };
200
209
  export { ɵ0 };
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBSTNILE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQyxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFDOztBQVlGLE1BQU0sT0FBTyxxQkFBcUI7SUFrRDlCLFlBQ2MsR0FBc0IsRUFDdEIsV0FBNkIsRUFDaEMsaUJBQXNDO1FBRm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBdkNqRCxpSEFBaUg7UUFDeEcsbUJBQWMsR0FBNkIsd0JBQXdCLENBQUMsT0FBTyxDQUFDO1FBRTVFLGdCQUFXLEdBQUcsUUFBUSxDQUFDO1FBRXZCLDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUkvQixrQ0FBNkIsR0FBUTtZQUN4QyxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxNQUFNO1lBQ2YsR0FBRyxFQUFFLE9BQU87U0FDZixDQUFDO1FBRUssaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR1Asb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFheEMsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWtHcEMsc0JBQWlCLEdBQWUsSUFBSSxDQUFDO1FBQ3JDLHFCQUFnQixHQUFxQixJQUFJLENBQUM7UUE1RjdDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25GLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUF4REQsSUFBYSxNQUFNLENBQUMsS0FBSztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxPQUFlO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBd0JELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsQ0FBUztRQUN0QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQWVELGVBQWU7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdCQUF3QjtRQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1FBQ25ELFFBQVEsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN6QixLQUFLLHdCQUF3QixDQUFDLGVBQWU7Z0JBQ3pDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsT0FBTyxFQUFFO29CQUM5RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNwRTtxQkFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLElBQUksRUFBRTtvQkFDbEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ2hFO3FCQUFNO29CQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxNQUFNO1lBQ1YsS0FBSyx3QkFBd0IsQ0FBQyxhQUFhO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLE9BQU8sRUFBRTtvQkFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDbEU7cUJBQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxJQUFJLEVBQUU7b0JBQ2xFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUQ7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3BDO2dCQUNELE1BQU07WUFDVixLQUFLLHdCQUF3QixDQUFDLGdCQUFnQjtnQkFDMUMsSUFBSSxXQUFtQixDQUFDO2dCQUN4QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLE9BQU8sRUFBRTtvQkFDOUQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ2pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDOUQ7cUJBQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxJQUFJLEVBQUU7b0JBQ2xFLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzFEO3FCQUFNO29CQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNuQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQzFEO2dCQUNELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzdDLE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtTQUNiO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsU0FBMEI7UUFFckUsSUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDLElBQUksRUFBRTtZQUNwQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzdFO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxPQUFPLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDcEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsWUFBK0IsQ0FBQztZQUNuRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzVCO2FBQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBS00sZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxrQkFBa0IsQ0FBQyxVQUFrQjtRQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sUUFBUSxDQUFDLFNBQWlCO1FBRWhDLDhGQUE4RjtRQUM5Rix5R0FBeUc7UUFDekcsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUFoTUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLCttQkFBOEM7Z0JBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxTQUFTLEVBQUU7b0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7b0JBQy9FLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFO2lCQUNuQzs7YUFDSjs7O1lBOUJHLGlCQUFpQjtZQVNaLFdBQVc7WUFDWCxtQkFBbUI7OztxQkF1QnZCLEtBQUs7a0JBSUwsS0FBSztrQkFJTCxLQUFLOzZCQUtMLEtBQUs7MEJBRUwsS0FBSzt1Q0FFTCxLQUFLO3lCQUVMLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24sIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhclZpZXcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5jb25zdCBub29wID0gKCkgPT4ge1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRHJEYXRlUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IERyRGF0ZVBpY2tlclNlcnZpY2UgfVxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KCkgc2V0IGZvcm1hdCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1pbihtaW5EYXRlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbWluID0gbW9tZW50LnVuaXgobWluRGF0ZSkudXRjKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1heChtYXhEYXRlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbWF4ID0gbW9tZW50LnVuaXgobWF4RGF0ZSkudXRjKCk7XG4gICAgfVxuXG4gICAgLy8gV2hldGhlciB0byB0cmFuc2Zvcm0gZGF0ZSwgdGFraW5nIGVuZCwgc3RhcnQsIG1pZGRsZSBvZiBwcmVpb2QgKGkuZS4gc2V0IG1pZGRsZSBvZiBtb250aCBpZiB0aW1lZnJhbWU9J21vbnRoJylcbiAgICBASW5wdXQoKSBwZXJpb2RQb3NpdGlvbjogRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uID0gRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLkRFRkFVTFQ7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdTZWxlY3QnO1xuXG4gICAgQElucHV0KCkgZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyID0gMDtcblxuICAgIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBwdWJsaWMgZGF0ZVBpY2tlcjogYW55O1xuXG4gICAgcHVibGljIGNhbGVuZGFyVmlld3NUaW1lZnJhbWVNYXBwaW5nOiBhbnkgPSB7XG4gICAgICAgIHllYXI6ICdtdWx0aS15ZWFyJyxcbiAgICAgICAgbW9udGg6ICd5ZWFyJyxcbiAgICAgICAgcXVhcnRlcjogJ25vbmUnLFxuICAgICAgICBkYXk6ICdtb250aCcsXG4gICAgfTtcblxuICAgIHB1YmxpYyBjdXN0b21IZWFkZXIgPSBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQ7XG4gICAgcHVibGljIHJlYWRvbmx5ID0gdHJ1ZTtcbiAgICBwdWJsaWMgX21pbjogTW9tZW50O1xuICAgIHB1YmxpYyBfbWF4OiBNb21lbnQ7XG4gICAgcHVibGljIHJlYWRvbmx5IHRpbWVmcmFtZU9wdGlvbiA9IFRpbWVmcmFtZU9wdGlvbjtcblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IE1vbWVudCkge1xuICAgICAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudCh2KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5uZXJWYWx1ZTogTW9tZW50ID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8YW55PixcbiAgICAgICAgcHVibGljIGRhdGVQaWNrZXJTZXJ2aWNlOiBEckRhdGVQaWNrZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZWRRdWFydGVyJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudCh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXIgPSB0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5kYXRlUGlja2VySW5zdGFuY2UgPSB0aGlzLmRhdGVQaWNrZXI7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlci5zdGFydFZpZXcgPSB0aGlzLmNhbGVuZGFyVmlld3NUaW1lZnJhbWVNYXBwaW5nW3RoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRpbmcgY29tcG9uZW50IGlubmVyIHZhbHVlIGFjY29yZGluZyB0byBkYXRlcGlja2VyIHRpbWVmcmFtZSAoZGF5LCBtb250aCBldGMuKVxuICAgICAqIGFuZCBkYXRlIHBvc2l0aW9uIGluIHBlcmlvZCAoc3RhcnQsIGVuZCwgbWlkZGxlKVxuICAgICAqL1xuICAgIHRyeVRvTm9ybWFsYWl6ZVRpbWVmcmFtZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGltZWZyYW1lID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWU7XG4gICAgICAgIHN3aXRjaCAodGhpcy5wZXJpb2RQb3NpdGlvbikge1xuICAgICAgICAgICAgY2FzZSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24uU1RBUlRfT0ZfUEVSSU9EOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLlFVQVJURVIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRTdGFydE9mQ3VycmVudFF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZRdWFydGVyKHRoaXMuaW5uZXJWYWx1ZSwgMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlLnN0YXJ0T2YodGltZWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5FTkRfT0ZfUEVSSU9EOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLlFVQVJURVIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZkN1cnJlbnRRdWFydGVyKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLllFQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCA0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuZW5kT2YodGltZWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5NSURETEVfT0ZfUEVSSU9EOlxuICAgICAgICAgICAgICAgIGxldCBlbmRPZlBlcmlvZDogTW9tZW50O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLlFVQVJURVIpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5kT2ZQZXJpb2QgPSB0aGlzLmlubmVyVmFsdWUuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRTdGFydE9mQ3VycmVudFF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZkN1cnJlbnRRdWFydGVyKGVuZE9mUGVyaW9kKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgICAgICAgICBlbmRPZlBlcmlvZCA9IHRoaXMuaW5uZXJWYWx1ZS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZRdWFydGVyKHRoaXMuaW5uZXJWYWx1ZSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0RW5kT2ZRdWFydGVyKGVuZE9mUGVyaW9kLCA0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgICBlbmRPZlBlcmlvZCA9IHRoaXMuaW5uZXJWYWx1ZS5jbG9uZSgpLmVuZE9mKHRpbWVmcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBlbmRPZlBlcmlvZC5kaWZmKHRoaXMuaW5uZXJWYWx1ZSwgJ3NlY29uZHMnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuYWRkKGRpZmYgLyAyICsgMSwgJ3NlY29uZHMnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlLnN0YXJ0T2YodGltZWZyYW1lKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaG9zZW5QZXJpb2RIYW5kbGVyKGNob3NlbkRhdGU6IE1vbWVudCwgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24pIHtcblxuICAgICAgICBpZiAodGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgY2hvc2VuRGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYWRkRmlzY2FsWWVhck1vbnRoc1RvRGF0ZShjaG9zZW5EYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLlFVQVJURVIgJiYgdGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5jYWxlbmRhckluc3RhbmNlLmN1cnJlbnRWaWV3ID0gQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUyBhcyBNYXRDYWxlbmRhclZpZXc7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuYWN0aXZlRGF0ZSA9IGNob3NlbkRhdGU7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IHRpbWVmcmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZUZyb21Nb21lbnQoY2hvc2VuRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRpbmcgdmFsdWUgZnJvbSBvdXRzaWRlIG9mIGNvbXBvbmVudCB2aWEgbmdNb2RlbCBvciBmb3JtQ29udHJvbCB1cGRhdGVzXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZSA/IG1vbWVudC51bml4KHZhbHVlKS51dGMoKSA6IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRyeVRvTm9ybWFsYWl6ZVRpbWVmcmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHVibGljIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGlubmVyIHZhbHVlIGZyb20gTW9tZW50IGFuZCBwcm9wYWdhdGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtb21lbnREYXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNldFZhbHVlRnJvbU1vbWVudChtb21lbnREYXRlOiBNb21lbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShtb21lbnREYXRlLnVuaXgoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGlubmVyIHZhbHVlIGZyb20gdGltZXN0YW1wIGFuZCBwcm9wYWdhdGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aW1lc3RhbXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUodGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcblxuICAgICAgICAvLyBpc1ZhbHVlVXBkYXRpbmcgaXMgcmVxdWlyZWQgZm9yIG1hbmFnZSBjbGlja3Mgb24gc2FtZSBkYXRlczogaWYgaXNWYWx1ZVVwZGF0aW5nIC0gdHJ1ZSB0aGVuXG4gICAgICAgIC8vIGRheXMgYXJlIGRpZmZlcmVudCBhbmQgc3Vic2NyaXB0aW9uIG9uIGNhbGVuZGFyIGRheSBjbGljayBhY3Rpb24gd29uJ3QgdHJpZ2dlciBBY2Nlc3NvciBuZ01vZGVsIHVwZGF0ZVxuICAgICAgICAvLyBvbmUgbW9yZSB0aW1lXG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWx1ZVVwZGF0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRpbWVzdGFtcCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmlubmVyVmFsdWUudW5peCgpKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmlzVmFsdWVVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBRzNILGFBQWE7QUFDYixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQzs7QUFZRixNQUFNLE9BQU8scUJBQXFCO0lBb0Q5QixZQUNjLEdBQXNCLEVBQ3RCLFdBQTZCLEVBQ2hDLGlCQUFzQztRQUZuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQXpDakQs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QUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sUUFBUSxDQUFDLFNBQWlCO1FBRWhDLDhGQUE4RjtRQUM5Rix5R0FBeUc7UUFDekcsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUEzTUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLDRwQkFBOEM7Z0JBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxTQUFTLEVBQUU7b0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7b0JBQy9FLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFO2lCQUNuQzs7YUFDSjs7O1lBOUJHLGlCQUFpQjtZQVNaLFdBQVc7WUFDWCxtQkFBbUI7OztxQkF1QnZCLEtBQUs7a0JBSUwsS0FBSztrQkFJTCxLQUFLOzZCQUtMLEtBQUs7MEJBRUwsS0FBSzt1Q0FFTCxLQUFLOytCQUVMLEtBQUs7eUJBRUwsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcsIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbiwgVGltZWZyYW1lT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RhdGVQaWNrZXInO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdENhbGVuZGFyVmlldyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRhdGUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEckRhdGVQaWNrZXJDb21wb25lbnQsIG11bHRpOiB0cnVlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRHJEYXRlUGlja2VyU2VydmljZSB9XG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJEYXRlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKSBzZXQgZm9ybWF0KHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWluKG1pbkRhdGU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9taW4gPSBtb21lbnQudW5peChtaW5EYXRlKS51dGMoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWF4KG1heERhdGU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXggPSBtb21lbnQudW5peChtYXhEYXRlKS51dGMoKTtcbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIHRvIHRyYW5zZm9ybSBkYXRlLCB0YWtpbmcgZW5kLCBzdGFydCwgbWlkZGxlIG9mIHByZWlvZCAoaS5lLiBzZXQgbWlkZGxlIG9mIG1vbnRoIGlmIHRpbWVmcmFtZT0nbW9udGgnKVxuICAgIEBJbnB1dCgpIHBlcmlvZFBvc2l0aW9uOiBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24gPSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24uREVGQVVMVDtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCc7XG5cbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyTW9udGhzTW9kaWZpZXIgPSAwO1xuXG4gICAgQElucHV0KCkgZGF0ZXBpY2tlckZpbHRlcjogKG1vbWVudDogTW9tZW50KSA9PiBib29sZWFuO1xuXG4gICAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIHB1YmxpYyBkYXRlUGlja2VyOiBhbnk7XG5cbiAgICBwdWJsaWMgY2FsZW5kYXJWaWV3c1RpbWVmcmFtZU1hcHBpbmc6IGFueSA9IHtcbiAgICAgICAgeWVhcjogJ211bHRpLXllYXInLFxuICAgICAgICBtb250aDogJ3llYXInLFxuICAgICAgICBxdWFydGVyOiAnbm9uZScsXG4gICAgICAgIGRheTogJ21vbnRoJyxcbiAgICB9O1xuXG4gICAgcHVibGljIGN1c3RvbUhlYWRlciA9IERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgPSB0cnVlO1xuICAgIHB1YmxpYyBfbWluOiBNb21lbnQ7XG4gICAgcHVibGljIF9tYXg6IE1vbWVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGltZWZyYW1lT3B0aW9uID0gVGltZWZyYW1lT3B0aW9uO1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogTW9tZW50KSB7XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHYpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbm5lclZhbHVlOiBNb21lbnQgPSBudWxsO1xuICAgIHByb3RlY3RlZCBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxhbnk+LFxuICAgICAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZpc2NhbFllYXJNb250aHNNb2RpZmllciA9IHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVQaWNrZXJJbnN0YW5jZSA9IHRoaXMuZGF0ZVBpY2tlcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyLnN0YXJ0VmlldyA9IHRoaXMuY2FsZW5kYXJWaWV3c1RpbWVmcmFtZU1hcHBpbmdbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGluZyBjb21wb25lbnQgaW5uZXIgdmFsdWUgYWNjb3JkaW5nIHRvIGRhdGVwaWNrZXIgdGltZWZyYW1lIChkYXksIG1vbnRoIGV0Yy4pXG4gICAgICogYW5kIGRhdGUgcG9zaXRpb24gaW4gcGVyaW9kIChzdGFydCwgZW5kLCBtaWRkbGUpXG4gICAgICovXG4gICAgdHJ5VG9Ob3JtYWxhaXplVGltZWZyYW1lKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aW1lZnJhbWUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnBlcmlvZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5TVEFSVF9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcih0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0U3RhcnRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCAxKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLkVORF9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mQ3VycmVudFF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mUXVhcnRlcih0aGlzLmlubmVyVmFsdWUsIDQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5lbmRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uLk1JRERMRV9PRl9QRVJJT0Q6XG4gICAgICAgICAgICAgICAgbGV0IGVuZE9mUGVyaW9kOiBNb21lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUikge1xuICAgICAgICAgICAgICAgICAgICBlbmRPZlBlcmlvZCA9IHRoaXMuaW5uZXJWYWx1ZS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcih0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mQ3VycmVudFF1YXJ0ZXIoZW5kT2ZQZXJpb2QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZE9mUGVyaW9kID0gdGhpcy5pbm5lclZhbHVlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0U3RhcnRPZlF1YXJ0ZXIodGhpcy5pbm5lclZhbHVlLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIoZW5kT2ZQZXJpb2QsIDQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5zdGFydE9mKHRpbWVmcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGVuZE9mUGVyaW9kID0gdGhpcy5pbm5lclZhbHVlLmNsb25lKCkuZW5kT2YodGltZWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IGVuZE9mUGVyaW9kLmRpZmYodGhpcy5pbm5lclZhbHVlLCAnc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5hZGQoZGlmZiAvIDIgKyAxLCAnc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNob3NlblBlcmlvZEhhbmRsZXIoY2hvc2VuRGF0ZTogTW9tZW50LCB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbikge1xuXG4gICAgICAgIGlmICh0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICBjaG9zZW5EYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyTW9udGhzVG9EYXRlKGNob3NlbkRhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUiAmJiB0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuY3VycmVudFZpZXcgPSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5hY3RpdmVEYXRlID0gY2hvc2VuRGF0ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gdGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlRnJvbU1vbWVudChjaG9zZW5EYXRlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGluZyB2YWx1ZSBmcm9tIG91dHNpZGUgb2YgY29tcG9uZW50IHZpYSBuZ01vZGVsIG9yIGZvcm1Db250cm9sIHVwZGF0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlID8gbW9tZW50LnVuaXgodmFsdWUpLnV0YygpIDogdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudHJ5VG9Ob3JtYWxhaXplVGltZWZyYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBwdWJsaWMgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBTaG91bGQgYmUgYXMgYXJyb3cgZnVuY3Rpb24gdG8gYXZvaWQgbG9zZSBzY29wZVxuICAgIHB1YmxpYyBkYXRlRmlsdGVyID0gKG1vbWVudDogTW9tZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJGaWx0ZXIgJiYgbW9tZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyRmlsdGVyKG1vbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSBNb21lbnQgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIG1vbWVudERhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWVGcm9tTW9tZW50KG1vbWVudERhdGU6IE1vbWVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKG1vbWVudERhdGUudW5peCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSB0aW1lc3RhbXAgYW5kIHByb3BhZ2F0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHRpbWVzdGFtcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIC8vIGlzVmFsdWVVcGRhdGluZyBpcyByZXF1aXJlZCBmb3IgbWFuYWdlIGNsaWNrcyBvbiBzYW1lIGRhdGVzOiBpZiBpc1ZhbHVlVXBkYXRpbmcgLSB0cnVlIHRoZW5cbiAgICAgICAgLy8gZGF5cyBhcmUgZGlmZmVyZW50IGFuZCBzdWJzY3JpcHRpb24gb24gY2FsZW5kYXIgZGF5IGNsaWNrIGFjdGlvbiB3b24ndCB0cmlnZ2VyIEFjY2Vzc29yIG5nTW9kZWwgdXBkYXRlXG4gICAgICAgIC8vIG9uZSBtb3JlIHRpbWVcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1ZhbHVlVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGltZXN0YW1wKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaW5uZXJWYWx1ZS51bml4KCkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWx1ZVVwZGF0aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==