UNPKG

@clr/angular

Version:

Angular components for Clarity

98 lines 9.85 kB
/* * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved. * This software is released under MIT license. * The full license information can be found in LICENSE in the root directory of this project. */ import { Component, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./providers/date-navigation.service"; import * as i2 from "../../utils/popover/providers/popover-toggle.service"; import * as i3 from "./providers/date-form-control.service"; import * as i4 from "../../utils/i18n/common-strings.service"; export class ClrDay { constructor(_dateNavigationService, _toggleService, dateFormControlService, commonStrings) { this._dateNavigationService = _dateNavigationService; this._toggleService = _toggleService; this.dateFormControlService = dateFormControlService; this.commonStrings = commonStrings; } /** * DayViewModel input which is used to build the Day View. */ get dayView() { return this._dayView; } set dayView(day) { this._dayView = day; } get dayString() { return this.dayView.isSelected ? this.commonStrings.parse(this.commonStrings.keys.datepickerSelectedLabel, { FULL_DATE: this._dayView.dayModel.toDateString(), }) : this._dayView.dayModel.toDateString(); } /** * Updates the focusedDay in the DateNavigationService when the ClrDay is focused. */ onDayViewFocus() { this._dateNavigationService.focusedDay = this.dayView.dayModel; } /** * Updates the selectedDay when the ClrDay is selected and closes the datepicker popover. */ selectDay() { const day = this.dayView.dayModel; this._dateNavigationService.notifySelectedDayChanged(day); this.dateFormControlService.markAsDirty(); this._toggleService.open = false; } } ClrDay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDay, deps: [{ token: i1.DateNavigationService }, { token: i2.ClrPopoverToggleService }, { token: i3.DateFormControlService }, { token: i4.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component }); ClrDay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDay, selector: "clr-day", inputs: { dayView: ["clrDayView", "dayView"] }, host: { properties: { "class.day": "true" } }, ngImport: i0, template: ` <button class="day-btn" type="button" [class.is-today]="dayView.isTodaysDate" [class.is-excluded]="dayView.isExcluded" [class.is-disabled]="dayView.isDisabled" [class.is-selected]="dayView.isSelected" [attr.tabindex]="dayView.tabIndex" (click)="selectDay()" (focus)="onDayViewFocus()" [attr.aria-current]="dayView.isTodaysDate ? 'date' : 'false'" [attr.aria-label]="dayString" [attr.aria-selected]="dayView.isSelected" > {{ dayView.dayModel.date }} </button> `, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDay, decorators: [{ type: Component, args: [{ selector: 'clr-day', template: ` <button class="day-btn" type="button" [class.is-today]="dayView.isTodaysDate" [class.is-excluded]="dayView.isExcluded" [class.is-disabled]="dayView.isDisabled" [class.is-selected]="dayView.isSelected" [attr.tabindex]="dayView.tabIndex" (click)="selectDay()" (focus)="onDayViewFocus()" [attr.aria-current]="dayView.isTodaysDate ? 'date' : 'false'" [attr.aria-label]="dayString" [attr.aria-selected]="dayView.isSelected" > {{ dayView.dayModel.date }} </button> `, host: { '[class.day]': 'true' }, }] }], ctorParameters: function () { return [{ type: i1.DateNavigationService }, { type: i2.ClrPopoverToggleService }, { type: i3.DateFormControlService }, { type: i4.ClrCommonStringsService }]; }, propDecorators: { dayView: [{ type: Input, args: ['clrDayView'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZGF0ZXBpY2tlci9kYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUErQmpELE1BQU0sT0FBTyxNQUFNO0lBR2pCLFlBQ1Usc0JBQTZDLEVBQzdDLGNBQXVDLEVBQ3ZDLHNCQUE4QyxFQUM5QyxhQUFzQztRQUh0QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUN2QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtJQUM3QyxDQUFDO0lBRUo7O09BRUc7SUFFSCxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEdBQWlCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7Z0JBQ3hFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7YUFDakQsQ0FBQztZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ1osSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsTUFBTSxHQUFHLEdBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7bUdBN0NVLE1BQU07dUZBQU4sTUFBTSw4SUFwQlA7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUOzJGQUdVLE1BQU07a0JBdEJsQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUO29CQUNELElBQUksRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUU7aUJBQ2hDOzZOQWdCSyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF5Vmlld01vZGVsIH0gZnJvbSAnLi9tb2RlbC9kYXktdmlldy5tb2RlbCc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4vbW9kZWwvZGF5Lm1vZGVsJztcbmltcG9ydCB7IERhdGVGb3JtQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kYXRlLWZvcm0tY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGVOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RhdGUtbmF2aWdhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRheScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJkYXktYnRuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2NsYXNzLmlzLXRvZGF5XT1cImRheVZpZXcuaXNUb2RheXNEYXRlXCJcbiAgICAgIFtjbGFzcy5pcy1leGNsdWRlZF09XCJkYXlWaWV3LmlzRXhjbHVkZWRcIlxuICAgICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cImRheVZpZXcuaXNEaXNhYmxlZFwiXG4gICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwiZGF5Vmlldy5pc1NlbGVjdGVkXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cImRheVZpZXcudGFiSW5kZXhcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdERheSgpXCJcbiAgICAgIChmb2N1cyk9XCJvbkRheVZpZXdGb2N1cygpXCJcbiAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJkYXlWaWV3LmlzVG9kYXlzRGF0ZSA/ICdkYXRlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkYXlTdHJpbmdcIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJkYXlWaWV3LmlzU2VsZWN0ZWRcIlxuICAgID5cbiAgICAgIHt7IGRheVZpZXcuZGF5TW9kZWwuZGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBob3N0OiB7ICdbY2xhc3MuZGF5XSc6ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEYXkge1xuICBwcml2YXRlIF9kYXlWaWV3OiBEYXlWaWV3TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGF0ZU5hdmlnYXRpb25TZXJ2aWNlOiBEYXRlTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfdG9nZ2xlU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlRm9ybUNvbnRyb2xTZXJ2aWNlOiBEYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBEYXlWaWV3TW9kZWwgaW5wdXQgd2hpY2ggaXMgdXNlZCB0byBidWlsZCB0aGUgRGF5IFZpZXcuXG4gICAqL1xuXG4gIEBJbnB1dCgnY2xyRGF5VmlldycpXG4gIGdldCBkYXlWaWV3KCk6IERheVZpZXdNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RheVZpZXc7XG4gIH1cbiAgc2V0IGRheVZpZXcoZGF5OiBEYXlWaWV3TW9kZWwpIHtcbiAgICB0aGlzLl9kYXlWaWV3ID0gZGF5O1xuICB9XG5cbiAgZ2V0IGRheVN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRheVZpZXcuaXNTZWxlY3RlZFxuICAgICAgPyB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclNlbGVjdGVkTGFiZWwsIHtcbiAgICAgICAgICBGVUxMX0RBVEU6IHRoaXMuX2RheVZpZXcuZGF5TW9kZWwudG9EYXRlU3RyaW5nKCksXG4gICAgICAgIH0pXG4gICAgICA6IHRoaXMuX2RheVZpZXcuZGF5TW9kZWwudG9EYXRlU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZm9jdXNlZERheSBpbiB0aGUgRGF0ZU5hdmlnYXRpb25TZXJ2aWNlIHdoZW4gdGhlIENsckRheSBpcyBmb2N1c2VkLlxuICAgKi9cbiAgb25EYXlWaWV3Rm9jdXMoKSB7XG4gICAgdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzZWREYXkgPSB0aGlzLmRheVZpZXcuZGF5TW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc2VsZWN0ZWREYXkgd2hlbiB0aGUgQ2xyRGF5IGlzIHNlbGVjdGVkIGFuZCBjbG9zZXMgdGhlIGRhdGVwaWNrZXIgcG9wb3Zlci5cbiAgICovXG4gIHNlbGVjdERheSgpOiB2b2lkIHtcbiAgICBjb25zdCBkYXk6IERheU1vZGVsID0gdGhpcy5kYXlWaWV3LmRheU1vZGVsO1xuICAgIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5ub3RpZnlTZWxlY3RlZERheUNoYW5nZWQoZGF5KTtcbiAgICB0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLl90b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgfVxufVxuIl19