@taiga-ui/legacy 4.52.0-canary.ece97e9 → 4.52.0-canary.efbd0d4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/components/dialog/dialog.component.d.ts +5 -5
- package/components/dialog/dialog.directive.d.ts +4 -3
- package/components/dialog/dialog.interfaces.d.ts +3 -4
- package/components/dialog/dialog.service.d.ts +5 -2
- package/components/dialog/dialog.tokens.d.ts +1 -3
- package/components/index.d.ts +1 -17
- package/components/mobile-dialog/index.d.ts +3 -0
- package/components/mobile-dialog/mobile-dialog.component.d.ts +10 -0
- package/components/mobile-dialog/mobile-dialog.options.d.ts +10 -0
- package/components/mobile-dialog/mobile-dialog.service.d.ts +14 -0
- package/components/pdf-viewer/pdf-viewer.component.d.ts +2 -2
- package/components/pdf-viewer/pdf-viewer.directive.d.ts +4 -3
- package/components/pdf-viewer/pdf-viewer.options.d.ts +1 -3
- package/components/pdf-viewer/pdf-viewer.service.d.ts +7 -3
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs +40 -33
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs +62 -0
- package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +34 -28
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components.mjs +1 -17
- package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy.mjs +0 -4
- package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
- package/index.d.ts +0 -4
- package/package.json +19 -114
- package/classes/abstract-native-select.d.ts +0 -22
- package/classes/abstract-textfield-host.d.ts +0 -19
- package/classes/control.d.ts +0 -60
- package/classes/controller.d.ts +0 -9
- package/classes/index.d.ts +0 -9
- package/classes/interactive.d.ts +0 -34
- package/classes/multiple-control.d.ts +0 -11
- package/classes/named-day.d.ts +0 -11
- package/classes/nullable-control.d.ts +0 -10
- package/classes/stringifiable-item.d.ts +0 -11
- package/components/arrow/arrow.component.d.ts +0 -17
- package/components/arrow/arrow.options.d.ts +0 -19
- package/components/arrow/arrow.providers.d.ts +0 -23
- package/components/arrow/index.d.ts +0 -3
- package/components/input/index.d.ts +0 -3
- package/components/input/input.component.d.ts +0 -32
- package/components/input/input.directive.d.ts +0 -12
- package/components/input/input.module.d.ts +0 -16
- package/components/input-date-range/index.d.ts +0 -3
- package/components/input-date-range/input-date-range.component.d.ts +0 -67
- package/components/input-date-range/input-date-range.directive.d.ts +0 -16
- package/components/input-date-range/input-date-range.module.d.ts +0 -21
- package/components/input-date-time/index.d.ts +0 -3
- package/components/input-date-time/input-date-time.component.d.ts +0 -88
- package/components/input-date-time/input-date-time.directive.d.ts +0 -17
- package/components/input-date-time/input-date-time.module.d.ts +0 -23
- package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +0 -13
- package/components/input-month-range/index.d.ts +0 -3
- package/components/input-month-range/input-month-range.component.d.ts +0 -38
- package/components/input-month-range/input-month-range.directive.d.ts +0 -23
- package/components/input-month-range/input-month-range.module.d.ts +0 -18
- package/components/input-number/index.d.ts +0 -4
- package/components/input-number/input-number.component.d.ts +0 -63
- package/components/input-number/input-number.directive.d.ts +0 -16
- package/components/input-number/input-number.module.d.ts +0 -18
- package/components/input-number/input-number.options.d.ts +0 -29
- package/components/input-range/index.d.ts +0 -2
- package/components/input-range/input-range.component.d.ts +0 -56
- package/components/input-range/input-range.module.d.ts +0 -19
- package/components/input-slider/index.d.ts +0 -2
- package/components/input-slider/input-slider.component.d.ts +0 -42
- package/components/input-slider/input-slider.module.d.ts +0 -18
- package/components/input-tag/index.d.ts +0 -3
- package/components/input-tag/input-tag.component.d.ts +0 -103
- package/components/input-tag/input-tag.module.d.ts +0 -22
- package/components/input-tag/input-tag.options.d.ts +0 -27
- package/components/multi-select/hide-selected.pipe.d.ts +0 -11
- package/components/multi-select/index.d.ts +0 -10
- package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +0 -23
- package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +0 -8
- package/components/multi-select/multi-select.component.d.ts +0 -71
- package/components/multi-select/multi-select.directive.d.ts +0 -14
- package/components/multi-select/multi-select.module.d.ts +0 -30
- package/components/multi-select/multi-select.options.d.ts +0 -14
- package/components/multi-select/native-multi-select/native-multi-select-group.component.d.ts +0 -9
- package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +0 -8
- package/components/multi-select/native-multi-select/native-multi-select.d.ts +0 -11
- package/components/multi-select-option/index.d.ts +0 -2
- package/components/multi-select-option/multi-select-option.component.d.ts +0 -9
- package/components/multi-select-option/multi-select-option.module.d.ts +0 -9
- package/components/primitive-textfield/index.d.ts +0 -7
- package/components/primitive-textfield/primitive-textfield-options.d.ts +0 -21
- package/components/primitive-textfield/primitive-textfield-types.d.ts +0 -11
- package/components/primitive-textfield/primitive-textfield.component.d.ts +0 -73
- package/components/primitive-textfield/primitive-textfield.directive.d.ts +0 -14
- package/components/primitive-textfield/primitive-textfield.module.d.ts +0 -21
- package/components/primitive-textfield/textfield/textfield.component.d.ts +0 -13
- package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +0 -22
- package/components/select/index.d.ts +0 -6
- package/components/select/native-select/native-select-group.component.d.ts +0 -17
- package/components/select/native-select/native-select.component.d.ts +0 -16
- package/components/select/select.component.d.ts +0 -45
- package/components/select/select.directive.d.ts +0 -16
- package/components/select/select.module.d.ts +0 -24
- package/components/select/select.options.d.ts +0 -25
- package/components/select-option/index.d.ts +0 -2
- package/components/select-option/select-option.component.d.ts +0 -27
- package/components/select-option/select-option.module.d.ts +0 -10
- package/components/tag/index.d.ts +0 -3
- package/components/tag/tag.component.d.ts +0 -44
- package/components/tag/tag.module.d.ts +0 -16
- package/components/tag/tag.options.d.ts +0 -27
- package/components/textarea/index.d.ts +0 -3
- package/components/textarea/textarea.component.d.ts +0 -54
- package/components/textarea/textarea.directive.d.ts +0 -12
- package/components/textarea/textarea.module.d.ts +0 -21
- package/components/tooltip/index.d.ts +0 -2
- package/components/tooltip/tooltip.component.d.ts +0 -12
- package/components/tooltip/tooltip.module.d.ts +0 -13
- package/directives/index.d.ts +0 -5
- package/directives/legacy-dropdown-open-monitor/index.d.ts +0 -1
- package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +0 -11
- package/directives/textfield-controller/index.d.ts +0 -14
- package/directives/textfield-controller/textfield-appearance.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-cleaner.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-controller.module.d.ts +0 -17
- package/directives/textfield-controller/textfield-controller.provider.d.ts +0 -4
- package/directives/textfield-controller/textfield-custom-content.directive.d.ts +0 -10
- package/directives/textfield-controller/textfield-filler.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-icon-left.directive.d.ts +0 -12
- package/directives/textfield-controller/textfield-icon.directive.d.ts +0 -12
- package/directives/textfield-controller/textfield-label-outside.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-postfix.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-prefix.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-size.directive.d.ts +0 -10
- package/directives/textfield-controller/textfield.controller.d.ts +0 -41
- package/directives/textfield-controller/textfield.options.d.ts +0 -19
- package/directives/unfinished-validator/index.d.ts +0 -2
- package/directives/unfinished-validator/unfinished-validator.directive.d.ts +0 -10
- package/directives/unfinished-validator/unfinished.validator.d.ts +0 -4
- package/directives/value-accessor/index.d.ts +0 -3
- package/directives/value-accessor/value-accessor.directive.d.ts +0 -5
- package/directives/value-accessor/value-accessor.module.d.ts +0 -7
- package/directives/value-accessor/value-accessor.provider.d.ts +0 -2
- package/directives/wrapper/README.md +0 -19
- package/directives/wrapper/index.d.ts +0 -2
- package/directives/wrapper/wrapper.directive.d.ts +0 -22
- package/directives/wrapper/wrapper.module.d.ts +0 -10
- package/fesm2022/taiga-ui-legacy-classes.mjs +0 -415
- package/fesm2022/taiga-ui-legacy-classes.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +0 -85
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +0 -352
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +0 -465
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +0 -221
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +0 -390
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs +0 -261
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +0 -199
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +0 -524
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input.mjs +0 -156
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +0 -47
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +0 -686
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +0 -454
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs +0 -88
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-select.mjs +0 -353
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-tag.mjs +0 -225
- package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs +0 -262
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +0 -53
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +0 -50
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +0 -401
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +0 -49
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +0 -44
- package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +0 -99
- package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives.mjs +0 -10
- package/fesm2022/taiga-ui-legacy-directives.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-tokens.mjs +0 -384
- package/fesm2022/taiga-ui-legacy-tokens.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-utils.mjs +0 -262
- package/fesm2022/taiga-ui-legacy-utils.mjs.map +0 -1
- package/styles/mixins/mixins.less +0 -239
- package/styles/mixins/mixins.scss +0 -224
- package/styles/mixins/textfield.less +0 -324
- package/styles/mixins/textfield.scss +0 -308
- package/styles/taiga-ui-local.less +0 -3
- package/styles/taiga-ui-local.scss +0 -3
- package/tokens/countries-masks.d.ts +0 -9
- package/tokens/focusable-item-accessor.d.ts +0 -25
- package/tokens/fonts-ready.d.ts +0 -6
- package/tokens/icons.d.ts +0 -6
- package/tokens/index.d.ts +0 -14
- package/tokens/is-apple.d.ts +0 -6
- package/tokens/is-chromium.d.ts +0 -6
- package/tokens/is-firefox.d.ts +0 -6
- package/tokens/is-stackblitz.d.ts +0 -5
- package/tokens/month-formatter.d.ts +0 -10
- package/tokens/sanitizer.d.ts +0 -6
- package/tokens/textfield-appearance.d.ts +0 -7
- package/tokens/textfield-host.d.ts +0 -23
- package/tokens/touch-supported.d.ts +0 -5
- package/tokens/value-accessor.d.ts +0 -7
- package/utils/capitalize-first-letter.d.ts +0 -4
- package/utils/date-mode-maskito-adapter.d.ts +0 -6
- package/utils/format-phone.d.ts +0 -30
- package/utils/get-border.d.ts +0 -5
- package/utils/get-max-allowed-phone-length.d.ts +0 -24
- package/utils/get-safe-area-size.d.ts +0 -7
- package/utils/icons-path-factory.d.ts +0 -13
- package/utils/index.d.ts +0 -13
- package/utils/is-presumed-html-string.d.ts +0 -4
- package/utils/iso-to-country-code.d.ts +0 -13
- package/utils/not-kz-region.d.ts +0 -20
- package/utils/process-icon.d.ts +0 -4
- package/utils/specific-dropdown-controllers.d.ts +0 -4
- package/utils/status.d.ts +0 -4
package/README.md
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { type TuiPopover } from '@taiga-ui/cdk/services';
|
|
2
1
|
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
3
2
|
import { Subject } from 'rxjs';
|
|
4
|
-
import { type
|
|
3
|
+
import { type TuiDialogContext, type TuiDialogSize } from './dialog.interfaces';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
import * as i1 from "@taiga-ui/cdk/directives/animated";
|
|
7
6
|
export declare class TuiDialogComponent<O, I> {
|
|
8
7
|
protected readonly close$: Subject<void>;
|
|
9
|
-
protected readonly context:
|
|
8
|
+
protected readonly context: TuiDialogContext<I, O>;
|
|
10
9
|
protected readonly closeWord: import("@angular/core").Signal<string>;
|
|
11
10
|
protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
|
|
11
|
+
protected readonly breakpoint: import("@angular/core").Signal<"desktopLarge" | "desktopSmall" | "mobile">;
|
|
12
12
|
protected readonly from: import("@angular/core").Signal<"translateY(100vh)" | "translateY(2.5rem)">;
|
|
13
|
-
protected readonly isMobile: import("@angular/core").Signal<boolean
|
|
13
|
+
protected readonly isMobile: import("@angular/core").Signal<boolean>;
|
|
14
14
|
constructor();
|
|
15
15
|
protected get size(): TuiDialogSize;
|
|
16
|
-
protected get header(): PolymorpheusContent<
|
|
16
|
+
protected get header(): PolymorpheusContent<TuiDialogContext<I, O>>;
|
|
17
17
|
private close;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialogComponent<any, any>, never>;
|
|
19
19
|
static ɵcmp: i0.ɵɵComponentDeclaration<TuiDialogComponent<any, any>, "tui-dialog-legacy", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }]>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover';
|
|
2
1
|
import { type TuiDialogOptions } from './dialog.interfaces';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
3
|
+
import * as i1 from "@taiga-ui/cdk/portals";
|
|
4
|
+
export declare class TuiDialog<T> {
|
|
5
|
+
readonly tuiDialogOptions: import("@angular/core").InputSignal<Partial<TuiDialogOptions<T>>>;
|
|
5
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialog<any>, never>;
|
|
6
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDialog<any>, "ng-template[tuiDialog]", never, { "
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDialog<any>, "ng-template[tuiDialog]", never, { "tuiDialogOptions": { "alias": "tuiDialogOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiPortalDirective; inputs: { "options": "tuiDialogOptions"; "open": "tuiDialog"; }; outputs: { "openChange": "tuiDialogChange"; }; }]>;
|
|
7
8
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TuiPortalContext } from '@taiga-ui/cdk/portals';
|
|
2
2
|
import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
|
|
3
3
|
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
4
|
import { type Observable } from 'rxjs';
|
|
@@ -22,10 +22,9 @@ export interface TuiDialogOptions<I> {
|
|
|
22
22
|
button?: string;
|
|
23
23
|
};
|
|
24
24
|
readonly dismissible: Observable<boolean> | boolean;
|
|
25
|
-
readonly header: PolymorpheusContent<
|
|
25
|
+
readonly header: PolymorpheusContent<TuiDialogContext<I, any>>;
|
|
26
26
|
readonly label: string;
|
|
27
27
|
readonly required: boolean;
|
|
28
28
|
readonly size: TuiDialogSize;
|
|
29
29
|
}
|
|
30
|
-
export
|
|
31
|
-
}
|
|
30
|
+
export type TuiDialogContext<O = void, I = undefined> = TuiPortalContext<TuiDialogOptions<I>, O>;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TuiModalService } from '@taiga-ui/core/portals/modal';
|
|
2
|
+
import { TuiDialogComponent } from './dialog.component';
|
|
2
3
|
import { type TuiDialogOptions } from './dialog.interfaces';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class TuiDialogService extends
|
|
5
|
+
export declare class TuiDialogService extends TuiModalService<TuiDialogOptions<any>> {
|
|
6
|
+
protected readonly options: TuiDialogOptions<void>;
|
|
7
|
+
protected readonly content: typeof TuiDialogComponent;
|
|
5
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialogService, never>;
|
|
6
9
|
static ɵprov: i0.ɵɵInjectableDeclaration<TuiDialogService>;
|
|
7
10
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
import { type TuiDialogOptions } from './dialog.interfaces';
|
|
3
2
|
export declare const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogOptions<void>;
|
|
4
3
|
/**
|
|
5
4
|
* Default parameters for dialog component
|
|
6
5
|
*/
|
|
7
|
-
export declare const TUI_DIALOG_OPTIONS: InjectionToken<TuiDialogOptions<void
|
|
8
|
-
export declare function tuiDialogOptionsProvider(options: Partial<TuiDialogOptions<unknown>>): Provider;
|
|
6
|
+
export declare const TUI_DIALOG_OPTIONS: import("@angular/core").InjectionToken<TuiDialogOptions<void>>, tuiDialogOptionsProvider: (item: Partial<TuiDialogOptions<void>> | (() => Partial<TuiDialogOptions<void>>)) => import("@angular/core").FactoryProvider;
|
package/components/index.d.ts
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
export * from '@taiga-ui/legacy/components/arrow';
|
|
2
1
|
export * from '@taiga-ui/legacy/components/dialog';
|
|
3
|
-
export * from '@taiga-ui/legacy/components/
|
|
4
|
-
export * from '@taiga-ui/legacy/components/input-date-range';
|
|
5
|
-
export * from '@taiga-ui/legacy/components/input-date-time';
|
|
6
|
-
export * from '@taiga-ui/legacy/components/input-month-range';
|
|
7
|
-
export * from '@taiga-ui/legacy/components/input-number';
|
|
8
|
-
export * from '@taiga-ui/legacy/components/input-range';
|
|
9
|
-
export * from '@taiga-ui/legacy/components/input-slider';
|
|
10
|
-
export * from '@taiga-ui/legacy/components/input-tag';
|
|
11
|
-
export * from '@taiga-ui/legacy/components/multi-select';
|
|
12
|
-
export * from '@taiga-ui/legacy/components/multi-select-option';
|
|
2
|
+
export * from '@taiga-ui/legacy/components/mobile-dialog';
|
|
13
3
|
export * from '@taiga-ui/legacy/components/pdf-viewer';
|
|
14
|
-
export * from '@taiga-ui/legacy/components/primitive-textfield';
|
|
15
|
-
export * from '@taiga-ui/legacy/components/select';
|
|
16
|
-
export * from '@taiga-ui/legacy/components/select-option';
|
|
17
|
-
export * from '@taiga-ui/legacy/components/tag';
|
|
18
|
-
export * from '@taiga-ui/legacy/components/textarea';
|
|
19
|
-
export * from '@taiga-ui/legacy/components/tooltip';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type TuiPortalContext } from '@taiga-ui/cdk/portals';
|
|
2
|
+
import { type TuiMobileDialogOptions } from './mobile-dialog.options';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TuiMobileDialog<I> {
|
|
5
|
+
protected readonly isIOS: boolean;
|
|
6
|
+
protected readonly context: TuiPortalContext<TuiMobileDialogOptions<I>, number>;
|
|
7
|
+
protected onAction(index: number): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileDialog<any>, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiMobileDialog<any>, "tui-mobile-dialog", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface TuiMobileDialogOptions<I = undefined> {
|
|
2
|
+
readonly actions: readonly string[];
|
|
3
|
+
readonly data: I;
|
|
4
|
+
readonly label: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const TUI_MOBILE_DIALOG_DEFAULT_OPTIONS: TuiMobileDialogOptions;
|
|
7
|
+
/**
|
|
8
|
+
* Default parameters for mobile dialog component
|
|
9
|
+
*/
|
|
10
|
+
export declare const TUI_MOBILE_DIALOG_OPTIONS: import("@angular/core").InjectionToken<TuiMobileDialogOptions<undefined>>, tuiMobileDialogOptionsProvider: (item: Partial<TuiMobileDialogOptions<undefined>> | (() => Partial<TuiMobileDialogOptions<undefined>>)) => import("@angular/core").FactoryProvider;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TuiPortalContext } from '@taiga-ui/cdk/portals';
|
|
2
|
+
import { TuiModalService } from '@taiga-ui/core/portals/modal';
|
|
3
|
+
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
|
+
import { type Observable } from 'rxjs';
|
|
5
|
+
import { TuiMobileDialog } from './mobile-dialog.component';
|
|
6
|
+
import { type TuiMobileDialogOptions } from './mobile-dialog.options';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class TuiMobileDialogService extends TuiModalService<TuiMobileDialogOptions<any>, number> {
|
|
9
|
+
protected readonly options: TuiMobileDialogOptions<undefined>;
|
|
10
|
+
protected readonly content: typeof TuiMobileDialog;
|
|
11
|
+
open(content: PolymorpheusContent<TuiPortalContext<TuiMobileDialogOptions<any>, number>>, options?: Partial<TuiMobileDialogOptions<any>>): Observable<number>;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileDialogService, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TuiMobileDialogService>;
|
|
14
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TuiPortalContext } from '@taiga-ui/cdk/portals';
|
|
2
2
|
import { type TuiPdfViewerOptions } from './pdf-viewer.options';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@taiga-ui/cdk/directives/animated";
|
|
5
5
|
export declare class TuiPdfViewerComponent<I, O> {
|
|
6
6
|
protected readonly closeWord: import("@angular/core").Signal<string>;
|
|
7
7
|
protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
|
|
8
|
-
protected readonly context:
|
|
8
|
+
protected readonly context: TuiPortalContext<TuiPdfViewerOptions<I>, O>;
|
|
9
9
|
protected onKeyDownEsc(): void;
|
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiPdfViewerComponent<any, any>, never>;
|
|
11
11
|
static ɵcmp: i0.ɵɵComponentDeclaration<TuiPdfViewerComponent<any, any>, "tui-pdf-viewer", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }]>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover';
|
|
2
1
|
import { type TuiPdfViewerOptions } from './pdf-viewer.options';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
3
|
+
import * as i1 from "@taiga-ui/cdk/portals";
|
|
4
|
+
export declare class TuiPdfViewerDirective<T> {
|
|
5
|
+
readonly tuiPdfViewerOptions: import("@angular/core").InputSignal<Partial<TuiPdfViewerOptions<T>>>;
|
|
5
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiPdfViewerDirective<any>, never>;
|
|
6
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiPdfViewerDirective<any>, "ng-template[tuiPdfViewer]", never, { "
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiPdfViewerDirective<any>, "ng-template[tuiPdfViewer]", never, { "tuiPdfViewerOptions": { "alias": "tuiPdfViewerOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiPortalDirective; inputs: { "options": "tuiPdfViewerOptions"; "open": "tuiPdfViewer"; }; outputs: { "openChange": "tuiPdfViewerChange"; }; }]>;
|
|
7
8
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
3
2
|
export declare const TUI_PDF_VIEWER_DEFAULT_OPTIONS: TuiPdfViewerOptions;
|
|
4
3
|
/**
|
|
5
4
|
* Default parameters for PdfViewer component
|
|
6
5
|
*/
|
|
7
|
-
export declare const TUI_PDF_VIEWER_OPTIONS: InjectionToken<TuiPdfViewerOptions<undefined
|
|
8
|
-
export declare function tuiPdfViewerOptionsProvider(options: Partial<TuiPdfViewerOptions>): Provider;
|
|
6
|
+
export declare const TUI_PDF_VIEWER_OPTIONS: import("@angular/core").InjectionToken<TuiPdfViewerOptions<undefined>>, tuiPdfViewerOptionsProvider: (item: Partial<TuiPdfViewerOptions<undefined>> | (() => Partial<TuiPdfViewerOptions<undefined>>)) => import("@angular/core").FactoryProvider;
|
|
9
7
|
export interface TuiPdfViewerOptions<I = undefined> {
|
|
10
8
|
readonly actions: PolymorpheusContent<TuiPdfViewerOptions<I>>;
|
|
11
9
|
readonly data: I;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { type SafeResourceUrl } from '@angular/platform-browser';
|
|
2
|
-
import { type
|
|
2
|
+
import { type TuiPortalContext } from '@taiga-ui/cdk/portals';
|
|
3
|
+
import { TuiModalService } from '@taiga-ui/core/portals/modal';
|
|
3
4
|
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
5
|
import { type Observable } from 'rxjs';
|
|
6
|
+
import { TuiPdfViewerComponent } from './pdf-viewer.component';
|
|
5
7
|
import { type TuiPdfViewerOptions } from './pdf-viewer.options';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
|
-
type Content<G> = PolymorpheusContent<TuiPdfViewerOptions<unknown
|
|
8
|
-
export declare class TuiPdfViewerService extends
|
|
9
|
+
type Content<G> = PolymorpheusContent<TuiPortalContext<TuiPdfViewerOptions<unknown>, G>>;
|
|
10
|
+
export declare class TuiPdfViewerService extends TuiModalService<TuiPdfViewerOptions<unknown>> {
|
|
11
|
+
protected readonly options: TuiPdfViewerOptions<undefined>;
|
|
12
|
+
protected readonly content: typeof TuiPdfViewerComponent;
|
|
9
13
|
open<G>(content: Content<G> | SafeResourceUrl, options?: Partial<TuiPdfViewerOptions<any>>): Observable<G>;
|
|
10
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiPdfViewerService, never>;
|
|
11
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<TuiPdfViewerService>;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, computed, ChangeDetectionStrategy, Component,
|
|
3
|
-
import {
|
|
2
|
+
import { inject, computed, ChangeDetectionStrategy, Component, Injectable, input, Directive, assertInInjectionContext, INJECTOR } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { TUI_TRUE_HANDLER } from '@taiga-ui/cdk/constants';
|
|
5
5
|
import * as i1 from '@taiga-ui/cdk/directives/animated';
|
|
6
6
|
import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
|
|
7
7
|
import { TuiAutoFocus } from '@taiga-ui/cdk/directives/auto-focus';
|
|
8
8
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
9
|
-
import { TuiDialogCloseService, TUI_DIALOGS_CLOSE
|
|
10
|
-
import {
|
|
11
|
-
import { TUI_CLOSE_WORD, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
|
|
9
|
+
import { TuiDialogCloseService, TUI_DIALOGS_CLOSE } from '@taiga-ui/core/portals/dialog';
|
|
10
|
+
import { TUI_CLOSE_WORD, TUI_COMMON_ICONS, TUI_BREAKPOINT } from '@taiga-ui/core/tokens';
|
|
12
11
|
import { injectContext, PolymorpheusOutlet, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
|
|
13
|
-
import { of, isObservable, Subject,
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
12
|
+
import { of, isObservable, Subject, merge, switchMap, exhaustMap, take, map, filter } from 'rxjs';
|
|
13
|
+
import * as i1$1 from '@taiga-ui/cdk/portals';
|
|
14
|
+
import { tuiAsPortal, TuiPortalDirective } from '@taiga-ui/cdk/portals';
|
|
15
|
+
import { TuiModalService } from '@taiga-ui/core/portals/modal';
|
|
16
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
17
17
|
|
|
18
18
|
const REQUIRED_ERROR = new Error('Required dialog was dismissed');
|
|
19
19
|
function toObservable(valueOrStream) {
|
|
@@ -25,10 +25,11 @@ class TuiDialogComponent {
|
|
|
25
25
|
this.context = injectContext();
|
|
26
26
|
this.closeWord = inject(TUI_CLOSE_WORD);
|
|
27
27
|
this.icons = inject(TUI_COMMON_ICONS);
|
|
28
|
+
this.breakpoint = inject(TUI_BREAKPOINT);
|
|
28
29
|
this.from = computed(() => this.size === 'fullscreen' || this.size === 'page' || this.isMobile()
|
|
29
30
|
? 'translateY(100vh)'
|
|
30
31
|
: 'translateY(2.5rem)');
|
|
31
|
-
this.isMobile =
|
|
32
|
+
this.isMobile = computed(() => this.breakpoint() === 'mobile');
|
|
32
33
|
merge(this.close$.pipe(switchMap(() => toObservable(this.context.closable))), inject(TuiDialogCloseService).pipe(exhaustMap(() => toObservable(this.context.dismissible).pipe(take(1)))), inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)))
|
|
33
34
|
.pipe(filter(Boolean), takeUntilDestroyed())
|
|
34
35
|
.subscribe(() => {
|
|
@@ -49,17 +50,17 @@ class TuiDialogComponent {
|
|
|
49
50
|
this.context.$implicit.complete();
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiDialogComponent, isStandalone: true, selector: "tui-dialog-legacy", host: { properties: { "attr.data-appearance": "context.appearance", "attr.data-size": "size", "class._centered": "header", "style.--tui-from": "from()" } }, providers: [TuiDialogCloseService], hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closable === Observable<false>` by design -->\n@if (context.closable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord() }}\n </button>\n}\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-body-m);flex-direction:column;box-sizing:border-box;margin:2.5rem;border-radius:1.5rem}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:25rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-h5)}:host[data-size=m]{inline-size:37.5rem}:host[data-size=l]{inline-size:50rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-h3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0;background:var(--tui-background-elevation-1);padding-block-end:env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-h5)}:host :host-context(tui-root._mobile)[data-size=fullscreen],:host :host-context(tui-root._mobile)[data-size=page]{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size=fullscreen] .t-close,:host :host-context(tui-root._mobile)[data-size=page] .t-close{top:max(1rem,env(safe-area-inset-top))}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-h4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}@supports (inset-inline-end: 0){.t-close{right:unset;inset-inline-end:1rem}}.t-buttons{margin-block-start:1.25rem;text-align:end}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
54
55
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialogComponent, decorators: [{
|
|
56
57
|
type: Component,
|
|
57
58
|
args: [{ selector: 'tui-dialog-legacy', imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.Default, providers: [TuiDialogCloseService], hostDirectives: [TuiAnimated], host: {
|
|
58
59
|
'[attr.data-appearance]': 'context.appearance',
|
|
59
60
|
'[attr.data-size]': 'size',
|
|
60
61
|
'[class._centered]': 'header',
|
|
61
62
|
'[style.--tui-from]': 'from()',
|
|
62
|
-
}, template: "@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closable === Observable<false>` by design -->\n@if (context.closable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord() }}\n </button>\n}\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-
|
|
63
|
+
}, template: "@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closable === Observable<false>` by design -->\n@if (context.closable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord() }}\n </button>\n}\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-body-m);flex-direction:column;box-sizing:border-box;margin:2.5rem;border-radius:1.5rem}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:25rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-h5)}:host[data-size=m]{inline-size:37.5rem}:host[data-size=l]{inline-size:50rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-h3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0;background:var(--tui-background-elevation-1);padding-block-end:env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-h5)}:host :host-context(tui-root._mobile)[data-size=fullscreen],:host :host-context(tui-root._mobile)[data-size=page]{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size=fullscreen] .t-close,:host :host-context(tui-root._mobile)[data-size=page] .t-close{top:max(1rem,env(safe-area-inset-top))}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-h4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}@supports (inset-inline-end: 0){.t-close{right:unset;inset-inline-end:1rem}}.t-buttons{margin-block-start:1.25rem;text-align:end}\n"] }]
|
|
63
64
|
}], ctorParameters: () => [] });
|
|
64
65
|
|
|
65
66
|
const TUI_DIALOG_DEFAULT_OPTIONS = {
|
|
@@ -75,37 +76,43 @@ const TUI_DIALOG_DEFAULT_OPTIONS = {
|
|
|
75
76
|
/**
|
|
76
77
|
* Default parameters for dialog component
|
|
77
78
|
*/
|
|
78
|
-
const TUI_DIALOG_OPTIONS =
|
|
79
|
-
factory: () => TUI_DIALOG_DEFAULT_OPTIONS,
|
|
80
|
-
});
|
|
81
|
-
function tuiDialogOptionsProvider(options) {
|
|
82
|
-
return tuiProvideOptions(TUI_DIALOG_OPTIONS, options, TUI_DIALOG_DEFAULT_OPTIONS);
|
|
83
|
-
}
|
|
79
|
+
const [TUI_DIALOG_OPTIONS, tuiDialogOptionsProvider] = tuiCreateOptions(TUI_DIALOG_DEFAULT_OPTIONS);
|
|
84
80
|
|
|
85
|
-
class TuiDialogService extends
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
class TuiDialogService extends TuiModalService {
|
|
82
|
+
constructor() {
|
|
83
|
+
super(...arguments);
|
|
84
|
+
this.options = inject(TUI_DIALOG_OPTIONS);
|
|
85
|
+
this.content = TuiDialogComponent;
|
|
86
|
+
}
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
88
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialogService, providedIn: 'root' }); }
|
|
88
89
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialogService, decorators: [{
|
|
90
91
|
type: Injectable,
|
|
91
92
|
args: [{
|
|
92
93
|
providedIn: 'root',
|
|
93
|
-
useFactory: () => new TuiDialogService(TUI_DIALOGS, TuiDialogComponent, inject(TUI_DIALOG_OPTIONS)),
|
|
94
94
|
}]
|
|
95
95
|
}] });
|
|
96
96
|
|
|
97
|
-
class TuiDialog
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
class TuiDialog {
|
|
98
|
+
constructor() {
|
|
99
|
+
this.tuiDialogOptions = input({});
|
|
100
|
+
}
|
|
101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialog, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
102
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiDialog, isStandalone: true, selector: "ng-template[tuiDialog]", inputs: { tuiDialogOptions: { classPropertyName: "tuiDialogOptions", publicName: "tuiDialogOptions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsPortal(TuiDialogService)], hostDirectives: [{ directive: i1$1.TuiPortalDirective, inputs: ["options", "tuiDialogOptions", "open", "tuiDialog"], outputs: ["openChange", "tuiDialogChange"] }], ngImport: i0 }); }
|
|
100
103
|
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDialog, decorators: [{
|
|
102
105
|
type: Directive,
|
|
103
106
|
args: [{
|
|
104
|
-
standalone: true,
|
|
105
107
|
selector: 'ng-template[tuiDialog]',
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
providers: [tuiAsPortal(TuiDialogService)],
|
|
109
|
+
hostDirectives: [
|
|
110
|
+
{
|
|
111
|
+
directive: TuiPortalDirective,
|
|
112
|
+
inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],
|
|
113
|
+
outputs: ['openChange: tuiDialogChange'],
|
|
114
|
+
},
|
|
115
|
+
],
|
|
109
116
|
}]
|
|
110
117
|
}] });
|
|
111
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-dialog.mjs","sources":["../../../projects/legacy/components/dialog/dialog.component.ts","../../../projects/legacy/components/dialog/dialog.template.html","../../../projects/legacy/components/dialog/dialog.tokens.ts","../../../projects/legacy/components/dialog/dialog.service.ts","../../../projects/legacy/components/dialog/dialog.directive.ts","../../../projects/legacy/components/dialog/dialog.factory.ts","../../../projects/legacy/components/dialog/taiga-ui-legacy-components-dialog.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_DIALOGS_CLOSE, TuiDialogCloseService} from '@taiga-ui/core/components/dialog';\nimport {TuiBreakpointService} from '@taiga-ui/core/services';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {\n injectContext,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {\n exhaustMap,\n filter,\n isObservable,\n map,\n merge,\n type Observable,\n of,\n Subject,\n switchMap,\n take,\n} from 'rxjs';\n\nimport {type TuiDialogOptions, type TuiDialogSize} from './dialog.interfaces';\n\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\n\nfunction toObservable<T>(valueOrStream: Observable<T> | T): Observable<T> {\n return isObservable(valueOrStream) ? valueOrStream : of(valueOrStream);\n}\n\n@Component({\n selector: 'tui-dialog-legacy',\n imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './dialog.template.html',\n styleUrl: './dialog.style.less',\n // So we don't force OnPush on dialog content\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDialogCloseService],\n hostDirectives: [TuiAnimated],\n host: {\n '[attr.data-appearance]': 'context.appearance',\n '[attr.data-size]': 'size',\n '[class._centered]': 'header',\n '[style.--tui-from]': 'from()',\n },\n})\nexport class TuiDialogComponent<O, I> {\n protected readonly close$ = new Subject<void>();\n protected readonly context = injectContext<TuiPopover<TuiDialogOptions<I>, O>>();\n protected readonly closeWord = inject(TUI_CLOSE_WORD);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly from = computed(() =>\n this.size === 'fullscreen' || this.size === 'page' || this.isMobile()\n ? 'translateY(100vh)'\n : 'translateY(2.5rem)',\n );\n\n protected readonly isMobile = toSignal(\n inject(TuiBreakpointService).pipe(map((breakpoint) => breakpoint === 'mobile')),\n );\n\n constructor() {\n merge(\n this.close$.pipe(switchMap(() => toObservable(this.context.closable))),\n inject(TuiDialogCloseService).pipe(\n exhaustMap(() => toObservable(this.context.dismissible).pipe(take(1))),\n ),\n inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)),\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => {\n this.close();\n });\n }\n\n protected get size(): TuiDialogSize {\n return this.context.size;\n }\n\n protected get header(): PolymorpheusContent<TuiPopover<TuiDialogOptions<I>, O>> {\n return this.context.header;\n }\n\n private close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closable === Observable<false>` by design -->\n@if (context.closable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord() }}\n </button>\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\n\nexport const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogOptions<void> = {\n appearance: '',\n size: 'm',\n required: false,\n closable: true,\n dismissible: true,\n label: '',\n header: '',\n data: undefined,\n};\n\n/**\n * Default parameters for dialog component\n */\nexport const TUI_DIALOG_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_DIALOG_OPTIONS' : '',\n {\n factory: () => TUI_DIALOG_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDialogOptionsProvider(\n options: Partial<TuiDialogOptions<unknown>>,\n): Provider {\n return tuiProvideOptions(TUI_DIALOG_OPTIONS, options, TUI_DIALOG_DEFAULT_OPTIONS);\n}\n","import {inject, Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_DIALOGS} from '@taiga-ui/core/components/dialog';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TUI_DIALOG_OPTIONS} from './dialog.tokens';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiDialogService(TUI_DIALOGS, TuiDialogComponent, inject(TUI_DIALOG_OPTIONS)),\n})\nexport class TuiDialogService extends TuiPopoverService<TuiDialogOptions<any>> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDialog]',\n inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],\n outputs: ['openChange: tuiDialogChange'],\n providers: [tuiAsPopover(TuiDialogService)],\n})\nexport class TuiDialog<T> extends TuiPopoverDirective<TuiDialogOptions<T>> {}\n","import {assertInInjectionContext, inject, INJECTOR, type Injector} from '@angular/core';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nimport {type TuiDialogContext, type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\ntype SingleUnionOrNever<T, U = T> = [T] extends [never]\n ? never\n : T extends U\n ? [U] extends [T]\n ? T\n : never\n : never;\n\ntype ReplaceAny<T> = 0 extends T & 1 ? void : T;\n\ntype ContextKeys<T> = {\n [K in keyof T]: ReplaceAny<T[K]> extends TuiDialogContext<any, any> | null\n ? K\n : never;\n}[keyof T];\n\ntype AssertNotMultipleContexts<T, K extends keyof T> = [K] extends [never]\n ? new (...args: any[]) => T\n : [SingleUnionOrNever<K>] extends [never]\n ? 'Component has multiple context. Cannot determine the type...'\n : new (...args: any[]) => T;\n\ntype ExtractDialogData<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<any, infer D> | null\n ? D\n : void;\n\ntype ExtractDialogResult<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<infer R, any> | null\n ? R\n : void;\n\ntype Options<T> = Omit<TuiDialogOptions<T>, 'data'> & {injector: Injector};\n\nexport function tuiDialog<\n T,\n K extends ContextKeys<T>,\n D extends ExtractDialogData<T, K>,\n R extends ExtractDialogResult<T, K>,\n>(\n component: AssertNotMultipleContexts<T, K>,\n {injector, ...options}: Partial<Options<D>> = {},\n): (data: D) => Observable<R> {\n if (!injector) {\n assertInInjectionContext(tuiDialog);\n injector = inject(INJECTOR);\n }\n\n const dialogService = injector.get(TuiDialogService);\n\n return (data) =>\n dialogService.open(\n new PolymorpheusComponent(component as new () => T, injector),\n {\n ...options,\n data,\n },\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-dialog.mjs","sources":["../../../projects/legacy/components/dialog/dialog.component.ts","../../../projects/legacy/components/dialog/dialog.template.html","../../../projects/legacy/components/dialog/dialog.tokens.ts","../../../projects/legacy/components/dialog/dialog.service.ts","../../../projects/legacy/components/dialog/dialog.directive.ts","../../../projects/legacy/components/dialog/dialog.factory.ts","../../../projects/legacy/components/dialog/taiga-ui-legacy-components-dialog.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_DIALOGS_CLOSE, TuiDialogCloseService} from '@taiga-ui/core/portals/dialog';\nimport {TUI_BREAKPOINT, TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {\n injectContext,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {\n exhaustMap,\n filter,\n isObservable,\n map,\n merge,\n type Observable,\n of,\n Subject,\n switchMap,\n take,\n} from 'rxjs';\n\nimport {type TuiDialogContext, type TuiDialogSize} from './dialog.interfaces';\n\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\n\nfunction toObservable<T>(valueOrStream: Observable<T> | T): Observable<T> {\n return isObservable(valueOrStream) ? valueOrStream : of(valueOrStream);\n}\n\n@Component({\n selector: 'tui-dialog-legacy',\n imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './dialog.template.html',\n styleUrl: './dialog.style.less',\n // So we don't force OnPush on dialog content\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDialogCloseService],\n hostDirectives: [TuiAnimated],\n host: {\n '[attr.data-appearance]': 'context.appearance',\n '[attr.data-size]': 'size',\n '[class._centered]': 'header',\n '[style.--tui-from]': 'from()',\n },\n})\nexport class TuiDialogComponent<O, I> {\n protected readonly close$ = new Subject<void>();\n protected readonly context = injectContext<TuiDialogContext<I, O>>();\n protected readonly closeWord = inject(TUI_CLOSE_WORD);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n protected readonly from = computed(() =>\n this.size === 'fullscreen' || this.size === 'page' || this.isMobile()\n ? 'translateY(100vh)'\n : 'translateY(2.5rem)',\n );\n\n protected readonly isMobile = computed(() => this.breakpoint() === 'mobile');\n\n constructor() {\n merge(\n this.close$.pipe(switchMap(() => toObservable(this.context.closable))),\n inject(TuiDialogCloseService).pipe(\n exhaustMap(() => toObservable(this.context.dismissible).pipe(take(1))),\n ),\n inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)),\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => {\n this.close();\n });\n }\n\n protected get size(): TuiDialogSize {\n return this.context.size;\n }\n\n protected get header(): PolymorpheusContent<TuiDialogContext<I, O>> {\n return this.context.header;\n }\n\n private close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closable === Observable<false>` by design -->\n@if (context.closable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord() }}\n </button>\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\n\nexport const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogOptions<void> = {\n appearance: '',\n size: 'm',\n required: false,\n closable: true,\n dismissible: true,\n label: '',\n header: '',\n data: undefined,\n};\n\n/**\n * Default parameters for dialog component\n */\nexport const [TUI_DIALOG_OPTIONS, tuiDialogOptionsProvider] = tuiCreateOptions(\n TUI_DIALOG_DEFAULT_OPTIONS,\n);\n","import {inject, Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TUI_DIALOG_OPTIONS} from './dialog.tokens';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDialogService extends TuiModalService<TuiDialogOptions<any>> {\n protected readonly options = inject(TUI_DIALOG_OPTIONS);\n protected readonly content = TuiDialogComponent;\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiDialog]',\n providers: [tuiAsPortal(TuiDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],\n outputs: ['openChange: tuiDialogChange'],\n },\n ],\n})\nexport class TuiDialog<T> {\n public readonly tuiDialogOptions = input<Partial<TuiDialogOptions<T>>>({});\n}\n","import {assertInInjectionContext, inject, INJECTOR, type Injector} from '@angular/core';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nimport {type TuiDialogContext, type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\ntype SingleUnionOrNever<T, U = T> = [T] extends [never]\n ? never\n : T extends U\n ? [U] extends [T]\n ? T\n : never\n : never;\n\ntype ReplaceAny<T> = 0 extends T & 1 ? void : T;\n\ntype ContextKeys<T> = {\n [K in keyof T]: ReplaceAny<T[K]> extends TuiDialogContext<any, any> | null\n ? K\n : never;\n}[keyof T];\n\ntype AssertNotMultipleContexts<T, K extends keyof T> = [K] extends [never]\n ? new (...args: any[]) => T\n : [SingleUnionOrNever<K>] extends [never]\n ? 'Component has multiple context. Cannot determine the type...'\n : new (...args: any[]) => T;\n\ntype ExtractDialogData<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<any, infer D> | null\n ? D\n : void;\n\ntype ExtractDialogResult<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<infer R, any> | null\n ? R\n : void;\n\ntype Options<T> = Omit<TuiDialogOptions<T>, 'data'> & {injector: Injector};\n\nexport function tuiDialog<\n T,\n K extends ContextKeys<T>,\n D extends ExtractDialogData<T, K>,\n R extends ExtractDialogResult<T, K>,\n>(\n component: AssertNotMultipleContexts<T, K>,\n {injector, ...options}: Partial<Options<D>> = {},\n): (data: D) => Observable<R> {\n if (!injector) {\n assertInInjectionContext(tuiDialog);\n injector = inject(INJECTOR);\n }\n\n const dialogService = injector.get(TuiDialogService);\n\n return (data) =>\n dialogService.open(\n new PolymorpheusComponent(component as new () => T, injector),\n {\n ...options,\n data,\n },\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ChangeDetectionStrategy, Component, Injectable } from '@angular/core';
|
|
3
|
+
import { TuiRipple } from '@taiga-ui/addon-mobile/directives/ripple';
|
|
4
|
+
import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
|
|
5
|
+
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
6
|
+
import { injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
7
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
8
|
+
import { TuiModalService } from '@taiga-ui/core/portals/modal';
|
|
9
|
+
|
|
10
|
+
class TuiMobileDialog {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.isIOS = inject(TUI_IS_IOS);
|
|
13
|
+
this.context = injectContext();
|
|
14
|
+
}
|
|
15
|
+
onAction(index) {
|
|
16
|
+
this.context.completeWith(index);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiMobileDialog, isStandalone: true, selector: "tui-mobile-dialog", host: { properties: { "class._ios": "isIOS" } }, ngImport: i0, template: "@if (!!context.label) {\n <h2\n automation-id=\"tui-mobile-dialog__label\"\n class=\"t-heading\"\n [id]=\"context.id\"\n >\n {{ context.label }}\n </h2>\n}\n<div class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n</div>\n@for (action of context.actions; track action) {\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n tuiRipple\n type=\"button\"\n class=\"t-button\"\n [class.t-button_column]=\"$count > 2\"\n (click)=\"onAction($index)\"\n >\n {{ action }}\n </button>\n}\n", styles: [":host{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;background:var(--tui-background-base);word-break:break-word;overflow:hidden;padding:1.25rem .75rem 0 1.5rem}:host:not(._ios){max-inline-size:17.5rem;border-radius:.125rem;text-align:start;box-shadow:0 1.5rem 1.5rem #00000052}:host._ios{max-inline-size:16.875rem;padding:1.5rem 0 0;border-radius:.75rem;text-align:center}.t-heading{font-size:1rem}:host._ios .t-heading{font-weight:700;font-size:1.125rem}.t-content{margin-block-start:.75rem;font-size:.875rem;line-height:1.25rem;padding-inline-end:.75rem}:host._ios .t-content{margin-block-start:.25rem;padding-inline-start:1.5rem;padding-inline-end:1.5rem}.t-button{border-radius:0}:host._ios .t-button{border-block-start:#b8b8b8 1px solid;block-size:2.625rem;inline-size:100%}:host._ios .t-button:first-of-type{margin-block-start:1.125rem}:host:not(._ios) .t-button{margin:.5rem 0 .5rem .5rem;float:inline-end}:host:not(._ios) .t-button_column{display:block;float:none;margin-inline-start:auto}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiRipple, selector: "[tuiRipple]", inputs: ["tuiRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileDialog, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'tui-mobile-dialog', imports: [PolymorpheusOutlet, TuiButton, TuiRipple], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
24
|
+
'[class._ios]': 'isIOS',
|
|
25
|
+
}, template: "@if (!!context.label) {\n <h2\n automation-id=\"tui-mobile-dialog__label\"\n class=\"t-heading\"\n [id]=\"context.id\"\n >\n {{ context.label }}\n </h2>\n}\n<div class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n</div>\n@for (action of context.actions; track action) {\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n tuiRipple\n type=\"button\"\n class=\"t-button\"\n [class.t-button_column]=\"$count > 2\"\n (click)=\"onAction($index)\"\n >\n {{ action }}\n </button>\n}\n", styles: [":host{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;background:var(--tui-background-base);word-break:break-word;overflow:hidden;padding:1.25rem .75rem 0 1.5rem}:host:not(._ios){max-inline-size:17.5rem;border-radius:.125rem;text-align:start;box-shadow:0 1.5rem 1.5rem #00000052}:host._ios{max-inline-size:16.875rem;padding:1.5rem 0 0;border-radius:.75rem;text-align:center}.t-heading{font-size:1rem}:host._ios .t-heading{font-weight:700;font-size:1.125rem}.t-content{margin-block-start:.75rem;font-size:.875rem;line-height:1.25rem;padding-inline-end:.75rem}:host._ios .t-content{margin-block-start:.25rem;padding-inline-start:1.5rem;padding-inline-end:1.5rem}.t-button{border-radius:0}:host._ios .t-button{border-block-start:#b8b8b8 1px solid;block-size:2.625rem;inline-size:100%}:host._ios .t-button:first-of-type{margin-block-start:1.125rem}:host:not(._ios) .t-button{margin:.5rem 0 .5rem .5rem;float:inline-end}:host:not(._ios) .t-button_column{display:block;float:none;margin-inline-start:auto}\n"] }]
|
|
26
|
+
}] });
|
|
27
|
+
|
|
28
|
+
const TUI_MOBILE_DIALOG_DEFAULT_OPTIONS = {
|
|
29
|
+
label: '',
|
|
30
|
+
actions: ['OK'],
|
|
31
|
+
data: undefined,
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Default parameters for mobile dialog component
|
|
35
|
+
*/
|
|
36
|
+
const [TUI_MOBILE_DIALOG_OPTIONS, tuiMobileDialogOptionsProvider] = tuiCreateOptions(TUI_MOBILE_DIALOG_DEFAULT_OPTIONS);
|
|
37
|
+
|
|
38
|
+
class TuiMobileDialogService extends TuiModalService {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(...arguments);
|
|
41
|
+
this.options = inject(TUI_MOBILE_DIALOG_OPTIONS);
|
|
42
|
+
this.content = TuiMobileDialog;
|
|
43
|
+
}
|
|
44
|
+
open(content, options = {}) {
|
|
45
|
+
return super.open(content, options);
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileDialogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileDialogService, providedIn: 'root' }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiMobileDialogService, decorators: [{
|
|
51
|
+
type: Injectable,
|
|
52
|
+
args: [{
|
|
53
|
+
providedIn: 'root',
|
|
54
|
+
}]
|
|
55
|
+
}] });
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Generated bundle index. Do not edit.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
export { TUI_MOBILE_DIALOG_DEFAULT_OPTIONS, TUI_MOBILE_DIALOG_OPTIONS, TuiMobileDialog, TuiMobileDialogService, tuiMobileDialogOptionsProvider };
|
|
62
|
+
//# sourceMappingURL=taiga-ui-legacy-components-mobile-dialog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-mobile-dialog.mjs","sources":["../../../projects/legacy/components/mobile-dialog/mobile-dialog.component.ts","../../../projects/legacy/components/mobile-dialog/mobile-dialog.template.html","../../../projects/legacy/components/mobile-dialog/mobile-dialog.options.ts","../../../projects/legacy/components/mobile-dialog/mobile-dialog.service.ts","../../../projects/legacy/components/mobile-dialog/taiga-ui-legacy-components-mobile-dialog.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiRipple} from '@taiga-ui/addon-mobile/directives/ripple';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {type TuiMobileDialogOptions} from './mobile-dialog.options';\n\n@Component({\n selector: 'tui-mobile-dialog',\n imports: [PolymorpheusOutlet, TuiButton, TuiRipple],\n templateUrl: './mobile-dialog.template.html',\n styleUrl: './mobile-dialog.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._ios]': 'isIOS',\n },\n})\nexport class TuiMobileDialog<I> {\n protected readonly isIOS = inject(TUI_IS_IOS);\n protected readonly context =\n injectContext<TuiPortalContext<TuiMobileDialogOptions<I>, number>>();\n\n protected onAction(index: number): void {\n this.context.completeWith(index);\n }\n}\n","@if (!!context.label) {\n <h2\n automation-id=\"tui-mobile-dialog__label\"\n class=\"t-heading\"\n [id]=\"context.id\"\n >\n {{ context.label }}\n </h2>\n}\n<div class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n</div>\n@for (action of context.actions; track action) {\n <button\n appearance=\"flat\"\n size=\"s\"\n tuiButton\n tuiRipple\n type=\"button\"\n class=\"t-button\"\n [class.t-button_column]=\"$count > 2\"\n (click)=\"onAction($index)\"\n >\n {{ action }}\n </button>\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiMobileDialogOptions<I = undefined> {\n readonly actions: readonly string[];\n readonly data: I;\n readonly label: string;\n}\n\nexport const TUI_MOBILE_DIALOG_DEFAULT_OPTIONS: TuiMobileDialogOptions = {\n label: '',\n actions: ['OK'],\n data: undefined,\n};\n\n/**\n * Default parameters for mobile dialog component\n */\nexport const [TUI_MOBILE_DIALOG_OPTIONS, tuiMobileDialogOptionsProvider] =\n tuiCreateOptions(TUI_MOBILE_DIALOG_DEFAULT_OPTIONS);\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nimport {TuiMobileDialog} from './mobile-dialog.component';\nimport {\n TUI_MOBILE_DIALOG_OPTIONS,\n type TuiMobileDialogOptions,\n} from './mobile-dialog.options';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiMobileDialogService extends TuiModalService<\n TuiMobileDialogOptions<any>,\n number\n> {\n protected readonly options = inject(TUI_MOBILE_DIALOG_OPTIONS);\n protected readonly content = TuiMobileDialog;\n\n public override open(\n content: PolymorpheusContent<\n TuiPortalContext<TuiMobileDialogOptions<any>, number>\n >,\n options: Partial<TuiMobileDialogOptions<any>> = {},\n ): Observable<number> {\n return super.open(content, options);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAmBa,eAAe,CAAA;AAV5B,IAAA,WAAA,GAAA;AAWuB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAC1B,IAAO,CAAA,OAAA,GACtB,aAAa,EAAuD;AAK3E;AAHa,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;;+GAN3B,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,8HCnB5B,srBA4BA,EAAA,MAAA,EAAA,CAAA,2gCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjBc,kBAAkB,EAAE,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,oIAAE,SAAS,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAQzC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACpB,OAAA,EAAA,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC,EAGlC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,cAAc,EAAE,OAAO;AAC1B,qBAAA,EAAA,QAAA,EAAA,srBAAA,EAAA,MAAA,EAAA,CAAA,2gCAAA,CAAA,EAAA;;;AETQ,MAAA,iCAAiC,GAA2B;AACrE,IAAA,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,IAAA,IAAI,EAAE,SAAS;;AAGnB;;AAEG;AACI,MAAM,CAAC,yBAAyB,EAAE,8BAA8B,CAAC,GACpE,gBAAgB,CAAC,iCAAiC;;ACHhD,MAAO,sBAAuB,SAAQ,eAG3C,CAAA;AAND,IAAA,WAAA,GAAA;;AAOuB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAC3C,IAAO,CAAA,OAAA,GAAG,eAAe;AAU/C;AARmB,IAAA,IAAI,CAChB,OAEC,EACD,OAAA,GAAgD,EAAE,EAAA;QAElD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;;+GAb9B,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACdD;;AAEG;;;;"}
|