@mrii/react-table-builder
Version:
library to easily build tables using MUI grid
64 lines (60 loc) • 2.46 kB
JavaScript
;
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var xDataGrid = require('@mui/x-data-grid');
var material = require('@mui/material');
var index = require('../../filter-field/index.js');
var index$1 = require('../custom-grid-filter-button/index.js');
var provider = require('../../../context/filter/provider.js');
var provider$1 = require('../../../context/translation/provider.js');
const CustomGridToolbar = /*#__PURE__*/ react.forwardRef(function CustomGridToolbar(props, ref) {
const [filters, editFilter] = provider.useTableBuilderFilters((s)=>[
s.filters,
s.editFilter
]);
const t = provider$1.useTranslation((s)=>s.getFieldLabel);
const inputs = react.useMemo(()=>filters.map((filter)=>/*#__PURE__*/ jsxRuntime.jsx(material.Grid, {
item: true,
children: /*#__PURE__*/ jsxRuntime.jsx(index.FilterField, {
type: filter.column.type,
value: filter.value,
label: t(filter.field, true),
onChange: (value)=>editFilter({
...filter,
value
}),
items: filter.column.extraProps?.items
})
}, filter.field)), [
editFilter,
filters,
t
]);
return /*#__PURE__*/ jsxRuntime.jsxs(material.Box, {
display: "flex",
justifyContent: "space-between",
alignItems: "flex-start",
p: 2,
children: [
/*#__PURE__*/ jsxRuntime.jsx(material.Grid, {
container: true,
spacing: 2,
flexWrap: "wrap",
flex: "1 0",
children: inputs
}),
/*#__PURE__*/ jsxRuntime.jsxs(xDataGrid.GridToolbarContainer, {
...props,
ref: ref,
children: [
/*#__PURE__*/ jsxRuntime.jsx(xDataGrid.GridToolbarColumnsButton, {}),
/*#__PURE__*/ jsxRuntime.jsx(xDataGrid.GridToolbarDensitySelector, {}),
/*#__PURE__*/ jsxRuntime.jsx(index$1.CustomGridToolbarFilterButton, {}),
/*#__PURE__*/ jsxRuntime.jsx(xDataGrid.GridToolbarExport, {})
]
})
]
});
});
exports.CustomGridToolbar = CustomGridToolbar;
//# sourceMappingURL=index.js.map