{"version":3,"file":"rename.cjs","sources":["../../../../src/transformations/transformers/rename.ts"],"sourcesContent":["import { map } from 'rxjs/operators';\n\nimport { getFieldDisplayName } from '../../field/fieldState';\nimport { DataFrame, Field } from '../../types/dataFrame';\nimport { DataTransformerInfo } from '../../types/transformations';\n\nimport { DataTransformerID } from './ids';\n\nexport interface RenameFieldsTransformerOptions {\n  renameByName: Record<string, string>;\n}\n\nexport const renameFieldsTransformer: DataTransformerInfo<RenameFieldsTransformerOptions> = {\n  id: DataTransformerID.rename,\n  name: 'Rename fields by name',\n  description: 'Rename fields based on configuration given by user',\n  defaultOptions: {\n    renameByName: {},\n  },\n\n  /**\n   * Return a modified copy of the series. If the transform is not or should not\n   * be applied, just return the input series\n   */\n  operator: (options) => (source) =>\n    source.pipe(\n      map((data) => {\n        const renamer = createRenamer(options.renameByName);\n\n        if (!Array.isArray(data) || data.length === 0) {\n          return data;\n        }\n\n        return data.map((frame) => ({\n          ...frame,\n          fields: renamer(frame),\n        }));\n      })\n    ),\n};\n\nconst createRenamer =\n  (renameByName: Record<string, string>) =>\n  (frame: DataFrame): Field[] => {\n    if (!renameByName || Object.keys(renameByName).length === 0) {\n      return frame.fields;\n    }\n\n    return frame.fields.map((field) => {\n      const displayName = getFieldDisplayName(field, frame);\n      const renameTo = renameByName[displayName];\n\n      if (typeof renameTo !== 'string' || renameTo.length === 0) {\n        return field;\n      }\n\n      return {\n        ...field,\n        config: {\n          ...field.config,\n          displayName: renameTo,\n        },\n        state: {\n          ...field.state,\n          displayName: renameTo,\n        },\n      };\n    });\n  };\n"],"names":["DataTransformerID","map","getFieldDisplayName"],"mappings":";;;;;;;;;AAYO,MAAM,uBAAA,GAA+E;AAAA,EAC1F,IAAIA,qBAAA,CAAkB,MAAA;AAAA,EACtB,IAAA,EAAM,uBAAA;AAAA,EACN,WAAA,EAAa,oDAAA;AAAA,EACb,cAAA,EAAgB;AAAA,IACd,cAAc;AAAC,GACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAA,EAAU,CAAC,OAAA,KAAY,CAAC,WACtB,MAAA,CAAO,IAAA;AAAA,IACLC,aAAA,CAAI,CAAC,IAAA,KAAS;AACZ,MAAA,MAAM,OAAA,GAAU,aAAA,CAAc,OAAA,CAAQ,YAAY,CAAA;AAElD,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,IAAK,IAAA,CAAK,WAAW,CAAA,EAAG;AAC7C,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,QAC1B,GAAG,KAAA;AAAA,QACH,MAAA,EAAQ,QAAQ,KAAK;AAAA,OACvB,CAAE,CAAA;AAAA,IACJ,CAAC;AAAA;AAEP;AAEA,MAAM,aAAA,GACJ,CAAC,YAAA,KACD,CAAC,KAAA,KAA8B;AAC7B,EAAA,IAAI,CAAC,YAAA,IAAgB,MAAA,CAAO,KAAK,YAAY,CAAA,CAAE,WAAW,CAAA,EAAG;AAC3D,IAAA,OAAO,KAAA,CAAM,MAAA;AAAA,EACf;AAEA,EAAA,OAAO,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AACjC,IAAA,MAAM,WAAA,GAAcC,8BAAA,CAAoB,KAAA,EAAO,KAAK,CAAA;AACpD,IAAA,MAAM,QAAA,GAAW,aAAa,WAAW,CAAA;AAEzC,IAAA,IAAI,OAAO,QAAA,KAAa,QAAA,IAAY,QAAA,CAAS,WAAW,CAAA,EAAG;AACzD,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,OAAO;AAAA,MACL,GAAG,KAAA;AAAA,MACH,MAAA,EAAQ;AAAA,QACN,GAAG,KAAA,CAAM,MAAA;AAAA,QACT,WAAA,EAAa;AAAA,OACf;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,KAAA,CAAM,KAAA;AAAA,QACT,WAAA,EAAa;AAAA;AACf,KACF;AAAA,EACF,CAAC,CAAA;AACH,CAAA;;;;"}