{"version":3,"file":"fieldValueMatcher.cjs","sources":["../../../../src/transformations/matchers/fieldValueMatcher.ts"],"sourcesContent":["import { ComparisonOperation } from '@grafana/schema';\n\nimport { Field, DataFrame } from '../../types/dataFrame';\nimport { FieldMatcherInfo } from '../../types/transformations';\nimport { reduceField, ReducerID } from '../fieldReducer';\n\nimport { compareValues } from './compareValues';\nimport { FieldMatcherID } from './ids';\n\nexport interface FieldValueMatcherConfig {\n  reducer: ReducerID;\n  op?: ComparisonOperation;\n  value?: number; // or string?\n}\n\n// This should move to a utility function on the reducer registry\nfunction isBooleanReducer(r: ReducerID) {\n  return r === ReducerID.allIsNull || r === ReducerID.allIsZero;\n}\n\nexport const fieldValueMatcherInfo: FieldMatcherInfo<FieldValueMatcherConfig> = {\n  id: FieldMatcherID.byValue,\n  name: 'By value (reducer)',\n  description: 'Reduce a field to a single value and test for inclusion',\n\n  // This is added to overrides by default\n  defaultOptions: {\n    reducer: ReducerID.allIsZero,\n    op: ComparisonOperation.GTE,\n    value: 0,\n  },\n\n  get: (props) => {\n    if (!props || !props.reducer) {\n      return () => false;\n    }\n    let { reducer, op, value } = props;\n    const isBoolean = isBooleanReducer(reducer);\n    if (!op) {\n      op = ComparisonOperation.EQ;\n    }\n    return (field: Field, frame: DataFrame, allFrames: DataFrame[]) => {\n      const left = reduceField({\n        field,\n        reducers: [reducer],\n      })[reducer];\n\n      if (isBoolean) {\n        return Boolean(left); // boolean\n      }\n      return compareValues(left, op!, value);\n    };\n  },\n\n  getOptionsDisplayText: (props) => {\n    return `By value (${props.reducer})`;\n  },\n};\n"],"names":["ReducerID","FieldMatcherID","ComparisonOperation","reduceField","compareValues"],"mappings":";;;;;;;;;;AAgBA,SAAS,iBAAiB,CAAA,EAAc;AACtC,EAAA,OAAO,CAAA,KAAMA,sBAAA,CAAU,SAAA,IAAa,CAAA,KAAMA,sBAAA,CAAU,SAAA;AACtD;AAEO,MAAM,qBAAA,GAAmE;AAAA,EAC9E,IAAIC,kBAAA,CAAe,OAAA;AAAA,EACnB,IAAA,EAAM,oBAAA;AAAA,EACN,WAAA,EAAa,yDAAA;AAAA;AAAA,EAGb,cAAA,EAAgB;AAAA,IACd,SAASD,sBAAA,CAAU,SAAA;AAAA,IACnB,IAAIE,0BAAA,CAAoB,GAAA;AAAA,IACxB,KAAA,EAAO;AAAA,GACT;AAAA,EAEA,GAAA,EAAK,CAAC,KAAA,KAAU;AACd,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,KAAA,CAAM,OAAA,EAAS;AAC5B,MAAA,OAAO,MAAM,KAAA;AAAA,IACf;AACA,IAAA,IAAI,EAAE,OAAA,EAAS,EAAA,EAAI,KAAA,EAAM,GAAI,KAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,iBAAiB,OAAO,CAAA;AAC1C,IAAA,IAAI,CAAC,EAAA,EAAI;AACP,MAAA,EAAA,GAAKA,0BAAA,CAAoB,EAAA;AAAA,IAC3B;AACA,IAAA,OAAO,CAAC,KAAA,EAAc,KAAA,EAAkB,SAAA,KAA2B;AACjE,MAAA,MAAM,OAAOC,wBAAA,CAAY;AAAA,QACvB,KAAA;AAAA,QACA,QAAA,EAAU,CAAC,OAAO;AAAA,OACnB,EAAE,OAAO,CAAA;AAEV,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,OAAO,QAAQ,IAAI,CAAA;AAAA,MACrB;AACA,MAAA,OAAOC,2BAAA,CAAc,IAAA,EAAM,EAAA,EAAK,KAAK,CAAA;AAAA,IACvC,CAAA;AAAA,EACF,CAAA;AAAA,EAEA,qBAAA,EAAuB,CAAC,KAAA,KAAU;AAChC,IAAA,OAAO,CAAA,UAAA,EAAa,MAAM,OAAO,CAAA,CAAA,CAAA;AAAA,EACnC;AACF;;;;"}