@taiga-ui/addon-mobile 4.52.0-canary.763e67d → 4.52.0-canary.7c53ccc
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/components/bottom-sheet/bottom-sheet.component.d.ts +3 -3
- package/components/mobile-calendar/calendar-date-stream.d.ts +6 -0
- package/components/mobile-calendar/index.d.ts +1 -0
- package/components/mobile-calendar/mobile-calendar.component.d.ts +15 -18
- package/components/mobile-calendar/mobile-calendar.strategy.d.ts +1 -2
- package/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.d.ts +6 -6
- package/components/mobile-calendar-dropdown/mobile-calendar-dropdown.directive.d.ts +6 -6
- package/components/pull-to-refresh/pull-to-refresh.component.d.ts +8 -7
- package/components/swipe-action/swipe-actions-auto-close.directive.d.ts +2 -2
- package/components/tab-bar/tab-bar-item.component.d.ts +3 -3
- package/components/tab-bar/tab-bar.component.d.ts +4 -7
- package/directives/elastic-sticky/elastic-sticky.directive.d.ts +1 -2
- package/directives/ripple/ripple.directive.d.ts +2 -2
- package/directives/touchable/touchable.directive.d.ts +5 -5
- package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs +11 -19
- package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs +23 -31
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs +2 -2
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs +102 -123
- package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +29 -39
- package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs +2 -2
- package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs +7 -14
- package/fesm2022/taiga-ui-addon-mobile-components-swipe-action.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs +23 -41
- package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs +4 -6
- package/fesm2022/taiga-ui-addon-mobile-directives-elastic-sticky.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs +5 -7
- package/fesm2022/taiga-ui-addon-mobile-directives-ripple.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs +16 -22
- package/fesm2022/taiga-ui-addon-mobile-directives-touchable.mjs.map +1 -1
- package/package.json +9 -9
- package/styles/android/app-bar.less +5 -1
- package/styles/common/badge-notification.less +1 -1
- package/styles/common/badge.less +2 -2
- package/styles/common/block-status.less +1 -1
- package/styles/common/button.less +1 -1
- package/styles/common/header.less +1 -1
- package/styles/common/message.less +1 -1
- package/styles/common/segmented.less +1 -1
- package/styles/common/title.less +0 -1
- package/styles/common/toast.less +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class TuiBottomSheet {
|
|
3
3
|
private readonly elements;
|
|
4
|
-
private readonly content
|
|
4
|
+
private readonly content;
|
|
5
5
|
private readonly el;
|
|
6
|
-
stops: readonly string[]
|
|
6
|
+
readonly stops: import("@angular/core").InputSignal<readonly string[]>;
|
|
7
7
|
protected onScroll(): void;
|
|
8
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiBottomSheet, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiBottomSheet, "tui-bottom-sheet", never, { "stops": { "alias": "stops"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiBottomSheet, "tui-bottom-sheet", never, { "stops": { "alias": "stops"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10
10
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
|
+
import { type TuiValueTransformer } from '@taiga-ui/cdk/classes';
|
|
3
|
+
import { type TuiDay, type TuiDayRange } from '@taiga-ui/cdk/date-time';
|
|
4
|
+
import { type Observable } from 'rxjs';
|
|
5
|
+
export declare const TUI_CALENDAR_DATE_STREAM: InjectionToken<Observable<TuiDay | TuiDayRange | null>>;
|
|
6
|
+
export declare function tuiDateStreamWithTransformer(transformer: InjectionToken<TuiValueTransformer<any>>): Provider;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { type AfterViewInit
|
|
1
|
+
import { type AfterViewInit } from '@angular/core';
|
|
2
2
|
import { TuiDay, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
|
|
3
3
|
import { type TuiBooleanHandler, type TuiMapper } from '@taiga-ui/cdk/types';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TuiMobileCalendar implements AfterViewInit {
|
|
6
|
-
private readonly
|
|
7
|
-
private readonly
|
|
8
|
-
private readonly value$;
|
|
6
|
+
private readonly yearsScroll;
|
|
7
|
+
private readonly monthsScroll;
|
|
9
8
|
private readonly today;
|
|
10
9
|
private activeYear;
|
|
11
10
|
private activeMonth;
|
|
@@ -13,6 +12,9 @@ export declare class TuiMobileCalendar implements AfterViewInit {
|
|
|
13
12
|
private readonly doc;
|
|
14
13
|
private readonly speed;
|
|
15
14
|
private readonly ngZone;
|
|
15
|
+
private readonly getYearsViewportSize;
|
|
16
|
+
private readonly initialYear;
|
|
17
|
+
private readonly initialMonth;
|
|
16
18
|
protected initialized: boolean;
|
|
17
19
|
protected readonly isIOS: boolean;
|
|
18
20
|
protected readonly isE2E: boolean;
|
|
@@ -32,17 +34,15 @@ export declare class TuiMobileCalendar implements AfterViewInit {
|
|
|
32
34
|
* ```
|
|
33
35
|
* TODO(v5): delete it
|
|
34
36
|
*/
|
|
35
|
-
single: boolean
|
|
36
|
-
multi: boolean
|
|
37
|
-
min: TuiDay
|
|
38
|
-
max: TuiDay
|
|
39
|
-
disabledItemHandler: TuiBooleanHandler<TuiDay
|
|
40
|
-
readonly cancel:
|
|
41
|
-
readonly confirm:
|
|
42
|
-
readonly
|
|
37
|
+
readonly single: import("@angular/core").InputSignal<boolean>;
|
|
38
|
+
readonly multi: import("@angular/core").InputSignal<boolean>;
|
|
39
|
+
readonly min: import("@angular/core").InputSignal<TuiDay>;
|
|
40
|
+
readonly max: import("@angular/core").InputSignal<TuiDay>;
|
|
41
|
+
readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<TuiDay>>;
|
|
42
|
+
readonly cancel: import("@angular/core").OutputEmitterRef<void>;
|
|
43
|
+
readonly confirm: import("@angular/core").OutputEmitterRef<TuiDay | TuiDayRange | readonly TuiDay[]>;
|
|
44
|
+
readonly value: import("@angular/core").ModelSignal<TuiDay | TuiDayRange | readonly TuiDay[] | null>;
|
|
43
45
|
constructor();
|
|
44
|
-
set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null | undefined);
|
|
45
|
-
get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null;
|
|
46
46
|
ngAfterViewInit(): void;
|
|
47
47
|
setYear(year: number): void;
|
|
48
48
|
protected get yearWidth(): number;
|
|
@@ -56,10 +56,7 @@ export declare class TuiMobileCalendar implements AfterViewInit {
|
|
|
56
56
|
TuiDay,
|
|
57
57
|
TuiDay
|
|
58
58
|
], TuiBooleanHandler<TuiDay>>;
|
|
59
|
-
private get initialYear();
|
|
60
|
-
private get initialMonth();
|
|
61
59
|
private isMultiValue;
|
|
62
|
-
private getYearsViewportSize;
|
|
63
60
|
private updateViewportDimension;
|
|
64
61
|
private lateInit;
|
|
65
62
|
private waitScrolledChange;
|
|
@@ -71,5 +68,5 @@ export declare class TuiMobileCalendar implements AfterViewInit {
|
|
|
71
68
|
private monthToYear;
|
|
72
69
|
private getMonthOffset;
|
|
73
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileCalendar, never>;
|
|
74
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiMobileCalendar, "tui-mobile-calendar", never, { "single": { "alias": "single"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "cancel": "cancel"; "confirm": "confirm"; "
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiMobileCalendar, "tui-mobile-calendar", never, { "single": { "alias": "single"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "cancel": "cancel"; "confirm": "confirm"; "value": "valueChange"; }, never, never, true, never>;
|
|
75
72
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type CdkVirtualScrollViewport, type VirtualScrollStrategy } from '@angular/cdk/scrolling';
|
|
2
|
-
import { type Observable } from 'rxjs';
|
|
3
2
|
/**
|
|
4
3
|
* This scroll strategy is hard-wired with styles for iOS and Android.
|
|
5
4
|
* It is dependent on month height on those platforms and is designed to
|
|
@@ -10,7 +9,7 @@ export declare class TuiMobileCalendarStrategy implements VirtualScrollStrategy
|
|
|
10
9
|
private readonly destroy$;
|
|
11
10
|
private readonly index$;
|
|
12
11
|
private viewport;
|
|
13
|
-
|
|
12
|
+
readonly scrolledIndexChange: import("rxjs").Observable<number>;
|
|
14
13
|
attach(viewport: CdkVirtualScrollViewport): void;
|
|
15
14
|
detach(): void;
|
|
16
15
|
onContentScrolled(): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TuiDay, TuiDayRange } from '@taiga-ui/cdk/date-time';
|
|
2
2
|
import { type TuiBooleanHandler } from '@taiga-ui/cdk/types';
|
|
3
|
-
import {
|
|
3
|
+
import { TuiMobileCalendarDropdown } from './mobile-calendar-dropdown.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@taiga-ui/cdk/directives/active-zone";
|
|
6
6
|
import * as i2 from "@taiga-ui/cdk/directives/animated";
|
|
@@ -11,7 +11,7 @@ export interface TuiMobileCalendarData {
|
|
|
11
11
|
multi?: boolean;
|
|
12
12
|
single?: boolean;
|
|
13
13
|
}
|
|
14
|
-
export declare class
|
|
14
|
+
export declare class TuiMobileCalendarDropdownComponent {
|
|
15
15
|
private readonly dropdown;
|
|
16
16
|
private readonly keyboard;
|
|
17
17
|
private readonly context;
|
|
@@ -19,9 +19,9 @@ export declare class TuiMobileCalendarDropdown {
|
|
|
19
19
|
private readonly data;
|
|
20
20
|
private selectedPeriod;
|
|
21
21
|
protected readonly control: any;
|
|
22
|
-
protected readonly directive:
|
|
23
|
-
protected readonly range: boolean;
|
|
22
|
+
protected readonly directive: TuiMobileCalendarDropdown | null;
|
|
24
23
|
protected readonly multi: boolean;
|
|
24
|
+
protected readonly range: boolean;
|
|
25
25
|
protected readonly single: boolean;
|
|
26
26
|
protected readonly value: import("@angular/core").Signal<TuiDay | TuiDayRange | null>;
|
|
27
27
|
constructor();
|
|
@@ -33,6 +33,6 @@ export declare class TuiMobileCalendarDropdown {
|
|
|
33
33
|
protected confirm(value: TuiDay | TuiDayRange | readonly TuiDay[]): void;
|
|
34
34
|
private calculateDisabledItemHandler;
|
|
35
35
|
private is;
|
|
36
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileCalendarDropdownComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiMobileCalendarDropdownComponent, "tui-mobile-calendar-dropdown", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiActiveZone; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiAnimated; inputs: {}; outputs: {}; }]>;
|
|
38
38
|
}
|
|
@@ -4,12 +4,12 @@ import { type TuiInputDateBase, TuiInputDateDirective } from '@taiga-ui/kit/comp
|
|
|
4
4
|
import { TuiInputDateRangeDirective } from '@taiga-ui/kit/components/input-date-range';
|
|
5
5
|
import { TuiInputDateTimeDirective } from '@taiga-ui/kit/components/input-date-time';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class
|
|
8
|
-
readonly single
|
|
9
|
-
readonly range
|
|
10
|
-
readonly dateTime
|
|
7
|
+
export declare class TuiMobileCalendarDropdown {
|
|
8
|
+
readonly single: import("@angular/core").Signal<TuiInputDateDirective | undefined>;
|
|
9
|
+
readonly range: import("@angular/core").Signal<TuiInputDateRangeDirective | undefined>;
|
|
10
|
+
readonly dateTime: import("@angular/core").Signal<TuiInputDateTimeDirective | undefined>;
|
|
11
11
|
readonly handlers: TuiItemsHandlersDirective<any>;
|
|
12
12
|
get date(): TuiInputDateBase<readonly [TuiDay, TuiTime | null]> | TuiInputDateBase<TuiDay> | TuiInputDateBase<TuiDayRange> | undefined;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
14
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileCalendarDropdown, never>;
|
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiMobileCalendarDropdown, "[tuiMobileCalendar]", never, {}, {}, ["single", "range", "dateTime"], never, true, never>;
|
|
15
15
|
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { type TuiContext, type TuiHandler } from '@taiga-ui/cdk/types';
|
|
2
2
|
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
3
|
-
import { type Observable } from 'rxjs';
|
|
4
|
-
import { TuiPullToRefreshService } from './pull-to-refresh.service';
|
|
5
3
|
import * as i0 from "@angular/core";
|
|
6
4
|
export declare class TuiPullToRefresh {
|
|
7
5
|
private readonly isIOS;
|
|
8
6
|
private readonly threshold;
|
|
9
|
-
|
|
7
|
+
private readonly service;
|
|
8
|
+
private readonly el;
|
|
9
|
+
protected readonly pulling: import("@angular/core").Signal<number>;
|
|
10
10
|
protected readonly component: PolymorpheusContent<TuiContext<number>>;
|
|
11
|
-
protected readonly
|
|
12
|
-
|
|
13
|
-
readonly
|
|
11
|
+
protected readonly style: import("@angular/core").Signal<Record<string, unknown> | null>;
|
|
12
|
+
protected readonly dropped: import("@angular/core").Signal<boolean | undefined>;
|
|
13
|
+
readonly styleHandler: import("@angular/core").InputSignal<TuiHandler<number, Record<string, unknown> | null>>;
|
|
14
|
+
readonly pulled: import("@angular/core").OutputRef<number>;
|
|
14
15
|
constructor();
|
|
15
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiPullToRefresh, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiPullToRefresh, "tui-pull-to-refresh", never, { "styleHandler": { "alias": "styleHandler"; "required": false; }; }, { "pulled": "pulled"; }, never, ["*"], true, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiPullToRefresh, "tui-pull-to-refresh", never, { "styleHandler": { "alias": "styleHandler"; "required": false; "isSignal": true; }; }, { "pulled": "pulled"; }, never, ["*"], true, never>;
|
|
17
18
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class TuiSwipeActionsAutoClose {
|
|
3
3
|
private readonly el;
|
|
4
|
-
autoClose:
|
|
4
|
+
readonly autoClose: import("@angular/core").InputSignal<string | boolean>;
|
|
5
5
|
protected handleEvent(event: Event): void;
|
|
6
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSwipeActionsAutoClose, never>;
|
|
7
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSwipeActionsAutoClose, "tui-swipe-actions[autoClose]", never, { "autoClose": { "alias": "autoClose"; "required": false; }; }, {}, never, never, true, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSwipeActionsAutoClose, "tui-swipe-actions[autoClose]", never, { "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
8
8
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class TuiTabBarItem {
|
|
3
|
-
icon: string
|
|
4
|
-
badge
|
|
3
|
+
readonly icon: import("@angular/core").InputSignal<string>;
|
|
4
|
+
readonly badge: import("@angular/core").InputSignal<number | undefined>;
|
|
5
5
|
protected format(value: number): string;
|
|
6
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTabBarItem, never>;
|
|
7
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTabBarItem, "button[tuiTabBarItem], a[tuiTabBarItem]", never, { "icon": { "alias": "icon"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTabBarItem, "button[tuiTabBarItem], a[tuiTabBarItem]", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
8
8
|
}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export declare class TuiTabBarComponent {
|
|
4
3
|
private readonly tabs;
|
|
5
|
-
quantity: number
|
|
6
|
-
activeItemIndex: number
|
|
7
|
-
|
|
8
|
-
setActive(tab: EventTarget): void;
|
|
9
|
-
protected get style(): string;
|
|
4
|
+
readonly quantity: import("@angular/core").InputSignal<number>;
|
|
5
|
+
readonly activeItemIndex: import("@angular/core").ModelSignal<number>;
|
|
6
|
+
setActive(tab: Element): void;
|
|
10
7
|
private updateIndex;
|
|
11
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTabBarComponent, never>;
|
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTabBarComponent, "nav[tuiTabBar]", never, { "quantity": { "alias": "quantity"; "required": false; }; "activeItemIndex": { "alias": "activeItemIndex"; "required": false; }; }, { "
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTabBarComponent, "nav[tuiTabBar]", never, { "quantity": { "alias": "quantity"; "required": false; "isSignal": true; }; "activeItemIndex": { "alias": "activeItemIndex"; "required": false; "isSignal": true; }; }, { "activeItemIndex": "activeItemIndexChange"; }, ["tabs"], ["*"], true, never>;
|
|
13
10
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { TuiElasticStickyService } from './elastic-sticky.service';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export declare class TuiElasticSticky {
|
|
4
|
-
readonly tuiElasticSticky:
|
|
3
|
+
readonly tuiElasticSticky: import("@angular/core").OutputRef<number>;
|
|
5
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiElasticSticky, never>;
|
|
6
5
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiElasticSticky, "[tuiElasticSticky]", ["tuiElasticSticky"], {}, { "tuiElasticSticky": "tuiElasticSticky"; }, never, never, true, never>;
|
|
7
6
|
}
|
|
@@ -4,9 +4,9 @@ export declare class TuiRipple {
|
|
|
4
4
|
private readonly destroyRef;
|
|
5
5
|
private readonly duration;
|
|
6
6
|
protected readonly nothing: undefined;
|
|
7
|
-
tuiRipple: string
|
|
7
|
+
readonly tuiRipple: import("@angular/core").InputSignal<string>;
|
|
8
8
|
protected start(x: number, y: number, target: HTMLElement, el: HTMLElement): void;
|
|
9
9
|
private createRipple;
|
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiRipple, never>;
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiRipple, "[tuiRipple]", never, { "tuiRipple": { "alias": "tuiRipple"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiRipple, "[tuiRipple]", never, { "tuiRipple": { "alias": "tuiRipple"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12
12
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare function tuiFindTouchIndex(touches: TouchList, id: number): number;
|
|
3
2
|
export declare class TuiTouchable {
|
|
4
3
|
private readonly isIOS;
|
|
5
4
|
private readonly el;
|
|
6
|
-
|
|
5
|
+
private readonly doc;
|
|
6
|
+
protected readonly style: import("@angular/core").Signal<"background" | "opacity" | "transform">;
|
|
7
|
+
readonly tuiTouchable: import("@angular/core").InputSignal<"" | "background" | "opacity" | "transform">;
|
|
7
8
|
constructor();
|
|
8
|
-
|
|
9
|
-
private hasTouchLeft;
|
|
9
|
+
private hasTouches;
|
|
10
10
|
private onTouchStart;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTouchable, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTouchable, "[tuiTouchable]", never, { "tuiTouchable": { "alias": "tuiTouchable"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTouchable, "[tuiTouchable]", never, { "tuiTouchable": { "alias": "tuiTouchable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
13
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
|
|
2
|
+
import { viewChildren, viewChild, input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
3
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
5
4
|
import { tuiHeaderOptionsProvider } from '@taiga-ui/layout/components/header';
|
|
6
5
|
|
|
@@ -11,14 +10,15 @@ const OPTIONS = {
|
|
|
11
10
|
};
|
|
12
11
|
class TuiBottomSheet {
|
|
13
12
|
constructor() {
|
|
14
|
-
this.elements =
|
|
13
|
+
this.elements = viewChildren('stops');
|
|
14
|
+
this.content = viewChild('content');
|
|
15
15
|
this.el = tuiInjectElement();
|
|
16
|
-
this.stops = ['1.5rem'];
|
|
16
|
+
this.stops = input(['1.5rem']);
|
|
17
17
|
}
|
|
18
18
|
onScroll() {
|
|
19
19
|
const { clientHeight, scrollTop, scrollHeight } = this.el;
|
|
20
|
-
const top = this.elements
|
|
21
|
-
const max = this.content?.nativeElement.clientHeight || Infinity;
|
|
20
|
+
const top = this.elements()[0]?.nativeElement.clientHeight || 0;
|
|
21
|
+
const max = this.content()?.nativeElement.clientHeight || Infinity;
|
|
22
22
|
const height = Math.min(clientHeight, max);
|
|
23
23
|
const scrolled = Math.min(scrollTop, height - top);
|
|
24
24
|
const transform = `translate3d(0, ${-1 * scrolled}px, 0)`;
|
|
@@ -27,25 +27,17 @@ class TuiBottomSheet {
|
|
|
27
27
|
this.el.animate([{ transform }], OPTIONS);
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiBottomSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiBottomSheet, isStandalone: true, selector: "tui-bottom-sheet", inputs: { stops: "stops" }, host: { listeners: { "scroll.zoneless": "onScroll()", "resize": "onScroll()" }, properties: { "style.--t-initial": "stops[0]", "style.scroll-snap-type": "stops.length > 1 ? \"y mandatory\" : null" } }, providers: [tuiHeaderOptionsProvider({ size: 'h5' })], viewQueries: [{ propertyName: "
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiBottomSheet, isStandalone: true, selector: "tui-bottom-sheet", inputs: { stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "scroll.zoneless": "onScroll()", "resize": "onScroll()" }, properties: { "style.--t-initial": "stops()[0]", "style.scroll-snap-type": "stops().length > 1 ? \"y mandatory\" : null" } }, providers: [tuiHeaderOptionsProvider({ size: 'h5' })], viewQueries: [{ propertyName: "elements", predicate: ["stops"], descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onScroll()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n", styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;top:100%;left:0;right:0;display:block;block-size:calc(100% - 1rem);max-inline-size:40rem;margin:calc(-1 * var(--t-initial)) auto 0;background:var(--tui-background-elevation-1);border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:auto;box-shadow:0 1rem var(--tui-background-elevation-1),var(--tui-shadow-medium)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:before{content:\"\";position:sticky;top:.625rem;left:50%;z-index:1;display:block;inset-inline-start:50%;inline-size:2rem;block-size:.25rem;margin-block-end:-.25rem;transform:translate(calc(-50% * var(--tui-inline)));background:var(--tui-background-elevation-1);box-shadow:0 0 0 20rem var(--tui-background-elevation-1),inset 0 0 0 1rem var(--tui-border-normal);border-radius:1rem;clip-path:polygon(-100vw -1rem,100vw -1rem,100vw calc(100% + .625rem),-100vw calc(100% + .625rem))}:host:after{content:\"\";position:absolute;top:calc(100% - var(--t-initial));inline-size:1rem;block-size:calc(var(--t-height) - 100% + var(--t-initial));scroll-snap-align:start;scroll-snap-stop:always}.t-content{position:sticky;top:0;padding:2.25rem 1rem 1.5rem}.t-bottom{block-size:calc(100% - var(--t-initial))}.t-stop{position:absolute;block-size:var(--t-initial);inline-size:1rem;pointer-events:none;transform:translateY(-100%);scroll-snap-align:start;scroll-snap-stop:always}.t-stop:last-child{scroll-snap-align:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiBottomSheet, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'tui-bottom-sheet', changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiHeaderOptionsProvider({ size: 'h5' })], host: {
|
|
35
|
-
'[style.--t-initial]': 'stops[0]',
|
|
36
|
-
'[style.scroll-snap-type]': 'stops.length > 1 ? "y mandatory" : null',
|
|
35
|
+
'[style.--t-initial]': 'stops()[0]',
|
|
36
|
+
'[style.scroll-snap-type]': 'stops().length > 1 ? "y mandatory" : null',
|
|
37
37
|
'(scroll.zoneless)': 'onScroll()',
|
|
38
38
|
'(resize)': 'onScroll()',
|
|
39
|
-
}, template: "@for (stop of stops; track
|
|
40
|
-
}]
|
|
41
|
-
type: ViewChildren,
|
|
42
|
-
args: ['stops']
|
|
43
|
-
}], content: [{
|
|
44
|
-
type: ViewChild,
|
|
45
|
-
args: ['content']
|
|
46
|
-
}], stops: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}] } });
|
|
39
|
+
}, template: "@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onScroll()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n", styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;top:100%;left:0;right:0;display:block;block-size:calc(100% - 1rem);max-inline-size:40rem;margin:calc(-1 * var(--t-initial)) auto 0;background:var(--tui-background-elevation-1);border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:auto;box-shadow:0 1rem var(--tui-background-elevation-1),var(--tui-shadow-medium)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:before{content:\"\";position:sticky;top:.625rem;left:50%;z-index:1;display:block;inset-inline-start:50%;inline-size:2rem;block-size:.25rem;margin-block-end:-.25rem;transform:translate(calc(-50% * var(--tui-inline)));background:var(--tui-background-elevation-1);box-shadow:0 0 0 20rem var(--tui-background-elevation-1),inset 0 0 0 1rem var(--tui-border-normal);border-radius:1rem;clip-path:polygon(-100vw -1rem,100vw -1rem,100vw calc(100% + .625rem),-100vw calc(100% + .625rem))}:host:after{content:\"\";position:absolute;top:calc(100% - var(--t-initial));inline-size:1rem;block-size:calc(var(--t-height) - 100% + var(--t-initial));scroll-snap-align:start;scroll-snap-stop:always}.t-content{position:sticky;top:0;padding:2.25rem 1rem 1.5rem}.t-bottom{block-size:calc(100% - var(--t-initial))}.t-stop{position:absolute;block-size:var(--t-initial);inline-size:1rem;pointer-events:none;transform:translateY(-100%);scroll-snap-align:start;scroll-snap-stop:always}.t-stop:last-child{scroll-snap-align:none}\n"] }]
|
|
40
|
+
}] });
|
|
49
41
|
|
|
50
42
|
/**
|
|
51
43
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-components-bottom-sheet.mjs","sources":["../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.template.html","../../../projects/addon-mobile/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-components-bottom-sheet.mjs","sources":["../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.template.html","../../../projects/addon-mobile/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n input,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiHeaderOptionsProvider} from '@taiga-ui/layout/components/header';\n\nconst OPTIONS = {\n duration: 20,\n easing: 'ease-in',\n fill: 'forwards',\n} as const;\n\n@Component({\n selector: 'tui-bottom-sheet',\n templateUrl: './bottom-sheet.template.html',\n styleUrl: './bottom-sheet.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiHeaderOptionsProvider({size: 'h5'})],\n host: {\n '[style.--t-initial]': 'stops()[0]',\n '[style.scroll-snap-type]': 'stops().length > 1 ? \"y mandatory\" : null',\n '(scroll.zoneless)': 'onScroll()',\n '(resize)': 'onScroll()',\n },\n})\nexport class TuiBottomSheet {\n private readonly elements = viewChildren<ElementRef<HTMLElement>>('stops');\n private readonly content = viewChild<ElementRef<HTMLElement>>('content');\n private readonly el = tuiInjectElement();\n\n public readonly stops = input<readonly string[]>(['1.5rem']);\n\n protected onScroll(): void {\n const {clientHeight, scrollTop, scrollHeight} = this.el;\n const top = this.elements()[0]?.nativeElement.clientHeight || 0;\n const max = this.content()?.nativeElement.clientHeight || Infinity;\n const height = Math.min(clientHeight, max);\n const scrolled = Math.min(scrollTop, height - top);\n const transform = `translate3d(0, ${-1 * scrolled}px, 0)`;\n\n this.el.style.setProperty('--t-height', `${scrollHeight}px`);\n this.el.style.setProperty('overflow', 'scroll');\n this.el.animate([{transform}], OPTIONS);\n }\n}\n","@for (stop of stops(); track $index) {\n <div\n #stops\n class=\"t-stop\"\n [style.inset-block-start]=\"stop\"\n ></div>\n}\n<div\n #content\n class=\"t-content\"\n (resize)=\"onScroll()\"\n>\n <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { contentChild, inject, Directive, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { TuiMobileCalendar } from '@taiga-ui/addon-mobile/components/mobile-calendar';
|
|
5
5
|
import { TuiKeyboardService } from '@taiga-ui/addon-mobile/services';
|
|
6
6
|
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
@@ -20,25 +20,27 @@ import { TuiInputDateDirective } from '@taiga-ui/kit/components/input-date';
|
|
|
20
20
|
import { TuiInputDateRangeDirective } from '@taiga-ui/kit/components/input-date-range';
|
|
21
21
|
import { TuiInputDateTimeDirective } from '@taiga-ui/kit/components/input-date-time';
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
class TuiMobileCalendarDropdownNew {
|
|
23
|
+
class TuiMobileCalendarDropdown {
|
|
25
24
|
constructor() {
|
|
25
|
+
this.single = contentChild(TuiInputDateDirective);
|
|
26
|
+
this.range = contentChild(TuiInputDateRangeDirective);
|
|
27
|
+
this.dateTime = contentChild(TuiInputDateTimeDirective);
|
|
26
28
|
this.handlers = inject(TuiItemsHandlersDirective);
|
|
27
29
|
}
|
|
28
30
|
get date() {
|
|
29
|
-
return this.single || this.range || this.dateTime;
|
|
31
|
+
return this.single() || this.range() || this.dateTime();
|
|
30
32
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type:
|
|
32
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileCalendarDropdown, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.17", type: TuiMobileCalendarDropdown, isStandalone: true, selector: "[tuiMobileCalendar]", providers: [
|
|
33
35
|
{
|
|
34
36
|
provide: TUI_DROPDOWN_COMPONENT,
|
|
35
37
|
useFactory: () => inject(TUI_IS_MOBILE)
|
|
36
|
-
?
|
|
38
|
+
? TuiMobileCalendarDropdownComponent
|
|
37
39
|
: inject(TUI_DROPDOWN_COMPONENT, { skipSelf: true }),
|
|
38
40
|
},
|
|
39
|
-
], queries: [{ propertyName: "single", first: true, predicate: TuiInputDateDirective, descendants: true }, { propertyName: "range", first: true, predicate: TuiInputDateRangeDirective, descendants: true }, { propertyName: "dateTime", first: true, predicate: TuiInputDateTimeDirective, descendants: true }], ngImport: i0 }); }
|
|
41
|
+
], queries: [{ propertyName: "single", first: true, predicate: TuiInputDateDirective, descendants: true, isSignal: true }, { propertyName: "range", first: true, predicate: TuiInputDateRangeDirective, descendants: true, isSignal: true }, { propertyName: "dateTime", first: true, predicate: TuiInputDateTimeDirective, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
40
42
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type:
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileCalendarDropdown, decorators: [{
|
|
42
44
|
type: Directive,
|
|
43
45
|
args: [{
|
|
44
46
|
selector: '[tuiMobileCalendar]',
|
|
@@ -46,24 +48,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
46
48
|
{
|
|
47
49
|
provide: TUI_DROPDOWN_COMPONENT,
|
|
48
50
|
useFactory: () => inject(TUI_IS_MOBILE)
|
|
49
|
-
?
|
|
51
|
+
? TuiMobileCalendarDropdownComponent
|
|
50
52
|
: inject(TUI_DROPDOWN_COMPONENT, { skipSelf: true }),
|
|
51
53
|
},
|
|
52
54
|
],
|
|
53
55
|
}]
|
|
54
|
-
}]
|
|
55
|
-
type: ContentChild,
|
|
56
|
-
args: [TuiInputDateDirective]
|
|
57
|
-
}], range: [{
|
|
58
|
-
type: ContentChild,
|
|
59
|
-
args: [TuiInputDateRangeDirective]
|
|
60
|
-
}], dateTime: [{
|
|
61
|
-
type: ContentChild,
|
|
62
|
-
args: [TuiInputDateTimeDirective]
|
|
63
|
-
}] } });
|
|
56
|
+
}] });
|
|
64
57
|
|
|
65
|
-
|
|
66
|
-
class TuiMobileCalendarDropdown {
|
|
58
|
+
class TuiMobileCalendarDropdownComponent {
|
|
67
59
|
constructor() {
|
|
68
60
|
// TODO: Rework to use TuiDropdownOpenDirective so the focus returns to the field on closing
|
|
69
61
|
this.dropdown = inject(TuiDropdownDirective, { optional: true });
|
|
@@ -74,11 +66,11 @@ class TuiMobileCalendarDropdown {
|
|
|
74
66
|
this.selectedPeriod = null;
|
|
75
67
|
// TODO: Refactor to proper Date, DateMulti and DateRange components after they are added to kit
|
|
76
68
|
this.control = inject(TuiControl, { optional: true });
|
|
77
|
-
this.directive = inject(
|
|
78
|
-
this.range = !!this.directive?.range || this.is('tui-input-date-range');
|
|
69
|
+
this.directive = inject(TuiMobileCalendarDropdown, { optional: true });
|
|
79
70
|
this.multi = this.data.multi || this.is('tui-input-date[multiple]');
|
|
80
|
-
this.
|
|
81
|
-
|
|
71
|
+
this.range = !!this.directive?.range() || this.is('tui-input-date-range');
|
|
72
|
+
this.single = !!this.directive?.single() ||
|
|
73
|
+
!!this.directive?.dateTime() ||
|
|
82
74
|
this.data.single || // TODO(v5): use `rangeMode` from DI token `TUI_CALENDAR_SHEET_DEFAULT_OPTIONS`
|
|
83
75
|
this.is('tui-input-date:not([multiple])');
|
|
84
76
|
this.value = computed((value = this.directive?.date?.value()) => Array.isArray(value) ? value[0] : value);
|
|
@@ -139,13 +131,13 @@ class TuiMobileCalendarDropdown {
|
|
|
139
131
|
is(selector) {
|
|
140
132
|
return !!this.dropdown?.el.closest(selector);
|
|
141
133
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type:
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type:
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileCalendarDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TuiMobileCalendarDropdownComponent, isStandalone: true, selector: "tui-mobile-calendar-dropdown", hostDirectives: [{ directive: i1.TuiActiveZone }, { directive: i2.TuiAnimated }], ngImport: i0, template: "<tui-mobile-calendar\n [disabledItemHandler]=\"calculatedDisabledItemHandler\"\n [max]=\"max()\"\n [min]=\"min()\"\n [multi]=\"multi\"\n [single]=\"single\"\n [value]=\"value()\"\n (cancel)=\"close()\"\n (confirm)=\"confirm($event)\"\n (valueChange)=\"onValueChange($event)\"\n/>\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;background:var(--tui-background-elevation-1);box-shadow:0 10rem var(--tui-background-elevation-1),0 -90vh 1rem 2rem var(--tui-service-backdrop);block-size:calc(100% - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}\n"], dependencies: [{ kind: "component", type: TuiMobileCalendar, selector: "tui-mobile-calendar", inputs: ["single", "multi", "min", "max", "disabledItemHandler", "value"], outputs: ["cancel", "confirm", "valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
144
136
|
}
|
|
145
137
|
__decorate([
|
|
146
138
|
tuiPure
|
|
147
|
-
],
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type:
|
|
139
|
+
], TuiMobileCalendarDropdownComponent.prototype, "calculateDisabledItemHandler", null);
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileCalendarDropdownComponent, decorators: [{
|
|
149
141
|
type: Component,
|
|
150
142
|
args: [{ selector: 'tui-mobile-calendar-dropdown', imports: [TuiMobileCalendar], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiActiveZone, TuiAnimated], template: "<tui-mobile-calendar\n [disabledItemHandler]=\"calculatedDisabledItemHandler\"\n [max]=\"max()\"\n [min]=\"min()\"\n [multi]=\"multi\"\n [single]=\"single\"\n [value]=\"value()\"\n (cancel)=\"close()\"\n (confirm)=\"confirm($event)\"\n (valueChange)=\"onValueChange($event)\"\n/>\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;background:var(--tui-background-elevation-1);box-shadow:0 10rem var(--tui-background-elevation-1),0 -90vh 1rem 2rem var(--tui-service-backdrop);block-size:calc(100% - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}\n"] }]
|
|
151
143
|
}], ctorParameters: () => [], propDecorators: { calculateDisabledItemHandler: [] } });
|
|
@@ -154,5 +146,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
154
146
|
* Generated bundle index. Do not edit.
|
|
155
147
|
*/
|
|
156
148
|
|
|
157
|
-
export { TuiMobileCalendarDropdown,
|
|
149
|
+
export { TuiMobileCalendarDropdown, TuiMobileCalendarDropdownComponent };
|
|
158
150
|
//# sourceMappingURL=taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs","sources":["../../../projects/addon-mobile/components/mobile-calendar-dropdown/mobile-calendar-dropdown.directive.ts","../../../projects/addon-mobile/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.ts","../../../projects/addon-mobile/components/mobile-calendar-dropdown/mobile-calendar-dropdown.template.html","../../../projects/addon-mobile/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.ts"],"sourcesContent":["import {ContentChild, Directive, inject} from '@angular/core';\nimport {type TuiDay, type TuiDayRange, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiItemsHandlersDirective} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_DROPDOWN_COMPONENT} from '@taiga-ui/core/portals/dropdown';\nimport {\n type TuiInputDateBase,\n TuiInputDateDirective,\n} from '@taiga-ui/kit/components/input-date';\nimport {TuiInputDateRangeDirective} from '@taiga-ui/kit/components/input-date-range';\nimport {TuiInputDateTimeDirective} from '@taiga-ui/kit/components/input-date-time';\n\nimport {TuiMobileCalendarDropdown} from './mobile-calendar-dropdown.component';\n\n// TODO: Rename to TuiMobileCalendarDropdown in v5\n@Directive({\n selector: '[tuiMobileCalendar]',\n providers: [\n {\n provide: TUI_DROPDOWN_COMPONENT,\n useFactory: () =>\n inject(TUI_IS_MOBILE)\n ? TuiMobileCalendarDropdown\n : inject(TUI_DROPDOWN_COMPONENT, {skipSelf: true}),\n },\n ],\n})\nexport class TuiMobileCalendarDropdownNew {\n @ContentChild(TuiInputDateDirective)\n public readonly single?: TuiInputDateDirective;\n\n @ContentChild(TuiInputDateRangeDirective)\n public readonly range?: TuiInputDateRangeDirective;\n\n @ContentChild(TuiInputDateTimeDirective)\n public readonly dateTime?: TuiInputDateTimeDirective;\n\n public readonly handlers = inject(TuiItemsHandlersDirective);\n\n public get date():\n | TuiInputDateBase<readonly [TuiDay, TuiTime | null]>\n | TuiInputDateBase<TuiDay>\n | TuiInputDateBase<TuiDayRange>\n | undefined {\n return this.single || this.range || this.dateTime;\n }\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {TuiMobileCalendar} from '@taiga-ui/addon-mobile/components/mobile-calendar';\nimport {TuiKeyboardService} from '@taiga-ui/addon-mobile/services';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDay,\n type TuiDayLike,\n TuiDayRange,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {\n calculateDisabledItemHandler,\n TUI_DAY_CAPS_MAPPER,\n} from '@taiga-ui/kit/components/calendar-range';\nimport {injectContext} from '@taiga-ui/polymorpheus';\nimport {type Observer} from 'rxjs';\n\nimport {TuiMobileCalendarDropdownNew} from './mobile-calendar-dropdown.directive';\n\nexport interface TuiMobileCalendarData {\n disabledItemHandler?: TuiBooleanHandler<TuiDay>;\n max?: TuiDay | null;\n min?: TuiDay | null;\n multi?: boolean;\n single?: boolean;\n}\n\n// TODO: Rename to TuiMobileCalendarDropdownComponent in v5, this component is terrible and needs a complete rewrite\n@Component({\n selector: 'tui-mobile-calendar-dropdown',\n imports: [TuiMobileCalendar],\n templateUrl: './mobile-calendar-dropdown.template.html',\n styleUrl: './mobile-calendar-dropdown.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiActiveZone, TuiAnimated],\n})\nexport class TuiMobileCalendarDropdown {\n // TODO: Rework to use TuiDropdownOpenDirective so the focus returns to the field on closing\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n private readonly keyboard = inject(TuiKeyboardService);\n\n private readonly context = injectContext<Record<string, any>>({optional: true});\n private readonly observer?: Observer<unknown> = this.context?.$implicit;\n private readonly data: TuiMobileCalendarData = this.context?.data || {};\n\n private selectedPeriod: TuiDayRange | null = null;\n\n // TODO: Refactor to proper Date, DateMulti and DateRange components after they are added to kit\n protected readonly control: any = inject(TuiControl, {optional: true});\n protected readonly directive = inject(TuiMobileCalendarDropdownNew, {optional: true});\n protected readonly range = !!this.directive?.range || this.is('tui-input-date-range');\n protected readonly multi = this.data.multi || this.is('tui-input-date[multiple]');\n protected readonly single =\n !!this.directive?.single ||\n !!this.directive?.dateTime ||\n this.data.single || // TODO(v5): use `rangeMode` from DI token `TUI_CALENDAR_SHEET_DEFAULT_OPTIONS`\n this.is('tui-input-date:not([multiple])');\n\n protected readonly value = computed<TuiDay | TuiDayRange | null>(\n (value = this.directive?.date?.value()) =>\n Array.isArray(value) ? value[0] : value,\n );\n\n constructor() {\n this.keyboard.hide();\n }\n\n public max(): TuiDay {\n return (\n this.directive?.date?.max() ??\n (this.data.max ||\n (this.range\n ? TUI_DAY_CAPS_MAPPER(\n this.control.max,\n this.selectedPeriod,\n this.control.maxLength,\n false,\n )\n : this.control?.max) ||\n TUI_LAST_DAY)\n );\n }\n\n public min(): TuiDay {\n return (\n this.directive?.date?.min() ??\n (this.data.min ||\n (this.range\n ? TUI_DAY_CAPS_MAPPER(\n this.control.min,\n this.selectedPeriod,\n this.control.maxLength,\n true,\n )\n : this.control?.min) ||\n TUI_FIRST_DAY)\n );\n }\n\n public onValueChange(value: TuiDay | TuiDayRange | readonly TuiDay[] | null): void {\n if (!this.range) {\n return;\n }\n\n if (value === null || value instanceof TuiDayRange) {\n this.selectedPeriod = value;\n } else if (value instanceof TuiDay) {\n this.selectedPeriod = new TuiDayRange(value, value);\n }\n }\n\n protected get calculatedDisabledItemHandler(): TuiBooleanHandler<TuiDay> {\n return this.calculateDisabledItemHandler(\n this.directive?.handlers.disabledItemHandler() ||\n this.data.disabledItemHandler ||\n this.control?.disabledItemHandler ||\n TUI_FALSE_HANDLER,\n this.selectedPeriod,\n this.control?.minLength ?? null,\n );\n }\n\n protected close(): void {\n this.dropdown?.toggle(false);\n this.observer?.complete();\n this.keyboard.show();\n }\n\n protected confirm(value: TuiDay | TuiDayRange | readonly TuiDay[]): void {\n const normalizedValue = this.range ? this.selectedPeriod : value;\n\n if (this.control) {\n this.control.value = normalizedValue;\n }\n\n if (normalizedValue) {\n this.directive?.date?.setDate(normalizedValue);\n }\n\n this.observer?.next(normalizedValue);\n this.close();\n }\n\n @tuiPure\n private calculateDisabledItemHandler(\n disabledItemHandler: TuiBooleanHandler<TuiDay>,\n value: TuiDayRange | null,\n minLength: TuiDayLike | null,\n ): TuiBooleanHandler<TuiDay> {\n return calculateDisabledItemHandler(disabledItemHandler, value, minLength);\n }\n\n private is(selector: string): boolean {\n return !!this.dropdown?.el.closest(selector);\n }\n}\n","<tui-mobile-calendar\n [disabledItemHandler]=\"calculatedDisabledItemHandler\"\n [max]=\"max()\"\n [min]=\"min()\"\n [multi]=\"multi\"\n [single]=\"single\"\n [value]=\"value()\"\n (cancel)=\"close()\"\n (confirm)=\"confirm($event)\"\n (valueChange)=\"onValueChange($event)\"\n/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA;MAaa,4BAA4B,CAAA;AAZzC,IAAA,WAAA,GAAA;AAsBoB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAS/D;AAPG,IAAA,IAAW,IAAI,GAAA;QAKX,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;;+GAjB5C,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAV1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,UAAU,EAAE,MACR,MAAM,CAAC,aAAa;AAChB,sBAAE;sBACA,MAAM,CAAC,sBAAsB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC7D,aAAA;AACJ,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGa,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGrB,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAG1B,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAP9B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAZxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,UAAU,EAAE,MACR,MAAM,CAAC,aAAa;AAChB,kCAAE;kCACA,MAAM,CAAC,sBAAsB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC7D,yBAAA;AACJ,qBAAA;AACJ,iBAAA;8BAGmB,MAAM,EAAA,CAAA;sBADrB,YAAY;uBAAC,qBAAqB;gBAInB,KAAK,EAAA,CAAA;sBADpB,YAAY;uBAAC,0BAA0B;gBAIxB,QAAQ,EAAA,CAAA;sBADvB,YAAY;uBAAC,yBAAyB;;;ACA3C;MASa,yBAAyB,CAAA;AA2BlC,IAAA,WAAA,GAAA;;QAzBiB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAErC,IAAO,CAAA,OAAA,GAAG,aAAa,CAAsB,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,CAAC,OAAO,EAAE,SAAS;QACtD,IAAI,CAAA,IAAA,GAA0B,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE;QAE/D,IAAc,CAAA,cAAA,GAAuB,IAAI;;QAG9B,IAAO,CAAA,OAAA,GAAQ,MAAM,CAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QACnD,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,4BAA4B,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAClE,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC;AAClE,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC;AAC9D,QAAA,IAAA,CAAA,MAAM,GACrB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM;AACxB,YAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ;AAC1B,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM;AAChB,YAAA,IAAI,CAAC,EAAE,CAAC,gCAAgC,CAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAC/B,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAClC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAC9C;AAGG,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;IAGjB,GAAG,GAAA;QACN,QACI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3B,aAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBACT,IAAI,CAAC;sBACA,mBAAmB,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAChB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,KAAK;AAEX,sBAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;gBACxB,YAAY,CAAC;;IAIlB,GAAG,GAAA;QACN,QACI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3B,aAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBACT,IAAI,CAAC;sBACA,mBAAmB,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAChB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI;AAEV,sBAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;gBACxB,aAAa,CAAC;;AAInB,IAAA,aAAa,CAAC,KAAsD,EAAA;AACvE,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb;;QAGJ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,WAAW,EAAE;AAChD,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AACxB,aAAA,IAAI,KAAK,YAAY,MAAM,EAAE;YAChC,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;;;AAI3D,IAAA,IAAc,6BAA6B,GAAA;QACvC,OAAO,IAAI,CAAC,4BAA4B,CACpC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,mBAAmB,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAC7B,IAAI,CAAC,OAAO,EAAE,mBAAmB;AACjC,YAAA,iBAAiB,EACrB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,CAClC;;IAGK,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;AAGd,IAAA,OAAO,CAAC,KAA+C,EAAA;AAC7D,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,KAAK;AAEhE,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe;;QAGxC,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC;;AAGlD,QAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE;;AAIR,IAAA,4BAA4B,CAChC,mBAA8C,EAC9C,KAAyB,EACzB,SAA4B,EAAA;QAE5B,OAAO,4BAA4B,CAAC,mBAAmB,EAAE,KAAK,EAAE,SAAS,CAAC;;AAGtE,IAAA,EAAE,CAAC,QAAgB,EAAA;AACvB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;;+GArHvC,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CtC,sTAWA,EAAA,MAAA,EAAA,CAAA,qaAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED0Bc,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;AAkHnB,UAAA,CAAA;IADP;AAOA,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA;4FAlHQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAC/B,OAAA,EAAA,CAAC,iBAAiB,CAAC,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAC/B,cAAA,EAAA,CAAC,aAAa,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,sTAAA,EAAA,MAAA,EAAA,CAAA,qaAAA,CAAA,EAAA;wDA8GpC,4BAA4B,EAAA,EAAA,EAAA,EAAA,CAAA;;AEvJxC;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs","sources":["../../../projects/addon-mobile/components/mobile-calendar-dropdown/mobile-calendar-dropdown.directive.ts","../../../projects/addon-mobile/components/mobile-calendar-dropdown/mobile-calendar-dropdown.component.ts","../../../projects/addon-mobile/components/mobile-calendar-dropdown/mobile-calendar-dropdown.template.html","../../../projects/addon-mobile/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.ts"],"sourcesContent":["import {contentChild, Directive, inject} from '@angular/core';\nimport {type TuiDay, type TuiDayRange, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiItemsHandlersDirective} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_DROPDOWN_COMPONENT} from '@taiga-ui/core/portals/dropdown';\nimport {\n type TuiInputDateBase,\n TuiInputDateDirective,\n} from '@taiga-ui/kit/components/input-date';\nimport {TuiInputDateRangeDirective} from '@taiga-ui/kit/components/input-date-range';\nimport {TuiInputDateTimeDirective} from '@taiga-ui/kit/components/input-date-time';\n\nimport {TuiMobileCalendarDropdownComponent} from './mobile-calendar-dropdown.component';\n\n@Directive({\n selector: '[tuiMobileCalendar]',\n providers: [\n {\n provide: TUI_DROPDOWN_COMPONENT,\n useFactory: () =>\n inject(TUI_IS_MOBILE)\n ? TuiMobileCalendarDropdownComponent\n : inject(TUI_DROPDOWN_COMPONENT, {skipSelf: true}),\n },\n ],\n})\nexport class TuiMobileCalendarDropdown {\n public readonly single = contentChild(TuiInputDateDirective);\n public readonly range = contentChild(TuiInputDateRangeDirective);\n public readonly dateTime = contentChild(TuiInputDateTimeDirective);\n public readonly handlers = inject(TuiItemsHandlersDirective);\n\n public get date():\n | TuiInputDateBase<readonly [TuiDay, TuiTime | null]>\n | TuiInputDateBase<TuiDay>\n | TuiInputDateBase<TuiDayRange>\n | undefined {\n return this.single() || this.range() || this.dateTime();\n }\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {TuiMobileCalendar} from '@taiga-ui/addon-mobile/components/mobile-calendar';\nimport {TuiKeyboardService} from '@taiga-ui/addon-mobile/services';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDay,\n type TuiDayLike,\n TuiDayRange,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {\n calculateDisabledItemHandler,\n TUI_DAY_CAPS_MAPPER,\n} from '@taiga-ui/kit/components/calendar-range';\nimport {injectContext} from '@taiga-ui/polymorpheus';\nimport {type Observer} from 'rxjs';\n\nimport {TuiMobileCalendarDropdown} from './mobile-calendar-dropdown.directive';\n\nexport interface TuiMobileCalendarData {\n disabledItemHandler?: TuiBooleanHandler<TuiDay>;\n max?: TuiDay | null;\n min?: TuiDay | null;\n multi?: boolean;\n single?: boolean;\n}\n\n@Component({\n selector: 'tui-mobile-calendar-dropdown',\n imports: [TuiMobileCalendar],\n templateUrl: './mobile-calendar-dropdown.template.html',\n styleUrl: './mobile-calendar-dropdown.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiActiveZone, TuiAnimated],\n})\nexport class TuiMobileCalendarDropdownComponent {\n // TODO: Rework to use TuiDropdownOpenDirective so the focus returns to the field on closing\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n private readonly keyboard = inject(TuiKeyboardService);\n private readonly context = injectContext<Record<string, any>>({optional: true});\n private readonly observer?: Observer<unknown> = this.context?.$implicit;\n private readonly data: TuiMobileCalendarData = this.context?.data || {};\n private selectedPeriod: TuiDayRange | null = null;\n\n // TODO: Refactor to proper Date, DateMulti and DateRange components after they are added to kit\n protected readonly control: any = inject(TuiControl, {optional: true});\n protected readonly directive = inject(TuiMobileCalendarDropdown, {optional: true});\n protected readonly multi = this.data.multi || this.is('tui-input-date[multiple]');\n protected readonly range =\n !!this.directive?.range() || this.is('tui-input-date-range');\n\n protected readonly single =\n !!this.directive?.single() ||\n !!this.directive?.dateTime() ||\n this.data.single || // TODO(v5): use `rangeMode` from DI token `TUI_CALENDAR_SHEET_DEFAULT_OPTIONS`\n this.is('tui-input-date:not([multiple])');\n\n protected readonly value = computed<TuiDay | TuiDayRange | null>(\n (value = this.directive?.date?.value()) =>\n Array.isArray(value) ? value[0] : value,\n );\n\n constructor() {\n this.keyboard.hide();\n }\n\n public max(): TuiDay {\n return (\n this.directive?.date?.max() ??\n (this.data.max ||\n (this.range\n ? TUI_DAY_CAPS_MAPPER(\n this.control.max,\n this.selectedPeriod,\n this.control.maxLength,\n false,\n )\n : this.control?.max) ||\n TUI_LAST_DAY)\n );\n }\n\n public min(): TuiDay {\n return (\n this.directive?.date?.min() ??\n (this.data.min ||\n (this.range\n ? TUI_DAY_CAPS_MAPPER(\n this.control.min,\n this.selectedPeriod,\n this.control.maxLength,\n true,\n )\n : this.control?.min) ||\n TUI_FIRST_DAY)\n );\n }\n\n public onValueChange(value: TuiDay | TuiDayRange | readonly TuiDay[] | null): void {\n if (!this.range) {\n return;\n }\n\n if (value === null || value instanceof TuiDayRange) {\n this.selectedPeriod = value;\n } else if (value instanceof TuiDay) {\n this.selectedPeriod = new TuiDayRange(value, value);\n }\n }\n\n protected get calculatedDisabledItemHandler(): TuiBooleanHandler<TuiDay> {\n return this.calculateDisabledItemHandler(\n this.directive?.handlers.disabledItemHandler() ||\n this.data.disabledItemHandler ||\n this.control?.disabledItemHandler ||\n TUI_FALSE_HANDLER,\n this.selectedPeriod,\n this.control?.minLength ?? null,\n );\n }\n\n protected close(): void {\n this.dropdown?.toggle(false);\n this.observer?.complete();\n this.keyboard.show();\n }\n\n protected confirm(value: TuiDay | TuiDayRange | readonly TuiDay[]): void {\n const normalizedValue = this.range ? this.selectedPeriod : value;\n\n if (this.control) {\n this.control.value = normalizedValue;\n }\n\n if (normalizedValue) {\n this.directive?.date?.setDate(normalizedValue);\n }\n\n this.observer?.next(normalizedValue);\n this.close();\n }\n\n @tuiPure\n private calculateDisabledItemHandler(\n disabledItemHandler: TuiBooleanHandler<TuiDay>,\n value: TuiDayRange | null,\n minLength: TuiDayLike | null,\n ): TuiBooleanHandler<TuiDay> {\n return calculateDisabledItemHandler(disabledItemHandler, value, minLength);\n }\n\n private is(selector: string): boolean {\n return !!this.dropdown?.el.closest(selector);\n }\n}\n","<tui-mobile-calendar\n [disabledItemHandler]=\"calculatedDisabledItemHandler\"\n [max]=\"max()\"\n [min]=\"min()\"\n [multi]=\"multi\"\n [single]=\"single\"\n [value]=\"value()\"\n (cancel)=\"close()\"\n (confirm)=\"confirm($event)\"\n (valueChange)=\"onValueChange($event)\"\n/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|