UNPKG

ngx-beautiful-charts

Version:
206 lines 15.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; // @Injectable({ // providedIn: BeautifulChartsModule // }) var // @Injectable({ // providedIn: BeautifulChartsModule // }) ClusteredBarChartService = /** @class */ (function () { function ClusteredBarChartService() { } /** * @return {?} */ ClusteredBarChartService.prototype.computeRectDimensions = /** * @return {?} */ function () { this.rectHeight = this.height - this.yPadding * 4; this.rectWidth = this.width * .7 - this.xPadding * 2; }; /** * @return {?} */ ClusteredBarChartService.prototype.computeLegionDimensions = /** * @return {?} */ function () { /** @type {?} */ var noOfLines = this.data.length; this.legionWidth = this.width * .3 - this.xPadding * 2; this.legionHeight = 60 + 30 * noOfLines - 19; }; /** * @param {?} y * @return {?} */ ClusteredBarChartService.prototype.transformY = /** * @param {?} y * @return {?} */ function (y) { return this.rectHeight * y / (this.maxY - this.minY); }; /** * @param {?} factor * @param {?} num * @return {?} */ ClusteredBarChartService.prototype.closestMultipleLessThanEqualTo = /** * @param {?} factor * @param {?} num * @return {?} */ function (factor, num) { if (num % factor === 0) return num; else return this.closestMultipleLessThanEqualTo(factor, num - 1); }; /** * @param {?} factor * @param {?} num * @return {?} */ ClusteredBarChartService.prototype.closestMultipleMoreThanEqualTo = /** * @param {?} factor * @param {?} num * @return {?} */ function (factor, num) { if (num % factor === 0) return num; else return this.closestMultipleMoreThanEqualTo(factor, num + 1); }; /** * @param {?} __0 * @return {?} */ ClusteredBarChartService.prototype.setValues = /** * @param {?} __0 * @return {?} */ function (_a) { var e_1, _b; var componentID = _a.componentID, width = _a.width, height = _a.height, xPadding = _a.xPadding, yPadding = _a.yPadding, data = _a.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 {?} */ var minVals = []; /** @type {?} */ var maxVals = []; minVals = []; maxVals = []; try { for (var _c = tslib_1.__values(this.data), _d = _c.next(); !_d.done; _d = _c.next()) { var bcD = _d.value; /** @type {?} */ var min = Math.min.apply(Math, tslib_1.__spread(bcD.data.map((/** * @param {?} oneData * @return {?} */ function (oneData) { return oneData.value; })))); /** @type {?} */ var max = Math.max.apply(Math, tslib_1.__spread(bcD.data.map((/** * @param {?} oneData * @return {?} */ function (oneData) { return oneData.value; })))); minVals.push(min); maxVals.push(max); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_d && !_d.done && (_b = _c.return)) _b.call(_c); } finally { if (e_1) throw e_1.error; } } /** @type {?} */ var minVal = Math.min.apply(Math, tslib_1.__spread(minVals)); /** @type {?} */ var maxVal = Math.max.apply(Math, tslib_1.__spread(maxVals)); /** @type {?} */ var range = maxVal - minVal; /** @type {?} */ var limInc = 10; /** @type {?} */ var 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 {?} */ ClusteredBarChartService.prototype.printAll = /** * @return {?} */ function () { 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); }; return ClusteredBarChartService; }()); // @Injectable({ // providedIn: BeautifulChartsModule // }) export { ClusteredBarChartService }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3RlcmVkLWJhci1jaGFydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJlYXV0aWZ1bC1jaGFydHMvIiwic291cmNlcyI6WyJsaWIvY2x1c3RlcmVkLWJhci1jaGFydC9jbHVzdGVyZWQtYmFyLWNoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFPQTs7Ozs7SUFpQkU7SUFBZ0IsQ0FBQzs7OztJQUVqQix3REFBcUI7OztJQUFyQjtRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7SUFFRCwwREFBdUI7OztJQUF2Qjs7WUFDUSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDL0MsQ0FBQzs7Ozs7SUFFRCw2Q0FBVTs7OztJQUFWLFVBQVcsQ0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7O0lBRUQsaUVBQThCOzs7OztJQUE5QixVQUErQixNQUFNLEVBQUUsR0FBRztRQUN4QyxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDOztZQUM5QixPQUFPLElBQUks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dCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlYXV0aWZ1bENoYXJ0c01vZHVsZSB9IGZyb20gJy4uL2JlYXV0aWZ1bC1jaGFydHMubW9kdWxlJztcbmltcG9ydCB7IGNvbG9yU2NoZW1lcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb2xvci1zY2hlbWVzJztcblxuLy8gQEluamVjdGFibGUoe1xuLy8gICBwcm92aWRlZEluOiBCZWF1dGlmdWxDaGFydHNNb2R1bGVcbi8vIH0pXG5leHBvcnQgY2xhc3MgQ2x1c3RlcmVkQmFyQ2hhcnRTZXJ2aWNlIHtcblxuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgbWluWTogbnVtYmVyO1xuICBtYXhZOiBudW1iZXI7XG4gIHhQYWRkaW5nOiBudW1iZXI7XG4gIHlQYWRkaW5nOiBudW1iZXI7XG4gIGNvbXBvbmVudElEOiBudW1iZXI7XG4gIGRhdGE6IFt7c2VyaWVzOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcsIGRhdGE6IFt7bmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyIH1dfV07XG5cbiAgcmVjdFdpZHRoOiBudW1iZXI7XG4gIHJlY3RIZWlnaHQ6IG51bWJlcjtcbiAgbGVnaW9uV2lkdGg6IG51bWJlcjtcbiAgbGVnaW9uSGVpZ2h0OiBudW1iZXI7XG4gIGRpZmY6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGNvbXB1dGVSZWN0RGltZW5zaW9ucygpIHtcbiAgICB0aGlzLnJlY3RIZWlnaHQgPSB0aGlzLmhlaWdodCAtIHRoaXMueVBhZGRpbmcgKiA0O1xuICAgIHRoaXMucmVjdFdpZHRoID0gdGhpcy53aWR0aCAqIC43IC0gdGhpcy54UGFkZGluZyAqIDI7XG4gIH1cblxuICBjb21wdXRlTGVnaW9uRGltZW5zaW9ucygpIHtcbiAgICBjb25zdCBub09mTGluZXMgPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgIHRoaXMubGVnaW9uV2lkdGggPSB0aGlzLndpZHRoICogLjMgLSB0aGlzLnhQYWRkaW5nICogMjtcbiAgICB0aGlzLmxlZ2lvbkhlaWdodCA9IDYwICsgMzAgKiBub09mTGluZXMgLSAxOTtcbiAgfVxuXG4gIHRyYW5zZm9ybVkoeTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjdEhlaWdodCAqIHkgLyAodGhpcy5tYXhZIC0gdGhpcy5taW5ZKTtcbiAgfVxuXG4gIGNsb3Nlc3RNdWx0aXBsZUxlc3NUaGFuRXF1YWxUbyhmYWN0b3IsIG51bSkge1xuICAgIGlmIChudW0gJSBmYWN0b3IgPT09IDApIHJldHVybiBudW07XG4gICAgZWxzZSByZXR1cm4gdGhpcy5jbG9zZXN0TXVsdGlwbGVMZXNzVGhhbkVxdWFsVG8oZmFjdG9yLCBudW0gLSAxKTtcbiAgfVxuXG4gIGNsb3Nlc3RNdWx0aXBsZU1vcmVUaGFuRXF1YWxUbyhmYWN0b3IsIG51bSkge1xuICAgIGlmIChudW0gJSBmYWN0b3IgPT09IDApIHJldHVybiBudW07XG4gICAgZWxzZSByZXR1cm4gdGhpcy5jbG9zZXN0TXVsdGlwbGVNb3JlVGhhbkVxdWFsVG8oZmFjdG9yLCBudW0gKyAxKTtcbiAgfVxuXG4gIHNldFZhbHVlcyh7XG4gICAgY29tcG9uZW50SUQ6IGNvbXBvbmVudElELFxuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4UGFkZGluZzogeFBhZGRpbmcsXG4gICAgeVBhZGRpbmc6IHlQYWRkaW5nLFxuICAgIGRhdGE6IGRhdGFcbiAgfSkge1xuICAgIHRoaXMuY29tcG9uZW50SUQgPSBjb21wb25lbnRJRDtcbiAgICB0aGlzLndpZHRoID0gd2lkdGg7XG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgdGhpcy54UGFkZGluZyA9IHhQYWRkaW5nO1xuICAgIHRoaXMueVBhZGRpbmcgPSB5UGFkZGluZztcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIC8vIGNvbnNvbGUubG9nKCdzZXJ2aWNlIGNvbG9yIHNjaGVtZTogJyArIHRoaXMuY29sb3JTY2hlbWUpXG5cbiAgICBsZXQgbWluVmFscyA9IFtdO1xuICAgIGxldCBtYXhWYWxzID0gW107XG4gICAgbWluVmFscyA9IFtdO1xuICAgIG1heFZhbHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJjRCBvZiB0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKC4uLmJjRC5kYXRhLm1hcChvbmVEYXRhID0+IG9uZURhdGEudmFsdWUpKTtcbiAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLmJjRC5kYXRhLm1hcChvbmVEYXRhID0+IG9uZURhdGEudmFsdWUpKTtcbiAgICAgIG1pblZhbHMucHVzaChtaW4pO1xuICAgICAgbWF4VmFscy5wdXNoKG1heCk7XG4gICAgfVxuICAgIGNvbnN0IG1pblZhbCA9IE1hdGgubWluKC4uLm1pblZhbHMpO1xuICAgIGNvbnN0IG1heFZhbCA9IE1hdGgubWF4KC4uLm1heFZhbHMpO1xuICAgIGNvbnN0IHJhbmdlID0gbWF4VmFsIC0gbWluVmFsO1xuXG4gICAgY29uc3QgbGltSW5jID0gMTA7XG4gICAgbGV0IGxpbSA9IDEwO1xuICAgIHRoaXMuZGlmZiA9IDE7XG4gICAgd2hpbGUgKHJhbmdlID4gbGltKSB7XG4gICAgICB0aGlzLmRpZmYrKztcbiAgICAgIGxpbSArPSBsaW1JbmM7XG4gICAgfVxuICAgIHRoaXMubWluWSA9IHRoaXMuY2xvc2VzdE11bHRpcGxlTGVzc1RoYW5FcXVhbFRvKHRoaXMuZGlmZiwgbWluVmFsKTtcbiAgICB0aGlzLm1pblkgPSB0aGlzLm1pblkgLSB0aGlzLmRpZmYgKiAyO1xuICAgIHRoaXMubWF4WSA9IHRoaXMuY2xvc2VzdE11bHRpcGxlTW9yZVRoYW5FcXVhbFRvKHRoaXMuZGlmZiwgbWF4VmFsKTtcbiAgICB0aGlzLm1heFkgPSB0aGlzLm1heFkgKyB0aGlzLmRpZmYgKiAyO1xuXG4gICAgdGhpcy5jb21wdXRlUmVjdERpbWVuc2lvbnMoKTtcbiAgICB0aGlzLmNvbXB1dGVMZWdpb25EaW1lbnNpb25zKCk7XG4gICAgLy8gdGhpcy5wcmludEFsbCgpO1xuICB9XG5cbiAgcHJpbnRBbGwoKSB7XG4gICAgY29uc29sZS5sb2coJ2xpbmUtZ3JhcGgtc2VydmljZScpO1xuICAgIGNvbnNvbGUubG9nKCdjb21wb25lbnQgSUQ6ICcgKyB0aGlzLmNvbXBvbmVudElEKTtcbiAgICBjb25zb2xlLmxvZygnd2lkdGg6ICcgKyB0aGlzLndpZHRoKTtcbiAgICBjb25zb2xlLmxvZygnaGVpZ2h0OiAnICsgdGhpcy5oZWlnaHQpO1xuICAgIGNvbnNvbGUubG9nKCdtaW5ZOiAnICsgdGhpcy5taW5ZKTtcbiAgICBjb25zb2xlLmxvZygnbWF4WTogJyArIHRoaXMubWF4WSk7XG4gICAgY29uc29sZS5sb2coJ3hQYWRkaW5nOiAnICsgdGhpcy54UGFkZGluZyk7XG4gICAgY29uc29sZS5sb2coJ3lQYWRkaW5nOiAnICsgdGhpcy55UGFkZGluZyk7XG4gICAgY29uc29sZS5sb2coJ3JlY3RXaWR0aDogJyArIHRoaXMucmVjdFdpZHRoKTtcbiAgICBjb25zb2xlLmxvZygncmVjdEhlaWdodDogJyArIHRoaXMucmVjdEhlaWdodCk7XG4gIH1cbn1cbiJdfQ==