{"version":3,"file":"variables.cjs","sources":["../../src/variables.ts"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/variables.ts\nimport { from, type Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CustomVariableSupport, type DataQueryRequest, type DataQueryResponse, rangeUtil } from '@grafana/data';\nimport { getTemplateSrv, type TemplateSrv } from '@grafana/runtime';\n\nimport { PromVariableQueryEditor } from './components/VariableQueryEditor';\nimport { type PrometheusDatasource } from './datasource';\nimport { PrometheusMetricFindQuery } from './metric_find_query';\nimport { type PromVariableQuery } from './types';\n\nexport class PrometheusVariableSupport extends CustomVariableSupport<PrometheusDatasource> {\n  constructor(\n    private readonly datasource: PrometheusDatasource,\n    private readonly templateSrv: TemplateSrv = getTemplateSrv()\n  ) {\n    super();\n  }\n\n  editor = PromVariableQueryEditor;\n\n  query(request: DataQueryRequest<PromVariableQuery>): Observable<DataQueryResponse> {\n    // Handling grafana as code from jsonnet variable queries which are strings and not objects\n    // Previously, when using StandardVariableSupport\n    // the variable query string was changed to be on the expr attribute\n    // Now, using CustomVariableSupport,\n    // the variable query is changed to the query attribute.\n    // So, without standard variable support changing the query string to the expr attribute,\n    // the variable query string is coming in as it is written in jsonnet,\n    // where it is just a string. Here is where we handle that.\n    let query: string | undefined;\n    if (typeof request.targets[0] === 'string') {\n      query = request.targets[0];\n    } else {\n      query = request.targets[0].query;\n    }\n\n    if (!query) {\n      return of({ data: [] });\n    }\n\n    const scopedVars = {\n      ...request.scopedVars,\n      __interval: { text: this.datasource.interval, value: this.datasource.interval },\n      __interval_ms: {\n        text: rangeUtil.intervalToMs(this.datasource.interval),\n        value: rangeUtil.intervalToMs(this.datasource.interval),\n      },\n      ...this.datasource.getRangeScopedVars(request.range),\n    };\n\n    const interpolated = this.templateSrv.replace(query, scopedVars, this.datasource.interpolateQueryExpr);\n    const metricFindQuery = new PrometheusMetricFindQuery(this.datasource, interpolated);\n    const metricFindStream = from(metricFindQuery.process(request.range));\n\n    return metricFindStream.pipe(map((results) => ({ data: results })));\n  }\n}\n"],"names":["CustomVariableSupport","getTemplateSrv","PromVariableQueryEditor","of","rangeUtil","PrometheusMetricFindQuery","from","map"],"mappings":";;;;;;;;;;;;AAYO,MAAM,kCAAkCA,0BAAA,CAA4C;AAAA,EACzF,WAAA,CACmB,UAAA,EACA,WAAA,GAA2BC,sBAAA,EAAe,EAC3D;AACA,IAAA,KAAA,EAAM;AAHW,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AAKnB,IAAA,IAAA,CAAA,MAAA,GAASC,2CAAA;AAAA,EAFT;AAAA,EAIA,MAAM,OAAA,EAA6E;AASjF,IAAA,IAAI,KAAA;AACJ,IAAA,IAAI,OAAO,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAM,QAAA,EAAU;AAC1C,MAAA,KAAA,GAAQ,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,IAC3B,CAAA,MAAO;AACL,MAAA,KAAA,GAAQ,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA,CAAE,KAAA;AAAA,IAC7B;AAEA,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAOC,OAAA,CAAG,EAAE,IAAA,EAAM,IAAI,CAAA;AAAA,IACxB;AAEA,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,GAAG,OAAA,CAAQ,UAAA;AAAA,MACX,UAAA,EAAY,EAAE,IAAA,EAAM,IAAA,CAAK,WAAW,QAAA,EAAU,KAAA,EAAO,IAAA,CAAK,UAAA,CAAW,QAAA,EAAS;AAAA,MAC9E,aAAA,EAAe;AAAA,QACb,IAAA,EAAMC,cAAA,CAAU,YAAA,CAAa,IAAA,CAAK,WAAW,QAAQ,CAAA;AAAA,QACrD,KAAA,EAAOA,cAAA,CAAU,YAAA,CAAa,IAAA,CAAK,WAAW,QAAQ;AAAA,OACxD;AAAA,MACA,GAAG,IAAA,CAAK,UAAA,CAAW,kBAAA,CAAmB,QAAQ,KAAK;AAAA,KACrD;AAEA,IAAA,MAAM,YAAA,GAAe,KAAK,WAAA,CAAY,OAAA,CAAQ,OAAO,UAAA,EAAY,IAAA,CAAK,WAAW,oBAAoB,CAAA;AACrG,IAAA,MAAM,eAAA,GAAkB,IAAIC,2CAAA,CAA0B,IAAA,CAAK,YAAY,YAAY,CAAA;AACnF,IAAA,MAAM,mBAAmBC,SAAA,CAAK,eAAA,CAAgB,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,CAAA;AAEpE,IAAA,OAAO,gBAAA,CAAiB,KAAKC,aAAA,CAAI,CAAC,aAAa,EAAE,IAAA,EAAM,OAAA,EAAQ,CAAE,CAAC,CAAA;AAAA,EACpE;AACF;;;;"}