sb-element
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.1. It is a component library constructed around the SCSS library [Sb-Theming](https://github.com/SeverinBuchser/SbTheming) and supports [Angular Schematics]
69 lines • 10.3 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import { mixinColor, mixinClassName, Color, mixinTabindex, mixinDisable } from "../../core";
import * as fns from "date-fns";
import { MarkedDates } from "../marked-dates";
import * as i0 from "@angular/core";
import * as i1 from "../../core";
const SbCalendarYearCore = mixinDisable(mixinTabindex(mixinColor(mixinClassName(class {
constructor(_elementRef, _themeService) {
this._elementRef = _elementRef;
this._themeService = _themeService;
}
}, 'sb-calendar-year'), Color.PRIMARY), 0));
export class SbCalendarYearComponent extends SbCalendarYearCore {
constructor(elementRef, themeService) {
super(elementRef, themeService);
this.select = new EventEmitter();
this.yearFormat = 'yyyy';
this.markedDates = new MarkedDates();
}
get isMarked() {
return this.markedDates.isRange && (this.markedDates.isBetweenYears(this.year) ||
this.markedDates.isStartSameYear(this.year) ||
this.markedDates.isEndSameYear(this.year)) ||
!this.markedDates.isRange && (this.markedDates.isStartSameYear(this.year) &&
this.markedDates.isEndSameYear(this.year));
}
get isStart() {
return this.markedDates.isRangeYears && this.markedDates.isStartSameYear(this.year);
}
get isEnd() {
return this.markedDates.isRangeYears && this.markedDates.isEndSameYear(this.year);
}
get isBetween() {
return this.markedDates.isRangeYears && this.markedDates.isBetweenYears(this.year);
}
get yearFormatted() {
return fns.format(this.year, this.yearFormat);
}
handleClick() {
if (!this.disabled) {
this.select.emit(this.year);
}
}
}
SbCalendarYearComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbCalendarYearComponent, deps: [{ token: i0.ElementRef }, { token: i1.SbThemeService }], target: i0.ɵɵFactoryTarget.Component });
SbCalendarYearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: SbCalendarYearComponent, selector: "sb-calendar-year", inputs: { color: "color", disabled: "disabled", yearFormat: "yearFormat", year: "year", markedDates: "markedDates" }, outputs: { select: "select" }, host: { listeners: { "click": "handleClick()" }, properties: { "class.marked": "isMarked", "class.start": "isStart", "class.end": "isEnd", "class.between": "isBetween", "class.disabled": "disabled" } }, usesInheritance: true, ngImport: i0, template: "<span>{{ yearFormatted }}</span>\n", encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbCalendarYearComponent, decorators: [{
type: Component,
args: [{ selector: 'sb-calendar-year', encapsulation: ViewEncapsulation.None, host: {
'[class.marked]': 'isMarked',
'[class.start]': 'isStart',
'[class.end]': 'isEnd',
'[class.between]': 'isBetween',
'[class.disabled]': 'disabled',
'(click)': 'handleClick()'
}, inputs: [
'color',
'disabled'
], template: "<span>{{ yearFormatted }}</span>\n" }]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SbThemeService }]; }, propDecorators: { select: [{
type: Output
}], yearFormat: [{
type: Input
}], year: [{
type: Input
}], markedDates: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zYi1lbGVtZW50L3NyYy9saWIvY2FsZW5kYXIveWVhci9jYWxlbmRhci15ZWFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9jYWxlbmRhci95ZWFyL2NhbGVuZGFyLXllYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQWtCLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUcsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFOUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQ3JDLGFBQWEsQ0FDWCxVQUFVLENBQ1IsY0FBYyxDQUNaO0lBQ0UsWUFDUyxXQUF1QixFQUN2QixhQUE2QjtRQUQ3QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7SUFBRyxDQUFDO0NBQzNDLEVBQUUsa0JBQWtCLENBQ3RCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FDakIsRUFBRSxDQUFDLENBQ0wsQ0FDRixDQUFDO0FBbUJGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxrQkFBa0I7SUEwQzdELFlBQ0UsVUFBc0IsRUFDdEIsWUFBNEI7UUFFNUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQTNDM0IsV0FBTSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3RELGVBQVUsR0FBVyxNQUFNLENBQUM7UUFNNUIsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQW1DcEQsQ0FBQztJQWpDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLENBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzFDO1lBQ0QsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxDQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFTTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7O29IQXJEVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwrYUNwQ3BDLG9DQUNBOzJGRG1DYSx1QkFBdUI7a0JBakJuQyxTQUFTOytCQUNFLGtCQUFrQixpQkFFYixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGdCQUFnQixFQUFFLFVBQVU7d0JBQzVCLGVBQWUsRUFBRSxTQUFTO3dCQUMxQixhQUFhLEVBQUUsT0FBTzt3QkFDdEIsaUJBQWlCLEVBQUUsV0FBVzt3QkFDOUIsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsU0FBUyxFQUFFLGVBQWU7cUJBQzNCLFVBQ087d0JBQ04sT0FBTzt3QkFDUCxVQUFVO3FCQUNYOzhIQUtNLE1BQU07c0JBRFosTUFBTTtnQkFJQSxVQUFVO3NCQURoQixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYlRoZW1lU2VydmljZSwgbWl4aW5Db2xvciwgbWl4aW5DbGFzc05hbWUsIENvbG9yLCBtaXhpblRhYmluZGV4LCBtaXhpbkRpc2FibGUgfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0ICogYXMgZm5zIGZyb20gXCJkYXRlLWZuc1wiO1xuaW1wb3J0IHsgTWFya2VkRGF0ZXMgfSBmcm9tIFwiLi4vbWFya2VkLWRhdGVzXCI7XG5cbmNvbnN0IFNiQ2FsZW5kYXJZZWFyQ29yZSA9IG1peGluRGlzYWJsZShcbiAgbWl4aW5UYWJpbmRleChcbiAgICBtaXhpbkNvbG9yKFxuICAgICAgbWl4aW5DbGFzc05hbWUoXG4gICAgICAgIGNsYXNzIHtcbiAgICAgICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICAgIHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgIHB1YmxpYyBfdGhlbWVTZXJ2aWNlOiBTYlRoZW1lU2VydmljZSkge31cbiAgICAgICAgfSwgJ3NiLWNhbGVuZGFyLXllYXInXG4gICAgICApLCBDb2xvci5QUklNQVJZXG4gICAgKSwgMFxuICApXG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1jYWxlbmRhci15ZWFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXllYXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5tYXJrZWRdJzogJ2lzTWFya2VkJyxcbiAgICAnW2NsYXNzLnN0YXJ0XSc6ICdpc1N0YXJ0JyxcbiAgICAnW2NsYXNzLmVuZF0nOiAnaXNFbmQnLFxuICAgICdbY2xhc3MuYmV0d2Vlbl0nOiAnaXNCZXR3ZWVuJyxcbiAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJyhjbGljayknOiAnaGFuZGxlQ2xpY2soKSdcbiAgfSxcbiAgaW5wdXRzOiBbXG4gICAgJ2NvbG9yJyxcbiAgICAnZGlzYWJsZWQnXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNiQ2FsZW5kYXJZZWFyQ29tcG9uZW50IGV4dGVuZHMgU2JDYWxlbmRhclllYXJDb3JlIHtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdDogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB5ZWFyRm9ybWF0OiBzdHJpbmcgPSAneXl5eSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHllYXIhOiBEYXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXJrZWREYXRlczogTWFya2VkRGF0ZXMgPSBuZXcgTWFya2VkRGF0ZXMoKTtcblxuICBnZXQgaXNNYXJrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWFya2VkRGF0ZXMuaXNSYW5nZSAmJiAoXG4gICAgICB0aGlzLm1hcmtlZERhdGVzLmlzQmV0d2VlblllYXJzKHRoaXMueWVhcikgfHxcbiAgICAgIHRoaXMubWFya2VkRGF0ZXMuaXNTdGFydFNhbWVZZWFyKHRoaXMueWVhcikgfHxcbiAgICAgIHRoaXMubWFya2VkRGF0ZXMuaXNFbmRTYW1lWWVhcih0aGlzLnllYXIpXG4gICAgKSB8fFxuICAgICF0aGlzLm1hcmtlZERhdGVzLmlzUmFuZ2UgJiYgKFxuICAgICAgdGhpcy5tYXJrZWREYXRlcy5pc1N0YXJ0U2FtZVllYXIodGhpcy55ZWFyKSAmJlxuICAgICAgdGhpcy5tYXJrZWREYXRlcy5pc0VuZFNhbWVZZWFyKHRoaXMueWVhcilcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWFya2VkRGF0ZXMuaXNSYW5nZVllYXJzICYmIHRoaXMubWFya2VkRGF0ZXMuaXNTdGFydFNhbWVZZWFyKHRoaXMueWVhcik7XG4gIH1cblxuICBnZXQgaXNFbmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWFya2VkRGF0ZXMuaXNSYW5nZVllYXJzICYmIHRoaXMubWFya2VkRGF0ZXMuaXNFbmRTYW1lWWVhcih0aGlzLnllYXIpO1xuICB9XG5cbiAgZ2V0IGlzQmV0d2VlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZWREYXRlcy5pc1JhbmdlWWVhcnMgJiYgdGhpcy5tYXJrZWREYXRlcy5pc0JldHdlZW5ZZWFycyh0aGlzLnllYXIpO1xuICB9XG5cbiAgZ2V0IHllYXJGb3JtYXR0ZWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm5zLmZvcm1hdCh0aGlzLnllYXIsIHRoaXMueWVhckZvcm1hdCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHRoZW1lU2VydmljZTogU2JUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgdGhlbWVTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0LmVtaXQodGhpcy55ZWFyKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPHNwYW4+e3sgeWVhckZvcm1hdHRlZCB9fTwvc3Bhbj5cbiJdfQ==