{"version":3,"file":"uipath-angular-directives-ui-content-loader.mjs","sources":["../../../projects/angular/directives/ui-content-loader/src/internal/ui-content-spinner.component.ts","../../../projects/angular/directives/ui-content-loader/src/internal/ui-content-spinner.component.html","../../../projects/angular/directives/ui-content-loader/src/ui-content-loader.directive.ts","../../../projects/angular/directives/ui-content-loader/src/ui-content-loader.module.ts","../../../projects/angular/directives/ui-content-loader/src/uipath-angular-directives-ui-content-loader.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    HostBinding,\n    OnDestroy,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\n@Component({\n    selector: 'ui-content-spinner',\n    templateUrl: './ui-content-spinner.component.html',\n    styleUrls: ['./ui-content-spinner.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class UiContentSpinnerComponent implements OnDestroy {\n    @HostBinding('style.min-height.px')\n    get minHeight() {\n        return this.diameter$.value * 2.5;\n    }\n\n    mode$ = new BehaviorSubject<MatProgressSpinner['mode']>('indeterminate');\n    value$ = new BehaviorSubject<MatProgressSpinner['value']>(0);\n    color$ = new BehaviorSubject<MatProgressSpinner['color']>('primary');\n    diameter$ = new BehaviorSubject<MatProgressSpinner['diameter']>(100);\n    style$ = this.diameter$\n        .pipe(\n            map(diameter => {\n                const displace = `calc(50% - ${diameter / 2}px)`;\n                return {\n                    top: displace,\n                    left: displace,\n                };\n            }),\n        );\n\n    ngOnDestroy() {\n        this.diameter$.complete();\n        this.mode$.complete();\n        this.value$.complete();\n        this.color$.complete();\n    }\n}\n","<mat-progress-spinner [mode]=\"(mode$ | async) ?? 'indeterminate'\"\n                      [color]=\"color$ | async\"\n                      [value]=\"value$ | async\"\n                      [diameter]=\"diameter$ | async\"\n                      [ngStyle]=\"style$ | async\">\n</mat-progress-spinner>\n","import {\n    BehaviorSubject,\n    Subject,\n} from 'rxjs';\nimport {\n    distinctUntilChanged,\n    filter,\n} from 'rxjs/operators';\n\nimport {\n    ComponentFactoryResolver,\n    ComponentRef,\n    Directive,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    TemplateRef,\n    ViewContainerRef,\n} from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\nimport { UiContentSpinnerComponent } from './internal/ui-content-spinner.component';\n\n@Directive({\n    selector: '[uiContentLoading]',\n})\nexport class UiContentLoaderDirective implements OnInit, OnChanges, OnDestroy {\n    @Input()\n    set uiContentLoading(value: boolean) {\n        this._loading$.next(value);\n    }\n\n    @Input()\n    uiContentLoadingMode?: MatProgressSpinner['mode'];\n\n    @Input()\n    uiContentLoadingDiameter?: MatProgressSpinner['diameter'];\n\n    @Input()\n    uiContentLoadingValue?: MatProgressSpinner['value'];\n\n    @Input()\n    uiContentLoadingColor?: MatProgressSpinner['color'];\n\n    private _spinner?: ComponentRef<UiContentSpinnerComponent>;\n    private _loading$ = new BehaviorSubject<boolean>(false);\n    private _change$ = new Subject<void>();\n\n    constructor(\n        private _resolver: ComponentFactoryResolver,\n        private _ref: TemplateRef<any>,\n        private _container: ViewContainerRef,\n    ) { }\n\n    ngOnInit() {\n        this._loading$\n            .pipe(\n                distinctUntilChanged(),\n            ).subscribe(this._render);\n\n        this._change$\n            .pipe(\n                filter(() => !!this._spinner),\n            ).subscribe(() => this._updateSpinner(this._spinner!.instance));\n    }\n\n    ngOnChanges() {\n        this._change$.next();\n    }\n\n    ngOnDestroy() {\n        this._loading$.complete();\n        this._change$.complete();\n        this._destroySpinner();\n    }\n\n    private _render = (value: boolean) => {\n        this._destroySpinner();\n        this._container.clear();\n\n        if (value) {\n            const factory = this._resolver.resolveComponentFactory(UiContentSpinnerComponent);\n            this._spinner = this._container.createComponent(factory);\n            this._updateSpinner(this._spinner.instance);\n        } else {\n            this._container.createEmbeddedView(this._ref);\n        }\n    };\n\n    private _updateSpinner = (spinner: UiContentSpinnerComponent) => {\n        this._emitIfChanged(spinner.mode$, this.uiContentLoadingMode);\n        this._emitIfChanged(spinner.diameter$, this.uiContentLoadingDiameter);\n        this._emitIfChanged(spinner.color$, this.uiContentLoadingColor);\n        this._emitIfChanged(spinner.value$, this.uiContentLoadingValue);\n    };\n\n    private _emitIfChanged = <T>(\n        source: BehaviorSubject<T>,\n        value?: T,\n    ) => {\n        if (\n            value == null ||\n            value === source.value\n        ) { return; }\n\n        source.next(value);\n    };\n\n    private _destroySpinner = () => {\n        if (!this._spinner) { return; }\n\n        this._spinner.destroy();\n        this._spinner = undefined;\n    };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { UiContentSpinnerComponent } from './internal/ui-content-spinner.component';\nimport { UiContentLoaderDirective } from './ui-content-loader.directive';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        MatProgressSpinnerModule,\n    ],\n    declarations: [\n        UiContentLoaderDirective,\n        UiContentSpinnerComponent,\n    ],\n    exports: [\n        UiContentLoaderDirective,\n    ],\n})\nexport class UiContentLoaderModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}