@covalent/core
Version:
Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.
189 lines (153 loc) • 5.26 kB
Markdown
add the `tdLoading` attribute with a [name] value to the element you want to mask.
Dont forget to add the asterisk syntax before the `tdLoading` directive if its not used in a `<ng-template>` element. More ingo on the asterisk (\*) syntax [here](https://angular.io/guide/structural-directives#asterisk)
## API Summary
#### Inputs
- tdLoading: string
- Name reference of the loading mask, used to register/resolve requests to the mask.
- tdLoadingType?: LoadingType or ["linear" | "circular"]
- Sets the type of loading mask depending on value.
- Defaults to [LoadingType.Circular | "circular"]
- tdLoadingMode?: LoadingMode or ["determinate" | "indeterminate"]
- Sets the mode of loading mask depending on value.
- Defaults to [LoadingMode.Indeterminate | "indeterminate"].
- tdLoadingStrategy?: LoadingStrategy or ["replace" | "overlay"]
- Sets the strategy of loading mask depending on value.
- Defaults to [LoadingMode.Replace | "replace"]
- tdLoadingColor?: "primary" | "accent" | "warn"
- Sets the theme color of the loading component.
- Defaults to "primary"
- tdLoadingUntil?: any
- If its null, undefined or false it will be used to register requests to the mask.
- Else if its any value that can be resolved as true, it will resolve the mask.
- [name] is optional when using [until], but can still be used to register/resolve it manually.
# tdLoadingService
This service is designed to be a factory of loading masks and serves as a facade for their usage.
Simply add this service as a provider to be able to use it in a component.
TdLoadingService.create() method receives as parameter an object that implements the [ITdLoadingConfig] interface.
```typescript
interface ITdLoadingConfig {
name: string;
type?: LoadingType;
mode?: LoadingMode;
color?: 'primary' | 'accent' | 'warn';
}
```
- register: function(name?: string, registers: number = 1)
- Registers a request for the loading mask referenced by the name parameter.
- Can optionally pass registers argument to set a number of register calls.
- If no paramemeters are used, then default main mask will be used
- resolve: function(name?: string, resolves: number = 1)
- Resolves a request for the loading mask referenced by the name parameter.
- Can optionally pass resolves argument to set a number of resolve calls.
- If no paramemeters are used, then default main mask will be used.
- resolveAll: function(name?: string)
- Resolves all requests for the loading mask referenced by the name parameter.
- If no paramemeters are used, then default main mask will be used.
- setValue: function(name: string, value: number)
- Set value on a loading mask referenced by the name parameter.
- Usage only available if its mode is 'determinate'.
- create: function(options: ITdLoadingConfig
- Creates a fullscreen loading mask and attaches it to the DOM with the given configuration.
- Only displayed when the mask has a request registered on it.
Import the [CovalentLoadingModule] in your NgModule:
```typescript
import { CovalentLoadingModule } from '@covalent/core/loading';
@NgModule({
imports: [
CovalentLoadingModule,
...
],
...
})
export class MyModule {}
```
Example for (\*) syntax:
```html
<div
*tdLoading="'stringName'; type:'circular'; mode:'indeterminate'; strategy:'replace'; color:'primary'"
>
...
</div>
```
```typescript
import { TdLoadingService } from '@covalent/core/loading';
...
})
export class Demo {
constructor(private _loadingService: TdLoadingService) {
...
}
registerLoading(): void {
this._loadingService.register('stringName');
}
resolveLoading(): void {
this._loadingService.resolve('stringName');
}
}
```
Exmaple for (\*) until async syntax:
```html
<div
*tdLoading="let item until observable | async; type:'circular'; color:'primary'"
>
{{item}}
</div>
```
Example for `<ng-template>` syntax:
```html
<ng-template
tdLoading="stringName"
tdLoadingType="circular"
tdLoadingMode="indeterminate"
tdLoadingStrategy="replace"
tdLoadingColor="primary"
>
...
</ng-template>
```
```typescript
import { TdLoadingService } from '@covalent/core/loading';
...
})
export class Demo {
constructor(private _loadingService: TdLoadingService) {
...
}
registerLoading(): void {
this._loadingService.register('stringName');
}
resolveLoading(): void {
this._loadingService.resolve('stringName');
}
}
```
Example for `<ng-template>` until syntax:
```html
<ng-template tdLoading [tdLoadingUntil]="boolean"> ... </ng-template>
```
Example creating a global mask with the `tdLoadingService`:
```typescript
import { TdLoadingService, LoadingType, LoadingMode } from '@covalent/core/loading';
...
export class Demo {
constructor(private _loadingService: TdLoadingService) {
this._loadingService.create({
name: 'stringName',
type: LoadingType.Circular,
mode: LoadingMode.Indeterminate,
color: 'accent',
});
}
registerLoading(): void {
this._loadingService.register('stringName');
}
resolveLoading(): void {
this._loadingService.resolve('stringName'); // or this._loadingService.resolveAll('stringName');
}
}
```
Simply