@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
133 lines • 11.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, Input, ViewChild, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, } from '@angular/core';
import { take } from 'rxjs/operators';
import { LazyLoadScriptService } from '@ngx-performance-ui/core';
// https://developers.google.com/chart/interactive/docs/
var GoogleChartComponent = /** @class */ (function () {
function GoogleChartComponent(lazyLoadScriptService) {
var _this = this;
this.lazyLoadScriptService = lazyLoadScriptService;
this.chartType = 'AreaChart';
this.style = { width: '100%', height: 'auto' };
this.containerClasses = '';
this.drawFn = (/**
* @param {?} _
* @return {?}
*/
function (_) {
if (_this.dataTable && _this.dataTable.length) {
_this.data = google.visualization.arrayToDataTable(_this.dataTable);
}
else if (_this.columns && _this.columns.length && _this.rows && _this.rows.length) {
_this.data = new google.visualization.DataTable();
_this.columns.forEach((/**
* @param {?} column
* @return {?}
*/
function (column) { return _this.data.addColumn(column.type, column.label); }));
_this.data.addRows(_this.rows);
}
else {
console.error('Must set datatable or columns and rows inputs');
return;
}
_this.chart = new google.visualization[_this.chartType](_this.chartContainer.nativeElement);
_this.chart.draw(_this.data, _this.options);
_this.ready.emit();
});
this.ready = new EventEmitter();
}
Object.defineProperty(GoogleChartComponent.prototype, "packages", {
get: /**
* @return {?}
*/
function () {
if (this.chartType === 'AnnotationChart')
return [this.chartType.toLowerCase()];
return ['corechart'];
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
GoogleChartComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
this.lazyLoadScriptService
.loadScript('https://www.gstatic.com/charts/loader.js')
.pipe(take(1))
.subscribe((/**
* @param {?} _
* @return {?}
*/
function (_) {
google.charts.load('current', { packages: _this.packages });
google.charts.setOnLoadCallback(_this.drawFn);
}));
};
GoogleChartComponent.decorators = [
{ type: Component, args: [{
selector: 'p-google-chart',
template: "\n <div #chartContainer class=\"{{ containerClasses }}\" [ngStyle]=\"style\"></div>\n ",
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
GoogleChartComponent.ctorParameters = function () { return [
{ type: LazyLoadScriptService }
]; };
GoogleChartComponent.propDecorators = {
chartType: [{ type: Input }],
dataTable: [{ type: Input }],
columns: [{ type: Input }],
rows: [{ type: Input }],
options: [{ type: Input }],
style: [{ type: Input }],
containerClasses: [{ type: Input }],
drawFn: [{ type: Input }],
ready: [{ type: Output }],
chartContainer: [{ type: ViewChild, args: ['chartContainer',] }]
};
return GoogleChartComponent;
}());
export { GoogleChartComponent };
if (false) {
/** @type {?} */
GoogleChartComponent.prototype.chartType;
/** @type {?} */
GoogleChartComponent.prototype.dataTable;
/** @type {?} */
GoogleChartComponent.prototype.columns;
/** @type {?} */
GoogleChartComponent.prototype.rows;
/** @type {?} */
GoogleChartComponent.prototype.options;
/** @type {?} */
GoogleChartComponent.prototype.style;
/** @type {?} */
GoogleChartComponent.prototype.containerClasses;
/** @type {?} */
GoogleChartComponent.prototype.drawFn;
/** @type {?} */
GoogleChartComponent.prototype.ready;
/** @type {?} */
GoogleChartComponent.prototype.chartContainer;
/** @type {?} */
GoogleChartComponent.prototype.chart;
/** @type {?} */
GoogleChartComponent.prototype.data;
/**
* @type {?}
* @private
*/
GoogleChartComponent.prototype.lazyLoadScriptService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtcGVyZm9ybWFuY2UtdWkvdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9nb29nbGUtY2hhcnQvZ29vZ2xlLWNoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUN2QixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUtqRTtJQWdFRSw4QkFBb0IscUJBQTRDO1FBQWhFLGlCQUFvRTtRQUFoRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBdERoRSxjQUFTLEdBQW9DLFdBQVcsQ0FBQztRQWV6RCxVQUFLLEdBQXVDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFHOUUscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRzlCLFdBQU07Ozs7UUFBRyxVQUFBLENBQUM7WUFDUixJQUFJLEtBQUksQ0FBQyxTQUFTLElBQUksS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNDLEtBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDbkU7aUJBQU0sSUFBSSxLQUFJLENBQUMsT0FBTyxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUksQ0FBQyxJQUFJLElBQUksS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQy9FLEtBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxLQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxLQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBOUMsQ0FBOEMsRUFBQyxDQUFDO2dCQUMvRSxLQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO2dCQUMvRCxPQUFPO2FBQ1I7WUFFRCxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RixLQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxFQUFFLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6QyxLQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBQztRQUdGLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBY2tDLENBQUM7SUFOcEUsc0JBQUksMENBQVE7Ozs7UUFBWjtZQUNFLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxpQkFBaUI7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUVoRixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7Ozs7SUFJRCw4Q0FBZTs7O0lBQWY7UUFBQSxpQkFRQztRQVBDLElBQUksQ0FBQyxxQkFBcUI7YUFDdkIsVUFBVSxDQUFDLDBDQUEwQyxDQUFDO2FBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTOzs7O1FBQUMsVUFBQSxDQUFDO1lBQ1YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0JBMUVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsNEZBRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7OztnQkFaUSxxQkFBcUI7Ozs0QkFjM0IsS0FBSzs0QkFHTCxLQUFLOzBCQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxLQUFLO3dCQUdMLEtBQUs7bUNBR0wsS0FBSzt5QkFHTCxLQUFLO3dCQW1CTCxNQUFNO2lDQUdOLFNBQVMsU0FBQyxnQkFBZ0I7O0lBdUI3QiwyQkFBQztDQUFBLEFBM0VELElBMkVDO1NBbkVZLG9CQUFvQjs7O0lBQy9CLHlDQUN5RDs7SUFFekQseUNBQ2lCOztJQUVqQix1Q0FDOEI7O0lBRTlCLG9DQUNtQjs7SUFFbkIsdUNBQ3NDOztJQUV0QyxxQ0FDOEU7O0lBRTlFLGdEQUM4Qjs7SUFFOUIsc0NBaUJFOztJQUVGLHFDQUNpQzs7SUFFakMsOENBQXdEOztJQUV4RCxxQ0FBa0I7O0lBRWxCLG9DQUFpQjs7Ozs7SUFRTCxxREFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdvb2dsZUNoYXJ0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IExhenlMb2FkU2NyaXB0U2VydmljZSB9IGZyb20gJ0BuZ3gtcGVyZm9ybWFuY2UtdWkvY29yZSc7XG5cbmRlY2xhcmUgdmFyIGdvb2dsZTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vY2hhcnQvaW50ZXJhY3RpdmUvZG9jcy9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZ29vZ2xlLWNoYXJ0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICNjaGFydENvbnRhaW5lciBjbGFzcz1cInt7IGNvbnRhaW5lckNsYXNzZXMgfX1cIiBbbmdTdHlsZV09XCJzdHlsZVwiPjwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KClcbiAgY2hhcnRUeXBlOiAnQW5ub3RhdGlvbkNoYXJ0JyB8ICdBcmVhQ2hhcnQnID0gJ0FyZWFDaGFydCc7XG5cbiAgQElucHV0KClcbiAgZGF0YVRhYmxlOiBhbnlbXTtcblxuICBASW5wdXQoKVxuICBjb2x1bW5zOiBHb29nbGVDaGFydC5Db2x1bW5bXTtcblxuICBASW5wdXQoKVxuICByb3dzOiBBcnJheTxhbnlbXT47XG5cbiAgQElucHV0KClcbiAgb3B0aW9uczogR29vZ2xlQ2hhcnQuQW5ub3RhdGlvbk9wdGlvbjtcblxuICBASW5wdXQoKVxuICBzdHlsZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSA9IHsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnYXV0bycgfTtcblxuICBASW5wdXQoKVxuICBjb250YWluZXJDbGFzc2VzOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBkcmF3Rm4gPSBfID0+IHtcbiAgICBpZiAodGhpcy5kYXRhVGFibGUgJiYgdGhpcy5kYXRhVGFibGUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmRhdGEgPSBnb29nbGUudmlzdWFsaXphdGlvbi5hcnJheVRvRGF0YVRhYmxlKHRoaXMuZGF0YVRhYmxlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29sdW1ucyAmJiB0aGlzLmNvbHVtbnMubGVuZ3RoICYmIHRoaXMucm93cyAmJiB0aGlzLnJvd3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLmRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7XG4gICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4gdGhpcy5kYXRhLmFkZENvbHVtbihjb2x1bW4udHlwZSwgY29sdW1uLmxhYmVsKSk7XG4gICAgICB0aGlzLmRhdGEuYWRkUm93cyh0aGlzLnJvd3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNdXN0IHNldCBkYXRhdGFibGUgb3IgY29sdW1ucyBhbmQgcm93cyBpbnB1dHMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uW3RoaXMuY2hhcnRUeXBlXSh0aGlzLmNoYXJ0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuY2hhcnQuZHJhdyh0aGlzLmRhdGEsIHRoaXMub3B0aW9ucyk7XG5cbiAgICB0aGlzLnJlYWR5LmVtaXQoKTtcbiAgfTtcblxuICBAT3V0cHV0KClcbiAgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgY2hhcnQ6IGFueTtcblxuICBwdWJsaWMgZGF0YTogYW55O1xuXG4gIGdldCBwYWNrYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuY2hhcnRUeXBlID09PSAnQW5ub3RhdGlvbkNoYXJ0JykgcmV0dXJuIFt0aGlzLmNoYXJ0VHlwZS50b0xvd2VyQ2FzZSgpXTtcblxuICAgIHJldHVybiBbJ2NvcmVjaGFydCddO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXp5TG9hZFNjcmlwdFNlcnZpY2U6IExhenlMb2FkU2NyaXB0U2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5sYXp5TG9hZFNjcmlwdFNlcnZpY2VcbiAgICAgIC5sb2FkU2NyaXB0KCdodHRwczovL3d3dy5nc3RhdGljLmNvbS9jaGFydHMvbG9hZGVyLmpzJylcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICBnb29nbGUuY2hhcnRzLmxvYWQoJ2N1cnJlbnQnLCB7IHBhY2thZ2VzOiB0aGlzLnBhY2thZ2VzIH0pO1xuICAgICAgICBnb29nbGUuY2hhcnRzLnNldE9uTG9hZENhbGxiYWNrKHRoaXMuZHJhd0ZuKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=