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.4 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 SbCalendarMonthCore = mixinDisable(mixinTabindex(mixinColor(mixinClassName(class {
constructor(_elementRef, _themeService) {
this._elementRef = _elementRef;
this._themeService = _themeService;
}
}, 'sb-calendar-month'), Color.PRIMARY), 0));
export class SbCalendarMonthComponent extends SbCalendarMonthCore {
constructor(elementRef, themeService) {
super(elementRef, themeService);
this.select = new EventEmitter();
this.monthFormat = 'MMMM';
this.markedDates = new MarkedDates();
}
get isMarked() {
return this.markedDates.isRange && (this.markedDates.isBetweenMonths(this.month) ||
this.markedDates.isStartSameMonth(this.month) ||
this.markedDates.isEndSameMonth(this.month)) ||
!this.markedDates.isRange && (this.markedDates.isStartSameMonth(this.month) &&
this.markedDates.isEndSameMonth(this.month));
}
get isStart() {
return this.markedDates.isRangeMonths && this.markedDates.isStartSameMonth(this.month);
}
get isEnd() {
return this.markedDates.isRangeMonths && this.markedDates.isEndSameMonth(this.month);
}
get isBetween() {
return this.markedDates.isRangeMonths && this.markedDates.isBetweenMonths(this.month);
}
get monthFormatted() {
return fns.format(this.month, this.monthFormat);
}
handleClick() {
if (!this.disabled) {
this.select.emit(this.month);
}
}
}
SbCalendarMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbCalendarMonthComponent, deps: [{ token: i0.ElementRef }, { token: i1.SbThemeService }], target: i0.ɵɵFactoryTarget.Component });
SbCalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: SbCalendarMonthComponent, selector: "sb-calendar-month", inputs: { color: "color", disabled: "disabled", monthFormat: "monthFormat", month: "month", 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>{{ monthFormatted }}</span>\n", encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbCalendarMonthComponent, decorators: [{
type: Component,
args: [{ selector: 'sb-calendar-month', 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>{{ monthFormatted }}</span>\n" }]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SbThemeService }]; }, propDecorators: { select: [{
type: Output
}], monthFormat: [{
type: Input
}], month: [{
type: Input
}], markedDates: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc2ItZWxlbWVudC9zcmMvbGliL2NhbGVuZGFyL21vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9jYWxlbmRhci9tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBa0IsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RyxPQUFPLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUc5QyxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FDdEMsYUFBYSxDQUNYLFVBQVUsQ0FDUixjQUFjLENBQ1o7SUFDRSxZQUNTLFdBQXVCLEVBQ3ZCLGFBQTZCO1FBRDdCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtJQUFHLENBQUM7Q0FDM0MsRUFBRSxtQkFBbUIsQ0FDdkIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUNqQixFQUFFLENBQUMsQ0FDTCxDQUNGLENBQUM7QUFtQkYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjtJQTBDL0QsWUFDRSxVQUFzQixFQUN0QixZQUE0QjtRQUU1QixLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBM0MzQixXQUFNLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHdEQsZ0JBQVcsR0FBVyxNQUFNLENBQUM7UUFNN0IsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQW1DcEQsQ0FBQztJQWpDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLENBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDNUM7WUFDRCxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLENBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBU00sV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDOztxSEFyRFUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isb2JDckNyQyxxQ0FDQTsyRkRvQ2Esd0JBQXdCO2tCQWpCcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBRWQsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixnQkFBZ0IsRUFBRSxVQUFVO3dCQUM1QixlQUFlLEVBQUUsU0FBUzt3QkFDMUIsYUFBYSxFQUFFLE9BQU87d0JBQ3RCLGlCQUFpQixFQUFFLFdBQVc7d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLFNBQVMsRUFBRSxlQUFlO3FCQUMzQixVQUNPO3dCQUNOLE9BQU87d0JBQ1AsVUFBVTtxQkFDWDs4SEFLTSxNQUFNO3NCQURaLE1BQU07Z0JBSUEsV0FBVztzQkFEakIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2JUaGVtZVNlcnZpY2UsIG1peGluQ29sb3IsIG1peGluQ2xhc3NOYW1lLCBDb2xvciwgbWl4aW5UYWJpbmRleCwgbWl4aW5EaXNhYmxlIH0gZnJvbSBcIi4uLy4uL2NvcmVcIjtcbmltcG9ydCAqIGFzIGZucyBmcm9tIFwiZGF0ZS1mbnNcIjtcbmltcG9ydCB7IE1hcmtlZERhdGVzIH0gZnJvbSBcIi4uL21hcmtlZC1kYXRlc1wiO1xuXG5cbmNvbnN0IFNiQ2FsZW5kYXJNb250aENvcmUgPSBtaXhpbkRpc2FibGUoXG4gIG1peGluVGFiaW5kZXgoXG4gICAgbWl4aW5Db2xvcihcbiAgICAgIG1peGluQ2xhc3NOYW1lKFxuICAgICAgICBjbGFzcyB7XG4gICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICBwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBwdWJsaWMgX3RoZW1lU2VydmljZTogU2JUaGVtZVNlcnZpY2UpIHt9XG4gICAgICAgIH0sICdzYi1jYWxlbmRhci1tb250aCdcbiAgICAgICksIENvbG9yLlBSSU1BUllcbiAgICApLCAwXG4gIClcbik7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLWNhbGVuZGFyLW1vbnRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MubWFya2VkXSc6ICdpc01hcmtlZCcsXG4gICAgJ1tjbGFzcy5zdGFydF0nOiAnaXNTdGFydCcsXG4gICAgJ1tjbGFzcy5lbmRdJzogJ2lzRW5kJyxcbiAgICAnW2NsYXNzLmJldHdlZW5dJzogJ2lzQmV0d2VlbicsXG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICcoY2xpY2spJzogJ2hhbmRsZUNsaWNrKCknXG4gIH0sXG4gIGlucHV0czogW1xuICAgICdjb2xvcicsXG4gICAgJ2Rpc2FibGVkJ1xuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYkNhbGVuZGFyTW9udGhDb21wb25lbnQgZXh0ZW5kcyBTYkNhbGVuZGFyTW9udGhDb3JlIHtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdDogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtb250aEZvcm1hdDogc3RyaW5nID0gJ01NTU0nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtb250aCE6IERhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1hcmtlZERhdGVzOiBNYXJrZWREYXRlcyA9IG5ldyBNYXJrZWREYXRlcygpO1xuXG4gIGdldCBpc01hcmtlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZWREYXRlcy5pc1JhbmdlICYmIChcbiAgICAgIHRoaXMubWFya2VkRGF0ZXMuaXNCZXR3ZWVuTW9udGhzKHRoaXMubW9udGgpIHx8XG4gICAgICB0aGlzLm1hcmtlZERhdGVzLmlzU3RhcnRTYW1lTW9udGgodGhpcy5tb250aCkgfHxcbiAgICAgIHRoaXMubWFya2VkRGF0ZXMuaXNFbmRTYW1lTW9udGgodGhpcy5tb250aClcbiAgICApIHx8XG4gICAgIXRoaXMubWFya2VkRGF0ZXMuaXNSYW5nZSAmJiAoXG4gICAgICB0aGlzLm1hcmtlZERhdGVzLmlzU3RhcnRTYW1lTW9udGgodGhpcy5tb250aCkgJiZcbiAgICAgIHRoaXMubWFya2VkRGF0ZXMuaXNFbmRTYW1lTW9udGgodGhpcy5tb250aClcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWFya2VkRGF0ZXMuaXNSYW5nZU1vbnRocyAmJiB0aGlzLm1hcmtlZERhdGVzLmlzU3RhcnRTYW1lTW9udGgodGhpcy5tb250aCk7XG4gIH1cblxuICBnZXQgaXNFbmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWFya2VkRGF0ZXMuaXNSYW5nZU1vbnRocyAmJiB0aGlzLm1hcmtlZERhdGVzLmlzRW5kU2FtZU1vbnRoKHRoaXMubW9udGgpO1xuICB9XG5cbiAgZ2V0IGlzQmV0d2VlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZWREYXRlcy5pc1JhbmdlTW9udGhzICYmIHRoaXMubWFya2VkRGF0ZXMuaXNCZXR3ZWVuTW9udGhzKHRoaXMubW9udGgpO1xuICB9XG5cbiAgZ2V0IG1vbnRoRm9ybWF0dGVkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZucy5mb3JtYXQodGhpcy5tb250aCwgdGhpcy5tb250aEZvcm1hdCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHRoZW1lU2VydmljZTogU2JUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgdGhlbWVTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0LmVtaXQodGhpcy5tb250aCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxzcGFuPnt7IG1vbnRoRm9ybWF0dGVkIH19PC9zcGFuPlxuIl19