UNPKG

@mrii/react-table-builder

Version:
64 lines (60 loc) 2.46 kB
'use strict'; 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