UNPKG

ngx-beautiful-charts

Version:
156 lines 13.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // @Injectable({ // providedIn: BeautifulChartsModule // }) export class ClusteredBarChartService { constructor() { } /** * @return {?} */ computeRectDimensions() { this.rectHeight = this.height - this.yPadding * 4; this.rectWidth = this.width * .7 - this.xPadding * 2; } /** * @return {?} */ computeLegionDimensions() { /** @type {?} */ const noOfLines = this.data.length; this.legionWidth = this.width * .3 - this.xPadding * 2; this.legionHeight = 60 + 30 * noOfLines - 19; } /** * @param {?} y * @return {?} */ transformY(y) { return this.rectHeight * y / (this.maxY - this.minY); } /** * @param {?} factor * @param {?} num * @return {?} */ closestMultipleLessThanEqualTo(factor, num) { if (num % factor === 0) return num; else return this.closestMultipleLessThanEqualTo(factor, num - 1); } /** * @param {?} factor * @param {?} num * @return {?} */ closestMultipleMoreThanEqualTo(factor, num) { if (num % factor === 0) return num; else return this.closestMultipleMoreThanEqualTo(factor, num + 1); } /** * @param {?} __0 * @return {?} */ setValues({ componentID: componentID, width: width, height: height, xPadding: xPadding, yPadding: yPadding, data: data }) { this.componentID = componentID; this.width = width; this.height = height; this.xPadding = xPadding; this.yPadding = yPadding; this.data = data; // console.log('service color scheme: ' + this.colorScheme) /** @type {?} */ let minVals = []; /** @type {?} */ let maxVals = []; minVals = []; maxVals = []; for (const bcD of this.data) { /** @type {?} */ const min = Math.min(...bcD.data.map((/** * @param {?} oneData * @return {?} */ oneData => oneData.value))); /** @type {?} */ const max = Math.max(...bcD.data.map((/** * @param {?} oneData * @return {?} */ oneData => oneData.value))); minVals.push(min); maxVals.push(max); } /** @type {?} */ const minVal = Math.min(...minVals); /** @type {?} */ const maxVal = Math.max(...maxVals); /** @type {?} */ const range = maxVal - minVal; /** @type {?} */ const limInc = 10; /** @type {?} */ let lim = 10; this.diff = 1; while (range > lim) { this.diff++; lim += limInc; } this.minY = this.closestMultipleLessThanEqualTo(this.diff, minVal); this.minY = this.minY - this.diff * 2; this.maxY = this.closestMultipleMoreThanEqualTo(this.diff, maxVal); this.maxY = this.maxY + this.diff * 2; this.computeRectDimensions(); this.computeLegionDimensions(); // this.printAll(); } /** * @return {?} */ printAll() { console.log('line-graph-service'); console.log('component ID: ' + this.componentID); console.log('width: ' + this.width); console.log('height: ' + this.height); console.log('minY: ' + this.minY); console.log('maxY: ' + this.maxY); console.log('xPadding: ' + this.xPadding); console.log('yPadding: ' + this.yPadding); console.log('rectWidth: ' + this.rectWidth); console.log('rectHeight: ' + this.rectHeight); } } if (false) { /** @type {?} */ ClusteredBarChartService.prototype.width; /** @type {?} */ ClusteredBarChartService.prototype.height; /** @type {?} */ ClusteredBarChartService.prototype.minY; /** @type {?} */ ClusteredBarChartService.prototype.maxY; /** @type {?} */ ClusteredBarChartService.prototype.xPadding; /** @type {?} */ ClusteredBarChartService.prototype.yPadding; /** @type {?} */ ClusteredBarChartService.prototype.componentID; /** @type {?} */ ClusteredBarChartService.prototype.data; /** @type {?} */ ClusteredBarChartService.prototype.rectWidth; /** @type {?} */ ClusteredBarChartService.prototype.rectHeight; /** @type {?} */ ClusteredBarChartService.prototype.legionWidth; /** @type {?} */ ClusteredBarChartService.prototype.legionHeight; /** @type {?} */ ClusteredBarChartService.prototype.diff; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3RlcmVkLWJhci1jaGFydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJlYXV0aWZ1bC1jaGFydHMvIiwic291cmNlcyI6WyJsaWIvY2x1c3RlcmVkLWJhci1jaGFydC9jbHVzdGVyZWQtYmFyLWNoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BLE1BQU0sT0FBTyx3QkFBd0I7SUFpQm5DLGdCQUFnQixDQUFDOzs7O0lBRWpCLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7O0lBRUQsdUJBQXVCOztjQUNmLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUMvQyxDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxDQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7SUFFRCw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsR0FBRztRQUN4QyxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDOztZQUM5QixPQUFPLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFN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QixDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7OztJQXJHQyx5Q0FBYzs7SUFDZCwwQ0FBZTs7SUFDZix3Q0FBYTs7SUFDYix3Q0FBYTs7SUFDYiw0Q0FBaUI7O0lBQ2pCLDRDQUFpQjs7SUFDakIsK0NBQW9COztJQUNwQix3Q0FBZ0Y7O0lBRWhGLDZDQUFrQjs7SUFDbEIsOENBQW1COztJQUNuQiwrQ0FBb0I7O0lBQ3BCLGdEQUFxQjs7SUFDckIsd0NBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWF1dGlmdWxDaGFydHNNb2R1bGUgfSBmcm9tICcuLi9iZWF1dGlmdWwtY2hhcnRzLm1vZHVsZSc7XG5pbXBvcnQgeyBjb2xvclNjaGVtZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sb3Itc2NoZW1lcyc7XG5cbi8vIEBJbmplY3RhYmxlKHtcbi8vICAgcHJvdmlkZWRJbjogQmVhdXRpZnVsQ2hhcnRzTW9kdWxlXG4vLyB9KVxuZXhwb3J0IGNsYXNzIENsdXN0ZXJlZEJhckNoYXJ0U2VydmljZSB7XG5cbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG1pblk6IG51bWJlcjtcbiAgbWF4WTogbnVtYmVyO1xuICB4UGFkZGluZzogbnVtYmVyO1xuICB5UGFkZGluZzogbnVtYmVyO1xuICBjb21wb25lbnRJRDogbnVtYmVyO1xuICBkYXRhOiBbe3Nlcmllczogc3RyaW5nLCBjb2xvcjogc3RyaW5nLCBkYXRhOiBbe25hbWU6IHN0cmluZywgdmFsdWU6IG51bWJlciB9XX1dO1xuXG4gIHJlY3RXaWR0aDogbnVtYmVyO1xuICByZWN0SGVpZ2h0OiBudW1iZXI7XG4gIGxlZ2lvbldpZHRoOiBudW1iZXI7XG4gIGxlZ2lvbkhlaWdodDogbnVtYmVyO1xuICBkaWZmOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBjb21wdXRlUmVjdERpbWVuc2lvbnMoKSB7XG4gICAgdGhpcy5yZWN0SGVpZ2h0ID0gdGhpcy5oZWlnaHQgLSB0aGlzLnlQYWRkaW5nICogNDtcbiAgICB0aGlzLnJlY3RXaWR0aCA9IHRoaXMud2lkdGggKiAuNyAtIHRoaXMueFBhZGRpbmcgKiAyO1xuICB9XG5cbiAgY29tcHV0ZUxlZ2lvbkRpbWVuc2lvbnMoKSB7XG4gICAgY29uc3Qgbm9PZkxpbmVzID0gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICB0aGlzLmxlZ2lvbldpZHRoID0gdGhpcy53aWR0aCAqIC4zIC0gdGhpcy54UGFkZGluZyAqIDI7XG4gICAgdGhpcy5sZWdpb25IZWlnaHQgPSA2MCArIDMwICogbm9PZkxpbmVzIC0gMTk7XG4gIH1cblxuICB0cmFuc2Zvcm1ZKHk6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnJlY3RIZWlnaHQgKiB5IC8gKHRoaXMubWF4WSAtIHRoaXMubWluWSk7XG4gIH1cblxuICBjbG9zZXN0TXVsdGlwbGVMZXNzVGhhbkVxdWFsVG8oZmFjdG9yLCBudW0pIHtcbiAgICBpZiAobnVtICUgZmFjdG9yID09PSAwKSByZXR1cm4gbnVtO1xuICAgIGVsc2UgcmV0dXJuIHRoaXMuY2xvc2VzdE11bHRpcGxlTGVzc1RoYW5FcXVhbFRvKGZhY3RvciwgbnVtIC0gMSk7XG4gIH1cblxuICBjbG9zZXN0TXVsdGlwbGVNb3JlVGhhbkVxdWFsVG8oZmFjdG9yLCBudW0pIHtcbiAgICBpZiAobnVtICUgZmFjdG9yID09PSAwKSByZXR1cm4gbnVtO1xuICAgIGVsc2UgcmV0dXJuIHRoaXMuY2xvc2VzdE11bHRpcGxlTW9yZVRoYW5FcXVhbFRvKGZhY3RvciwgbnVtICsgMSk7XG4gIH1cblxuICBzZXRWYWx1ZXMoe1xuICAgIGNvbXBvbmVudElEOiBjb21wb25lbnRJRCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgeFBhZGRpbmc6IHhQYWRkaW5nLFxuICAgIHlQYWRkaW5nOiB5UGFkZGluZyxcbiAgICBkYXRhOiBkYXRhXG4gIH0pIHtcbiAgICB0aGlzLmNvbXBvbmVudElEID0gY29tcG9uZW50SUQ7XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoO1xuICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIHRoaXMueFBhZGRpbmcgPSB4UGFkZGluZztcbiAgICB0aGlzLnlQYWRkaW5nID0geVBhZGRpbmc7XG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICAvLyBjb25zb2xlLmxvZygnc2VydmljZSBjb2xvciBzY2hlbWU6ICcgKyB0aGlzLmNvbG9yU2NoZW1lKVxuXG4gICAgbGV0IG1pblZhbHMgPSBbXTtcbiAgICBsZXQgbWF4VmFscyA9IFtdO1xuICAgIG1pblZhbHMgPSBbXTtcbiAgICBtYXhWYWxzID0gW107XG4gICAgZm9yIChjb25zdCBiY0Qgb2YgdGhpcy5kYXRhKSB7XG4gICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi5iY0QuZGF0YS5tYXAob25lRGF0YSA9PiBvbmVEYXRhLnZhbHVlKSk7XG4gICAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi5iY0QuZGF0YS5tYXAob25lRGF0YSA9PiBvbmVEYXRhLnZhbHVlKSk7XG4gICAgICBtaW5WYWxzLnB1c2gobWluKTtcbiAgICAgIG1heFZhbHMucHVzaChtYXgpO1xuICAgIH1cbiAgICBjb25zdCBtaW5WYWwgPSBNYXRoLm1pbiguLi5taW5WYWxzKTtcbiAgICBjb25zdCBtYXhWYWwgPSBNYXRoLm1heCguLi5tYXhWYWxzKTtcbiAgICBjb25zdCByYW5nZSA9IG1heFZhbCAtIG1pblZhbDtcblxuICAgIGNvbnN0IGxpbUluYyA9IDEwO1xuICAgIGxldCBsaW0gPSAxMDtcbiAgICB0aGlzLmRpZmYgPSAxO1xuICAgIHdoaWxlIChyYW5nZSA+IGxpbSkge1xuICAgICAgdGhpcy5kaWZmKys7XG4gICAgICBsaW0gKz0gbGltSW5jO1xuICAgIH1cbiAgICB0aGlzLm1pblkgPSB0aGlzLmNsb3Nlc3RNdWx0aXBsZUxlc3NUaGFuRXF1YWxUbyh0aGlzLmRpZmYsIG1pblZhbCk7XG4gICAgdGhpcy5taW5ZID0gdGhpcy5taW5ZIC0gdGhpcy5kaWZmICogMjtcbiAgICB0aGlzLm1heFkgPSB0aGlzLmNsb3Nlc3RNdWx0aXBsZU1vcmVUaGFuRXF1YWxUbyh0aGlzLmRpZmYsIG1heFZhbCk7XG4gICAgdGhpcy5tYXhZID0gdGhpcy5tYXhZICsgdGhpcy5kaWZmICogMjtcblxuICAgIHRoaXMuY29tcHV0ZVJlY3REaW1lbnNpb25zKCk7XG4gICAgdGhpcy5jb21wdXRlTGVnaW9uRGltZW5zaW9ucygpO1xuICAgIC8vIHRoaXMucHJpbnRBbGwoKTtcbiAgfVxuXG4gIHByaW50QWxsKCkge1xuICAgIGNvbnNvbGUubG9nKCdsaW5lLWdyYXBoLXNlcnZpY2UnKTtcbiAgICBjb25zb2xlLmxvZygnY29tcG9uZW50IElEOiAnICsgdGhpcy5jb21wb25lbnRJRCk7XG4gICAgY29uc29sZS5sb2coJ3dpZHRoOiAnICsgdGhpcy53aWR0aCk7XG4gICAgY29uc29sZS5sb2coJ2hlaWdodDogJyArIHRoaXMuaGVpZ2h0KTtcbiAgICBjb25zb2xlLmxvZygnbWluWTogJyArIHRoaXMubWluWSk7XG4gICAgY29uc29sZS5sb2coJ21heFk6ICcgKyB0aGlzLm1heFkpO1xuICAgIGNvbnNvbGUubG9nKCd4UGFkZGluZzogJyArIHRoaXMueFBhZGRpbmcpO1xuICAgIGNvbnNvbGUubG9nKCd5UGFkZGluZzogJyArIHRoaXMueVBhZGRpbmcpO1xuICAgIGNvbnNvbGUubG9nKCdyZWN0V2lkdGg6ICcgKyB0aGlzLnJlY3RXaWR0aCk7XG4gICAgY29uc29sZS5sb2coJ3JlY3RIZWlnaHQ6ICcgKyB0aGlzLnJlY3RIZWlnaHQpO1xuICB9XG59XG4iXX0=