in src/panels/table.ts [35:101]
constructor(opts: TableOptions = {}) {
const defaults: GrafanaTablePanel = {
title: 'Panel Title',
error: false,
span: 12,
editable: true,
type: 'table',
isNew: true,
id: generateGraphId(),
styles: [
{
type: 'date',
pattern: 'Time',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
},
{
unit: 'short',
type: 'number',
decimals: 0,
colors: [
'rgba(245, 54, 54, 0.9)',
'rgba(237, 129, 40, 0.89)',
'rgba(50, 172, 45, 0.97)',
],
colorMode: null,
pattern: '/.*/',
thresholds: [],
},
],
targets: [],
transform: 'timeseries_aggregations',
pageSize: null,
showHeader: true,
columns: [
{
text: 'Avg',
value: 'avg',
},
],
scroll: true,
fontSize: '100%',
sort: {
col: 0,
desc: true,
},
links: [],
};
this.state = defaults;
// Overwrite defaults with custom values
Object.keys(opts).forEach((opt) => {
this.state[opt] = opts[opt];
});
if (opts.targets) {
this.state.targets = [];
opts.targets.forEach((target) => {
this.addTarget(target);
});
}
// finally add to row/dashboard if given
if (opts.row && opts.dashboard) {
opts.row.addPanel(this);
opts.dashboard.addRow(opts.row);
}
}