@mrii/react-table-builder
Version:
library to easily build tables using MUI grid
1 lines • 4.05 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../src/components/custom/custom-grid-toolbar/index.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\nimport type { GridToolbarContainerProps } from '@mui/x-data-grid';\nimport {\n GridToolbarContainer,\n GridToolbarColumnsButton,\n GridToolbarExport,\n GridToolbarDensitySelector,\n} from '@mui/x-data-grid';\nimport { Box, Grid } from '@mui/material';\n\nimport type { SelectColumnExtraProps } from '$components/columns';\nimport { useTableBuilderFilters, useTranslation } from '$context';\nimport type { FilterAllowedColumnTypeUnion } from '$types';\nimport { FilterField } from '$components/filter-field';\nimport { CustomGridToolbarFilterButton } from '../custom-grid-filter-button';\n\nexport const CustomGridToolbar: React.FC = forwardRef<\n HTMLDivElement,\n GridToolbarContainerProps\n>(function CustomGridToolbar(props, ref) {\n const [filters, editFilter] = useTableBuilderFilters(s => [s.filters, s.editFilter]);\n\n const t = useTranslation(s => s.getFieldLabel);\n const inputs = useMemo(\n () =>\n filters.map(filter => (\n <Grid key={filter.field} item>\n <FilterField\n type={filter.column.type as FilterAllowedColumnTypeUnion}\n value={filter.value}\n label={t(filter.field, true)}\n onChange={value => editFilter({ ...filter, value })}\n items={(filter.column.extraProps as SelectColumnExtraProps)?.items}\n />\n </Grid>\n )),\n [editFilter, filters, t]\n );\n\n return (\n <Box display='flex' justifyContent='space-between' alignItems='flex-start' p={2}>\n <Grid container spacing={2} flexWrap='wrap' flex='1 0'>\n {inputs}\n </Grid>\n\n <GridToolbarContainer {...props} ref={ref}>\n <GridToolbarColumnsButton />\n <GridToolbarDensitySelector />\n <CustomGridToolbarFilterButton />\n <GridToolbarExport />\n </GridToolbarContainer>\n </Box>\n );\n});\n"],"names":["CustomGridToolbar","forwardRef","props","ref","filters","editFilter","useTableBuilderFilters","s","t","useTranslation","getFieldLabel","inputs","useMemo","map","filter","_jsx","Grid","item","FilterField","type","column","value","label","field","onChange","items","extraProps","_jsxs","Box","display","justifyContent","alignItems","p","container","spacing","flexWrap","flex","GridToolbarContainer","GridToolbarColumnsButton","GridToolbarDensitySelector","CustomGridToolbarFilterButton","GridToolbarExport"],"mappings":";;;;;;;;;AAgBO,MAAMA,kCAA8BC,UAGzC,CAAA,SAASD,kBAAkBE,KAAK,EAAEC,GAAG,EAAE;AACvC,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,sBAAAA,CAAuBC,CAAAA,CAAK,GAAA;AAACA,YAAAA,CAAAA,CAAEH,OAAO;AAAEG,YAAAA,CAAAA,CAAEF,UAAU;AAAC,SAAA,CAAA,CAAA;AAEnF,IAAA,MAAMG,CAAIC,GAAAA,cAAAA,CAAeF,CAAAA,CAAAA,GAAKA,EAAEG,aAAa,CAAA,CAAA;IAC7C,MAAMC,MAAAA,GAASC,QACb,IACER,OAAAA,CAAQS,GAAG,CAACC,CAAAA,uBACVC,GAACC,CAAAA,IAAAA,EAAAA;gBAAwBC,IAAI,EAAA,IAAA;AAC3B,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,WAAAA,EAAAA;oBACCC,IAAML,EAAAA,MAAAA,CAAOM,MAAM,CAACD,IAAI;AACxBE,oBAAAA,KAAAA,EAAOP,OAAOO,KAAK;AACnBC,oBAAAA,KAAAA,EAAOd,CAAEM,CAAAA,MAAAA,CAAOS,KAAK,EAAE,IAAI,CAAA;oBAC3BC,QAAUH,EAAAA,CAAAA,QAAShB,UAAW,CAAA;AAAE,4BAAA,GAAGS,MAAM;AAAEO,4BAAAA,KAAAA;AAAM,yBAAA,CAAA;AACjDI,oBAAAA,KAAAA,EAAQX,MAAOM,CAAAA,MAAM,CAACM,UAAU,EAA6BD,KAAAA;;AANtDX,aAAAA,EAAAA,MAAAA,CAAOS,KAAK,CAU3B,CAAA,EAAA;AAAClB,QAAAA,UAAAA;AAAYD,QAAAA,OAAAA;AAASI,QAAAA,CAAAA;AAAE,KAAA,CAAA,CAAA;AAG1B,IAAA,qBACEmB,IAACC,CAAAA,GAAAA,EAAAA;QAAIC,OAAQ,EAAA,MAAA;QAAOC,cAAe,EAAA,eAAA;QAAgBC,UAAW,EAAA,YAAA;QAAaC,CAAG,EAAA,CAAA;;0BAC5EjB,GAACC,CAAAA,IAAAA,EAAAA;gBAAKiB,SAAS,EAAA,IAAA;gBAACC,OAAS,EAAA,CAAA;gBAAGC,QAAS,EAAA,MAAA;gBAAOC,IAAK,EAAA,KAAA;AAC9CzB,gBAAAA,QAAAA,EAAAA,MAAAA;;0BAGHgB,IAACU,CAAAA,oBAAAA,EAAAA;AAAsB,gBAAA,GAAGnC,KAAK;gBAAEC,GAAKA,EAAAA,GAAAA;;kCACpCY,GAACuB,CAAAA,wBAAAA,EAAAA,EAAAA,CAAAA;kCACDvB,GAACwB,CAAAA,0BAAAA,EAAAA,EAAAA,CAAAA;kCACDxB,GAACyB,CAAAA,6BAAAA,EAAAA,EAAAA,CAAAA;kCACDzB,GAAC0B,CAAAA,iBAAAA,EAAAA,EAAAA,CAAAA;;;;;AAIT,CAAG;;;;"}