{"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, InjectionToken} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/portals/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n    injectContext,\n    PolymorpheusComponent,\n    type PolymorpheusContent,\n    PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n    readonly content?: PolymorpheusContent;\n    readonly no?: string;\n    readonly yes?: string;\n    readonly appearance?: string;\n}\n\n@Component({\n    imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n    templateUrl: './confirm.template.html',\n    styleUrl: './confirm.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n    private readonly isMobile = inject(WA_IS_MOBILE);\n    protected readonly words = inject(TUI_CONFIRM_WORDS);\n\n    public readonly context =\n        injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n    protected get appearance(): string {\n        return this.isMobile ? 'secondary' : 'flat';\n    }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\n\nexport const TUI_CONFIRM_DIALOG = new InjectionToken<\n    PolymorpheusContent<TuiDialogContext<boolean, unknown>>\n>(ngDevMode ? 'TUI_CONFIRM_DIALOG' : '', {factory: () => TUI_CONFIRM});\n","<div\n    *polymorpheusOutlet=\"context.data?.content as text; context: context\"\n    class=\"t-content\"\n    [innerHTML]=\"text\"\n></div>\n<footer class=\"t-buttons\">\n    <button\n        size=\"m\"\n        tuiButton\n        type=\"button\"\n        class=\"t-button\"\n        [appearance]=\"appearance\"\n        (click)=\"context.completeWith(false)\"\n    >\n        {{ context.data?.no || words().no }}\n    </button>\n    <button\n        size=\"m\"\n        tuiAutoFocus\n        tuiButton\n        type=\"button\"\n        class=\"t-button\"\n        [appearance]=\"context.data?.appearance || 'primary'\"\n        (click)=\"context.completeWith(true)\"\n    >\n        {{ context.data?.yes || words().yes }}\n    </button>\n</footer>\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/portals/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM_DIALOG, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n    private readonly dialogs = inject(TuiDialogService);\n    private readonly component = inject(TUI_CONFIRM_DIALOG);\n    private dirty = false;\n\n    public markAsDirty(): void {\n        this.dirty = true;\n    }\n\n    public markAsPristine(): void {\n        this.dirty = false;\n    }\n\n    public withConfirm<T = TuiConfirmData>(\n        options: Partial<TuiDialogOptions<NoInfer<T>>>,\n    ): Observable<boolean> {\n        return defer(() =>\n            this.dirty\n                ? this.dialogs.open<boolean>(this.component, {size: 's', ...options})\n                : of(true),\n        );\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MA0Ba,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AAC7B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEpC,IAAA,CAAA,OAAO,GACnB,aAAa,EAAyD;AAK7E,IAAA;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM;IAC/C;+GATS,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,wEC1BvB,kvBA4BA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPc,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,qFAAE,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAK5C,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;8BACG,CAAC,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,EAAA,eAAA,EAGrC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kvBAAA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA;;MActC,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU;AAExD,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAElD,SAAS,GAAG,oBAAoB,GAAG,EAAE,EAAE,EAAC,OAAO,EAAE,MAAM,WAAW,EAAC;;MEnCxD,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC/C,IAAA,CAAA,KAAK,GAAG,KAAK;AAmBxB,IAAA;IAjBU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACrB;IAEO,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;AAEO,IAAA,WAAW,CACd,OAA8C,EAAA;AAE9C,QAAA,OAAO,KAAK,CAAC,MACT,IAAI,CAAC;AACD,cAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAU,IAAI,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,EAAC;AACpE,cAAE,EAAE,CAAC,IAAI,CAAC,CACjB;IACL;+GArBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACND;;AAEG;;;;"}