src/skeleton/skeleton-text.component.ts
OnChanges
selector | cds-skeleton-text, ibm-skeleton-text |
template |
|
Properties |
Methods |
Inputs |
lines | |
Type : number
|
|
Default value : 5
|
|
Defined in src/skeleton/skeleton-text.component.ts:14
|
maxLineWidth | |
Type : number
|
|
Default value : 300
|
|
Defined in src/skeleton/skeleton-text.component.ts:18
|
minLineWidth | |
Type : number
|
|
Default value : 100
|
|
Defined in src/skeleton/skeleton-text.component.ts:16
|
getRandomInt | ||||||
getRandomInt(min, max)
|
||||||
Defined in src/skeleton/skeleton-text.component.ts:25
|
||||||
Returns a random width in pixels based off a min width, and a max width.
Parameters :
Returns :
string
|
ngOnChanges |
ngOnChanges()
|
Defined in src/skeleton/skeleton-text.component.ts:29
|
Returns :
void
|
lineWidths |
Type : Array<string>
|
Defined in src/skeleton/skeleton-text.component.ts:20
|
import { Component, Input, OnChanges } from "@angular/core";
@Component({
selector: "cds-skeleton-text, ibm-skeleton-text",
template: `
<p
*ngFor="let width of lineWidths"
class="cds--skeleton__text"
[style.width]="width">
</p>
`
})
export class SkeletonText implements OnChanges {
@Input() lines = 5;
@Input() minLineWidth = 100;
@Input() maxLineWidth = 300;
lineWidths: Array<string>;
/**
* Returns a random width in pixels based off a min width, and a max width.
*/
getRandomInt(min, max) {
return `${Math.floor(Math.random() * (max - min + 1) + min) + "px"}`;
}
ngOnChanges() {
// Creates an array of length defined by input lines with content from
// 0 to lines - 1, maps each value to a random width in pixels.
this.lineWidths =
Array.from(Array(this.lines).keys())
.map(num => this.getRandomInt(this.minLineWidth, this.maxLineWidth));
}
}