@bimeister/pupakit.calendar
Version:
PupaKit Calendar
42 lines • 9.06 kB
JavaScript
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
import { isEmpty } from '@bimeister/utilities';
import { throwError } from 'rxjs';
import { map } from 'rxjs/operators';
import { DAYS_IN_WEEK } from '../../declarations/constants/days-in-week.const';
import { DayOfWeek } from '../../declarations/enums/day-of-week.enum';
import '../../declarations/interfaces/calendar-translation.interface';
import { CalendarConfigService } from '../../services/calendar-config.service';
import { CalendarTranslationService } from '../../services/calendar-translation.service';
import * as i0 from "@angular/core";
import * as i1 from "../../services/calendar-translation.service";
import * as i2 from "../../services/calendar-config.service";
import * as i3 from "@angular/common";
function getWeekdaysInOrderByWeekStart(weekStart) {
return Array.from({ length: DAYS_IN_WEEK }).map((_, defaultWeekday) => {
if (defaultWeekday === DayOfWeek.Sunday) {
return weekStart;
}
const nextWeekday = Number(defaultWeekday) + Number(weekStart);
return nextWeekday >= DAYS_IN_WEEK ? nextWeekday % DAYS_IN_WEEK : nextWeekday;
});
}
export class CalendarWeekPanelComponent {
constructor(calendarTranslationService, calendarConfigService) {
this.calendarTranslationService = calendarTranslationService;
this.calendarConfigService = calendarConfigService;
this.weekdaysInOrder = getWeekdaysInOrderByWeekStart(this.calendarConfigService.startWeekday);
this.weekdays$ = this.calendarTranslationService.translation$.pipe(map(({ weekdays }) => {
if (isEmpty(weekdays)) {
throwError(`No translation for weekdays`);
}
return this.weekdaysInOrder.map((day) => weekdays[day]);
}));
}
}
CalendarWeekPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CalendarWeekPanelComponent, deps: [{ token: i1.CalendarTranslationService }, { token: i2.CalendarConfigService }], target: i0.ɵɵFactoryTarget.Component });
CalendarWeekPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CalendarWeekPanelComponent, selector: "pupa-calendar-week-panel", ngImport: i0, template: "<div *ngFor=\"let weekday of weekdays$ | async\" class=\"weekday\">{{ weekday }}</div>\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;height:6rem;padding:0 4rem}.weekday{display:flex;width:7rem;justify-content:center;font-family:NotoSans,sans-serif;font-weight:400;font-size:11px;line-height:16px;color:rgba(var(--semantic-color_text-secondary),var(--semantic-color-alpha_text-secondary))}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CalendarWeekPanelComponent, decorators: [{
type: Component,
args: [{ selector: 'pupa-calendar-week-panel', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngFor=\"let weekday of weekdays$ | async\" class=\"weekday\">{{ weekday }}</div>\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;height:6rem;padding:0 4rem}.weekday{display:flex;width:7rem;justify-content:center;font-family:NotoSans,sans-serif;font-weight:400;font-size:11px;line-height:16px;color:rgba(var(--semantic-color_text-secondary),var(--semantic-color-alpha_text-secondary))}\n"] }]
}], ctorParameters: function () { return [{ type: i1.CalendarTranslationService }, { type: i2.CalendarConfigService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItd2Vlay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhci13ZWVrLXBhbmVsL2NhbGVuZGFyLXdlZWstcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2FsZW5kYXItd2Vlay1wYW5lbC9jYWxlbmRhci13ZWVrLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEUsT0FBb0MsOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7O0FBRXpGLFNBQVMsNkJBQTZCLENBQUMsU0FBb0I7SUFDekQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBVSxFQUFFLGNBQXlCLEVBQUUsRUFBRTtRQUN4RixJQUFJLGNBQWMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxXQUFXLEdBQWMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxRSxPQUFPLFdBQVcsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNoRixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFTRCxNQUFNLE9BQU8sMEJBQTBCO0lBZXJDLFlBQ21CLDBCQUFzRCxFQUN0RCxxQkFBNEM7UUFENUMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUN0RCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBaEI5QyxvQkFBZSxHQUFnQiw2QkFBNkIsQ0FDM0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FDeEMsQ0FBQztRQUVjLGNBQVMsR0FBeUIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2pHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUF1QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3JCLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQzNDO1lBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQWMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUtDLENBQUM7O3dIQWxCTywwQkFBMEI7NEdBQTFCLDBCQUEwQixnRUM3QnZDLDBGQUNBOzRGRDRCYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UsMEJBQTBCLGlCQUdyQixpQkFBaUIsQ0FBQyxRQUFRLG1CQUN4Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdAYmltZWlzdGVyL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEQVlTX0lOX1dFRUsgfSBmcm9tICcuLi8uLi9kZWNsYXJhdGlvbnMvY29uc3RhbnRzL2RheXMtaW4td2Vlay5jb25zdCc7XG5pbXBvcnQgeyBEYXlPZldlZWsgfSBmcm9tICcuLi8uLi9kZWNsYXJhdGlvbnMvZW51bXMvZGF5LW9mLXdlZWsuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vZGVjbGFyYXRpb25zL2ludGVyZmFjZXMvY2FsZW5kYXItdHJhbnNsYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENhbGVuZGFyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhbGVuZGFyLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXItdHJhbnNsYXRpb24uc2VydmljZSc7XG5cbmZ1bmN0aW9uIGdldFdlZWtkYXlzSW5PcmRlckJ5V2Vla1N0YXJ0KHdlZWtTdGFydDogRGF5T2ZXZWVrKTogRGF5T2ZXZWVrW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogREFZU19JTl9XRUVLIH0pLm1hcCgoXzogdW5rbm93biwgZGVmYXVsdFdlZWtkYXk6IERheU9mV2VlaykgPT4ge1xuICAgIGlmIChkZWZhdWx0V2Vla2RheSA9PT0gRGF5T2ZXZWVrLlN1bmRheSkge1xuICAgICAgcmV0dXJuIHdlZWtTdGFydDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0V2Vla2RheTogRGF5T2ZXZWVrID0gTnVtYmVyKGRlZmF1bHRXZWVrZGF5KSArIE51bWJlcih3ZWVrU3RhcnQpO1xuXG4gICAgcmV0dXJuIG5leHRXZWVrZGF5ID49IERBWVNfSU5fV0VFSyA/IG5leHRXZWVrZGF5ICUgREFZU19JTl9XRUVLIDogbmV4dFdlZWtkYXk7XG4gIH0pO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdXBhLWNhbGVuZGFyLXdlZWstcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItd2Vlay1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLXdlZWstcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhcldlZWtQYW5lbENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2Vla2RheXNJbk9yZGVyOiBEYXlPZldlZWtbXSA9IGdldFdlZWtkYXlzSW5PcmRlckJ5V2Vla1N0YXJ0KFxuICAgIHRoaXMuY2FsZW5kYXJDb25maWdTZXJ2aWNlLnN0YXJ0V2Vla2RheVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSB3ZWVrZGF5cyQ6IE9ic2VydmFibGU8c3RyaW5nW10+ID0gdGhpcy5jYWxlbmRhclRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGlvbiQucGlwZShcbiAgICBtYXAoKHsgd2Vla2RheXMgfTogQ2FsZW5kYXJUcmFuc2xhdGlvbikgPT4ge1xuICAgICAgaWYgKGlzRW1wdHkod2Vla2RheXMpKSB7XG4gICAgICAgIHRocm93RXJyb3IoYE5vIHRyYW5zbGF0aW9uIGZvciB3ZWVrZGF5c2ApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy53ZWVrZGF5c0luT3JkZXIubWFwKChkYXk6IERheU9mV2VlaykgPT4gd2Vla2RheXNbZGF5XSk7XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGVuZGFyVHJhbnNsYXRpb25TZXJ2aWNlOiBDYWxlbmRhclRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGVuZGFyQ29uZmlnU2VydmljZTogQ2FsZW5kYXJDb25maWdTZXJ2aWNlXG4gICkge31cbn1cbiIsIjxkaXYgKm5nRm9yPVwibGV0IHdlZWtkYXkgb2Ygd2Vla2RheXMkIHwgYXN5bmNcIiBjbGFzcz1cIndlZWtkYXlcIj57eyB3ZWVrZGF5IH19PC9kaXY+XG4iXX0=