UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

60 lines (55 loc) 5.38 kB
import * as i0 from '@angular/core'; import { inject, ChangeDetectionStrategy, Component, InjectionToken, Injectable } from '@angular/core'; import { WA_IS_MOBILE } from '@ng-web-apis/platform'; import { TuiAutoFocus } from '@taiga-ui/cdk/directives/auto-focus'; import { TuiButton } from '@taiga-ui/core/components/button'; import { TUI_CONFIRM_WORDS } from '@taiga-ui/kit/tokens'; import { injectContext, PolymorpheusOutlet, PolymorpheusComponent } from '@taiga-ui/polymorpheus'; import { TuiDialogService } from '@taiga-ui/core/portals/dialog'; import { defer, of } from 'rxjs'; class TuiConfirm { constructor() { this.isMobile = inject(WA_IS_MOBILE); this.words = inject(TUI_CONFIRM_WORDS); this.context = injectContext(); } get appearance() { return this.isMobile ? 'secondary' : 'flat'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: TuiConfirm, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<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", styles: [":host-context(tui-root._mobile) .t-button{flex:1 0 auto;overflow:visible}:host-context(tui-dialog) .t-content{margin-block-start:-.75rem}:host-context(tui-dialog) .t-buttons{margin:1.25rem 0 0}:host-context(tui-dialog) .t-buttons:first-child{margin-block-start:2rem}\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.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiConfirm, decorators: [{ type: Component, args: [{ imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host-context(tui-root._mobile) .t-button{flex:1 0 auto;overflow:visible}:host-context(tui-dialog) .t-content{margin-block-start:-.75rem}:host-context(tui-dialog) .t-buttons{margin:1.25rem 0 0}:host-context(tui-dialog) .t-buttons:first-child{margin-block-start:2rem}\n"] }] }] }); const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm); const TUI_CONFIRM_DIALOG = new InjectionToken(ngDevMode ? 'TUI_CONFIRM_DIALOG' : '', { factory: () => TUI_CONFIRM }); class TuiConfirmService { constructor() { this.dialogs = inject(TuiDialogService); this.component = inject(TUI_CONFIRM_DIALOG); this.dirty = false; } markAsDirty() { this.dirty = true; } markAsPristine() { this.dirty = false; } withConfirm(options) { return defer(() => this.dirty ? this.dialogs.open(this.component, { size: 's', ...options }) : of(true)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiConfirmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiConfirmService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiConfirmService, decorators: [{ type: Injectable }] }); /** * Generated bundle index. Do not edit. */ export { TUI_CONFIRM, TUI_CONFIRM_DIALOG, TuiConfirm, TuiConfirmService }; //# sourceMappingURL=taiga-ui-kit-components-confirm.mjs.map