@taiga-ui/experimental 5.5.0 → 5.6.0-canary.aa2a7bc

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.
@@ -0,0 +1,20 @@
1
+ import { TuiDay, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
2
+ import { type TuiBooleanHandler } from '@taiga-ui/cdk/types';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @deprecated: work in progress, do not use!
6
+ */
7
+ export declare class TuiCalendar {
8
+ private readonly options;
9
+ private readonly days;
10
+ protected readonly today: TuiDay;
11
+ protected readonly hovered: import("@angular/core").WritableSignal<TuiDay | null>;
12
+ protected readonly week: import("@angular/core").Signal<string[]>;
13
+ readonly pick: import("@angular/core").OutputEmitterRef<TuiDay>;
14
+ readonly month: import("@angular/core").InputSignal<TuiMonth>;
15
+ readonly value: import("@angular/core").InputSignal<TuiDay | TuiDayRange | readonly TuiDay[] | null>;
16
+ readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<TuiDay>>;
17
+ protected getRange(day: TuiDay): 'end' | 'middle' | 'single' | 'start' | null;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiCalendar, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendar, "tui-calendar", never, { "month": { "alias": "month"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; }, { "pick": "pick"; }, never, never, true, never>;
20
+ }
@@ -0,0 +1 @@
1
+ export * from './calendar.component';
@@ -0,0 +1,15 @@
1
+ import { type TuiBooleanHandler, type TuiContext } from '@taiga-ui/cdk/types';
2
+ import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @deprecated: work in progress, do not use!
6
+ */
7
+ export declare class TuiDataGrid<T> {
8
+ readonly pick: import("@angular/core").OutputEmitterRef<T>;
9
+ readonly items: import("@angular/core").InputSignal<readonly T[]>;
10
+ readonly content: import("@angular/core").InputSignal<PolymorpheusContent<TuiContext<T>>>;
11
+ readonly value: import("@angular/core").InputSignalWithTransform<readonly T[], T | readonly T[]>;
12
+ readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<T>>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDataGrid<any>, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiDataGrid<any>, "tui-data-grid", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; }, { "pick": "pick"; }, never, never, true, never>;
15
+ }
@@ -0,0 +1 @@
1
+ export * from './data-grid.component';
@@ -0,0 +1,40 @@
1
+ import { type TuiDay, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
2
+ import { type TuiBooleanHandler, type TuiContext } from '@taiga-ui/cdk/types';
3
+ import { TuiCarouselComponent } from '@taiga-ui/core/components/carousel';
4
+ import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * @deprecated: work in progress, do not use!
8
+ */
9
+ export declare class TuiDatePicker {
10
+ protected readonly carousel: import("@angular/core").Signal<TuiCarouselComponent | undefined>;
11
+ protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
12
+ protected readonly texts: import("@angular/core").Signal<readonly [previous: string, next: string]>;
13
+ protected readonly i18n: import("@angular/core").Signal<readonly [January: string, February: string, March: string, April: string, May: string, June: string, July: string, August: string, September: string, October: string, November: string, December: string]>;
14
+ protected readonly month: import("@angular/core").Signal<PolymorpheusContent<TuiContext<number>>>;
15
+ protected readonly years: import("@angular/core").Signal<number[]>;
16
+ protected readonly months: import("@angular/core").Signal<number[]>;
17
+ protected readonly button: import("@angular/core").Signal<string>;
18
+ protected readonly yearMin: import("@angular/core").Signal<number>;
19
+ protected readonly yearMax: import("@angular/core").Signal<number>;
20
+ protected readonly disabledDay: import("@angular/core").Signal<(day: TuiDay) => boolean>;
21
+ protected readonly disabledMonth: import("@angular/core").Signal<(month: number) => boolean>;
22
+ protected readonly disabledYear: import("@angular/core").Signal<(year: number) => boolean>;
23
+ protected readonly start: import("@angular/core").Signal<boolean>;
24
+ protected readonly end: import("@angular/core").Signal<boolean>;
25
+ readonly view: import("@angular/core").ModelSignal<"month" | "year" | "day">;
26
+ readonly value: import("@angular/core").ModelSignal<TuiDay | TuiDayRange | readonly TuiDay[] | null>;
27
+ readonly current: import("@angular/core").ModelSignal<TuiMonth>;
28
+ readonly mode: import("@angular/core").InputSignal<"multi" | "range" | "single">;
29
+ readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<TuiDay>>;
30
+ readonly min: import("@angular/core").InputSignalWithTransform<TuiDay, TuiDay | null | undefined>;
31
+ readonly max: import("@angular/core").InputSignalWithTransform<TuiDay, TuiDay | null | undefined>;
32
+ protected getMonth(index: number): TuiMonth;
33
+ protected getItems(initial: number): readonly number[];
34
+ protected onSpin(step: number): void;
35
+ protected onYear(year: number): void;
36
+ protected onMonth(index: number): void;
37
+ protected onDay(day: TuiDay): void;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDatePicker, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiDatePicker, "tui-date-picker", never, { "view": { "alias": "view"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "view": "viewChange"; "value": "valueChange"; "current": "currentChange"; }, never, never, true, never>;
40
+ }
@@ -0,0 +1 @@
1
+ export * from './date-picker.component';
@@ -1,2 +1,5 @@
1
+ export * from '@taiga-ui/experimental/components/calendar';
2
+ export * from '@taiga-ui/experimental/components/data-grid';
3
+ export * from '@taiga-ui/experimental/components/date-picker';
1
4
  export * from '@taiga-ui/experimental/components/popout';
2
5
  export * from '@taiga-ui/experimental/components/search-results';
@@ -0,0 +1,63 @@
1
+ import { coerceArray } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, signal, computed, output, input, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
5
+ import { TuiDay, TuiMonth, TuiDayRange } from '@taiga-ui/cdk/date-time';
6
+ import { TUI_CALENDAR_OPTIONS, TuiCalendarSheetPipe } from '@taiga-ui/core/components/calendar';
7
+ import { TUI_SHORT_WEEK_DAYS } from '@taiga-ui/core/tokens';
8
+
9
+ /**
10
+ * @deprecated: work in progress, do not use!
11
+ */
12
+ class TuiCalendar {
13
+ constructor() {
14
+ this.options = inject(TUI_CALENDAR_OPTIONS);
15
+ this.days = inject(TUI_SHORT_WEEK_DAYS);
16
+ this.today = TuiDay.currentLocal();
17
+ this.hovered = signal(null);
18
+ this.week = computed((week = convert(this.days())) => [
19
+ ...week.slice(this.options.weekStart()),
20
+ ...week.slice(0, this.options.weekStart()),
21
+ ]);
22
+ this.pick = output();
23
+ this.month = input(TuiMonth.currentLocal());
24
+ this.value = input(null);
25
+ this.disabledItemHandler = input(TUI_FALSE_HANDLER);
26
+ }
27
+ getRange(day) {
28
+ const value = this.value() || [];
29
+ if (!(value instanceof TuiDayRange)) {
30
+ return coerceArray(value).find((item) => day.daySame(item)) ? 'single' : null;
31
+ }
32
+ const hovered = this.hovered();
33
+ const range = value.from === value.to && hovered
34
+ ? TuiDayRange.sort(hovered, value.to)
35
+ : value;
36
+ if (range.isSingleDay && day.daySame(range.from)) {
37
+ return 'single';
38
+ }
39
+ if (day.daySame(range.from)) {
40
+ return 'start';
41
+ }
42
+ if (day.daySame(range.to)) {
43
+ return 'end';
44
+ }
45
+ return range.dayInRange(day) ? 'middle' : null;
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabledItemHandler: { classPropertyName: "disabledItemHandler", publicName: "disabledItemHandler", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pick: "pick" }, host: { listeners: { "mouseleave": "hovered.set(null)" } }, ngImport: i0, template: "@for (day of week(); track $index) {\n <span>{{ day }}</span>\n}\n@for (week of month() | tuiCalendarSheet: true; track week) {\n @for (day of week; track day) {\n <button\n type=\"button\"\n class=\"t-day\"\n [attr.data-range]=\"getRange(day)\"\n [class.t-day_adjacent]=\"day.month !== month().month\"\n [class.t-day_today]=\"day.daySame(today)\"\n [disabled]=\"disabledItemHandler()(day)\"\n (click)=\"pick.emit(day)\"\n (mouseenter)=\"hovered.set(day)\"\n >\n {{ day.day }}\n </button>\n }\n}\n", styles: [":host{display:grid;inline-size:100%;color:var(--tui-text-secondary);font:var(--tui-typography-ui-s);grid-template:2rem / repeat(7,1fr);gap:.25rem 0;place-items:center;isolation:isolate}.t-day{position:relative;inline-size:100%;block-size:2rem;padding:0;border:0;background:transparent;font:var(--tui-typography-ui-m);color:var(--tui-text-primary);cursor:pointer;overflow:hidden}.t-day:before{content:\"\";position:absolute;inset:50%;z-index:-1;block-size:2rem;inline-size:2rem;border-radius:100%;transform:translate(calc(var(--tui-inline) * -50%),-50%)}.t-day:disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-day_adjacent{opacity:var(--tui-disabled-opacity)}.t-day_today:after{content:\"\";position:absolute;inset-block-end:.25rem;inset-inline-start:50%;margin-inline-start:-.125rem;inline-size:.25rem;block-size:.25rem;border-radius:100%;background:var(--tui-background-accent-2)}.t-day[data-range=single],.t-day[data-range=start],.t-day[data-range=end]{color:var(--tui-text-primary-on-accent-2)}.t-day[data-range=single]:before,.t-day[data-range=start]:before,.t-day[data-range=end]:before{background:var(--tui-background-accent-2)}.t-day[data-range=single]:after,.t-day[data-range=start]:after,.t-day[data-range=end]:after{background:currentColor}.t-day[data-range=start]:before{box-shadow:calc(var(--tui-inline) * 11rem) 0 0 10rem var(--tui-background-neutral-1)}.t-day[data-range=end]:before{box-shadow:calc(var(--tui-inline) * -11rem) 0 0 10rem var(--tui-background-neutral-1)}.t-day[data-range=middle]:before{box-shadow:0 0 0 10rem var(--tui-background-neutral-1),inset 0 0 0 10rem var(--tui-background-neutral-1)}@media (hover: hover) and (pointer: fine){.t-day:hover:before{background:var(--tui-background-neutral-1-hover)}.t-day[data-range=single]:hover:before,.t-day[data-range=start]:hover:before,.t-day[data-range=end]:hover:before{background:var(--tui-background-accent-2-hover)}}\n"], dependencies: [{ kind: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiCalendar, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'tui-calendar', imports: [TuiCalendarSheetPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: { '(mouseleave)': 'hovered.set(null)' }, template: "@for (day of week(); track $index) {\n <span>{{ day }}</span>\n}\n@for (week of month() | tuiCalendarSheet: true; track week) {\n @for (day of week; track day) {\n <button\n type=\"button\"\n class=\"t-day\"\n [attr.data-range]=\"getRange(day)\"\n [class.t-day_adjacent]=\"day.month !== month().month\"\n [class.t-day_today]=\"day.daySame(today)\"\n [disabled]=\"disabledItemHandler()(day)\"\n (click)=\"pick.emit(day)\"\n (mouseenter)=\"hovered.set(day)\"\n >\n {{ day.day }}\n </button>\n }\n}\n", styles: [":host{display:grid;inline-size:100%;color:var(--tui-text-secondary);font:var(--tui-typography-ui-s);grid-template:2rem / repeat(7,1fr);gap:.25rem 0;place-items:center;isolation:isolate}.t-day{position:relative;inline-size:100%;block-size:2rem;padding:0;border:0;background:transparent;font:var(--tui-typography-ui-m);color:var(--tui-text-primary);cursor:pointer;overflow:hidden}.t-day:before{content:\"\";position:absolute;inset:50%;z-index:-1;block-size:2rem;inline-size:2rem;border-radius:100%;transform:translate(calc(var(--tui-inline) * -50%),-50%)}.t-day:disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-day_adjacent{opacity:var(--tui-disabled-opacity)}.t-day_today:after{content:\"\";position:absolute;inset-block-end:.25rem;inset-inline-start:50%;margin-inline-start:-.125rem;inline-size:.25rem;block-size:.25rem;border-radius:100%;background:var(--tui-background-accent-2)}.t-day[data-range=single],.t-day[data-range=start],.t-day[data-range=end]{color:var(--tui-text-primary-on-accent-2)}.t-day[data-range=single]:before,.t-day[data-range=start]:before,.t-day[data-range=end]:before{background:var(--tui-background-accent-2)}.t-day[data-range=single]:after,.t-day[data-range=start]:after,.t-day[data-range=end]:after{background:currentColor}.t-day[data-range=start]:before{box-shadow:calc(var(--tui-inline) * 11rem) 0 0 10rem var(--tui-background-neutral-1)}.t-day[data-range=end]:before{box-shadow:calc(var(--tui-inline) * -11rem) 0 0 10rem var(--tui-background-neutral-1)}.t-day[data-range=middle]:before{box-shadow:0 0 0 10rem var(--tui-background-neutral-1),inset 0 0 0 10rem var(--tui-background-neutral-1)}@media (hover: hover) and (pointer: fine){.t-day:hover:before{background:var(--tui-background-neutral-1-hover)}.t-day[data-range=single]:hover:before,.t-day[data-range=start]:hover:before,.t-day[data-range=end]:hover:before{background:var(--tui-background-accent-2-hover)}}\n"] }]
53
+ }] });
54
+ function convert(week) {
55
+ return [week[week.length - 1] || '', ...week.slice(0, week.length - 1)];
56
+ }
57
+
58
+ /**
59
+ * Generated bundle index. Do not edit.
60
+ */
61
+
62
+ export { TuiCalendar };
63
+ //# sourceMappingURL=taiga-ui-experimental-components-calendar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-experimental-components-calendar.mjs","sources":["../../../projects/experimental/components/calendar/calendar.component.ts","../../../projects/experimental/components/calendar/calendar.component.html","../../../projects/experimental/components/calendar/taiga-ui-experimental-components-calendar.ts"],"sourcesContent":["import {coerceArray} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiDayRange, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {\n TUI_CALENDAR_OPTIONS,\n TuiCalendarSheetPipe,\n} from '@taiga-ui/core/components/calendar';\nimport {TUI_SHORT_WEEK_DAYS} from '@taiga-ui/core/tokens';\n\n/**\n * @deprecated: work in progress, do not use!\n */\n@Component({\n selector: 'tui-calendar',\n imports: [TuiCalendarSheetPipe],\n templateUrl: './calendar.component.html',\n styleUrl: './calendar.component.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'(mouseleave)': 'hovered.set(null)'},\n})\nexport class TuiCalendar {\n private readonly options = inject(TUI_CALENDAR_OPTIONS);\n private readonly days = inject(TUI_SHORT_WEEK_DAYS);\n protected readonly today = TuiDay.currentLocal();\n protected readonly hovered = signal<TuiDay | null>(null);\n\n protected readonly week = computed((week = convert(this.days())) => [\n ...week.slice(this.options.weekStart()),\n ...week.slice(0, this.options.weekStart()),\n ]);\n\n public readonly pick = output<TuiDay>();\n public readonly month = input(TuiMonth.currentLocal());\n public readonly value = input<TuiDay | TuiDayRange | readonly TuiDay[] | null>(null);\n\n public readonly disabledItemHandler =\n input<TuiBooleanHandler<TuiDay>>(TUI_FALSE_HANDLER);\n\n protected getRange(day: TuiDay): 'end' | 'middle' | 'single' | 'start' | null {\n const value = this.value() || [];\n\n if (!(value instanceof TuiDayRange)) {\n return coerceArray(value).find((item) => day.daySame(item)) ? 'single' : null;\n }\n\n const hovered = this.hovered();\n\n const range =\n value.from === value.to && hovered\n ? TuiDayRange.sort(hovered, value.to)\n : value;\n\n if (range.isSingleDay && day.daySame(range.from)) {\n return 'single';\n }\n\n if (day.daySame(range.from)) {\n return 'start';\n }\n\n if (day.daySame(range.to)) {\n return 'end';\n }\n\n return range.dayInRange(day) ? 'middle' : null;\n }\n}\n\nfunction convert(week: readonly string[]): readonly string[] {\n return [week[week.length - 1] || '', ...week.slice(0, week.length - 1)];\n}\n","@for (day of week(); track $index) {\n <span>{{ day }}</span>\n}\n@for (week of month() | tuiCalendarSheet: true; track week) {\n @for (day of week; track day) {\n <button\n type=\"button\"\n class=\"t-day\"\n [attr.data-range]=\"getRange(day)\"\n [class.t-day_adjacent]=\"day.month !== month().month\"\n [class.t-day_today]=\"day.daySame(today)\"\n [disabled]=\"disabledItemHandler()(day)\"\n (click)=\"pick.emit(day)\"\n (mouseenter)=\"hovered.set(day)\"\n >\n {{ day.day }}\n </button>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { coerceArray } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { output, input, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
5
+ import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
6
+
7
+ /**
8
+ * @deprecated: work in progress, do not use!
9
+ */
10
+ class TuiDataGrid {
11
+ constructor() {
12
+ this.pick = output();
13
+ this.items = input([]);
14
+ this.content = input();
15
+ this.value = input([], { transform: (coerceArray) });
16
+ this.disabledItemHandler = input(TUI_FALSE_HANDLER);
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiDataGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TuiDataGrid, isStandalone: true, selector: "tui-data-grid", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabledItemHandler: { classPropertyName: "disabledItemHandler", publicName: "disabledItemHandler", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pick: "pick" }, ngImport: i0, template: "@for (item of items(); track item) {\n <button\n type=\"button\"\n class=\"t-item\"\n [class.t-item_active]=\"value().includes(item)\"\n [disabled]=\"disabledItemHandler()(item)\"\n (click)=\"pick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"content() || `${item}` as text; context: {$implicit: item}\">\n {{ text }}\n </ng-container>\n </button>\n}\n", styles: [":host{display:grid;inline-size:100%;grid-template-columns:repeat(3,calc(33% - .625rem));gap:1rem .5rem;place-content:center}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:block;block-size:2.5rem;border-radius:10rem;border:none;background:var(--tui-background-neutral-1);color:var(--tui-text-primary);font:var(--tui-typography-ui-s)}.t-item:disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-item_active{background:var(--tui-background-accent-2);color:var(--tui-text-primary-on-accent-2)}@media (hover: hover) and (pointer: fine){.t-item:hover{background:var(--tui-background-neutral-1-hover);cursor:pointer}.t-item_active:hover{background:var(--tui-background-accent-2-hover)}}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiDataGrid, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'tui-data-grid', imports: [PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of items(); track item) {\n <button\n type=\"button\"\n class=\"t-item\"\n [class.t-item_active]=\"value().includes(item)\"\n [disabled]=\"disabledItemHandler()(item)\"\n (click)=\"pick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"content() || `${item}` as text; context: {$implicit: item}\">\n {{ text }}\n </ng-container>\n </button>\n}\n", styles: [":host{display:grid;inline-size:100%;grid-template-columns:repeat(3,calc(33% - .625rem));gap:1rem .5rem;place-content:center}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:block;block-size:2.5rem;border-radius:10rem;border:none;background:var(--tui-background-neutral-1);color:var(--tui-text-primary);font:var(--tui-typography-ui-s)}.t-item:disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-item_active{background:var(--tui-background-accent-2);color:var(--tui-text-primary-on-accent-2)}@media (hover: hover) and (pointer: fine){.t-item:hover{background:var(--tui-background-neutral-1-hover);cursor:pointer}.t-item_active:hover{background:var(--tui-background-accent-2-hover)}}\n"] }]
24
+ }] });
25
+
26
+ /**
27
+ * Generated bundle index. Do not edit.
28
+ */
29
+
30
+ export { TuiDataGrid };
31
+ //# sourceMappingURL=taiga-ui-experimental-components-data-grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-experimental-components-data-grid.mjs","sources":["../../../projects/experimental/components/data-grid/data-grid.component.ts","../../../projects/experimental/components/data-grid/data-grid.component.html","../../../projects/experimental/components/data-grid/taiga-ui-experimental-components-data-grid.ts"],"sourcesContent":["import {coerceArray} from '@angular/cdk/coercion';\nimport {ChangeDetectionStrategy, Component, input, output} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {type TuiBooleanHandler, type TuiContext} from '@taiga-ui/cdk/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n/**\n * @deprecated: work in progress, do not use!\n */\n@Component({\n selector: 'tui-data-grid',\n imports: [PolymorpheusOutlet],\n templateUrl: './data-grid.component.html',\n styleUrl: './data-grid.component.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDataGrid<T> {\n public readonly pick = output<T>();\n public readonly items = input<readonly T[]>([]);\n public readonly content = input<PolymorpheusContent<TuiContext<T>>>();\n public readonly value = input([], {transform: coerceArray<T>});\n public readonly disabledItemHandler = input<TuiBooleanHandler<T>>(TUI_FALSE_HANDLER);\n}\n","@for (item of items(); track item) {\n <button\n type=\"button\"\n class=\"t-item\"\n [class.t-item_active]=\"value().includes(item)\"\n [disabled]=\"disabledItemHandler()(item)\"\n (click)=\"pick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"content() || `${item}` as text; context: {$implicit: item}\">\n {{ text }}\n </ng-container>\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA;;AAEG;MAQU,WAAW,CAAA;AAPxB,IAAA,WAAA,GAAA;QAQoB,IAAA,CAAA,IAAI,GAAG,MAAM,EAAK;AAClB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAe,EAAE,CAAC;QAC/B,IAAA,CAAA,OAAO,GAAG,KAAK,EAAsC;AACrD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,EAAC,SAAS,GAAE,WAAc,CAAA,EAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAuB,iBAAiB,CAAC;AACvF,IAAA;+GANY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBxB,gbAaA,EAAA,MAAA,EAAA,CAAA,8wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFc,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;;4FAKnB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAChB,CAAC,kBAAkB,CAAC,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gbAAA,EAAA,MAAA,EAAA,CAAA,8wBAAA,CAAA,EAAA;;;AEdnD;;AAEG;;;;"}
@@ -0,0 +1,125 @@
1
+ import { coerceArray } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { viewChild, inject, computed, model, input, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
5
+ import { TuiDayRange, TuiMonth, TUI_FIRST_DAY, TUI_LAST_DAY } from '@taiga-ui/cdk/date-time';
6
+ import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
7
+ import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
8
+ import { TuiButton, tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
9
+ import * as i1 from '@taiga-ui/core/components/carousel';
10
+ import { TuiCarouselComponent, TuiCarousel } from '@taiga-ui/core/components/carousel';
11
+ import { TuiLink } from '@taiga-ui/core/components/link';
12
+ import { TUI_COMMON_ICONS, TUI_SPIN_TEXTS, TUI_MONTHS } from '@taiga-ui/core/tokens';
13
+ import { TuiCalendar } from '@taiga-ui/experimental/components/calendar';
14
+ import { TuiDataGrid } from '@taiga-ui/experimental/components/data-grid';
15
+ import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
16
+ import { TuiSlides } from '@taiga-ui/layout/components/slides';
17
+ import * as i2 from '@taiga-ui/cdk/directives/item';
18
+
19
+ /**
20
+ * @deprecated: work in progress, do not use!
21
+ */
22
+ class TuiDatePicker {
23
+ constructor() {
24
+ this.carousel = viewChild(TuiCarouselComponent);
25
+ this.icons = inject(TUI_COMMON_ICONS);
26
+ this.texts = inject(TUI_SPIN_TEXTS);
27
+ this.i18n = inject(TUI_MONTHS);
28
+ this.month = computed(() => (c) => this.i18n()[c.$implicit]);
29
+ this.years = computed((value = this.value() || []) => value instanceof TuiDayRange
30
+ ? Array.from({ length: value.to.year - value.from.year + 1 }, (_, index) => value.from.year + index)
31
+ : Array.from(new Set(coerceArray(value).map((day) => day.year))));
32
+ this.months = computed((value = this.value() || []) => Array.from({ length: 12 }, (_, index) => index).filter((index) => value instanceof TuiDayRange
33
+ ? value.monthInRange(new TuiMonth(this.current().year, index))
34
+ : coerceArray(value).some(({ month, year }) => this.current().year === year && index === month)));
35
+ this.button = computed(() => this.view() === 'day'
36
+ ? `${this.i18n()[this.current().month]} ${this.current().formattedYear}`
37
+ : this.current().formattedYear);
38
+ this.yearMin = computed(() => Math.ceil((this.min().year - this.current().year - 5) / 12));
39
+ this.yearMax = computed(() => Math.floor((this.max().year - this.current().year + 6) / 12));
40
+ this.disabledDay = computed(() => (day) => day < this.min() || day > this.max() || this.disabledItemHandler()(day));
41
+ this.disabledMonth = computed(() => (month) => this.current().year * 12 + month < this.min().year * 12 + this.min().month ||
42
+ this.current().year * 12 + month > this.max().year * 12 + this.max().month);
43
+ this.disabledYear = computed(() => (year) => year < this.min().year || year > this.max().year);
44
+ this.start = computed((carousel = this.carousel()) => this.view() === 'month'
45
+ ? this.current().year === this.min().year
46
+ : carousel?.index() === carousel?.min());
47
+ this.end = computed((carousel = this.carousel()) => this.view() === 'month'
48
+ ? this.current().year === this.max().year
49
+ : carousel?.index() === carousel?.max());
50
+ this.view = model('day');
51
+ this.value = model(null);
52
+ this.current = model(TuiMonth.currentLocal());
53
+ this.mode = input('single');
54
+ this.disabledItemHandler = input(TUI_FALSE_HANDLER);
55
+ this.min = input(TUI_FIRST_DAY, {
56
+ transform: (min) => min ?? TUI_FIRST_DAY,
57
+ });
58
+ this.max = input(TUI_LAST_DAY, {
59
+ transform: (max) => max ?? TUI_LAST_DAY,
60
+ });
61
+ }
62
+ getMonth(index) {
63
+ return new TuiMonth(Math.floor(index / 12), index % 12);
64
+ }
65
+ getItems(initial) {
66
+ return Array.from({ length: 12 }, (_, index) => initial + index);
67
+ }
68
+ onSpin(step) {
69
+ this.carousel()?.[step > 0 ? 'next' : 'prev']();
70
+ if (this.view() === 'month') {
71
+ this.current.update((current) => current.append({ year: step }));
72
+ }
73
+ }
74
+ onYear(year) {
75
+ this.current.update(({ month }) => new TuiMonth(year, month));
76
+ this.view.set('month');
77
+ }
78
+ onMonth(index) {
79
+ this.current.update(({ year }) => new TuiMonth(year, index));
80
+ this.view.set('day');
81
+ }
82
+ onDay(day) {
83
+ if (day.monthAfter(this.current())) {
84
+ this.carousel()?.next();
85
+ }
86
+ else if (day.monthBefore(this.current())) {
87
+ this.carousel()?.prev();
88
+ }
89
+ if (this.mode() === 'single') {
90
+ this.value.set(day);
91
+ }
92
+ else if (this.mode() === 'multi') {
93
+ this.value.update((value) => value instanceof TuiDayRange
94
+ ? [day]
95
+ : tuiArrayToggle(coerceArray(value || []), day, (a, b) => a.daySame(b)));
96
+ }
97
+ else {
98
+ this.value.update((value) => value instanceof TuiDayRange && value.from === value.to
99
+ ? TuiDayRange.sort(value.to, day.append({}))
100
+ : new TuiDayRange(day, day));
101
+ }
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TuiDatePicker, isStandalone: true, selector: "tui-date-picker", inputs: { view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, disabledItemHandler: { classPropertyName: "disabledItemHandler", publicName: "disabledItemHandler", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { view: "viewChange", value: "valueChange", current: "currentChange" }, providers: [tuiButtonOptionsProvider({ size: 'xs', appearance: 'flat' })], viewQueries: [{ propertyName: "carousel", first: true, predicate: TuiCarouselComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<header class=\"t-header\">\n @if (view() !== 'year') {\n <button\n appearance=\"\"\n tuiChevron\n tuiLink\n type=\"button\"\n class=\"t-button\"\n [textContent]=\"button()\"\n (click)=\"view.set(view() === 'day' ? 'month' : 'year')\"\n ></button>\n }\n <button\n tuiIconButton\n type=\"button\"\n class=\"t-chevron\"\n [disabled]=\"start()\"\n [iconStart]=\"icons.decrement\"\n (click)=\"onSpin(-1)\"\n >\n {{ texts()[0] }}\n </button>\n <button\n tuiIconButton\n type=\"button\"\n class=\"t-chevron\"\n [disabled]=\"end()\"\n [iconStart]=\"icons.increment\"\n (click)=\"onSpin(1)\"\n >\n {{ texts()[1] }}\n </button>\n</header>\n<section tuiSlides>\n @switch (view()) {\n @case ('day') {\n <tui-carousel\n [index]=\"current().year * 12 + current().month\"\n [max]=\"max().year * 12 + max().month\"\n [min]=\"min().year * 12 + min().month\"\n (indexChange)=\"current.set(getMonth($event))\"\n >\n <tui-calendar\n *tuiItem=\"let index\"\n [disabledItemHandler]=\"disabledDay()\"\n [month]=\"index | tuiMapper: getMonth\"\n [value]=\"value()\"\n (pick)=\"onDay($event)\"\n />\n </tui-carousel>\n }\n\n @case ('month') {\n <tui-data-grid\n [content]=\"month()\"\n [disabledItemHandler]=\"disabledMonth()\"\n [items]=\"0 | tuiMapper: getItems\"\n [value]=\"months()\"\n (pick)=\"onMonth($event)\"\n />\n }\n\n @case ('year') {\n <tui-carousel\n [max]=\"yearMax()\"\n [min]=\"yearMin()\"\n >\n <tui-data-grid\n *tuiItem=\"let offset\"\n [disabledItemHandler]=\"disabledYear()\"\n [items]=\"current().year + offset * 12 - 6 | tuiMapper: getItems\"\n [value]=\"years()\"\n (pick)=\"onYear($event)\"\n />\n </tui-carousel>\n }\n }\n</section>\n", styles: [":host{display:block;min-inline-size:17.5rem}.t-header{display:flex;gap:.25rem;align-items:center;justify-content:flex-end;padding:.5rem .75rem 1rem}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font:var(--tui-typography-ui-l);font-weight:700;text-decoration:none;margin-inline-end:auto}@media (hover: hover) and (pointer: fine){.t-button:hover{opacity:var(--tui-disabled-opacity)}}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiCalendar, selector: "tui-calendar", inputs: ["month", "value", "disabledItemHandler"], outputs: ["pick"] }, { kind: "component", type: i1.TuiCarouselComponent, selector: "tui-carousel", inputs: ["index", "min", "max"], outputs: ["indexChange"] }, { kind: "directive", type: i2.TuiItem, selector: "[tuiItem]" }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "component", type: TuiDataGrid, selector: "tui-data-grid", inputs: ["items", "content", "value", "disabledItemHandler"], outputs: ["pick"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]" }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "directive", type: TuiSlides, selector: "[tuiSlides]", inputs: ["tuiSlides"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiDatePicker, decorators: [{
107
+ type: Component,
108
+ args: [{ selector: 'tui-date-picker', imports: [
109
+ TuiButton,
110
+ TuiCalendar,
111
+ TuiCarousel,
112
+ TuiChevron,
113
+ TuiDataGrid,
114
+ TuiLink,
115
+ TuiMapperPipe,
116
+ TuiSlides,
117
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiButtonOptionsProvider({ size: 'xs', appearance: 'flat' })], template: "<header class=\"t-header\">\n @if (view() !== 'year') {\n <button\n appearance=\"\"\n tuiChevron\n tuiLink\n type=\"button\"\n class=\"t-button\"\n [textContent]=\"button()\"\n (click)=\"view.set(view() === 'day' ? 'month' : 'year')\"\n ></button>\n }\n <button\n tuiIconButton\n type=\"button\"\n class=\"t-chevron\"\n [disabled]=\"start()\"\n [iconStart]=\"icons.decrement\"\n (click)=\"onSpin(-1)\"\n >\n {{ texts()[0] }}\n </button>\n <button\n tuiIconButton\n type=\"button\"\n class=\"t-chevron\"\n [disabled]=\"end()\"\n [iconStart]=\"icons.increment\"\n (click)=\"onSpin(1)\"\n >\n {{ texts()[1] }}\n </button>\n</header>\n<section tuiSlides>\n @switch (view()) {\n @case ('day') {\n <tui-carousel\n [index]=\"current().year * 12 + current().month\"\n [max]=\"max().year * 12 + max().month\"\n [min]=\"min().year * 12 + min().month\"\n (indexChange)=\"current.set(getMonth($event))\"\n >\n <tui-calendar\n *tuiItem=\"let index\"\n [disabledItemHandler]=\"disabledDay()\"\n [month]=\"index | tuiMapper: getMonth\"\n [value]=\"value()\"\n (pick)=\"onDay($event)\"\n />\n </tui-carousel>\n }\n\n @case ('month') {\n <tui-data-grid\n [content]=\"month()\"\n [disabledItemHandler]=\"disabledMonth()\"\n [items]=\"0 | tuiMapper: getItems\"\n [value]=\"months()\"\n (pick)=\"onMonth($event)\"\n />\n }\n\n @case ('year') {\n <tui-carousel\n [max]=\"yearMax()\"\n [min]=\"yearMin()\"\n >\n <tui-data-grid\n *tuiItem=\"let offset\"\n [disabledItemHandler]=\"disabledYear()\"\n [items]=\"current().year + offset * 12 - 6 | tuiMapper: getItems\"\n [value]=\"years()\"\n (pick)=\"onYear($event)\"\n />\n </tui-carousel>\n }\n }\n</section>\n", styles: [":host{display:block;min-inline-size:17.5rem}.t-header{display:flex;gap:.25rem;align-items:center;justify-content:flex-end;padding:.5rem .75rem 1rem}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font:var(--tui-typography-ui-l);font-weight:700;text-decoration:none;margin-inline-end:auto}@media (hover: hover) and (pointer: fine){.t-button:hover{opacity:var(--tui-disabled-opacity)}}\n"] }]
118
+ }] });
119
+
120
+ /**
121
+ * Generated bundle index. Do not edit.
122
+ */
123
+
124
+ export { TuiDatePicker };
125
+ //# sourceMappingURL=taiga-ui-experimental-components-date-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-experimental-components-date-picker.mjs","sources":["../../../projects/experimental/components/date-picker/date-picker.component.ts","../../../projects/experimental/components/date-picker/date-picker.component.html","../../../projects/experimental/components/date-picker/taiga-ui-experimental-components-date-picker.ts"],"sourcesContent":["import {coerceArray} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n type TuiDay,\n TuiDayRange,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiCarousel, TuiCarouselComponent} from '@taiga-ui/core/components/carousel';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TUI_COMMON_ICONS, TUI_MONTHS, TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {TuiCalendar} from '@taiga-ui/experimental/components/calendar';\nimport {TuiDataGrid} from '@taiga-ui/experimental/components/data-grid';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TuiSlides} from '@taiga-ui/layout/components/slides';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * @deprecated: work in progress, do not use!\n */\n@Component({\n selector: 'tui-date-picker',\n imports: [\n TuiButton,\n TuiCalendar,\n TuiCarousel,\n TuiChevron,\n TuiDataGrid,\n TuiLink,\n TuiMapperPipe,\n TuiSlides,\n ],\n templateUrl: './date-picker.component.html',\n styleUrl: './date-picker.component.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiButtonOptionsProvider({size: 'xs', appearance: 'flat'})],\n})\nexport class TuiDatePicker {\n protected readonly carousel = viewChild(TuiCarouselComponent);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly texts = inject(TUI_SPIN_TEXTS);\n protected readonly i18n = inject(TUI_MONTHS);\n\n protected readonly month = computed<PolymorpheusContent<TuiContext<number>>>(\n () => (c) => this.i18n()[c.$implicit],\n );\n\n protected readonly years = computed((value = this.value() || []) =>\n value instanceof TuiDayRange\n ? Array.from(\n {length: value.to.year - value.from.year + 1},\n (_, index) => value.from.year + index,\n )\n : Array.from(new Set(coerceArray(value).map((day) => day.year))),\n );\n\n protected readonly months = computed((value = this.value() || []) =>\n Array.from({length: 12}, (_, index) => index).filter((index) =>\n value instanceof TuiDayRange\n ? value.monthInRange(new TuiMonth(this.current().year, index))\n : coerceArray(value).some(\n ({month, year}) => this.current().year === year && index === month,\n ),\n ),\n );\n\n protected readonly button = computed(() =>\n this.view() === 'day'\n ? `${this.i18n()[this.current().month]} ${this.current().formattedYear}`\n : this.current().formattedYear,\n );\n\n protected readonly yearMin = computed(() =>\n Math.ceil((this.min().year - this.current().year - 5) / 12),\n );\n\n protected readonly yearMax = computed(() =>\n Math.floor((this.max().year - this.current().year + 6) / 12),\n );\n\n protected readonly disabledDay = computed(\n () => (day: TuiDay) =>\n day < this.min() || day > this.max() || this.disabledItemHandler()(day),\n );\n\n protected readonly disabledMonth = computed(\n () => (month: number) =>\n this.current().year * 12 + month < this.min().year * 12 + this.min().month ||\n this.current().year * 12 + month > this.max().year * 12 + this.max().month,\n );\n\n protected readonly disabledYear = computed(\n () => (year: number) => year < this.min().year || year > this.max().year,\n );\n\n protected readonly start = computed((carousel = this.carousel()) =>\n this.view() === 'month'\n ? this.current().year === this.min().year\n : carousel?.index() === carousel?.min(),\n );\n\n protected readonly end = computed((carousel = this.carousel()) =>\n this.view() === 'month'\n ? this.current().year === this.max().year\n : carousel?.index() === carousel?.max(),\n );\n\n public readonly view = model<'day' | 'month' | 'year'>('day');\n public readonly value = model<TuiDay | TuiDayRange | readonly TuiDay[] | null>(null);\n public readonly current = model(TuiMonth.currentLocal());\n public readonly mode = input<'multi' | 'range' | 'single'>('single');\n\n public readonly disabledItemHandler =\n input<TuiBooleanHandler<TuiDay>>(TUI_FALSE_HANDLER);\n\n public readonly min = input(TUI_FIRST_DAY, {\n transform: (min?: TuiDay | null) => min ?? TUI_FIRST_DAY,\n });\n\n public readonly max = input(TUI_LAST_DAY, {\n transform: (max?: TuiDay | null) => max ?? TUI_LAST_DAY,\n });\n\n protected getMonth(index: number): TuiMonth {\n return new TuiMonth(Math.floor(index / 12), index % 12);\n }\n\n protected getItems(initial: number): readonly number[] {\n return Array.from({length: 12}, (_, index) => initial + index);\n }\n\n protected onSpin(step: number): void {\n this.carousel()?.[step > 0 ? 'next' : 'prev']();\n\n if (this.view() === 'month') {\n this.current.update((current) => current.append({year: step}));\n }\n }\n\n protected onYear(year: number): void {\n this.current.update(({month}) => new TuiMonth(year, month));\n this.view.set('month');\n }\n\n protected onMonth(index: number): void {\n this.current.update(({year}) => new TuiMonth(year, index));\n this.view.set('day');\n }\n\n protected onDay(day: TuiDay): void {\n if (day.monthAfter(this.current())) {\n this.carousel()?.next();\n } else if (day.monthBefore(this.current())) {\n this.carousel()?.prev();\n }\n\n if (this.mode() === 'single') {\n this.value.set(day);\n } else if (this.mode() === 'multi') {\n this.value.update((value) =>\n value instanceof TuiDayRange\n ? [day]\n : tuiArrayToggle(coerceArray(value || []), day, (a, b) =>\n a.daySame(b),\n ),\n );\n } else {\n this.value.update((value) =>\n value instanceof TuiDayRange && value.from === value.to\n ? TuiDayRange.sort(value.to, day.append({}))\n : new TuiDayRange(day, day),\n );\n }\n }\n}\n","<header class=\"t-header\">\n @if (view() !== 'year') {\n <button\n appearance=\"\"\n tuiChevron\n tuiLink\n type=\"button\"\n class=\"t-button\"\n [textContent]=\"button()\"\n (click)=\"view.set(view() === 'day' ? 'month' : 'year')\"\n ></button>\n }\n <button\n tuiIconButton\n type=\"button\"\n class=\"t-chevron\"\n [disabled]=\"start()\"\n [iconStart]=\"icons.decrement\"\n (click)=\"onSpin(-1)\"\n >\n {{ texts()[0] }}\n </button>\n <button\n tuiIconButton\n type=\"button\"\n class=\"t-chevron\"\n [disabled]=\"end()\"\n [iconStart]=\"icons.increment\"\n (click)=\"onSpin(1)\"\n >\n {{ texts()[1] }}\n </button>\n</header>\n<section tuiSlides>\n @switch (view()) {\n @case ('day') {\n <tui-carousel\n [index]=\"current().year * 12 + current().month\"\n [max]=\"max().year * 12 + max().month\"\n [min]=\"min().year * 12 + min().month\"\n (indexChange)=\"current.set(getMonth($event))\"\n >\n <tui-calendar\n *tuiItem=\"let index\"\n [disabledItemHandler]=\"disabledDay()\"\n [month]=\"index | tuiMapper: getMonth\"\n [value]=\"value()\"\n (pick)=\"onDay($event)\"\n />\n </tui-carousel>\n }\n\n @case ('month') {\n <tui-data-grid\n [content]=\"month()\"\n [disabledItemHandler]=\"disabledMonth()\"\n [items]=\"0 | tuiMapper: getItems\"\n [value]=\"months()\"\n (pick)=\"onMonth($event)\"\n />\n }\n\n @case ('year') {\n <tui-carousel\n [max]=\"yearMax()\"\n [min]=\"yearMin()\"\n >\n <tui-data-grid\n *tuiItem=\"let offset\"\n [disabledItemHandler]=\"disabledYear()\"\n [items]=\"current().year + offset * 12 - 6 | tuiMapper: getItems\"\n [value]=\"years()\"\n (pick)=\"onYear($event)\"\n />\n </tui-carousel>\n }\n }\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ export * from '@taiga-ui/experimental/components/calendar';
2
+ export * from '@taiga-ui/experimental/components/data-grid';
3
+ export * from '@taiga-ui/experimental/components/date-picker';
1
4
  export * from '@taiga-ui/experimental/components/popout';
2
5
  export * from '@taiga-ui/experimental/components/search-results';
3
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components.mjs","sources":["../../../projects/experimental/components/taiga-ui-experimental-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG"}
1
+ {"version":3,"file":"taiga-ui-experimental-components.mjs","sources":["../../../projects/experimental/components/taiga-ui-experimental-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;AAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/experimental",
3
- "version": "5.5.0",
3
+ "version": "5.6.0-canary.aa2a7bc",
4
4
  "description": "A package with Taiga UI experimental components",
5
5
  "keywords": [
6
6
  "angular",
@@ -30,11 +30,11 @@
30
30
  "peerDependencies": {
31
31
  "@angular/common": ">=19.0.0",
32
32
  "@angular/core": ">=19.0.0",
33
- "@taiga-ui/addon-commerce": "5.5.0",
34
- "@taiga-ui/cdk": "5.5.0",
35
- "@taiga-ui/core": "5.5.0",
36
- "@taiga-ui/kit": "5.5.0",
37
- "@taiga-ui/layout": "5.5.0",
33
+ "@taiga-ui/addon-commerce": "5.6.0",
34
+ "@taiga-ui/cdk": "5.6.0",
35
+ "@taiga-ui/core": "5.6.0",
36
+ "@taiga-ui/kit": "5.6.0",
37
+ "@taiga-ui/layout": "5.6.0",
38
38
  "@taiga-ui/polymorpheus": "^5.0.0",
39
39
  "rxjs": ">=7.0.0"
40
40
  },
@@ -52,6 +52,10 @@
52
52
  "types": "./components/index.d.ts",
53
53
  "default": "./fesm2022/taiga-ui-experimental-components.mjs"
54
54
  },
55
+ "./components/date-picker": {
56
+ "types": "./components/date-picker/index.d.ts",
57
+ "default": "./fesm2022/taiga-ui-experimental-components-date-picker.mjs"
58
+ },
55
59
  "./components/popout": {
56
60
  "types": "./components/popout/index.d.ts",
57
61
  "default": "./fesm2022/taiga-ui-experimental-components-popout.mjs"
@@ -59,6 +63,14 @@
59
63
  "./components/search-results": {
60
64
  "types": "./components/search-results/index.d.ts",
61
65
  "default": "./fesm2022/taiga-ui-experimental-components-search-results.mjs"
66
+ },
67
+ "./components/data-grid": {
68
+ "types": "./components/data-grid/index.d.ts",
69
+ "default": "./fesm2022/taiga-ui-experimental-components-data-grid.mjs"
70
+ },
71
+ "./components/calendar": {
72
+ "types": "./components/calendar/index.d.ts",
73
+ "default": "./fesm2022/taiga-ui-experimental-components-calendar.mjs"
62
74
  }
63
75
  },
64
76
  "sideEffects": false,