1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { SqlPartDef, SqlPart } from 'app/angular/components/sql_part/sql_part';
- const index: any[] = [];
- function createPart(part: any): any {
- const def = index[part.type];
- if (!def) {
- return null;
- }
- return new SqlPart(part, def);
- }
- function register(options: any) {
- index[options.type] = new SqlPartDef(options);
- }
- register({
- type: 'column',
- style: 'label',
- params: [{ type: 'column', dynamicLookup: true }],
- defaultParams: ['value'],
- });
- register({
- type: 'expression',
- style: 'expression',
- label: 'Expr:',
- params: [
- { name: 'left', type: 'string', dynamicLookup: true },
- { name: 'op', type: 'string', dynamicLookup: true },
- { name: 'right', type: 'string', dynamicLookup: true },
- ],
- defaultParams: ['value', '=', 'value'],
- });
- register({
- type: 'macro',
- style: 'label',
- label: 'Macro:',
- params: [],
- defaultParams: [],
- });
- register({
- type: 'aggregate',
- style: 'label',
- params: [
- {
- name: 'name',
- type: 'string',
- options: ['avg', 'count', 'min', 'max', 'sum', 'stddev', 'variance'],
- },
- ],
- defaultParams: ['avg'],
- });
- register({
- type: 'alias',
- style: 'label',
- params: [{ name: 'name', type: 'string', quote: 'double' }],
- defaultParams: ['alias'],
- });
- register({
- type: 'time',
- style: 'function',
- label: 'time',
- params: [
- {
- name: 'interval',
- type: 'interval',
- options: ['$__interval', '1s', '10s', '1m', '5m', '10m', '15m', '1h'],
- },
- {
- name: 'fill',
- type: 'string',
- options: ['none', 'NULL', 'previous', '0'],
- },
- ],
- defaultParams: ['$__interval', 'none'],
- });
- export default {
- create: createPart,
- };
|