UNPKG

fundamental-ngx

Version:

SAP Fundamentals, implemented in Angular

142 lines 12.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; import { CalendarI18nLabels } from '../i18n/calendar-i18n-labels'; import { CalendarI18n } from '../i18n/calendar-i18n'; /** * Internal use only. * Header of the calendar component. */ export class CalendarHeaderComponent { /** * @param {?} calendarI18nLabels * @param {?} calendarI18n */ constructor(calendarI18nLabels, calendarI18n) { this.calendarI18nLabels = calendarI18nLabels; this.calendarI18n = calendarI18n; /** * Event emitted when the active view should change. */ this.activeViewChange = new EventEmitter(); /** * Event emitted when the previous button is clicked. */ this.previousClicked = new EventEmitter(); /** * Event emitted when the next button is clicked. */ this.nextClicked = new EventEmitter(); } /** * Get the aria label for the previous button. Depends on the active view. * @return {?} */ get previousLabel() { return this.activeView !== 'year' ? this.calendarI18nLabels.previousMonthLabel : this.calendarI18nLabels.previousYearLabel; } /** * Get the aria label for the next button. Depends on the active view. * @return {?} */ get nextLabel() { return this.activeView !== 'year' ? this.calendarI18nLabels.nextMonthLabel : this.calendarI18nLabels.nextMonthLabel; } /** * Get aria label for the month shown. * @return {?} */ get monthLabel() { return this.calendarI18n.getAllFullMonthNames()[this.currentlyDisplayed.month - 1]; } /** * @return {?} */ isOnMonthView() { return this.activeView === 'month'; } /** * @return {?} */ isOnYearView() { return this.activeView === 'year'; } /** * @param {?} type * @return {?} */ processViewChange(type) { if (type === this.activeView) { this.activeView = 'day'; } else { this.activeView = type; } this.activeViewChange.emit(this.activeView); } } CalendarHeaderComponent.decorators = [ { type: Component, args: [{ selector: 'fd-calendar-header', template: "<header class=\"fd-calendar__header\">\n <div class=\"fd-calendar__navigation\">\n <div class=\"fd-calendar__action\">\n <button class=\"fd-button--standard fd-button--light fd-button--compact sap-icon--slim-arrow-left\"\n [attr.id]=\"id + '-left-arrow'\"\n [attr.aria-label]=\"previousLabel\"\n [attr.aria-disabled]=\"false\"\n type=\"button\"\n (click)=\"previousClicked.emit()\">\n </button>\n </div>\n <div class=\"fd-calendar__action\">\n <button class=\"fd-button--light fd-button--compact\"\n [attr.aria-label]=\"calendarI18nLabels.monthSelectionLabel\"\n [attr.aria-selected]=\"isOnMonthView()\"\n (click)=\"processViewChange('month')\"\n type=\"button\">\n {{monthLabel}}\n </button>\n </div>\n <div class=\"fd-calendar__action\">\n <button class=\"fd-button--light fd-button--compact\"\n [attr.aria-label]=\"calendarI18nLabels.yearSelectionLabel\"\n [attr.aria-selected]=\"isOnYearView()\"\n (click)=\"processViewChange('year')\"\n type=\"button\">\n {{currentlyDisplayed.year}}\n </button>\n </div>\n <div class=\"fd-calendar__action\">\n <button class=\"fd-button--standard fd-button--light fd-button--compact sap-icon--slim-arrow-right\"\n [attr.id]=\"id + '-right-arrow'\"\n [attr.aria-label]=\"nextLabel\"\n [attr.aria-disabled]=\"false\"\n (click)=\"nextClicked.emit()\"\n type=\"button\">\n </button>\n </div>\n </div>\n</header>\n", encapsulation: ViewEncapsulation.None, host: { '[attr.id]': 'id + "-header"' }, styles: [""] }] } ]; /** @nocollapse */ CalendarHeaderComponent.ctorParameters = () => [ { type: CalendarI18nLabels }, { type: CalendarI18n } ]; CalendarHeaderComponent.propDecorators = { activeView: [{ type: Input }], currentlyDisplayed: [{ type: Input }], id: [{ type: Input }], activeViewChange: [{ type: Output }], previousClicked: [{ type: Output }], nextClicked: [{ type: Output }] }; if (false) { /** * Currently active view. Needed for a11y labels. * @type {?} */ CalendarHeaderComponent.prototype.activeView; /** * Currently displayed date on the calendar. * @type {?} */ CalendarHeaderComponent.prototype.currentlyDisplayed; /** * Id * @type {?} */ CalendarHeaderComponent.prototype.id; /** * Event emitted when the active view should change. * @type {?} */ CalendarHeaderComponent.prototype.activeViewChange; /** * Event emitted when the previous button is clicked. * @type {?} */ CalendarHeaderComponent.prototype.previousClicked; /** * Event emitted when the next button is clicked. * @type {?} */ CalendarHeaderComponent.prototype.nextClicked; /** @type {?} */ CalendarHeaderComponent.prototype.calendarI18nLabels; /** @type {?} */ CalendarHeaderComponent.prototype.calendarI18n; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Z1bmRhbWVudGFsLW5neC8iLCJzb3VyY2VzIjpbImxpYi9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBaUJyRCxNQUFNLE9BQU8sdUJBQXVCOzs7OztJQTZCaEMsWUFDVyxrQkFBc0MsRUFDdEMsWUFBMEI7UUFEMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYzs7OztRQWY1QixxQkFBZ0IsR0FDbkIsSUFBSSxZQUFZLEVBQWtCLENBQUM7Ozs7UUFJaEMsb0JBQWUsR0FDbEIsSUFBSSxZQUFZLEVBQVEsQ0FBQzs7OztRQUl0QixnQkFBVyxHQUNkLElBQUksWUFBWSxFQUFRLENBQUM7SUFLNUIsQ0FBQzs7Ozs7SUFHSixJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCO1lBQzFFLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7SUFDcEQsQ0FBQzs7Ozs7SUFHRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYztZQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztJQUNqRCxDQUFDOzs7OztJQUdELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs7OztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQztJQUN0QyxDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLElBQW9CO1FBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDM0I7YUFBTTtZQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7O1lBM0VKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QiwwMURBQStDO2dCQUUvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLFdBQVcsRUFBRSxnQkFBZ0I7aUJBQ2hDOzthQUNKOzs7O1lBakJRLGtCQUFrQjtZQUNsQixZQUFZOzs7eUJBb0JoQixLQUFLO2lDQUlMLEtBQUs7aUJBSUwsS0FBSzsrQkFJTCxNQUFNOzhCQUtOLE1BQU07MEJBS04sTUFBTTs7Ozs7OztJQXRCUCw2Q0FDMkI7Ozs7O0lBRzNCLHFEQUNvQzs7Ozs7SUFHcEMscUNBQ1c7Ozs7O0lBR1gsbURBRXlDOzs7OztJQUd6QyxrREFFK0I7Ozs7O0lBRy9CLDhDQUUrQjs7SUFHM0IscURBQTZDOztJQUM3QywrQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJJMThuTGFiZWxzIH0gZnJvbSAnLi4vaTE4bi9jYWxlbmRhci1pMThuLWxhYmVscyc7XG5pbXBvcnQgeyBDYWxlbmRhckkxOG4gfSBmcm9tICcuLi9pMThuL2NhbGVuZGFyLWkxOG4nO1xuaW1wb3J0IHsgRmRDYWxlbmRhclZpZXcgfSBmcm9tICcuLi9jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDdXJyZW50IH0gZnJvbSAnLi4vbW9kZWxzL2NhbGVuZGFyLWN1cnJlbnQnO1xuXG4vKipcbiAqIEludGVybmFsIHVzZSBvbmx5LlxuICogSGVhZGVyIG9mIHRoZSBjYWxlbmRhciBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY2FsZW5kYXItaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCArIFwiLWhlYWRlclwiJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQge1xuXG4gICAgLyoqIEN1cnJlbnRseSBhY3RpdmUgdmlldy4gTmVlZGVkIGZvciBhMTF5IGxhYmVscy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZVZpZXc6IEZkQ2FsZW5kYXJWaWV3O1xuXG4gICAgLyoqIEN1cnJlbnRseSBkaXNwbGF5ZWQgZGF0ZSBvbiB0aGUgY2FsZW5kYXIuICovXG4gICAgQElucHV0KClcbiAgICBjdXJyZW50bHlEaXNwbGF5ZWQ6IENhbGVuZGFyQ3VycmVudDtcblxuICAgIC8qKiBJZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFjdGl2ZSB2aWV3IHNob3VsZCBjaGFuZ2UuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYWN0aXZlVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PlxuICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8RmRDYWxlbmRhclZpZXc+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwcmV2aW91cyBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwcmV2aW91c0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG5leHQgYnV0dG9uIGlzIGNsaWNrZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgbmV4dENsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY2FsZW5kYXJJMThuTGFiZWxzOiBDYWxlbmRhckkxOG5MYWJlbHMsXG4gICAgICAgIHB1YmxpYyBjYWxlbmRhckkxOG46IENhbGVuZGFySTE4blxuICAgICkge31cblxuICAgIC8qKiBHZXQgdGhlIGFyaWEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBidXR0b24uIERlcGVuZHMgb24gdGhlIGFjdGl2ZSB2aWV3LiAqL1xuICAgIGdldCBwcmV2aW91c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVZpZXcgIT09ICd5ZWFyJyA/IHRoaXMuY2FsZW5kYXJJMThuTGFiZWxzLnByZXZpb3VzTW9udGhMYWJlbFxuICAgICAgICAgICAgOiB0aGlzLmNhbGVuZGFySTE4bkxhYmVscy5wcmV2aW91c1llYXJMYWJlbDtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSBhcmlhIGxhYmVsIGZvciB0aGUgbmV4dCBidXR0b24uIERlcGVuZHMgb24gdGhlIGFjdGl2ZSB2aWV3LiAqL1xuICAgIGdldCBuZXh0TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlldyAhPT0gJ3llYXInID8gdGhpcy5jYWxlbmRhckkxOG5MYWJlbHMubmV4dE1vbnRoTGFiZWxcbiAgICAgICAgICAgIDogdGhpcy5jYWxlbmRhckkxOG5MYWJlbHMubmV4dE1vbnRoTGFiZWw7XG4gICAgfVxuXG4gICAgLyoqIEdldCBhcmlhIGxhYmVsIGZvciB0aGUgbW9udGggc2hvd24uICovXG4gICAgZ2V0IG1vbnRoTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJJMThuLmdldEFsbEZ1bGxNb250aE5hbWVzKClbdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggLSAxXTtcbiAgICB9XG5cbiAgICBpc09uTW9udGhWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVWaWV3ID09PSAnbW9udGgnO1xuICAgIH1cblxuICAgIGlzT25ZZWFyVmlldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlldyA9PT0gJ3llYXInO1xuICAgIH1cblxuICAgIHByb2Nlc3NWaWV3Q2hhbmdlKHR5cGU6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlID09PSB0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXknO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXdDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIH1cblxufVxuIl19