@clr/angular
Version:
Angular components for Clarity
98 lines • 9.85 kB
JavaScript
/*
* 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