@taiga-ui/kit
Version:
Taiga UI Angular main components kit
60 lines (55 loc) • 5.38 kB
JavaScript
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