{"version":3,"file":"ensureColumns.mjs","sources":["../../../../src/transformations/transformers/ensureColumns.ts"],"sourcesContent":["import { map } from 'rxjs/operators';\n\nimport { getTimeField } from '../../dataframe/processDataFrame';\nimport { DataFrame } from '../../types/dataFrame';\nimport { SynchronousDataTransformerInfo } from '../../types/transformations';\n\nimport { DataTransformerID } from './ids';\nimport { joinByFieldTransformer } from './joinByField';\n\nexport const ensureColumnsTransformer: SynchronousDataTransformerInfo = {\n  id: DataTransformerID.ensureColumns,\n  name: 'Ensure Columns Transformer',\n  description: 'Will check if current data frames is series or columns. If in series it will convert to columns.',\n\n  operator: (options, ctx) => (source) =>\n    source.pipe(map((data) => ensureColumnsTransformer.transformer(options, ctx)(data))),\n\n  transformer: (_options, ctx) => (frames: DataFrame[]) => {\n    // Assume timeseries should first be joined by time\n    const timeFieldName = findConsistentTimeFieldName(frames);\n\n    if (frames.length > 1 && timeFieldName) {\n      return joinByFieldTransformer.transformer(\n        {\n          byField: timeFieldName,\n        },\n        ctx\n      )(frames);\n    }\n    return frames;\n  },\n};\n\n/**\n * Find the name for the time field used in all frames (if one exists)\n */\nfunction findConsistentTimeFieldName(data: DataFrame[]): string | undefined {\n  let name: string | undefined = undefined;\n  for (const frame of data) {\n    const { timeField } = getTimeField(frame);\n    if (!timeField) {\n      return undefined; // Not timeseries\n    }\n    if (!name) {\n      name = timeField.name;\n    } else if (name !== timeField.name) {\n      // Second frame has a different time column?!\n      return undefined;\n    }\n  }\n  return name;\n}\n"],"names":[],"mappings":";;;;;;AASO,MAAM,wBAAA,GAA2D;AAAA,EACtE,IAAI,iBAAA,CAAkB,aAAA;AAAA,EACtB,IAAA,EAAM,4BAAA;AAAA,EACN,WAAA,EAAa,kGAAA;AAAA,EAEb,UAAU,CAAC,OAAA,EAAS,QAAQ,CAAC,MAAA,KAC3B,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,IAAA,KAAS,yBAAyB,WAAA,CAAY,OAAA,EAAS,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,CAAA;AAAA,EAErF,WAAA,EAAa,CAAC,QAAA,EAAU,GAAA,KAAQ,CAAC,MAAA,KAAwB;AAEvD,IAAA,MAAM,aAAA,GAAgB,4BAA4B,MAAM,CAAA;AAExD,IAAA,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,IAAK,aAAA,EAAe;AACtC,MAAA,OAAO,sBAAA,CAAuB,WAAA;AAAA,QAC5B;AAAA,UACE,OAAA,EAAS;AAAA,SACX;AAAA,QACA;AAAA,QACA,MAAM,CAAA;AAAA,IACV;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAKA,SAAS,4BAA4B,IAAA,EAAuC;AAC1E,EAAA,IAAI,IAAA,GAA2B,KAAA,CAAA;AAC/B,EAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,YAAA,CAAa,KAAK,CAAA;AACxC,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO,KAAA,CAAA;AAAA,IACT;AACA,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,IAAA,GAAO,SAAA,CAAU,IAAA;AAAA,IACnB,CAAA,MAAA,IAAW,IAAA,KAAS,SAAA,CAAU,IAAA,EAAM;AAElC,MAAA,OAAO,KAAA,CAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;;;;"}