constructor()

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);
        }
    }