{"version":3,"file":"uipath-angular-components-ui-snackbar.mjs","sources":["../../../projects/angular/components/ui-snackbar/src/ui-snackbar.intl.ts","../../../projects/angular/components/ui-snackbar/src/ui-snackbar.component.ts","../../../projects/angular/components/ui-snackbar/src/ui-snackbar.component.html","../../../projects/angular/components/ui-snackbar/src/ui-snackbar.module.ts","../../../projects/angular/components/ui-snackbar/src/uipath-angular-components-ui-snackbar.ts"],"sourcesContent":["import { Subject } from 'rxjs';\n\nimport {\n    Injectable,\n    OnDestroy,\n} from '@angular/core';\n\n@Injectable()\nexport class UiSnackbarIntl implements OnDestroy {\n    closeAriaLabel = 'Close';\n    closeSnackbarShortcut = 'Close the snackbar using the shortcut: Delete + x';\n    protected _destroyed$ = new Subject<void>();\n\n    ngOnDestroy() {\n        this._destroyed$.next();\n        this._destroyed$.complete();\n    }\n}\n","import {\n    ComponentPortal,\n    ComponentType,\n} from '@angular/cdk/portal';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    Inject,\n    Injectable,\n    InjectionToken,\n    Injector,\n    Optional,\n    TemplateRef,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    MatSnackBar,\n    MatSnackBarConfig,\n    MatSnackBarRef,\n    MAT_SNACK_BAR_DATA,\n    MAT_SNACK_BAR_DEFAULT_OPTIONS,\n} from '@angular/material/snack-bar';\n\nimport { UiSnackbarIntl } from './ui-snackbar.intl';\n\ninterface ISnackBarAlert {\n    /**\n     * Alert message\n     */\n    message: string | TemplateRef<any> | ComponentType<unknown>;\n    /**\n     * Optional action button message,\n     * will emit `dismissWithAction` on click\n     */\n    actionMessage?: string;\n    /**\n     * How long to remain on the screen\n     */\n    duration: number;\n    /**\n     * Material icon to be used in snackbar\n     */\n    icon?: string;\n    /**\n     * Aria label for screen-readers on close button\n     */\n    closeAriaLabel?: string;\n    /**\n     * Additional information to pass to components. Can be used by injecting `UI_MAT_SNACK_BAR_PAYLOAD`.\n     */\n    payload?: unknown;\n    /**\n     *  Extra CSS classes to be added to the snack bar container.\n     */\n    extraCssClasses?: string[];\n}\n\n@Component({\n    templateUrl: './ui-snackbar.component.html',\n    styleUrls: [\n        './ui-snackbar.component.scss',\n    ],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UiSnackBarComponent {\n    private _componentPortal?: ComponentPortal<unknown>;\n\n    get componentPortal() {\n        if (typeof this.data.message !== 'function') {\n            throw new Error('`componentPortal` getter cannot be used when `data.message` is not a component type');\n        }\n\n        this._componentPortal ??= new ComponentPortal(\n            this.data.message,\n            null,\n            Injector.create({\n                providers: [\n                    {\n                        provide: UI_MAT_SNACK_BAR_PAYLOAD,\n                        useValue: this.data.payload,\n                    },\n                ],\n                parent: this._injector,\n\n            }),\n        );\n\n        return this._componentPortal;\n    }\n\n    constructor(\n        @Inject(MAT_SNACK_BAR_DATA)\n        public data: ISnackBarAlert,\n        public snackBarRef: MatSnackBarRef<UiSnackBarComponent>,\n        private _injector: Injector,\n    ) { }\n\n    /**\n     * @internal\n     * @ignore\n     */\n    isPropertyString(property: unknown): property is string {\n        return typeof property === 'string';\n    }\n\n    /**\n     * @internal\n     * @ignore\n     */\n    isTemplateRef(property: unknown): property is TemplateRef<unknown> {\n        return property instanceof TemplateRef;\n    }\n\n    /**\n     * @internal\n     * @ignore\n     */\n    isComponentType(property: unknown): property is ComponentType<unknown> {\n        return typeof property === 'function';\n    }\n}\n\nexport enum SnackBarType {\n    Info = 'info',\n    Error = 'error',\n    Warning = 'warning',\n    Success = 'success',\n    None = 'none',\n}\n\nexport const ICON_MAP: Map<SnackBarType, string> = new Map([\n    [SnackBarType.Info, 'info'],\n    [SnackBarType.Success, 'check_circle'],\n    [SnackBarType.Warning, 'warning'],\n    [SnackBarType.Error, 'error'],\n]);\nexport type SnackbarAction = (\n    message: string | TemplateRef<any> | ComponentType<unknown>,\n    config?: {\n        actionMessage?: string;\n        duration?: number;\n        payload?: unknown;\n        extraCssClasses?: string[];\n    },\n) => MatSnackBarRef<UiSnackBarComponent>;\n\nexport class UiMatSnackBarConfig {\n    restrictHtml = false;\n}\n\nexport const UI_MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken<UiMatSnackBarConfig>('UiMatSnackBarConfig');\nexport const UI_MAT_SNACK_BAR_PAYLOAD = new InjectionToken('UiSnackBarService Payload');\n\n/**\n * Snackbar config options\n */\ninterface ISnackBarOptions extends Partial<Exclude<ISnackBarAlert, 'closeAriaLabel' | 'message'>> {\n    /**\n     * The type of the alert (info, success, warning or error)\n     */\n    type?: SnackBarType;\n}\n\nexport const panelClass = (type: SnackBarType) =>\n    `ui-snackbar-${type}`;\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class UiSnackBarService {\n\n    /**\n     * Display an info snackbar\n     *\n     * @param message The message to be displayed\n     * @param config  `{ actionMessage, duration }`\n     */\n    info: SnackbarAction;\n    /**\n     * Display an error snackbar\n     *\n     * @param message The message to be displayed\n     * @param config  `{ actionMessage, duration }`\n     */\n    error: SnackbarAction;\n    /**\n     * Display an success snackbar\n     *\n     * @param message The message to be displayed\n     * @param config  `{ actionMessage, duration }`\n     */\n    success: SnackbarAction;\n    /**\n     * Display an warning snackbar\n     *\n     * @param message The message to be displayed\n     * @param config  `{ actionMessage, duration }`\n     */\n    warning: SnackbarAction;\n    private _ref?: MatSnackBarRef<UiSnackBarComponent>;\n\n    constructor(\n        private _snackBar: MatSnackBar,\n        @Inject(MAT_SNACK_BAR_DEFAULT_OPTIONS)\n        private _options: MatSnackBarConfig,\n        @Optional()\n        private readonly _snackIntl: UiSnackbarIntl,\n        @Inject(UI_MAT_SNACK_BAR_DEFAULT_OPTIONS)\n        @Optional()\n        private _additionalOptions?: UiMatSnackBarConfig,\n    ) {\n        this._snackIntl = this._snackIntl ||\n            new UiSnackbarIntl();\n\n        this.info = this._alertFactory(SnackBarType.Info);\n        this.error = this._alertFactory(SnackBarType.Error);\n        this.success = this._alertFactory(SnackBarType.Success);\n        this.warning = this._alertFactory(SnackBarType.Warning);\n    }\n\n    /**\n     * Display a snackbar (customizable)\n     *\n     * @param message The message to be displayed\n     * @param options Customize default options: snackbar type, icon, display duration, and action message\n     */\n    show = (\n        message: string | TemplateRef<any> | ComponentType<unknown>,\n        { type, duration, icon, actionMessage, payload, extraCssClasses }: ISnackBarOptions = {},\n    ) =>\n        this._alert(type ?? SnackBarType.None, {\n            message,\n            icon: icon ?? ICON_MAP.get(type!),\n            duration: duration || duration === 0 ? duration : this._options.duration!,\n            actionMessage,\n            payload,\n            extraCssClasses,\n        });\n\n    /**\n     * Dismiss the displayed snackbar\n     */\n    clear() {\n        if (!this._ref) { return; }\n\n        this._ref.dismiss();\n    }\n\n    private _alertFactory = (type: SnackBarType) =>\n        (\n            message: string | TemplateRef<any> | ComponentType<unknown>,\n            config?: { actionMessage?: string; duration?: number; payload?: unknown; extraCssClasses?: string[] }) =>\n            this._alert(type, {\n                message,\n                actionMessage: config?.actionMessage,\n                icon: ICON_MAP.get(type),\n                duration: config?.duration || config?.duration === 0\n                    ? config.duration\n                    : this._options.duration!,\n                payload: config?.payload,\n                extraCssClasses: config?.extraCssClasses,\n            });\n\n    private _alert(type: SnackBarType, options: ISnackBarAlert) {\n        if (\n            this._additionalOptions?.restrictHtml &&\n            typeof options.message === 'string'\n        ) {\n            const span = document.createElement('span');\n            span.innerText = options.message;\n            options.message = span.innerHTML;\n            span.remove();\n        }\n\n        const extraPanelClasses = options.extraCssClasses ?? [];\n        this._ref = this._snackBar.openFromComponent(UiSnackBarComponent, {\n            data: {\n                closeAriaLabel: this._snackIntl.closeSnackbarShortcut,\n                ...options,\n            },\n            duration: options.duration,\n            panelClass: [panelClass(type), ...extraPanelClasses],\n        });\n\n        return this._ref;\n    }\n}\n","<div class=\"ui-snackbar-container\">\n    <div class=\"ui-snackbar-message\">\n        <mat-icon *ngIf=\"data.icon\">{{data.icon}}</mat-icon>\n        <span *ngIf=\"isPropertyString(data.message)\"\n              [innerHTML]=\"data.message | nl2br\"></span>\n        <ng-container *ngIf=\"isTemplateRef(data.message)\"\n                      [ngTemplateOutlet]=\"data.message\"\n                      [ngTemplateOutletContext]=\"{ $implicit: snackBarRef }\"></ng-container>\n        <ng-template *ngIf=\"isComponentType(data.message)\"\n                     [cdkPortalOutlet]=\"componentPortal\"></ng-template>\n    </div>\n\n    <div class=\"ui-snackbar-dismiss\">\n        <button *ngIf=\"data.actionMessage\"\n                (click)=\"snackBarRef.dismissWithAction()\"\n                class=\"ui-snackbar-action\"\n                type=\"button\"\n                mat-button>\n            {{ data.actionMessage }}\n        </button>\n\n        <button [attr.aria-label]=\"data.closeAriaLabel\"\n                (click)=\"snackBarRef.dismiss()\"\n                [shortcutKeys]=\"[['Delete', 'x']]\"\n                (shortcutPressed)=\"snackBarRef.dismiss()\"\n                uiKeyboardShortcut\n                class=\"ui-snackbar-close\"\n                type=\"button\"\n                mat-icon-button>\n            <mat-icon>close</mat-icon>\n        </button>\n    </div>\n</div>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n    MatSnackBarModule,\n    MAT_SNACK_BAR_DEFAULT_OPTIONS,\n} from '@angular/material/snack-bar';\nimport { KeyboardShortcutModule } from '@uipath/angular/directives/keyboard-shortcut';\nimport { UiPipeModule } from '@uipath/angular/pipes';\n\nimport { UiSnackBarComponent } from './ui-snackbar.component';\n\nconst DEFAULT_DURATION = 10000;\nconst DEFAULT_HORIZONTAL = 'center';\nconst DEFAULT_VERTICAL = 'top';\n\n@NgModule({\n    imports: [\n        MatSnackBarModule,\n        MatIconModule,\n        MatButtonModule,\n        PortalModule,\n        UiPipeModule,\n        CommonModule,\n        KeyboardShortcutModule,\n    ],\n    declarations: [UiSnackBarComponent],\n    providers: [{\n        provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n        useValue: {\n            verticalPosition: DEFAULT_VERTICAL,\n            horizontalPosition: DEFAULT_HORIZONTAL,\n            duration: DEFAULT_DURATION,\n        },\n    }],\n})\nexport class UiSnackBarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i8.UiSnackbarIntl"],"mappings":"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"}