An open API service indexing awesome lists of open source software.

https://github.com/yiqu/ng-busy-watch

⏱️ NgBusyWatch is used for displaying a loading indicator for a long-lived Observable or boolean. Unlike other busy libraries, NgBusyWatch will not wait till the Observable to complete, instead NgBusyWatch will watch the long-lived Observable's value and show the loading indicator as long as the value is ever truthy.
https://github.com/yiqu/ng-busy-watch

angular angularbusy angularloading busy directive loadingmask loadmask ng ngbusy

Last synced: about 1 month ago
JSON representation

⏱️ NgBusyWatch is used for displaying a loading indicator for a long-lived Observable or boolean. Unlike other busy libraries, NgBusyWatch will not wait till the Observable to complete, instead NgBusyWatch will watch the long-lived Observable's value and show the loading indicator as long as the value is ever truthy.

Awesome Lists containing this project

README

          


NgBusy Watch


ng-busy-watch





npm


travisci


codecov





DEMO: https://yiqu.github.io/ng-busy-watch/

## Features

- Works for long-lived Observables. Loading indicator will be shown when value is evaluated to `true`, hide if `false`.
- Will also take in a simple boolean value.
- Customizable loading message.
- Add your own CSS class to customize colors and background of loading indicator.

## Dependencies

Latest version available for each version of Angular

| ngx-busy-watch | Angular |
| ---------- | ----------- |
| 13.x.x | 13.x.x |
| 10.x.x | < 13.x.x |

## Install

```bash
npm install ng-busy-watch --save
```

## Usage

Using ng-busy-watch with `Subjects`:

```typescript
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
private busySubject: BehaviorSubject = new BehaviorSubject(false);
public busy$ = this.overAllBusyIndicator.asObservable();
}
```

```html



...


```

Using ng-busy-watch with NgRx `selectors`:

```typescript
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
public loading$ = this.store.select(fromSelectors.isLoading);
constructor(private store: Store) {
}
}
```

```html



...


```

Using ng-busy-watch with `Boolean`:

```typescript
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
public loading: boolean = true;
}
```

```html



...


```

## Customizable Global Options
| Option | Type | Default | Description |
| ----------------------- | ------- | ---------------------------------- | ------------------------------------------------------------------ |
| extraCssClass | string | empty | Extra CSS class for loading indicator |
| message | string | Please wait... | Loading indicator text |
| showSpinner | boolean | true | Whether to show loading animation SVG |

### Setting Global Options

Pass values to `NgBusyWatchModule.forRoot()`

```typescript
// root app NgModule
imports: [
NgBusyWatchModule.forRoot({
extraCssClass: 'cool-css-class',
message: 'Loading..',
showSpinner: true
}),
],
```

Or just leave it as `NgBusyWatchModule` to use its default values.

```typescript
// root app NgModule
imports: [
NgBusyWatchModule
],