@agorapulse/ui-components 15.0.4 → 15.0.5
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/agorapulse-ui-components-15.0.5.tgz +0 -0
- package/esm2020/neo-datepicker/neo-datepicker.component.mjs +3 -2
- package/fesm2015/agorapulse-ui-components-neo-datepicker.mjs +2 -1
- package/fesm2015/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-neo-datepicker.mjs +2 -1
- package/fesm2020/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
- package/package.json +1 -1
- package/agorapulse-ui-components-15.0.4.tgz +0 -0
|
Binary file
|
|
@@ -92,7 +92,8 @@ export class NeoDatepickerComponent {
|
|
|
92
92
|
this.currentMonthDates$
|
|
93
93
|
.pipe(distinctUntilChanged(), filter(() => !!this.minDateTimestamp))
|
|
94
94
|
.subscribe(currentMonthDates => {
|
|
95
|
-
|
|
95
|
+
const minDateInPreviousMonth = new Date(this.minDateTimestamp).getMonth() < this.currentMonth;
|
|
96
|
+
this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp) || minDateInPreviousMonth;
|
|
96
97
|
});
|
|
97
98
|
}
|
|
98
99
|
getDayDetails(index, firstDay, month, numberOfDays, year) {
|
|
@@ -224,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
224
225
|
}], previousMonth: [{
|
|
225
226
|
type: Output
|
|
226
227
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVvLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25lby1kYXRlcGlja2VyL3NyYy9uZW8tZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmVvLWRhdGVwaWNrZXIvc3JjL25lby1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN0SCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMscUJBQXFCLElBQUksZUFBZSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDekYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLFVBQVUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUF5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Q0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0wsQ0FBQzs7bUhBbE5RLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDRVQWRwQixDQUFDLGVBQWUsQ0FBQywwQkNsQ2hDLG11RUF5REEsby9QRHJCUSx3QkFBd0IsNEpBQ3hCLGFBQWEsaURBQ2IsZUFBZSxpV0FDZixPQUFPLG1IQUNQLElBQUksd0ZBQ0osU0FBUyw4Q0FDVCxnQkFBZ0IsK0lBQ2hCLGVBQWUsK0NBQ2YsU0FBUzsyRkFJSixzQkFBc0I7a0JBbkJsQyxTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsZUFBZSxDQUFDLFdBQ25CO3dCQUNMLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixTQUFTO3FCQUNaLGNBQ1csSUFBSTtxR0FPUCxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHTyxPQUFPO3NCQUFuQixLQUFLO2dCQVNPLE9BQU87c0JBQW5CLEtBQUs7Z0JBV08sSUFBSTtzQkFBaEIsS0FBSztnQkFZTyxhQUFhO3NCQUF6QixLQUFLO2dCQWlCRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZ29yYXB1bHNlVWlTeW1ib2xNb2R1bGUsIGFwQXJyb3dCdXR0b25MZWZ0LCBhcEFycm93QnV0dG9uUmlnaHQsIFN5bWJvbFJlZ2lzdHJ5fSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIFNsaWNlUGlwZSwgVGl0bGVDYXNlUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRMZWdhY3lCdXR0b25Nb2R1bGUgYXMgTWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktYnV0dG9uJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9kZSc7XG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9lbic7XG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9lcyc7XG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9mcic7XG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9wdCc7XG5pbXBvcnQgbG9jYWxlRGF0YSBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YSc7XG5pbXBvcnQge0RheURldGFpbH0gZnJvbSAnLi9kYXktZGV0YWlsLm1vZGVsJztcbmltcG9ydCB7RGF5RGlzYWJsZWRQaXBlfSBmcm9tICcuL2RheS1kaXNhYmxlZC5waXBlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXJ9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuZXhwb3J0IHR5cGUgTmVvRGF0ZVBpY2tlck1vZGUgPSAnc2luZ2xlJyB8ICdtdWx0aXBsZSc7XG5leHBvcnQgdHlwZSBOZW9EYXRlUGlja2VyU3RhcnRzT24gPSAnbW9uZGF5JyB8ICdzdW5kYXknO1xuZXhwb3J0IHR5cGUgTmVvRGF0ZVBpY2tlckxvY2FsZSA9ICdlbicgfCAnZXMnIHwgJ2ZyJyB8ICdwdCcgfCAnZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLW5lby1kYXRlLXBpY2tlcicsXG4gICAgc3R5bGVVcmxzOiBbJ25lby1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICduZW8tZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbRGF5RGlzYWJsZWRQaXBlXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEFnb3JhcHVsc2VVaVN5bWJvbE1vZHVsZSxcbiAgICAgICAgVGl0bGVDYXNlUGlwZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBTbGljZVBpcGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIERheURpc2FibGVkUGlwZSxcbiAgICAgICAgQXN5bmNQaXBlXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZW9EYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICByZWFkb25seSBPTkVfREFZOiBudW1iZXIgPSA2MCAqIDYwICogMjQgKiAxMDAwO1xuICAgIHJlYWRvbmx5IFRPREFZX1RJTUVTVEFNUDogbnVtYmVyID1cbiAgICAgICAgRGF0ZS5ub3coKSAtIChEYXRlLm5vdygpICUgdGhpcy5PTkVfREFZKSArIG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDEwMDAgKiA2MDtcblxuICAgIEBJbnB1dCgpIGRheVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG4gICAgQElucHV0KCkgbG9jYWxlOiBOZW9EYXRlUGlja2VyTG9jYWxlO1xuXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZTogZGF5anMuRGF5anM7XG4gICAgQElucHV0KCkgc2V0IG1heERhdGUobWF4RGF0ZTogZGF5anMuRGF5anMpIHtcbiAgICAgICAgdGhpcy5fbWF4RGF0ZSA9IG1heERhdGU7XG4gICAgICAgIHRoaXMubWF4RGF0ZVRpbWVzdGFtcCA9IG1heERhdGUudG9EYXRlKCkuZ2V0VGltZSgpO1xuICAgIH1cbiAgICBnZXQgbWF4RGF0ZSgpOiBkYXlqcy5EYXlqcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21pbkRhdGU6IGRheWpzLkRheWpzO1xuICAgIEBJbnB1dCgpIHNldCBtaW5EYXRlKG1pbkRhdGU6IGRheWpzLkRheWpzKSB7XG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSBtaW5EYXRlO1xuICAgICAgICB0aGlzLm1pbkRhdGVUaW1lc3RhbXAgPSBtaW5EYXRlLnRvRGF0ZSgpLmdldFRpbWUoKTtcbiAgICB9XG4gICAgZ2V0IG1pbkRhdGUoKTogZGF5anMuRGF5anMge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgICB9XG5cbiAgICBwcmV2aW91c01vbnRoQXZhaWxhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX21vZGU6IE5lb0RhdGVQaWNrZXJNb2RlID0gJ3NpbmdsZSc7XG4gICAgQElucHV0KCkgc2V0IG1vZGUobW9kZTogTmVvRGF0ZVBpY2tlck1vZGUpIHtcbiAgICAgICAgdGhpcy5fbW9kZSA9IG1vZGU7XG4gICAgICAgIGlmICh0aGlzLl9tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlcyA9IHRoaXMuX3NlbGVjdGVkRGF0ZXMuc2xpY2UoMCwgMSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcCA9IG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcCkuc2xpY2UoMCwgMSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBtb2RlKCk6IE5lb0RhdGVQaWNrZXJNb2RlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWREYXRlczogZGF5anMuRGF5anNbXTtcbiAgICBASW5wdXQoKSBzZXQgc2VsZWN0ZWREYXRlcyhkYXRlczogZGF5anMuRGF5anNbXSkge1xuICAgICAgICBpZiAodGhpcy5fbW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIGRhdGVzID0gZGF0ZXMuc2xpY2UoMCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXAgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZXMgPSBkYXRlcztcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRGF0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZERhdGVzLmZvckVhY2goZGF5ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcC5hZGQoZGF5LnRvRGF0ZSgpLmdldFRpbWUoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZERhdGVzKCk6IGRheWpzLkRheWpzW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRlcztcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzdGFydHNPbjogTmVvRGF0ZVBpY2tlclN0YXJ0c09uID0gJ21vbmRheSc7XG5cbiAgICBAT3V0cHV0KCkgZGF0ZXNTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGRheWpzLkRheWpzW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxkYXlqcy5EYXlqc1tdPigpO1xuICAgIEBPdXRwdXQoKSBuZXh0TW9udGg6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgcHJldmlvdXNNb250aDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgY3VycmVudFllYXI6IG51bWJlcjtcbiAgICBjdXJyZW50TW9udGg6IG51bWJlcjtcbiAgICBjdXJyZW50TW9udGhEYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxEYXlEZXRhaWxbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERheURldGFpbFtdPihbXSk7XG4gICAgbWluRGF0ZVRpbWVzdGFtcDogbnVtYmVyO1xuICAgIG1heERhdGVUaW1lc3RhbXA6IG51bWJlcjtcbiAgICBtb250aHM6IHN0cmluZ1tdO1xuICAgIHNlbGVjdGVkRGF5c1RpbWVzdGFtcDogU2V0PG51bWJlcj4gPSBuZXcgU2V0KCk7XG4gICAgd2Vla0RheXM6IHN0cmluZ1tdO1xuXG4gICAgZGF5RGlzYWJsZWRQaXBlOiBEYXlEaXNhYmxlZFBpcGUgPSBpbmplY3QoRGF5RGlzYWJsZWRQaXBlKTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBBcnJvd0J1dHRvbkxlZnQsXG4gICAgICAgICAgICBhcEFycm93QnV0dG9uUmlnaHRcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRoaXMuY3VycmVudFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICAgICAgICBpZiAodGhpcy5sb2NhbGUpIHtcbiAgICAgICAgICAgIGRheWpzLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb250aHMgPSBkYXlqcy5tb250aHMoKTtcbiAgICAgICAgdGhpcy53ZWVrRGF5cyA9IFsuLi5kYXlqcy53ZWVrZGF5cygpXTtcblxuICAgICAgICBpZiAodGhpcy5zdGFydHNPbiA9PT0gJ21vbmRheScpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1bmRheSA9IHRoaXMud2Vla0RheXMuc2xpY2UoMCwgMSk7XG4gICAgICAgICAgICB0aGlzLndlZWtEYXlzLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICAgIHRoaXMud2Vla0RheXMgPSB0aGlzLndlZWtEYXlzLmNvbmNhdChzdW5kYXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0ZXMkLm5leHQodGhpcy5nZXRNb250aERldGFpbHModGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgpKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGhEYXRlcyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5taW5EYXRlVGltZXN0YW1wKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShjdXJyZW50TW9udGhEYXRlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c01vbnRoQXZhaWxhYmxlID0gIWN1cnJlbnRNb250aERhdGVzLnNvbWUoKGRheURldGFpbCkgPT4gZGF5RGV0YWlsLnRpbWVzdGFtcCA9PT0gdGhpcy5taW5EYXRlVGltZXN0YW1wKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBnZXREYXlEZXRhaWxzKGluZGV4OiBudW1iZXIsIGZpcnN0RGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIG51bWJlck9mRGF5czogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBEYXlEZXRhaWwge1xuICAgICAgICBjb25zdCBkYXRlID0gaW5kZXggLSBmaXJzdERheTtcbiAgICAgICAgY29uc3QgZGF5ID0gaW5kZXggJSA3O1xuICAgICAgICBsZXQgcHJldk1vbnRoID0gbW9udGggLSAxO1xuICAgICAgICBsZXQgcHJldlllYXIgPSB5ZWFyO1xuICAgICAgICBpZiAocHJldk1vbnRoIDwgMCkge1xuICAgICAgICAgICAgcHJldk1vbnRoID0gMTE7XG4gICAgICAgICAgICBwcmV2WWVhci0tO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZNb250aE51bWJlck9mRGF5cyA9IHRoaXMuZ2V0TnVtYmVyT2ZEYXlzKHByZXZZZWFyLCBwcmV2TW9udGgpO1xuICAgICAgICBjb25zdCBfZGF0ZSA9IChkYXRlIDwgMCA/IHByZXZNb250aE51bWJlck9mRGF5cyArIGRhdGUgOiBkYXRlICUgbnVtYmVyT2ZEYXlzKSArIDE7XG4gICAgICAgIGNvbnN0IF9tb250aCA9IGRhdGUgPCAwID8gLTEgOiBkYXRlID49IG51bWJlck9mRGF5cyA/IDEgOiAwO1xuICAgICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoeWVhciwgX21vbnRoICsgbW9udGgsIF9kYXRlKTtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3RGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IGRheVN0cmluZyA9IHRoaXMud2Vla0RheXNbZGF5XTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGU6IF9kYXRlLFxuICAgICAgICAgICAgZGF5LFxuICAgICAgICAgICAgbW9udGg6IF9tb250aCxcbiAgICAgICAgICAgIHRpbWVzdGFtcCxcbiAgICAgICAgICAgIGRheVN0cmluZyxcbiAgICAgICAgICAgIGRheWpzOiBkYXlqcyhuZXdEYXRlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXROdW1iZXJPZkRheXMoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDQwIC0gbmV3IERhdGUoeWVhciwgbW9udGgsIDQwKS5nZXREYXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhEZXRhaWxzKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IERheURldGFpbFtdIHtcbiAgICAgICAgbGV0IGZpcnN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGgpLmdldERheSgpO1xuICAgICAgICBpZiAodGhpcy5zdGFydHNPbiA9PT0gJ21vbmRheScpIHtcbiAgICAgICAgICAgIGZpcnN0RGF5IC09IDE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGRheSBpcyBiZWxvdyAwIGl0IG1lYW5zIHRoZSBzdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggc28gd2UgbmVlZCB0byBzaG93IHRoZSBsYXN0IG1vbnRoXG4gICAgICAgIGlmIChmaXJzdERheSA8IDApIHtcbiAgICAgICAgICAgIGZpcnN0RGF5ID0gNjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudW1iZXJPZkRheXMgPSB0aGlzLmdldE51bWJlck9mRGF5cyh5ZWFyLCBtb250aCk7XG4gICAgICAgIGNvbnN0IG1vbnRoQXJyYXkgPSBbXTtcbiAgICAgICAgY29uc3Qgcm93cyA9IDY7XG4gICAgICAgIGxldCBjdXJyZW50RGF5ID0gbnVsbDtcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgY29uc3QgY29scyA9IDc7XG5cbiAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgcm93czsgcm93KyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IGNvbHM7IGNvbCsrKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudERheSA9IHRoaXMuZ2V0RGF5RGV0YWlscyhpbmRleCwgZmlyc3REYXksIG1vbnRoLCBudW1iZXJPZkRheXMsIHllYXIpO1xuICAgICAgICAgICAgICAgIG1vbnRoQXJyYXkucHVzaChjdXJyZW50RGF5KTtcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb250aEFycmF5O1xuICAgIH1cblxuICAgIG9uUHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJldmlvdXNNb250aEF2YWlsYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91c01vbnRoLmVtaXQoKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1vbnRoIC09IDE7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50TW9udGggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TW9udGggPSAxMTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRZZWFyIC09IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb250aERhdGVzJC5uZXh0KHRoaXMuZ2V0TW9udGhEZXRhaWxzKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5leHRNb250aCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXh0TW9udGguZW1pdCgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aCArPSAxO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TW9udGggPT09IDEyKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb250aCA9IDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRZZWFyICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGhEYXRlcyQubmV4dCh0aGlzLmdldE1vbnRoRGV0YWlscyh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCkpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0RGF5KGRheURldGFpbDogRGF5RGV0YWlsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheURpc2FibGVkID0gdGhpcy5kYXlEaXNhYmxlZFBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgZGF5RGV0YWlsLFxuICAgICAgICAgICAgdGhpcy5UT0RBWV9USU1FU1RBTVAsXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGVUaW1lc3RhbXAsXG4gICAgICAgICAgICB0aGlzLm1heERhdGVUaW1lc3RhbXBcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFkYXlEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcC5jbGVhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubWluRGF0ZSAmJiBkYXlEZXRhaWwuZGF5anMuaXNCZWZvcmUoZGF5anModGhpcy5taW5EYXRlKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5tYXhEYXRlICYmIGRheURldGFpbC5kYXlqcy5pc0FmdGVyKGRheWpzKHRoaXMubWF4RGF0ZSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXlzVGltZXN0YW1wLmhhcyhkYXlEZXRhaWwudGltZXN0YW1wKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzVGltZXN0YW1wLmRlbGV0ZShkYXlEZXRhaWwudGltZXN0YW1wKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXAuYWRkKGRheURldGFpbC50aW1lc3RhbXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kYXRlc1NlbGVjdGVkLmVtaXQoQXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcCkubWFwKHRpbWVzdGFtcCA9PiBkYXlqcyh0aW1lc3RhbXApKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZSBnaG9zdCBsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFwcmV2aW91c01vbnRoQXZhaWxhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJldmlvdXNNb250aCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwiYXJyb3ctYnV0dG9uLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2FwLXN5bWJvbD5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgbW9udGhzW2N1cnJlbnRNb250aF0gfCB0aXRsZWNhc2UgIH19IHt7IGN1cnJlbnRZZWFyIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZSBnaG9zdCByaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5leHRNb250aCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwiYXJyb3ctYnV0dG9uLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9hcC1zeW1ib2w+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtEYXlzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBkYXkgfCBzbGljZTowOjIgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRheXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXkgb2YgY3VycmVudE1vbnRoRGF0ZXMkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF5VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRheVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2RheTogZGF5fVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF5VGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRheSB8IGRheURpc2FibGVkOlRPREFZX1RJTUVTVEFNUDptaW5EYXRlVGltZXN0YW1wOm1heERhdGVUaW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50b2RheV09XCJkYXkudGltZXN0YW1wID09PSBUT0RBWV9USU1FU1RBTVBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZERheXNUaW1lc3RhbXAuaGFzKGRheS50aW1lc3RhbXApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdERheShkYXkpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVvLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25lby1kYXRlcGlja2VyL3NyYy9uZW8tZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmVvLWRhdGVwaWNrZXIvc3JjL25lby1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN0SCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMscUJBQXFCLElBQUksZUFBZSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDekYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLFVBQVUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUF5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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBhcEFycm93QnV0dG9uTGVmdCwgYXBBcnJvd0J1dHRvblJpZ2h0LCBTeW1ib2xSZWdpc3RyeX0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBTbGljZVBpcGUsIFRpdGxlQ2FzZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0TGVnYWN5QnV0dG9uTW9kdWxlIGFzIE1hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWJ1dHRvbic7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZGUnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZW4nO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZXMnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZnInO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvcHQnO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xuaW1wb3J0IHtEYXlEZXRhaWx9IGZyb20gJy4vZGF5LWRldGFpbC5tb2RlbCc7XG5pbXBvcnQge0RheURpc2FibGVkUGlwZX0gZnJvbSAnLi9kYXktZGlzYWJsZWQucGlwZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZmlsdGVyfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmV4cG9ydCB0eXBlIE5lb0RhdGVQaWNrZXJNb2RlID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xuZXhwb3J0IHR5cGUgTmVvRGF0ZVBpY2tlclN0YXJ0c09uID0gJ21vbmRheScgfCAnc3VuZGF5JztcbmV4cG9ydCB0eXBlIE5lb0RhdGVQaWNrZXJMb2NhbGUgPSAnZW4nIHwgJ2VzJyB8ICdmcicgfCAncHQnIHwgJ2RlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1uZW8tZGF0ZS1waWNrZXInLFxuICAgIHN0eWxlVXJsczogWyduZW8tZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnbmVvLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0RheURpc2FibGVkUGlwZV0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBBZ29yYXB1bHNlVWlTeW1ib2xNb2R1bGUsXG4gICAgICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgTmdJZixcbiAgICAgICAgU2xpY2VQaXBlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEYXlEaXNhYmxlZFBpcGUsXG4gICAgICAgIEFzeW5jUGlwZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmVvRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgT05FX0RBWTogbnVtYmVyID0gNjAgKiA2MCAqIDI0ICogMTAwMDtcbiAgICByZWFkb25seSBUT0RBWV9USU1FU1RBTVA6IG51bWJlciA9XG4gICAgICAgIERhdGUubm93KCkgLSAoRGF0ZS5ub3coKSAlIHRoaXMuT05FX0RBWSkgKyBuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiAxMDAwICogNjA7XG5cbiAgICBASW5wdXQoKSBkYXlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGxvY2FsZTogTmVvRGF0ZVBpY2tlckxvY2FsZTtcblxuICAgIHByaXZhdGUgX21heERhdGU6IGRheWpzLkRheWpzO1xuICAgIEBJbnB1dCgpIHNldCBtYXhEYXRlKG1heERhdGU6IGRheWpzLkRheWpzKSB7XG4gICAgICAgIHRoaXMuX21heERhdGUgPSBtYXhEYXRlO1xuICAgICAgICB0aGlzLm1heERhdGVUaW1lc3RhbXAgPSBtYXhEYXRlLnRvRGF0ZSgpLmdldFRpbWUoKTtcbiAgICB9XG4gICAgZ2V0IG1heERhdGUoKTogZGF5anMuRGF5anMge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9taW5EYXRlOiBkYXlqcy5EYXlqcztcbiAgICBASW5wdXQoKSBzZXQgbWluRGF0ZShtaW5EYXRlOiBkYXlqcy5EYXlqcykge1xuICAgICAgICB0aGlzLl9taW5EYXRlID0gbWluRGF0ZTtcbiAgICAgICAgdGhpcy5taW5EYXRlVGltZXN0YW1wID0gbWluRGF0ZS50b0RhdGUoKS5nZXRUaW1lKCk7XG4gICAgfVxuICAgIGdldCBtaW5EYXRlKCk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuXG4gICAgcHJldmlvdXNNb250aEF2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwcml2YXRlIF9tb2RlOiBOZW9EYXRlUGlja2VyTW9kZSA9ICdzaW5nbGUnO1xuICAgIEBJbnB1dCgpIHNldCBtb2RlKG1vZGU6IE5lb0RhdGVQaWNrZXJNb2RlKSB7XG4gICAgICAgIHRoaXMuX21vZGUgPSBtb2RlO1xuICAgICAgICBpZiAodGhpcy5fbW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZXMgPSB0aGlzLl9zZWxlY3RlZERhdGVzLnNsaWNlKDAsIDEpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXAgPSBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXApLnNsaWNlKDAsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbW9kZSgpOiBOZW9EYXRlUGlja2VyTW9kZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NlbGVjdGVkRGF0ZXM6IGRheWpzLkRheWpzW107XG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGVkRGF0ZXMoZGF0ZXM6IGRheWpzLkRheWpzW10pIHtcbiAgICAgICAgaWYgKHRoaXMuX21vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBkYXRlcyA9IGRhdGVzLnNsaWNlKDAsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzVGltZXN0YW1wID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZERhdGVzID0gZGF0ZXM7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZERhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlcy5mb3JFYWNoKGRheSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXAuYWRkKGRheS50b0RhdGUoKS5nZXRUaW1lKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWREYXRlcygpOiBkYXlqcy5EYXlqc1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZXM7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc3RhcnRzT246IE5lb0RhdGVQaWNrZXJTdGFydHNPbiA9ICdtb25kYXknO1xuXG4gICAgQE91dHB1dCgpIGRhdGVzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxkYXlqcy5EYXlqc1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8ZGF5anMuRGF5anNbXT4oKTtcbiAgICBAT3V0cHV0KCkgbmV4dE1vbnRoOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHByZXZpb3VzTW9udGg6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGN1cnJlbnRZZWFyOiBudW1iZXI7XG4gICAgY3VycmVudE1vbnRoOiBudW1iZXI7XG4gICAgY3VycmVudE1vbnRoRGF0ZXMkOiBCZWhhdmlvclN1YmplY3Q8RGF5RGV0YWlsW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXlEZXRhaWxbXT4oW10pO1xuICAgIG1pbkRhdGVUaW1lc3RhbXA6IG51bWJlcjtcbiAgICBtYXhEYXRlVGltZXN0YW1wOiBudW1iZXI7XG4gICAgbW9udGhzOiBzdHJpbmdbXTtcbiAgICBzZWxlY3RlZERheXNUaW1lc3RhbXA6IFNldDxudW1iZXI+ID0gbmV3IFNldCgpO1xuICAgIHdlZWtEYXlzOiBzdHJpbmdbXTtcblxuICAgIGRheURpc2FibGVkUGlwZTogRGF5RGlzYWJsZWRQaXBlID0gaW5qZWN0KERheURpc2FibGVkUGlwZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFtcbiAgICAgICAgICAgIGFwQXJyb3dCdXR0b25MZWZ0LFxuICAgICAgICAgICAgYXBBcnJvd0J1dHRvblJpZ2h0XG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBkYXlqcy5leHRlbmQobG9jYWxlRGF0YSk7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICBkYXlqcy5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9udGhzID0gZGF5anMubW9udGhzKCk7XG4gICAgICAgIHRoaXMud2Vla0RheXMgPSBbLi4uZGF5anMud2Vla2RheXMoKV07XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRzT24gPT09ICdtb25kYXknKSB7XG4gICAgICAgICAgICBjb25zdCBzdW5kYXkgPSB0aGlzLndlZWtEYXlzLnNsaWNlKDAsIDEpO1xuICAgICAgICAgICAgdGhpcy53ZWVrRGF5cy5zcGxpY2UoMCwgMSk7XG4gICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gdGhpcy53ZWVrRGF5cy5jb25jYXQoc3VuZGF5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRNb250aERhdGVzJC5uZXh0KHRoaXMuZ2V0TW9udGhEZXRhaWxzKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoKSk7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0ZXMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMubWluRGF0ZVRpbWVzdGFtcClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoY3VycmVudE1vbnRoRGF0ZXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1pbkRhdGVJblByZXZpb3VzTW9udGggPSBuZXcgRGF0ZSh0aGlzLm1pbkRhdGVUaW1lc3RhbXApLmdldE1vbnRoKCkgPCB0aGlzLmN1cnJlbnRNb250aDtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzTW9udGhBdmFpbGFibGUgPSAhY3VycmVudE1vbnRoRGF0ZXMuc29tZSgoZGF5RGV0YWlsKSA9PiBkYXlEZXRhaWwudGltZXN0YW1wID09PSB0aGlzLm1pbkRhdGVUaW1lc3RhbXApIHx8IG1pbkRhdGVJblByZXZpb3VzTW9udGg7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZ2V0RGF5RGV0YWlscyhpbmRleDogbnVtYmVyLCBmaXJzdERheTogbnVtYmVyLCBtb250aDogbnVtYmVyLCBudW1iZXJPZkRheXM6IG51bWJlciwgeWVhcjogbnVtYmVyKTogRGF5RGV0YWlsIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGluZGV4IC0gZmlyc3REYXk7XG4gICAgICAgIGNvbnN0IGRheSA9IGluZGV4ICUgNztcbiAgICAgICAgbGV0IHByZXZNb250aCA9IG1vbnRoIC0gMTtcbiAgICAgICAgbGV0IHByZXZZZWFyID0geWVhcjtcbiAgICAgICAgaWYgKHByZXZNb250aCA8IDApIHtcbiAgICAgICAgICAgIHByZXZNb250aCA9IDExO1xuICAgICAgICAgICAgcHJldlllYXItLTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2TW9udGhOdW1iZXJPZkRheXMgPSB0aGlzLmdldE51bWJlck9mRGF5cyhwcmV2WWVhciwgcHJldk1vbnRoKTtcbiAgICAgICAgY29uc3QgX2RhdGUgPSAoZGF0ZSA8IDAgPyBwcmV2TW9udGhOdW1iZXJPZkRheXMgKyBkYXRlIDogZGF0ZSAlIG51bWJlck9mRGF5cykgKyAxO1xuICAgICAgICBjb25zdCBfbW9udGggPSBkYXRlIDwgMCA/IC0xIDogZGF0ZSA+PSBudW1iZXJPZkRheXMgPyAxIDogMDtcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHllYXIsIF9tb250aCArIG1vbnRoLCBfZGF0ZSk7XG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ld0RhdGUuZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCBkYXlTdHJpbmcgPSB0aGlzLndlZWtEYXlzW2RheV07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRlOiBfZGF0ZSxcbiAgICAgICAgICAgIGRheSxcbiAgICAgICAgICAgIG1vbnRoOiBfbW9udGgsXG4gICAgICAgICAgICB0aW1lc3RhbXAsXG4gICAgICAgICAgICBkYXlTdHJpbmcsXG4gICAgICAgICAgICBkYXlqczogZGF5anMobmV3RGF0ZSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0TnVtYmVyT2ZEYXlzKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiA0MCAtIG5ldyBEYXRlKHllYXIsIG1vbnRoLCA0MCkuZ2V0RGF0ZSgpO1xuICAgIH1cblxuICAgIGdldE1vbnRoRGV0YWlscyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBEYXlEZXRhaWxbXSB7XG4gICAgICAgIGxldCBmaXJzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoKS5nZXREYXkoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRzT24gPT09ICdtb25kYXknKSB7XG4gICAgICAgICAgICBmaXJzdERheSAtPSAxO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBmaXJzdCBkYXkgaXMgYmVsb3cgMCBpdCBtZWFucyB0aGUgc3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIHNvIHdlIG5lZWQgdG8gc2hvdyB0aGUgbGFzdCBtb250aFxuICAgICAgICBpZiAoZmlyc3REYXkgPCAwKSB7XG4gICAgICAgICAgICBmaXJzdERheSA9IDY7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtYmVyT2ZEYXlzID0gdGhpcy5nZXROdW1iZXJPZkRheXMoeWVhciwgbW9udGgpO1xuICAgICAgICBjb25zdCBtb250aEFycmF5ID0gW107XG4gICAgICAgIGNvbnN0IHJvd3MgPSA2O1xuICAgICAgICBsZXQgY3VycmVudERheSA9IG51bGw7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IGNvbHMgPSA3O1xuXG4gICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IHJvd3M7IHJvdysrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCBjb2xzOyBjb2wrKykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXkgPSB0aGlzLmdldERheURldGFpbHMoaW5kZXgsIGZpcnN0RGF5LCBtb250aCwgbnVtYmVyT2ZEYXlzLCB5ZWFyKTtcbiAgICAgICAgICAgICAgICBtb250aEFycmF5LnB1c2goY3VycmVudERheSk7XG4gICAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9udGhBcnJheTtcbiAgICB9XG5cbiAgICBvblByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByZXZpb3VzTW9udGhBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNNb250aC5lbWl0KCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb250aCAtPSAxO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMTE7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50WWVhciAtPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TW9udGhEYXRlcyQubmV4dCh0aGlzLmdldE1vbnRoRGV0YWlscyh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25OZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmV4dE1vbnRoLmVtaXQoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGggKz0gMTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSAxMikge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TW9udGggPSAwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50WWVhciArPSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0ZXMkLm5leHQodGhpcy5nZXRNb250aERldGFpbHModGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgpKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdERheShkYXlEZXRhaWw6IERheURldGFpbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlEaXNhYmxlZCA9IHRoaXMuZGF5RGlzYWJsZWRQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgIGRheURldGFpbCxcbiAgICAgICAgICAgIHRoaXMuVE9EQVlfVElNRVNUQU1QLFxuICAgICAgICAgICAgdGhpcy5taW5EYXRlVGltZXN0YW1wLFxuICAgICAgICAgICAgdGhpcy5tYXhEYXRlVGltZXN0YW1wXG4gICAgICAgICk7XG4gICAgICAgIGlmICghZGF5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXAuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1pbkRhdGUgJiYgZGF5RGV0YWlsLmRheWpzLmlzQmVmb3JlKGRheWpzKHRoaXMubWluRGF0ZSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubWF4RGF0ZSAmJiBkYXlEZXRhaWwuZGF5anMuaXNBZnRlcihkYXlqcyh0aGlzLm1heERhdGUpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcC5oYXMoZGF5RGV0YWlsLnRpbWVzdGFtcCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5c1RpbWVzdGFtcC5kZWxldGUoZGF5RGV0YWlsLnRpbWVzdGFtcCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzVGltZXN0YW1wLmFkZChkYXlEZXRhaWwudGltZXN0YW1wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0ZXNTZWxlY3RlZC5lbWl0KEFycmF5LmZyb20odGhpcy5zZWxlY3RlZERheXNUaW1lc3RhbXApLm1hcCh0aW1lc3RhbXAgPT4gZGF5anModGltZXN0YW1wKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaXJjbGUgZ2hvc3QgbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhcHJldmlvdXNNb250aEF2YWlsYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblByZXZpb3VzTW9udGgoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImFycm93LWJ1dHRvbi1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9hcC1zeW1ib2w+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IG1vbnRoc1tjdXJyZW50TW9udGhdIHwgdGl0bGVjYXNlICB9fSB7eyBjdXJyZW50WWVhciB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaXJjbGUgZ2hvc3QgcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OZXh0TW9udGgoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImFycm93LWJ1dHRvbi1yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYXAtc3ltYm9sPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrRGF5c1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXlcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZGF5IHwgc2xpY2U6MDoyIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYXlzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF5IG9mIGN1cnJlbnRNb250aERhdGVzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRheVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntkYXk6IGRheX1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRheVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkYXkgfCBkYXlEaXNhYmxlZDpUT0RBWV9USU1FU1RBTVA6bWluRGF0ZVRpbWVzdGFtcDptYXhEYXRlVGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudG9kYXldPVwiZGF5LnRpbWVzdGFtcCA9PT0gVE9EQVlfVElNRVNUQU1QXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWREYXlzVGltZXN0YW1wLmhhcyhkYXkudGltZXN0YW1wKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3REYXkoZGF5KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRheS5kYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -111,7 +111,8 @@ class NeoDatepickerComponent {
|
|
|
111
111
|
this.currentMonthDates$
|
|
112
112
|
.pipe(distinctUntilChanged(), filter(() => !!this.minDateTimestamp))
|
|
113
113
|
.subscribe(currentMonthDates => {
|
|
114
|
-
|
|
114
|
+
const minDateInPreviousMonth = new Date(this.minDateTimestamp).getMonth() < this.currentMonth;
|
|
115
|
+
this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp) || minDateInPreviousMonth;
|
|
115
116
|
});
|
|
116
117
|
}
|
|
117
118
|
getDayDetails(index, firstDay, month, numberOfDays, year) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-neo-datepicker.mjs","sources":["../../../libs/ui-components/neo-datepicker/src/day-disabled.pipe.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.html","../../../libs/ui-components/neo-datepicker/src/agorapulse-ui-components-neo-datepicker.ts"],"sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\nimport {DayDetail} from \"./day-detail.model\";\n\n@Pipe({\n name: 'dayDisabled',\n pure: true,\n standalone: true\n})\nexport class DayDisabledPipe implements PipeTransform {\n\n transform(day: DayDetail, todayTimestamp: number, minDateTimestamp?: number, maxDateTimestamp?: number): boolean {\n return day.month !== 0\n || (day.timestamp < todayTimestamp && !minDateTimestamp)\n || (minDateTimestamp && day.timestamp < minDateTimestamp)\n || (maxDateTimestamp && day.timestamp > maxDateTimestamp)\n }\n}\n","import {AgorapulseUiSymbolModule, apArrowButtonLeft, apArrowButtonRight, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, SlicePipe, TitleCasePipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {MatLegacyButtonModule as MatButtonModule} from '@angular/material/legacy-button';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/en';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/pt';\nimport localeData from 'dayjs/plugin/localeData';\nimport {DayDetail} from './day-detail.model';\nimport {DayDisabledPipe} from './day-disabled.pipe';\nimport {BehaviorSubject, filter} from \"rxjs\";\nimport {distinctUntilChanged} from \"rxjs/operators\";\n\nexport type NeoDatePickerMode = 'single' | 'multiple';\nexport type NeoDatePickerStartsOn = 'monday' | 'sunday';\nexport type NeoDatePickerLocale = 'en' | 'es' | 'fr' | 'pt' | 'de';\n\n@Component({\n selector: 'ap-neo-date-picker',\n styleUrls: ['neo-datepicker.component.scss'],\n templateUrl: 'neo-datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DayDisabledPipe],\n imports: [\n AgorapulseUiSymbolModule,\n TitleCasePipe,\n MatButtonModule,\n NgForOf,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n DayDisabledPipe,\n AsyncPipe\n ],\n standalone: true,\n})\nexport class NeoDatepickerComponent implements OnInit {\n readonly ONE_DAY: number = 60 * 60 * 24 * 1000;\n readonly TODAY_TIMESTAMP: number =\n Date.now() - (Date.now() % this.ONE_DAY) + new Date().getTimezoneOffset() * 1000 * 60;\n\n @Input() dayTemplate: TemplateRef<HTMLElement>;\n @Input() locale: NeoDatePickerLocale;\n\n private _maxDate: dayjs.Dayjs;\n @Input() set maxDate(maxDate: dayjs.Dayjs) {\n this._maxDate = maxDate;\n this.maxDateTimestamp = maxDate.toDate().getTime();\n }\n get maxDate(): dayjs.Dayjs {\n return this._maxDate;\n }\n\n private _minDate: dayjs.Dayjs;\n @Input() set minDate(minDate: dayjs.Dayjs) {\n this._minDate = minDate;\n this.minDateTimestamp = minDate.toDate().getTime();\n }\n get minDate(): dayjs.Dayjs {\n return this._minDate;\n }\n\n previousMonthAvailable: boolean = true;\n\n private _mode: NeoDatePickerMode = 'single';\n @Input() set mode(mode: NeoDatePickerMode) {\n this._mode = mode;\n if (this._mode === 'single') {\n this._selectedDates = this._selectedDates.slice(0, 1);\n this.selectedDaysTimestamp = new Set(Array.from(this.selectedDaysTimestamp).slice(0, 1));\n }\n }\n get mode(): NeoDatePickerMode {\n return this._mode;\n }\n\n private _selectedDates: dayjs.Dayjs[];\n @Input() set selectedDates(dates: dayjs.Dayjs[]) {\n if (this._mode === 'single') {\n dates = dates.slice(0, 1);\n }\n this.selectedDaysTimestamp = new Set();\n this._selectedDates = dates;\n if (this._selectedDates.length) {\n this._selectedDates.forEach(day => {\n this.selectedDaysTimestamp.add(day.toDate().getTime());\n });\n }\n }\n\n get selectedDates(): dayjs.Dayjs[] {\n return this._selectedDates;\n }\n\n @Input() startsOn: NeoDatePickerStartsOn = 'monday';\n\n @Output() datesSelected: EventEmitter<dayjs.Dayjs[]> = new EventEmitter<dayjs.Dayjs[]>();\n @Output() nextMonth: EventEmitter<void> = new EventEmitter<void>();\n @Output() previousMonth: EventEmitter<void> = new EventEmitter<void>();\n\n currentYear: number;\n currentMonth: number;\n currentMonthDates$: BehaviorSubject<DayDetail[]> = new BehaviorSubject<DayDetail[]>([]);\n minDateTimestamp: number;\n maxDateTimestamp: number;\n months: string[];\n selectedDaysTimestamp: Set<number> = new Set();\n weekDays: string[];\n\n dayDisabledPipe: DayDisabledPipe = inject(DayDisabledPipe);\n\n constructor(public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apArrowButtonLeft,\n apArrowButtonRight\n ]);\n }\n\n ngOnInit(): void {\n dayjs.extend(localeData);\n const date = new Date();\n this.currentYear = date.getFullYear();\n this.currentMonth = date.getMonth();\n if (this.locale) {\n dayjs.locale(this.locale);\n }\n this.months = dayjs.months();\n this.weekDays = [...dayjs.weekdays()];\n\n if (this.startsOn === 'monday') {\n const sunday = this.weekDays.slice(0, 1);\n this.weekDays.splice(0, 1);\n this.weekDays = this.weekDays.concat(sunday);\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n this.currentMonthDates$\n .pipe(\n distinctUntilChanged(),\n filter(() => !!this.minDateTimestamp)\n )\n .subscribe(currentMonthDates => {\n this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp);\n })\n }\n\n getDayDetails(index: number, firstDay: number, month: number, numberOfDays: number, year: number): DayDetail {\n const date = index - firstDay;\n const day = index % 7;\n let prevMonth = month - 1;\n let prevYear = year;\n if (prevMonth < 0) {\n prevMonth = 11;\n prevYear--;\n }\n const prevMonthNumberOfDays = this.getNumberOfDays(prevYear, prevMonth);\n const _date = (date < 0 ? prevMonthNumberOfDays + date : date % numberOfDays) + 1;\n const _month = date < 0 ? -1 : date >= numberOfDays ? 1 : 0;\n const newDate = new Date(year, _month + month, _date);\n const timestamp = newDate.getTime();\n const dayString = this.weekDays[day];\n return {\n date: _date,\n day,\n month: _month,\n timestamp,\n dayString,\n dayjs: dayjs(newDate),\n };\n }\n\n getNumberOfDays(year: number, month: number): number {\n return 40 - new Date(year, month, 40).getDate();\n }\n\n getMonthDetails(year: number, month: number): DayDetail[] {\n let firstDay = new Date(year, month).getDay();\n if (this.startsOn === 'monday') {\n firstDay -= 1;\n }\n // If the first day is below 0 it means the sunday is the first day of the month so we need to show the last month\n if (firstDay < 0) {\n firstDay = 6;\n }\n const numberOfDays = this.getNumberOfDays(year, month);\n const monthArray = [];\n const rows = 6;\n let currentDay = null;\n let index = 0;\n const cols = 7;\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n currentDay = this.getDayDetails(index, firstDay, month, numberOfDays, year);\n monthArray.push(currentDay);\n index++;\n }\n }\n return monthArray;\n }\n\n onPreviousMonth(): void {\n if (this.previousMonthAvailable) {\n this.previousMonth.emit();\n this.currentMonth -= 1;\n if (this.currentMonth === -1) {\n this.currentMonth = 11;\n this.currentYear -= 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n }\n\n onNextMonth(): void {\n this.nextMonth.emit();\n this.currentMonth += 1;\n if (this.currentMonth === 12) {\n this.currentMonth = 0;\n this.currentYear += 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n\n onSelectDay(dayDetail: DayDetail): void {\n const dayDisabled = this.dayDisabledPipe.transform(\n dayDetail,\n this.TODAY_TIMESTAMP,\n this.minDateTimestamp,\n this.maxDateTimestamp\n );\n if (!dayDisabled) {\n if (this.mode === 'single') {\n this.selectedDaysTimestamp.clear();\n }\n if (this.minDate && dayDetail.dayjs.isBefore(dayjs(this.minDate))) {\n return;\n }\n if (this.maxDate && dayDetail.dayjs.isAfter(dayjs(this.maxDate))) {\n return;\n }\n if (this.selectedDaysTimestamp.has(dayDetail.timestamp)) {\n this.selectedDaysTimestamp.delete(dayDetail.timestamp);\n } else {\n this.selectedDaysTimestamp.add(dayDetail.timestamp);\n }\n this.datesSelected.emit(Array.from(this.selectedDaysTimestamp).map(timestamp => dayjs(timestamp)));\n }\n }\n}\n","<div class=\"date-picker-container\">\n <div class=\"date-picker\">\n <div class=\"month-navigation\">\n <button mat-stroked-button\n class=\"circle ghost left\"\n [disabled]=\"!previousMonthAvailable\"\n (click)=\"onPreviousMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-left\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n <span>\n {{ months[currentMonth] | titlecase }} {{ currentYear }}\n </span>\n <button mat-stroked-button\n class=\"circle ghost right\"\n (click)=\"onNextMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-right\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n </div>\n <div class=\"week-header\">\n <ng-container *ngFor=\"let day of weekDays\">\n <div class=\"day\">\n {{ day | slice:0:2 | titlecase }}\n </div>\n </ng-container>\n </div>\n <div class=\"days-container\">\n <ng-container *ngFor=\"let day of currentMonthDates$ | async\">\n <ng-container *ngIf=\"dayTemplate\"\n [ngTemplateOutlet]=\"dayTemplate\"\n [ngTemplateOutletContext]=\"{day: day}\"\n ></ng-container>\n <ng-container *ngIf=\"!dayTemplate\">\n <div class=\"day\"\n [class.disabled]=\"day | dayDisabled:TODAY_TIMESTAMP:minDateTimestamp:maxDateTimestamp\"\n [class.today]=\"day.timestamp === TODAY_TIMESTAMP\"\n [class.selected]=\"selectedDaysTimestamp.has(day.timestamp)\"\n (click)=\"onSelectDay(day)\"\n >\n <span>\n {{ day.date }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["MatButtonModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-neo-datepicker.mjs","sources":["../../../libs/ui-components/neo-datepicker/src/day-disabled.pipe.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.html","../../../libs/ui-components/neo-datepicker/src/agorapulse-ui-components-neo-datepicker.ts"],"sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\nimport {DayDetail} from \"./day-detail.model\";\n\n@Pipe({\n name: 'dayDisabled',\n pure: true,\n standalone: true\n})\nexport class DayDisabledPipe implements PipeTransform {\n\n transform(day: DayDetail, todayTimestamp: number, minDateTimestamp?: number, maxDateTimestamp?: number): boolean {\n return day.month !== 0\n || (day.timestamp < todayTimestamp && !minDateTimestamp)\n || (minDateTimestamp && day.timestamp < minDateTimestamp)\n || (maxDateTimestamp && day.timestamp > maxDateTimestamp)\n }\n}\n","import {AgorapulseUiSymbolModule, apArrowButtonLeft, apArrowButtonRight, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, SlicePipe, TitleCasePipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {MatLegacyButtonModule as MatButtonModule} from '@angular/material/legacy-button';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/en';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/pt';\nimport localeData from 'dayjs/plugin/localeData';\nimport {DayDetail} from './day-detail.model';\nimport {DayDisabledPipe} from './day-disabled.pipe';\nimport {BehaviorSubject, filter} from \"rxjs\";\nimport {distinctUntilChanged} from \"rxjs/operators\";\n\nexport type NeoDatePickerMode = 'single' | 'multiple';\nexport type NeoDatePickerStartsOn = 'monday' | 'sunday';\nexport type NeoDatePickerLocale = 'en' | 'es' | 'fr' | 'pt' | 'de';\n\n@Component({\n selector: 'ap-neo-date-picker',\n styleUrls: ['neo-datepicker.component.scss'],\n templateUrl: 'neo-datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DayDisabledPipe],\n imports: [\n AgorapulseUiSymbolModule,\n TitleCasePipe,\n MatButtonModule,\n NgForOf,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n DayDisabledPipe,\n AsyncPipe\n ],\n standalone: true,\n})\nexport class NeoDatepickerComponent implements OnInit {\n readonly ONE_DAY: number = 60 * 60 * 24 * 1000;\n readonly TODAY_TIMESTAMP: number =\n Date.now() - (Date.now() % this.ONE_DAY) + new Date().getTimezoneOffset() * 1000 * 60;\n\n @Input() dayTemplate: TemplateRef<HTMLElement>;\n @Input() locale: NeoDatePickerLocale;\n\n private _maxDate: dayjs.Dayjs;\n @Input() set maxDate(maxDate: dayjs.Dayjs) {\n this._maxDate = maxDate;\n this.maxDateTimestamp = maxDate.toDate().getTime();\n }\n get maxDate(): dayjs.Dayjs {\n return this._maxDate;\n }\n\n private _minDate: dayjs.Dayjs;\n @Input() set minDate(minDate: dayjs.Dayjs) {\n this._minDate = minDate;\n this.minDateTimestamp = minDate.toDate().getTime();\n }\n get minDate(): dayjs.Dayjs {\n return this._minDate;\n }\n\n previousMonthAvailable: boolean = true;\n\n private _mode: NeoDatePickerMode = 'single';\n @Input() set mode(mode: NeoDatePickerMode) {\n this._mode = mode;\n if (this._mode === 'single') {\n this._selectedDates = this._selectedDates.slice(0, 1);\n this.selectedDaysTimestamp = new Set(Array.from(this.selectedDaysTimestamp).slice(0, 1));\n }\n }\n get mode(): NeoDatePickerMode {\n return this._mode;\n }\n\n private _selectedDates: dayjs.Dayjs[];\n @Input() set selectedDates(dates: dayjs.Dayjs[]) {\n if (this._mode === 'single') {\n dates = dates.slice(0, 1);\n }\n this.selectedDaysTimestamp = new Set();\n this._selectedDates = dates;\n if (this._selectedDates.length) {\n this._selectedDates.forEach(day => {\n this.selectedDaysTimestamp.add(day.toDate().getTime());\n });\n }\n }\n\n get selectedDates(): dayjs.Dayjs[] {\n return this._selectedDates;\n }\n\n @Input() startsOn: NeoDatePickerStartsOn = 'monday';\n\n @Output() datesSelected: EventEmitter<dayjs.Dayjs[]> = new EventEmitter<dayjs.Dayjs[]>();\n @Output() nextMonth: EventEmitter<void> = new EventEmitter<void>();\n @Output() previousMonth: EventEmitter<void> = new EventEmitter<void>();\n\n currentYear: number;\n currentMonth: number;\n currentMonthDates$: BehaviorSubject<DayDetail[]> = new BehaviorSubject<DayDetail[]>([]);\n minDateTimestamp: number;\n maxDateTimestamp: number;\n months: string[];\n selectedDaysTimestamp: Set<number> = new Set();\n weekDays: string[];\n\n dayDisabledPipe: DayDisabledPipe = inject(DayDisabledPipe);\n\n constructor(public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apArrowButtonLeft,\n apArrowButtonRight\n ]);\n }\n\n ngOnInit(): void {\n dayjs.extend(localeData);\n const date = new Date();\n this.currentYear = date.getFullYear();\n this.currentMonth = date.getMonth();\n if (this.locale) {\n dayjs.locale(this.locale);\n }\n this.months = dayjs.months();\n this.weekDays = [...dayjs.weekdays()];\n\n if (this.startsOn === 'monday') {\n const sunday = this.weekDays.slice(0, 1);\n this.weekDays.splice(0, 1);\n this.weekDays = this.weekDays.concat(sunday);\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n this.currentMonthDates$\n .pipe(\n distinctUntilChanged(),\n filter(() => !!this.minDateTimestamp)\n )\n .subscribe(currentMonthDates => {\n const minDateInPreviousMonth = new Date(this.minDateTimestamp).getMonth() < this.currentMonth;\n this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp) || minDateInPreviousMonth;\n })\n }\n\n getDayDetails(index: number, firstDay: number, month: number, numberOfDays: number, year: number): DayDetail {\n const date = index - firstDay;\n const day = index % 7;\n let prevMonth = month - 1;\n let prevYear = year;\n if (prevMonth < 0) {\n prevMonth = 11;\n prevYear--;\n }\n const prevMonthNumberOfDays = this.getNumberOfDays(prevYear, prevMonth);\n const _date = (date < 0 ? prevMonthNumberOfDays + date : date % numberOfDays) + 1;\n const _month = date < 0 ? -1 : date >= numberOfDays ? 1 : 0;\n const newDate = new Date(year, _month + month, _date);\n const timestamp = newDate.getTime();\n const dayString = this.weekDays[day];\n return {\n date: _date,\n day,\n month: _month,\n timestamp,\n dayString,\n dayjs: dayjs(newDate),\n };\n }\n\n getNumberOfDays(year: number, month: number): number {\n return 40 - new Date(year, month, 40).getDate();\n }\n\n getMonthDetails(year: number, month: number): DayDetail[] {\n let firstDay = new Date(year, month).getDay();\n if (this.startsOn === 'monday') {\n firstDay -= 1;\n }\n // If the first day is below 0 it means the sunday is the first day of the month so we need to show the last month\n if (firstDay < 0) {\n firstDay = 6;\n }\n const numberOfDays = this.getNumberOfDays(year, month);\n const monthArray = [];\n const rows = 6;\n let currentDay = null;\n let index = 0;\n const cols = 7;\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n currentDay = this.getDayDetails(index, firstDay, month, numberOfDays, year);\n monthArray.push(currentDay);\n index++;\n }\n }\n return monthArray;\n }\n\n onPreviousMonth(): void {\n if (this.previousMonthAvailable) {\n this.previousMonth.emit();\n this.currentMonth -= 1;\n if (this.currentMonth === -1) {\n this.currentMonth = 11;\n this.currentYear -= 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n }\n\n onNextMonth(): void {\n this.nextMonth.emit();\n this.currentMonth += 1;\n if (this.currentMonth === 12) {\n this.currentMonth = 0;\n this.currentYear += 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n\n onSelectDay(dayDetail: DayDetail): void {\n const dayDisabled = this.dayDisabledPipe.transform(\n dayDetail,\n this.TODAY_TIMESTAMP,\n this.minDateTimestamp,\n this.maxDateTimestamp\n );\n if (!dayDisabled) {\n if (this.mode === 'single') {\n this.selectedDaysTimestamp.clear();\n }\n if (this.minDate && dayDetail.dayjs.isBefore(dayjs(this.minDate))) {\n return;\n }\n if (this.maxDate && dayDetail.dayjs.isAfter(dayjs(this.maxDate))) {\n return;\n }\n if (this.selectedDaysTimestamp.has(dayDetail.timestamp)) {\n this.selectedDaysTimestamp.delete(dayDetail.timestamp);\n } else {\n this.selectedDaysTimestamp.add(dayDetail.timestamp);\n }\n this.datesSelected.emit(Array.from(this.selectedDaysTimestamp).map(timestamp => dayjs(timestamp)));\n }\n }\n}\n","<div class=\"date-picker-container\">\n <div class=\"date-picker\">\n <div class=\"month-navigation\">\n <button mat-stroked-button\n class=\"circle ghost left\"\n [disabled]=\"!previousMonthAvailable\"\n (click)=\"onPreviousMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-left\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n <span>\n {{ months[currentMonth] | titlecase }} {{ currentYear }}\n </span>\n <button mat-stroked-button\n class=\"circle ghost right\"\n (click)=\"onNextMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-right\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n </div>\n <div class=\"week-header\">\n <ng-container *ngFor=\"let day of weekDays\">\n <div class=\"day\">\n {{ day | slice:0:2 | titlecase }}\n </div>\n </ng-container>\n </div>\n <div class=\"days-container\">\n <ng-container *ngFor=\"let day of currentMonthDates$ | async\">\n <ng-container *ngIf=\"dayTemplate\"\n [ngTemplateOutlet]=\"dayTemplate\"\n [ngTemplateOutletContext]=\"{day: day}\"\n ></ng-container>\n <ng-container *ngIf=\"!dayTemplate\">\n <div class=\"day\"\n [class.disabled]=\"day | dayDisabled:TODAY_TIMESTAMP:minDateTimestamp:maxDateTimestamp\"\n [class.today]=\"day.timestamp === TODAY_TIMESTAMP\"\n [class.selected]=\"selectedDaysTimestamp.has(day.timestamp)\"\n (click)=\"onSelectDay(day)\"\n >\n <span>\n {{ day.date }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["MatButtonModule"],"mappings":"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"}
|
|
@@ -111,7 +111,8 @@ class NeoDatepickerComponent {
|
|
|
111
111
|
this.currentMonthDates$
|
|
112
112
|
.pipe(distinctUntilChanged(), filter(() => !!this.minDateTimestamp))
|
|
113
113
|
.subscribe(currentMonthDates => {
|
|
114
|
-
|
|
114
|
+
const minDateInPreviousMonth = new Date(this.minDateTimestamp).getMonth() < this.currentMonth;
|
|
115
|
+
this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp) || minDateInPreviousMonth;
|
|
115
116
|
});
|
|
116
117
|
}
|
|
117
118
|
getDayDetails(index, firstDay, month, numberOfDays, year) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-neo-datepicker.mjs","sources":["../../../libs/ui-components/neo-datepicker/src/day-disabled.pipe.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.html","../../../libs/ui-components/neo-datepicker/src/agorapulse-ui-components-neo-datepicker.ts"],"sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\nimport {DayDetail} from \"./day-detail.model\";\n\n@Pipe({\n name: 'dayDisabled',\n pure: true,\n standalone: true\n})\nexport class DayDisabledPipe implements PipeTransform {\n\n transform(day: DayDetail, todayTimestamp: number, minDateTimestamp?: number, maxDateTimestamp?: number): boolean {\n return day.month !== 0\n || (day.timestamp < todayTimestamp && !minDateTimestamp)\n || (minDateTimestamp && day.timestamp < minDateTimestamp)\n || (maxDateTimestamp && day.timestamp > maxDateTimestamp)\n }\n}\n","import {AgorapulseUiSymbolModule, apArrowButtonLeft, apArrowButtonRight, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, SlicePipe, TitleCasePipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {MatLegacyButtonModule as MatButtonModule} from '@angular/material/legacy-button';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/en';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/pt';\nimport localeData from 'dayjs/plugin/localeData';\nimport {DayDetail} from './day-detail.model';\nimport {DayDisabledPipe} from './day-disabled.pipe';\nimport {BehaviorSubject, filter} from \"rxjs\";\nimport {distinctUntilChanged} from \"rxjs/operators\";\n\nexport type NeoDatePickerMode = 'single' | 'multiple';\nexport type NeoDatePickerStartsOn = 'monday' | 'sunday';\nexport type NeoDatePickerLocale = 'en' | 'es' | 'fr' | 'pt' | 'de';\n\n@Component({\n selector: 'ap-neo-date-picker',\n styleUrls: ['neo-datepicker.component.scss'],\n templateUrl: 'neo-datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DayDisabledPipe],\n imports: [\n AgorapulseUiSymbolModule,\n TitleCasePipe,\n MatButtonModule,\n NgForOf,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n DayDisabledPipe,\n AsyncPipe\n ],\n standalone: true,\n})\nexport class NeoDatepickerComponent implements OnInit {\n readonly ONE_DAY: number = 60 * 60 * 24 * 1000;\n readonly TODAY_TIMESTAMP: number =\n Date.now() - (Date.now() % this.ONE_DAY) + new Date().getTimezoneOffset() * 1000 * 60;\n\n @Input() dayTemplate: TemplateRef<HTMLElement>;\n @Input() locale: NeoDatePickerLocale;\n\n private _maxDate: dayjs.Dayjs;\n @Input() set maxDate(maxDate: dayjs.Dayjs) {\n this._maxDate = maxDate;\n this.maxDateTimestamp = maxDate.toDate().getTime();\n }\n get maxDate(): dayjs.Dayjs {\n return this._maxDate;\n }\n\n private _minDate: dayjs.Dayjs;\n @Input() set minDate(minDate: dayjs.Dayjs) {\n this._minDate = minDate;\n this.minDateTimestamp = minDate.toDate().getTime();\n }\n get minDate(): dayjs.Dayjs {\n return this._minDate;\n }\n\n previousMonthAvailable: boolean = true;\n\n private _mode: NeoDatePickerMode = 'single';\n @Input() set mode(mode: NeoDatePickerMode) {\n this._mode = mode;\n if (this._mode === 'single') {\n this._selectedDates = this._selectedDates.slice(0, 1);\n this.selectedDaysTimestamp = new Set(Array.from(this.selectedDaysTimestamp).slice(0, 1));\n }\n }\n get mode(): NeoDatePickerMode {\n return this._mode;\n }\n\n private _selectedDates: dayjs.Dayjs[];\n @Input() set selectedDates(dates: dayjs.Dayjs[]) {\n if (this._mode === 'single') {\n dates = dates.slice(0, 1);\n }\n this.selectedDaysTimestamp = new Set();\n this._selectedDates = dates;\n if (this._selectedDates.length) {\n this._selectedDates.forEach(day => {\n this.selectedDaysTimestamp.add(day.toDate().getTime());\n });\n }\n }\n\n get selectedDates(): dayjs.Dayjs[] {\n return this._selectedDates;\n }\n\n @Input() startsOn: NeoDatePickerStartsOn = 'monday';\n\n @Output() datesSelected: EventEmitter<dayjs.Dayjs[]> = new EventEmitter<dayjs.Dayjs[]>();\n @Output() nextMonth: EventEmitter<void> = new EventEmitter<void>();\n @Output() previousMonth: EventEmitter<void> = new EventEmitter<void>();\n\n currentYear: number;\n currentMonth: number;\n currentMonthDates$: BehaviorSubject<DayDetail[]> = new BehaviorSubject<DayDetail[]>([]);\n minDateTimestamp: number;\n maxDateTimestamp: number;\n months: string[];\n selectedDaysTimestamp: Set<number> = new Set();\n weekDays: string[];\n\n dayDisabledPipe: DayDisabledPipe = inject(DayDisabledPipe);\n\n constructor(public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apArrowButtonLeft,\n apArrowButtonRight\n ]);\n }\n\n ngOnInit(): void {\n dayjs.extend(localeData);\n const date = new Date();\n this.currentYear = date.getFullYear();\n this.currentMonth = date.getMonth();\n if (this.locale) {\n dayjs.locale(this.locale);\n }\n this.months = dayjs.months();\n this.weekDays = [...dayjs.weekdays()];\n\n if (this.startsOn === 'monday') {\n const sunday = this.weekDays.slice(0, 1);\n this.weekDays.splice(0, 1);\n this.weekDays = this.weekDays.concat(sunday);\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n this.currentMonthDates$\n .pipe(\n distinctUntilChanged(),\n filter(() => !!this.minDateTimestamp)\n )\n .subscribe(currentMonthDates => {\n this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp);\n })\n }\n\n getDayDetails(index: number, firstDay: number, month: number, numberOfDays: number, year: number): DayDetail {\n const date = index - firstDay;\n const day = index % 7;\n let prevMonth = month - 1;\n let prevYear = year;\n if (prevMonth < 0) {\n prevMonth = 11;\n prevYear--;\n }\n const prevMonthNumberOfDays = this.getNumberOfDays(prevYear, prevMonth);\n const _date = (date < 0 ? prevMonthNumberOfDays + date : date % numberOfDays) + 1;\n const _month = date < 0 ? -1 : date >= numberOfDays ? 1 : 0;\n const newDate = new Date(year, _month + month, _date);\n const timestamp = newDate.getTime();\n const dayString = this.weekDays[day];\n return {\n date: _date,\n day,\n month: _month,\n timestamp,\n dayString,\n dayjs: dayjs(newDate),\n };\n }\n\n getNumberOfDays(year: number, month: number): number {\n return 40 - new Date(year, month, 40).getDate();\n }\n\n getMonthDetails(year: number, month: number): DayDetail[] {\n let firstDay = new Date(year, month).getDay();\n if (this.startsOn === 'monday') {\n firstDay -= 1;\n }\n // If the first day is below 0 it means the sunday is the first day of the month so we need to show the last month\n if (firstDay < 0) {\n firstDay = 6;\n }\n const numberOfDays = this.getNumberOfDays(year, month);\n const monthArray = [];\n const rows = 6;\n let currentDay = null;\n let index = 0;\n const cols = 7;\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n currentDay = this.getDayDetails(index, firstDay, month, numberOfDays, year);\n monthArray.push(currentDay);\n index++;\n }\n }\n return monthArray;\n }\n\n onPreviousMonth(): void {\n if (this.previousMonthAvailable) {\n this.previousMonth.emit();\n this.currentMonth -= 1;\n if (this.currentMonth === -1) {\n this.currentMonth = 11;\n this.currentYear -= 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n }\n\n onNextMonth(): void {\n this.nextMonth.emit();\n this.currentMonth += 1;\n if (this.currentMonth === 12) {\n this.currentMonth = 0;\n this.currentYear += 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n\n onSelectDay(dayDetail: DayDetail): void {\n const dayDisabled = this.dayDisabledPipe.transform(\n dayDetail,\n this.TODAY_TIMESTAMP,\n this.minDateTimestamp,\n this.maxDateTimestamp\n );\n if (!dayDisabled) {\n if (this.mode === 'single') {\n this.selectedDaysTimestamp.clear();\n }\n if (this.minDate && dayDetail.dayjs.isBefore(dayjs(this.minDate))) {\n return;\n }\n if (this.maxDate && dayDetail.dayjs.isAfter(dayjs(this.maxDate))) {\n return;\n }\n if (this.selectedDaysTimestamp.has(dayDetail.timestamp)) {\n this.selectedDaysTimestamp.delete(dayDetail.timestamp);\n } else {\n this.selectedDaysTimestamp.add(dayDetail.timestamp);\n }\n this.datesSelected.emit(Array.from(this.selectedDaysTimestamp).map(timestamp => dayjs(timestamp)));\n }\n }\n}\n","<div class=\"date-picker-container\">\n <div class=\"date-picker\">\n <div class=\"month-navigation\">\n <button mat-stroked-button\n class=\"circle ghost left\"\n [disabled]=\"!previousMonthAvailable\"\n (click)=\"onPreviousMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-left\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n <span>\n {{ months[currentMonth] | titlecase }} {{ currentYear }}\n </span>\n <button mat-stroked-button\n class=\"circle ghost right\"\n (click)=\"onNextMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-right\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n </div>\n <div class=\"week-header\">\n <ng-container *ngFor=\"let day of weekDays\">\n <div class=\"day\">\n {{ day | slice:0:2 | titlecase }}\n </div>\n </ng-container>\n </div>\n <div class=\"days-container\">\n <ng-container *ngFor=\"let day of currentMonthDates$ | async\">\n <ng-container *ngIf=\"dayTemplate\"\n [ngTemplateOutlet]=\"dayTemplate\"\n [ngTemplateOutletContext]=\"{day: day}\"\n ></ng-container>\n <ng-container *ngIf=\"!dayTemplate\">\n <div class=\"day\"\n [class.disabled]=\"day | dayDisabled:TODAY_TIMESTAMP:minDateTimestamp:maxDateTimestamp\"\n [class.today]=\"day.timestamp === TODAY_TIMESTAMP\"\n [class.selected]=\"selectedDaysTimestamp.has(day.timestamp)\"\n (click)=\"onSelectDay(day)\"\n >\n <span>\n {{ day.date }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["MatButtonModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-neo-datepicker.mjs","sources":["../../../libs/ui-components/neo-datepicker/src/day-disabled.pipe.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.html","../../../libs/ui-components/neo-datepicker/src/agorapulse-ui-components-neo-datepicker.ts"],"sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\nimport {DayDetail} from \"./day-detail.model\";\n\n@Pipe({\n name: 'dayDisabled',\n pure: true,\n standalone: true\n})\nexport class DayDisabledPipe implements PipeTransform {\n\n transform(day: DayDetail, todayTimestamp: number, minDateTimestamp?: number, maxDateTimestamp?: number): boolean {\n return day.month !== 0\n || (day.timestamp < todayTimestamp && !minDateTimestamp)\n || (minDateTimestamp && day.timestamp < minDateTimestamp)\n || (maxDateTimestamp && day.timestamp > maxDateTimestamp)\n }\n}\n","import {AgorapulseUiSymbolModule, apArrowButtonLeft, apArrowButtonRight, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, SlicePipe, TitleCasePipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {MatLegacyButtonModule as MatButtonModule} from '@angular/material/legacy-button';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/en';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/pt';\nimport localeData from 'dayjs/plugin/localeData';\nimport {DayDetail} from './day-detail.model';\nimport {DayDisabledPipe} from './day-disabled.pipe';\nimport {BehaviorSubject, filter} from \"rxjs\";\nimport {distinctUntilChanged} from \"rxjs/operators\";\n\nexport type NeoDatePickerMode = 'single' | 'multiple';\nexport type NeoDatePickerStartsOn = 'monday' | 'sunday';\nexport type NeoDatePickerLocale = 'en' | 'es' | 'fr' | 'pt' | 'de';\n\n@Component({\n selector: 'ap-neo-date-picker',\n styleUrls: ['neo-datepicker.component.scss'],\n templateUrl: 'neo-datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DayDisabledPipe],\n imports: [\n AgorapulseUiSymbolModule,\n TitleCasePipe,\n MatButtonModule,\n NgForOf,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n DayDisabledPipe,\n AsyncPipe\n ],\n standalone: true,\n})\nexport class NeoDatepickerComponent implements OnInit {\n readonly ONE_DAY: number = 60 * 60 * 24 * 1000;\n readonly TODAY_TIMESTAMP: number =\n Date.now() - (Date.now() % this.ONE_DAY) + new Date().getTimezoneOffset() * 1000 * 60;\n\n @Input() dayTemplate: TemplateRef<HTMLElement>;\n @Input() locale: NeoDatePickerLocale;\n\n private _maxDate: dayjs.Dayjs;\n @Input() set maxDate(maxDate: dayjs.Dayjs) {\n this._maxDate = maxDate;\n this.maxDateTimestamp = maxDate.toDate().getTime();\n }\n get maxDate(): dayjs.Dayjs {\n return this._maxDate;\n }\n\n private _minDate: dayjs.Dayjs;\n @Input() set minDate(minDate: dayjs.Dayjs) {\n this._minDate = minDate;\n this.minDateTimestamp = minDate.toDate().getTime();\n }\n get minDate(): dayjs.Dayjs {\n return this._minDate;\n }\n\n previousMonthAvailable: boolean = true;\n\n private _mode: NeoDatePickerMode = 'single';\n @Input() set mode(mode: NeoDatePickerMode) {\n this._mode = mode;\n if (this._mode === 'single') {\n this._selectedDates = this._selectedDates.slice(0, 1);\n this.selectedDaysTimestamp = new Set(Array.from(this.selectedDaysTimestamp).slice(0, 1));\n }\n }\n get mode(): NeoDatePickerMode {\n return this._mode;\n }\n\n private _selectedDates: dayjs.Dayjs[];\n @Input() set selectedDates(dates: dayjs.Dayjs[]) {\n if (this._mode === 'single') {\n dates = dates.slice(0, 1);\n }\n this.selectedDaysTimestamp = new Set();\n this._selectedDates = dates;\n if (this._selectedDates.length) {\n this._selectedDates.forEach(day => {\n this.selectedDaysTimestamp.add(day.toDate().getTime());\n });\n }\n }\n\n get selectedDates(): dayjs.Dayjs[] {\n return this._selectedDates;\n }\n\n @Input() startsOn: NeoDatePickerStartsOn = 'monday';\n\n @Output() datesSelected: EventEmitter<dayjs.Dayjs[]> = new EventEmitter<dayjs.Dayjs[]>();\n @Output() nextMonth: EventEmitter<void> = new EventEmitter<void>();\n @Output() previousMonth: EventEmitter<void> = new EventEmitter<void>();\n\n currentYear: number;\n currentMonth: number;\n currentMonthDates$: BehaviorSubject<DayDetail[]> = new BehaviorSubject<DayDetail[]>([]);\n minDateTimestamp: number;\n maxDateTimestamp: number;\n months: string[];\n selectedDaysTimestamp: Set<number> = new Set();\n weekDays: string[];\n\n dayDisabledPipe: DayDisabledPipe = inject(DayDisabledPipe);\n\n constructor(public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apArrowButtonLeft,\n apArrowButtonRight\n ]);\n }\n\n ngOnInit(): void {\n dayjs.extend(localeData);\n const date = new Date();\n this.currentYear = date.getFullYear();\n this.currentMonth = date.getMonth();\n if (this.locale) {\n dayjs.locale(this.locale);\n }\n this.months = dayjs.months();\n this.weekDays = [...dayjs.weekdays()];\n\n if (this.startsOn === 'monday') {\n const sunday = this.weekDays.slice(0, 1);\n this.weekDays.splice(0, 1);\n this.weekDays = this.weekDays.concat(sunday);\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n this.currentMonthDates$\n .pipe(\n distinctUntilChanged(),\n filter(() => !!this.minDateTimestamp)\n )\n .subscribe(currentMonthDates => {\n const minDateInPreviousMonth = new Date(this.minDateTimestamp).getMonth() < this.currentMonth;\n this.previousMonthAvailable = !currentMonthDates.some((dayDetail) => dayDetail.timestamp === this.minDateTimestamp) || minDateInPreviousMonth;\n })\n }\n\n getDayDetails(index: number, firstDay: number, month: number, numberOfDays: number, year: number): DayDetail {\n const date = index - firstDay;\n const day = index % 7;\n let prevMonth = month - 1;\n let prevYear = year;\n if (prevMonth < 0) {\n prevMonth = 11;\n prevYear--;\n }\n const prevMonthNumberOfDays = this.getNumberOfDays(prevYear, prevMonth);\n const _date = (date < 0 ? prevMonthNumberOfDays + date : date % numberOfDays) + 1;\n const _month = date < 0 ? -1 : date >= numberOfDays ? 1 : 0;\n const newDate = new Date(year, _month + month, _date);\n const timestamp = newDate.getTime();\n const dayString = this.weekDays[day];\n return {\n date: _date,\n day,\n month: _month,\n timestamp,\n dayString,\n dayjs: dayjs(newDate),\n };\n }\n\n getNumberOfDays(year: number, month: number): number {\n return 40 - new Date(year, month, 40).getDate();\n }\n\n getMonthDetails(year: number, month: number): DayDetail[] {\n let firstDay = new Date(year, month).getDay();\n if (this.startsOn === 'monday') {\n firstDay -= 1;\n }\n // If the first day is below 0 it means the sunday is the first day of the month so we need to show the last month\n if (firstDay < 0) {\n firstDay = 6;\n }\n const numberOfDays = this.getNumberOfDays(year, month);\n const monthArray = [];\n const rows = 6;\n let currentDay = null;\n let index = 0;\n const cols = 7;\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n currentDay = this.getDayDetails(index, firstDay, month, numberOfDays, year);\n monthArray.push(currentDay);\n index++;\n }\n }\n return monthArray;\n }\n\n onPreviousMonth(): void {\n if (this.previousMonthAvailable) {\n this.previousMonth.emit();\n this.currentMonth -= 1;\n if (this.currentMonth === -1) {\n this.currentMonth = 11;\n this.currentYear -= 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n }\n\n onNextMonth(): void {\n this.nextMonth.emit();\n this.currentMonth += 1;\n if (this.currentMonth === 12) {\n this.currentMonth = 0;\n this.currentYear += 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n\n onSelectDay(dayDetail: DayDetail): void {\n const dayDisabled = this.dayDisabledPipe.transform(\n dayDetail,\n this.TODAY_TIMESTAMP,\n this.minDateTimestamp,\n this.maxDateTimestamp\n );\n if (!dayDisabled) {\n if (this.mode === 'single') {\n this.selectedDaysTimestamp.clear();\n }\n if (this.minDate && dayDetail.dayjs.isBefore(dayjs(this.minDate))) {\n return;\n }\n if (this.maxDate && dayDetail.dayjs.isAfter(dayjs(this.maxDate))) {\n return;\n }\n if (this.selectedDaysTimestamp.has(dayDetail.timestamp)) {\n this.selectedDaysTimestamp.delete(dayDetail.timestamp);\n } else {\n this.selectedDaysTimestamp.add(dayDetail.timestamp);\n }\n this.datesSelected.emit(Array.from(this.selectedDaysTimestamp).map(timestamp => dayjs(timestamp)));\n }\n }\n}\n","<div class=\"date-picker-container\">\n <div class=\"date-picker\">\n <div class=\"month-navigation\">\n <button mat-stroked-button\n class=\"circle ghost left\"\n [disabled]=\"!previousMonthAvailable\"\n (click)=\"onPreviousMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-left\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n <span>\n {{ months[currentMonth] | titlecase }} {{ currentYear }}\n </span>\n <button mat-stroked-button\n class=\"circle ghost right\"\n (click)=\"onNextMonth()\"\n >\n <ap-symbol\n symbolId=\"arrow-button-right\"\n size=\"micro\"\n >\n </ap-symbol>\n </button>\n </div>\n <div class=\"week-header\">\n <ng-container *ngFor=\"let day of weekDays\">\n <div class=\"day\">\n {{ day | slice:0:2 | titlecase }}\n </div>\n </ng-container>\n </div>\n <div class=\"days-container\">\n <ng-container *ngFor=\"let day of currentMonthDates$ | async\">\n <ng-container *ngIf=\"dayTemplate\"\n [ngTemplateOutlet]=\"dayTemplate\"\n [ngTemplateOutletContext]=\"{day: day}\"\n ></ng-container>\n <ng-container *ngIf=\"!dayTemplate\">\n <div class=\"day\"\n [class.disabled]=\"day | dayDisabled:TODAY_TIMESTAMP:minDateTimestamp:maxDateTimestamp\"\n [class.today]=\"day.timestamp === TODAY_TIMESTAMP\"\n [class.selected]=\"selectedDaysTimestamp.has(day.timestamp)\"\n (click)=\"onSelectDay(day)\"\n >\n <span>\n {{ day.date }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["MatButtonModule"],"mappings":"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"}
|
package/package.json
CHANGED
|
Binary file
|