UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

1 lines 17.1 kB
{"version":3,"file":"taiga-ui-kit-components-toast.mjs","sources":["../../../projects/kit/components/toast/toast.directive.ts","../../../projects/kit/components/toast/toast.component.ts","../../../projects/kit/components/toast/toast.template.html","../../../projects/kit/components/toast/toast.options.ts","../../../projects/kit/components/toast/toast.service.ts","../../../projects/kit/components/toast/toast.ts","../../../projects/kit/components/toast/taiga-ui-kit-components-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\nimport {tuiDirectiveBinding, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_COMMON_ICONS, TUI_ICON_END} from '@taiga-ui/core/tokens';\nimport {tuiAvatarOptionsProvider} from '@taiga-ui/kit/components/avatar';\nimport {tuiBadgeOptionsProvider} from '@taiga-ui/kit/components/badge';\nimport {TuiShrinkWrapDirective} from '@taiga-ui/kit/components/shrink-wrap';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/toast.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-toast',\n },\n})\nclass TuiToastStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiToast]:not(ng-template)',\n providers: [\n tuiBadgeOptionsProvider({size: 'l'}),\n tuiAvatarOptionsProvider(() => ({\n size: inject(TUI_PLATFORM) === 'web' ? 's' : 'm',\n })),\n tuiButtonOptionsProvider(() => ({\n size: 's',\n appearance:\n inject(TUI_PLATFORM) === 'web' ? 'secondary-grayscale' : 'secondary',\n })),\n {\n provide: TUI_ICON_END,\n useFactory: () =>\n inject(ElementRef).nativeElement?.matches('a, button')\n ? inject(TUI_COMMON_ICONS).more\n : '',\n },\n ],\n hostDirectives: [\n TuiWithIcons,\n {\n directive: TuiShrinkWrapDirective,\n inputs: ['tuiShrinkWrap'],\n },\n ],\n})\nexport class TuiToastDirective {\n @Input()\n public tuiShrinkWrap = 'min(calc(100vw - 2rem), 25rem)';\n\n protected readonly nothing = tuiWithStyles(TuiToastStyles);\n protected readonly width = tuiDirectiveBinding(\n TuiShrinkWrapDirective,\n 'tuiShrinkWrap',\n computed(() => this.tuiShrinkWrap),\n );\n}\n","import {NgIf} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiSwipe} from '@taiga-ui/cdk/directives/swipe';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiShrinkWrap} from '@taiga-ui/kit/components/shrink-wrap';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {TuiToastDirective} from './toast.directive';\nimport {type TuiToastOptions} from './toast.options';\n\n@Component({\n standalone: true,\n selector: 'tui-toast',\n imports: [\n NgIf,\n PolymorpheusOutlet,\n TuiButton,\n TuiShrinkWrap,\n TuiSwipe,\n TuiToastDirective,\n ],\n templateUrl: './toast.template.html',\n styleUrls: ['./toast.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n role: 'status',\n '[class._mobile]': 'isMobile',\n '[attr.data-appearance]': 'context.appearance',\n },\n})\nexport class TuiToastComponent<O, I> implements AfterViewInit {\n @ViewChild(TuiButton, {read: ElementRef})\n private readonly button?: ElementRef<HTMLButtonElement>;\n\n private readonly el = tuiInjectElement();\n\n protected readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly context = injectContext<TuiPopover<TuiToastOptions<I>, O>>();\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly $ = of(this.context.autoClose)\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.context.$implicit.complete());\n\n public ngAfterViewInit(): void {\n if (this.button) {\n this.el.querySelector('[tuiToast]')?.appendChild(this.button.nativeElement);\n }\n }\n\n protected onSwipe(): void {\n if (this.context.closable) {\n this.context.$implicit.complete();\n }\n }\n}\n","<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n <tui-shrink-wrap><span [innerHTML]=\"text\"></span></tui-shrink-wrap>\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiToastOptions<I> {\n autoClose: number;\n closable: boolean;\n appearance: string;\n data?: I;\n}\n\nexport const TUI_TOAST_DEFAULT_OPTIONS: TuiToastOptions<void> = {\n appearance: '',\n autoClose: 5000,\n closable: true,\n};\n\nexport const [TUI_TOAST_OPTIONS, tuiToastOptionsProvider] = tuiCreateOptions(\n TUI_TOAST_DEFAULT_OPTIONS,\n);\n","import {Directive, inject, Injectable, type Type} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover, type TuiPopover, TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ALERTS} from '@taiga-ui/core/components/alert';\nimport {BehaviorSubject, pairwise} from 'rxjs';\n\nimport {TuiToastComponent} from './toast.component';\nimport {TUI_TOAST_OPTIONS, type TuiToastOptions} from './toast.options';\n\nconst TOASTS = tuiCreateTokenFromFactory(\n () =>\n new BehaviorSubject<ReadonlyArray<TuiPopover<TuiToastOptions<unknown>, any>>>([]),\n);\n\nexport const TUI_TOASTS_CONCURRENCY = tuiCreateTokenFromFactory<number>(() =>\n inject(TUI_IS_MOBILE) ? 1 : 2,\n);\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiToastService(TUI_ALERTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)),\n})\nexport class TuiToastService extends TuiPopoverService<TuiToastOptions<any>> {\n private readonly concurrency = inject(TUI_TOASTS_CONCURRENCY);\n private readonly alerts;\n\n protected readonly sub = this.items$\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([prev, next]) => {\n const closed = prev.filter((item) => !next.includes(item));\n const alerts = this.alerts.value.filter((item) => !closed.includes(item));\n const toasts = new Set([...alerts, ...next.slice(0, this.concurrency)]);\n\n this.alerts.next(Array.from(toasts));\n });\n\n constructor(\n items: ConstructorParameters<typeof TuiPopoverService<TuiToastOptions<any>>>[0],\n component: Type<any>,\n options: TuiToastOptions<any>,\n ) {\n super(TOASTS, component, options);\n\n this.alerts = inject(items);\n }\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiToast]',\n inputs: ['options: tuiToastOptions', 'open: tuiToast'],\n outputs: ['openChange: tuiToastChange'],\n providers: [tuiAsPopover(TuiToastService)],\n})\nexport class TuiToastTemplate<T> extends TuiPopoverDirective<TuiToastOptions<T>> {}\n","import {TuiToastDirective} from './toast.directive';\nimport {TuiToastTemplate} from './toast.service';\n\nexport const TuiToast = [TuiToastDirective, TuiToastTemplate] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}