UNPKG

@grafana/ui

Version:
1 lines 4.27 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,KAAuB,EAAA;AAC/C,EAAA,MAAM,EAAE,iBAAA,EAAmB,YAAc,EAAA,mBAAA,EAAqB,aAAgB,GAAA,KAAA;AAC9E,EAAA,MAAM,iBAAoB,GAAA,SAAA,CAAU,UAAW,CAAA,MAAA,CAAO,aAAc,CAAA,KAAA;AAEpE,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,QAAA,EAAU,sBAAsB,UAAa,GAAA,UAAA;AAAA,QAC7C,KAAO,EAAA,iBAAA,GAAoB,CAAG,EAAA,iBAAiB,CAAO,EAAA,CAAA,GAAA,MAAA;AAAA,QACtD,MAAQ,EAAA;AAAA,OACV;AAAA,MAEC,QAAA,EAAA,YAAA,CAAa,GAAI,CAAA,CAAC,WAA6B,KAAA;AAC9C,QAAA,MAAM,EAAE,GAAK,EAAA,GAAG,gBAAiB,EAAA,GAAI,YAAY,mBAAoB,EAAA;AACrE,QACE,uBAAA,aAAA,CAAC,SAAI,SAAW,EAAA,WAAA,CAAY,OAAQ,GAAG,gBAAA,EAAkB,KAAU,aAAa,EAAA,iBAAA,CAAkB,UAC/F,WAAY,CAAA,OAAA,CAAQ,IAAI,CAAC,MAAA,KAA2B,iBAAiB,MAAQ,EAAA,WAAW,CAAC,CAC5F,CAAA;AAAA,OAEH;AAAA;AAAA,GACH;AAEJ;AAEA,SAAS,gBAAA,CAAiB,QAAwB,WAA0B,EAAA;AA1C5E,EAAA,IAAA,EAAA;AA2CE,EAAA,MAAM,EAAE,GAAK,EAAA,GAAG,WAAY,EAAA,GAAI,OAAO,cAAe,EAAA;AAEtD,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,WAAA,CAAY,KAAQ,GAAA,CAAA,EAAA,GAAA,WAAA,CAAY,KAAZ,KAAA,IAAA,GAAA,EAAA,GAAqB,EAAC;AAC1C,EAAA,WAAA,CAAY,MAAM,QAAW,GAAA,UAAA;AAC7B,EAAY,WAAA,CAAA,KAAA,CAAM,iBAAkB,MAAe,CAAA,cAAA;AAEnD,EACE,uBAAA,GAAA,CAAC,KAAc,EAAA,EAAA,SAAA,EAAW,WAAY,CAAA,UAAA,EAAa,GAAG,WAAA,EACnD,QAAO,EAAA,MAAA,CAAA,MAAA,CAAO,QAAQ,CAAA,EAAA,EADf,GAEV,CAAA;AAEJ;AAEgB,SAAA,cAAA,CAAe,KAAe,EAAA,YAAA,EAA6B,cAA0B,EAAA;AACnG,EAAA,IAAI,iBAAiB,KAAW,CAAA,EAAA;AAC9B,IAAO,OAAA,SAAA;AAAA;AAGT,EAAA,IAAI,cAAgB,EAAA;AAClB,IAAI,IAAA,YAAA,CAAa,KAAK,CAAA,KAAM,KAAW,CAAA,EAAA;AACrC,MAAO,OAAA,SAAA;AAAA;AAGT,IAAA,MAAM,GAAM,GAAA,aAAA,CAAc,GAAI,CAAA,SAAA,CAAU,KAAK,CAAE,CAAA,IAAA;AAE/C,IAAA,OAAO,UAAW,CAAA,EAAE,KAAO,EAAA,CAAC,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,aAAa,KAAK,CAAC,CAAE,EAAC,GAAG,CAAA;AAAA;AAGvE,EAAA,OAAO,WAAW,EAAE,KAAA,EAAO,YAAa,CAAA,KAAK,GAAG,CAAA;AAClD;;;;"}