{"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;;;;"}