UNPKG

@coveord/plasma-mantine

Version:

A Plasma flavoured Mantine theme

92 lines (91 loc) 4.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "TableHeader", { enumerable: true, get: function() { return TableHeader; } }); var _object_spread = require("@swc/helpers/_/_object_spread"); var _object_spread_props = require("@swc/helpers/_/_object_spread_props"); var _object_without_properties = require("@swc/helpers/_/_object_without_properties"); var _jsxruntime = require("react/jsx-runtime"); var _plasmareacticons = require("@coveord/plasma-react-icons"); var _core = require("@mantine/core"); var _button = require("../../button"); var _TableLayoutControl = require("../layouts/TableLayoutControl"); var _Table = require("../Table"); var _tableactions = require("../table-actions"); var _TableContext = require("../TableContext"); var defaultProps = { unselectAllLabel: 'Unselect all', selectedCountLabel: function(count) { return "".concat(count, " selected"); }, showActions: true }; var TableHeader = (0, _core.factory)(function(props, ref) { var _useTableContext = (0, _TableContext.useTableContext)(), store = _useTableContext.store, getStyles = _useTableContext.getStyles; var _useProps = (0, _core.useProps)('PlasmaTableHeader', defaultProps, props), showActions = _useProps.showActions, unselectAllLabel = _useProps.unselectAllLabel, selectedCountLabel = _useProps.selectedCountLabel, children = _useProps.children, classNames = _useProps.classNames, className = _useProps.className, styles = _useProps.styles, style = _useProps.style, _vars = _useProps.vars, others = _object_without_properties._(_useProps, [ "showActions", "unselectAllLabel", "selectedCountLabel", "children", "classNames", "className", "styles", "style", "vars" ]); var selectedRows = store.getSelectedRows(); var stylesApiProps = { classNames: classNames, styles: styles }; var innerStyles = getStyles('headerGridInner', stylesApiProps); var gridStyles = getStyles('headerGrid', stylesApiProps); return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Box, _object_spread_props._(_object_spread._({ ref: ref }, getStyles('headerRoot', _object_spread._({ className: className, style: style }, stylesApiProps)), others), { children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Grid, { justify: "flex-start", align: "center", classNames: { inner: innerStyles.className, root: gridStyles.className }, styles: { inner: innerStyles.style, root: gridStyles.style }, children: [ store.multiRowSelectionEnabled && selectedRows.length > 0 ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Grid.Col, _object_spread_props._(_object_spread._({ span: "auto" }, getStyles('headerCol', stylesApiProps)), { order: _Table.TableComponentsOrder.MultiSelectInfo, children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Tooltip, { label: unselectAllLabel, children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_button.Button, { onClick: store.clearRowSelection, variant: "subtle", disabled: !store.rowSelectionEnabled, leftSection: /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.CrossSize16Px, { height: 16 }), children: selectedCountLabel(selectedRows.length) }) }) })) : null, children, showActions ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_tableactions.TableHeaderActions, {}) : null, /*#__PURE__*/ (0, _jsxruntime.jsx)(_TableLayoutControl.TableLayoutControl, {}) ] }) })); }); //# sourceMappingURL=TableHeader.js.map