{"version":3,"file":"taiga-ui-kit-components-push.mjs","sources":["../../../projects/kit/components/push/push.component.ts","../../../projects/kit/components/push/push.template.html","../../../projects/kit/components/push/push.options.ts","../../../projects/kit/components/push/push-alert.component.ts","../../../projects/kit/components/push/push-alert.template.html","../../../projects/kit/components/push/push.service.ts","../../../projects/kit/components/push/push.directive.ts","../../../projects/kit/components/push/push.ts","../../../projects/kit/components/push/taiga-ui-kit-components-push.ts"],"sourcesContent":["import {DatePipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, input, output} from '@angular/core';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\n\n@Component({\n    selector: 'tui-push',\n    imports: [DatePipe, TuiButton, TuiButtonX],\n    templateUrl: './push.template.html',\n    styleUrl: './push.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiButtonOptionsProvider({size: 's', appearance: 'secondary'})],\n    host: {'[style.--t-lines]': 'lines()'},\n})\nexport class TuiPushComponent {\n    protected readonly isString = tuiIsString;\n    protected readonly closeWord = inject(TUI_CLOSE_WORD);\n    protected readonly icons = inject(TUI_COMMON_ICONS);\n    public readonly heading = input('');\n    public readonly type = input('');\n    public readonly lines = input(2);\n    public readonly timestamp = input<number | string>('');\n    public readonly close = output();\n}\n","<div class=\"t-image\">\n    <ng-content select=\"img\" />\n</div>\n@if (close['listeners']?.length) {\n    <button\n        size=\"xs\"\n        tuiButtonX\n        class=\"t-close\"\n        (click)=\"close.emit()\"\n    >\n        {{ closeWord() }}\n    </button>\n}\n<div class=\"t-top\">\n    <span class=\"t-icon\">\n        <ng-content select=\"tui-icon\" />\n    </span>\n    {{ type() }}\n    @if (timestamp()) {\n        <span\n            class=\"t-time\"\n            [textContent]=\"isString(timestamp()) ? timestamp() : (timestamp() | date: 'h:mm a')\"\n        ></span>\n    }\n</div>\n<h3\n    automation-id=\"tui-push__heading\"\n    class=\"t-heading\"\n>\n    {{ heading() }}\n</h3>\n<div class=\"t-content\">\n    <ng-content />\n</div>\n<div class=\"t-actions\">\n    <span class=\"t-button\">\n        <ng-content select=\"[tuiButton]\" />\n    </span>\n    <span class=\"t-link\">\n        <ng-content select=\"[tuiLink]\" />\n    </span>\n</div>\n","import {InjectionToken} from '@angular/core';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiPositionOptions} from '@taiga-ui/core/portals/alert';\n\nexport interface TuiPushOptions extends TuiPositionOptions {\n    readonly buttons: readonly string[];\n    readonly heading: string;\n    readonly icon: string;\n    readonly iconColor: string;\n    readonly image: string;\n    readonly timestamp: number | string;\n    readonly type: string;\n}\n\nexport const [TUI_PUSH_OPTIONS, tuiPushOptionsProvider] =\n    tuiCreateOptions<TuiPushOptions>({\n        heading: '',\n        type: '',\n        timestamp: '',\n        image: '',\n        icon: '',\n        iconColor: '',\n        buttons: [],\n        block: 'end',\n        inline: 'end',\n    });\n\nexport const TUI_PUSH_CONCURRENCY = new InjectionToken(\n    ngDevMode ? 'TUI_PUSH_CONCURRENCY' : '',\n    {factory: () => 5},\n);\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext, TuiPortalDirective} from '@taiga-ui/cdk/portals';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiAlertDirective} from '@taiga-ui/core/portals/alert';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiPushComponent} from './push.component';\nimport {type TuiPushOptions} from './push.options';\n\n@Component({\n    selector: 'tui-push-alert',\n    imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiLink, TuiPushComponent],\n    templateUrl: './push-alert.template.html',\n    styleUrl: './push-alert.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiAnimated, TuiAlertDirective],\n})\nexport class TuiPushAlert {\n    protected readonly context =\n        injectContext<TuiPortalContext<TuiPushOptions, string>>();\n\n    protected get isDirective(): boolean {\n        return this.context.content instanceof TuiPortalDirective;\n    }\n}\n","<div class=\"t-wrapper\">\n    @if (!isDirective) {\n        <tui-push\n            [heading]=\"context.heading\"\n            [timestamp]=\"context.timestamp\"\n            [type]=\"context.type\"\n            (close)=\"context.$implicit.complete()\"\n        >\n            @if (context.image) {\n                <img\n                    alt=\"\"\n                    [src]=\"context.image\"\n                />\n            }\n            @if (context.icon) {\n                <tui-icon\n                    [icon]=\"context.icon\"\n                    [style.color]=\"context.iconColor\"\n                />\n            }\n            <div\n                *polymorpheusOutlet=\"context.content as text; context: context\"\n                [innerHTML]=\"text\"\n            ></div>\n            @if (context.buttons.length > 1) {\n                <button\n                    tuiButton\n                    type=\"button\"\n                    (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n                >\n                    {{ context.buttons[0] }}\n                </button>\n            }\n            @if (context.buttons.length) {\n                <button\n                    tuiLink\n                    type=\"button\"\n                    (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n                >\n                    {{ context.buttons[context.buttons.length - 1] }}\n                </button>\n            }\n        </tui-push>\n    } @else {\n        <ng-container *polymorpheusOutlet=\"context.content\" />\n    }\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport {TuiAlertService} from '@taiga-ui/core/portals/alert';\n\nimport {\n    TUI_PUSH_CONCURRENCY,\n    TUI_PUSH_OPTIONS,\n    type TuiPushOptions,\n} from './push.options';\nimport {TuiPushAlert} from './push-alert.component';\n\n@Injectable({providedIn: 'root'})\nexport class TuiPushService extends TuiAlertService<TuiPushOptions, string> {\n    protected override readonly options = inject(TUI_PUSH_OPTIONS);\n    protected override readonly component = TuiPushAlert;\n\n    constructor() {\n        super(inject(TUI_PUSH_CONCURRENCY));\n    }\n}\n","import {DestroyRef, Directive, inject} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPushService} from './push.service';\n\n@Directive({\n    selector: 'ng-template[tuiPush]',\n    providers: [tuiAsPortal(TuiPushService)],\n    hostDirectives: [\n        {\n            directive: TuiPortalDirective,\n            inputs: ['open: tuiPush'],\n        },\n    ],\n})\nexport class TuiPushDirective {\n    private readonly sub = inject(TuiPortalDirective).openChange.subscribe(() => {});\n\n    constructor() {\n        inject(DestroyRef).onDestroy(() => this.sub.unsubscribe());\n    }\n}\n","import {TuiPushComponent} from './push.component';\nimport {TuiPushDirective} from './push.directive';\nimport {TuiPushAlert} from './push-alert.component';\n\nexport const TuiPush = [TuiPushComponent, TuiPushAlert, TuiPushDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}