{"version":3,"file":"koobiq-components-toast.mjs","sources":["../../../packages/components/toast/toast-animations.ts","../../../packages/components/toast/toast.type.ts","../../../packages/components/toast/toast.component.ts","../../../packages/components/toast/toast.component.html","../../../packages/components/toast/toast.service.ts","../../../packages/components/toast/toast-container.component.ts","../../../packages/components/toast/toast.module.ts","../../../packages/components/toast/koobiq-components-toast.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const kbqToastAnimations: {\n    readonly toastState: AnimationTriggerMetadata;\n} = {\n    toastState: trigger('state', [\n        state('void', style({ transform: 'translateX(100%)', opacity: 0 })),\n        transition('* => visible', animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))),\n        transition(\n            '* => void',\n            animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, height: 0 }))\n        )\n    ])\n};\n\nexport const toastState = kbqToastAnimations.toastState;\n","import { InjectionToken, Provider, TemplateRef } from '@angular/core';\n\nexport enum KbqToastStyle {\n    Contrast = 'contrast',\n    Success = 'success',\n    Warning = 'warning',\n    Error = 'error'\n}\n\nexport enum KbqToastPosition {\n    TOP_RIGHT = 'top-right',\n    TOP_LEFT = 'top-left',\n    TOP_CENTER = 'top-center',\n    BOTTOM_RIGHT = 'bottom-right',\n    BOTTOM_LEFT = 'bottom-left',\n    BOTTOM_CENTER = 'bottom-center',\n    CENTER = 'center'\n}\n\nexport class KbqToastData {\n    id?: string;\n    title?: string | TemplateRef<any>;\n    style?: KbqToastStyle | string;\n\n    icon?: TemplateRef<any> | boolean;\n    iconClass?: string;\n    caption?: string | TemplateRef<any>;\n\n    content?: string | TemplateRef<any>;\n    actions?: TemplateRef<any>;\n\n    closeButton?: TemplateRef<any> | boolean;\n}\n\nexport interface KbqToastConfig {\n    position: KbqToastPosition;\n    duration: number;\n    delay: number;\n    onTop: boolean;\n    /** Custom indentation for positioning the toast stack overlay when using `GlobalPositionStrategy` */\n    indent: {\n        /** Vertical spacing from the top or bottom of the screen. */\n        vertical: number;\n\n        /** Horizontal spacing from the left or right of the screen. */\n        horizontal: number;\n    };\n}\n\nexport const defaultToastConfig: KbqToastConfig = {\n    position: KbqToastPosition.TOP_RIGHT,\n    duration: 5000,\n    delay: 2000,\n    onTop: false,\n    indent: {\n        vertical: 0,\n        horizontal: 0\n    }\n};\n\nexport const KBQ_TOAST_CONFIG = new InjectionToken<KbqToastConfig>('kbq-toast-config', {\n    factory: () => defaultToastConfig\n});\n\n/** Utility provider for `KBQ_TOAST_CONFIG`. */\nexport const kbqToastConfigurationProvider = (configuration: Partial<KbqToastConfig>): Provider => ({\n    provide: KBQ_TOAST_CONFIG,\n    useValue: { ...defaultToastConfig, ...configuration }\n});\n","import { AnimationEvent } from '@angular/animations';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    Directive,\n    ElementRef,\n    Inject,\n    OnDestroy,\n    TemplateRef,\n    ViewEncapsulation,\n    forwardRef,\n    inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqReadStateDirective, ThemePalette } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { kbqToastAnimations } from './toast-animations';\nimport { KbqToastService } from './toast.service';\nimport { KbqToastData, KbqToastStyle } from './toast.type';\n\n@Directive({\n    selector: '[kbq-toast-close-button]',\n    host: {\n        class: 'kbq-toast__close-button'\n    }\n})\nexport class KbqToastCloseButton {}\n\nlet id = 0;\n\n@Component({\n    selector: 'kbq-toast',\n    imports: [\n        NgTemplateOutlet,\n        KbqIconModule,\n        NgClass,\n        KbqTitleModule,\n        KbqToastCloseButton\n    ],\n    templateUrl: './toast.component.html',\n    styleUrls: ['./toast.component.scss', './toast-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-toast',\n        '[class]': 'toastStyle',\n        '[class.kbq-toast_dismissible]': 'data.closeButton',\n        '[@state]': 'animationState',\n        '(@state.start)': 'onAnimation($event)',\n        '(@state.done)': 'onAnimation($event)',\n        '(mouseenter)': 'hovered.next(true)',\n        '(mouseleave)': 'hovered.next(false)',\n        '(keydown.esc)': 'close()'\n    },\n    animations: [kbqToastAnimations.toastState],\n    hostDirectives: [KbqReadStateDirective]\n})\nexport class KbqToastComponent implements OnDestroy {\n    protected readonly readStateDirective = inject(KbqReadStateDirective, { host: true });\n\n    themePalette = ThemePalette;\n\n    animationState = 'void';\n\n    readonly hovered = new BehaviorSubject<boolean>(false);\n    readonly focused = new BehaviorSubject<boolean>(false);\n\n    id = id++;\n    ttl;\n    delay;\n\n    $implicit;\n\n    get toastStyle() {\n        return {\n            [`kbq-toast_${this.data.style}`]: true\n        };\n    }\n\n    get isFocusedOrHovered(): boolean {\n        return this.hovered.getValue() || this.focused.getValue();\n    }\n\n    constructor(\n        readonly data: KbqToastData,\n        @Inject(forwardRef(() => KbqToastService)) readonly service: KbqToastService,\n        public elementRef: ElementRef<HTMLElement>,\n        private focusMonitor: FocusMonitor\n    ) {\n        this.$implicit = this;\n\n        this.data.style = this.data.style || KbqToastStyle.Contrast;\n        this.data.icon = this.data.icon !== undefined ? this.data.icon : true;\n        this.data.iconClass = this.data.iconClass || undefined;\n        this.data.closeButton = this.data.closeButton !== undefined ? this.data.closeButton : true;\n\n        this.animationState = 'visible';\n\n        this.runFocusMonitor();\n\n        this.hovered.subscribe(this.service.hovered);\n        this.focused.subscribe(this.service.focused);\n\n        merge(this.hovered, this.focused)\n            .pipe(\n                filter((value) => value),\n                takeUntilDestroyed()\n            )\n            .subscribe(() => {\n                if (this.ttl === 0) {\n                    return;\n                }\n\n                this.ttl = this.ttl < this.delay ? this.delay : this.ttl;\n            });\n\n        this.readStateDirective.read\n            .pipe(\n                filter((value) => value),\n                takeUntilDestroyed()\n            )\n            .subscribe(() => this.service.read.next(this.data));\n    }\n\n    ngOnDestroy() {\n        this.stopFocusMonitor();\n\n        this.hovered.next(false);\n        this.focused.next(false);\n    }\n\n    close(): void {\n        this.service.read.next(this.data);\n        this.service.hide(this.id);\n    }\n\n    isTemplateRef(value): boolean {\n        return value instanceof TemplateRef;\n    }\n\n    onAnimation($event: AnimationEvent) {\n        this.service.animation.next($event);\n    }\n\n    private runFocusMonitor() {\n        this.focusMonitor\n            .monitor(this.elementRef.nativeElement, true)\n            .subscribe((origin: FocusOrigin) => this.focused.next(!!origin));\n    }\n\n    private stopFocusMonitor() {\n        this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n    }\n}\n","@if (data.icon) {\n    <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n        @if (data.icon === true) {\n            @switch (data.style) {\n                @case ('contrast') {\n                    <i\n                        kbq-icon=\"kbq-circle-info_16\"\n                        class=\"kbq-toast__icon\"\n                        [color]=\"$any(data.style)\"\n                        [ngClass]=\"data.iconClass\"\n                    ></i>\n                }\n                @case ('success') {\n                    <i\n                        kbq-icon=\"kbq-circle-check_16\"\n                        class=\"kbq-toast__icon\"\n                        [color]=\"$any(data.style)\"\n                        [ngClass]=\"data.iconClass\"\n                    ></i>\n                }\n                @case ('warning') {\n                    <i\n                        kbq-icon=\"kbq-triangle-exclamation_16\"\n                        class=\"kbq-toast__icon\"\n                        [color]=\"$any(data.style)\"\n                        [ngClass]=\"data.iconClass\"\n                    ></i>\n                }\n                @case ('error') {\n                    <i\n                        kbq-icon=\"kbq-triangle-exclamation_16\"\n                        class=\"kbq-toast__icon\"\n                        [color]=\"$any(data.style)\"\n                        [ngClass]=\"data.iconClass\"\n                    ></i>\n                }\n            }\n        }\n        @if (isTemplateRef(data.icon)) {\n            <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n        }\n    </div>\n}\n\n<div class=\"kbq-toast__container\">\n    @if (data.title) {\n        <div\n            kbq-title\n            class=\"kbq-toast__title\"\n            [class.kbq-toast__title_only-text]=\"!isTemplateRef(data.title)\"\n            [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n        >\n            @if (isTemplateRef(data.title)) {\n                <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n            }\n            @if (!isTemplateRef(data.title)) {\n                <p>{{ data.title }}</p>\n            }\n        </div>\n    }\n\n    @if (data.caption) {\n        <div\n            kbq-title\n            [class.kbq-toast__text]=\"data.title\"\n            [class.kbq-toast__text_only-text]=\"!isTemplateRef(data.caption)\"\n            [class.kbq-toast__title]=\"!data.title\"\n        >\n            @if (isTemplateRef(data.caption)) {\n                <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n            }\n            <!-- prettier-ignore -->\n            @if (!isTemplateRef(data.caption)) {{{ data.caption }}}\n        </div>\n    }\n\n    @if (data.content) {\n        <div class=\"kbq-toast__content\" [class.kbq-toast__content_only-text]=\"!isTemplateRef(data.content)\">\n            @if (isTemplateRef(data.content)) {\n                <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n            }\n            <!-- prettier-ignore -->\n            @if (!isTemplateRef(data.content)) {{{ data.content }}}\n        </div>\n    }\n\n    @if (data.actions) {\n        <div class=\"kbq-toast__actions\">\n            @if (isTemplateRef(data.actions)) {\n                <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n            }\n            @if (!isTemplateRef(data.actions)) {\n                {{ data.actions }}\n            }\n        </div>\n    }\n</div>\n\n@if (data.closeButton) {\n    <div>\n        @if (data.closeButton === true) {\n            <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n        }\n        @if (isTemplateRef(data.closeButton)) {\n            <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n        }\n    </div>\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { GlobalPositionStrategy, Overlay, OverlayContainer, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n    ComponentRef,\n    EmbeddedViewRef,\n    Inject,\n    Injectable,\n    InjectionToken,\n    Injector,\n    NgZone,\n    OnDestroy,\n    Optional,\n    TemplateRef\n} from '@angular/core';\nimport { BehaviorSubject, Subscription, filter, shareReplay, timer } from 'rxjs';\nimport { KbqToastContainerComponent } from './toast-container.component';\nimport { KbqToastComponent } from './toast.component';\nimport { KBQ_TOAST_CONFIG, KbqToastConfig, KbqToastData, KbqToastPosition } from './toast.type';\n\nexport const KBQ_TOAST_FACTORY = new InjectionToken('KBQ_TOAST_FACTORY', {\n    factory: () => KbqToastComponent\n});\n\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n/** Generic `T` is a type hint only; the runtime component comes from `KBQ_TOAST_FACTORY`. */\n@Injectable({ providedIn: 'root' })\nexport class KbqToastService<T extends KbqToastComponent = KbqToastComponent> implements OnDestroy {\n    get toasts(): ComponentRef<T>[] {\n        return Object.values(this.toastsDict).filter((item) => !item.hostView.destroyed);\n    }\n\n    get templates(): EmbeddedViewRef<T>[] {\n        return Object.values(this.templatesDict);\n    }\n\n    readonly read = new BehaviorSubject<KbqToastData | null>(null);\n    readonly hovered = new BehaviorSubject<boolean>(false);\n    readonly focused = new BehaviorSubject<boolean>(false);\n    readonly animation = new BehaviorSubject<AnimationEvent | null>(null);\n\n    timer = timer(CHECK_INTERVAL, CHECK_INTERVAL).pipe(\n        filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()),\n        // eslint-disable-next-line rxjs/no-ignored-replay-buffer\n        shareReplay()\n    );\n\n    private containerInstance?: KbqToastContainerComponent;\n    private overlayRef?: OverlayRef;\n    private portal?: ComponentPortal<KbqToastContainerComponent>;\n    private timerSubscription: Subscription;\n    private currentPosition?: KbqToastPosition;\n\n    private toastsDict: { [id: number]: ComponentRef<T> } = {};\n    private templatesDict: { [id: number]: EmbeddedViewRef<T> } = {};\n\n    constructor(\n        private overlay: Overlay,\n        private injector: Injector,\n        private overlayContainer: OverlayContainer,\n        private ngZone: NgZone,\n        @Inject(KBQ_TOAST_FACTORY) private toastFactory: any,\n        @Optional() @Inject(KBQ_TOAST_CONFIG) private toastConfig: KbqToastConfig\n    ) {\n        this.ngZone.runOutsideAngular(() => {\n            this.timerSubscription = this.timer.subscribe(this.processToasts);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.timerSubscription.unsubscribe();\n        this.overlayRef?.dispose();\n        this.overlayRef = undefined;\n        this.containerInstance = undefined;\n        this.portal = undefined;\n        this.currentPosition = undefined;\n        this.toastsDict = {};\n        this.templatesDict = {};\n    }\n\n    show(\n        data: KbqToastData,\n        duration: number = this.toastConfig.duration,\n        onTop: boolean = this.toastConfig.onTop\n    ): { ref: ComponentRef<T>; id: number } {\n        const container = this.prepareContainer();\n        const componentRef = container.createToast<T>(data, this.toastFactory, onTop);\n\n        this.toastsDict[componentRef.instance.id] = componentRef;\n\n        componentRef.instance.ttl = duration;\n        componentRef.instance.delay = this.toastConfig.delay;\n\n        return { ref: componentRef, id: componentRef.instance.id };\n    }\n\n    showTemplate(\n        data: KbqToastData,\n        template: TemplateRef<any>,\n        duration: number = this.toastConfig.duration,\n        onTop: boolean = this.toastConfig.onTop\n    ): { ref: EmbeddedViewRef<T>; id: number } {\n        const container = this.prepareContainer();\n        const viewRef = container.createTemplate<T>(data, template, onTop);\n        const id = templateId++;\n\n        this.templatesDict[id] = viewRef;\n        this.addRemoveTimer(id, duration);\n\n        return { ref: viewRef, id };\n    }\n\n    hide(id: number) {\n        const componentRef = this.toastsDict[id];\n\n        if (!componentRef) {\n            return;\n        }\n\n        this.containerInstance?.remove(componentRef.hostView);\n\n        delete this.toastsDict[id];\n\n        this.detachOverlay();\n    }\n\n    hideTemplate(id: number) {\n        const viewRef = this.templatesDict[id];\n\n        if (!viewRef) {\n            return;\n        }\n\n        this.containerInstance?.remove(viewRef);\n\n        delete this.templatesDict[id];\n\n        this.detachOverlay();\n    }\n\n    private detachOverlay() {\n        if (this.toasts.length !== 0 || this.templates.length !== 0) {\n            return;\n        }\n\n        this.overlayRef?.detach();\n    }\n\n    private processToasts = () => {\n        for (const toast of this.toasts.filter((item) => item.instance.ttl > 0)) {\n            toast.instance.ttl -= CHECK_INTERVAL;\n\n            if (toast.instance.ttl <= 0) {\n                this.ngZone.run(() => {\n                    this.hide(toast.instance.id);\n\n                    this.updateTTLAfterDelete();\n                });\n\n                break;\n            }\n        }\n    };\n\n    private updateTTLAfterDelete() {\n        this.toasts\n            .filter((item) => item.instance.ttl > 0)\n            .forEach((item) => (item.instance.ttl = this.toastConfig.delay));\n    }\n\n    private addRemoveTimer(id: number, duration: number) {\n        setTimeout(() => this.hideTemplate(id), duration);\n    }\n\n    private prepareContainer(): KbqToastContainerComponent {\n        const overlayRef = this.createOverlay();\n        const portal = this.portal || new ComponentPortal(KbqToastContainerComponent, null, this.injector);\n\n        this.portal = portal;\n\n        if (!overlayRef.hasAttached()) {\n            this.containerInstance = overlayRef.attach(portal).instance;\n            this.containerInstance\n                .getElementRef()\n                .nativeElement.classList.add(`kbq-toast-container-${this.toastConfig.position}`);\n        }\n\n        this.toTop(overlayRef);\n\n        return this.containerInstance!;\n    }\n\n    private toTop(overlayRef: OverlayRef) {\n        const overlays = this.overlayContainer.getContainerElement().childNodes;\n\n        if (overlays.length > 1) {\n            overlays[overlays.length - 1].after(overlayRef.hostElement);\n        }\n    }\n\n    private createOverlay(): OverlayRef {\n        const expectedPosition = this.toastConfig.position;\n\n        if (this.overlayRef && this.currentPosition === expectedPosition) {\n            return this.overlayRef;\n        }\n\n        if (this.overlayRef) {\n            this.overlayRef.dispose();\n            this.containerInstance = undefined;\n            this.portal = undefined;\n        }\n\n        const positionStrategy = this.getPositionStrategy(expectedPosition);\n        const overlayRef = this.overlay.create({ positionStrategy });\n\n        overlayRef.hostElement.classList.add('kbq-toast-overlay');\n\n        this.overlayRef = overlayRef;\n        this.currentPosition = expectedPosition;\n\n        return overlayRef;\n    }\n\n    private getPositionStrategy(position?: KbqToastPosition): GlobalPositionStrategy {\n        switch (position) {\n            case KbqToastPosition.CENTER:\n                return this.getCenter();\n            case KbqToastPosition.BOTTOM_CENTER:\n                return this.getBottomCenter();\n            case KbqToastPosition.BOTTOM_LEFT:\n                return this.getBottomLeft();\n            case KbqToastPosition.BOTTOM_RIGHT:\n                return this.getBottomRight();\n            case KbqToastPosition.TOP_CENTER:\n                return this.getTopCenter();\n            case KbqToastPosition.TOP_LEFT:\n                return this.getTopLeft();\n            case KbqToastPosition.TOP_RIGHT:\n                return this.getTopRight();\n            default:\n                return this.getTopCenter();\n        }\n    }\n\n    private getTopCenter(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition().top(`${this.toastConfig.indent.vertical}px`).centerHorizontally();\n    }\n\n    private getTopLeft(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition()\n            .top(`${this.toastConfig.indent.vertical}px`)\n            .left(`${this.toastConfig.indent.horizontal}px`);\n    }\n\n    private getTopRight(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition()\n            .top(`${this.toastConfig.indent.vertical}px`)\n            .right(`${this.toastConfig.indent.horizontal}px`);\n    }\n\n    private getBottomCenter(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition().bottom(`${this.toastConfig.indent.vertical}px`).centerHorizontally();\n    }\n\n    private getBottomLeft(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition()\n            .bottom(`${this.toastConfig.indent.vertical}px`)\n            .left(`${this.toastConfig.indent.horizontal}px`);\n    }\n\n    private getBottomRight(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition()\n            .bottom(`${this.toastConfig.indent.vertical}px`)\n            .right(`${this.toastConfig.indent.horizontal}px`);\n    }\n\n    private getCenter(): GlobalPositionStrategy {\n        return this.getGlobalOverlayPosition().centerVertically().centerHorizontally();\n    }\n\n    private getGlobalOverlayPosition(): GlobalPositionStrategy {\n        return this.overlay.position().global();\n    }\n}\n","import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ComponentRef,\n    ElementRef,\n    EmbeddedViewRef,\n    Inject,\n    Injector,\n    NgZone,\n    TemplateRef,\n    ViewChild,\n    ViewContainerRef,\n    ViewEncapsulation,\n    ViewRef,\n    forwardRef\n} from '@angular/core';\nimport { KbqToastService } from './toast.service';\nimport { KbqToastData } from './toast.type';\n\n@Component({\n    selector: 'kbq-toast-container',\n    template: '<ng-container #container />',\n    styleUrls: ['./toast-container.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-toast-container'\n    }\n})\nexport class KbqToastContainerComponent extends CdkScrollable {\n    @ViewChild('container', { static: true, read: ViewContainerRef }) viewContainer: ViewContainerRef;\n\n    constructor(\n        private injector: Injector,\n        private changeDetectorRef: ChangeDetectorRef,\n        @Inject(forwardRef(() => KbqToastService)) readonly service: KbqToastService,\n\n        elementRef: ElementRef<HTMLElement>,\n        scrollDispatcher: ScrollDispatcher,\n        ngZone: NgZone\n    ) {\n        super(elementRef, scrollDispatcher, ngZone);\n\n        this.service.animation.subscribe(this.dispatchScrollEvent);\n    }\n\n    createToast<C>(data: KbqToastData, componentType, onTop: boolean): ComponentRef<C> {\n        const injector = this.getInjector(data);\n        const index = onTop ? 0 : undefined;\n\n        this.changeDetectorRef.markForCheck();\n\n        return this.viewContainer.createComponent(componentType, { injector, index });\n    }\n\n    createTemplate<C>(data: KbqToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C> {\n        const index = onTop ? 0 : undefined;\n\n        return this.viewContainer.createEmbeddedView(template, { $implicit: data }, index);\n    }\n\n    remove(viewRef: ViewRef) {\n        const index = this.viewContainer.indexOf(viewRef);\n\n        if (index < 0) {\n            return;\n        }\n\n        this.viewContainer.remove(index);\n    }\n\n    getInjector(data: KbqToastData): Injector {\n        return Injector.create({\n            providers: [{ provide: KbqToastData, useValue: data }],\n            parent: this.injector\n        });\n    }\n\n    dispatchScrollEvent = () => {\n        this.elementRef.nativeElement.dispatchEvent(new CustomEvent('scroll'));\n    };\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToastContainerComponent } from './toast-container.component';\nimport { KbqToastCloseButton, KbqToastComponent } from './toast.component';\n\nconst COMPONENTS = [\n    KbqToastComponent,\n    KbqToastCloseButton,\n    KbqToastContainerComponent\n];\n\n@NgModule({\n    imports: COMPONENTS,\n    exports: COMPONENTS\n})\nexport class KbqToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter"],"mappings":"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"}