{"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.options.ts","../../../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 {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n// TODO: Rename to TuiConfirmOptions in v6\nexport interface TuiConfirmData {\n    readonly content?: PolymorpheusContent;\n    readonly no?: string;\n    readonly yes?: string;\n    readonly appearance?: string | readonly [yes: string, no: string];\n}\n\nexport const [TUI_CONFIRM_OPTIONS, tuiConfirmOptionsProvider] =\n    tuiCreateOptions<TuiConfirmData>({\n        content: '',\n        no: '',\n        yes: '',\n        appearance: '',\n    });\n","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 {\n    TUI_BUTTON_OPTIONS,\n    TuiButton,\n    tuiButtonOptionsProvider,\n} 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\nimport {TUI_CONFIRM_OPTIONS, type TuiConfirmData} from './confirm.options';\n\n@Component({\n    imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n    templateUrl: './confirm.template.html',\n    styleUrl: './confirm.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        tuiButtonOptionsProvider(() => ({\n            size: 'm',\n            appearance: inject(WA_IS_MOBILE) ? 'secondary' : 'flat',\n        })),\n    ],\n})\nexport class TuiConfirm {\n    protected readonly options = inject(TUI_BUTTON_OPTIONS);\n    protected readonly words = inject(TUI_CONFIRM_WORDS);\n    protected readonly data = inject(TUI_CONFIRM_OPTIONS);\n\n    public readonly context =\n        injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n    protected get appearance(): string | readonly [string, string] {\n        return this.context.data?.appearance || this.data.appearance || '';\n    }\n\n    protected get yes(): string {\n        return Array.isArray(this.appearance)\n            ? this.appearance[0]\n            : String(this.appearance || 'primary');\n    }\n\n    protected get no(): string {\n        return Array.isArray(this.appearance)\n            ? this.appearance[1]\n            : this.options.appearance;\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 || data.content as text; context: context\"\n    class=\"t-content\"\n    [innerHTML]=\"text\"\n></div>\n<footer class=\"t-buttons\">\n    <button\n        tuiButton\n        type=\"button\"\n        class=\"t-button\"\n        [appearance]=\"no\"\n        (click)=\"context.completeWith(false)\"\n    >\n        {{ context.data?.no || data.no || words().no }}\n    </button>\n    <button\n        tuiAutoFocus\n        tuiButton\n        type=\"button\"\n        class=\"t-button\"\n        [appearance]=\"yes\"\n        (click)=\"context.completeWith(true)\"\n    >\n        {{ context.data?.yes || 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} from './confirm.component';\nimport {type TuiConfirmData} from './confirm.options';\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":";;;;;;;;;;;MAWa,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,GACzD,gBAAgB,CAAiB;AAC7B,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,GAAG,EAAE,EAAE;AACP,IAAA,UAAU,EAAE,EAAE;AACjB,CAAA;;MCcQ,UAAU,CAAA;AAZvB,IAAA,WAAA,GAAA;AAauB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACpC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAErC,IAAA,CAAA,OAAO,GACnB,aAAa,EAAyD;AAiB7E,IAAA;AAfG,IAAA,IAAc,UAAU,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;IACtE;AAEA,IAAA,IAAc,GAAG,GAAA;AACb,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;AAChC,cAAE,IAAI,CAAC,UAAU,CAAC,CAAC;cACjB,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;IAC9C;AAEA,IAAA,IAAc,EAAE,GAAA;AACZ,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;AAChC,cAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACnB,cAAE,IAAI,CAAC,OAAO,CAAC,UAAU;IACjC;+GAtBS,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,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAPR;AACP,YAAA,wBAAwB,CAAC,OAAO;AAC5B,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,GAAG,MAAM;AAC1D,aAAA,CAAC,CAAC;AACN,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BL,usBA0BA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNc,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,6GAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAW5C,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,SAAS;8BACG,CAAC,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,EAAA,eAAA,EAGrC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA,wBAAwB,CAAC,OAAO;AAC5B,4BAAA,IAAI,EAAE,GAAG;AACT,4BAAA,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,GAAG,MAAM;AAC1D,yBAAA,CAAC,CAAC;AACN,qBAAA,EAAA,QAAA,EAAA,usBAAA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA;;MA2BQ,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;;MEpDxD,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;;;ACPD;;AAEG;;;;"}