UNPKG

@progress/kendo-angular-scheduler

Version:

Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.

102 lines (101 loc) 5.3 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { Component, Input, HostBinding, Output, EventEmitter } from '@angular/core'; import { ViewStateService } from '../view-state.service'; import { FocusableDirective } from '../../navigation/focusable.directive'; import { ButtonComponent } from '@progress/kendo-angular-buttons'; import { NgFor, NgClass } from '@angular/common'; import * as i0 from "@angular/core"; import * as i1 from "../view-state.service"; /** * @hidden */ export class ViewFooterComponent { hostClasses = true; toolbarRole = 'toolbar'; sub; /** * @hidden * TODO: Drop in next MAJOR version */ inlineJustifyContentStyle = 'start'; itemClick = new EventEmitter(); items; constructor(viewState) { this.sub = viewState.toggleWorkHours.subscribe(() => this.itemClick.emit()); } ngOnDestroy() { // eslint-disable-next-line no-unused-expressions this.sub && this.sub.unsubscribe(); } onItemClick(e, item) { e.preventDefault(); this.itemClick.emit(item); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewFooterComponent, deps: [{ token: i1.ViewStateService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewFooterComponent, isStandalone: true, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "class.k-toolbar-solid": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "attr.role": "this.toolbarRole", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: ` <span class="k-scheduler-navigation"> <button *ngFor="let item of items" type="button" kendoButton [icon]="item.fontIcon" [svgIcon]="item.svgIcon" [ngClass]="item.cssClass" (click)="onItemClick($event, item)" [kendoSchedulerFocusIndex]="0" containerType='footer'> <span class="k-button-text">{{ item.text }}</span> </button> </span> `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewFooterComponent, decorators: [{ type: Component, args: [{ // eslint-disable-next-line @angular-eslint/component-selector selector: '[viewFooter]', template: ` <span class="k-scheduler-navigation"> <button *ngFor="let item of items" type="button" kendoButton [icon]="item.fontIcon" [svgIcon]="item.svgIcon" [ngClass]="item.cssClass" (click)="onItemClick($event, item)" [kendoSchedulerFocusIndex]="0" containerType='footer'> <span class="k-button-text">{{ item.text }}</span> </button> </span> `, standalone: true, imports: [NgFor, ButtonComponent, NgClass, FocusableDirective] }] }], ctorParameters: function () { return [{ type: i1.ViewStateService }]; }, propDecorators: { hostClasses: [{ type: HostBinding, args: ['class.k-scheduler-footer'] }, { type: HostBinding, args: ['class.k-toolbar'] }, { type: HostBinding, args: ['class.k-toolbar-solid'] }, { type: HostBinding, args: ['class.k-toolbar-md'] }], toolbarRole: [{ type: HostBinding, args: ['attr.role'] }], inlineJustifyContentStyle: [{ type: HostBinding, args: ['style.justify-content'] }], itemClick: [{ type: Output }], items: [{ type: Input }] } });