{"version":3,"file":"uipath-angular-directives-ui-spinner-button.mjs","sources":["../../../projects/angular/directives/ui-spinner-button/src/internal/ui-button-progress-spinner.component.ts","../../../projects/angular/directives/ui-spinner-button/src/internal/ui-button-progress-spinner.component.html","../../../projects/angular/directives/ui-spinner-button/src/ui-spinner-button.directive.ts","../../../projects/angular/directives/ui-spinner-button/src/ui-spinner-button.module.ts","../../../projects/angular/directives/ui-spinner-button/src/uipath-angular-directives-ui-spinner-button.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    OnDestroy,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\n@Component({\n    selector: 'ui-button-progress-spinner',\n    templateUrl: './ui-button-progress-spinner.component.html',\n    styleUrls: ['./ui-button-progress-spinner.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class UiButtonProgressSpinnerComponent implements OnDestroy {\n    isRound$ = new BehaviorSubject(false);\n    loading$ = new BehaviorSubject(false);\n\n    mode$ = new BehaviorSubject<MatProgressSpinner['mode']>('indeterminate');\n    value$ = new BehaviorSubject<MatProgressSpinner['value']>(0);\n    color$ = new BehaviorSubject<MatProgressSpinner['color']>('primary');\n\n    ngOnDestroy() {\n        this.isRound$.complete();\n        this.loading$.complete();\n        this.mode$.complete();\n        this.value$.complete();\n        this.color$.complete();\n    }\n}\n","<mat-progress-spinner *ngIf=\"loading$ | async\"\n                      [mode]=\"(mode$ | async) ?? 'indeterminate'\"\n                      [color]=\"color$ | async\"\n                      [value]=\"value$ | async\"\n                      [diameter]=\"22\"\n                      [strokeWidth]=\"2\"\n                      [class.ui-mat-progress-spinner-fab]=\"isRound$ | async\">\n</mat-progress-spinner>\n","import {\n    ComponentFactoryResolver,\n    Directive,\n    Input,\n    OnInit,\n    Renderer2,\n    ViewContainerRef,\n} from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { UiLoaderButtonDirective } from '@uipath/angular/directives/internal';\n\nimport { UiButtonProgressSpinnerComponent } from './internal/ui-button-progress-spinner.component';\n\nexport const enum SpinnerButtonClass {\n    Base = 'ui-spinner-button',\n    Loading = 'ui-spinner-button-loading',\n}\n\n@Directive({\n    selector: `\n        button[mat-icon-button][ui-spinner-button],\n        button[mat-fab][ui-spinner-button],\n        button[mat-mini-fab][ui-spinner-button],\n        button[mat-icon-button][uiSpinnerButton],\n        button[mat-raised-button][ui-spinner-button],\n        button[mat-stroked-button][ui-spinner-button],\n        button[mat-flat-button][ui-spinner-button],\n        button[mat-button][uiSpinnerButton],\n        button[mat-raised-button][uiSpinnerButton],\n        button[mat-stroked-button][uiSpinnerButton],\n        button[mat-flat-button][uiSpinnerButton],\n        button[mat-fab][uiSpinnerButton],\n        button[mat-mini-fab][uiSpinnerButton],\n        button[mat-button][ui-spinner-button],\n    `,\n    exportAs: 'uiSpinnerButton',\n})\nexport class UiSpinnerButtonDirective\n    extends UiLoaderButtonDirective<UiButtonProgressSpinnerComponent>\n    implements OnInit {\n    @Input()\n    spinnerButtonLoading = false;\n\n    @Input()\n    spinnerButtonMode: MatProgressSpinner['mode'] = 'indeterminate';\n\n    @Input()\n    spinnerButtonValue: MatProgressSpinner['value'] = 0;\n\n    @Input()\n    spinnerButtonColor: MatProgressSpinner['color'] = 'accent';\n\n    constructor(\n        componentFactory: ComponentFactoryResolver,\n        container: ViewContainerRef,\n        private _renderer: Renderer2,\n    ) {\n        super(\n            UiButtonProgressSpinnerComponent,\n            componentFactory,\n            container,\n        );\n\n        const isRound = this._hasHostAttributes('mdc-fab', 'mdc-icon-button');\n\n        this._loader.isRound$.next(isRound);\n\n        this._registerWatcher('spinnerButtonLoading', this._applyLoading);\n        this._registerWatcher('spinnerButtonMode', this._applyMode);\n        this._registerWatcher('spinnerButtonValue', this._applyValue);\n        this._registerWatcher('spinnerButtonColor', this._applyColor);\n    }\n\n    ngOnInit() {\n        this._initialize();\n\n        this._renderer.addClass(this._buttonElement, SpinnerButtonClass.Base);\n\n        this._renderer.appendChild(\n            this._buttonElement,\n            this._loaderElement,\n        );\n    }\n\n    private _applyColor = () => {\n        this._loader.color$.next(this.spinnerButtonColor);\n    };\n\n    private _applyValue = () => {\n        this._loader.value$.next(this.spinnerButtonValue);\n    };\n\n    private _applyMode = () => {\n        this._loader.mode$.next(this.spinnerButtonMode);\n    };\n\n    private _applyLoading = () => {\n        if (this.spinnerButtonLoading) {\n            this._renderer.addClass(this._buttonElement, SpinnerButtonClass.Loading);\n        } else {\n            this._renderer.removeClass(this._buttonElement, SpinnerButtonClass.Loading);\n        }\n\n        this._loader.loading$.next(this.spinnerButtonLoading);\n    };\n\n    private _hasHostAttributes(...attributes: string[]) {\n        return attributes.some(attribute => this._buttonElement.hasAttribute(attribute));\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { UiButtonProgressSpinnerComponent } from './internal/ui-button-progress-spinner.component';\nimport { UiSpinnerButtonDirective } from './ui-spinner-button.directive';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        MatProgressSpinnerModule,\n    ],\n    declarations: [\n        UiButtonProgressSpinnerComponent,\n        UiSpinnerButtonDirective,\n    ],\n    exports: [\n        UiSpinnerButtonDirective,\n    ],\n})\nexport class UiSpinnerButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}