UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

53 lines 10.4 kB
import { AsyncPipe, NgIf } from '@angular/common'; import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core'; import { TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth, } from '@taiga-ui/cdk/date-time'; import { TuiLink } from '@taiga-ui/core/components/link'; import { TuiSpinButton } from '@taiga-ui/core/components/spin-button'; import { TuiMonthPipe } from '@taiga-ui/core/pipes'; import * as i0 from "@angular/core"; class TuiCalendarSpin { constructor() { this.value = TuiMonth.currentLocal(); this.min = TUI_FIRST_DAY; this.max = TUI_LAST_DAY; this.valueChange = new EventEmitter(); this.yearClick = new EventEmitter(); } onYearClick() { this.yearClick.next(this.value); } append(date) { const value = this.value.append(date); if (this.min.monthSameOrAfter(value)) { this.updateValue(this.min); } else { this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value); } } updateValue(value) { if (this.value.monthSame(value)) { return; } this.value = value; this.valueChange.emit(value); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSpin, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarSpin, isStandalone: true, selector: "tui-calendar-spin", inputs: { value: "value", min: "min", max: "max" }, outputs: { valueChange: "valueChange", yearClick: "yearClick" }, ngImport: i0, template: "<tui-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"value.monthSameOrBefore(min)\"\n [rightDisabled]=\"value.monthSameOrAfter(max)\"\n (leftClick)=\"append({month: -1})\"\n (rightClick)=\"append({month: 1})\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"min.year === max.year; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n id=\"year-btn\"\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-spin-button>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "pipe", type: TuiMonthPipe, name: "tuiMonth" }, { kind: "component", type: TuiSpinButton, selector: "tui-spin-button", inputs: ["focusable", "disabled", "leftDisabled", "rightDisabled"], outputs: ["leftClick", "rightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } export { TuiCalendarSpin }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSpin, decorators: [{ type: Component, args: [{ standalone: true, selector: 'tui-calendar-spin', imports: [AsyncPipe, NgIf, TuiLink, TuiMonthPipe, TuiSpinButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"value.monthSameOrBefore(min)\"\n [rightDisabled]=\"value.monthSameOrAfter(max)\"\n (leftClick)=\"append({month: -1})\"\n (rightClick)=\"append({month: 1})\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"min.year === max.year; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n id=\"year-btn\"\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-spin-button>\n", styles: [":host{display:block}\n"] }] }], propDecorators: { value: [{ type: Input }], min: [{ type: Input }], max: [{ type: Input }], valueChange: [{ type: Output }], yearClick: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc3Bpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXItc3Bpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXItc3Bpbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGFBQWEsRUFDYixZQUFZLEVBQ1osUUFBUSxHQUdYLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBRWxELE1BUWEsZUFBZTtJQVI1QjtRQVVXLFVBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHaEMsUUFBRyxHQUFhLGFBQWEsQ0FBQztRQUc5QixRQUFHLEdBQWEsWUFBWSxDQUFDO1FBR3BCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUczQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQXdCM0Q7SUF0QmEsV0FBVztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLE1BQU0sQ0FBQyxJQUFrQjtRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUU7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQXJDUSxlQUFlO21HQUFmLGVBQWUsa01DM0I1Qix1d0JBd0JBLDJFREZjLFNBQVMsOENBQUUsSUFBSSw2RkFBRSxPQUFPLHVGQUFFLFlBQVksaURBQUUsYUFBYTs7U0FLdEQsZUFBZTs0RkFBZixlQUFlO2tCQVIzQixTQUFTO2lDQUNNLElBQUksWUFDTixtQkFBbUIsV0FDcEIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLG1CQUcvQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUl4QyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJVSxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLFNBQVM7c0JBRHhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlNb250aCxcbiAgICB0eXBlIFR1aU1vbnRoTGlrZSxcbiAgICB0eXBlIFR1aVllYXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpTGlua30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9saW5rJztcbmltcG9ydCB7VHVpU3BpbkJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zcGluLWJ1dHRvbic7XG5pbXBvcnQge1R1aU1vbnRoUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWNhbGVuZGFyLXNwaW4nLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nSWYsIFR1aUxpbmssIFR1aU1vbnRoUGlwZSwgVHVpU3BpbkJ1dHRvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXNwaW4udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItc3Bpbi5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNhbGVuZGFyU3BpbiB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUgPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbjogVHVpTW9udGggPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4OiBUdWlNb250aCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpTW9udGg+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgeWVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlZZWFyPigpO1xuXG4gICAgcHJvdGVjdGVkIG9uWWVhckNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnllYXJDbGljay5uZXh0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhcHBlbmQoZGF0ZTogVHVpTW9udGhMaWtlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZS5hcHBlbmQoZGF0ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMubWluLm1vbnRoU2FtZU9yQWZ0ZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubWluKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5tYXgubW9udGhTYW1lT3JCZWZvcmUodmFsdWUpID8gdGhpcy5tYXggOiB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBUdWlNb250aCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZS5tb250aFNhbWUodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxufVxuIiwiPHR1aS1zcGluLWJ1dHRvblxuICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgIFtsZWZ0RGlzYWJsZWRdPVwidmFsdWUubW9udGhTYW1lT3JCZWZvcmUobWluKVwiXG4gICAgW3JpZ2h0RGlzYWJsZWRdPVwidmFsdWUubW9udGhTYW1lT3JBZnRlcihtYXgpXCJcbiAgICAobGVmdENsaWNrKT1cImFwcGVuZCh7bW9udGg6IC0xfSlcIlxuICAgIChyaWdodENsaWNrKT1cImFwcGVuZCh7bW9udGg6IDF9KVwiXG4+XG4gICAge3sgdmFsdWUgfCB0dWlNb250aCB8IGFzeW5jIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pbi55ZWFyID09PSBtYXgueWVhcjsgZWxzZSBidXR0b25cIj5cbiAgICAgICAge3sgdmFsdWUuZm9ybWF0dGVkWWVhciB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cInllYXItYnRuXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXllYXItbW9udGgtcGFnaW5hdGlvbl9feWVhci1idXR0b25cIlxuICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblllYXJDbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdmFsdWUuZm9ybWF0dGVkWWVhciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktc3Bpbi1idXR0b24+XG4iXX0=