@litigiovirtual/ius-design-components 1.0.44 → 1.0.45
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.
|
@@ -11,20 +11,41 @@ export class DatePickerComponent {
|
|
|
11
11
|
setTimeout(() => this.positionCalendarOverlay(), 0);
|
|
12
12
|
}
|
|
13
13
|
positionCalendarOverlay() {
|
|
14
|
+
if (!this.inputField || !this.calendarOverlay)
|
|
15
|
+
return;
|
|
14
16
|
const inputRect = this.inputField.nativeElement.getBoundingClientRect();
|
|
15
17
|
const overlay = this.calendarOverlay.nativeElement;
|
|
16
18
|
const overlayHeight = overlay.offsetHeight;
|
|
17
19
|
const spaceBelow = window.innerHeight - inputRect.bottom;
|
|
18
20
|
const spaceAbove = inputRect.top;
|
|
19
21
|
let top = inputRect.bottom;
|
|
20
|
-
|
|
22
|
+
let maxHeight = '';
|
|
23
|
+
if (spaceBelow >= overlayHeight) {
|
|
24
|
+
// Mostrar hacia abajo normalmente
|
|
25
|
+
top = inputRect.bottom;
|
|
26
|
+
maxHeight = `${Math.max(spaceBelow - 10, 150)}px`; // mínimo 150px
|
|
27
|
+
}
|
|
28
|
+
else if (spaceAbove >= overlayHeight) {
|
|
21
29
|
// Mostrar hacia arriba
|
|
22
30
|
top = inputRect.top - overlayHeight;
|
|
31
|
+
maxHeight = `${Math.max(spaceAbove - 10, 150)}px`;
|
|
32
|
+
}
|
|
33
|
+
else if (spaceBelow > spaceAbove) {
|
|
34
|
+
// Mostrar hacia abajo pero con scroll interno
|
|
35
|
+
top = inputRect.bottom;
|
|
36
|
+
maxHeight = `${Math.max(spaceBelow - 10, 150)}px`;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Mostrar hacia arriba pero con scroll interno
|
|
40
|
+
top = 10; // margen superior mínimo
|
|
41
|
+
maxHeight = `${Math.max(spaceAbove - 10, 150)}px`;
|
|
23
42
|
}
|
|
24
43
|
overlay.style.position = 'fixed';
|
|
25
44
|
overlay.style.right = '0px';
|
|
26
45
|
overlay.style.top = `${top}px`;
|
|
27
46
|
overlay.style.zIndex = '99999';
|
|
47
|
+
overlay.style.maxHeight = maxHeight;
|
|
48
|
+
overlay.style.overflowY = 'auto';
|
|
28
49
|
}
|
|
29
50
|
constructor(elRef) {
|
|
30
51
|
this.elRef = elRef;
|
|
@@ -187,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
187
208
|
type: HostListener,
|
|
188
209
|
args: ['document:click', ['$event']]
|
|
189
210
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7OztBQWNqSCxNQUFNLE9BQU8sbUJBQW1CO0lBMkI5QixZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN4RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUNuRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFH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QUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsS0FBaUI7UUFDbEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBL0tVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtsQkNsQmhDLGk1SEF5SEEsNHZNRC9HSSxZQUFZLGdMQUNaLGVBQWUsdUZBQ2Ysc0JBQXNCLCtEQUN0QiwrQkFBK0I7OzRGQUt0QixtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLCtCQUErQjtxQkFDaEM7K0VBS1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQWN1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDSCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBZ0p2QixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1tZC9pY29uLW1kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9zaW1wbGUtZGl2aWRlci9zaW1wbGUtZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5L2J1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSWNvbk1kQ29tcG9uZW50LFxyXG4gICAgU2ltcGxlRGl2aWRlckNvbXBvbmVudCxcclxuICAgIEJ1dHRvblN0YW5kYXJkVGVydGlhcnlDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBsYWJlbCA9ICdGZWNoYSc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnU2VsZWNjaW9uZSB1bmEgZmVjaGEnO1xyXG4gIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaWNvbkhlbHAgPSBmYWxzZTtcclxuICBASW5wdXQoKSBoZWxwVGV4dCA9ICcnO1xyXG4gIEBJbnB1dCgpIGhlbHBUZXh0RXJyb3IgPSAnJztcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuXHJcbiAgcmVhZG9ubHkgZGF5TGFiZWxzID0gWydEbycsICdMdScsICdNYScsICdNaScsICdKdScsICdWaScsICdTYSddO1xyXG4gIHJlYWRvbmx5IG1vbnRocyA9IFsnRW5lJywgJ0ZlYicsICdNYXInLCAnQWJyJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0FnbycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEaWMnXTtcclxuICByZWFkb25seSB5ZWFyc0FycmF5ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMTIgfSwgKF8sIGkpID0+IGkpO1xyXG5cclxuICBzZWxlY3RlZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuICB2aWV3RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgY2FsZW5kYXJPcGVuID0gZmFsc2U7XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIGNhbGVuZGFyVmlldzogJ2RheScgfCAnbW9udGgnIHwgJ3llYXInID0gJ2RheSc7XHJcbiAgY2FsZW5kYXJEYXlzOiBEYXRlW10gPSBbXTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJPdmVybGF5JykgY2FsZW5kYXJPdmVybGF5ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEZpZWxkJykgaW5wdXRGaWVsZCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG9wZW5DYWxlbmRhcigpIHtcclxuICAgIHRoaXMuY2FsZW5kYXJPcGVuID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wb3NpdGlvbkNhbGVuZGFyT3ZlcmxheSgpLCAwKTtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uQ2FsZW5kYXJPdmVybGF5KCkge1xyXG4gICAgY29uc3QgaW5wdXRSZWN0ID0gdGhpcy5pbnB1dEZpZWxkLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5jYWxlbmRhck92ZXJsYXkubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHQgPSBvdmVybGF5Lm9mZnNldEhlaWdodDtcclxuICAgIGNvbnN0IHNwYWNlQmVsb3cgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBpbnB1dFJlY3QuYm90dG9tO1xyXG4gICAgY29uc3Qgc3BhY2VBYm92ZSA9IGlucHV0UmVjdC50b3A7XHJcblxyXG4gICAgbGV0IHRvcCA9IGlucHV0UmVjdC5ib3R0b207XHJcbiAgICBpZiAoc3BhY2VCZWxvdyA8IG92ZXJsYXlIZWlnaHQgJiYgc3BhY2VBYm92ZSA+IG92ZXJsYXlIZWlnaHQpIHtcclxuICAgICAgLy8gTW9zdHJhciBoYWNpYSBhcnJpYmFcclxuICAgICAgdG9wID0gaW5wdXRSZWN0LnRvcCAtIG92ZXJsYXlIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcmxheS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBvdmVybGF5LnN0eWxlLnJpZ2h0ID0gJzBweCc7XHJcbiAgICBvdmVybGF5LnN0eWxlLnRvcCA9IGAke3RvcH1weGA7XHJcbiAgICBvdmVybGF5LnN0eWxlLnpJbmRleCA9ICc5OTk5OSc7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyT3Blbikge1xyXG4gICAgICB0aGlzLmNhbGVuZGFyVmlldyA9ICdkYXknO1xyXG4gICAgICB0aGlzLmVycm9yID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5jYWxlbmRhck9wZW4gPSAhdGhpcy5jYWxlbmRhck9wZW47XHJcblxyXG4gICAgaWYgKHRoaXMuY2FsZW5kYXJPcGVuKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucG9zaXRpb25DYWxlbmRhck92ZXJsYXkoKSwgMCk7XHJcbiAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1RvZGF5KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy52aWV3RGF0ZSA9IHRvZGF5O1xyXG4gICAgdGhpcy5zZWxlY3REYXRlKHRvZGF5KTtcclxuICB9XHJcblxyXG4gIG5leHRWaWV3KHZpZXc6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyk6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyB7XHJcbiAgICByZXR1cm4gdmlldyA9PT0gJ2RheScgPyAnbW9udGgnIDogdmlldyA9PT0gJ21vbnRoJyA/ICd5ZWFyJyA6ICdkYXknO1xyXG4gIH1cclxuXHJcbiAgcHJldigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hpZnRWaWV3RGF0ZSgtMSk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaGlmdFZpZXdEYXRlKDEpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyRGF5cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaGlmdFZpZXdEYXRlKHN0ZXA6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgeyBjYWxlbmRhclZpZXcsIHZpZXdEYXRlIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeWVhciA9IHZpZXdEYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aCA9IHZpZXdEYXRlLmdldE1vbnRoKCk7XHJcblxyXG4gICAgaWYgKGNhbGVuZGFyVmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgdGhpcy52aWV3RGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgc3RlcCwgMSk7XHJcbiAgICB9IGVsc2UgaWYgKGNhbGVuZGFyVmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUoeWVhciArIHN0ZXAsIG1vbnRoLCAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZSh5ZWFyICsgc3RlcCAqIDEwLCBtb250aCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3REYXRlKGRhdGU6IERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcclxuICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHRoaXMuY2FsZW5kYXJPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9udGgobW9udGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3RGF0ZS5zZXRNb250aChtb250aCk7XHJcbiAgICB0aGlzLmNhbGVuZGFyVmlldyA9ICdkYXknO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyRGF5cygpO1xyXG4gIH1cclxuXHJcbiAgc2V0WWVhcih5ZWFyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0RhdGUuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICB0aGlzLmNhbGVuZGFyVmlldyA9ICdtb250aCc7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRNb250aE5hbWUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5tb250aHNbaW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVjYWRlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSAvIDEwKSAqIDEwO1xyXG4gIH1cclxuXHJcbiAgaXNTYW1lRGF0ZShkMTogRGF0ZSwgZDI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBkMS5nZXREYXRlKCkgPT09IGQyLmdldERhdGUoKSAmJlxyXG4gICAgICBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmXHJcbiAgICAgIGQxLmdldEZ1bGxZZWFyKCkgPT09IGQyLmdldEZ1bGxZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNhbGVuZGFyRGF5cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRheXM6IERhdGVbXSA9IFtdO1xyXG4gICAgY29uc3QgeWVhciA9IHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpO1xyXG5cclxuICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG4gICAgY29uc3Qgb2Zmc2V0ID0gZmlyc3REYXkuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSAtIG9mZnNldCk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0MjsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgICBkYXRlLnNldERhdGUoc3RhcnREYXRlLmdldERhdGUoKSArIGkpO1xyXG4gICAgICBkYXlzLnB1c2goZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYWxlbmRhckRheXMgPSBkYXlzO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FsZW5kYXJPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVPdXRzaWRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuXHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUgJiYgdGhpcy5jYWxlbmRhck9wZW4pIHtcclxuICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlclwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XHJcbiAgICBAaWYgKGlzUmVxdWlyZWQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJyZXF1aXJlZFwiPjwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxyXG5cclxuICAgIEBpZiAoaWNvbkhlbHApIHtcclxuICAgIDxkaXYgY2xhc3M9XCJoZWxwLWljb25cIj5cclxuICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+OjwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgICAgZm9jdXNlZDogY2FsZW5kYXJPcGVuIHx8IGZvY3VzZWQsXHJcbiAgICAgICAgYWxlcnQ6ICFjYWxlbmRhck9wZW4gJiYgZXJyb3IgJiYgIWRpc2FibGVkLFxyXG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZERhdGVcclxuICAgICAgfVwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDYWxlbmRhcigpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgPGlucHV0ICNpbnB1dEZpZWxkXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkRGF0ZSA/IChzZWxlY3RlZERhdGUgfCBkYXRlIDogJ2RkL01NL3l5eXknKSA6ICcnXCJcclxuICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNudC1pY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbGVuZGFyLXRvZGF5XCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKGNhbGVuZGFyT3Blbikge1xyXG4gICAgPGRpdiAjY2FsZW5kYXJPdmVybGF5IGNsYXNzPVwiY2FsZW5kYXItb3ZlcmxheVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlclwiPlxyXG4gICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnlcclxuICAgICAgICAgICAgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LWxlZnRcIlxyXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJwcmV2KClcIlxyXG4gICAgICAgICAgPjwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuXHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2FsZW5kYXJWaWV3ID0gbmV4dFZpZXcoY2FsZW5kYXJWaWV3KVwiPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChjYWxlbmRhclZpZXcpIHsgQGNhc2UgKCdkYXknKSB7XHJcbiAgICAgICAgICAgIHt7IGdldE1vbnRoTmFtZSh2aWV3RGF0ZS5nZXRNb250aCgpKSB9fSB7eyB2aWV3RGF0ZS5nZXRGdWxsWWVhcigpIH19XHJcbiAgICAgICAgICAgIH0gQGNhc2UgKCdtb250aCcpIHtcclxuICAgICAgICAgICAge3sgdmlld0RhdGUuZ2V0RnVsbFllYXIoKSB9fVxyXG4gICAgICAgICAgICB9IEBjYXNlICgneWVhcicpIHtcclxuICAgICAgICAgICAge3sgZ2V0RGVjYWRlU3RhcnQoKSB9fS17eyBnZXREZWNhZGVTdGFydCgpICsgOSB9fVxyXG4gICAgICAgICAgICB9IH1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeVxyXG4gICAgICAgICAgICBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctcmlnaHRcIlxyXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJuZXh0KClcIlxyXG4gICAgICAgICAgPjwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJvZHlcIj5cclxuICAgICAgICAgIEBzd2l0Y2ggKGNhbGVuZGFyVmlldykgeyBAY2FzZSAoJ2RheScpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGRheXNcIj5cclxuICAgICAgICAgICAgQGZvciAoZGF5IG9mIGRheUxhYmVsczsgdHJhY2sgZGF5KSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgICAgICAgfSBAZm9yIChkYXRlIG9mIGNhbGVuZGFyRGF5czsgdHJhY2sgZGF0ZSkge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWREYXRlICYmIGlzU2FtZURhdGUoZGF0ZSwgc2VsZWN0ZWREYXRlKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm91dC1vZi1yYW5nZV09XCJkYXRlLmdldE1vbnRoKCkgIT09IHZpZXdEYXRlLmdldE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRhdGUpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGRhdGUuZ2V0RGF0ZSgpIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH0gQGNhc2UgKCdtb250aCcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIG1vbnRoc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChtIG9mIG1vbnRoczsgdHJhY2sgbTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIiAoY2xpY2spPVwic2V0TW9udGgoaSlcIj57eyBtIH19PC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfSBAY2FzZSAoJ3llYXInKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB5ZWFyc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChpIG9mIHllYXJzQXJyYXk7IHRyYWNrIGkpIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm91dC1vZi1yYW5nZV09XCJpID09PSAwIHx8IGkgPT09IDExXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2V0WWVhcihnZXREZWNhZGVTdGFydCgpIC0gMSArIGkpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGdldERlY2FkZVN0YXJ0KCkgLSAxICsgaSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9IH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZGF5XCIgKGNsaWNrKT1cImdvVG9Ub2RheSgpXCI+RmVjaGEgYWN0dWFsPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICBAaWYgKGhlbHBUZXh0ICYmIGZvY3VzZWQgJiYgIWVycm9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVscC10ZXh0XCI+XHJcbiAgICAgIHt7aGVscFRleHR9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoaGVscFRleHRFcnJvciAmJiBlcnJvcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImhlbHAtdGV4dC1lcnJvclwiPlxyXG4gICAgICB7e2hlbHBUZXh0RXJyb3J9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7OztBQWNqSCxNQUFNLE9BQU8sbUJBQW1CO0lBMkI5QixZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRix1QkFBdUI7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU87UUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN4RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEs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RXRFLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0FsTVUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2xCQ2xCaEMsaTVIQXlIQSw0dk1EL0dJLFlBQVksZ0xBQ1osZUFBZSx1RkFDZixzQkFBc0IsK0RBQ3RCLCtCQUErQjs7NEZBS3RCLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsK0JBQStCO3FCQUNoQzsrRUFLUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBY3VCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNILFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFtS3ZCLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NpbXBsZS1kaXZpZGVyL3NpbXBsZS1kaXZpZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvblN0YW5kYXJkVGVydGlhcnlDb21wb25lbnQgfSBmcm9tICcuLi9idXR0b24tc3RhbmRhcmQtdGVydGlhcnkvYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy1kYXRlLXBpY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJY29uTWRDb21wb25lbnQsXHJcbiAgICBTaW1wbGVEaXZpZGVyQ29tcG9uZW50LFxyXG4gICAgQnV0dG9uU3RhbmRhcmRUZXJ0aWFyeUNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxhYmVsID0gJ0ZlY2hhJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdTZWxlY2Npb25lIHVuYSBmZWNoYSc7XHJcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpY29uSGVscCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhlbHBUZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgaGVscFRleHRFcnJvciA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBkYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG5cclxuICByZWFkb25seSBkYXlMYWJlbHMgPSBbJ0RvJywgJ0x1JywgJ01hJywgJ01pJywgJ0p1JywgJ1ZpJywgJ1NhJ107XHJcbiAgcmVhZG9ubHkgbW9udGhzID0gWydFbmUnLCAnRmViJywgJ01hcicsICdBYnInLCAnTWF5JywgJ0p1bicsICdKdWwnLCAnQWdvJywgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0RpYyddO1xyXG4gIHJlYWRvbmx5IHllYXJzQXJyYXkgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMiB9LCAoXywgaSkgPT4gaSk7XHJcblxyXG4gIHNlbGVjdGVkRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIHZpZXdEYXRlID0gbmV3IERhdGUoKTtcclxuICBjYWxlbmRhck9wZW4gPSBmYWxzZTtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgY2FsZW5kYXJWaWV3OiAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgPSAnZGF5JztcclxuICBjYWxlbmRhckRheXM6IERhdGVbXSA9IFtdO1xyXG5cclxuICBAVmlld0NoaWxkKCdjYWxlbmRhck92ZXJsYXknKSBjYWxlbmRhck92ZXJsYXkhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RmllbGQnKSBpbnB1dEZpZWxkITogRWxlbWVudFJlZjtcclxuXHJcbiAgb3BlbkNhbGVuZGFyKCkge1xyXG4gICAgdGhpcy5jYWxlbmRhck9wZW4gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnBvc2l0aW9uQ2FsZW5kYXJPdmVybGF5KCksIDApO1xyXG4gIH1cclxuXHJcbiBwb3NpdGlvbkNhbGVuZGFyT3ZlcmxheSgpIHtcclxuICBpZiAoIXRoaXMuaW5wdXRGaWVsZCB8fCAhdGhpcy5jYWxlbmRhck92ZXJsYXkpIHJldHVybjtcclxuXHJcbiAgY29uc3QgaW5wdXRSZWN0ID0gdGhpcy5pbnB1dEZpZWxkLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuY2FsZW5kYXJPdmVybGF5Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgY29uc3Qgb3ZlcmxheUhlaWdodCA9IG92ZXJsYXkub2Zmc2V0SGVpZ2h0O1xyXG4gIGNvbnN0IHNwYWNlQmVsb3cgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBpbnB1dFJlY3QuYm90dG9tO1xyXG4gIGNvbnN0IHNwYWNlQWJvdmUgPSBpbnB1dFJlY3QudG9wO1xyXG5cclxuICBsZXQgdG9wID0gaW5wdXRSZWN0LmJvdHRvbTtcclxuICBsZXQgbWF4SGVpZ2h0ID0gJyc7XHJcblxyXG4gIGlmIChzcGFjZUJlbG93ID49IG92ZXJsYXlIZWlnaHQpIHtcclxuICAgIC8vIE1vc3RyYXIgaGFjaWEgYWJham8gbm9ybWFsbWVudGVcclxuICAgIHRvcCA9IGlucHV0UmVjdC5ib3R0b207XHJcbiAgICBtYXhIZWlnaHQgPSBgJHtNYXRoLm1heChzcGFjZUJlbG93IC0gMTAsIDE1MCl9cHhgOyAvLyBtw61uaW1vIDE1MHB4XHJcbiAgfSBlbHNlIGlmIChzcGFjZUFib3ZlID49IG92ZXJsYXlIZWlnaHQpIHtcclxuICAgIC8vIE1vc3RyYXIgaGFjaWEgYXJyaWJhXHJcbiAgICB0b3AgPSBpbnB1dFJlY3QudG9wIC0gb3ZlcmxheUhlaWdodDtcclxuICAgIG1heEhlaWdodCA9IGAke01hdGgubWF4KHNwYWNlQWJvdmUgLSAxMCwgMTUwKX1weGA7XHJcbiAgfSBlbHNlIGlmIChzcGFjZUJlbG93ID4gc3BhY2VBYm92ZSkge1xyXG4gICAgLy8gTW9zdHJhciBoYWNpYSBhYmFqbyBwZXJvIGNvbiBzY3JvbGwgaW50ZXJub1xyXG4gICAgdG9wID0gaW5wdXRSZWN0LmJvdHRvbTtcclxuICAgIG1heEhlaWdodCA9IGAke01hdGgubWF4KHNwYWNlQmVsb3cgLSAxMCwgMTUwKX1weGA7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIE1vc3RyYXIgaGFjaWEgYXJyaWJhIHBlcm8gY29uIHNjcm9sbCBpbnRlcm5vXHJcbiAgICB0b3AgPSAxMDsgLy8gbWFyZ2VuIHN1cGVyaW9yIG3DrW5pbW9cclxuICAgIG1heEhlaWdodCA9IGAke01hdGgubWF4KHNwYWNlQWJvdmUgLSAxMCwgMTUwKX1weGA7XHJcbiAgfVxyXG5cclxuICBvdmVybGF5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuICBvdmVybGF5LnN0eWxlLnJpZ2h0ID0gJzBweCc7XHJcbiAgb3ZlcmxheS5zdHlsZS50b3AgPSBgJHt0b3B9cHhgO1xyXG4gIG92ZXJsYXkuc3R5bGUuekluZGV4ID0gJzk5OTk5JztcclxuICBvdmVybGF5LnN0eWxlLm1heEhlaWdodCA9IG1heEhlaWdodDtcclxuICBvdmVybGF5LnN0eWxlLm92ZXJmbG93WSA9ICdhdXRvJztcclxufVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyT3Blbikge1xyXG4gICAgICB0aGlzLmNhbGVuZGFyVmlldyA9ICdkYXknO1xyXG4gICAgICB0aGlzLmVycm9yID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5jYWxlbmRhck9wZW4gPSAhdGhpcy5jYWxlbmRhck9wZW47XHJcblxyXG4gICAgaWYgKHRoaXMuY2FsZW5kYXJPcGVuKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucG9zaXRpb25DYWxlbmRhck92ZXJsYXkoKSwgMCk7XHJcbiAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1RvZGF5KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy52aWV3RGF0ZSA9IHRvZGF5O1xyXG4gICAgdGhpcy5zZWxlY3REYXRlKHRvZGF5KTtcclxuICB9XHJcblxyXG4gIG5leHRWaWV3KHZpZXc6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyk6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyB7XHJcbiAgICByZXR1cm4gdmlldyA9PT0gJ2RheScgPyAnbW9udGgnIDogdmlldyA9PT0gJ21vbnRoJyA/ICd5ZWFyJyA6ICdkYXknO1xyXG4gIH1cclxuXHJcbiAgcHJldigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hpZnRWaWV3RGF0ZSgtMSk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaGlmdFZpZXdEYXRlKDEpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyRGF5cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaGlmdFZpZXdEYXRlKHN0ZXA6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgeyBjYWxlbmRhclZpZXcsIHZpZXdEYXRlIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeWVhciA9IHZpZXdEYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aCA9IHZpZXdEYXRlLmdldE1vbnRoKCk7XHJcblxyXG4gICAgaWYgKGNhbGVuZGFyVmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgdGhpcy52aWV3RGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgc3RlcCwgMSk7XHJcbiAgICB9IGVsc2UgaWYgKGNhbGVuZGFyVmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUoeWVhciArIHN0ZXAsIG1vbnRoLCAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZSh5ZWFyICsgc3RlcCAqIDEwLCBtb250aCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3REYXRlKGRhdGU6IERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcclxuICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHRoaXMuY2FsZW5kYXJPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9udGgobW9udGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3RGF0ZS5zZXRNb250aChtb250aCk7XHJcbiAgICB0aGlzLmNhbGVuZGFyVmlldyA9ICdkYXknO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyRGF5cygpO1xyXG4gIH1cclxuXHJcbiAgc2V0WWVhcih5ZWFyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0RhdGUuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICB0aGlzLmNhbGVuZGFyVmlldyA9ICdtb250aCc7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRNb250aE5hbWUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5tb250aHNbaW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVjYWRlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSAvIDEwKSAqIDEwO1xyXG4gIH1cclxuXHJcbiAgaXNTYW1lRGF0ZShkMTogRGF0ZSwgZDI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBkMS5nZXREYXRlKCkgPT09IGQyLmdldERhdGUoKSAmJlxyXG4gICAgICBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmXHJcbiAgICAgIGQxLmdldEZ1bGxZZWFyKCkgPT09IGQyLmdldEZ1bGxZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNhbGVuZGFyRGF5cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRheXM6IERhdGVbXSA9IFtdO1xyXG4gICAgY29uc3QgeWVhciA9IHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpO1xyXG5cclxuICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG4gICAgY29uc3Qgb2Zmc2V0ID0gZmlyc3REYXkuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSAtIG9mZnNldCk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0MjsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgICBkYXRlLnNldERhdGUoc3RhcnREYXRlLmdldERhdGUoKSArIGkpO1xyXG4gICAgICBkYXlzLnB1c2goZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYWxlbmRhckRheXMgPSBkYXlzO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FsZW5kYXJPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVPdXRzaWRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuXHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUgJiYgdGhpcy5jYWxlbmRhck9wZW4pIHtcclxuICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlclwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XHJcbiAgICBAaWYgKGlzUmVxdWlyZWQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJyZXF1aXJlZFwiPjwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxyXG5cclxuICAgIEBpZiAoaWNvbkhlbHApIHtcclxuICAgIDxkaXYgY2xhc3M9XCJoZWxwLWljb25cIj5cclxuICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+OjwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgICAgZm9jdXNlZDogY2FsZW5kYXJPcGVuIHx8IGZvY3VzZWQsXHJcbiAgICAgICAgYWxlcnQ6ICFjYWxlbmRhck9wZW4gJiYgZXJyb3IgJiYgIWRpc2FibGVkLFxyXG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZERhdGVcclxuICAgICAgfVwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDYWxlbmRhcigpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgPGlucHV0ICNpbnB1dEZpZWxkXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkRGF0ZSA/IChzZWxlY3RlZERhdGUgfCBkYXRlIDogJ2RkL01NL3l5eXknKSA6ICcnXCJcclxuICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNudC1pY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbGVuZGFyLXRvZGF5XCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKGNhbGVuZGFyT3Blbikge1xyXG4gICAgPGRpdiAjY2FsZW5kYXJPdmVybGF5IGNsYXNzPVwiY2FsZW5kYXItb3ZlcmxheVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlclwiPlxyXG4gICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnlcclxuICAgICAgICAgICAgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LWxlZnRcIlxyXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJwcmV2KClcIlxyXG4gICAgICAgICAgPjwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuXHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2FsZW5kYXJWaWV3ID0gbmV4dFZpZXcoY2FsZW5kYXJWaWV3KVwiPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChjYWxlbmRhclZpZXcpIHsgQGNhc2UgKCdkYXknKSB7XHJcbiAgICAgICAgICAgIHt7IGdldE1vbnRoTmFtZSh2aWV3RGF0ZS5nZXRNb250aCgpKSB9fSB7eyB2aWV3RGF0ZS5nZXRGdWxsWWVhcigpIH19XHJcbiAgICAgICAgICAgIH0gQGNhc2UgKCdtb250aCcpIHtcclxuICAgICAgICAgICAge3sgdmlld0RhdGUuZ2V0RnVsbFllYXIoKSB9fVxyXG4gICAgICAgICAgICB9IEBjYXNlICgneWVhcicpIHtcclxuICAgICAgICAgICAge3sgZ2V0RGVjYWRlU3RhcnQoKSB9fS17eyBnZXREZWNhZGVTdGFydCgpICsgOSB9fVxyXG4gICAgICAgICAgICB9IH1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeVxyXG4gICAgICAgICAgICBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctcmlnaHRcIlxyXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJuZXh0KClcIlxyXG4gICAgICAgICAgPjwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJvZHlcIj5cclxuICAgICAgICAgIEBzd2l0Y2ggKGNhbGVuZGFyVmlldykgeyBAY2FzZSAoJ2RheScpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGRheXNcIj5cclxuICAgICAgICAgICAgQGZvciAoZGF5IG9mIGRheUxhYmVsczsgdHJhY2sgZGF5KSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgICAgICAgfSBAZm9yIChkYXRlIG9mIGNhbGVuZGFyRGF5czsgdHJhY2sgZGF0ZSkge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWREYXRlICYmIGlzU2FtZURhdGUoZGF0ZSwgc2VsZWN0ZWREYXRlKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm91dC1vZi1yYW5nZV09XCJkYXRlLmdldE1vbnRoKCkgIT09IHZpZXdEYXRlLmdldE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRhdGUpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGRhdGUuZ2V0RGF0ZSgpIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH0gQGNhc2UgKCdtb250aCcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIG1vbnRoc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChtIG9mIG1vbnRoczsgdHJhY2sgbTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIiAoY2xpY2spPVwic2V0TW9udGgoaSlcIj57eyBtIH19PC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfSBAY2FzZSAoJ3llYXInKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB5ZWFyc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChpIG9mIHllYXJzQXJyYXk7IHRyYWNrIGkpIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm91dC1vZi1yYW5nZV09XCJpID09PSAwIHx8IGkgPT09IDExXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2V0WWVhcihnZXREZWNhZGVTdGFydCgpIC0gMSArIGkpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGdldERlY2FkZVN0YXJ0KCkgLSAxICsgaSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9IH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZGF5XCIgKGNsaWNrKT1cImdvVG9Ub2RheSgpXCI+RmVjaGEgYWN0dWFsPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICBAaWYgKGhlbHBUZXh0ICYmIGZvY3VzZWQgJiYgIWVycm9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVscC10ZXh0XCI+XHJcbiAgICAgIHt7aGVscFRleHR9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoaGVscFRleHRFcnJvciAmJiBlcnJvcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImhlbHAtdGV4dC1lcnJvclwiPlxyXG4gICAgICB7e2hlbHBUZXh0RXJyb3J9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1673,20 +1673,41 @@ class DatePickerComponent {
|
|
|
1673
1673
|
setTimeout(() => this.positionCalendarOverlay(), 0);
|
|
1674
1674
|
}
|
|
1675
1675
|
positionCalendarOverlay() {
|
|
1676
|
+
if (!this.inputField || !this.calendarOverlay)
|
|
1677
|
+
return;
|
|
1676
1678
|
const inputRect = this.inputField.nativeElement.getBoundingClientRect();
|
|
1677
1679
|
const overlay = this.calendarOverlay.nativeElement;
|
|
1678
1680
|
const overlayHeight = overlay.offsetHeight;
|
|
1679
1681
|
const spaceBelow = window.innerHeight - inputRect.bottom;
|
|
1680
1682
|
const spaceAbove = inputRect.top;
|
|
1681
1683
|
let top = inputRect.bottom;
|
|
1682
|
-
|
|
1684
|
+
let maxHeight = '';
|
|
1685
|
+
if (spaceBelow >= overlayHeight) {
|
|
1686
|
+
// Mostrar hacia abajo normalmente
|
|
1687
|
+
top = inputRect.bottom;
|
|
1688
|
+
maxHeight = `${Math.max(spaceBelow - 10, 150)}px`; // mínimo 150px
|
|
1689
|
+
}
|
|
1690
|
+
else if (spaceAbove >= overlayHeight) {
|
|
1683
1691
|
// Mostrar hacia arriba
|
|
1684
1692
|
top = inputRect.top - overlayHeight;
|
|
1693
|
+
maxHeight = `${Math.max(spaceAbove - 10, 150)}px`;
|
|
1694
|
+
}
|
|
1695
|
+
else if (spaceBelow > spaceAbove) {
|
|
1696
|
+
// Mostrar hacia abajo pero con scroll interno
|
|
1697
|
+
top = inputRect.bottom;
|
|
1698
|
+
maxHeight = `${Math.max(spaceBelow - 10, 150)}px`;
|
|
1699
|
+
}
|
|
1700
|
+
else {
|
|
1701
|
+
// Mostrar hacia arriba pero con scroll interno
|
|
1702
|
+
top = 10; // margen superior mínimo
|
|
1703
|
+
maxHeight = `${Math.max(spaceAbove - 10, 150)}px`;
|
|
1685
1704
|
}
|
|
1686
1705
|
overlay.style.position = 'fixed';
|
|
1687
1706
|
overlay.style.right = '0px';
|
|
1688
1707
|
overlay.style.top = `${top}px`;
|
|
1689
1708
|
overlay.style.zIndex = '99999';
|
|
1709
|
+
overlay.style.maxHeight = maxHeight;
|
|
1710
|
+
overlay.style.overflowY = 'auto';
|
|
1690
1711
|
}
|
|
1691
1712
|
constructor(elRef) {
|
|
1692
1713
|
this.elRef = elRef;
|