{"version":3,"file":"ironsource-fusion-ui-components-snackbar-v4.mjs","sources":["../../../projects/fusion-ui/components/snackbar/v4/snackbar.entities.ts","../../../projects/fusion-ui/components/snackbar/v4/snackbar.component.html","../../../projects/fusion-ui/components/snackbar/v4/snackbar.component.ts","../../../projects/fusion-ui/components/snackbar/v4/snackbar.configuration.ts","../../../projects/fusion-ui/components/snackbar/v4/snackbar.service.ts","../../../projects/fusion-ui/components/snackbar/v4/ironsource-fusion-ui-components-snackbar-v4.ts"],"sourcesContent":["import {ButtonColor, ButtonSize, ButtonVariant} from '@ironsource/fusion-ui/components/button/v4';\n\nexport type SnackbarType = 'default' | 'error' | 'success' | 'warning';\nexport type SnackbarLocation = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';\n\nexport const SnackbarIconByType: Record<SnackbarType, string> = {\n    default: 'ph/fill/info',\n    error: 'ph/fill/warning-octagon',\n    success: 'ph/fill/check-circle',\n    warning: 'ph/fill/warning'\n};\n\nexport interface SnackbarEntity {\n    title?: string;\n    message?: string;\n    type?: SnackbarType;\n    duration?: number;\n    location?: SnackbarLocation;\n    actionButtons?: SnackActionButton[];\n}\n\nexport interface SnackActionButton {\n    label: string;\n    color?: ButtonColor;\n    variant?: ButtonVariant;\n    size?: ButtonSize;\n    startIcon?: string;\n    disabled?: boolean;\n    endIcon?: string;\n    onClick: Function;\n}\n","<div #snackbar class=\"fu-snackbar-wrapper fu-state-{{type}}\">\n    <div class=\"fu-title\">\n        <fusion-icon class=\"fu-state-icon\" [name]=\"statusIcon\"></fusion-icon>\n        <div class=\"fu-title-text\">{{title}}</div>\n        <fusion-icon-button class=\"fu-close-button\" size=\"small\" iconName=\"ph/x\" (click)=\"onCloseClicked()\"></fusion-icon-button>\n    </div>\n    <div *ngIf=\"message\" class=\"fu-description\">{{message}}</div>\n    <div class=\"fu-content\">\n        <fusion-button *ngFor=\"let button of actionButtons\"\n                       [color]=\"button.color\"\n                       [variant]=\"button.variant\"\n                       [size]=\"button.size\"\n                       [disabled]=\"button.disabled\"\n                       [startIconName]=\"button.startIcon\"\n                       [endIconName]=\"button.endIcon\"\n                       (click)=\"actionButtonsClicked(button)\"\n        >{{button.label}}</fusion-button>\n    </div>\n</div>\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    Renderer2,\n    ViewChild\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {fromEvent} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {SnackActionButton, SnackbarIconByType, SnackbarLocation, SnackbarType} from './snackbar.entities';\nimport {ButtonComponent, IconButtonComponent} from '@ironsource/fusion-ui/components/button/v4';\n\n@Component({\n    selector: 'fusion-snackbar',\n    standalone: true,\n    imports: [CommonModule, IconModule, IconButtonComponent, ButtonComponent],\n    templateUrl: './snackbar.component.html',\n    styleUrls: ['./snackbar.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SnackbarComponent implements OnInit, AfterViewInit {\n    @Input() title: string;\n    @Input() message: string;\n    @Input() type: SnackbarType = 'default';\n    @Input() duration: number = 3000;\n    @Input() location: SnackbarLocation = 'top-right';\n    @Input() actionButtons: SnackActionButton[];\n\n    @Output() closed = new EventEmitter();\n\n    /** @internal */\n    shownByService = false; // util set from service\n\n    /** @internal */\n    @ViewChild('snackbar') snackbarView: ElementRef;\n\n    /** @internal */\n    get statusIcon(): string {\n        return SnackbarIconByType[this.type];\n    }\n\n    constructor(private renderer: Renderer2) {}\n\n    ngOnInit() {\n        if (this.duration) {\n            setTimeout(this.closeSnackbar.bind(this), this.duration);\n        }\n    }\n\n    ngAfterViewInit() {\n        this.renderer.addClass(this.snackbarView.nativeElement, this.getShownTransition());\n    }\n\n    /** @internal */\n    onCloseClicked() {\n        this.closeSnackbar();\n    }\n\n    actionButtonsClicked(button: SnackActionButton) {\n        if (typeof button?.onClick === 'function') {\n            button.onClick();\n        }\n    }\n\n    private closeSnackbar() {\n        this.setCloseTransition();\n        fromEvent(this.snackbarView.nativeElement, 'animationend')\n            .pipe(take(1))\n            .subscribe(data => {\n                this.closed.emit();\n            });\n    }\n\n    private setCloseTransition() {\n        let onCloseClass = 'fu-fadeout'; // default and center;\n        if (this.location) {\n            if (this.location.endsWith('-right')) {\n                onCloseClass = 'fu-slide-out-right';\n            } else if (this.location.endsWith('-left')) {\n                onCloseClass = 'fu-slide-out-left';\n            }\n        }\n        if (onCloseClass !== 'fu-fadeout' && this.shownByService) {\n            // in case toast opened from service and has slide animation\n            this.renderer.setStyle(this.snackbarView.nativeElement, 'position', 'relative');\n        }\n        // set on close class with animation\n        this.renderer.addClass(this.snackbarView.nativeElement, onCloseClass);\n    }\n\n    private getShownTransition(): string {\n        return this.getShownTransitionByLocation(this.location);\n    }\n\n    private getShownTransitionByLocation(location?: SnackbarLocation): string {\n        if (!!location && location.startsWith('top-')) {\n            return 'fu-top-fadein';\n        } else if (!!location && location.startsWith('bottom-')) {\n            return 'fu-bottom-fadein';\n        } else {\n            return 'fu-fadein';\n        }\n    }\n}\n","/*\n * Created on 2020.11.4 By Andy Kononenko (andyk@ironsrc.com)\n */\n\nexport const SNACKBAR_HOLDER_CLASS_NAME = 'fu-snackbar-holder';\nexport const SNACKBAR_LOCATION_STYLE_MAP = {\n    common: {\n        position: 'fixed',\n        zIndex: '9999'\n    },\n    'top-right': {\n        top: '1rem',\n        right: '1rem'\n    },\n    'top-left': {\n        top: '1rem',\n        left: '1rem'\n    },\n    'top-center': {\n        top: '1rem',\n        left: '41%'\n    },\n    'bottom-right': {\n        bottom: '1rem',\n        right: '1rem'\n    },\n    'bottom-left': {\n        bottom: '1rem',\n        left: '1rem'\n    },\n    'bottom-center': {\n        bottom: '1rem',\n        left: '41%'\n    }\n};\n","import {ApplicationRef, ComponentRef, EmbeddedViewRef, Inject, Injectable, Injector, Renderer2, ViewContainerRef} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {take} from 'rxjs/operators';\nimport {SnackbarEntity, SnackbarLocation} from './snackbar.entities';\nimport {SNACKBAR_HOLDER_CLASS_NAME, SNACKBAR_LOCATION_STYLE_MAP} from './snackbar.configuration';\nimport {SnackbarComponent} from './snackbar.component';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SnackbarService {\n    constructor(\n        private renderer: Renderer2,\n        private appRef: ApplicationRef,\n        private vcr: ViewContainerRef,\n        @Inject(DOCUMENT) private document: Document\n    ) {}\n\n    show(configuration: SnackbarEntity) {\n        const snackbarLocation: SnackbarLocation = configuration.location || 'top-right';\n        const snackbarHostElement = this.ensureHostElement(snackbarLocation);\n        const snackbarComponentRef = this.createToastComponentRef({...configuration, ...{location: snackbarLocation}});\n\n        this.appendElementLocation(\n            snackbarLocation,\n            snackbarHostElement,\n            (snackbarComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement\n        );\n        this.removeOnClose(snackbarComponentRef);\n    }\n\n    private ensureHostElement(location: SnackbarLocation): HTMLElement {\n        const selector = `.${SNACKBAR_HOLDER_CLASS_NAME}.${location}`;\n        let snackbarHolderElement: HTMLElement = this.document.body.querySelector(selector);\n        let useLocation: SnackbarLocation = location;\n        if (!snackbarHolderElement) {\n            snackbarHolderElement = this.renderer.createElement('div');\n            if (!SNACKBAR_LOCATION_STYLE_MAP.hasOwnProperty(location)) {\n                useLocation = 'top-right';\n            }\n            this.setStyleToElement(\n                snackbarHolderElement,\n                {...SNACKBAR_LOCATION_STYLE_MAP.common, ...SNACKBAR_LOCATION_STYLE_MAP[useLocation]},\n                useLocation\n            );\n            this.renderer.appendChild(this.document.body, snackbarHolderElement);\n        }\n        return snackbarHolderElement as HTMLElement;\n    }\n\n    private setStyleToElement(element: HTMLElement, snackbarHolderStyleMap: {[key: string]: any}, location: string) {\n        Object.keys(snackbarHolderStyleMap).forEach(key => {\n            this.renderer.setStyle(element, key, snackbarHolderStyleMap[key]);\n        });\n        this.renderer.addClass(element, SNACKBAR_HOLDER_CLASS_NAME);\n        this.renderer.addClass(element, location);\n    }\n\n    private createToastComponentRef(snackbarConfiguration: SnackbarEntity): ComponentRef<SnackbarComponent> {\n        const snackbarComponentRef = this.vcr.createComponent(SnackbarComponent);\n        Object.keys(snackbarConfiguration).forEach(key => {\n            snackbarComponentRef.instance[key] = snackbarConfiguration[key];\n        });\n        return snackbarComponentRef;\n    }\n\n    private removeOnClose(componentRef: ComponentRef<SnackbarComponent>) {\n        componentRef.instance.closed.pipe(take(1)).subscribe(() => {\n            this.appRef.detachView(componentRef.hostView);\n            componentRef.destroy();\n        });\n    }\n\n    private appendElementLocation(location: string, snackbarHostElement: HTMLElement, snackbarElement: HTMLElement) {\n        if (location.startsWith('top-')) {\n            snackbarHostElement.prepend(snackbarElement);\n        } else {\n            snackbarHostElement.appendChild(snackbarElement);\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}