vix-ui
Version:
77 lines • 5.66 kB
JavaScript
/**
* @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=