UNPKG

@grafana/ui

Version:
1 lines 4.29 kB
{"version":3,"file":"FooterRow.mjs","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":[],"mappings":";;;;;;;AAkBO,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,MAAM,EAAE,iBAAA,EAAmB,YAAA,EAAc,mBAAA,EAAqB,aAAY,GAAI,KAAA;AAC9E,EAAA,MAAM,iBAAA,GAAoB,SAAA,CAAU,UAAA,CAAW,MAAA,CAAO,aAAA,CAAc,KAAA;AAEpE,EAAA,uBACE,GAAA;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,uBACE,aAAA,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,uBACE,GAAA,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,OAAO,SAAA;AAAA,EACT;AAEA,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,IAAI,YAAA,CAAa,KAAK,CAAA,KAAM,KAAA,CAAA,EAAW;AACrC,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,MAAM,GAAA,GAAM,aAAA,CAAc,GAAA,CAAI,SAAA,CAAU,KAAK,CAAA,CAAE,IAAA;AAE/C,IAAA,OAAO,UAAA,CAAW,EAAE,KAAA,EAAO,CAAC,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,aAAa,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA;AAAA,EACvE;AAEA,EAAA,OAAO,WAAW,EAAE,KAAA,EAAO,YAAA,CAAa,KAAK,GAAG,CAAA;AAClD;;;;"}