@taiga-ui/core 4.52.0-canary.2c75afa → 4.52.0-canary.2fa3dd5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/components/calendar/calendar-sheet.options.d.ts +1 -3
- package/components/link/link.options.d.ts +1 -3
- package/components/loader/loader.options.d.ts +1 -3
- package/directives/dropdown/dropdown-hover.options.d.ts +1 -3
- package/directives/group/group.options.d.ts +1 -3
- package/fesm2022/taiga-ui-core-components-calendar.mjs +8 -12
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-link.mjs +4 -8
- package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-loader.mjs +3 -8
- package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-modal.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +3 -7
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-group.mjs +4 -8
- package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +3 -7
- package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
- package/package.json +9 -9
- package/tokens/common-icons.d.ts +1 -3
package/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
export interface TuiCalendarSheetOptions {
|
|
3
2
|
readonly rangeMode: boolean;
|
|
4
3
|
}
|
|
5
4
|
export declare const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions;
|
|
6
|
-
export declare const TUI_CALENDAR_SHEET_OPTIONS: InjectionToken<TuiCalendarSheetOptions
|
|
7
|
-
export declare function tuiCalendarSheetOptionsProvider(options: Partial<TuiCalendarSheetOptions>): Provider;
|
|
5
|
+
export declare const TUI_CALENDAR_SHEET_OPTIONS: import("@angular/core").InjectionToken<TuiCalendarSheetOptions>, tuiCalendarSheetOptionsProvider: (item: Partial<TuiCalendarSheetOptions> | (() => Partial<TuiCalendarSheetOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type FactoryProvider, InjectionToken } from '@angular/core';
|
|
2
1
|
import { type TuiAppearanceOptions } from '@taiga-ui/core/directives/appearance';
|
|
3
2
|
export interface TuiLinkOptions extends TuiAppearanceOptions {
|
|
4
3
|
/**
|
|
@@ -8,5 +7,4 @@ export interface TuiLinkOptions extends TuiAppearanceOptions {
|
|
|
8
7
|
readonly pseudo: boolean;
|
|
9
8
|
}
|
|
10
9
|
export declare const TUI_LINK_DEFAULT_OPTIONS: TuiLinkOptions;
|
|
11
|
-
export declare const TUI_LINK_OPTIONS: InjectionToken<TuiLinkOptions
|
|
12
|
-
export declare function tuiLinkOptionsProvider(options: Partial<TuiLinkOptions>): FactoryProvider;
|
|
10
|
+
export declare const TUI_LINK_OPTIONS: import("@angular/core").InjectionToken<TuiLinkOptions>, tuiLinkOptionsProvider: (item: Partial<TuiLinkOptions> | (() => Partial<TuiLinkOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
import { type TuiSizeXS, type TuiSizeXXL } from '@taiga-ui/core/types';
|
|
3
2
|
export interface TuiLoaderOptions {
|
|
4
3
|
readonly inheritColor: boolean;
|
|
@@ -10,5 +9,4 @@ export declare const TUI_LOADER_DEFAULT_OPTIONS: TuiLoaderOptions;
|
|
|
10
9
|
/**
|
|
11
10
|
* Default parameters for loader component
|
|
12
11
|
*/
|
|
13
|
-
export declare const TUI_LOADER_OPTIONS: InjectionToken<TuiLoaderOptions
|
|
14
|
-
export declare function tuiLoaderOptionsProvider(options: Partial<TuiLoaderOptions>): Provider;
|
|
12
|
+
export declare const TUI_LOADER_OPTIONS: import("@angular/core").InjectionToken<TuiLoaderOptions>, tuiLoaderOptionsProvider: (item: Partial<TuiLoaderOptions> | (() => Partial<TuiLoaderOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
export interface TuiDropdownHoverOptions {
|
|
3
2
|
readonly hideDelay: number;
|
|
4
3
|
readonly showDelay: number;
|
|
@@ -8,5 +7,4 @@ export declare const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS: TuiDropdownHoverOptions
|
|
|
8
7
|
/**
|
|
9
8
|
* Default parameters for dropdown hover directive
|
|
10
9
|
*/
|
|
11
|
-
export declare const TUI_DROPDOWN_HOVER_OPTIONS: InjectionToken<TuiDropdownHoverOptions
|
|
12
|
-
export declare function tuiDropdownHoverOptionsProvider(options: Partial<TuiDropdownHoverOptions>): Provider;
|
|
10
|
+
export declare const TUI_DROPDOWN_HOVER_OPTIONS: import("@angular/core").InjectionToken<TuiDropdownHoverOptions>, tuiDropdownHoverOptionsProvider: (item: Partial<TuiDropdownHoverOptions> | (() => Partial<TuiDropdownHoverOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
import { type TuiOrientation, type TuiSizeL } from '@taiga-ui/core/types';
|
|
3
2
|
export interface TuiGroupOptions {
|
|
4
3
|
readonly size: TuiSizeL;
|
|
@@ -7,5 +6,4 @@ export interface TuiGroupOptions {
|
|
|
7
6
|
readonly orientation: TuiOrientation;
|
|
8
7
|
}
|
|
9
8
|
export declare const TUI_GROUP_DEFAULT_OPTIONS: TuiGroupOptions;
|
|
10
|
-
export declare const TUI_GROUP_OPTIONS: InjectionToken<TuiGroupOptions
|
|
11
|
-
export declare function tuiGroupOptionsProvider(options: Partial<TuiGroupOptions>): Provider;
|
|
9
|
+
export declare const TUI_GROUP_OPTIONS: import("@angular/core").InjectionToken<TuiGroupOptions>, tuiGroupOptionsProvider: (item: Partial<TuiGroupOptions> | (() => Partial<TuiGroupOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, signal, computed, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { TuiDay, TuiMonth, TuiDayRange, TUI_FIRST_DAY, TUI_LAST_DAY, MIN_YEAR, MAX_YEAR, TuiYear, TuiMonthRange, TUI_LAST_DISPLAYED_DAY } from '@taiga-ui/cdk/date-time';
|
|
4
4
|
import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
|
|
5
|
-
import {
|
|
5
|
+
import { tuiNullableSame, tuiPure, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
6
6
|
import { TuiScrollIntoView, TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
|
|
7
7
|
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives';
|
|
8
8
|
import { TUI_SHORT_WEEK_DAYS, TUI_DAY_TYPE_HANDLER, tuiAsAuxiliary } from '@taiga-ui/core/tokens';
|
|
@@ -14,18 +14,14 @@ import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
|
|
|
14
14
|
import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
|
|
15
15
|
import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
|
|
16
16
|
import { TuiCalendarSheetPipe, TuiOrderWeekDaysPipe, TuiMonthPipe } from '@taiga-ui/core/pipes';
|
|
17
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
17
18
|
import { TuiLink } from '@taiga-ui/core/components/link';
|
|
18
19
|
import { TuiSpinButton } from '@taiga-ui/core/components/spin-button';
|
|
19
20
|
|
|
20
21
|
const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS = {
|
|
21
22
|
rangeMode: false,
|
|
22
23
|
};
|
|
23
|
-
const TUI_CALENDAR_SHEET_OPTIONS =
|
|
24
|
-
factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,
|
|
25
|
-
});
|
|
26
|
-
function tuiCalendarSheetOptionsProvider(options) {
|
|
27
|
-
return tuiProvideOptions(TUI_CALENDAR_SHEET_OPTIONS, options, TUI_CALENDAR_SHEET_DEFAULT_OPTIONS);
|
|
28
|
-
}
|
|
24
|
+
const [TUI_CALENDAR_SHEET_OPTIONS, tuiCalendarSheetOptionsProvider] = tuiCreateOptions(TUI_CALENDAR_SHEET_DEFAULT_OPTIONS);
|
|
29
25
|
|
|
30
26
|
class TuiCalendarSheet {
|
|
31
27
|
constructor() {
|
|
@@ -140,7 +136,7 @@ class TuiCalendarSheet {
|
|
|
140
136
|
this.hoveredItemChange.emit(day);
|
|
141
137
|
}
|
|
142
138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", single: "single" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", single: "single" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: TuiOrderWeekDaysPipe, name: "tuiOrderWeekDays" }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
144
140
|
}
|
|
145
141
|
__decorate([
|
|
146
142
|
tuiPure
|
|
@@ -156,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
156
152
|
TuiRepeatTimes,
|
|
157
153
|
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
158
154
|
'[class._picking]': 'isRangePicking',
|
|
159
|
-
}, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;
|
|
155
|
+
}, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"] }]
|
|
160
156
|
}], propDecorators: { month: [{
|
|
161
157
|
type: Input
|
|
162
158
|
}], disabledItemHandler: [{
|
|
@@ -312,13 +308,13 @@ class TuiCalendarYear {
|
|
|
312
308
|
return max < initial ? max + 1 : initial;
|
|
313
309
|
}
|
|
314
310
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
315
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;
|
|
311
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
316
312
|
}
|
|
317
313
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarYear, decorators: [{
|
|
318
314
|
type: Component,
|
|
319
315
|
args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
|
|
320
316
|
'[class._picking]': 'isRangePicking()',
|
|
321
|
-
}, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;
|
|
317
|
+
}, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;inset:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
|
|
322
318
|
}], propDecorators: { rangeMode: [{
|
|
323
319
|
type: Input
|
|
324
320
|
}], disabledItemHandler: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-calendar.mjs","sources":["../../../projects/core/components/calendar/calendar-sheet.options.ts","../../../projects/core/components/calendar/calendar-sheet.component.ts","../../../projects/core/components/calendar/calendar-sheet.template.html","../../../projects/core/components/calendar/calendar-spin.component.ts","../../../projects/core/components/calendar/calendar-spin.template.html","../../../projects/core/components/calendar/calendar-year.component.ts","../../../projects/core/components/calendar/calendar-year.template.html","../../../projects/core/components/calendar/calendar.component.ts","../../../projects/core/components/calendar/calendar.template.html","../../../projects/core/components/calendar/taiga-ui-core-components-calendar.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiCalendarSheetOptions {\n readonly rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions = {\n rangeMode: false,\n};\n\nexport const TUI_CALENDAR_SHEET_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_CALENDAR_SHEET_OPTIONS' : '',\n {\n factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiCalendarSheetOptionsProvider(\n options: Partial<TuiCalendarSheetOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_CALENDAR_SHEET_OPTIONS,\n options,\n TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n );\n}\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiDayRange, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarSheetPipe, TuiOrderWeekDaysPipe} from '@taiga-ui/core/pipes';\nimport {TUI_DAY_TYPE_HANDLER, TUI_SHORT_WEEK_DAYS} from '@taiga-ui/core/tokens';\n\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\n\nexport type TuiMarkerHandler = TuiHandler<TuiDay, [] | [string, string] | [string]>;\n\n@Component({\n selector: 'tui-calendar-sheet',\n imports: [\n AsyncPipe,\n TuiCalendarSheetPipe,\n TuiHovered,\n TuiMapperPipe,\n TuiOrderWeekDaysPipe,\n TuiRepeatTimes,\n ],\n templateUrl: './calendar-sheet.template.html',\n styleUrl: './calendar-sheet.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._picking]': 'isRangePicking',\n },\n})\nexport class TuiCalendarSheet {\n private readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n private readonly today = TuiDay.currentLocal();\n\n protected readonly unorderedWeekDays$ = toObservable(inject(TUI_SHORT_WEEK_DAYS));\n protected readonly dayTypeHandler = inject(TUI_DAY_TYPE_HANDLER);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public value: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n /**\n * @deprecated use static DI options instead\n * ```\n * tuiCalendarSheetOptionsProvider({rangeMode: true})\n * ```\n * TODO(v5): delete it\n */\n @Input()\n public single = true;\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n /**\n * @deprecated TODO(v5): delete it. It is used nowhere except unit tests\n */\n public itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (!(value instanceof TuiDayRange)) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n public onItemHovered(item: TuiDay | false): void {\n this.updateHoveredItem(item || null);\n }\n\n public getItemRange(item: TuiDay): 'active' | 'end' | 'middle' | 'start' | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay && !this.computedRangeMode) {\n return value.daySame(item) ? 'active' : null;\n }\n\n if (value instanceof TuiDayRange && value.isSingleDay) {\n return value.from.daySame(item) ? 'active' : null;\n }\n\n if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {\n return value.find((day) => day.daySame(item)) ? 'active' : null;\n }\n\n const range = this.getRange(value, hoveredItem);\n\n if (range.isSingleDay && range.from.daySame(item)) {\n return 'active';\n }\n\n if (range.from.daySame(item)) {\n return 'start';\n }\n\n if (range.to.daySame(item)) {\n return 'end';\n }\n\n return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;\n }\n\n protected get computedRangeMode(): boolean {\n return !this.single || this.options.rangeMode;\n }\n\n protected get isRangePicking(): boolean {\n return this.computedRangeMode\n ? this.value instanceof TuiDay\n : /**\n * Only for backward compatibility!\n * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`\n */\n this.value instanceof TuiDayRange && this.value.isSingleDay;\n }\n\n protected readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n range: string | null,\n markerHandler: TuiMarkerHandler | null,\n ): [string, string] | [string] | null => {\n if (today || ['active', 'end', 'start'].includes(range || '')) {\n return null;\n }\n\n const markers = markerHandler?.(day);\n\n return markers?.length ? markers : null;\n };\n\n protected itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n protected itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n protected onItemClick(item: TuiDay): void {\n this.dayClick.emit(item);\n }\n\n @tuiPure\n private getRange(\n value: TuiDay | TuiDayRange,\n hoveredItem: TuiDay | null,\n ): TuiDayRange {\n if (value instanceof TuiDay) {\n return TuiDayRange.sort(value, hoveredItem ?? value);\n }\n\n return value.isSingleDay\n ? TuiDayRange.sort(value.from, hoveredItem ?? value.to)\n : value;\n }\n\n private updateHoveredItem(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiMonth,\n type TuiMonthLike,\n type TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {TuiMonthPipe} from '@taiga-ui/core/pipes';\n\n@Component({\n selector: 'tui-calendar-spin',\n imports: [AsyncPipe, TuiLink, TuiMonthPipe, TuiSpinButton],\n templateUrl: './calendar-spin.template.html',\n styleUrl: './calendar-spin.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarSpin {\n @Input()\n public value = TuiMonth.currentLocal();\n\n @Input()\n public min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n public readonly valueChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly yearClick = new EventEmitter<TuiYear>();\n\n protected onYearClick(): void {\n this.yearClick.next(this.value);\n }\n\n protected append(date: TuiMonthLike): void {\n const value = this.value.append(date);\n\n if (this.min.monthSameOrAfter(value)) {\n this.updateValue(this.min);\n } else {\n this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value);\n }\n }\n\n private updateValue(value: TuiMonth): void {\n if (this.value.monthSame(value)) {\n return;\n }\n\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","<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 @if (min.year === max.year) {\n {{ value.formattedYear }}\n } @else {\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 }\n</tui-spin-button>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {\n MAX_YEAR,\n MIN_YEAR,\n TuiDay,\n type TuiDayRange,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\nconst CURRENT_YEAR = TuiMonth.currentLocal().year;\n\n@Component({\n selector: 'tui-calendar-year',\n imports: [TuiHovered, TuiRepeatTimes, TuiScrollIntoView],\n templateUrl: './calendar-year.template.html',\n styleUrl: './calendar-year.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendarYear)],\n host: {\n '[class._picking]': 'isRangePicking()',\n },\n})\nexport class TuiCalendarYear {\n private readonly hoveredItem = signal<number | null>(null);\n\n protected readonly isRangePicking = computed(\n (x = this.value()) =>\n this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth),\n );\n\n @Input()\n public rangeMode = false;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<number> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Output()\n public readonly yearClick = new EventEmitter<number>();\n\n public readonly initialItem = signal<number>(CURRENT_YEAR);\n public readonly min = signal(MIN_YEAR);\n public readonly max = signal(MAX_YEAR);\n public readonly value = signal<\n TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null\n >(null);\n\n // TODO(v5): use signal inputs\n @Input({alias: 'initialItem', transform: (x: number | null) => x ?? CURRENT_YEAR})\n public set initialItemSetter(x: number | null) {\n this.initialItem.set(x ?? CURRENT_YEAR);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'min', transform: (x: number | null) => x ?? MIN_YEAR})\n public set minSetter(x: number) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'max', transform: (x: number | null) => x ?? MAX_YEAR})\n public set maxSetter(x: number) {\n this.max.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('value')\n public set valueSetter(\n x: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null,\n ) {\n this.value.set(x);\n }\n\n public isDisabled(item: number): boolean {\n return (\n (this.max() && this.max() < item) ||\n (this.min() && this.min() > item) ||\n this.disabledItemHandler(item)\n );\n }\n\n public getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null {\n const value = this.value();\n const hoveredItem = this.hoveredItem();\n\n if (value instanceof TuiYear && value.year === item) {\n return 'active';\n }\n\n if (tuiIsNumber(value)) {\n return value === item ? 'active' : null;\n }\n\n if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {\n return value?.find((day) => day.year === item) ? 'active' : null;\n }\n\n const hovered = this.isRangePicking() ? hoveredItem : null;\n const from = 'from' in value ? value.from?.year : value.year;\n const to = 'from' in value ? value.to.year : value.year;\n\n const min = Math.min(from, hovered ?? to);\n const max = Math.max(from, hovered ?? to);\n\n if (min === max && from === to && from === item) {\n return 'active';\n }\n\n if (min === item) {\n return 'start';\n }\n\n if (max === item) {\n return 'end';\n }\n\n return min < item && item < max ? 'middle' : null;\n }\n\n public onItemHovered(hovered: boolean, item: number): void {\n this.hoveredItem.set(hovered ? item : null);\n }\n\n protected get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n protected scrollItemIntoView(item: number): boolean {\n return this.initialItem() === item;\n }\n\n protected getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n protected itemIsToday(item: number): boolean {\n return CURRENT_YEAR === item;\n }\n\n private get calculatedMin(): number {\n const initial = this.initialItem() - LIMIT;\n const min = this.min() ?? MIN_YEAR;\n\n return min > initial ? min : initial;\n }\n\n private get calculatedMax(): number {\n const initial = this.initialItem() + LIMIT;\n const max = this.max() ?? MAX_YEAR;\n\n return max < initial ? max + 1 : initial;\n }\n}\n","<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TUI_LAST_DISPLAYED_DAY,\n TuiDay,\n type TuiDayRange,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {Subject} from 'rxjs';\n\nimport {TuiCalendarSheet, type TuiMarkerHandler} from './calendar-sheet.component';\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\nimport {TuiCalendarSpin} from './calendar-spin.component';\nimport {TuiCalendarYear} from './calendar-year.component';\n\n@Component({\n selector: 'tui-calendar',\n imports: [\n TuiCalendarSheet,\n TuiCalendarSpin,\n TuiCalendarYear,\n TuiMapperPipe,\n TuiScrollbar,\n ],\n templateUrl: './calendar.template.html',\n styleUrl: './calendar.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendar)],\n host: {\n '(pointerdown.prevent.zoneless)': '0',\n },\n})\nexport class TuiCalendar {\n private readonly cdr = inject(ChangeDetectorRef);\n private day: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n private view: 'month' | 'year' = 'month';\n protected readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Input()\n public min: TuiDay | null = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiDay | null = TUI_LAST_DAY;\n\n @Input()\n public minViewedMonth: TuiMonth | null = TUI_FIRST_DAY;\n\n @Input()\n public maxViewedMonth: TuiMonth | null = TUI_LAST_DAY;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n @Output()\n public readonly monthChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n /** @deprecated for private use only until Calendars are refactored */\n public readonly valueChange = new Subject<TuiDay>();\n\n @Input()\n public set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null) {\n this.cdr.markForCheck();\n this.day = value;\n\n if (\n this.showAdjacent &&\n value instanceof TuiDay &&\n value.daySameOrBefore(TUI_LAST_DISPLAYED_DAY)\n ) {\n this.month = value;\n }\n }\n\n @Input()\n public set initialView(view: 'month' | 'year') {\n this.view = view;\n }\n\n public get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null {\n return this.day;\n }\n\n public onPaginationValueChange(month: TuiMonth): void {\n this.updateViewedMonth(month);\n }\n\n public onDayClick(day: TuiDay): void {\n this.dayClick.emit(day);\n this.valueChange.next(day);\n }\n\n public onHoveredItemChange(day: TuiDay | null): void {\n this.updateHoveredDay(day);\n }\n\n protected get computedMin(): TuiDay {\n return this.min ?? TUI_FIRST_DAY;\n }\n\n protected get computedMax(): TuiDay {\n return this.max ?? TUI_LAST_DAY;\n }\n\n protected get computedMinViewedMonth(): TuiMonth {\n const min = this.computedMin;\n const minViewed = this.minViewedMonth ?? TUI_FIRST_DAY;\n\n return minViewed.monthSameOrAfter(min) ? minViewed : min;\n }\n\n protected get computedMaxViewedMonth(): TuiMonth {\n const max = this.computedMax;\n const maxViewed = this.maxViewedMonth ?? TUI_LAST_DAY;\n\n return maxViewed.monthSameOrBefore(max) ? maxViewed : max;\n }\n\n protected get isInYearView(): boolean {\n return this.view === 'year';\n }\n\n protected readonly disabledItemHandlerMapper: TuiMapper<\n [TuiBooleanHandler<TuiDay>, TuiDay, TuiDay],\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min, max) => (item) =>\n item.dayBefore(min) || item.dayAfter(max) || disabledItemHandler(item);\n\n protected onPaginationYearClick(): void {\n this.view = 'year';\n }\n\n protected onPickerYearClick(year: number): void {\n this.view = 'month';\n this.updateViewedMonth(new TuiMonth(year, this.month.month));\n }\n\n private updateViewedMonth(month: TuiMonth): void {\n if (this.month.monthSame(month)) {\n return;\n }\n\n this.month = month;\n this.monthChange.emit(month);\n }\n\n private updateHoveredDay(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","@if (isInYearView) {\n <tui-scrollbar\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n >\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n </tui-scrollbar>\n} @else {\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-calendar.mjs","sources":["../../../projects/core/components/calendar/calendar-sheet.options.ts","../../../projects/core/components/calendar/calendar-sheet.component.ts","../../../projects/core/components/calendar/calendar-sheet.template.html","../../../projects/core/components/calendar/calendar-spin.component.ts","../../../projects/core/components/calendar/calendar-spin.template.html","../../../projects/core/components/calendar/calendar-year.component.ts","../../../projects/core/components/calendar/calendar-year.template.html","../../../projects/core/components/calendar/calendar.component.ts","../../../projects/core/components/calendar/calendar.template.html","../../../projects/core/components/calendar/taiga-ui-core-components-calendar.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCalendarSheetOptions {\n readonly rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions = {\n rangeMode: false,\n};\n\nexport const [TUI_CALENDAR_SHEET_OPTIONS, tuiCalendarSheetOptionsProvider] =\n tuiCreateOptions(TUI_CALENDAR_SHEET_DEFAULT_OPTIONS);\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiDayRange, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarSheetPipe, TuiOrderWeekDaysPipe} from '@taiga-ui/core/pipes';\nimport {TUI_DAY_TYPE_HANDLER, TUI_SHORT_WEEK_DAYS} from '@taiga-ui/core/tokens';\n\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\n\nexport type TuiMarkerHandler = TuiHandler<TuiDay, [] | [string, string] | [string]>;\n\n@Component({\n selector: 'tui-calendar-sheet',\n imports: [\n AsyncPipe,\n TuiCalendarSheetPipe,\n TuiHovered,\n TuiMapperPipe,\n TuiOrderWeekDaysPipe,\n TuiRepeatTimes,\n ],\n templateUrl: './calendar-sheet.template.html',\n styleUrl: './calendar-sheet.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._picking]': 'isRangePicking',\n },\n})\nexport class TuiCalendarSheet {\n private readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n private readonly today = TuiDay.currentLocal();\n\n protected readonly unorderedWeekDays$ = toObservable(inject(TUI_SHORT_WEEK_DAYS));\n protected readonly dayTypeHandler = inject(TUI_DAY_TYPE_HANDLER);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public value: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n /**\n * @deprecated use static DI options instead\n * ```\n * tuiCalendarSheetOptionsProvider({rangeMode: true})\n * ```\n * TODO(v5): delete it\n */\n @Input()\n public single = true;\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n /**\n * @deprecated TODO(v5): delete it. It is used nowhere except unit tests\n */\n public itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (!(value instanceof TuiDayRange)) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n public onItemHovered(item: TuiDay | false): void {\n this.updateHoveredItem(item || null);\n }\n\n public getItemRange(item: TuiDay): 'active' | 'end' | 'middle' | 'start' | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay && !this.computedRangeMode) {\n return value.daySame(item) ? 'active' : null;\n }\n\n if (value instanceof TuiDayRange && value.isSingleDay) {\n return value.from.daySame(item) ? 'active' : null;\n }\n\n if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {\n return value.find((day) => day.daySame(item)) ? 'active' : null;\n }\n\n const range = this.getRange(value, hoveredItem);\n\n if (range.isSingleDay && range.from.daySame(item)) {\n return 'active';\n }\n\n if (range.from.daySame(item)) {\n return 'start';\n }\n\n if (range.to.daySame(item)) {\n return 'end';\n }\n\n return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;\n }\n\n protected get computedRangeMode(): boolean {\n return !this.single || this.options.rangeMode;\n }\n\n protected get isRangePicking(): boolean {\n return this.computedRangeMode\n ? this.value instanceof TuiDay\n : /**\n * Only for backward compatibility!\n * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`\n */\n this.value instanceof TuiDayRange && this.value.isSingleDay;\n }\n\n protected readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n range: string | null,\n markerHandler: TuiMarkerHandler | null,\n ): [string, string] | [string] | null => {\n if (today || ['active', 'end', 'start'].includes(range || '')) {\n return null;\n }\n\n const markers = markerHandler?.(day);\n\n return markers?.length ? markers : null;\n };\n\n protected itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n protected itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n protected onItemClick(item: TuiDay): void {\n this.dayClick.emit(item);\n }\n\n @tuiPure\n private getRange(\n value: TuiDay | TuiDayRange,\n hoveredItem: TuiDay | null,\n ): TuiDayRange {\n if (value instanceof TuiDay) {\n return TuiDayRange.sort(value, hoveredItem ?? value);\n }\n\n return value.isSingleDay\n ? TuiDayRange.sort(value.from, hoveredItem ?? value.to)\n : value;\n }\n\n private updateHoveredItem(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiMonth,\n type TuiMonthLike,\n type TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {TuiMonthPipe} from '@taiga-ui/core/pipes';\n\n@Component({\n selector: 'tui-calendar-spin',\n imports: [AsyncPipe, TuiLink, TuiMonthPipe, TuiSpinButton],\n templateUrl: './calendar-spin.template.html',\n styleUrl: './calendar-spin.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarSpin {\n @Input()\n public value = TuiMonth.currentLocal();\n\n @Input()\n public min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n public readonly valueChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly yearClick = new EventEmitter<TuiYear>();\n\n protected onYearClick(): void {\n this.yearClick.next(this.value);\n }\n\n protected append(date: TuiMonthLike): void {\n const value = this.value.append(date);\n\n if (this.min.monthSameOrAfter(value)) {\n this.updateValue(this.min);\n } else {\n this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value);\n }\n }\n\n private updateValue(value: TuiMonth): void {\n if (this.value.monthSame(value)) {\n return;\n }\n\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","<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 @if (min.year === max.year) {\n {{ value.formattedYear }}\n } @else {\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 }\n</tui-spin-button>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {\n MAX_YEAR,\n MIN_YEAR,\n TuiDay,\n type TuiDayRange,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\nconst CURRENT_YEAR = TuiMonth.currentLocal().year;\n\n@Component({\n selector: 'tui-calendar-year',\n imports: [TuiHovered, TuiRepeatTimes, TuiScrollIntoView],\n templateUrl: './calendar-year.template.html',\n styleUrl: './calendar-year.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendarYear)],\n host: {\n '[class._picking]': 'isRangePicking()',\n },\n})\nexport class TuiCalendarYear {\n private readonly hoveredItem = signal<number | null>(null);\n\n protected readonly isRangePicking = computed(\n (x = this.value()) =>\n this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth),\n );\n\n @Input()\n public rangeMode = false;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<number> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Output()\n public readonly yearClick = new EventEmitter<number>();\n\n public readonly initialItem = signal<number>(CURRENT_YEAR);\n public readonly min = signal(MIN_YEAR);\n public readonly max = signal(MAX_YEAR);\n public readonly value = signal<\n TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null\n >(null);\n\n // TODO(v5): use signal inputs\n @Input({alias: 'initialItem', transform: (x: number | null) => x ?? CURRENT_YEAR})\n public set initialItemSetter(x: number | null) {\n this.initialItem.set(x ?? CURRENT_YEAR);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'min', transform: (x: number | null) => x ?? MIN_YEAR})\n public set minSetter(x: number) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'max', transform: (x: number | null) => x ?? MAX_YEAR})\n public set maxSetter(x: number) {\n this.max.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('value')\n public set valueSetter(\n x: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null,\n ) {\n this.value.set(x);\n }\n\n public isDisabled(item: number): boolean {\n return (\n (this.max() && this.max() < item) ||\n (this.min() && this.min() > item) ||\n this.disabledItemHandler(item)\n );\n }\n\n public getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null {\n const value = this.value();\n const hoveredItem = this.hoveredItem();\n\n if (value instanceof TuiYear && value.year === item) {\n return 'active';\n }\n\n if (tuiIsNumber(value)) {\n return value === item ? 'active' : null;\n }\n\n if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {\n return value?.find((day) => day.year === item) ? 'active' : null;\n }\n\n const hovered = this.isRangePicking() ? hoveredItem : null;\n const from = 'from' in value ? value.from?.year : value.year;\n const to = 'from' in value ? value.to.year : value.year;\n\n const min = Math.min(from, hovered ?? to);\n const max = Math.max(from, hovered ?? to);\n\n if (min === max && from === to && from === item) {\n return 'active';\n }\n\n if (min === item) {\n return 'start';\n }\n\n if (max === item) {\n return 'end';\n }\n\n return min < item && item < max ? 'middle' : null;\n }\n\n public onItemHovered(hovered: boolean, item: number): void {\n this.hoveredItem.set(hovered ? item : null);\n }\n\n protected get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n protected scrollItemIntoView(item: number): boolean {\n return this.initialItem() === item;\n }\n\n protected getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n protected itemIsToday(item: number): boolean {\n return CURRENT_YEAR === item;\n }\n\n private get calculatedMin(): number {\n const initial = this.initialItem() - LIMIT;\n const min = this.min() ?? MIN_YEAR;\n\n return min > initial ? min : initial;\n }\n\n private get calculatedMax(): number {\n const initial = this.initialItem() + LIMIT;\n const max = this.max() ?? MAX_YEAR;\n\n return max < initial ? max + 1 : initial;\n }\n}\n","<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TUI_LAST_DISPLAYED_DAY,\n TuiDay,\n type TuiDayRange,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {Subject} from 'rxjs';\n\nimport {TuiCalendarSheet, type TuiMarkerHandler} from './calendar-sheet.component';\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\nimport {TuiCalendarSpin} from './calendar-spin.component';\nimport {TuiCalendarYear} from './calendar-year.component';\n\n@Component({\n selector: 'tui-calendar',\n imports: [\n TuiCalendarSheet,\n TuiCalendarSpin,\n TuiCalendarYear,\n TuiMapperPipe,\n TuiScrollbar,\n ],\n templateUrl: './calendar.template.html',\n styleUrl: './calendar.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendar)],\n host: {\n '(pointerdown.prevent.zoneless)': '0',\n },\n})\nexport class TuiCalendar {\n private readonly cdr = inject(ChangeDetectorRef);\n private day: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n private view: 'month' | 'year' = 'month';\n protected readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Input()\n public min: TuiDay | null = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiDay | null = TUI_LAST_DAY;\n\n @Input()\n public minViewedMonth: TuiMonth | null = TUI_FIRST_DAY;\n\n @Input()\n public maxViewedMonth: TuiMonth | null = TUI_LAST_DAY;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n @Output()\n public readonly monthChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n /** @deprecated for private use only until Calendars are refactored */\n public readonly valueChange = new Subject<TuiDay>();\n\n @Input()\n public set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null) {\n this.cdr.markForCheck();\n this.day = value;\n\n if (\n this.showAdjacent &&\n value instanceof TuiDay &&\n value.daySameOrBefore(TUI_LAST_DISPLAYED_DAY)\n ) {\n this.month = value;\n }\n }\n\n @Input()\n public set initialView(view: 'month' | 'year') {\n this.view = view;\n }\n\n public get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null {\n return this.day;\n }\n\n public onPaginationValueChange(month: TuiMonth): void {\n this.updateViewedMonth(month);\n }\n\n public onDayClick(day: TuiDay): void {\n this.dayClick.emit(day);\n this.valueChange.next(day);\n }\n\n public onHoveredItemChange(day: TuiDay | null): void {\n this.updateHoveredDay(day);\n }\n\n protected get computedMin(): TuiDay {\n return this.min ?? TUI_FIRST_DAY;\n }\n\n protected get computedMax(): TuiDay {\n return this.max ?? TUI_LAST_DAY;\n }\n\n protected get computedMinViewedMonth(): TuiMonth {\n const min = this.computedMin;\n const minViewed = this.minViewedMonth ?? TUI_FIRST_DAY;\n\n return minViewed.monthSameOrAfter(min) ? minViewed : min;\n }\n\n protected get computedMaxViewedMonth(): TuiMonth {\n const max = this.computedMax;\n const maxViewed = this.maxViewedMonth ?? TUI_LAST_DAY;\n\n return maxViewed.monthSameOrBefore(max) ? maxViewed : max;\n }\n\n protected get isInYearView(): boolean {\n return this.view === 'year';\n }\n\n protected readonly disabledItemHandlerMapper: TuiMapper<\n [TuiBooleanHandler<TuiDay>, TuiDay, TuiDay],\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min, max) => (item) =>\n item.dayBefore(min) || item.dayAfter(max) || disabledItemHandler(item);\n\n protected onPaginationYearClick(): void {\n this.view = 'year';\n }\n\n protected onPickerYearClick(year: number): void {\n this.view = 'month';\n this.updateViewedMonth(new TuiMonth(year, this.month.month));\n }\n\n private updateViewedMonth(month: TuiMonth): void {\n if (this.month.monthSame(month)) {\n return;\n }\n\n this.month = month;\n this.monthChange.emit(month);\n }\n\n private updateHoveredDay(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","@if (isInYearView) {\n <tui-scrollbar\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n >\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n </tui-scrollbar>\n} @else {\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ChangeDetectionStrategy, ViewEncapsulation, Component, input, inject, Directive } from '@angular/core';
|
|
3
|
+
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
4
4
|
import * as i1 from '@taiga-ui/core/directives/appearance';
|
|
5
5
|
import { tuiAppearanceOptionsProvider, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
|
|
6
6
|
import * as i2 from '@taiga-ui/core/directives/icons';
|
|
7
7
|
import { TuiWithIcons } from '@taiga-ui/core/directives/icons';
|
|
8
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
8
9
|
|
|
9
10
|
const TUI_LINK_DEFAULT_OPTIONS = {
|
|
10
11
|
appearance: 'action',
|
|
11
12
|
pseudo: false,
|
|
12
13
|
};
|
|
13
|
-
const TUI_LINK_OPTIONS =
|
|
14
|
-
factory: () => TUI_LINK_DEFAULT_OPTIONS,
|
|
15
|
-
});
|
|
16
|
-
function tuiLinkOptionsProvider(options) {
|
|
17
|
-
return tuiProvideOptions(TUI_LINK_OPTIONS, options, TUI_LINK_DEFAULT_OPTIONS);
|
|
18
|
-
}
|
|
14
|
+
const [TUI_LINK_OPTIONS, tuiLinkOptionsProvider] = tuiCreateOptions(TUI_LINK_DEFAULT_OPTIONS);
|
|
19
15
|
|
|
20
16
|
class Styles {
|
|
21
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-link.mjs","sources":["../../../projects/core/components/link/link.options.ts","../../../projects/core/components/link/link.directive.ts","../../../projects/core/components/link/taiga-ui-core-components-link.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-link.mjs","sources":["../../../projects/core/components/link/link.options.ts","../../../projects/core/components/link/link.directive.ts","../../../projects/core/components/link/taiga-ui-core-components-link.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\n\n// TODO: remove in v5\nexport interface TuiLinkOptions extends TuiAppearanceOptions {\n /**\n * @deprecated: use on host\n * [style.text-decoration-line]=\"'underline'\"\n */\n readonly pseudo: boolean;\n}\n\nexport const TUI_LINK_DEFAULT_OPTIONS: TuiLinkOptions = {\n appearance: 'action',\n pseudo: false,\n};\n\nexport const [TUI_LINK_OPTIONS, tuiLinkOptionsProvider] = tuiCreateOptions(\n TUI_LINK_DEFAULT_OPTIONS,\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_LINK_OPTIONS} from './link.options';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/core/styles/components/link.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-link'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'a[tuiLink], button[tuiLink]',\n providers: [tuiAppearanceOptionsProvider(TUI_LINK_OPTIONS)],\n hostDirectives: [TuiWithAppearance, TuiWithIcons],\n host: {\n tuiLink: '',\n '[style.text-decoration-line]': 'pseudo() ? \"underline\" : null',\n },\n})\nexport class TuiLink {\n protected readonly nothing = tuiWithStyles(Styles);\n\n /**\n * @deprecated: use on host\n * [style.text-decoration-line]=\"'underline'\"\n */\n public readonly pseudo = input(inject(TUI_LINK_OPTIONS).pseudo);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAYa,MAAA,wBAAwB,GAAmB;AACpD,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,MAAM,EAAE,KAAK;;AAGV,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,gBAAgB,CACtE,wBAAwB;;ACD5B,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,8GANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,o6EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,UAAU,EAAC,EAAA,MAAA,EAAA,CAAA,o6EAAA,CAAA,EAAA;;MAahB,OAAO,CAAA;AATpB,IAAA,WAAA,GAAA;AAUuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAElD;;;AAGG;QACa,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAClE;+GARY,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,2UAPL,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAOlD,OAAO,EAAA,UAAA,EAAA,CAAA;kBATnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,SAAS,EAAE,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;AAC3D,oBAAA,cAAc,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;AACjD,oBAAA,IAAI,EAAE;AACF,wBAAA,OAAO,EAAE,EAAE;AACX,wBAAA,8BAA8B,EAAE,+BAA+B;AAClE,qBAAA;AACJ,iBAAA;;;AClCD;;AAEG;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, computed, input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
|
|
4
4
|
import { tuiIsSafari } from '@taiga-ui/cdk/utils/browser';
|
|
5
5
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
6
6
|
import { tuiSizeBigger } from '@taiga-ui/core/utils/miscellaneous';
|
|
7
7
|
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
8
|
-
import {
|
|
8
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
9
9
|
|
|
10
10
|
/** Default values for the loader options. */
|
|
11
11
|
const TUI_LOADER_DEFAULT_OPTIONS = {
|
|
@@ -16,12 +16,7 @@ const TUI_LOADER_DEFAULT_OPTIONS = {
|
|
|
16
16
|
/**
|
|
17
17
|
* Default parameters for loader component
|
|
18
18
|
*/
|
|
19
|
-
const TUI_LOADER_OPTIONS =
|
|
20
|
-
factory: () => TUI_LOADER_DEFAULT_OPTIONS,
|
|
21
|
-
});
|
|
22
|
-
function tuiLoaderOptionsProvider(options) {
|
|
23
|
-
return tuiProvideOptions(TUI_LOADER_OPTIONS, options, TUI_LOADER_DEFAULT_OPTIONS);
|
|
24
|
-
}
|
|
19
|
+
const [TUI_LOADER_OPTIONS, tuiLoaderOptionsProvider] = tuiCreateOptions(TUI_LOADER_DEFAULT_OPTIONS);
|
|
25
20
|
|
|
26
21
|
class TuiLoader {
|
|
27
22
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-loader.mjs","sources":["../../../projects/core/components/loader/loader.options.ts","../../../projects/core/components/loader/loader.component.ts","../../../projects/core/components/loader/loader.template.html","../../../projects/core/components/loader/taiga-ui-core-components-loader.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-loader.mjs","sources":["../../../projects/core/components/loader/loader.options.ts","../../../projects/core/components/loader/loader.component.ts","../../../projects/core/components/loader/loader.template.html","../../../projects/core/components/loader/taiga-ui-core-components-loader.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeXS, type TuiSizeXXL} from '@taiga-ui/core/types';\n\nexport interface TuiLoaderOptions {\n readonly inheritColor: boolean;\n readonly overlay: boolean;\n readonly size: TuiSizeXS | TuiSizeXXL;\n}\n\n/** Default values for the loader options. */\nexport const TUI_LOADER_DEFAULT_OPTIONS: TuiLoaderOptions = {\n size: 'm',\n inheritColor: false,\n overlay: false,\n};\n\n/**\n * Default parameters for loader component\n */\nexport const [TUI_LOADER_OPTIONS, tuiLoaderOptionsProvider] = tuiCreateOptions(\n TUI_LOADER_DEFAULT_OPTIONS,\n);\n","import {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiIsSafari} from '@taiga-ui/cdk/utils/browser';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiSizeBigger} from '@taiga-ui/core/utils/miscellaneous';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_LOADER_OPTIONS} from './loader.options';\n\n@Component({\n selector: 'tui-loader',\n imports: [PolymorpheusOutlet],\n templateUrl: './loader.template.html',\n styleUrl: './loader.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._loading]': 'loading()',\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiLoader {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly options = inject(TUI_LOADER_OPTIONS);\n protected readonly isApple = tuiIsSafari(tuiInjectElement()) || this.isIOS;\n\n protected readonly isHorizontal = computed(() => !tuiSizeBigger(this.size()));\n\n public readonly size = input(this.options.size);\n\n public readonly inheritColor = input(this.options.inheritColor);\n\n public readonly overlay = input(this.options.overlay);\n\n public readonly textContent = input<PolymorpheusContent>();\n\n public readonly loading = input(true);\n}\n","<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading() || null\"\n [class.t-content_has-overlay]=\"overlay() && loading()\"\n [class.t-content_loading]=\"loading()\"\n [disabled]=\"loading() && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading()) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal()\"\n [class.t-loader_inherit-color]=\"inheritColor()\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent()) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal()\"\n >\n <ng-container *polymorpheusOutlet=\"textContent() as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AASA;AACa,MAAA,0BAA0B,GAAqB;AACxD,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,OAAO,EAAE,KAAK;;AAGlB;;AAEG;AACI,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,GAAG,gBAAgB,CAC1E,0BAA0B;;MCAjB,SAAS,CAAA;AAXtB,IAAA,WAAA,GAAA;AAYqB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAClC,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK;AAEvD,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAE/B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAE/C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,IAAW,CAAA,WAAA,GAAG,KAAK,EAAuB;AAE1C,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;AACxC;+GAhBY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBtB,iqCA0CA,EAAA,MAAA,EAAA,CAAA,qsEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED/Bc,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FASnB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAXrB,SAAS;+BACI,YAAY,EAAA,OAAA,EACb,CAAC,kBAAkB,CAAC,mBAGZ,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,WAAW;AAC/B,wBAAA,kBAAkB,EAAE,QAAQ;AAC/B,qBAAA,EAAA,QAAA,EAAA,iqCAAA,EAAA,MAAA,EAAA,CAAA,qsEAAA,CAAA,EAAA;;;AElBL;;AAEG;;;;"}
|