@smart-solutions-tech/smart-angular-calendar 0.0.19 → 0.0.20
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.
- package/esm2020/lib/components/calendar/calendar.component.mjs +8 -4
- package/esm2020/lib/components/more-events-modal/more-events-modal.component.mjs +2 -2
- package/fesm2015/smart-solutions-tech-smart-angular-calendar.mjs +9 -5
- package/fesm2015/smart-solutions-tech-smart-angular-calendar.mjs.map +1 -1
- package/fesm2020/smart-solutions-tech-smart-angular-calendar.mjs +9 -5
- package/fesm2020/smart-solutions-tech-smart-angular-calendar.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -86,10 +86,14 @@ export class CalendarComponent {
|
|
|
86
86
|
}
|
|
87
87
|
setMaxEventsInDayCell() {
|
|
88
88
|
const element = document.getElementsByClassName('events-list')[0];
|
|
89
|
-
|
|
89
|
+
const eventElements = document.getElementsByClassName('calendar-event-component');
|
|
90
|
+
const eventElement = eventElements.item(0);
|
|
90
91
|
if (element) {
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
let eventItemHeight = 22;
|
|
93
|
+
if (eventElement)
|
|
94
|
+
eventItemHeight = eventElement.clientHeight;
|
|
95
|
+
const gap = 2;
|
|
96
|
+
this.maxEventsInDayCell = Math.floor(element.clientHeight / (eventItemHeight + gap)) - 1;
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
openMoreEventsModal(date, events) {
|
|
@@ -159,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
159
163
|
type: ViewChild,
|
|
160
164
|
args: ['calendarBody']
|
|
161
165
|
}] } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFnQixLQUFLLEVBQXFCLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRN0osTUFBTSxPQUFPLGlCQUFpQjtJQXVDNUI7UUFyQ1MsaUJBQVksR0FBb0M7WUFDdkQsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQzlCLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7U0FDakMsQ0FBQztRQUVPLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBRTdCLFlBQU8sR0FBd0IsUUFBUSxDQUFDO1FBSXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQVV6RCxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBYztZQUNwQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7U0FDZixD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dUJBQUMsVUFBVTtnQkFDTSxlQUFlO3NCQUF6QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyRXZlbnQsIERheUNlbGwsIFdlZWtEYXkgfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jYWxlbmRhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgY3VycmVudE1vbnRoOiB7IHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciB9ID0ge1xyXG4gICAgeWVhcjogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLFxyXG4gICAgbW9udGg6IG5ldyBEYXRlKCkuZ2V0TW9udGgoKSArIDFcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBldmVudHM6IENhbGVuZGFyRXZlbnRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzdGFydEF0OiAnbW9uZGF5JyB8ICdzdW5kYXknID0gJ3N1bmRheSc7XHJcblxyXG4gIEBJbnB1dCgpIHRhZ0NvbG9yPzogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgZXZlbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJFdmVudD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhclJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJCb2R5JykgY2FsZW5kYXJCb2R5UmVmITogRWxlbWVudFJlZjtcclxuXHJcbiAgY2FsZW5kYXJXaWR0aD86IG51bWJlcjtcclxuICBjb2x1bW5XaWR0aD86IG51bWJlcjtcclxuICBjYWxlbmRhckJvZHlIZWlnaHQ/OiBudW1iZXI7XHJcbiAgbWF4RXZlbnRzSW5EYXlDZWxsPzogbnVtYmVyO1xyXG5cclxuICBkYXlDZWxsczogRGF5Q2VsbFtdID0gW107XHJcblxyXG4gIHdlZWtEYXlzOiBXZWVrRGF5W10gPSBbXHJcbiAgICB7IHRhZzogJ3N1bicgfSxcclxuICAgIHsgdGFnOiAnbW9uJyB9LFxyXG4gICAgeyB0YWc6ICd0dWUnIH0sXHJcbiAgICB7IHRhZzogJ3dlZCcgfSxcclxuICAgIHsgdGFnOiAndGh1JyB9LFxyXG4gICAgeyB0YWc6ICdmcmknIH0sXHJcbiAgICB7IHRhZzogJ3NhdCcgfSxcclxuICBdO1xyXG5cclxuICBzaG93TW9yZUV2ZW50c01vZGFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbW9yZUV2ZW50c01vZGFsRGF0ZT86IERhdGU7XHJcbiAgbW9yZUV2ZW50c01vZGFsRXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgaXNUb2RheShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCkgPT09IHRvZGF5LmdldERhdGUoKSAmJlxyXG4gICAgICBkYXRlLmdldE1vbnRoKCkgPT09IHRvZGF5LmdldE1vbnRoKCkgJiZcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXZlbnRzRm9yRGF5KGRhdGU6IERhdGUpOiBDYWxlbmRhckV2ZW50W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzLmZpbHRlcihldmVudCA9PiB7XHJcbiAgICAgIGNvbnN0IGV2ZW50U3RhcnQgPSBuZXcgRGF0ZShldmVudC5zdGFydCk7XHJcbiAgICAgIGNvbnN0IGV2ZW50RW5kID0gZXZlbnQuZW5kID8gbmV3IERhdGUoZXZlbnQuZW5kKSA6IGV2ZW50U3RhcnQ7XHJcblxyXG4gICAgICByZXR1cm4gZGF0ZSA+PSBuZXcgRGF0ZShldmVudFN0YXJ0LmdldEZ1bGxZZWFyKCksIGV2ZW50U3RhcnQuZ2V0TW9udGgoKSwgZXZlbnRTdGFydC5nZXREYXRlKCkpICYmXHJcbiAgICAgICAgZGF0ZSA8PSBuZXcgRGF0ZShldmVudEVuZC5nZXRGdWxsWWVhcigpLCBldmVudEVuZC5nZXRNb250aCgpLCBldmVudEVuZC5nZXREYXRlKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0RGF5c0NlbGxzKCkge1xyXG4gICAgY29uc3QgZGF5c0luTW9udGggPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRNb250aC55ZWFyLCB0aGlzLmN1cnJlbnRNb250aC5tb250aCwgMCkuZ2V0RGF0ZSgpO1xyXG4gICAgY29uc3QgZmlyc3REYXlPZldlZWsgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRNb250aC55ZWFyLCB0aGlzLmN1cnJlbnRNb250aC5tb250aCAtIDEsIDEpLmdldERheSgpO1xyXG4gICAgY29uc3QgcHJldkRheXNDb3VudCA9IHRoaXMuc3RhcnRBdCA9PT0gJ21vbmRheScgPyAoZmlyc3REYXlPZldlZWsgPT09IDAgPyA2IDogZmlyc3REYXlPZldlZWsgLSAxKSA6IGZpcnN0RGF5T2ZXZWVrO1xyXG4gICAgLy8gY29uc3QgbmV4dERheXNDb3VudCA9ICg3IC0gKChwcmV2RGF5c0NvdW50ICsgZGF5c0luTW9udGgpICUgNykpICUgNztcclxuICAgIGNvbnN0IG5leHREYXlzQ291bnQgPSA0MiAtIChwcmV2RGF5c0NvdW50ICsgZGF5c0luTW9udGgpOyAvLyBBbHdheXMgc2hvdyA2IHdlZWtzXHJcblxyXG4gICAgdGhpcy5kYXlDZWxscyA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldkRheXNDb3VudDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRNb250aC55ZWFyLCB0aGlzLmN1cnJlbnRNb250aC5tb250aCAtIDEsIGkgLSBwcmV2RGF5c0NvdW50ICsgMSk7XHJcbiAgICAgIGNvbnN0IF9ldmVudHMgPSB0aGlzLmdldEV2ZW50c0ZvckRheShkYXRlKTtcclxuXHJcbiAgICAgIHRoaXMuZGF5Q2VsbHMucHVzaCh7XHJcbiAgICAgICAgZGF0ZSxcclxuICAgICAgICBldmVudHM6IF9ldmVudHMsXHJcbiAgICAgICAgaXNPdXRzaWRlTW9udGg6IHRydWUsXHJcbiAgICAgICAgaXNUb2RheTogdGhpcy5pc1RvZGF5KGRhdGUpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGRheSA9IDE7IGRheSA8PSBkYXlzSW5Nb250aDsgZGF5KyspIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VycmVudE1vbnRoLnllYXIsIHRoaXMuY3VycmVudE1vbnRoLm1vbnRoIC0gMSwgZGF5KTtcclxuICAgICAgY29uc3QgX2V2ZW50cyA9IHRoaXMuZ2V0RXZlbnRzRm9yRGF5KGRhdGUpO1xyXG5cclxuICAgICAgdGhpcy5kYXlDZWxscy5wdXNoKHtcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGV2ZW50czogX2V2ZW50cyxcclxuICAgICAgICBpc1RvZGF5OiB0aGlzLmlzVG9kYXkoZGF0ZSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbmV4dERheXNDb3VudDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRNb250aC55ZWFyLCB0aGlzLmN1cnJlbnRNb250aC5tb250aCAtIDEsIGRheXNJbk1vbnRoICsgaSk7XHJcbiAgICAgIGNvbnN0IF9ldmVudHMgPSB0aGlzLmdldEV2ZW50c0ZvckRheShkYXRlKTtcclxuXHJcbiAgICAgIHRoaXMuZGF5Q2VsbHMucHVzaCh7XHJcbiAgICAgICAgZGF0ZSxcclxuICAgICAgICBldmVudHM6IF9ldmVudHMsXHJcbiAgICAgICAgaXNPdXRzaWRlTW9udGg6IHRydWUsXHJcbiAgICAgICAgaXNUb2RheTogdGhpcy5pc1RvZGF5KGRhdGUpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FsZW5kYXJCb2R5SGVpZ2h0KCkge1xyXG4gICAgdGhpcy5jYWxlbmRhckJvZHlIZWlnaHQgPSB0aGlzLmNhbGVuZGFyQm9keVJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICB9XHJcblxyXG4gIHNldE1heEV2ZW50c0luRGF5Q2VsbCgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdldmVudHMtbGlzdCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc29sZS5sb2coZWxlbWVudCk7XHJcblxyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgY29uc3QgZXZlbnRJdGVtSGVpZ2h0ID0gMjI7XHJcbiAgICAgIHRoaXMubWF4RXZlbnRzSW5EYXlDZWxsID0gTWF0aC5mbG9vcihlbGVtZW50LmNsaWVudEhlaWdodCAvIGV2ZW50SXRlbUhlaWdodCkgLSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3Blbk1vcmVFdmVudHNNb2RhbChkYXRlOiBEYXRlLCBldmVudHM6IENhbGVuZGFyRXZlbnRbXSkge1xyXG4gICAgdGhpcy5tb3JlRXZlbnRzTW9kYWxEYXRlID0gZGF0ZTtcclxuICAgIHRoaXMubW9yZUV2ZW50c01vZGFsRXZlbnRzID0gZXZlbnRzO1xyXG4gICAgdGhpcy5zaG93TW9yZUV2ZW50c01vZGFsID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlTW9yZUV2ZW50c01vZGFsKCkge1xyXG4gICAgdGhpcy5zaG93TW9yZUV2ZW50c01vZGFsID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vcmVFdmVudHNNb2RhbERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLm1vcmVFdmVudHNNb2RhbEV2ZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzaXplTGlzdGVuZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNldENhbGVuZGFyQm9keUhlaWdodCgpO1xyXG4gICAgdGhpcy5zZXRNYXhFdmVudHNJbkRheUNlbGwoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3RhcnRBdCA9PT0gJ21vbmRheScpIHtcclxuICAgICAgdGhpcy53ZWVrRGF5cyA9IFtcclxuICAgICAgICB7IHRhZzogJ21vbicgfSxcclxuICAgICAgICB7IHRhZzogJ3R1ZScgfSxcclxuICAgICAgICB7IHRhZzogJ3dlZCcgfSxcclxuICAgICAgICB7IHRhZzogJ3RodScgfSxcclxuICAgICAgICB7IHRhZzogJ2ZyaScgfSxcclxuICAgICAgICB7IHRhZzogJ3NhdCcgfSxcclxuICAgICAgICB7IHRhZzogJ3N1bicgfSxcclxuICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXREYXlzQ2VsbHMoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUxpc3RlbmVyKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRDYWxlbmRhckJvZHlIZWlnaHQoKTtcclxuICAgICAgdGhpcy5zZXRNYXhFdmVudHNJbkRheUNlbGwoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2N1cnJlbnRNb250aCddIHx8IGNoYW5nZXNbJ2V2ZW50cyddKSB7XHJcbiAgICAgIHRoaXMuaW5pdERheXNDZWxscygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplTGlzdGVuZXIpO1xyXG4gIH1cclxuXHJcbiAgb25FdmVudENsaWNrKGV2ZW50OiBDYWxlbmRhckV2ZW50LCBjbG9zZU1vZGFsOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmIChjbG9zZU1vZGFsKSB0aGlzLmNsb3NlTW9yZUV2ZW50c01vZGFsKCk7XHJcblxyXG4gICAgdGhpcy5ldmVudENsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FsZW5kYXItY29tcG9uZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICNjYWxlbmRhckJvZHk+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5c1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXlcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtEYXlzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXkudGFnIHwgdHJhbnNsYXRlIHwgc2xpY2U6MDozIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5cy1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktY2VsbFwiICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF5Q2VsbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvdXRzaWRlLW1vbnRoJzogZGF5LmlzT3V0c2lkZU1vbnRoLCAnaXMtdG9kYXknOiBkYXkuaXNUb2RheX1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZGF5LmRhdGUuZ2V0RGF0ZSgpIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnRzLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWNhbGVuZGFyLWV2ZW50ICpuZ0Zvcj1cImxldCBldmVudCBvZiBkYXkuZXZlbnRzIHwgc2xpY2U6MDptYXhFdmVudHNJbkRheUNlbGxcIiBbZXZlbnRdPVwiZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFnQ29sb3JdPVwidGFnQ29sb3JcIiAoZXZlbnRDbGljayk9XCJvbkV2ZW50Q2xpY2soJGV2ZW50KVwiPjwvbGliLWNhbGVuZGFyLWV2ZW50PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9yZS1ldmVudHNcIiAqbmdJZj1cImRheS5ldmVudHMubGVuZ3RoID4gKG1heEV2ZW50c0luRGF5Q2VsbCB8fCAwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9yZUV2ZW50c01vZGFsKGRheS5kYXRlLCBkYXkuZXZlbnRzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyduTW9yZUV2ZW50cycgfCB0cmFuc2xhdGU6IHtuOihkYXkuZXZlbnRzLmxlbmd0aCAtIChtYXhFdmVudHNJbkRheUNlbGwgfHwgMCkpfSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgIEZvb3RlclxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGxpYi1tb3JlLWV2ZW50cy1tb2RhbCAqbmdJZj1cInNob3dNb3JlRXZlbnRzTW9kYWwgJiYgbW9yZUV2ZW50c01vZGFsRGF0ZVwiIFtldmVudHNdPVwibW9yZUV2ZW50c01vZGFsRXZlbnRzXCJcclxuICAgICAgICBbdGFnQ29sb3JdPVwidGFnQ29sb3JcIiBbZGF0ZV09XCJtb3JlRXZlbnRzTW9kYWxEYXRlXCIgKGNsb3NlKT1cImNsb3NlTW9yZUV2ZW50c01vZGFsKClcIlxyXG4gICAgICAgIChldmVudENsaWNrKT1cIm9uRXZlbnRDbGljaygkZXZlbnQsIHRydWUpXCI+PC9saWItbW9yZS1ldmVudHMtbW9kYWw+XHJcbjwvZGl2PiJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFnQixLQUFLLEVBQXFCLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRN0osTUFBTSxPQUFPLGlCQUFpQjtJQXVDNUI7UUFyQ1MsaUJBQVksR0FBb0M7WUFDdkQsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQzlCLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7U0FDakMsQ0FBQztRQUVPLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBRTdCLFlBQU8sR0FBd0IsUUFBUSxDQUFDO1FBSXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQVV6RCxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBYztZQUNwQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7U0FDZixD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bUNNOzJGRDNCTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzswRUFNZixZQUFZO3NCQUFwQixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVnQixXQUFXO3NCQUFqQyxTQUFTO3VCQUFDLFVBQVU7Z0JBQ00sZUFBZTtzQkFBekMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckV2ZW50LCBEYXlDZWxsLCBXZWVrRGF5IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2FsZW5kYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGN1cnJlbnRNb250aDogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIgfSA9IHtcclxuICAgIHllYXI6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxcclxuICAgIG1vbnRoOiBuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxXHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgZXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc3RhcnRBdDogJ21vbmRheScgfCAnc3VuZGF5JyA9ICdzdW5kYXknO1xyXG5cclxuICBASW5wdXQoKSB0YWdDb2xvcj86IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIGV2ZW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyRXZlbnQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyJykgY2FsZW5kYXJSZWYhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyQm9keScpIGNhbGVuZGFyQm9keVJlZiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNhbGVuZGFyV2lkdGg/OiBudW1iZXI7XHJcbiAgY29sdW1uV2lkdGg/OiBudW1iZXI7XHJcbiAgY2FsZW5kYXJCb2R5SGVpZ2h0PzogbnVtYmVyO1xyXG4gIG1heEV2ZW50c0luRGF5Q2VsbD86IG51bWJlcjtcclxuXHJcbiAgZGF5Q2VsbHM6IERheUNlbGxbXSA9IFtdO1xyXG5cclxuICB3ZWVrRGF5czogV2Vla0RheVtdID0gW1xyXG4gICAgeyB0YWc6ICdzdW4nIH0sXHJcbiAgICB7IHRhZzogJ21vbicgfSxcclxuICAgIHsgdGFnOiAndHVlJyB9LFxyXG4gICAgeyB0YWc6ICd3ZWQnIH0sXHJcbiAgICB7IHRhZzogJ3RodScgfSxcclxuICAgIHsgdGFnOiAnZnJpJyB9LFxyXG4gICAgeyB0YWc6ICdzYXQnIH0sXHJcbiAgXTtcclxuXHJcbiAgc2hvd01vcmVFdmVudHNNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vcmVFdmVudHNNb2RhbERhdGU/OiBEYXRlO1xyXG4gIG1vcmVFdmVudHNNb2RhbEV2ZW50czogQ2FsZW5kYXJFdmVudFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGlzVG9kYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpID09PSB0b2RheS5nZXREYXRlKCkgJiZcclxuICAgICAgZGF0ZS5nZXRNb250aCgpID09PSB0b2RheS5nZXRNb250aCgpICYmXHJcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50c0ZvckRheShkYXRlOiBEYXRlKTogQ2FsZW5kYXJFdmVudFtdIHtcclxuICAgIHJldHVybiB0aGlzLmV2ZW50cy5maWx0ZXIoZXZlbnQgPT4ge1xyXG4gICAgICBjb25zdCBldmVudFN0YXJ0ID0gbmV3IERhdGUoZXZlbnQuc3RhcnQpO1xyXG4gICAgICBjb25zdCBldmVudEVuZCA9IGV2ZW50LmVuZCA/IG5ldyBEYXRlKGV2ZW50LmVuZCkgOiBldmVudFN0YXJ0O1xyXG5cclxuICAgICAgcmV0dXJuIGRhdGUgPj0gbmV3IERhdGUoZXZlbnRTdGFydC5nZXRGdWxsWWVhcigpLCBldmVudFN0YXJ0LmdldE1vbnRoKCksIGV2ZW50U3RhcnQuZ2V0RGF0ZSgpKSAmJlxyXG4gICAgICAgIGRhdGUgPD0gbmV3IERhdGUoZXZlbnRFbmQuZ2V0RnVsbFllYXIoKSwgZXZlbnRFbmQuZ2V0TW9udGgoKSwgZXZlbnRFbmQuZ2V0RGF0ZSgpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdERheXNDZWxscygpIHtcclxuICAgIGNvbnN0IGRheXNJbk1vbnRoID0gbmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGgsIDApLmdldERhdGUoKTtcclxuICAgIGNvbnN0IGZpcnN0RGF5T2ZXZWVrID0gbmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGggLSAxLCAxKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IHByZXZEYXlzQ291bnQgPSB0aGlzLnN0YXJ0QXQgPT09ICdtb25kYXknID8gKGZpcnN0RGF5T2ZXZWVrID09PSAwID8gNiA6IGZpcnN0RGF5T2ZXZWVrIC0gMSkgOiBmaXJzdERheU9mV2VlaztcclxuICAgIC8vIGNvbnN0IG5leHREYXlzQ291bnQgPSAoNyAtICgocHJldkRheXNDb3VudCArIGRheXNJbk1vbnRoKSAlIDcpKSAlIDc7XHJcbiAgICBjb25zdCBuZXh0RGF5c0NvdW50ID0gNDIgLSAocHJldkRheXNDb3VudCArIGRheXNJbk1vbnRoKTsgLy8gQWx3YXlzIHNob3cgNiB3ZWVrc1xyXG5cclxuICAgIHRoaXMuZGF5Q2VsbHMgPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZEYXlzQ291bnQ7IGkrKykge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGggLSAxLCBpIC0gcHJldkRheXNDb3VudCArIDEpO1xyXG4gICAgICBjb25zdCBfZXZlbnRzID0gdGhpcy5nZXRFdmVudHNGb3JEYXkoZGF0ZSk7XHJcblxyXG4gICAgICB0aGlzLmRheUNlbGxzLnB1c2goe1xyXG4gICAgICAgIGRhdGUsXHJcbiAgICAgICAgZXZlbnRzOiBfZXZlbnRzLFxyXG4gICAgICAgIGlzT3V0c2lkZU1vbnRoOiB0cnVlLFxyXG4gICAgICAgIGlzVG9kYXk6IHRoaXMuaXNUb2RheShkYXRlKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBkYXkgPSAxOyBkYXkgPD0gZGF5c0luTW9udGg7IGRheSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRNb250aC55ZWFyLCB0aGlzLmN1cnJlbnRNb250aC5tb250aCAtIDEsIGRheSk7XHJcbiAgICAgIGNvbnN0IF9ldmVudHMgPSB0aGlzLmdldEV2ZW50c0ZvckRheShkYXRlKTtcclxuXHJcbiAgICAgIHRoaXMuZGF5Q2VsbHMucHVzaCh7XHJcbiAgICAgICAgZGF0ZSxcclxuICAgICAgICBldmVudHM6IF9ldmVudHMsXHJcbiAgICAgICAgaXNUb2RheTogdGhpcy5pc1RvZGF5KGRhdGUpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IG5leHREYXlzQ291bnQ7IGkrKykge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGggLSAxLCBkYXlzSW5Nb250aCArIGkpO1xyXG4gICAgICBjb25zdCBfZXZlbnRzID0gdGhpcy5nZXRFdmVudHNGb3JEYXkoZGF0ZSk7XHJcblxyXG4gICAgICB0aGlzLmRheUNlbGxzLnB1c2goe1xyXG4gICAgICAgIGRhdGUsXHJcbiAgICAgICAgZXZlbnRzOiBfZXZlbnRzLFxyXG4gICAgICAgIGlzT3V0c2lkZU1vbnRoOiB0cnVlLFxyXG4gICAgICAgIGlzVG9kYXk6IHRoaXMuaXNUb2RheShkYXRlKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENhbGVuZGFyQm9keUhlaWdodCgpIHtcclxuICAgIHRoaXMuY2FsZW5kYXJCb2R5SGVpZ2h0ID0gdGhpcy5jYWxlbmRhckJvZHlSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBzZXRNYXhFdmVudHNJbkRheUNlbGwoKSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZXZlbnRzLWxpc3QnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGV2ZW50RWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjYWxlbmRhci1ldmVudC1jb21wb25lbnQnKTtcclxuICAgIGNvbnN0IGV2ZW50RWxlbWVudCA9IGV2ZW50RWxlbWVudHMuaXRlbSgwKSBhcyAoSFRNTEVsZW1lbnQgfCBudWxsKTtcclxuXHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICBsZXQgZXZlbnRJdGVtSGVpZ2h0ID0gMjI7XHJcbiAgICAgIGlmIChldmVudEVsZW1lbnQpIGV2ZW50SXRlbUhlaWdodCA9IGV2ZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgICBjb25zdCBnYXAgPSAyO1xyXG5cclxuICAgICAgdGhpcy5tYXhFdmVudHNJbkRheUNlbGwgPSBNYXRoLmZsb29yKGVsZW1lbnQuY2xpZW50SGVpZ2h0IC8gKGV2ZW50SXRlbUhlaWdodCArIGdhcCkpIC0gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5Nb3JlRXZlbnRzTW9kYWwoZGF0ZTogRGF0ZSwgZXZlbnRzOiBDYWxlbmRhckV2ZW50W10pIHtcclxuICAgIHRoaXMubW9yZUV2ZW50c01vZGFsRGF0ZSA9IGRhdGU7XHJcbiAgICB0aGlzLm1vcmVFdmVudHNNb2RhbEV2ZW50cyA9IGV2ZW50cztcclxuICAgIHRoaXMuc2hvd01vcmVFdmVudHNNb2RhbCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZU1vcmVFdmVudHNNb2RhbCgpIHtcclxuICAgIHRoaXMuc2hvd01vcmVFdmVudHNNb2RhbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5tb3JlRXZlbnRzTW9kYWxEYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5tb3JlRXZlbnRzTW9kYWxFdmVudHMgPSBbXTtcclxuICB9XHJcblxyXG4gIHJlc2l6ZUxpc3RlbmVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zZXRDYWxlbmRhckJvZHlIZWlnaHQoKTtcclxuICAgIHRoaXMuc2V0TWF4RXZlbnRzSW5EYXlDZWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0YXJ0QXQgPT09ICdtb25kYXknKSB7XHJcbiAgICAgIHRoaXMud2Vla0RheXMgPSBbXHJcbiAgICAgICAgeyB0YWc6ICdtb24nIH0sXHJcbiAgICAgICAgeyB0YWc6ICd0dWUnIH0sXHJcbiAgICAgICAgeyB0YWc6ICd3ZWQnIH0sXHJcbiAgICAgICAgeyB0YWc6ICd0aHUnIH0sXHJcbiAgICAgICAgeyB0YWc6ICdmcmknIH0sXHJcbiAgICAgICAgeyB0YWc6ICdzYXQnIH0sXHJcbiAgICAgICAgeyB0YWc6ICdzdW4nIH0sXHJcbiAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0RGF5c0NlbGxzKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVMaXN0ZW5lcik7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJCb2R5SGVpZ2h0KCk7XHJcbiAgICAgIHRoaXMuc2V0TWF4RXZlbnRzSW5EYXlDZWxsKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjdXJyZW50TW9udGgnXSB8fCBjaGFuZ2VzWydldmVudHMnXSkge1xyXG4gICAgICB0aGlzLmluaXREYXlzQ2VsbHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUxpc3RlbmVyKTtcclxuICB9XHJcblxyXG4gIG9uRXZlbnRDbGljayhldmVudDogQ2FsZW5kYXJFdmVudCwgY2xvc2VNb2RhbDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAoY2xvc2VNb2RhbCkgdGhpcy5jbG9zZU1vcmVFdmVudHNNb2RhbCgpO1xyXG5cclxuICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNvbXBvbmVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvZHlcIiAjY2FsZW5kYXJCb2R5PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheXNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5XCIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrRGF5c1wiPlxyXG4gICAgICAgICAgICAgICAge3sgZGF5LnRhZyB8IHRyYW5zbGF0ZSB8IHNsaWNlOjA6MyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRheXMtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LWNlbGxcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheUNlbGxzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3V0c2lkZS1tb250aCc6IGRheS5pc091dHNpZGVNb250aCwgJ2lzLXRvZGF5JzogZGF5LmlzVG9kYXl9XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LW51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGRheS5kYXRlLmdldERhdGUoKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50cy1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1jYWxlbmRhci1ldmVudCAqbmdGb3I9XCJsZXQgZXZlbnQgb2YgZGF5LmV2ZW50cyB8IHNsaWNlOjA6bWF4RXZlbnRzSW5EYXlDZWxsXCIgW2V2ZW50XT1cImV2ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhZ0NvbG9yXT1cInRhZ0NvbG9yXCIgKGV2ZW50Q2xpY2spPVwib25FdmVudENsaWNrKCRldmVudClcIj48L2xpYi1jYWxlbmRhci1ldmVudD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vcmUtZXZlbnRzXCIgKm5nSWY9XCJkYXkuZXZlbnRzLmxlbmd0aCA+IChtYXhFdmVudHNJbkRheUNlbGwgfHwgMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk1vcmVFdmVudHNNb2RhbChkYXkuZGF0ZSwgZGF5LmV2ZW50cylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3snbk1vcmVFdmVudHMnIHwgdHJhbnNsYXRlOiB7bjooZGF5LmV2ZW50cy5sZW5ndGggLSAobWF4RXZlbnRzSW5EYXlDZWxsIHx8IDApKX0gfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cclxuICAgICAgICBGb290ZXJcclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxsaWItbW9yZS1ldmVudHMtbW9kYWwgKm5nSWY9XCJzaG93TW9yZUV2ZW50c01vZGFsICYmIG1vcmVFdmVudHNNb2RhbERhdGVcIiBbZXZlbnRzXT1cIm1vcmVFdmVudHNNb2RhbEV2ZW50c1wiXHJcbiAgICAgICAgW3RhZ0NvbG9yXT1cInRhZ0NvbG9yXCIgW2RhdGVdPVwibW9yZUV2ZW50c01vZGFsRGF0ZVwiIChjbG9zZSk9XCJjbG9zZU1vcmVFdmVudHNNb2RhbCgpXCJcclxuICAgICAgICAoZXZlbnRDbGljayk9XCJvbkV2ZW50Q2xpY2soJGV2ZW50LCB0cnVlKVwiPjwvbGliLW1vcmUtZXZlbnRzLW1vZGFsPlxyXG48L2Rpdj4iXX0=
|
|
@@ -25,10 +25,10 @@ export class MoreEventsModalComponent {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
MoreEventsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MoreEventsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
MoreEventsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MoreEventsModalComponent, selector: "lib-more-events-modal", inputs: { events: "events", date: "date", tagColor: "tagColor" }, outputs: { close: "close", eventClick: "eventClick" }, ngImport: i0, template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
28
|
+
MoreEventsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MoreEventsModalComponent, selector: "lib-more-events-modal", inputs: { events: "events", date: "date", tagColor: "tagColor" }, outputs: { close: "close", eventClick: "eventClick" }, ngImport: i0, template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .tag.is-dark{color:#fafafa}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MoreEventsModalComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
|
-
args: [{ selector: 'lib-more-events-modal', template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
31
|
+
args: [{ selector: 'lib-more-events-modal', template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .tag.is-dark{color:#fafafa}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
32
32
|
}], ctorParameters: function () { return []; }, propDecorators: { events: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}], date: [{
|
|
@@ -189,10 +189,10 @@ class MoreEventsModalComponent {
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
MoreEventsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MoreEventsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
-
MoreEventsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MoreEventsModalComponent, selector: "lib-more-events-modal", inputs: { events: "events", date: "date", tagColor: "tagColor" }, outputs: { close: "close", eventClick: "eventClick" }, ngImport: i0, template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
192
|
+
MoreEventsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MoreEventsModalComponent, selector: "lib-more-events-modal", inputs: { events: "events", date: "date", tagColor: "tagColor" }, outputs: { close: "close", eventClick: "eventClick" }, ngImport: i0, template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .tag.is-dark{color:#fafafa}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
193
193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MoreEventsModalComponent, decorators: [{
|
|
194
194
|
type: Component,
|
|
195
|
-
args: [{ selector: 'lib-more-events-modal', template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
195
|
+
args: [{ selector: 'lib-more-events-modal', template: "<div class=\"more-events-modal-component\">\n <div class=\"backdrop\" (click)=\"onClose()\"></div>\n\n <div class=\"modal\">\n <div class=\"header\">\n <div class=\"title\">{{'moreEvents' | translate}}</div>\n <div class=\"subtitle\">{{date.toLocaleDateString()}}</div>\n\n <button class=\"btn-close\" (click)=\"onClose()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"feather feather-x\" fill=\"yellow\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div class=\"events-list\">\n <div class=\"event-item\" *ngFor=\"let event of events\" style=\"--color: {{event.color}};\"\n [ngClass]=\"{'is-dark':isDarkColor(event.color)}\" (click)=\"onEventClick(event)\">\n <div class=\"tag\" *ngIf=\"event.tag\" [ngClass]=\"{'is-dark': isTagColorDark()}\"\n [style.background-color]=\"tagColor\">{{ event.tag }}</div>\n\n <div class=\"event-title\">{{ event.title }}</div>\n </div>\n </div>\n </div>\n</div>", styles: [".more-events-modal-component{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-shadow:0 2px 8px #00000026}.more-events-modal-component .backdrop{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:#00000080;cursor:pointer}.modal{z-index:2;display:flex;flex-direction:column;max-width:400px;width:100%;max-height:80%;margin:24px;background-color:#fff;border-radius:8px}.header{position:relative;display:flex;flex-direction:column;padding:16px 64px 16px 16px}.title{font-size:18px;font-weight:700}.subtitle{font-size:13px;color:#666}.btn-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer}.btn-close:hover{background-color:#f0f0f0}.events-list{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;padding:0 16px 16px;overflow-y:auto}.events-list .event-item{display:flex;align-items:center;background-color:var(--color, #e2e2e2);border-radius:4px;color:#212121;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.events-list .event-item.is-dark{color:#fafafa}.events-list .event-item .tag{flex-shrink:0;width:56px;padding:8px 0;text-align:center}.events-list .event-item .tag.is-dark{color:#fafafa}.events-list .event-item .event-title{flex:1 1 auto;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
196
196
|
}], ctorParameters: function () { return []; }, propDecorators: { events: [{
|
|
197
197
|
type: Input
|
|
198
198
|
}], date: [{
|
|
@@ -287,10 +287,14 @@ class CalendarComponent {
|
|
|
287
287
|
}
|
|
288
288
|
setMaxEventsInDayCell() {
|
|
289
289
|
const element = document.getElementsByClassName('events-list')[0];
|
|
290
|
-
|
|
290
|
+
const eventElements = document.getElementsByClassName('calendar-event-component');
|
|
291
|
+
const eventElement = eventElements.item(0);
|
|
291
292
|
if (element) {
|
|
292
|
-
|
|
293
|
-
|
|
293
|
+
let eventItemHeight = 22;
|
|
294
|
+
if (eventElement)
|
|
295
|
+
eventItemHeight = eventElement.clientHeight;
|
|
296
|
+
const gap = 2;
|
|
297
|
+
this.maxEventsInDayCell = Math.floor(element.clientHeight / (eventItemHeight + gap)) - 1;
|
|
294
298
|
}
|
|
295
299
|
}
|
|
296
300
|
openMoreEventsModal(date, events) {
|