ngx-gccb 0.5.0 → 0.6.0

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.
@@ -7,16 +7,17 @@ export class DatePickerComponent {
7
7
  constructor() {
8
8
  this.currentDate = new Date();
9
9
  }
10
+ // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
10
11
  ngOnInit() {
11
- const firstDayOfMonth = this.currentDate.firstDayOfMonth();
12
+ // const firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();
12
13
  // console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());
13
- const weekCount = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);
14
- console.warn(weekCount);
15
- const weeks = [];
16
- for (let i = 0; i <= weekCount; i++) {
17
- // for(let){
18
- // }
19
- }
14
+ // const weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);
15
+ // console.warn(weekCount);
16
+ // const weeks: unknown[] = [];
17
+ // for (let i: number = 0; i <= weekCount; i++) {
18
+ // for(let){
19
+ // }
20
+ // }
20
21
  }
21
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
23
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DatePickerComponent, isStandalone: true, selector: "app-date-picker", ngImport: i0, template: "coming soon\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
@@ -46,4 +47,4 @@ function getWeekCount(year, month, startDayOfWeek) {
46
47
  const used = firstWeekDay + numberOfDaysInMonth;
47
48
  return Math.ceil(used / 7);
48
49
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0Isc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVFsRCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT0MsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO0tBZ0IvQjtJQWRBLFFBQVE7UUFDUCxNQUFNLGVBQWUsR0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pFLHNGQUFzRjtRQUV0RixNQUFNLFNBQVMsR0FBVyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0SCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sS0FBSyxHQUFjLEVBQUUsQ0FBQztRQUU1QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0MsWUFBWTtZQUNaLElBQUk7UUFDTCxDQUFDO0lBQ0YsQ0FBQzsrR0FoQlcsbUJBQW1CO21HQUFuQixtQkFBbUIsMkVDWGhDLGVBQ0EsMkNEUVcsWUFBWTs7NEZBRVYsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNDLGlCQUFpQixjQUVmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs7QUFxQnhCLElBQUssU0FRSjtBQVJELFdBQUssU0FBUztJQUNiLDZDQUFZLENBQUE7SUFDWiw2Q0FBWSxDQUFBO0lBQ1osK0NBQWEsQ0FBQTtJQUNiLG1EQUFlLENBQUE7SUFDZixpREFBYyxDQUFBO0lBQ2QsNkNBQVksQ0FBQTtJQUNaLGlEQUFjLENBQUE7QUFDZixDQUFDLEVBUkksU0FBUyxLQUFULFNBQVMsUUFRYjtBQUVELFNBQVMsWUFBWSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsY0FBeUI7SUFDM0UscUNBQXFDO0lBRXJDLGlFQUFpRTtJQUNqRSxNQUFNLGNBQWMsR0FBYyxjQUFjLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sV0FBVyxHQUFTLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sbUJBQW1CLEdBQVcsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFELE1BQU0sWUFBWSxHQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLGNBQWMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUUsTUFBTSxJQUFJLEdBQVcsWUFBWSxHQUFHLG1CQUFtQixDQUFDO0lBRXhELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1kYXRlLXBpY2tlcicsXG5cdHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0Y3VycmVudERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpcnN0RGF5T2ZNb250aDogRGF0ZSA9IHRoaXMuY3VycmVudERhdGUuZmlyc3REYXlPZk1vbnRoKCk7XG5cdFx0Ly8gY29uc29sZS53YXJuKGZpcnN0RGF5T2ZNb250aCwgZmlyc3REYXlPZk1vbnRoLmdldERhdGUoKSwgZmlyc3REYXlPZk1vbnRoLmdldERheSgpKTtcblxuXHRcdGNvbnN0IHdlZWtDb3VudDogbnVtYmVyID0gZ2V0V2Vla0NvdW50KHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpLCBEYXlPZldlZWsuTW9uZGF5KTtcblx0XHRjb25zb2xlLndhcm4od2Vla0NvdW50KTtcblxuXHRcdGNvbnN0IHdlZWtzOiB1bmtub3duW10gPSBbXTtcblxuXHRcdGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPD0gd2Vla0NvdW50OyBpKyspIHtcblx0XHRcdC8vIGZvcihsZXQpe1xuXHRcdFx0Ly8gfVxuXHRcdH1cblx0fVxufVxuXG5lbnVtIERheU9mV2VlayB7XG5cdCdTdW5kYXknID0gMCxcblx0J01vbmRheScgPSAxLFxuXHQnVHVlc2RheScgPSAyLFxuXHQnV2VkbmVzZGF5JyA9IDMsXG5cdCdUaHVyc2RheScgPSA0LFxuXHQnRnJpZGF5JyA9IDUsXG5cdCdTYXR1cmRheScgPSA2LFxufVxuXG5mdW5jdGlvbiBnZXRXZWVrQ291bnQoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBzdGFydERheU9mV2VlazogRGF5T2ZXZWVrKTogbnVtYmVyIHtcblx0Ly8gbW9udGhfbnVtYmVyIGlzIGluIHRoZSByYW5nZSAwLi4xMVxuXG5cdC8vIEdldCB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgd2VlayBkYXkgKDA6IFN1bmRheSwgMTogTW9uZGF5LCAuLi4pXG5cdGNvbnN0IGZpcnN0RGF5T2ZXZWVrOiBEYXlPZldlZWsgPSBzdGFydERheU9mV2VlayB8fCBEYXlPZldlZWsuU3VuZGF5O1xuXHRjb25zdCBmaXJzdE9mTW9udGg6IERhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG5cdGNvbnN0IGxhc3RPZk1vbnRoOiBEYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcblx0Y29uc3QgbnVtYmVyT2ZEYXlzSW5Nb250aDogbnVtYmVyID0gbGFzdE9mTW9udGguZ2V0RGF0ZSgpO1xuXHRjb25zdCBmaXJzdFdlZWtEYXk6IG51bWJlciA9IChmaXJzdE9mTW9udGguZ2V0RGF5KCkgLSBmaXJzdERheU9mV2VlayArIDcpICUgNztcblx0Y29uc3QgdXNlZDogbnVtYmVyID0gZmlyc3RXZWVrRGF5ICsgbnVtYmVyT2ZEYXlzSW5Nb250aDtcblxuXHRyZXR1cm4gTWF0aC5jZWlsKHVzZWQgLyA3KTtcbn1cbiIsImNvbWluZyBzb29uXG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0Isc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVFsRCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT0MsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO0tBYy9CO0lBWkEscUVBQXFFO0lBQ3JFLFFBQVE7UUFDUCxvRUFBb0U7UUFDcEUsc0ZBQXNGO1FBQ3RGLHlIQUF5SDtRQUN6SCwyQkFBMkI7UUFDM0IsK0JBQStCO1FBQy9CLGlEQUFpRDtRQUNqRCxZQUFZO1FBQ1osSUFBSTtRQUNKLElBQUk7SUFDTCxDQUFDOytHQWRXLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJFQ1hoQyxlQUNBLDJDRFFXLFlBQVk7OzRGQUVWLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDQyxpQkFBaUIsY0FFZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7O0FBbUJ4QixJQUFLLFNBUUo7QUFSRCxXQUFLLFNBQVM7SUFDYiw2Q0FBWSxDQUFBO0lBQ1osNkNBQVksQ0FBQTtJQUNaLCtDQUFhLENBQUE7SUFDYixtREFBZSxDQUFBO0lBQ2YsaURBQWMsQ0FBQTtJQUNkLDZDQUFZLENBQUE7SUFDWixpREFBYyxDQUFBO0FBQ2YsQ0FBQyxFQVJJLFNBQVMsS0FBVCxTQUFTLFFBUWI7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLGNBQXlCO0lBQzNFLHFDQUFxQztJQUVyQyxpRUFBaUU7SUFDakUsTUFBTSxjQUFjLEdBQWMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxNQUFNLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxNQUFNLG1CQUFtQixHQUFXLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxRCxNQUFNLFlBQVksR0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sSUFBSSxHQUFXLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztJQUV4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtZGF0ZS1waWNrZXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdGN1cnJlbnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWVtcHR5LWxpZmVjeWNsZS1tZXRob2Rcblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0Ly8gY29uc3QgZmlyc3REYXlPZk1vbnRoOiBEYXRlID0gdGhpcy5jdXJyZW50RGF0ZS5maXJzdERheU9mTW9udGgoKTtcblx0XHQvLyBjb25zb2xlLndhcm4oZmlyc3REYXlPZk1vbnRoLCBmaXJzdERheU9mTW9udGguZ2V0RGF0ZSgpLCBmaXJzdERheU9mTW9udGguZ2V0RGF5KCkpO1xuXHRcdC8vIGNvbnN0IHdlZWtDb3VudDogbnVtYmVyID0gZ2V0V2Vla0NvdW50KHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpLCBEYXlPZldlZWsuTW9uZGF5KTtcblx0XHQvLyBjb25zb2xlLndhcm4od2Vla0NvdW50KTtcblx0XHQvLyBjb25zdCB3ZWVrczogdW5rbm93bltdID0gW107XG5cdFx0Ly8gZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8PSB3ZWVrQ291bnQ7IGkrKykge1xuXHRcdC8vIGZvcihsZXQpe1xuXHRcdC8vIH1cblx0XHQvLyB9XG5cdH1cbn1cblxuZW51bSBEYXlPZldlZWsge1xuXHQnU3VuZGF5JyA9IDAsXG5cdCdNb25kYXknID0gMSxcblx0J1R1ZXNkYXknID0gMixcblx0J1dlZG5lc2RheScgPSAzLFxuXHQnVGh1cnNkYXknID0gNCxcblx0J0ZyaWRheScgPSA1LFxuXHQnU2F0dXJkYXknID0gNixcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla0NvdW50KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgc3RhcnREYXlPZldlZWs6IERheU9mV2Vlayk6IG51bWJlciB7XG5cdC8vIG1vbnRoX251bWJlciBpcyBpbiB0aGUgcmFuZ2UgMC4uMTFcblxuXHQvLyBHZXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIHdlZWsgZGF5ICgwOiBTdW5kYXksIDE6IE1vbmRheSwgLi4uKVxuXHRjb25zdCBmaXJzdERheU9mV2VlazogRGF5T2ZXZWVrID0gc3RhcnREYXlPZldlZWsgfHwgRGF5T2ZXZWVrLlN1bmRheTtcblx0Y29uc3QgZmlyc3RPZk1vbnRoOiBEYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuXHRjb25zdCBsYXN0T2ZNb250aDogRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XG5cdGNvbnN0IG51bWJlck9mRGF5c0luTW9udGg6IG51bWJlciA9IGxhc3RPZk1vbnRoLmdldERhdGUoKTtcblx0Y29uc3QgZmlyc3RXZWVrRGF5OiBudW1iZXIgPSAoZmlyc3RPZk1vbnRoLmdldERheSgpIC0gZmlyc3REYXlPZldlZWsgKyA3KSAlIDc7XG5cdGNvbnN0IHVzZWQ6IG51bWJlciA9IGZpcnN0V2Vla0RheSArIG51bWJlck9mRGF5c0luTW9udGg7XG5cblx0cmV0dXJuIE1hdGguY2VpbCh1c2VkIC8gNyk7XG59XG4iLCJjb21pbmcgc29vblxuIl19
@@ -0,0 +1,7 @@
1
+ export const Class = (className) => (obj) => {
2
+ Object.defineProperty(obj.prototype, 'className', {
3
+ value: className,
4
+ writable: false,
5
+ });
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQ2pCLENBQUMsU0FBaUIsRUFBc0IsRUFBRSxDQUMxQyxDQUFDLEdBQWEsRUFBUSxFQUFFO0lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUU7UUFDakQsS0FBSyxFQUFFLFNBQVM7UUFDaEIsUUFBUSxFQUFFLEtBQUs7S0FDZixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNvcmF0b3JDbGFzc1R5cGUgfSBmcm9tICcuL2RlY29yYXRvci50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDbGFzcyA9XG5cdChjbGFzc05hbWU6IHN0cmluZyk6IERlY29yYXRvckNsYXNzVHlwZSA9PlxuXHQob2JqOiBGdW5jdGlvbik6IHZvaWQgPT4ge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmoucHJvdG90eXBlLCAnY2xhc3NOYW1lJywge1xuXHRcdFx0dmFsdWU6IGNsYXNzTmFtZSxcblx0XHRcdHdyaXRhYmxlOiBmYWxzZSxcblx0XHR9KTtcblx0fTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9kZWNvcmF0b3JzL2RlY29yYXRvci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGVjb3JhdG9yTWV0aG9kVHlwZSA9ICh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4gUHJvcGVydHlEZXNjcmlwdG9yO1xuZXhwb3J0IHR5cGUgRGVjb3JhdG9yQ2xhc3NUeXBlID0gKG9iajogRnVuY3Rpb24pID0+IHZvaWQ7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './class.decorator';
2
+ export * from './decorator.types';
3
+ export * from './log.decorator';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2RlY29yYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsYXNzLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvci50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xvZy5kZWNvcmF0b3InO1xuIl19
@@ -0,0 +1,21 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ /* eslint-disable prefer-arrow/prefer-arrow-functions */
3
+ import { LogType } from '../enums';
4
+ export function Log(methodName, logType = LogType.log, logArgs) {
5
+ return function (target, key, descriptor) {
6
+ const method = descriptor.value;
7
+ descriptor.value = function (...args) {
8
+ const className = target.className || target.constructor.name;
9
+ const newMethodName = methodName || key;
10
+ let logStatements = [className, newMethodName];
11
+ if (logArgs && args && args.length > 0) {
12
+ logStatements = logStatements.concat([...args]);
13
+ }
14
+ // eslint-disable-next-line no-console
15
+ console[logType].apply(console, [...logStatements]);
16
+ return method.apply(this, args);
17
+ };
18
+ return descriptor;
19
+ };
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvZGVjb3JhdG9ycy9sb2cuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCx3REFBd0Q7QUFFeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBbUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFpQjtJQUN4RixPQUFPLFVBQVUsTUFBYyxFQUFFLEdBQVcsRUFBRSxVQUE4QjtRQUMzRSxNQUFNLE1BQU0sR0FBYSxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRTFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQXFCO1lBQ3BELE1BQU0sU0FBUyxHQUFZLE1BQXdCLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3pGLE1BQU0sYUFBYSxHQUFXLFVBQVUsSUFBSSxHQUFHLENBQUM7WUFFaEQsSUFBSSxhQUFhLEdBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFFcEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9ucyAqL1xuXG5pbXBvcnQgeyBMb2dUeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgRGVjb3JhdG9yTWV0aG9kVHlwZSB9IGZyb20gJy4vZGVjb3JhdG9yLnR5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIExvZyhtZXRob2ROYW1lOiBzdHJpbmcsIGxvZ1R5cGU6IExvZ1R5cGUgPSBMb2dUeXBlLmxvZywgbG9nQXJncz86IGJvb2xlYW4pOiBEZWNvcmF0b3JNZXRob2RUeXBlIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcik6IFByb3BlcnR5RGVzY3JpcHRvciB7XG5cdFx0Y29uc3QgbWV0aG9kOiBGdW5jdGlvbiA9IGRlc2NyaXB0b3IudmFsdWU7XG5cblx0XHRkZXNjcmlwdG9yLnZhbHVlID0gZnVuY3Rpb24gKC4uLmFyZ3M6IFVua25vd25PYmplY3RbXSk6IHVua25vd24ge1xuXHRcdFx0Y29uc3QgY2xhc3NOYW1lOiBzdHJpbmcgPSAodGFyZ2V0IGFzIFVua25vd25PYmplY3QpLmNsYXNzTmFtZSB8fCB0YXJnZXQuY29uc3RydWN0b3IubmFtZTtcblx0XHRcdGNvbnN0IG5ld01ldGhvZE5hbWU6IHN0cmluZyA9IG1ldGhvZE5hbWUgfHwga2V5O1xuXG5cdFx0XHRsZXQgbG9nU3RhdGVtZW50czogc3RyaW5nW10gPSBbY2xhc3NOYW1lLCBuZXdNZXRob2ROYW1lXTtcblx0XHRcdGlmIChsb2dBcmdzICYmIGFyZ3MgJiYgYXJncy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxvZ1N0YXRlbWVudHMgPSBsb2dTdGF0ZW1lbnRzLmNvbmNhdChbLi4uYXJnc10pO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuXHRcdFx0Y29uc29sZVtsb2dUeXBlXS5hcHBseShjb25zb2xlLCBbLi4ubG9nU3RhdGVtZW50c10pO1xuXG5cdFx0XHRyZXR1cm4gbWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXHRcdH07XG5cblx0XHRyZXR1cm4gZGVzY3JpcHRvcjtcblx0fTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './logtype.enum';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ3R5cGUuZW51bSc7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export var LogType;
2
+ (function (LogType) {
3
+ LogType["log"] = "log";
4
+ LogType["info"] = "info";
5
+ LogType["warn"] = "warn";
6
+ LogType["debug"] = "debug";
7
+ LogType["error"] = "error";
8
+ })(LogType || (LogType = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ndHlwZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9lbnVtcy9sb2d0eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNsQixzQkFBVyxDQUFBO0lBQ1gsd0JBQWEsQ0FBQTtJQUNiLHdCQUFhLENBQUE7SUFDYiwwQkFBZSxDQUFBO0lBQ2YsMEJBQWUsQ0FBQTtBQUNoQixDQUFDLEVBTlcsT0FBTyxLQUFQLE9BQU8sUUFNbEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBMb2dUeXBlIHtcblx0bG9nID0gJ2xvZycsXG5cdGluZm8gPSAnaW5mbycsXG5cdHdhcm4gPSAnd2FybicsXG5cdGRlYnVnID0gJ2RlYnVnJyxcblx0ZXJyb3IgPSAnZXJyb3InLFxufVxuIl19
@@ -1,33 +1,31 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class ImageService {
4
- compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
4
+ async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
5
+ const img = await this.load(imageBase64);
6
+ const canvas = this.createCanvas();
7
+ this.drawImage(canvas, img);
8
+ return canvas.toDataURL(fileType, quality);
9
+ }
10
+ async toBlob(imageBase64, quality = 1, fileType = 'image/jpeg') {
11
+ const img = await this.load(imageBase64);
12
+ const canvas = this.createCanvas();
13
+ this.drawImage(canvas, img);
5
14
  return new Promise((resolve, reject) => {
6
- const img = new Image();
7
- img.onload = () => {
8
- const canvas = this.createCanvas();
9
- this.drawImage(canvas, img);
10
- resolve(canvas.toDataURL(fileType, quality));
11
- };
12
- img.onerror = (event) => reject(event);
13
- img.src = imageBase64;
15
+ canvas.toBlob(blob => {
16
+ if (blob) {
17
+ resolve(blob);
18
+ }
19
+ else {
20
+ reject('Error on converting image to blob');
21
+ }
22
+ }, fileType, quality);
14
23
  });
15
24
  }
16
- toBlob(imageBase64, quality = 1, fileType = 'image/jpeg') {
25
+ load(imageBase64) {
17
26
  return new Promise((resolve, reject) => {
18
27
  const img = new Image();
19
- img.onload = () => {
20
- const canvas = this.createCanvas();
21
- this.drawImage(canvas, img);
22
- canvas.toBlob(blob => {
23
- if (blob) {
24
- resolve(blob);
25
- }
26
- else {
27
- reject('Error on converting image to blob');
28
- }
29
- }, fileType, quality);
30
- };
28
+ img.onload = () => resolve(img);
31
29
  img.onerror = (event) => reject(event);
32
30
  img.src = imageBase64;
33
31
  });
@@ -48,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
48
46
  type: Injectable,
49
47
  args: [{ providedIn: 'root' }]
50
48
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvc2VydmljZXMvaW1hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sWUFBWTtJQUN4QixRQUFRLENBQUMsV0FBbUIsRUFBRSxVQUFrQixHQUFHLEVBQUUsV0FBbUIsWUFBWTtRQUNuRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLE1BQU0sR0FBRyxHQUFxQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBUyxFQUFFO2dCQUN2QixNQUFNLE1BQU0sR0FBc0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDO1lBQ0YsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQXFCLEVBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3RCxHQUFHLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBbUIsRUFBRSxVQUFrQixDQUFDLEVBQUUsV0FBbUIsWUFBWTtRQUMvRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLE1BQU0sR0FBRyxHQUFxQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBUyxFQUFFO2dCQUN2QixNQUFNLE1BQU0sR0FBc0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FDWixJQUFJLENBQUMsRUFBRTtvQkFDTixJQUFJLElBQUksRUFBRSxDQUFDO3dCQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZixDQUFDO3lCQUFNLENBQUM7d0JBQ1AsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7b0JBQzdDLENBQUM7Z0JBQ0YsQ0FBQyxFQUNELFFBQVEsRUFDUixPQUFPLENBQ1AsQ0FBQztZQUNILENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFxQixFQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0QsR0FBRyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWTtRQUNuQixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUF5QixFQUFFLEdBQXFCO1FBQ2pFLE1BQU0sT0FBTyxHQUE2QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN6QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDM0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDOytHQTlDVyxZQUFZO21IQUFaLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW1hZ2VTZXJ2aWNlIHtcblx0Y29tcHJlc3MoaW1hZ2VCYXNlNjQ6IHN0cmluZywgcXVhbGl0eTogbnVtYmVyID0gMC44LCBmaWxlVHlwZTogc3RyaW5nID0gJ2ltYWdlL2pwZWcnKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Y29uc3QgaW1nOiBIVE1MSW1hZ2VFbGVtZW50ID0gbmV3IEltYWdlKCk7XG5cdFx0XHRpbWcub25sb2FkID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50ID0gdGhpcy5jcmVhdGVDYW52YXMoKTtcblx0XHRcdFx0dGhpcy5kcmF3SW1hZ2UoY2FudmFzLCBpbWcpO1xuXHRcdFx0XHRyZXNvbHZlKGNhbnZhcy50b0RhdGFVUkwoZmlsZVR5cGUsIHF1YWxpdHkpKTtcblx0XHRcdH07XG5cdFx0XHRpbWcub25lcnJvciA9IChldmVudDogc3RyaW5nIHwgRXZlbnQpOiB2b2lkID0+IHJlamVjdChldmVudCk7XG5cdFx0XHRpbWcuc3JjID0gaW1hZ2VCYXNlNjQ7XG5cdFx0fSk7XG5cdH1cblxuXHR0b0Jsb2IoaW1hZ2VCYXNlNjQ6IHN0cmluZywgcXVhbGl0eTogbnVtYmVyID0gMSwgZmlsZVR5cGU6IHN0cmluZyA9ICdpbWFnZS9qcGVnJyk6IFByb21pc2U8QmxvYj4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRjb25zdCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQgPSBuZXcgSW1hZ2UoKTtcblx0XHRcdGltZy5vbmxvYWQgPSAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdGNvbnN0IGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgPSB0aGlzLmNyZWF0ZUNhbnZhcygpO1xuXHRcdFx0XHR0aGlzLmRyYXdJbWFnZShjYW52YXMsIGltZyk7XG5cdFx0XHRcdGNhbnZhcy50b0Jsb2IoXG5cdFx0XHRcdFx0YmxvYiA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYmxvYikge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGJsb2IpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmVqZWN0KCdFcnJvciBvbiBjb252ZXJ0aW5nIGltYWdlIHRvIGJsb2InKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGZpbGVUeXBlLFxuXHRcdFx0XHRcdHF1YWxpdHlcblx0XHRcdFx0KTtcblx0XHRcdH07XG5cdFx0XHRpbWcub25lcnJvciA9IChldmVudDogc3RyaW5nIHwgRXZlbnQpOiB2b2lkID0+IHJlamVjdChldmVudCk7XG5cdFx0XHRpbWcuc3JjID0gaW1hZ2VCYXNlNjQ7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNyZWF0ZUNhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHR9XG5cblx0cHJpdmF0ZSBkcmF3SW1hZ2UoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuXHRcdGNhbnZhcy53aWR0aCA9IGltZy53aWR0aDtcblx0XHRjYW52YXMuaGVpZ2h0ID0gaW1nLmhlaWdodDtcblx0XHRjb250ZXh0LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdH1cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvc2VydmljZXMvaW1hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sWUFBWTtJQUN4QixLQUFLLENBQUMsUUFBUSxDQUFDLFdBQW1CLEVBQUUsVUFBa0IsR0FBRyxFQUFFLFdBQW1CLFlBQVk7UUFDekYsTUFBTSxHQUFHLEdBQXFCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBc0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBbUIsRUFBRSxVQUFrQixDQUFDLEVBQUUsV0FBbUIsWUFBWTtRQUNyRixNQUFNLEdBQUcsR0FBcUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLENBQUMsTUFBTSxDQUNaLElBQUksQ0FBQyxFQUFFO2dCQUNOLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNmLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztZQUNGLENBQUMsRUFDRCxRQUFRLEVBQ1IsT0FBTyxDQUNQLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxJQUFJLENBQUMsV0FBbUI7UUFDL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEdBQUcsR0FBcUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUMxQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsR0FBRyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWTtRQUNuQixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUF5QixFQUFFLEdBQXFCO1FBQ2pFLE1BQU0sT0FBTyxHQUE2QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN6QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDM0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDOytHQTdDVyxZQUFZO21IQUFaLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW1hZ2VTZXJ2aWNlIHtcblx0YXN5bmMgY29tcHJlc3MoaW1hZ2VCYXNlNjQ6IHN0cmluZywgcXVhbGl0eTogbnVtYmVyID0gMC44LCBmaWxlVHlwZTogc3RyaW5nID0gJ2ltYWdlL2pwZWcnKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRjb25zdCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQgPSBhd2FpdCB0aGlzLmxvYWQoaW1hZ2VCYXNlNjQpO1xuXHRcdGNvbnN0IGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgPSB0aGlzLmNyZWF0ZUNhbnZhcygpO1xuXHRcdHRoaXMuZHJhd0ltYWdlKGNhbnZhcywgaW1nKTtcblx0XHRyZXR1cm4gY2FudmFzLnRvRGF0YVVSTChmaWxlVHlwZSwgcXVhbGl0eSk7XG5cdH1cblxuXHRhc3luYyB0b0Jsb2IoaW1hZ2VCYXNlNjQ6IHN0cmluZywgcXVhbGl0eTogbnVtYmVyID0gMSwgZmlsZVR5cGU6IHN0cmluZyA9ICdpbWFnZS9qcGVnJyk6IFByb21pc2U8QmxvYj4ge1xuXHRcdGNvbnN0IGltZzogSFRNTEltYWdlRWxlbWVudCA9IGF3YWl0IHRoaXMubG9hZChpbWFnZUJhc2U2NCk7XG5cdFx0Y29uc3QgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IHRoaXMuY3JlYXRlQ2FudmFzKCk7XG5cdFx0dGhpcy5kcmF3SW1hZ2UoY2FudmFzLCBpbWcpO1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRjYW52YXMudG9CbG9iKFxuXHRcdFx0XHRibG9iID0+IHtcblx0XHRcdFx0XHRpZiAoYmxvYikge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShibG9iKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVqZWN0KCdFcnJvciBvbiBjb252ZXJ0aW5nIGltYWdlIHRvIGJsb2InKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZpbGVUeXBlLFxuXHRcdFx0XHRxdWFsaXR5XG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBsb2FkKGltYWdlQmFzZTY0OiBzdHJpbmcpOiBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Y29uc3QgaW1nOiBIVE1MSW1hZ2VFbGVtZW50ID0gbmV3IEltYWdlKCk7XG5cdFx0XHRpbWcub25sb2FkID0gKCk6IHZvaWQgPT4gcmVzb2x2ZShpbWcpO1xuXHRcdFx0aW1nLm9uZXJyb3IgPSAoZXZlbnQpOiB2b2lkID0+IHJlamVjdChldmVudCk7XG5cdFx0XHRpbWcuc3JjID0gaW1hZ2VCYXNlNjQ7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNyZWF0ZUNhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHR9XG5cblx0cHJpdmF0ZSBkcmF3SW1hZ2UoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuXHRcdGNhbnZhcy53aWR0aCA9IGltZy53aWR0aDtcblx0XHRjYW52YXMuaGVpZ2h0ID0gaW1nLmhlaWdodDtcblx0XHRjb250ZXh0LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdH1cbn1cbiJdfQ==
@@ -1,9 +1,10 @@
1
1
  export * from './clipboard.service';
2
2
  export * from './file.service';
3
+ export * from './image.service';
3
4
  export * from './loading-indicator.service';
4
5
  export * from './local.service';
6
+ export * from './logger.service';
5
7
  export * from './modal.service';
6
8
  export * from './toast.service';
7
9
  export * from './token.service';
8
- export * from './image.service';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xpcGJvYXJkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLWluZGljYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGlwYm9hcmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLWluZGljYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { LogType } from '../enums/logtype.enum';
4
+ import * as i0 from "@angular/core";
5
+ export class LoggerService {
6
+ constructor() {
7
+ this.onLog = new Subject();
8
+ }
9
+ log(...args) {
10
+ this._doLog(LogType.log, args);
11
+ }
12
+ info(...args) {
13
+ this._doLog(LogType.info, args);
14
+ }
15
+ warn(...args) {
16
+ this._doLog(LogType.warn, args);
17
+ }
18
+ debug(...args) {
19
+ this._doLog(LogType.debug, args);
20
+ }
21
+ error(...args) {
22
+ this._doLog(LogType.error, args);
23
+ }
24
+ _doLog(logType, ...args) {
25
+ // eslint-disable-next-line no-console
26
+ console[logType].apply(console, args);
27
+ this.onLog.next({ logType: logType, args: args });
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, providedIn: 'root' }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, decorators: [{
33
+ type: Injectable,
34
+ args: [{ providedIn: 'root' }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBUWhELE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRUMsVUFBSyxHQUFrQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0tBMkJyRDtJQXpCQSxHQUFHLENBQUMsR0FBRyxJQUFlO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQUcsSUFBZTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLElBQWU7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxJQUFlO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsSUFBZTtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFnQixFQUFFLEdBQUcsSUFBZTtRQUMxQyxzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBM0JXLGFBQWE7bUhBQWIsYUFBYSxjQURBLE1BQU07OzRGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvZ1R5cGUgfSBmcm9tICcuLi9lbnVtcy9sb2d0eXBlLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMb2dTdWJqZWN0PFQ+IHtcblx0bG9nVHlwZTogTG9nVHlwZTtcblx0YXJnczogVFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvZ2dlclNlcnZpY2Uge1xuXHRvbkxvZzogU3ViamVjdDxJTG9nU3ViamVjdDx1bmtub3duPj4gPSBuZXcgU3ViamVjdCgpO1xuXG5cdGxvZyguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcblx0XHR0aGlzLl9kb0xvZyhMb2dUeXBlLmxvZywgYXJncyk7XG5cdH1cblxuXHRpbmZvKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdHRoaXMuX2RvTG9nKExvZ1R5cGUuaW5mbywgYXJncyk7XG5cdH1cblxuXHR3YXJuKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdHRoaXMuX2RvTG9nKExvZ1R5cGUud2FybiwgYXJncyk7XG5cdH1cblxuXHRkZWJ1ZyguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcblx0XHR0aGlzLl9kb0xvZyhMb2dUeXBlLmRlYnVnLCBhcmdzKTtcblx0fVxuXG5cdGVycm9yKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdHRoaXMuX2RvTG9nKExvZ1R5cGUuZXJyb3IsIGFyZ3MpO1xuXHR9XG5cblx0X2RvTG9nKGxvZ1R5cGU6IExvZ1R5cGUsIC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG5cdFx0Y29uc29sZVtsb2dUeXBlXS5hcHBseShjb25zb2xlLCBhcmdzKTtcblx0XHR0aGlzLm9uTG9nLm5leHQoeyBsb2dUeXBlOiBsb2dUeXBlLCBhcmdzOiBhcmdzIH0pO1xuXHR9XG59XG4iXX0=
@@ -1,15 +1,15 @@
1
1
  /*
2
2
  * Public API Surface of ngx-gccb
3
3
  */
4
- // export * from './lib/ngx-gccb.component';
5
- // export * from './lib/ngx-gccb.service';
6
4
  export * from './lib/animations';
7
5
  export * from './lib/components';
6
+ export * from './lib/decorators';
8
7
  export * from './lib/directives';
8
+ export * from './lib/enums';
9
9
  export * from './lib/helpers';
10
10
  export * from './lib/interfaces';
11
11
  export * from './lib/pipe';
12
12
  export * from './lib/services';
13
13
  export * from './lib/typings';
14
14
  export * from './lib/validators';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsNENBQTRDO0FBQzVDLDBDQUEwQztBQUUxQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWdjY2JcbiAqL1xuXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZ2NjYi5jb21wb25lbnQnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWdjY2Iuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdG9ycyc7XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWdjY2JcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVjb3JhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdG9ycyc7XG4iXX0=
@@ -11,7 +11,7 @@ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
11
11
  import { faSpinner, faTimes } from '@fortawesome/free-solid-svg-icons';
12
12
  import saveAs from 'file-saver';
13
13
  import { unparse, parse } from 'papaparse';
14
- import { BehaviorSubject } from 'rxjs';
14
+ import { BehaviorSubject, Subject } from 'rxjs';
15
15
  import { DomPortalOutlet, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
16
16
  import dayjs from 'dayjs';
17
17
  import localizedFormat from 'dayjs/plugin/localizedFormat';
@@ -32,16 +32,17 @@ class DatePickerComponent {
32
32
  constructor() {
33
33
  this.currentDate = new Date();
34
34
  }
35
+ // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
35
36
  ngOnInit() {
36
- const firstDayOfMonth = this.currentDate.firstDayOfMonth();
37
+ // const firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();
37
38
  // console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());
38
- const weekCount = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);
39
- console.warn(weekCount);
40
- const weeks = [];
41
- for (let i = 0; i <= weekCount; i++) {
42
- // for(let){
43
- // }
44
- }
39
+ // const weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);
40
+ // console.warn(weekCount);
41
+ // const weeks: unknown[] = [];
42
+ // for (let i: number = 0; i <= weekCount; i++) {
43
+ // for(let){
44
+ // }
45
+ // }
45
46
  }
46
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
48
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DatePickerComponent, isStandalone: true, selector: "app-date-picker", ngImport: i0, template: "coming soon\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
@@ -689,6 +690,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
689
690
  type: Output
690
691
  }] } });
691
692
 
693
+ const Class = (className) => (obj) => {
694
+ Object.defineProperty(obj.prototype, 'className', {
695
+ value: className,
696
+ writable: false,
697
+ });
698
+ };
699
+
700
+ var LogType;
701
+ (function (LogType) {
702
+ LogType["log"] = "log";
703
+ LogType["info"] = "info";
704
+ LogType["warn"] = "warn";
705
+ LogType["debug"] = "debug";
706
+ LogType["error"] = "error";
707
+ })(LogType || (LogType = {}));
708
+
709
+ /* eslint-disable @typescript-eslint/naming-convention */
710
+ /* eslint-disable prefer-arrow/prefer-arrow-functions */
711
+ function Log(methodName, logType = LogType.log, logArgs) {
712
+ return function (target, key, descriptor) {
713
+ const method = descriptor.value;
714
+ descriptor.value = function (...args) {
715
+ const className = target.className || target.constructor.name;
716
+ const newMethodName = methodName || key;
717
+ let logStatements = [className, newMethodName];
718
+ if (logArgs && args && args.length > 0) {
719
+ logStatements = logStatements.concat([...args]);
720
+ }
721
+ // eslint-disable-next-line no-console
722
+ console[logType].apply(console, [...logStatements]);
723
+ return method.apply(this, args);
724
+ };
725
+ return descriptor;
726
+ };
727
+ }
728
+
692
729
  var SortOrder;
693
730
  (function (SortOrder) {
694
731
  SortOrder[SortOrder["NONE"] = 0] = "NONE";
@@ -816,6 +853,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
816
853
  args: [{ providedIn: 'root' }]
817
854
  }] });
818
855
 
856
+ class ImageService {
857
+ async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
858
+ const img = await this.load(imageBase64);
859
+ const canvas = this.createCanvas();
860
+ this.drawImage(canvas, img);
861
+ return canvas.toDataURL(fileType, quality);
862
+ }
863
+ async toBlob(imageBase64, quality = 1, fileType = 'image/jpeg') {
864
+ const img = await this.load(imageBase64);
865
+ const canvas = this.createCanvas();
866
+ this.drawImage(canvas, img);
867
+ return new Promise((resolve, reject) => {
868
+ canvas.toBlob(blob => {
869
+ if (blob) {
870
+ resolve(blob);
871
+ }
872
+ else {
873
+ reject('Error on converting image to blob');
874
+ }
875
+ }, fileType, quality);
876
+ });
877
+ }
878
+ load(imageBase64) {
879
+ return new Promise((resolve, reject) => {
880
+ const img = new Image();
881
+ img.onload = () => resolve(img);
882
+ img.onerror = (event) => reject(event);
883
+ img.src = imageBase64;
884
+ });
885
+ }
886
+ createCanvas() {
887
+ return document.createElement('canvas');
888
+ }
889
+ drawImage(canvas, img) {
890
+ const context = canvas.getContext('2d');
891
+ canvas.width = img.width;
892
+ canvas.height = img.height;
893
+ context.drawImage(img, 0, 0, canvas.width, canvas.height);
894
+ }
895
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
896
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ImageService, providedIn: 'root' }); }
897
+ }
898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ImageService, decorators: [{
899
+ type: Injectable,
900
+ args: [{ providedIn: 'root' }]
901
+ }] });
902
+
819
903
  class LoadingIndicatorService {
820
904
  constructor() {
821
905
  this.show = new BehaviorSubject(undefined);
@@ -855,6 +939,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
855
939
  args: [{ providedIn: 'root' }]
856
940
  }] });
857
941
 
942
+ class LoggerService {
943
+ constructor() {
944
+ this.onLog = new Subject();
945
+ }
946
+ log(...args) {
947
+ this._doLog(LogType.log, args);
948
+ }
949
+ info(...args) {
950
+ this._doLog(LogType.info, args);
951
+ }
952
+ warn(...args) {
953
+ this._doLog(LogType.warn, args);
954
+ }
955
+ debug(...args) {
956
+ this._doLog(LogType.debug, args);
957
+ }
958
+ error(...args) {
959
+ this._doLog(LogType.error, args);
960
+ }
961
+ _doLog(logType, ...args) {
962
+ // eslint-disable-next-line no-console
963
+ console[logType].apply(console, args);
964
+ this.onLog.next({ logType: logType, args: args });
965
+ }
966
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
967
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, providedIn: 'root' }); }
968
+ }
969
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, decorators: [{
970
+ type: Injectable,
971
+ args: [{ providedIn: 'root' }]
972
+ }] });
973
+
858
974
  class ModalService {
859
975
  init(viewContainerRef) {
860
976
  this.portalHost = new DomPortalOutlet(document.body);
@@ -947,55 +1063,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
947
1063
  }]
948
1064
  }], ctorParameters: () => [{ type: LocalService }] });
949
1065
 
950
- class ImageService {
951
- compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
952
- return new Promise((resolve, reject) => {
953
- const img = new Image();
954
- img.onload = () => {
955
- const canvas = this.createCanvas();
956
- this.drawImage(canvas, img);
957
- resolve(canvas.toDataURL(fileType, quality));
958
- };
959
- img.onerror = (event) => reject(event);
960
- img.src = imageBase64;
961
- });
962
- }
963
- toBlob(imageBase64, quality = 1, fileType = 'image/jpeg') {
964
- return new Promise((resolve, reject) => {
965
- const img = new Image();
966
- img.onload = () => {
967
- const canvas = this.createCanvas();
968
- this.drawImage(canvas, img);
969
- canvas.toBlob(blob => {
970
- if (blob) {
971
- resolve(blob);
972
- }
973
- else {
974
- reject('Error on converting image to blob');
975
- }
976
- }, fileType, quality);
977
- };
978
- img.onerror = (event) => reject(event);
979
- img.src = imageBase64;
980
- });
981
- }
982
- createCanvas() {
983
- return document.createElement('canvas');
984
- }
985
- drawImage(canvas, img) {
986
- const context = canvas.getContext('2d');
987
- canvas.width = img.width;
988
- canvas.height = img.height;
989
- context.drawImage(img, 0, 0, canvas.width, canvas.height);
990
- }
991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
992
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ImageService, providedIn: 'root' }); }
993
- }
994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ImageService, decorators: [{
995
- type: Injectable,
996
- args: [{ providedIn: 'root' }]
997
- }] });
998
-
999
1066
  Array.prototype.groupBy = function (valueGetter) {
1000
1067
  return this.reduce((curr, obj) => {
1001
1068
  const key = valueGetter(obj);
@@ -1140,12 +1207,10 @@ function convertToMinutes(time) {
1140
1207
  /*
1141
1208
  * Public API Surface of ngx-gccb
1142
1209
  */
1143
- // export * from './lib/ngx-gccb.component';
1144
- // export * from './lib/ngx-gccb.service';
1145
1210
 
1146
1211
  /**
1147
1212
  * Generated bundle index. Do not edit.
1148
1213
  */
1149
1214
 
1150
- export { BaseModalComponent, ButtonDirective, ClipboardService, ColDirective, DatePickerComponent, DropdownDirective, FadeAnimation, FadeRightAnimation, FileService, FormControlPipe, FormErrorsComponent, FormInputComponent, FormInputDirective, FormLabelDirective, FormSelectDirective, IconButtonDirective, ImageService, ListGroupDirective, ListGroupItemAvatarDirective, ListGroupItemDirective, LoadingIndicatorComponent, LoadingIndicatorService, LocalService, ModalComponent, ModalService, OffCanvasComponent, ToastComponent, ToastService, TokenService, dateAfterValidator, matchValidator, sortHelper, timeAfterValidator };
1215
+ export { BaseModalComponent, ButtonDirective, Class, ClipboardService, ColDirective, DatePickerComponent, DropdownDirective, FadeAnimation, FadeRightAnimation, FileService, FormControlPipe, FormErrorsComponent, FormInputComponent, FormInputDirective, FormLabelDirective, FormSelectDirective, IconButtonDirective, ImageService, ListGroupDirective, ListGroupItemAvatarDirective, ListGroupItemDirective, LoadingIndicatorComponent, LoadingIndicatorService, LocalService, Log, LogType, LoggerService, ModalComponent, ModalService, OffCanvasComponent, ToastComponent, ToastService, TokenService, dateAfterValidator, matchValidator, sortHelper, timeAfterValidator };
1151
1216
  //# sourceMappingURL=ngx-gccb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.html","../../../projects/ngx-gccb/src/lib/components/form/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/col.directive.ts","../../../projects/ngx-gccb/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-input.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-label.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-select.directive.ts","../../../projects/ngx-gccb/src/lib/directives/icon-button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group.directive.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.html","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/modal/base-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.html","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/toast/toast.component.ts","../../../projects/ngx-gccb/src/lib/helpers/sort.helper.ts","../../../projects/ngx-gccb/src/lib/pipe/form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/services/clipboard.service.ts","../../../projects/ngx-gccb/src/lib/services/file.service.ts","../../../projects/ngx-gccb/src/lib/services/loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/services/local.service.ts","../../../projects/ngx-gccb/src/lib/services/modal.service.ts","../../../projects/ngx-gccb/src/lib/services/toast.service.ts","../../../projects/ngx-gccb/src/lib/services/token.service.ts","../../../projects/ngx-gccb/src/lib/services/image.service.ts","../../../projects/ngx-gccb/src/lib/typings/array-extension.ts","../../../projects/ngx-gccb/src/lib/typings/date-extension.ts","../../../projects/ngx-gccb/src/lib/typings/string-extensions.ts","../../../projects/ngx-gccb/src/lib/validators/dateAfter.validator.ts","../../../projects/ngx-gccb/src/lib/validators/match.validator.ts","../../../projects/ngx-gccb/src/lib/validators/timeAfter.validator.ts","../../../projects/ngx-gccb/src/public-api.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation: AnimationTriggerMetadata = trigger('fadeRightAnimation', [\n\ttransition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n\ttransition(':enter', [style({ opacity: 0, transform: 'translateY(10px)' }), animate('500ms', style({ opacity: 1, transform: 'translateY(0)' }))]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class DatePickerComponent implements OnInit {\n\tcurrentDate: Date = new Date();\n\n\tngOnInit(): void {\n\t\tconst firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();\n\t\t// console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());\n\n\t\tconst weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);\n\t\tconsole.warn(weekCount);\n\n\t\tconst weeks: unknown[] = [];\n\n\t\tfor (let i: number = 0; i <= weekCount; i++) {\n\t\t\t// for(let){\n\t\t\t// }\n\t\t}\n\t}\n}\n\nenum DayOfWeek {\n\t'Sunday' = 0,\n\t'Monday' = 1,\n\t'Tuesday' = 2,\n\t'Wednesday' = 3,\n\t'Thursday' = 4,\n\t'Friday' = 5,\n\t'Saturday' = 6,\n}\n\nfunction getWeekCount(year: number, month: number, startDayOfWeek: DayOfWeek): number {\n\t// month_number is in the range 0..11\n\n\t// Get the first day of week week day (0: Sunday, 1: Monday, ...)\n\tconst firstDayOfWeek: DayOfWeek = startDayOfWeek || DayOfWeek.Sunday;\n\tconst firstOfMonth: Date = new Date(year, month, 1);\n\tconst lastOfMonth: Date = new Date(year, month + 1, 0);\n\tconst numberOfDaysInMonth: number = lastOfMonth.getDate();\n\tconst firstWeekDay: number = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n\tconst used: number = firstWeekDay + numberOfDaysInMonth;\n\n\treturn Math.ceil(used / 7);\n}\n","coming soon\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'app-form-errors',\n\ttemplate: `\n\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t@if (errorMessages) {\n\t\t\t\t@for (errorMessage of errorMessages; track $index) {\n\t\t\t\t\t<div>{{ errorMessage }}</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrorsComponent implements OnChanges {\n\t@Input() errors: ValidationErrors | null = null;\n\t// @Input() customErrorMessages?: IErrorMessage; // TODO\n\n\terrorMessages: string[] = [];\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['errors']) {\n\t\t\tconst previousValue: ValidationErrors = changes['errors'].previousValue;\n\t\t\tconst currentValue: ValidationErrors = changes['errors'].currentValue;\n\n\t\t\tif (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n\t\t\t\tthis.errorMessages = [];\n\t\t\t\tfor (const key in currentValue) {\n\t\t\t\t\tif (this.errorMessageDictionary[key]) {\n\t\t\t\t\t\tthis.errorMessages.push(this.errorMessageDictionary[key](currentValue));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\terrorMessageDictionary: IErrorMessage = {\n\t\trequired: () => 'Field is required',\n\t\trequiredTrue: () => 'Field is required',\n\t\temail: () => 'Invalid E-Mail',\n\t\tmin: (errors: ValidationErrors) => `At least ${errors['min']?.requiredLength} characters are required`,\n\t\tminlength: (errors: ValidationErrors) => `At least ${errors['minlength']?.requiredLength} characters are required`,\n\t\tmax: (errors: ValidationErrors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,\n\t\tmaxlength: (errors: ValidationErrors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,\n\t\tpattern: () => `Input does not match pattern`,\n\t\tdateAfterInvalid: (errors: ValidationErrors) => `Date must be after ${errors?.['startDateValue']}`,\n\t\tmatch: () => `Input does not match!`,\n\t\ttimeAfterError: (errors: ValidationErrors) => `The time must be after ${errors?.['timeAfterError']}`,\n\t};\n}\n\ninterface IErrorMessage {\n\t[key: string]: (error: ValidationErrors) => string;\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tcolor!: string;\n\t_variant: string = 'contained';\n\n\t@HostListener('focus', ['$event']) onFocus(): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur(): void {\n\t\tthis.isFocused = false;\n\t}\n\n\tset isFocused(val: boolean) {\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add(`focus-ring-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove(`focus-ring-${this.color}`);\n\t\t}\n\t}\n\n\t@Input('app-button') set appButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t}\n\n\t@Input() set variant(val: 'contained' | 'outline' | 'text') {\n\t\tthis._variant = val;\n\t}\n\n\t@Input() set size(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'sm'}`);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\t\tif (this._variant === 'outline' || this._variant === 'text') {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this._variant}-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\n\t\t}\n\t\tthis.elementRef.nativeElement.classList.add('flex-shrink-0');\n\t\tthis.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n/* experimental */\n\n@Directive({\n\tselector: '[col]',\n\tstandalone: true,\n})\nexport class ColDirective implements AfterViewInit {\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tspan: string = 'col';\n\n\t@Input() set col(val: string | null) {\n\t\tif (val) {\n\t\t\tthis.span = val;\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t(this.el.nativeElement as HTMLElement).classList.add(this.span);\n\t}\n}\n","import { Directive, ElementRef, EmbeddedViewRef, HostListener, inject, Input, OnInit, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appDropdown]',\n\tstandalone: true,\n})\nexport class DropdownDirective implements OnInit {\n\t@Input('appDropdown') dropdownTemplate!: TemplateRef<UnknownObject>;\n\t@Input() placement: Placement = 'bottom-start';\n\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\tprivate wrapperElement!: HTMLElement | null;\n\tprivate dropdownContent!: HTMLElement | null;\n\tprivate isDropdownVisible: boolean = false;\n\tprivate popperInstance?: Instance;\n\n\tprivate documentClickListener!: (event: MouseEvent) => void;\n\n\tconstructor() {\n\t\tthis.documentClickListener = this.onDocumentClick.bind(this);\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.wrapperElement) {\n\t\t\tthis.wrapperElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.wrapperElement, 'dropdown');\n\t\t\tconst parent: UnknownObject = this.elementRef.nativeElement.parentNode;\n\t\t\tthis.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);\n\t\t}\n\t}\n\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\tprivate openDropdown(): void {\n\t\tif (!this.dropdownContent && this.wrapperElement) {\n\t\t\tconst dropdownView: EmbeddedViewRef<UnknownObject> = this.viewContainer.createEmbeddedView(this.dropdownTemplate);\n\t\t\tthis.dropdownContent = dropdownView.rootNodes[0];\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.dropdownContent);\n\n\t\t\tthis.addDropdownLinksListener();\n\n\t\t\tthis.popperInstance = createPopper(this.wrapperElement, this.dropdownContent!, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: ({ placement }: UnknownObject): number[] => {\n\t\t\t\t\t\t\t\tif (placement.startsWith('bottom')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('top')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('left')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetWidth as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [0, 0];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tfallbackPlacements: ['right-start', 'top-start', 'left-start'],\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'preventOverflow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\ttether: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\n\t\tdocument.addEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate closeDropdown(): void {\n\t\tif (this.dropdownContent) {\n\t\t\tthis.viewContainer.clear();\n\t\t\tthis.dropdownContent = null;\n\t\t\tthis.popperInstance?.destroy();\n\t\t}\n\t\tdocument.removeEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate onDocumentClick(event: MouseEvent): void {\n\t\tif (this.wrapperElement && !this.wrapperElement.contains(event.target as Node) && !this.elementRef.nativeElement.contains(event.target as Node)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\tprivate addDropdownLinksListener(): void {\n\t\tconst links: NodeListOf<Element> | undefined = this.dropdownContent?.querySelectorAll('.dropdown-item');\n\t\tlinks?.forEach(link => {\n\t\t\tthis.renderer.listen(link, 'click', () => {\n\t\t\t\tthis.closeDropdown();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-control');\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n\tselector: 'label[app-form-label]',\n\tstandalone: true,\n})\nexport class FormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t}\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@Input('app-icon-button') set appIconButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t\tthis.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);\n\t}\n\n\t@Input() set shadow(val: boolean) {\n\t\tif (val === true || val === undefined) {\n\t\t\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('shadow-sm');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'icon-button');\n\t}\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[app-list-group-item-avatar]',\n\tstandalone: true,\n})\nexport class ListGroupItemAvatarDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-avatar');\n\t}\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'li[app-list-group-item]',\n\tstandalone: true,\n})\nexport class ListGroupItemDirective implements OnInit {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\t_isActive: boolean = false;\n\t@Input() set isActive(val: boolean) {\n\t\tthis._isActive = val;\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add('focus-active');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t}\n\t}\n\n\t@Output() onOutsideClick: EventEmitter<void> = new EventEmitter<void>();\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-action');\n\t\tthis.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');\n\n\t\tthis.renderer.listen('window', 'click', (e: Event) => {\n\t\t\tif (e.target !== this.elementRef.nativeElement) {\n\t\t\t\tthis._isActive = false;\n\t\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t\t\tthis.onOutsideClick.next();\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-flush');\n\t}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormInputDirective, FormLabelDirective, FormSelectDirective } from '../../../directives';\nimport { FormErrorsComponent } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\tselected?: boolean;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective],\n})\nexport class FormInputComponent {\n\t@Input({ required: true }) control!: FormControl;\n\t@Input() inputType: string = 'text';\n\t@Input({ required: true }) inputLabel!: string;\n\t@Input() inputPlaceholder?: string;\n\t@Input() inputId?: string;\n\t@Input({ required: true }) inputName!: string;\n\t@Input() inputTabIndex?: string;\n\t@Input() isSubmitted: boolean = false;\n\t@Input() selectOptions: ISelectOptions[] = [];\n\t@Input() hintText: string = '';\n\n\t@Output() onEnter: EventEmitter<void> = new EventEmitter();\n\t@Output() onChange: EventEmitter<Event> = new EventEmitter();\n\n\thandleSelect(event: Event): void {\n\t\tthis.onChange.next(event);\n\t}\n}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n","import { Component } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faSpinner, IconDefinition } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n\tselector: 'app-loading-indicator',\n\ttemplateUrl: './loading-indicator.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #495057;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule],\n})\nexport class LoadingIndicatorComponent {\n\tfaSpinner: IconDefinition = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\tstandalone: true,\n\timports: [CommonModule, IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Input() set fullScreen(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.dialogCssClasses.push(`modal-fullscreen`);\n\t\t} else {\n\t\t\tthis.dialogCssClasses = this.dialogCssClasses.removeBy((cssClass) => cssClass, 'modal-fullscreen');\n\t\t}\n\t}\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tdialogCssClasses: string[] = [];\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n@Component({\n\tselector: 'app-off-canvas',\n\ttemplateUrl: './off-canvas.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule, IconButtonDirective],\n})\nexport class OffCanvasComponent {\n\t@Input() title: string = '';\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-toast',\n\ttemplate: `\n\t\t<div class=\"toast align-items-center text-bg-dark border-0 show\">\n\t\t\t<div class=\"d-flex\">\n\t\t\t\t<div class=\"toast-body\" [innerHTML]=\"message\"></div>\n\t\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" (click)=\"onClose.next()\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tbottom: 20px;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%);\n\t\t\tz-index: 1051;\n\t\t}\n\t`,\n\tstandalone: true,\n})\nexport class ToastComponent {\n\t@Input() message?: string;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n}\n","enum SortOrder {\n\tNONE = 0,\n\tASC = 1,\n\tDESC = -1,\n}\n\nconst compareString = (valA: string, valB: string, ascending: boolean | undefined): number => {\n\treturn valA.localeCompare(valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getSortOrder = <T>(valA: T, valB: T): SortOrder => {\n\treturn valA < valB ? SortOrder.DESC : valA === valB ? SortOrder.NONE : SortOrder.ASC;\n};\n\nconst compareNonString = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\treturn getSortOrder(valA, valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getValue = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\tlet result: number = 0;\n\tif (typeof valA === 'string' && typeof valB === 'string') {\n\t\tresult = compareString(valA, valB, ascending);\n\t} else {\n\t\tresult = compareNonString(valA, valB, ascending);\n\t}\n\treturn result;\n};\n\nexport const sortHelper = <T, G>(\n\ta: T,\n\tb: T,\n\tvalueGetter: (a: T) => G,\n\tascending?: boolean,\n): number => {\n\tconst valA: G = valueGetter(a);\n\tconst valB: G = valueGetter(b);\n\treturn getValue(valA, valB, ascending);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({\n\tname: 'formControl',\n\tstandalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ClipboardService {\n\tcopy(text: string): Promise<void> {\n\t\treturn navigator.clipboard.writeText(text);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport saveAs from 'file-saver';\nimport type { ParseResult, UnparseConfig, UnparseObject } from 'papaparse';\nimport { parse, unparse } from 'papaparse';\n\n@Injectable({ providedIn: 'root' })\nexport class FileService {\n\treadAsText(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsText(file);\n\t\t});\n\t}\n\n\treadAsBinaryString(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsBinaryString(file);\n\t\t});\n\t}\n\n\treadAsDataUrl(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst reader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\treader.onerror = (error): void => reject(error);\n\t\t\treader.readAsDataURL(file);\n\t\t});\n\t}\n\n\tunparse<T>(data: T[] | UnparseObject<T>, config?: UnparseConfig): string {\n\t\treturn unparse(data, config);\n\t}\n\n\tparse<T>(content: string | File): Promise<ParseResult<T>> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tparse(content, {\n\t\t\t\theader: true,\n\t\t\t\tcomplete: (results: ParseResult<T>) => resolve(results),\n\t\t\t\terror: (err: Error) => reject(err),\n\t\t\t});\n\t\t});\n\t}\n\n\tgetFileExtension(filename: string): string {\n\t\tlet result: string = '-';\n\t\tif (/[.]/.exec(filename)) {\n\t\t\tconst regexp: RegExpExecArray | null = /[^.]+$/.exec(filename);\n\t\t\tresult = `.${regexp?.[0]}`;\n\t\t}\n\t\treturn result;\n\t}\n\n\tsaveAs(content: BlobPart, fileName: string, fileType: string): void {\n\t\tconst blob: Blob = new Blob([content], { type: fileType });\n\t\tsaveAs(blob, fileName, { autoBom: true });\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingIndicatorService {\n\tshow: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n\thide: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tconst local: string | null = localStorage.getItem(key);\n\t\tif (local) {\n\t\t\tresult = JSON.parse(local);\n\t\t}\n\t\treturn result;\n\t}\n\n\tset<T>(key: string, val: T): void {\n\t\tlocalStorage.setItem(key, JSON.stringify(val));\n\t}\n\n\tremove(key: string): void {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tremoveAll(): void {\n\t\tlocalStorage.clear();\n\t}\n}\n","import { ComponentType, DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tprivate viewContainerRef?: ViewContainerRef;\n\tprivate portalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal: TemplatePortal = new TemplatePortal(templateRef, this.viewContainerRef);\n\t\t\tthis.portalHost.attach(newPortal);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\tshowComponent<T extends BaseModalComponent>(component: ComponentType<T>): ComponentRef<T> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createComponent(component);\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tprivate readonly componentFactoryResolver: ComponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.portalHost.hasAttached()) {\n\t\t\t\tthis.portalHost.detach();\n\t\t\t}\n\n\t\t\tconst componentPortal: ComponentPortal<ToastComponent> = new ComponentPortal(\n\t\t\t\tToastComponent,\n\t\t\t\tthis.viewContainerRef,\n\t\t\t\tnull,\n\t\t\t\tthis.componentFactoryResolver\n\t\t\t);\n\t\t\tconst componentRef: ComponentRef<ToastComponent> = this.portalHost.attachComponentPortal(componentPortal);\n\t\t\tcomponentRef.instance.message = message;\n\t\t\tcomponentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.hide();\n\t\t\t}, timeout);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalService } from './local.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class TokenService {\n\tconstructor(private localService: LocalService) {}\n\n\tget(key: 'accesstoken' | 'refreshtoken'): string | null {\n\t\treturn this.localService.get<string>(key);\n\t}\n\n\tset(key: 'accesstoken' | 'refreshtoken', token: string): void {\n\t\tthis.localService.set(key, token);\n\t}\n\n\tremove(key: 'accesstoken' | 'refreshtoken'): void {\n\t\tthis.localService.remove(key);\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ImageService {\n\tcompress(imageBase64: string, quality: number = 0.8, fileType: string = 'image/jpeg'): Promise<string> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => {\n\t\t\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\t\t\tthis.drawImage(canvas, img);\n\t\t\t\tresolve(canvas.toDataURL(fileType, quality));\n\t\t\t};\n\t\t\timg.onerror = (event: string | Event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\ttoBlob(imageBase64: string, quality: number = 1, fileType: string = 'image/jpeg'): Promise<Blob> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => {\n\t\t\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\t\t\tthis.drawImage(canvas, img);\n\t\t\t\tcanvas.toBlob(\n\t\t\t\t\tblob => {\n\t\t\t\t\t\tif (blob) {\n\t\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject('Error on converting image to blob');\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfileType,\n\t\t\t\t\tquality\n\t\t\t\t);\n\t\t\t};\n\t\t\timg.onerror = (event: string | Event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\tprivate createCanvas(): HTMLCanvasElement {\n\t\treturn document.createElement('canvas');\n\t}\n\n\tprivate drawImage(canvas: HTMLCanvasElement, img: HTMLImageElement): void {\n\t\tconst context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n\t\tcanvas.width = img.width;\n\t\tcanvas.height = img.height;\n\t\tcontext.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t}\n}\n","import { sortHelper } from '../helpers';\nimport { IDictionary } from '../interfaces';\n\nexport {};\n\ndeclare global {\n\tinterface Array<T> {\n\t\tgroupBy(valueGetter: (a: T) => string): IDictionary<T[]>;\n\t\tremoveBy<T, G>(valueGetter: (a: T) => G, val: G): T[];\n\t\torderBy<T, G>(valueGetter: (a: T) => G, ascending?: boolean): T[];\n\t\tfilterBy<G>(key?: string): G[];\n\t\tdistinct<T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[];\n\t}\n}\n\nArray.prototype.groupBy = function <T>(valueGetter: (a: T) => string): IDictionary<T> {\n\treturn this.reduce((curr, obj) => {\n\t\tconst key: string = valueGetter(obj);\n\t\t(curr[key] = curr[key] || []).push(obj);\n\t\treturn curr;\n\t}, {});\n};\n\nArray.prototype.removeBy = function <T, G>(valueGetter: (a: T) => G, val: G): T[] {\n\treturn this.filter((curr) => {\n\t\tconst key: G = valueGetter(curr);\n\t\t// change to split to remove only first item found\n\t\treturn key !== val;\n\t});\n};\n\nArray.prototype.orderBy = function <T, G>(valueGetter: (a: T) => G, ascending: boolean = true): T[] {\n\tthis?.sort((a, b) => sortHelper(a, b, valueGetter, ascending));\n\treturn this;\n};\n\nArray.prototype.filterBy = function <T>(key?: string): T[] {\n\treturn this.filter((a) => {\n\t\tlet result: boolean = false;\n\t\tif (key && a[key]) {\n\t\t\tresult = a[key] === key;\n\t\t} else {\n\t\t\tresult = a === key;\n\t\t}\n\t\treturn result;\n\t});\n};\n\nArray.prototype.distinct = function <T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[] {\n\tconst thisAsArray: T[] = this as T[];\n\tconst result: T[] = comparator\n\t\t? thisAsArray.filter((value, index, array) => array.findIndex((o) => comparator(o, value)) === index)\n\t\t: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);\n\treturn result;\n};\n","import type { ConfigType, ManipulateType, OpUnitType, UnitType } from 'dayjs';\nimport dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\ndayjs.extend(localizedFormat);\n\ndeclare global {\n\tinterface Date {\n\t\tisAfter(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tisBefore(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tformat(template?: string): string;\n\t\tisValid(): boolean;\n\t\tadd(value: number, unit?: ManipulateType): Date;\n\t\tsubtract(value: number, unit?: ManipulateType): Date;\n\t\tfirstDayOfMonth(): Date;\n\t\tlastDayOfMonth(): Date;\n\t\tset(unit: UnitType, value: number): Date;\n\t\tdiff(date: Date, unit?: UnitType): number;\n\t}\n}\n\nDate.prototype.isAfter = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isAfter(date, unit);\n};\n\nDate.prototype.isBefore = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isBefore(date, unit);\n};\n\nDate.prototype.format = function (template?: string): string {\n\treturn dayjs(this).format(template);\n};\n\nDate.prototype.isValid = function (): boolean {\n\treturn dayjs(this).isValid();\n};\n\nDate.prototype.add = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).add(value, unit).toDate();\n};\n\nDate.prototype.subtract = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).subtract(value, unit).toDate();\n};\n\nDate.prototype.firstDayOfMonth = function (): Date {\n\treturn dayjs(this).startOf('month').toDate();\n};\n\nDate.prototype.lastDayOfMonth = function (): Date {\n\treturn dayjs(this).endOf('month').toDate();\n};\n\nDate.prototype.set = function (unit: UnitType, value: number): Date {\n\treturn dayjs(this).set(unit, value).toDate();\n};\n\nDate.prototype.diff = function (date: Date, unit?: UnitType): number {\n\treturn dayjs(this).diff(date, unit);\n};\n","export {};\n\ndeclare global {\n\tinterface String {\n\t\tcapitalize(): string;\n\t}\n}\n\nString.prototype.capitalize = function (): string {\n\treturn this.charAt(0).toUpperCase() + this.slice(1);\n};\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function dateAfterValidator(startDateControlKey: string): (control: AbstractControl) => ValidationErrors | null {\n\treturn (endDateControl: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<UnknownObject> | FormArray<UnknownObject> | null = endDateControl.parent;\n\t\tif (formGroup) {\n\t\t\tconst startDate: string = formGroup.get(startDateControlKey)?.value;\n\t\t\tconst endDate: string = endDateControl.value;\n\n\t\t\tif (!startDate || !endDate) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tconst start: Date = new Date(startDate);\n\t\t\t\tconst end: Date = new Date(endDate);\n\n\t\t\t\tresult = start < end ? null : { dateAfterInvalid: true, startDateValue: startDate };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function matchValidator(toMatchControlKey: string): (control: AbstractControl) => ValidationErrors | null {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<UnknownObject> | FormArray<UnknownObject> | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst toMatchValue: UnknownObject = formGroup.get(toMatchControlKey)?.value;\n\t\t\tconst currentValue: UnknownObject = control.value;\n\n\t\t\tif (!toMatchValue || !currentValue) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tresult = toMatchValue === currentValue ? null : { match: true };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function timeAfterValidator(startTimeControlKey: string): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<UnknownObject> | FormArray<UnknownObject> | null = control.parent;\n\n\t\tif (formGroup) {\n\t\t\tconst startTimeControl: AbstractControl | null = formGroup.get(startTimeControlKey);\n\t\t\tif (startTimeControl) {\n\t\t\t\tif (!control.value || !startTimeControl.value) {\n\t\t\t\t\tresult = null; // Keine Validierung, wenn entweder Start- oder Endzeit fehlt\n\t\t\t\t}\n\n\t\t\t\tconst startTime: string = startTimeControl.value;\n\t\t\t\tconst endTime: string = control.value;\n\n\t\t\t\t// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)\n\t\t\t\tconst startMinutes: number = convertToMinutes(startTime);\n\t\t\t\tconst endMinutes: number = convertToMinutes(endTime);\n\t\t\t\tif (endMinutes <= startMinutes) {\n\t\t\t\t\tresult = { timeAfterError: startTimeControl.value };\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n\n// Funktion zur Umwandlung von Zeit in Minuten\nfunction convertToMinutes(time: string): number {\n\tconst [hours, minutes] = time.split(':').map(Number);\n\treturn hours * 60 + minutes;\n}\n","/*\n * Public API Surface of ngx-gccb\n */\n\n// export * from './lib/ngx-gccb.component';\n// export * from './lib/ngx-gccb.service';\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/helpers';\nexport * from './lib/interfaces';\nexport * from './lib/pipe';\nexport * from './lib/services';\nexport * from './lib/typings';\nexport * from './lib/validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.LocalService"],"mappings":";;;;;;;;;;;;;;;;;;AAEa,MAAA,kBAAkB,GAA6B,OAAO,CAAC,oBAAoB,EAAE;AACzF,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACjJ,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAA;;ACHY,MAAA,aAAa,GAA6B,OAAO,CAAC,eAAe,EAAE;AAC/E,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACjJ,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAA;;ACLD;AACA;MAUa,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAOC,QAAA,IAAA,CAAA,WAAW,GAAS,IAAI,IAAI,EAAE,CAAC;AAgB/B,KAAA;IAdA,QAAQ,GAAA;QACP,MAAM,eAAe,GAAS,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;;QAGjE,MAAM,SAAS,GAAW,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACtH,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,KAAK,GAAc,EAAE,CAAC;AAE5B,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;;;SAG5C;KACD;+GAhBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXhC,eACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQW,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAEf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,eAAA,EAAA,CAAA;;AAqBxB,IAAK,SAQJ,CAAA;AARD,CAAA,UAAK,SAAS,EAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAY,CAAA;AACZ,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAY,CAAA;AACZ,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAe,CAAA;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;AACd,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAY,CAAA;AACZ,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;AACf,CAAC,EARI,SAAS,KAAT,SAAS,GAQb,EAAA,CAAA,CAAA,CAAA;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,cAAyB,EAAA;;;AAI3E,IAAA,MAAM,cAAc,GAAc,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC;IACrE,MAAM,YAAY,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,WAAW,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,mBAAmB,GAAW,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAW,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9E,IAAA,MAAM,IAAI,GAAW,YAAY,GAAG,mBAAmB,CAAC;IAExD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAC5B;;MElCa,mBAAmB,CAAA;AAdhC,IAAA,WAAA,GAAA;QAeU,IAAM,CAAA,MAAA,GAA4B,IAAI,CAAC;;QAGhD,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;AAkB7B,QAAA,IAAA,CAAA,sBAAsB,GAAkB;AACvC,YAAA,QAAQ,EAAE,MAAM,mBAAmB;AACnC,YAAA,YAAY,EAAE,MAAM,mBAAmB;AACvC,YAAA,KAAK,EAAE,MAAM,gBAAgB;AAC7B,YAAA,GAAG,EAAE,CAAC,MAAwB,KAAK,CAAY,SAAA,EAAA,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAA0B,wBAAA,CAAA;AACtG,YAAA,SAAS,EAAE,CAAC,MAAwB,KAAK,CAAY,SAAA,EAAA,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,CAA0B,wBAAA,CAAA;AAClH,YAAA,GAAG,EAAE,CAAC,MAAwB,KAAK,CAAc,WAAA,EAAA,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAAsB,oBAAA,CAAA;AACpG,YAAA,SAAS,EAAE,CAAC,MAAwB,KAAK,CAAc,WAAA,EAAA,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,CAAsB,oBAAA,CAAA;AAChH,YAAA,OAAO,EAAE,MAAM,CAA8B,4BAAA,CAAA;AAC7C,YAAA,gBAAgB,EAAE,CAAC,MAAwB,KAAK,CAAsB,mBAAA,EAAA,MAAM,GAAG,gBAAgB,CAAC,CAAE,CAAA;AAClG,YAAA,KAAK,EAAE,MAAM,CAAuB,qBAAA,CAAA;AACpC,YAAA,cAAc,EAAE,CAAC,MAAwB,KAAK,CAA0B,uBAAA,EAAA,MAAM,GAAG,gBAAgB,CAAC,CAAE,CAAA;SACpG,CAAC;AACF,KAAA;AA7BA,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACtB,MAAM,aAAa,GAAqB,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;YACxE,MAAM,YAAY,GAAqB,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC;AAEtE,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;AACnE,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,oBAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;AACrC,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;qBACxE;iBACD;aACD;SACD;KACD;+GApBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAZrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,CAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,iBAAA,CAAA;8BAES,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MCbM,eAAe,CAAA;AAJ5B,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,UAAU,GAAkC,MAAM,EAAC,UAA6B,EAAC,CAAC;AAClF,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAQ,CAAA,QAAA,GAAW,WAAW,CAAC;AAwC/B,KAAA;IAtCmC,OAAO,GAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACtB;IAEiC,MAAM,GAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACvB;IAED,IAAI,SAAS,CAAC,GAAY,EAAA;QACzB,IAAI,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;SACxE;aAAM;AACN,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;SAC3E;KACD;IAED,IAAyB,SAAS,CAAC,GAAW,EAAA;AAC7C,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,SAAS,CAAC;KAC9B;IAED,IAAa,OAAO,CAAC,GAAqC,EAAA;AACzD,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;KACpB;IAED,IAAa,IAAI,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,CAAA,CAAE,CAAC,CAAC;KAClE;IAED,QAAQ,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC5D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;SAClF;aAAM;AACN,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;SACjE;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;KAC5E;+GA3CW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAOmC,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAIC,MAAM,EAAA,CAAA;sBAAvC,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAYP,SAAS,EAAA,CAAA;sBAAjC,KAAK;uBAAC,YAAY,CAAA;gBAIN,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;;;AClCP;MAMa,YAAY,CAAA;AAJzB,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,EAAE,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAA,IAAA,GAAW,KAAK,CAAC;AAWrB,KAAA;IATA,IAAa,GAAG,CAAC,GAAkB,EAAA;QAClC,IAAI,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;SAChB;KACD;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,EAAE,CAAC,aAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChE;+GAZW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAKa,GAAG,EAAA,CAAA;sBAAf,KAAK;;;MCLM,iBAAiB,CAAA;AAe7B,IAAA,WAAA,GAAA;QAbS,IAAS,CAAA,SAAA,GAAc,cAAc,CAAC;AAE9B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,aAAa,GAAqB,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAIpE,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QAM1C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7D;IAED,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACxD,MAAM,MAAM,GAAkB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;AACvE,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC9E;KACD;IAGD,cAAc,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;aAAM;YACN,IAAI,CAAC,YAAY,EAAE,CAAC;SACpB;KACD;IAEO,YAAY,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,EAAE;AACjD,YAAA,MAAM,YAAY,GAAmC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClH,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAErE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAEhC,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,eAAgB,EAAE;gBAC9E,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,gBAAA,SAAS,EAAE;AACV,oBAAA;AACC,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,OAAO,EAAE;AACR,4BAAA,MAAM,EAAE,CAAC,EAAE,SAAS,EAAiB,KAAc;AAClD,gCAAA,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oCACnC,OAAO,CAAC,CAAC,EAAE,CAAE,IAAI,CAAC,cAAc,EAAE,YAAuB,CAAC,CAAC;iCAC3D;AACD,gCAAA,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oCAChC,OAAO,CAAC,CAAC,EAAE,CAAE,IAAI,CAAC,cAAc,EAAE,YAAuB,CAAC,CAAC;iCAC3D;AACD,gCAAA,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oCACjC,OAAO,CAAC,CAAC,EAAE,CAAE,IAAI,CAAC,cAAc,EAAE,WAAsB,CAAC,CAAC;iCAC1D;AACD,gCAAA,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;6BACd;AACD,yBAAA;AACD,qBAAA;AACD,oBAAA;AACC,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,OAAO,EAAE;AACR,4BAAA,kBAAkB,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC;AAC9D,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,OAAO,EAAE,CAAC;AACV,yBAAA;AACD,qBAAA;AACD,oBAAA;AACC,wBAAA,IAAI,EAAE,iBAAiB;AACvB,wBAAA,OAAO,EAAE;AACR,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,OAAO,EAAE,CAAC;AACV,4BAAA,MAAM,EAAE,KAAK;AACb,yBAAA;AACD,qBAAA;AACD,iBAAA;AACD,aAAA,CAAC,CAAC;SACH;QAED,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC9B;IAEO,aAAa,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;SAC/B;QACD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAC/B;AAEO,IAAA,eAAe,CAAC,KAAiB,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;YAChJ,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;KACD;IAEO,wBAAwB,GAAA;QAC/B,MAAM,KAAK,GAAoC,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACxG,QAAA,KAAK,EAAE,OAAO,CAAC,IAAI,IAAG;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAK;gBACxC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAC,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;+GAjHW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;wDAEsB,gBAAgB,EAAA,CAAA;sBAArC,KAAK;uBAAC,aAAa,CAAA;gBACX,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBA4BN,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;MC9BT,kBAAkB,CAAA;AAJ/B,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,EAAC,UAAuB,EAAC,CAAC;AAavF,KAAA;IAXA,IAAa,gBAAgB,CAAC,GAAY,EAAA;AACzC,QAAA,IAAI,GAAG,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC1D;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7D;KACD;IAED,QAAQ,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KAC5D;+GAbW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAIa,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;;;MCHM,kBAAkB,CAAA;AAJ/B,IAAA,WAAA,GAAA;QAMC,IAAY,CAAA,YAAA,GAAW,YAAY,CAAC;AACpC,KAAA;+GAHY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAGA,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,OAAO,CAAA;;;MCDR,mBAAmB,CAAA;AAJhC,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,EAAC,UAAuB,EAAC,CAAC;AAavF,KAAA;IAXA,IAAa,gBAAgB,CAAC,GAAY,EAAA;AACzC,QAAA,IAAI,GAAG,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC1D;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7D;KACD;IAED,QAAQ,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAC3D;+GAbW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAIa,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;;;MCHM,mBAAmB,CAAA;AAJhC,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,UAAU,GAAkC,MAAM,EAAC,UAA6B,EAAC,CAAC;AAmBnG,KAAA;IAhBA,IAA8B,aAAa,CAAC,GAAW,EAAA;AACtD,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,SAAS,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;KACzE;IAED,IAAa,MAAM,CAAC,GAAY,EAAA;QAC/B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SACzD;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC5D;KACD;IAED,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;KAClE;+GAnBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAK8B,aAAa,EAAA,CAAA;sBAA1C,KAAK;uBAAC,iBAAiB,CAAA;gBAKX,MAAM,EAAA,CAAA;sBAAlB,KAAK;;;MCTM,4BAA4B,CAAA;AAJzC,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,UAAU,GAAiC,MAAM,EAAC,UAA4B,EAAC,CAAC;AAKjG,KAAA;IAHA,QAAQ,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;KACtE;+GALW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;;;MCCY,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAiC,MAAM,EAAC,UAA4B,EAAC,CAAC;QAEjG,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAUjB,QAAA,IAAA,CAAA,cAAc,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAexE,KAAA;IAxBA,IAAa,QAAQ,CAAC,GAAY,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,GAAG,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SAC5D;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC/D;KACD;IAID,QAAQ,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAExF,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;YACpD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC/C,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/D,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;aAC3B;AACF,SAAC,CAAC,CAAC;KACH;+GA5BW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAMa,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBASI,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MCdK,kBAAkB,CAAA;AAJ/B,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,UAAU,GAAiC,MAAM,EAAC,UAA4B,EAAC,CAAC;AAMjG,KAAA;IAJA,QAAQ,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;KAChE;+GANW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;;;MCaY,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;QAQU,IAAS,CAAA,SAAA,GAAW,MAAM,CAAC;QAM3B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAqB,EAAE,CAAC;QACrC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AAErB,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,QAAQ,GAAwB,IAAI,YAAY,EAAE,CAAC;AAK7D,KAAA;AAHA,IAAA,YAAY,CAAC,KAAY,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;+GAjBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB/B,y5DAgEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhDW,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEnG,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAEd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,y5DAAA,EAAA,CAAA;8BAGrF,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACqB,UAAU,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACqB,SAAS,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEZK,yBAAyB,CAAA;AAftC,IAAA,WAAA,GAAA;QAgBC,IAAS,CAAA,SAAA,GAAmB,SAAS,CAAC;AACtC,KAAA;+GAFY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBtC,2EACA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDgBW,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEf,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAfrC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAErB,UAAA,EAAA,IAAI,EAUP,OAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA,CAAA;;;MEVhB,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0EAHpB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAGA,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAE,CAAA;AACZ,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;;;MCMY,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;QAOU,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAUzB,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAE,CAAC;QAE3D,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAChC,IAAO,CAAA,OAAA,GAAmB,OAAO,CAAC;AAKlC,KAAA;IAhBA,IAAa,UAAU,CAAC,GAAY,EAAA;AACnC,QAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA,gBAAA,CAAkB,CAAC,CAAC;SAC/C;aAAM;AACN,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,kBAAkB,CAAC,CAAC;SACnG;KACD;IAOD,gBAAgB,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACpB;+GAnBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,oLCZ3B,owBAuBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDbW,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0GAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAElD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACC,WAAW,EAAA,UAAA,EAET,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,owBAAA,EAAA,CAAA;8BAGtD,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAQI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MERK,kBAAkB,CAAA;AAZ/B,IAAA,WAAA,GAAA;QAaU,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAE,CAAC;QAE3D,IAAO,CAAA,OAAA,GAAmB,OAAO,CAAC;AAKlC,KAAA;IAHA,gBAAgB,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACpB;+GARW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EChB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wfAWA,EDGW,MAAA,EAAA,CAAA,qCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,+PAAE,mBAAmB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEpC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAEd,IAAI,EAAA,OAAA,EAOP,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,wfAAA,EAAA,MAAA,EAAA,CAAA,qCAAA,CAAA,EAAA,CAAA;8BAGxC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEKK,cAAc,CAAA;AArB3B,IAAA,WAAA,GAAA;AAuBW,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAE,CAAC;AAC3D,KAAA;+GAHY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAnBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;AAOT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAYW,cAAc,EAAA,UAAA,EAAA,CAAA;kBArB1B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACX,QAAA,EAAA,CAAA;;;;;;;AAOT,CAAA,CAAA,EAAA,UAAA,EAUW,IAAI,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,CAAA;8BAGP,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;ACzBR,IAAK,SAIJ,CAAA;AAJD,CAAA,UAAK,SAAS,EAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,SAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,MAAS,CAAA;AACV,CAAC,EAJI,SAAS,KAAT,SAAS,GAIb,EAAA,CAAA,CAAA,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,SAA8B,KAAY;IAC5F,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAI,IAAO,EAAE,IAAO,KAAe;IACvD,OAAO,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAI,IAAO,EAAE,IAAO,EAAE,SAA8B,KAAY;IACxF,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAI,IAAO,EAAE,IAAO,EAAE,SAA8B,KAAY;IAChF,IAAI,MAAM,GAAW,CAAC,CAAC;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACzD,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACN,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;KACjD;AACD,IAAA,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CACzB,CAAI,EACJ,CAAI,EACJ,WAAwB,EACxB,SAAmB,KACR;AACX,IAAA,MAAM,IAAI,GAAM,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAA,MAAM,IAAI,GAAM,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC;;MC9Ba,eAAe,CAAA;AAC3B,IAAA,SAAS,CAAC,KAAsB,EAAA;AAC/B,QAAA,OAAO,KAA6C,CAAC;KACrD;+GAHW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;;;MCDY,gBAAgB,CAAA;AAC5B,IAAA,IAAI,CAAC,IAAY,EAAA;QAChB,OAAO,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC3C;+GAHW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCEY,WAAW,CAAA;AACvB,IAAA,UAAU,CAAC,IAAU,EAAA;AACpB,QAAA,MAAM,UAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,UAAU,CAAC,MAAM,GAAG,CAAC,KAAgC,KAAU;gBAC9D,OAAO,CAAC,KAAK,CAAC,CAAC;AAChB,aAAC,CAAC;AACF,YAAA,UAAU,CAAC,OAAO,GAAG,CAAC,KAAgC,KAAU;gBAC/D,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,aAAC,CAAC;AACF,YAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;KACH;AAED,IAAA,kBAAkB,CAAC,IAAU,EAAA;AAC5B,QAAA,MAAM,UAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,UAAU,CAAC,MAAM,GAAG,CAAC,KAAgC,KAAU;gBAC9D,OAAO,CAAC,KAAK,CAAC,CAAC;AAChB,aAAC,CAAC;AACF,YAAA,UAAU,CAAC,OAAO,GAAG,CAAC,KAAgC,KAAU;gBAC/D,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,aAAC,CAAC;AACF,YAAA,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACH;AAED,IAAA,aAAa,CAAC,IAAU,EAAA;AACvB,QAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;QAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,KAAgC,KAAU;gBAC1D,OAAO,CAAC,KAAK,CAAC,CAAC;AAChB,aAAC,CAAC;AACF,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAW,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACH;IAED,OAAO,CAAI,IAA4B,EAAE,MAAsB,EAAA;AAC9D,QAAA,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC7B;AAED,IAAA,KAAK,CAAI,OAAsB,EAAA;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACtC,KAAK,CAAC,OAAO,EAAE;AACd,gBAAA,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC,OAAuB,KAAK,OAAO,CAAC,OAAO,CAAC;gBACvD,KAAK,EAAE,CAAC,GAAU,KAAK,MAAM,CAAC,GAAG,CAAC;AAClC,aAAA,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QAChC,IAAI,MAAM,GAAW,GAAG,CAAC;AACzB,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,MAAM,GAA2B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;SAC3B;AACD,QAAA,OAAO,MAAM,CAAC;KACd;AAED,IAAA,MAAM,CAAC,OAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAA;AAC3D,QAAA,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1C;+GAhEW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cADE,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEC,QAAA,IAAA,CAAA,IAAI,GAA0B,IAAI,eAAe,CAAO,SAAS,CAAC,CAAC;AACnE,QAAA,IAAA,CAAA,IAAI,GAA0B,IAAI,eAAe,CAAO,SAAS,CAAC,CAAC;AACnE,KAAA;+GAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCArB,YAAY,CAAA;AACxB,IAAA,GAAG,CAAI,GAAW,EAAA;QACjB,IAAI,MAAM,GAAa,IAAI,CAAC;QAC5B,MAAM,KAAK,GAAkB,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE;AACV,YAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B;AACD,QAAA,OAAO,MAAM,CAAC;KACd;IAED,GAAG,CAAI,GAAW,EAAE,GAAM,EAAA;AACzB,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;AACjB,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC7B;IAED,SAAS,GAAA;QACR,YAAY,CAAC,KAAK,EAAE,CAAC;KACrB;+GApBW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCGrB,YAAY,CAAA;AAIxB,IAAA,IAAI,CAAC,gBAAkC,EAAA;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KACzC;AAED,IAAA,YAAY,CAAC,WAAiC,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1B,MAAM,SAAS,GAAmB,IAAI,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzF,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAClC;aAAM;AACN,YAAA,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC3C;KACD;AAED,IAAA,aAAa,CAA+B,SAA2B,EAAA;AACtE,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC3B,YAAA,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;KACxD;IAED,IAAI,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KACzB;+GA3BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCCrB,YAAY,CAAA;AADzB,IAAA,WAAA,GAAA;AAEkB,QAAA,IAAA,CAAA,wBAAwB,GAA6B,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAsCvG,KAAA;AAlCA,IAAA,IAAI,CAAC,gBAAkC,EAAA;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KACzC;AAED,IAAA,IAAI,CAAC,OAAe,EAAE,OAAA,GAAkB,IAAI,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;AAClC,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aACzB;AAED,YAAA,MAAM,eAAe,GAAoC,IAAI,eAAe,CAC3E,cAAc,EACd,IAAI,CAAC,gBAAgB,EACrB,IAAI,EACJ,IAAI,CAAC,wBAAwB,CAC7B,CAAC;YACF,MAAM,YAAY,GAAiC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAC1G,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;YACxC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;gBAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,aAAC,CAAC,CAAC;YAEH,UAAU,CAAC,MAAK;gBACf,IAAI,CAAC,IAAI,EAAE,CAAC;aACZ,EAAE,OAAO,CAAC,CAAC;SACZ;aAAM;AACN,YAAA,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC3C;KACD;IAED,IAAI,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KACzB;+GAtCW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCErB,YAAY,CAAA;AACxB,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;KAAI;AAElD,IAAA,GAAG,CAAC,GAAmC,EAAA;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;KAC1C;IAED,GAAG,CAAC,GAAmC,EAAE,KAAa,EAAA;QACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC;AAED,IAAA,MAAM,CAAC,GAAmC,EAAA;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC9B;+GAbW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCFY,YAAY,CAAA;AACxB,IAAA,QAAQ,CAAC,WAAmB,EAAE,UAAkB,GAAG,EAAE,WAAmB,YAAY,EAAA;QACnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,MAAM,GAAG,GAAqB,IAAI,KAAK,EAAE,CAAC;AAC1C,YAAA,GAAG,CAAC,MAAM,GAAG,MAAW;AACvB,gBAAA,MAAM,MAAM,GAAsB,IAAI,CAAC,YAAY,EAAE,CAAC;AACtD,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9C,aAAC,CAAC;AACF,YAAA,GAAG,CAAC,OAAO,GAAG,CAAC,KAAqB,KAAW,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7D,YAAA,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;KACH;AAED,IAAA,MAAM,CAAC,WAAmB,EAAE,UAAkB,CAAC,EAAE,WAAmB,YAAY,EAAA;QAC/E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,MAAM,GAAG,GAAqB,IAAI,KAAK,EAAE,CAAC;AAC1C,YAAA,GAAG,CAAC,MAAM,GAAG,MAAW;AACvB,gBAAA,MAAM,MAAM,GAAsB,IAAI,CAAC,YAAY,EAAE,CAAC;AACtD,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5B,gBAAA,MAAM,CAAC,MAAM,CACZ,IAAI,IAAG;oBACN,IAAI,IAAI,EAAE;wBACT,OAAO,CAAC,IAAI,CAAC,CAAC;qBACd;yBAAM;wBACN,MAAM,CAAC,mCAAmC,CAAC,CAAC;qBAC5C;AACF,iBAAC,EACD,QAAQ,EACR,OAAO,CACP,CAAC;AACH,aAAC,CAAC;AACF,YAAA,GAAG,CAAC,OAAO,GAAG,CAAC,KAAqB,KAAW,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7D,YAAA,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;KACH;IAEO,YAAY,GAAA;AACnB,QAAA,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KACxC;IAEO,SAAS,CAAC,MAAyB,EAAE,GAAqB,EAAA;QACjE,MAAM,OAAO,GAA6B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;AACnE,QAAA,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AACzB,QAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC3B,QAAA,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;KAC1D;+GA9CW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACalC,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,UAAa,WAA6B,EAAA;IACnE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AAChC,QAAA,MAAM,GAAG,GAAW,WAAW,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,QAAA,OAAO,IAAI,CAAC;KACZ,EAAE,EAAE,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAgB,WAAwB,EAAE,GAAM,EAAA;AAC1E,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC3B,QAAA,MAAM,GAAG,GAAM,WAAW,CAAC,IAAI,CAAC,CAAC;;QAEjC,OAAO,GAAG,KAAK,GAAG,CAAC;AACpB,KAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,UAAgB,WAAwB,EAAE,SAAA,GAAqB,IAAI,EAAA;IAC5F,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,IAAA,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAa,GAAY,EAAA;AACnD,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;QACxB,IAAI,MAAM,GAAY,KAAK,CAAC;AAC5B,QAAA,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;SACxB;aAAM;AACN,YAAA,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC;SACnB;AACD,QAAA,OAAO,MAAM,CAAC;AACf,KAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAa,UAAsD,EAAA;IAC7F,MAAM,WAAW,GAAQ,IAAW,CAAC;IACrC,MAAM,MAAM,GAAQ,UAAU;AAC7B,UAAE,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC;UACnG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC/E,IAAA,OAAO,MAAM,CAAC;AACf,CAAC;;ACnDD,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAiB9B,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,IAAsB,EAAE,IAAuB,EAAA;IACjF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,IAAsB,EAAE,IAAuB,EAAA;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,QAAiB,EAAA;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,YAAA;AACxB,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,KAAa,EAAE,IAAqB,EAAA;AAClE,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,KAAa,EAAE,IAAqB,EAAA;AACvE,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,YAAA;AAChC,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,YAAA;AAC/B,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,IAAc,EAAE,KAAa,EAAA;AAC3D,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAU,EAAE,IAAe,EAAA;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;;AClDD,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,YAAA;AAC7B,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;;ACRK,SAAU,kBAAkB,CAAC,mBAA2B,EAAA;IAC7D,OAAO,CAAC,cAA+B,KAA6B;QACnE,IAAI,MAAM,GAA4B,IAAI,CAAC;AAE3C,QAAA,MAAM,SAAS,GAA+D,cAAc,CAAC,MAAM,CAAC;QACpG,IAAI,SAAS,EAAE;YACd,MAAM,SAAS,GAAW,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;AACpE,YAAA,MAAM,OAAO,GAAW,cAAc,CAAC,KAAK,CAAC;AAE7C,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;gBAC3B,MAAM,GAAG,IAAI,CAAC;aACd;iBAAM;AACN,gBAAA,MAAM,KAAK,GAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,gBAAA,MAAM,GAAG,GAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEpC,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;aACpF;SACD;AACD,QAAA,OAAO,MAAM,CAAC;AACf,KAAC,CAAC;AACH;;ACpBM,SAAU,cAAc,CAAC,iBAAyB,EAAA;IACvD,OAAO,CAAC,OAAwB,KAA6B;QAC5D,IAAI,MAAM,GAA4B,IAAI,CAAC;AAE3C,QAAA,MAAM,SAAS,GAA+D,OAAO,CAAC,MAAM,CAAC;QAC7F,IAAI,SAAS,EAAE;YACd,MAAM,YAAY,GAAkB,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;AAC5E,YAAA,MAAM,YAAY,GAAkB,OAAO,CAAC,KAAK,CAAC;AAElD,YAAA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE;gBACnC,MAAM,GAAG,IAAI,CAAC;aACd;iBAAM;AACN,gBAAA,MAAM,GAAG,YAAY,KAAK,YAAY,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAChE;SACD;AACD,QAAA,OAAO,MAAM,CAAC;AACf,KAAC,CAAC;AACH;;ACjBM,SAAU,kBAAkB,CAAC,mBAA2B,EAAA;IAC7D,OAAO,CAAC,OAAwB,KAA6B;QAC5D,IAAI,MAAM,GAA4B,IAAI,CAAC;AAE3C,QAAA,MAAM,SAAS,GAA+D,OAAO,CAAC,MAAM,CAAC;QAE7F,IAAI,SAAS,EAAE;YACd,MAAM,gBAAgB,GAA2B,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACpF,IAAI,gBAAgB,EAAE;gBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC9C,oBAAA,MAAM,GAAG,IAAI,CAAC;iBACd;AAED,gBAAA,MAAM,SAAS,GAAW,gBAAgB,CAAC,KAAK,CAAC;AACjD,gBAAA,MAAM,OAAO,GAAW,OAAO,CAAC,KAAK,CAAC;;AAGtC,gBAAA,MAAM,YAAY,GAAW,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACzD,gBAAA,MAAM,UAAU,GAAW,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrD,gBAAA,IAAI,UAAU,IAAI,YAAY,EAAE;oBAC/B,MAAM,GAAG,EAAE,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC;iBACpD;aACD;SACD;AACD,QAAA,OAAO,MAAM,CAAC;AACf,KAAC,CAAC;AACH,CAAC;AAED;AACA,SAAS,gBAAgB,CAAC,IAAY,EAAA;AACrC,IAAA,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,IAAA,OAAO,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC;AAC7B;;AClCA;;AAEG;AAEH;AACA;;ACLA;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.html","../../../projects/ngx-gccb/src/lib/components/form/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/col.directive.ts","../../../projects/ngx-gccb/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-input.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-label.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-select.directive.ts","../../../projects/ngx-gccb/src/lib/directives/icon-button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group.directive.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.html","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/modal/base-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.html","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/toast/toast.component.ts","../../../projects/ngx-gccb/src/lib/decorators/class.decorator.ts","../../../projects/ngx-gccb/src/lib/enums/logtype.enum.ts","../../../projects/ngx-gccb/src/lib/decorators/log.decorator.ts","../../../projects/ngx-gccb/src/lib/helpers/sort.helper.ts","../../../projects/ngx-gccb/src/lib/pipe/form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/services/clipboard.service.ts","../../../projects/ngx-gccb/src/lib/services/file.service.ts","../../../projects/ngx-gccb/src/lib/services/image.service.ts","../../../projects/ngx-gccb/src/lib/services/loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/services/local.service.ts","../../../projects/ngx-gccb/src/lib/services/logger.service.ts","../../../projects/ngx-gccb/src/lib/services/modal.service.ts","../../../projects/ngx-gccb/src/lib/services/toast.service.ts","../../../projects/ngx-gccb/src/lib/services/token.service.ts","../../../projects/ngx-gccb/src/lib/typings/array-extension.ts","../../../projects/ngx-gccb/src/lib/typings/date-extension.ts","../../../projects/ngx-gccb/src/lib/typings/string-extensions.ts","../../../projects/ngx-gccb/src/lib/validators/dateAfter.validator.ts","../../../projects/ngx-gccb/src/lib/validators/match.validator.ts","../../../projects/ngx-gccb/src/lib/validators/timeAfter.validator.ts","../../../projects/ngx-gccb/src/public-api.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation: AnimationTriggerMetadata = trigger('fadeRightAnimation', [\n\ttransition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n\ttransition(':enter', [style({ opacity: 0, transform: 'translateY(10px)' }), animate('500ms', style({ opacity: 1, transform: 'translateY(0)' }))]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class DatePickerComponent implements OnInit {\n\tcurrentDate: Date = new Date();\n\n\t// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n\tngOnInit(): void {\n\t\t// const firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();\n\t\t// console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());\n\t\t// const weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);\n\t\t// console.warn(weekCount);\n\t\t// const weeks: unknown[] = [];\n\t\t// for (let i: number = 0; i <= weekCount; i++) {\n\t\t// for(let){\n\t\t// }\n\t\t// }\n\t}\n}\n\nenum DayOfWeek {\n\t'Sunday' = 0,\n\t'Monday' = 1,\n\t'Tuesday' = 2,\n\t'Wednesday' = 3,\n\t'Thursday' = 4,\n\t'Friday' = 5,\n\t'Saturday' = 6,\n}\n\nfunction getWeekCount(year: number, month: number, startDayOfWeek: DayOfWeek): number {\n\t// month_number is in the range 0..11\n\n\t// Get the first day of week week day (0: Sunday, 1: Monday, ...)\n\tconst firstDayOfWeek: DayOfWeek = startDayOfWeek || DayOfWeek.Sunday;\n\tconst firstOfMonth: Date = new Date(year, month, 1);\n\tconst lastOfMonth: Date = new Date(year, month + 1, 0);\n\tconst numberOfDaysInMonth: number = lastOfMonth.getDate();\n\tconst firstWeekDay: number = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n\tconst used: number = firstWeekDay + numberOfDaysInMonth;\n\n\treturn Math.ceil(used / 7);\n}\n","coming soon\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'app-form-errors',\n\ttemplate: `\n\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t@if (errorMessages) {\n\t\t\t\t@for (errorMessage of errorMessages; track $index) {\n\t\t\t\t\t<div>{{ errorMessage }}</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrorsComponent implements OnChanges {\n\t@Input() errors: ValidationErrors | null = null;\n\t// @Input() customErrorMessages?: IErrorMessage; // TODO\n\n\terrorMessages: string[] = [];\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['errors']) {\n\t\t\tconst previousValue: ValidationErrors = changes['errors'].previousValue;\n\t\t\tconst currentValue: ValidationErrors = changes['errors'].currentValue;\n\n\t\t\tif (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n\t\t\t\tthis.errorMessages = [];\n\t\t\t\tfor (const key in currentValue) {\n\t\t\t\t\tif (this.errorMessageDictionary[key]) {\n\t\t\t\t\t\tthis.errorMessages.push(this.errorMessageDictionary[key](currentValue));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\terrorMessageDictionary: IErrorMessage = {\n\t\trequired: () => 'Field is required',\n\t\trequiredTrue: () => 'Field is required',\n\t\temail: () => 'Invalid E-Mail',\n\t\tmin: (errors: ValidationErrors) => `At least ${errors['min']?.requiredLength} characters are required`,\n\t\tminlength: (errors: ValidationErrors) => `At least ${errors['minlength']?.requiredLength} characters are required`,\n\t\tmax: (errors: ValidationErrors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,\n\t\tmaxlength: (errors: ValidationErrors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,\n\t\tpattern: () => `Input does not match pattern`,\n\t\tdateAfterInvalid: (errors: ValidationErrors) => `Date must be after ${errors?.['startDateValue']}`,\n\t\tmatch: () => `Input does not match!`,\n\t\ttimeAfterError: (errors: ValidationErrors) => `The time must be after ${errors?.['timeAfterError']}`,\n\t};\n}\n\ninterface IErrorMessage {\n\t[key: string]: (error: ValidationErrors) => string;\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tcolor!: string;\n\t_variant: string = 'contained';\n\n\t@HostListener('focus', ['$event']) onFocus(): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur(): void {\n\t\tthis.isFocused = false;\n\t}\n\n\tset isFocused(val: boolean) {\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add(`focus-ring-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove(`focus-ring-${this.color}`);\n\t\t}\n\t}\n\n\t@Input('app-button') set appButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t}\n\n\t@Input() set variant(val: 'contained' | 'outline' | 'text') {\n\t\tthis._variant = val;\n\t}\n\n\t@Input() set size(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'sm'}`);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\t\tif (this._variant === 'outline' || this._variant === 'text') {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this._variant}-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\n\t\t}\n\t\tthis.elementRef.nativeElement.classList.add('flex-shrink-0');\n\t\tthis.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n/* experimental */\n\n@Directive({\n\tselector: '[col]',\n\tstandalone: true,\n})\nexport class ColDirective implements AfterViewInit {\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tspan: string = 'col';\n\n\t@Input() set col(val: string | null) {\n\t\tif (val) {\n\t\t\tthis.span = val;\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t(this.el.nativeElement as HTMLElement).classList.add(this.span);\n\t}\n}\n","import { Directive, ElementRef, EmbeddedViewRef, HostListener, inject, Input, OnInit, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appDropdown]',\n\tstandalone: true,\n})\nexport class DropdownDirective implements OnInit {\n\t@Input('appDropdown') dropdownTemplate!: TemplateRef<UnknownObject>;\n\t@Input() placement: Placement = 'bottom-start';\n\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\tprivate wrapperElement!: HTMLElement | null;\n\tprivate dropdownContent!: HTMLElement | null;\n\tprivate isDropdownVisible: boolean = false;\n\tprivate popperInstance?: Instance;\n\n\tprivate documentClickListener!: (event: MouseEvent) => void;\n\n\tconstructor() {\n\t\tthis.documentClickListener = this.onDocumentClick.bind(this);\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.wrapperElement) {\n\t\t\tthis.wrapperElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.wrapperElement, 'dropdown');\n\t\t\tconst parent: UnknownObject = this.elementRef.nativeElement.parentNode;\n\t\t\tthis.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);\n\t\t}\n\t}\n\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\tprivate openDropdown(): void {\n\t\tif (!this.dropdownContent && this.wrapperElement) {\n\t\t\tconst dropdownView: EmbeddedViewRef<UnknownObject> = this.viewContainer.createEmbeddedView(this.dropdownTemplate);\n\t\t\tthis.dropdownContent = dropdownView.rootNodes[0];\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.dropdownContent);\n\n\t\t\tthis.addDropdownLinksListener();\n\n\t\t\tthis.popperInstance = createPopper(this.wrapperElement, this.dropdownContent!, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: ({ placement }: UnknownObject): number[] => {\n\t\t\t\t\t\t\t\tif (placement.startsWith('bottom')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('top')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('left')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetWidth as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [0, 0];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tfallbackPlacements: ['right-start', 'top-start', 'left-start'],\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'preventOverflow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\ttether: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\n\t\tdocument.addEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate closeDropdown(): void {\n\t\tif (this.dropdownContent) {\n\t\t\tthis.viewContainer.clear();\n\t\t\tthis.dropdownContent = null;\n\t\t\tthis.popperInstance?.destroy();\n\t\t}\n\t\tdocument.removeEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate onDocumentClick(event: MouseEvent): void {\n\t\tif (this.wrapperElement && !this.wrapperElement.contains(event.target as Node) && !this.elementRef.nativeElement.contains(event.target as Node)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\tprivate addDropdownLinksListener(): void {\n\t\tconst links: NodeListOf<Element> | undefined = this.dropdownContent?.querySelectorAll('.dropdown-item');\n\t\tlinks?.forEach(link => {\n\t\t\tthis.renderer.listen(link, 'click', () => {\n\t\t\t\tthis.closeDropdown();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-control');\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n\tselector: 'label[app-form-label]',\n\tstandalone: true,\n})\nexport class FormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t}\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@Input('app-icon-button') set appIconButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t\tthis.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);\n\t}\n\n\t@Input() set shadow(val: boolean) {\n\t\tif (val === true || val === undefined) {\n\t\t\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('shadow-sm');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'icon-button');\n\t}\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[app-list-group-item-avatar]',\n\tstandalone: true,\n})\nexport class ListGroupItemAvatarDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-avatar');\n\t}\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'li[app-list-group-item]',\n\tstandalone: true,\n})\nexport class ListGroupItemDirective implements OnInit {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\t_isActive: boolean = false;\n\t@Input() set isActive(val: boolean) {\n\t\tthis._isActive = val;\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add('focus-active');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t}\n\t}\n\n\t@Output() onOutsideClick: EventEmitter<void> = new EventEmitter<void>();\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-action');\n\t\tthis.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');\n\n\t\tthis.renderer.listen('window', 'click', (e: Event) => {\n\t\t\tif (e.target !== this.elementRef.nativeElement) {\n\t\t\t\tthis._isActive = false;\n\t\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t\t\tthis.onOutsideClick.next();\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-flush');\n\t}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormInputDirective, FormLabelDirective, FormSelectDirective } from '../../../directives';\nimport { FormErrorsComponent } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\tselected?: boolean;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective],\n})\nexport class FormInputComponent {\n\t@Input({ required: true }) control!: FormControl;\n\t@Input() inputType: string = 'text';\n\t@Input({ required: true }) inputLabel!: string;\n\t@Input() inputPlaceholder?: string;\n\t@Input() inputId?: string;\n\t@Input({ required: true }) inputName!: string;\n\t@Input() inputTabIndex?: string;\n\t@Input() isSubmitted: boolean = false;\n\t@Input() selectOptions: ISelectOptions[] = [];\n\t@Input() hintText: string = '';\n\n\t@Output() onEnter: EventEmitter<void> = new EventEmitter();\n\t@Output() onChange: EventEmitter<Event> = new EventEmitter();\n\n\thandleSelect(event: Event): void {\n\t\tthis.onChange.next(event);\n\t}\n}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n","import { Component } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faSpinner, IconDefinition } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n\tselector: 'app-loading-indicator',\n\ttemplateUrl: './loading-indicator.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #495057;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule],\n})\nexport class LoadingIndicatorComponent {\n\tfaSpinner: IconDefinition = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\tstandalone: true,\n\timports: [CommonModule, IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Input() set fullScreen(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.dialogCssClasses.push(`modal-fullscreen`);\n\t\t} else {\n\t\t\tthis.dialogCssClasses = this.dialogCssClasses.removeBy((cssClass) => cssClass, 'modal-fullscreen');\n\t\t}\n\t}\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tdialogCssClasses: string[] = [];\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n@Component({\n\tselector: 'app-off-canvas',\n\ttemplateUrl: './off-canvas.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule, IconButtonDirective],\n})\nexport class OffCanvasComponent {\n\t@Input() title: string = '';\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-toast',\n\ttemplate: `\n\t\t<div class=\"toast align-items-center text-bg-dark border-0 show\">\n\t\t\t<div class=\"d-flex\">\n\t\t\t\t<div class=\"toast-body\" [innerHTML]=\"message\"></div>\n\t\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" (click)=\"onClose.next()\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tbottom: 20px;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%);\n\t\t\tz-index: 1051;\n\t\t}\n\t`,\n\tstandalone: true,\n})\nexport class ToastComponent {\n\t@Input() message?: string;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n}\n","import { DecoratorClassType } from './decorator.types';\n\nexport const Class =\n\t(className: string): DecoratorClassType =>\n\t(obj: Function): void => {\n\t\tObject.defineProperty(obj.prototype, 'className', {\n\t\t\tvalue: className,\n\t\t\twritable: false,\n\t\t});\n\t};\n","export enum LogType {\n\tlog = 'log',\n\tinfo = 'info',\n\twarn = 'warn',\n\tdebug = 'debug',\n\terror = 'error',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\n\nimport { LogType } from '../enums';\nimport { DecoratorMethodType } from './decorator.types';\n\nexport function Log(methodName: string, logType: LogType = LogType.log, logArgs?: boolean): DecoratorMethodType {\n\treturn function (target: Object, key: string, descriptor: PropertyDescriptor): PropertyDescriptor {\n\t\tconst method: Function = descriptor.value;\n\n\t\tdescriptor.value = function (...args: UnknownObject[]): unknown {\n\t\t\tconst className: string = (target as UnknownObject).className || target.constructor.name;\n\t\t\tconst newMethodName: string = methodName || key;\n\n\t\t\tlet logStatements: string[] = [className, newMethodName];\n\t\t\tif (logArgs && args && args.length > 0) {\n\t\t\t\tlogStatements = logStatements.concat([...args]);\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole[logType].apply(console, [...logStatements]);\n\n\t\t\treturn method.apply(this, args);\n\t\t};\n\n\t\treturn descriptor;\n\t};\n}\n","enum SortOrder {\n\tNONE = 0,\n\tASC = 1,\n\tDESC = -1,\n}\n\nconst compareString = (valA: string, valB: string, ascending: boolean | undefined): number => {\n\treturn valA.localeCompare(valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getSortOrder = <T>(valA: T, valB: T): SortOrder => {\n\treturn valA < valB ? SortOrder.DESC : valA === valB ? SortOrder.NONE : SortOrder.ASC;\n};\n\nconst compareNonString = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\treturn getSortOrder(valA, valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getValue = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\tlet result: number = 0;\n\tif (typeof valA === 'string' && typeof valB === 'string') {\n\t\tresult = compareString(valA, valB, ascending);\n\t} else {\n\t\tresult = compareNonString(valA, valB, ascending);\n\t}\n\treturn result;\n};\n\nexport const sortHelper = <T, G>(\n\ta: T,\n\tb: T,\n\tvalueGetter: (a: T) => G,\n\tascending?: boolean,\n): number => {\n\tconst valA: G = valueGetter(a);\n\tconst valB: G = valueGetter(b);\n\treturn getValue(valA, valB, ascending);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({\n\tname: 'formControl',\n\tstandalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ClipboardService {\n\tcopy(text: string): Promise<void> {\n\t\treturn navigator.clipboard.writeText(text);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport saveAs from 'file-saver';\nimport type { ParseResult, UnparseConfig, UnparseObject } from 'papaparse';\nimport { parse, unparse } from 'papaparse';\n\n@Injectable({ providedIn: 'root' })\nexport class FileService {\n\treadAsText(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsText(file);\n\t\t});\n\t}\n\n\treadAsBinaryString(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsBinaryString(file);\n\t\t});\n\t}\n\n\treadAsDataUrl(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst reader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\treader.onerror = (error): void => reject(error);\n\t\t\treader.readAsDataURL(file);\n\t\t});\n\t}\n\n\tunparse<T>(data: T[] | UnparseObject<T>, config?: UnparseConfig): string {\n\t\treturn unparse(data, config);\n\t}\n\n\tparse<T>(content: string | File): Promise<ParseResult<T>> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tparse(content, {\n\t\t\t\theader: true,\n\t\t\t\tcomplete: (results: ParseResult<T>) => resolve(results),\n\t\t\t\terror: (err: Error) => reject(err),\n\t\t\t});\n\t\t});\n\t}\n\n\tgetFileExtension(filename: string): string {\n\t\tlet result: string = '-';\n\t\tif (/[.]/.exec(filename)) {\n\t\t\tconst regexp: RegExpExecArray | null = /[^.]+$/.exec(filename);\n\t\t\tresult = `.${regexp?.[0]}`;\n\t\t}\n\t\treturn result;\n\t}\n\n\tsaveAs(content: BlobPart, fileName: string, fileType: string): void {\n\t\tconst blob: Blob = new Blob([content], { type: fileType });\n\t\tsaveAs(blob, fileName, { autoBom: true });\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ImageService {\n\tasync compress(imageBase64: string, quality: number = 0.8, fileType: string = 'image/jpeg'): Promise<string> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn canvas.toDataURL(fileType, quality);\n\t}\n\n\tasync toBlob(imageBase64: string, quality: number = 1, fileType: string = 'image/jpeg'): Promise<Blob> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tcanvas.toBlob(\n\t\t\t\tblob => {\n\t\t\t\t\tif (blob) {\n\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject('Error on converting image to blob');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfileType,\n\t\t\t\tquality\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate load(imageBase64: string): Promise<HTMLImageElement> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => resolve(img);\n\t\t\timg.onerror = (event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\tprivate createCanvas(): HTMLCanvasElement {\n\t\treturn document.createElement('canvas');\n\t}\n\n\tprivate drawImage(canvas: HTMLCanvasElement, img: HTMLImageElement): void {\n\t\tconst context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n\t\tcanvas.width = img.width;\n\t\tcanvas.height = img.height;\n\t\tcontext.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingIndicatorService {\n\tshow: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n\thide: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tconst local: string | null = localStorage.getItem(key);\n\t\tif (local) {\n\t\t\tresult = JSON.parse(local);\n\t\t}\n\t\treturn result;\n\t}\n\n\tset<T>(key: string, val: T): void {\n\t\tlocalStorage.setItem(key, JSON.stringify(val));\n\t}\n\n\tremove(key: string): void {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tremoveAll(): void {\n\t\tlocalStorage.clear();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LogType } from '../enums/logtype.enum';\n\nexport interface ILogSubject<T> {\n\tlogType: LogType;\n\targs: T[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LoggerService {\n\tonLog: Subject<ILogSubject<unknown>> = new Subject();\n\n\tlog(...args: unknown[]): void {\n\t\tthis._doLog(LogType.log, args);\n\t}\n\n\tinfo(...args: unknown[]): void {\n\t\tthis._doLog(LogType.info, args);\n\t}\n\n\twarn(...args: unknown[]): void {\n\t\tthis._doLog(LogType.warn, args);\n\t}\n\n\tdebug(...args: unknown[]): void {\n\t\tthis._doLog(LogType.debug, args);\n\t}\n\n\terror(...args: unknown[]): void {\n\t\tthis._doLog(LogType.error, args);\n\t}\n\n\t_doLog(logType: LogType, ...args: unknown[]): void {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole[logType].apply(console, args);\n\t\tthis.onLog.next({ logType: logType, args: args });\n\t}\n}\n","import { ComponentType, DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tprivate viewContainerRef?: ViewContainerRef;\n\tprivate portalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal: TemplatePortal = new TemplatePortal(templateRef, this.viewContainerRef);\n\t\t\tthis.portalHost.attach(newPortal);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\tshowComponent<T extends BaseModalComponent>(component: ComponentType<T>): ComponentRef<T> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createComponent(component);\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tprivate readonly componentFactoryResolver: ComponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.portalHost.hasAttached()) {\n\t\t\t\tthis.portalHost.detach();\n\t\t\t}\n\n\t\t\tconst componentPortal: ComponentPortal<ToastComponent> = new ComponentPortal(\n\t\t\t\tToastComponent,\n\t\t\t\tthis.viewContainerRef,\n\t\t\t\tnull,\n\t\t\t\tthis.componentFactoryResolver\n\t\t\t);\n\t\t\tconst componentRef: ComponentRef<ToastComponent> = this.portalHost.attachComponentPortal(componentPortal);\n\t\t\tcomponentRef.instance.message = message;\n\t\t\tcomponentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.hide();\n\t\t\t}, timeout);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalService } from './local.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class TokenService {\n\tconstructor(private localService: LocalService) {}\n\n\tget(key: 'accesstoken' | 'refreshtoken'): string | null {\n\t\treturn this.localService.get<string>(key);\n\t}\n\n\tset(key: 'accesstoken' | 'refreshtoken', token: string): void {\n\t\tthis.localService.set(key, token);\n\t}\n\n\tremove(key: 'accesstoken' | 'refreshtoken'): void {\n\t\tthis.localService.remove(key);\n\t}\n}\n","import { sortHelper } from '../helpers';\nimport { IDictionary } from '../interfaces';\n\nexport {};\n\ndeclare global {\n\tinterface Array<T> {\n\t\tgroupBy(valueGetter: (a: T) => string): IDictionary<T[]>;\n\t\tremoveBy<T, G>(valueGetter: (a: T) => G, val: G): T[];\n\t\torderBy<T, G>(valueGetter: (a: T) => G, ascending?: boolean): T[];\n\t\tfilterBy<G>(key?: string): G[];\n\t\tdistinct<T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[];\n\t}\n}\n\nArray.prototype.groupBy = function <T>(valueGetter: (a: T) => string): IDictionary<T> {\n\treturn this.reduce((curr, obj) => {\n\t\tconst key: string = valueGetter(obj);\n\t\t(curr[key] = curr[key] || []).push(obj);\n\t\treturn curr;\n\t}, {});\n};\n\nArray.prototype.removeBy = function <T, G>(valueGetter: (a: T) => G, val: G): T[] {\n\treturn this.filter((curr) => {\n\t\tconst key: G = valueGetter(curr);\n\t\t// change to split to remove only first item found\n\t\treturn key !== val;\n\t});\n};\n\nArray.prototype.orderBy = function <T, G>(valueGetter: (a: T) => G, ascending: boolean = true): T[] {\n\tthis?.sort((a, b) => sortHelper(a, b, valueGetter, ascending));\n\treturn this;\n};\n\nArray.prototype.filterBy = function <T>(key?: string): T[] {\n\treturn this.filter((a) => {\n\t\tlet result: boolean = false;\n\t\tif (key && a[key]) {\n\t\t\tresult = a[key] === key;\n\t\t} else {\n\t\t\tresult = a === key;\n\t\t}\n\t\treturn result;\n\t});\n};\n\nArray.prototype.distinct = function <T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[] {\n\tconst thisAsArray: T[] = this as T[];\n\tconst result: T[] = comparator\n\t\t? thisAsArray.filter((value, index, array) => array.findIndex((o) => comparator(o, value)) === index)\n\t\t: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);\n\treturn result;\n};\n","import type { ConfigType, ManipulateType, OpUnitType, UnitType } from 'dayjs';\nimport dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\ndayjs.extend(localizedFormat);\n\ndeclare global {\n\tinterface Date {\n\t\tisAfter(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tisBefore(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tformat(template?: string): string;\n\t\tisValid(): boolean;\n\t\tadd(value: number, unit?: ManipulateType): Date;\n\t\tsubtract(value: number, unit?: ManipulateType): Date;\n\t\tfirstDayOfMonth(): Date;\n\t\tlastDayOfMonth(): Date;\n\t\tset(unit: UnitType, value: number): Date;\n\t\tdiff(date: Date, unit?: UnitType): number;\n\t}\n}\n\nDate.prototype.isAfter = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isAfter(date, unit);\n};\n\nDate.prototype.isBefore = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isBefore(date, unit);\n};\n\nDate.prototype.format = function (template?: string): string {\n\treturn dayjs(this).format(template);\n};\n\nDate.prototype.isValid = function (): boolean {\n\treturn dayjs(this).isValid();\n};\n\nDate.prototype.add = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).add(value, unit).toDate();\n};\n\nDate.prototype.subtract = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).subtract(value, unit).toDate();\n};\n\nDate.prototype.firstDayOfMonth = function (): Date {\n\treturn dayjs(this).startOf('month').toDate();\n};\n\nDate.prototype.lastDayOfMonth = function (): Date {\n\treturn dayjs(this).endOf('month').toDate();\n};\n\nDate.prototype.set = function (unit: UnitType, value: number): Date {\n\treturn dayjs(this).set(unit, value).toDate();\n};\n\nDate.prototype.diff = function (date: Date, unit?: UnitType): number {\n\treturn dayjs(this).diff(date, unit);\n};\n","export {};\n\ndeclare global {\n\tinterface String {\n\t\tcapitalize(): string;\n\t}\n}\n\nString.prototype.capitalize = function (): string {\n\treturn this.charAt(0).toUpperCase() + this.slice(1);\n};\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function dateAfterValidator(startDateControlKey: string): (control: AbstractControl) => ValidationErrors | null {\n\treturn (endDateControl: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<UnknownObject> | FormArray<UnknownObject> | null = endDateControl.parent;\n\t\tif (formGroup) {\n\t\t\tconst startDate: string = formGroup.get(startDateControlKey)?.value;\n\t\t\tconst endDate: string = endDateControl.value;\n\n\t\t\tif (!startDate || !endDate) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tconst start: Date = new Date(startDate);\n\t\t\t\tconst end: Date = new Date(endDate);\n\n\t\t\t\tresult = start < end ? null : { dateAfterInvalid: true, startDateValue: startDate };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function matchValidator(toMatchControlKey: string): (control: AbstractControl) => ValidationErrors | null {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<UnknownObject> | FormArray<UnknownObject> | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst toMatchValue: UnknownObject = formGroup.get(toMatchControlKey)?.value;\n\t\t\tconst currentValue: UnknownObject = control.value;\n\n\t\t\tif (!toMatchValue || !currentValue) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tresult = toMatchValue === currentValue ? null : { match: true };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function timeAfterValidator(startTimeControlKey: string): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<UnknownObject> | FormArray<UnknownObject> | null = control.parent;\n\n\t\tif (formGroup) {\n\t\t\tconst startTimeControl: AbstractControl | null = formGroup.get(startTimeControlKey);\n\t\t\tif (startTimeControl) {\n\t\t\t\tif (!control.value || !startTimeControl.value) {\n\t\t\t\t\tresult = null; // Keine Validierung, wenn entweder Start- oder Endzeit fehlt\n\t\t\t\t}\n\n\t\t\t\tconst startTime: string = startTimeControl.value;\n\t\t\t\tconst endTime: string = control.value;\n\n\t\t\t\t// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)\n\t\t\t\tconst startMinutes: number = convertToMinutes(startTime);\n\t\t\t\tconst endMinutes: number = convertToMinutes(endTime);\n\t\t\t\tif (endMinutes <= startMinutes) {\n\t\t\t\t\tresult = { timeAfterError: startTimeControl.value };\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n\n// Funktion zur Umwandlung von Zeit in Minuten\nfunction convertToMinutes(time: string): number {\n\tconst [hours, minutes] = time.split(':').map(Number);\n\treturn hours * 60 + minutes;\n}\n","/*\n * Public API Surface of ngx-gccb\n */\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport * from './lib/decorators';\nexport * from './lib/directives';\nexport * from './lib/enums';\nexport * from './lib/helpers';\nexport * from './lib/interfaces';\nexport * from './lib/pipe';\nexport * from './lib/services';\nexport * from './lib/typings';\nexport * from './lib/validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.LocalService"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { DecoratorClassType } from './decorator.types';
2
+ export declare const Class: (className: string) => DecoratorClassType;
@@ -0,0 +1,2 @@
1
+ export type DecoratorMethodType = (target: Object, key: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
2
+ export type DecoratorClassType = (obj: Function) => void;
@@ -0,0 +1,3 @@
1
+ export * from './class.decorator';
2
+ export * from './decorator.types';
3
+ export * from './log.decorator';
@@ -0,0 +1,3 @@
1
+ import { LogType } from '../enums';
2
+ import { DecoratorMethodType } from './decorator.types';
3
+ export declare function Log(methodName: string, logType?: LogType, logArgs?: boolean): DecoratorMethodType;
@@ -0,0 +1 @@
1
+ export * from './logtype.enum';
@@ -0,0 +1,7 @@
1
+ export declare enum LogType {
2
+ log = "log",
3
+ info = "info",
4
+ warn = "warn",
5
+ debug = "debug",
6
+ error = "error"
7
+ }
@@ -2,6 +2,7 @@ import * as i0 from "@angular/core";
2
2
  export declare class ImageService {
3
3
  compress(imageBase64: string, quality?: number, fileType?: string): Promise<string>;
4
4
  toBlob(imageBase64: string, quality?: number, fileType?: string): Promise<Blob>;
5
+ private load;
5
6
  private createCanvas;
6
7
  private drawImage;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<ImageService, never>;
@@ -1,8 +1,9 @@
1
1
  export * from './clipboard.service';
2
2
  export * from './file.service';
3
+ export * from './image.service';
3
4
  export * from './loading-indicator.service';
4
5
  export * from './local.service';
6
+ export * from './logger.service';
5
7
  export * from './modal.service';
6
8
  export * from './toast.service';
7
9
  export * from './token.service';
8
- export * from './image.service';
@@ -0,0 +1,18 @@
1
+ import { Subject } from 'rxjs';
2
+ import { LogType } from '../enums/logtype.enum';
3
+ import * as i0 from "@angular/core";
4
+ export interface ILogSubject<T> {
5
+ logType: LogType;
6
+ args: T[];
7
+ }
8
+ export declare class LoggerService {
9
+ onLog: Subject<ILogSubject<unknown>>;
10
+ log(...args: unknown[]): void;
11
+ info(...args: unknown[]): void;
12
+ warn(...args: unknown[]): void;
13
+ debug(...args: unknown[]): void;
14
+ error(...args: unknown[]): void;
15
+ _doLog(logType: LogType, ...args: unknown[]): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<LoggerService>;
18
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-gccb",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.11",
6
6
  "@angular/core": "^18.2.11",
package/public-api.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './lib/animations';
2
2
  export * from './lib/components';
3
+ export * from './lib/decorators';
3
4
  export * from './lib/directives';
5
+ export * from './lib/enums';
4
6
  export * from './lib/helpers';
5
7
  export * from './lib/interfaces';
6
8
  export * from './lib/pipe';