{"version":3,"file":"aggregations.mjs","sources":["../../../src/querybuilder/aggregations.ts"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/querybuilder/aggregations.ts\nimport {\n  createAggregationOperation,\n  createAggregationOperationWithParam,\n  getPromOperationDisplayName,\n  getRangeVectorParamDef,\n} from './operationUtils';\nimport { addOperationWithRangeVector } from './operations';\nimport { type QueryBuilderOperation, type QueryBuilderOperationDef } from './shared/types';\nimport { PromOperationId, PromVisualQueryOperationCategory } from './types';\n\nexport function getAggregationOperations(): QueryBuilderOperationDef[] {\n  return [\n    ...createAggregationOperation(PromOperationId.Sum),\n    ...createAggregationOperation(PromOperationId.Avg),\n    ...createAggregationOperation(PromOperationId.Min),\n    ...createAggregationOperation(PromOperationId.Max),\n    ...createAggregationOperation(PromOperationId.Count),\n    ...createAggregationOperation(PromOperationId.Group),\n    ...createAggregationOperation(PromOperationId.Stddev),\n    ...createAggregationOperation(PromOperationId.Stdvar),\n    ...createAggregationOperationWithParam(PromOperationId.TopK, {\n      params: [{ name: 'K-value', type: 'number' }],\n      defaultParams: [5],\n    }),\n    ...createAggregationOperationWithParam(PromOperationId.BottomK, {\n      params: [{ name: 'K-value', type: 'number' }],\n      defaultParams: [5],\n    }),\n    ...createAggregationOperationWithParam(PromOperationId.CountValues, {\n      params: [{ name: 'Identifier', type: 'string' }],\n      defaultParams: ['count'],\n    }),\n    ...createAggregationOperationWithParam(PromOperationId.Quantile, {\n      params: [{ name: 'Value', type: 'number' }],\n      defaultParams: [1],\n    }),\n    ...createAggregationOperationWithParam(PromOperationId.LimitK, {\n      params: [{ name: 'K-value', type: 'number' }],\n      defaultParams: [5],\n    }),\n    ...createAggregationOperationWithParam(PromOperationId.LimitRatio, {\n      params: [{ name: 'Ratio', type: 'number' }],\n      defaultParams: [1],\n    }),\n    createAggregationOverTime(PromOperationId.SumOverTime),\n    createAggregationOverTime(PromOperationId.AvgOverTime),\n    createAggregationOverTime(PromOperationId.MinOverTime),\n    createAggregationOverTime(PromOperationId.MaxOverTime),\n    createAggregationOverTime(PromOperationId.CountOverTime),\n    createAggregationOverTime(PromOperationId.LastOverTime),\n    createAggregationOverTime(PromOperationId.PresentOverTime),\n    createAggregationOverTime(PromOperationId.AbsentOverTime),\n    createAggregationOverTime(PromOperationId.StddevOverTime),\n  ];\n}\n\nfunction createAggregationOverTime(name: string): QueryBuilderOperationDef {\n  return {\n    id: name,\n    name: getPromOperationDisplayName(name),\n    params: [getRangeVectorParamDef()],\n    defaultParams: ['$__interval'],\n    alternativesKey: 'overtime function',\n    category: PromVisualQueryOperationCategory.RangeFunctions,\n    renderer: operationWithRangeVectorRenderer,\n    addOperationHandler: addOperationWithRangeVector,\n  };\n}\n\nfunction operationWithRangeVectorRenderer(\n  model: QueryBuilderOperation,\n  def: QueryBuilderOperationDef,\n  innerExpr: string\n) {\n  let rangeVector = (model.params ?? [])[0] ?? '$__interval';\n  return `${def.id}(${innerExpr}[${rangeVector}])`;\n}\n"],"names":[],"mappings":"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"}