{"version":3,"file":"PromQueryModellerBase.cjs","sources":["../../../../src/querybuilder/shared/PromQueryModellerBase.ts"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/querybuilder/shared/LokiAndPromQueryModellerBase.ts\nimport { Registry } from '@grafana/data';\n\nimport { renderLabels } from './rendering/labels';\nimport { hasBinaryOp, renderOperations } from './rendering/operations';\nimport { renderQuery, renderBinaryQueries } from './rendering/query';\nimport {\n  type PrometheusVisualQuery,\n  type QueryBuilderLabelFilter,\n  type QueryBuilderOperation,\n  type QueryBuilderOperationDef,\n  type VisualQueryBinary,\n  type VisualQueryModeller,\n} from './types';\n\nexport abstract class PromQueryModellerBase implements VisualQueryModeller {\n  protected operationsRegistry: Registry<QueryBuilderOperationDef>;\n  private categories: string[] = [];\n  private operationsMapCache: Map<string, QueryBuilderOperationDef> | null = null;\n\n  constructor(getOperations: () => QueryBuilderOperationDef[]) {\n    this.operationsRegistry = new Registry<QueryBuilderOperationDef>(getOperations);\n  }\n\n  private getOperationsMap(): Map<string, QueryBuilderOperationDef> {\n    if (!this.operationsMapCache) {\n      this.operationsMapCache = new Map<string, QueryBuilderOperationDef>();\n      this.operationsRegistry.list().forEach((op) => {\n        this.operationsMapCache!.set(op.id, op);\n      });\n    }\n    return this.operationsMapCache;\n  }\n\n  protected setOperationCategories(categories: string[]) {\n    this.categories = categories;\n  }\n\n  getOperationsForCategory(category: string) {\n    return this.operationsRegistry.list().filter((op) => op.category === category && !op.hideFromList);\n  }\n\n  getAlternativeOperations(key: string) {\n    return this.operationsRegistry.list().filter((op) => op.alternativesKey && op.alternativesKey === key);\n  }\n\n  getCategories() {\n    return this.categories;\n  }\n\n  getOperationDef(id: string): QueryBuilderOperationDef | undefined {\n    return this.operationsRegistry.getIfExists(id);\n  }\n\n  renderOperations(queryString: string, operations: QueryBuilderOperation[]) {\n    return renderOperations(queryString, operations, this.getOperationsMap());\n  }\n\n  renderBinaryQueries(queryString: string, binaryQueries?: Array<VisualQueryBinary<PrometheusVisualQuery>>) {\n    return renderBinaryQueries(queryString, binaryQueries);\n  }\n\n  renderLabels(labels: QueryBuilderLabelFilter[]) {\n    return renderLabels(labels);\n  }\n\n  renderQuery(query: PrometheusVisualQuery, nested?: boolean) {\n    return renderQuery(query, nested, this.getOperationsMap());\n  }\n\n  hasBinaryOp(query: PrometheusVisualQuery): boolean {\n    return hasBinaryOp(query, this.getOperationsMap());\n  }\n}\n"],"names":["Registry","operations","renderOperations","renderBinaryQueries","labels","renderLabels","query","renderQuery","hasBinaryOp"],"mappings":";;;;;;;;;;AAeO,MAAe,qBAAA,CAAqD;AAAA,EAKzE,YAAY,aAAA,EAAiD;AAH7D,IAAA,IAAA,CAAQ,aAAuB,EAAC;AAChC,IAAA,IAAA,CAAQ,kBAAA,GAAmE,IAAA;AAGzE,IAAA,IAAA,CAAK,kBAAA,GAAqB,IAAIA,aAAA,CAAmC,aAAa,CAAA;AAAA,EAChF;AAAA,EAEQ,gBAAA,GAA0D;AAChE,IAAA,IAAI,CAAC,KAAK,kBAAA,EAAoB;AAC5B,MAAA,IAAA,CAAK,kBAAA,uBAAyB,GAAA,EAAsC;AACpE,MAAA,IAAA,CAAK,kBAAA,CAAmB,IAAA,EAAK,CAAE,OAAA,CAAQ,CAAC,EAAA,KAAO;AAC7C,QAAA,IAAA,CAAK,kBAAA,CAAoB,GAAA,CAAI,EAAA,CAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACxC,CAAC,CAAA;AAAA,IACH;AACA,IAAA,OAAO,IAAA,CAAK,kBAAA;AAAA,EACd;AAAA,EAEU,uBAAuB,UAAA,EAAsB;AACrD,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAAA,EACpB;AAAA,EAEA,yBAAyB,QAAA,EAAkB;AACzC,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,IAAA,EAAK,CAAE,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,CAAG,QAAA,KAAa,QAAA,IAAY,CAAC,EAAA,CAAG,YAAY,CAAA;AAAA,EACnG;AAAA,EAEA,yBAAyB,GAAA,EAAa;AACpC,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,IAAA,EAAK,CAAE,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,CAAG,eAAA,IAAmB,EAAA,CAAG,eAAA,KAAoB,GAAG,CAAA;AAAA,EACvG;AAAA,EAEA,aAAA,GAAgB;AACd,IAAA,OAAO,IAAA,CAAK,UAAA;AAAA,EACd;AAAA,EAEA,gBAAgB,EAAA,EAAkD;AAChE,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,WAAA,CAAY,EAAE,CAAA;AAAA,EAC/C;AAAA,EAEA,gBAAA,CAAiB,aAAqBC,YAAA,EAAqC;AACzE,IAAA,OAAOC,2BAAA,CAAiB,WAAA,EAAaD,YAAA,EAAY,IAAA,CAAK,kBAAkB,CAAA;AAAA,EAC1E;AAAA,EAEA,mBAAA,CAAoB,aAAqB,aAAA,EAAiE;AACxG,IAAA,OAAOE,yBAAA,CAAoB,aAAa,aAAa,CAAA;AAAA,EACvD;AAAA,EAEA,aAAaC,QAAA,EAAmC;AAC9C,IAAA,OAAOC,oBAAaD,QAAM,CAAA;AAAA,EAC5B;AAAA,EAEA,WAAA,CAAYE,SAA8B,MAAA,EAAkB;AAC1D,IAAA,OAAOC,iBAAA,CAAYD,OAAA,EAAO,MAAA,EAAQ,IAAA,CAAK,kBAAkB,CAAA;AAAA,EAC3D;AAAA,EAEA,YAAY,KAAA,EAAuC;AACjD,IAAA,OAAOE,sBAAA,CAAY,KAAA,EAAO,IAAA,CAAK,gBAAA,EAAkB,CAAA;AAAA,EACnD;AACF;;;;"}