{"version":3,"file":"igniteui-angular-snackbar.mjs","sources":["../../../projects/igniteui-angular/snackbar/src/snackbar/snackbar.component.ts","../../../projects/igniteui-angular/snackbar/src/snackbar/snackbar.component.html","../../../projects/igniteui-angular/snackbar/src/snackbar/snackbar.module.ts","../../../projects/igniteui-angular/snackbar/src/igniteui-angular-snackbar.ts"],"sourcesContent":["import { useAnimation } from '@angular/animations';\nimport {\n    Component,\n    EventEmitter,\n    HostBinding,\n    Input,\n    OnInit,\n    Output\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { ContainerPositionStrategy, GlobalPositionStrategy, HorizontalAlignment,\n    PositionSettings, VerticalAlignment } from 'igniteui-angular/core';\nimport { ToggleViewEventArgs, IgxButtonDirective, IgxNotificationsDirective } from 'igniteui-angular/directives';\nimport { fadeIn, fadeOut } from 'igniteui-angular/animations';\n\nlet NEXT_ID = 0;\n/**\n * **Ignite UI for Angular Snackbar** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/snackbar.html)\n *\n * The Ignite UI Snack Bar provides feedback about an operation with a single-line message, which can\n * include a link to an action such as Undo.\n *\n * Example:\n * ```html\n * <button type=\"button\" igxButton (click)=\"snackbar.show()\">Send message</button>\n * <div>\n *   <igx-snackbar #snackbar>\n *      Message sent\n *   </igx-snackbar>\n * </div>\n * ```\n */\n@Component({\n    selector: 'igx-snackbar',\n    templateUrl: 'snackbar.component.html',\n    imports: [IgxButtonDirective]\n})\nexport class IgxSnackbarComponent extends IgxNotificationsDirective\n    implements OnInit {\n    /**\n     * Sets/gets the `id` of the snackbar.\n     * If not set, the `id` of the first snackbar component  will be `\"igx-snackbar-0\"`;\n     * ```html\n     * <igx-snackbar id = \"Snackbar1\"></igx-snackbar>\n     * ```\n     * ```typescript\n     * let snackbarId = this.snackbar.id;\n     * ```\n     *\n     * @memberof IgxSnackbarComponent\n     */\n    @HostBinding('attr.id')\n    @Input()\n    public override id = `igx-snackbar-${NEXT_ID++}`;\n\n    /**\n     * The default css class applied to the component.\n     *\n     * @hidden\n     * @internal\n     */\n    @HostBinding('class.igx-snackbar')\n    public cssClass = 'igx-snackbar';\n\n    /**\n     * Sets/gets the `actionText` attribute.\n     * ```html\n     * <igx-snackbar [actionText] = \"'Action Text'\"></igx-snackbar>\n     * ```\n     */\n    @Input() public actionText?: string;\n\n    /**\n     * An event that will be emitted when the action button is clicked.\n     * Provides reference to the `IgxSnackbarComponent` as an argument.\n     * ```html\n     * <igx-snackbar (clicked)=\"clickedHandler($event)\"></igx-snackbar>\n     * ```\n     */\n    @Output()\n    public clicked = new EventEmitter<IgxSnackbarComponent>();\n\n    /**\n     * An event that will be emitted when the snackbar animation starts.\n     * Provides reference to the `ToggleViewEventArgs` interface as an argument.\n     * ```html\n     * <igx-snackbar (animationStarted) = \"animationStarted($event)\"></igx-snackbar>\n     * ```\n     */\n    @Output() public animationStarted = new EventEmitter<ToggleViewEventArgs>();\n\n    /**\n     * An event that will be emitted when the snackbar animation ends.\n     * Provides reference to the `ToggleViewEventArgs` interface as an argument.\n     * ```html\n     * <igx-snackbar (animationDone) = \"animationDone($event)\"></igx-snackbar>\n     * ```\n     */\n    @Output() public animationDone = new EventEmitter<ToggleViewEventArgs>();\n\n    /**\n     * Get the position and animation settings used by the snackbar.\n     * ```typescript\n     * @ViewChild('snackbar', { static: true }) public snackbar: IgxSnackbarComponent;\n     * let currentPosition: PositionSettings = this.snackbar.positionSettings\n     * ```\n     */\n    @Input()\n    public get positionSettings(): PositionSettings {\n        return this._positionSettings;\n    }\n\n    /**\n     * Set the position and animation settings used by the snackbar.\n     * ```html\n     * <igx-snackbar [positionSettings]=\"newPositionSettings\"></igx-snackbar>\n     * ```\n     * ```typescript\n     * import { slideInTop, slideOutBottom } from 'igniteui-angular';\n     * ...\n     * @ViewChild('snackbar', { static: true }) public snackbar: IgxSnackbarComponent;\n     *  public newPositionSettings: PositionSettings = {\n     *      openAnimation: useAnimation(slideInTop, { params: { duration: '1000ms', fromPosition: 'translateY(100%)'}}),\n     *      closeAnimation: useAnimation(slideOutBottom, { params: { duration: '1000ms', fromPosition: 'translateY(0)'}}),\n     *      horizontalDirection: HorizontalAlignment.Left,\n     *      verticalDirection: VerticalAlignment.Middle,\n     *      horizontalStartPoint: HorizontalAlignment.Left,\n     *      verticalStartPoint: VerticalAlignment.Middle,\n     *      minSize: { height: 100, width: 100 }\n     *  };\n     * this.snackbar.positionSettings = this.newPositionSettings;\n     * ```\n     */\n    public set positionSettings(settings: PositionSettings) {\n        this._positionSettings = settings;\n    }\n\n    private _positionSettings: PositionSettings = {\n        horizontalDirection: HorizontalAlignment.Center,\n        verticalDirection: VerticalAlignment.Bottom,\n        openAnimation: useAnimation(fadeIn, { params: { duration: '.35s', easing: 'cubic-bezier(0.0, 0.0, 0.2, 1)',\n            fromPosition: 'translateY(100%)', toPosition: 'translateY(0)'} }),\n        closeAnimation: useAnimation(fadeOut, {  params: { duration: '.2s', easing: 'cubic-bezier(0.4, 0.0, 1, 1)',\n            fromPosition: 'translateY(0)', toPosition: 'translateY(100%)'} }),\n    };\n\n    /**\n     * Shows the snackbar and hides it after the `displayTime` is over if `autoHide` is set to `true`.\n     * ```typescript\n     * this.snackbar.open();\n     * ```\n     */\n    public override open(message?: string) {\n        if (message !== undefined) {\n            this.textMessage = message;\n        }\n\n        this.strategy = this.outlet ? new ContainerPositionStrategy(this.positionSettings)\n            : new GlobalPositionStrategy(this.positionSettings);\n        super.open();\n    }\n\n    /**\n     * Opens or closes the snackbar, depending on its current state.\n     *\n     * ```typescript\n     * this.snackbar.toggle();\n     * ```\n     */\n     public override toggle() {\n        if (this.collapsed || this.isClosing) {\n            this.open();\n        } else {\n            this.close();\n        }\n    }\n\n    /**\n     * @hidden\n     */\n    public triggerAction(): void {\n        this.clicked.emit(this);\n    }\n\n    /**\n     * @hidden\n     */\n    public override ngOnInit() {\n        this.opened.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            const openedEventArgs: ToggleViewEventArgs = { owner: this, id: this._overlayId };\n            this.animationStarted.emit(openedEventArgs);\n        });\n\n        this.closed.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            const closedEventArgs: ToggleViewEventArgs = { owner: this, id: this._overlayId };\n            this.animationDone.emit(closedEventArgs);\n        });\n    }\n}\n","<div class=\"igx-snackbar__message\">\n    {{ textMessage }}\n    <ng-content></ng-content>\n</div>\n<div #customButton class=\"igx-snackbar__button\">\n    <ng-content select=\"[igxButton]\"></ng-content>\n</div>\n@if (!customButton.children.length && actionText) {\n    <button igxButton (click)=\"triggerAction()\">\n        {{ actionText }}\n    </button>\n}\n","import { NgModule } from '@angular/core';\nimport { IgxSnackbarComponent } from './snackbar.component';\n\n/**\n * @hidden\n * @deprecated\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n    imports: [\n        IgxSnackbarComponent\n    ],\n    exports: [\n        IgxSnackbarComponent\n    ]\n})\nexport class IgxSnackbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}