UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

54 lines 9.85 kB
import { Directive, inject, Injectable } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover'; import { tuiAsPopover, TuiPopoverService } from '@taiga-ui/cdk/services'; import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens'; import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils/miscellaneous'; import { TUI_ALERTS } from '@taiga-ui/core/components/alert'; import { BehaviorSubject, pairwise } from 'rxjs'; import { TuiToastComponent } from './toast.component'; import { TUI_TOAST_OPTIONS } from './toast.options'; import * as i0 from "@angular/core"; const TOASTS = tuiCreateTokenFromFactory(() => new BehaviorSubject([])); export const TUI_TOASTS_CONCURRENCY = tuiCreateTokenFromFactory(() => inject(TUI_IS_MOBILE) ? 1 : 2); class TuiToastService extends TuiPopoverService { constructor(items, component, options) { super(TOASTS, component, options); this.concurrency = inject(TUI_TOASTS_CONCURRENCY); this.sub = this.items$ .pipe(pairwise(), takeUntilDestroyed()) .subscribe(([prev, next]) => { const closed = prev.filter((item) => !next.includes(item)); const alerts = this.alerts.value.filter((item) => !closed.includes(item)); const toasts = new Set([...alerts, ...next.slice(0, this.concurrency)]); this.alerts.next(Array.from(toasts)); }); this.alerts = inject(items); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastService, providedIn: 'root', useFactory: () => new TuiToastService(TUI_ALERTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)) }); } } export { TuiToastService }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', useFactory: () => new TuiToastService(TUI_ALERTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)), }] }], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: undefined }]; } }); class TuiToastTemplate extends TuiPopoverDirective { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastTemplate, isStandalone: true, selector: "ng-template[tuiToast]", inputs: { options: ["tuiToastOptions", "options"], open: ["tuiToast", "open"] }, outputs: { openChange: "tuiToastChange" }, providers: [tuiAsPopover(TuiToastService)], usesInheritance: true, ngImport: i0 }); } } export { TuiToastTemplate }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastTemplate, decorators: [{ type: Directive, args: [{ standalone: true, selector: 'ng-template[tuiToast]', inputs: ['options: tuiToastOptions', 'open: tuiToast'], outputs: ['openChange: tuiToastChange'], providers: [tuiAsPopover(TuiToastService)], }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3RvYXN0L3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQW1CLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsaUJBQWlCLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7O0FBRXhFLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixDQUNwQyxHQUFHLEVBQUUsQ0FDRCxJQUFJLGVBQWUsQ0FBMkQsRUFBRSxDQUFDLENBQ3hGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx5QkFBeUIsQ0FBUyxHQUFHLEVBQUUsQ0FDekUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEMsQ0FBQztBQUVGLE1BS2EsZUFBZ0IsU0FBUSxpQkFBdUM7SUFjeEUsWUFDSSxLQUErRSxFQUMvRSxTQUFvQixFQUNwQixPQUE2QjtRQUU3QixLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQWxCckIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUczQyxRQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGtCQUFrQixFQUFFLENBQUM7YUFDdEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQVNILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBdEJRLGVBQWU7bUhBQWYsZUFBZSxjQUpaLE1BQU0sY0FDTixHQUFHLEVBQUUsQ0FDYixJQUFJLGVBQWUsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7O1NBRXhFLGVBQWU7NEZBQWYsZUFBZTtrQkFMM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLG9CQUFvQixVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQ3BGOztBQTBCRCxNQU9hLGdCQUFvQixTQUFRLG1CQUF1QzsrR0FBbkUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsZ01BRmQsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7O1NBRWpDLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQVA1QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RhYmxlLCB0eXBlIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7VHVpUG9wb3ZlckRpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3BvcG92ZXInO1xuaW1wb3J0IHt0dWlBc1BvcG92ZXIsIHR5cGUgVHVpUG9wb3ZlciwgVHVpUG9wb3ZlclNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9BTEVSVFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYWxlcnQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIHBhaXJ3aXNlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlUb2FzdENvbXBvbmVudH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtUVUlfVE9BU1RfT1BUSU9OUywgdHlwZSBUdWlUb2FzdE9wdGlvbnN9IGZyb20gJy4vdG9hc3Qub3B0aW9ucyc7XG5cbmNvbnN0IFRPQVNUUyA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoXG4gICAgKCkgPT5cbiAgICAgICAgbmV3IEJlaGF2aW9yU3ViamVjdDxSZWFkb25seUFycmF5PFR1aVBvcG92ZXI8VHVpVG9hc3RPcHRpb25zPHVua25vd24+LCBhbnk+Pj4oW10pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFRVSV9UT0FTVFNfQ09OQ1VSUkVOQ1kgPSB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PG51bWJlcj4oKCkgPT5cbiAgICBpbmplY3QoVFVJX0lTX01PQklMRSkgPyAxIDogMixcbik7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgdXNlRmFjdG9yeTogKCkgPT5cbiAgICAgICAgbmV3IFR1aVRvYXN0U2VydmljZShUVUlfQUxFUlRTLCBUdWlUb2FzdENvbXBvbmVudCwgaW5qZWN0KFRVSV9UT0FTVF9PUFRJT05TKSksXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRvYXN0U2VydmljZSBleHRlbmRzIFR1aVBvcG92ZXJTZXJ2aWNlPFR1aVRvYXN0T3B0aW9uczxhbnk+PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25jdXJyZW5jeSA9IGluamVjdChUVUlfVE9BU1RTX0NPTkNVUlJFTkNZKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0cztcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdWIgPSB0aGlzLml0ZW1zJFxuICAgICAgICAucGlwZShwYWlyd2lzZSgpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW3ByZXYsIG5leHRdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbG9zZWQgPSBwcmV2LmZpbHRlcigoaXRlbSkgPT4gIW5leHQuaW5jbHVkZXMoaXRlbSkpO1xuICAgICAgICAgICAgY29uc3QgYWxlcnRzID0gdGhpcy5hbGVydHMudmFsdWUuZmlsdGVyKChpdGVtKSA9PiAhY2xvc2VkLmluY2x1ZGVzKGl0ZW0pKTtcbiAgICAgICAgICAgIGNvbnN0IHRvYXN0cyA9IG5ldyBTZXQoWy4uLmFsZXJ0cywgLi4ubmV4dC5zbGljZSgwLCB0aGlzLmNvbmN1cnJlbmN5KV0pO1xuXG4gICAgICAgICAgICB0aGlzLmFsZXJ0cy5uZXh0KEFycmF5LmZyb20odG9hc3RzKSk7XG4gICAgICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGl0ZW1zOiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFR1aVBvcG92ZXJTZXJ2aWNlPFR1aVRvYXN0T3B0aW9uczxhbnk+Pj5bMF0sXG4gICAgICAgIGNvbXBvbmVudDogVHlwZTxhbnk+LFxuICAgICAgICBvcHRpb25zOiBUdWlUb2FzdE9wdGlvbnM8YW55PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoVE9BU1RTLCBjb21wb25lbnQsIG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuYWxlcnRzID0gaW5qZWN0KGl0ZW1zKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVt0dWlUb2FzdF0nLFxuICAgIGlucHV0czogWydvcHRpb25zOiB0dWlUb2FzdE9wdGlvbnMnLCAnb3BlbjogdHVpVG9hc3QnXSxcbiAgICBvdXRwdXRzOiBbJ29wZW5DaGFuZ2U6IHR1aVRvYXN0Q2hhbmdlJ10sXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNQb3BvdmVyKFR1aVRvYXN0U2VydmljZSldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUb2FzdFRlbXBsYXRlPFQ+IGV4dGVuZHMgVHVpUG9wb3ZlckRpcmVjdGl2ZTxUdWlUb2FzdE9wdGlvbnM8VD4+IHt9XG4iXX0=