{"version":3,"file":"FooterRow.cjs","sources":["../../../../../src/components/Table/TableRT/FooterRow.tsx"],"sourcesContent":["import { ColumnInstance, HeaderGroup } from 'react-table';\n\nimport { fieldReducers, ReducerID } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\n\nimport { EmptyCell, FooterCell } from '../Cells/FooterCell';\nimport { FooterItem } from '../types';\n\nimport { TableStyles } from './styles';\n\nexport interface FooterRowProps {\n  totalColumnsWidth: number;\n  footerGroups: HeaderGroup[];\n  footerValues: FooterItem[];\n  isPaginationVisible: boolean;\n  tableStyles: TableStyles;\n}\n\nexport function FooterRow(props: FooterRowProps) {\n  const { totalColumnsWidth, footerGroups, isPaginationVisible, tableStyles } = props;\n  const e2eSelectorsTable = selectors.components.Panels.Visualization.Table;\n\n  return (\n    <div\n      style={{\n        position: isPaginationVisible ? 'relative' : 'absolute',\n        width: totalColumnsWidth ? `${totalColumnsWidth}px` : '100%',\n        bottom: '0px',\n      }}\n    >\n      {footerGroups.map((footerGroup: HeaderGroup) => {\n        const { key, ...footerGroupProps } = footerGroup.getFooterGroupProps();\n        return (\n          <div className={tableStyles.tfoot} {...footerGroupProps} key={key} data-testid={e2eSelectorsTable.footer}>\n            {footerGroup.headers.map((column: ColumnInstance) => renderFooterCell(column, tableStyles))}\n          </div>\n        );\n      })}\n    </div>\n  );\n}\n\nfunction renderFooterCell(column: ColumnInstance, tableStyles: TableStyles) {\n  const { key, ...footerProps } = column.getHeaderProps();\n\n  if (!footerProps) {\n    return null;\n  }\n\n  footerProps.style = footerProps.style ?? {};\n  footerProps.style.position = 'absolute';\n  footerProps.style.justifyContent = (column as any).justifyContent;\n\n  return (\n    <div key={key} className={tableStyles.headerCell} {...footerProps}>\n      {column.render('Footer')}\n    </div>\n  );\n}\n\nexport function getFooterValue(index: number, footerValues?: FooterItem[], isCountRowsSet?: boolean) {\n  if (footerValues === undefined) {\n    return EmptyCell;\n  }\n\n  if (isCountRowsSet) {\n    if (footerValues[index] === undefined) {\n      return EmptyCell;\n    }\n\n    const key = fieldReducers.get(ReducerID.count).name;\n\n    return FooterCell({ value: [{ [key]: String(footerValues[index]) }] });\n  }\n\n  return FooterCell({ value: footerValues[index] });\n}\n"],"names":["selectors","jsx","createElement","EmptyCell","fieldReducers","ReducerID","FooterCell"],"mappings":";;;;;;;;;;;AAkBO,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,MAAM,EAAE,iBAAA,EAAmB,YAAA,EAAc,mBAAA,EAAqB,aAAY,GAAI,KAAA;AAC9E,EAAA,MAAM,iBAAA,GAAoBA,sBAAA,CAAU,UAAA,CAAW,MAAA,CAAO,aAAA,CAAc,KAAA;AAEpE,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,sBAAsB,UAAA,GAAa,UAAA;AAAA,QAC7C,KAAA,EAAO,iBAAA,GAAoB,CAAA,EAAG,iBAAiB,CAAA,EAAA,CAAA,GAAO,MAAA;AAAA,QACtD,MAAA,EAAQ;AAAA,OACV;AAAA,MAEC,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,WAAA,KAA6B;AAC9C,QAAA,MAAM,EAAE,GAAA,EAAK,GAAG,gBAAA,EAAiB,GAAI,YAAY,mBAAA,EAAoB;AACrE,QAAA,uBACEC,mBAAA,CAAC,SAAI,SAAA,EAAW,WAAA,CAAY,OAAQ,GAAG,gBAAA,EAAkB,KAAU,aAAA,EAAa,iBAAA,CAAkB,UAC/F,WAAA,CAAY,OAAA,CAAQ,IAAI,CAAC,MAAA,KAA2B,iBAAiB,MAAA,EAAQ,WAAW,CAAC,CAC5F,CAAA;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH;AAEJ;AAEA,SAAS,gBAAA,CAAiB,QAAwB,WAAA,EAA0B;AA1C5E,EAAA,IAAA,EAAA;AA2CE,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,WAAA,EAAY,GAAI,OAAO,cAAA,EAAe;AAEtD,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,WAAA,CAAY,KAAA,GAAA,CAAQ,EAAA,GAAA,WAAA,CAAY,KAAA,KAAZ,IAAA,GAAA,EAAA,GAAqB,EAAC;AAC1C,EAAA,WAAA,CAAY,MAAM,QAAA,GAAW,UAAA;AAC7B,EAAA,WAAA,CAAY,KAAA,CAAM,iBAAkB,MAAA,CAAe,cAAA;AAEnD,EAAA,uBACED,cAAA,CAAC,KAAA,EAAA,EAAc,SAAA,EAAW,WAAA,CAAY,UAAA,EAAa,GAAG,WAAA,EACnD,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,EAAA,EADf,GAEV,CAAA;AAEJ;AAEO,SAAS,cAAA,CAAe,KAAA,EAAe,YAAA,EAA6B,cAAA,EAA0B;AACnG,EAAA,IAAI,iBAAiB,KAAA,CAAA,EAAW;AAC9B,IAAA,OAAOE,oBAAA;AAAA,EACT;AAEA,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,IAAI,YAAA,CAAa,KAAK,CAAA,KAAM,KAAA,CAAA,EAAW;AACrC,MAAA,OAAOA,oBAAA;AAAA,IACT;AAEA,IAAA,MAAM,GAAA,GAAMC,kBAAA,CAAc,GAAA,CAAIC,cAAA,CAAU,KAAK,CAAA,CAAE,IAAA;AAE/C,IAAA,OAAOC,qBAAA,CAAW,EAAE,KAAA,EAAO,CAAC,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,aAAa,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA;AAAA,EACvE;AAEA,EAAA,OAAOA,sBAAW,EAAE,KAAA,EAAO,YAAA,CAAa,KAAK,GAAG,CAAA;AAClD;;;;;"}