UNPKG

vix-ui

Version:

77 lines 5.66 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Component, Input } from '@angular/core'; export class DeltaComponent { constructor() { this.first = 0; this.second = 0; this.decimalPts = 4; this.diff = '0'; this.color = 'neutral'; } /** * @return {?} */ ngOnInit() { // Decimal pts must be between 0-8 inclusive this.decimalPts = Math.min(Math.max(this.decimalPts, 0), 8); this.computeDelta(); } /** * @return {?} */ ngOnChanges() { this.computeDelta(); } /** * @return {?} */ computeDelta() { if (this.first === 0 || !+this.first || !+this.second) { this.diff = '-'; this.color = 'none'; } else { /** @type {?} */ const multiplier = Math.pow(10, this.decimalPts); /** @type {?} */ const diff = Math.floor((this.second - this.first) / this.first * multiplier * 100) / multiplier; if (diff > 0) { this.diff = `+${diff}%`; this.color = 'increase'; } else if (diff < 0) { this.diff = `${diff}%`; this.color = 'decrease'; } } } } DeltaComponent.decorators = [ { type: Component, args: [{ selector: 'vix-delta', template: "<span class=\"color-{{ color }}\">{{ diff }}</span>\n", styles: [".color-neutral{color:#000}.color-increase{color:green}.color-decrease{color:red}.color-none{color:gray}"] }] } ]; DeltaComponent.ctorParameters = () => []; DeltaComponent.propDecorators = { first: [{ type: Input }], second: [{ type: Input }], decimalPts: [{ type: Input }] }; if (false) { /** @type {?} */ DeltaComponent.prototype.first; /** @type {?} */ DeltaComponent.prototype.second; /** @type {?} */ DeltaComponent.prototype.decimalPts; /** @type {?} */ DeltaComponent.prototype.diff; /** @type {?} */ DeltaComponent.prototype.color; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdml4LXVpLyIsInNvdXJjZXMiOlsidml4LXBlcmZvcm1hbmNlLXN0YXRzL2RlbHRhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBT3BFLE1BQU07SUFRSjtRQU5TLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUN4QixTQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ1gsVUFBSyxHQUFHLFNBQVMsQ0FBQztJQUVILENBQUM7Ozs7SUFFaEIsUUFBUTtRQUNOLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7O0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7U0FDckI7YUFBTTs7a0JBQ0MsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7O2tCQUMxQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLFVBQVU7WUFDaEcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7YUFDekI7aUJBQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO2FBQ3pCO1NBQ0Y7SUFDSCxDQUFDOzs7WUF4Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixpRUFBcUM7O2FBRXRDOzs7O29CQUdFLEtBQUs7cUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzs7O0lBRk4sK0JBQW1COztJQUNuQixnQ0FBb0I7O0lBQ3BCLG9DQUF3Qjs7SUFDeEIsOEJBQVc7O0lBQ1gsK0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndml4LWRlbHRhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlbHRhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVsdGEuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVsdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgZmlyc3QgPSAwO1xuICBASW5wdXQoKSBzZWNvbmQgPSAwO1xuICBASW5wdXQoKSBkZWNpbWFsUHRzID0gNDtcbiAgZGlmZiA9ICcwJztcbiAgY29sb3IgPSAnbmV1dHJhbCc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIERlY2ltYWwgcHRzIG11c3QgYmUgYmV0d2VlbiAwLTggaW5jbHVzaXZlXG4gICAgdGhpcy5kZWNpbWFsUHRzID0gTWF0aC5taW4oTWF0aC5tYXgodGhpcy5kZWNpbWFsUHRzLCAwKSwgOCk7XG4gICAgdGhpcy5jb21wdXRlRGVsdGEoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuY29tcHV0ZURlbHRhKCk7XG4gIH1cblxuICBjb21wdXRlRGVsdGEoKSB7XG4gICAgaWYgKHRoaXMuZmlyc3QgPT09IDAgfHwgISt0aGlzLmZpcnN0IHx8ICErdGhpcy5zZWNvbmQpIHtcbiAgICAgIHRoaXMuZGlmZiA9ICctJztcbiAgICAgIHRoaXMuY29sb3IgPSAnbm9uZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG11bHRpcGxpZXIgPSBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUHRzKTtcbiAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLmZsb29yKCh0aGlzLnNlY29uZCAtIHRoaXMuZmlyc3QpIC8gdGhpcy5maXJzdCAqIG11bHRpcGxpZXIgKiAxMDApIC8gbXVsdGlwbGllcjtcbiAgICAgIGlmIChkaWZmID4gMCkge1xuICAgICAgICB0aGlzLmRpZmYgPSBgKyR7ZGlmZn0lYDtcbiAgICAgICAgdGhpcy5jb2xvciA9ICdpbmNyZWFzZSc7XG4gICAgICB9IGVsc2UgaWYgKGRpZmYgPCAwKSB7XG4gICAgICAgIHRoaXMuZGlmZiA9IGAke2RpZmZ9JWA7XG4gICAgICAgIHRoaXMuY29sb3IgPSAnZGVjcmVhc2UnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=