@coveord/plasma-mantine
Version:
A Plasma flavoured Mantine theme
97 lines (96 loc) • 4.37 kB
JavaScript
"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/Button.js");
var _TableLayoutControl = require("../layouts/TableLayoutControl.js");
var _TableHeaderActions = require("../table-actions/TableHeaderActions.js");
var _Table = require("../Table.js");
var _TableContext = require("../TableContext.js");
var defaultProps = {
unselectAllLabel: 'Unselect all',
selectedCountLabel: function selectedCountLabel(count) {
return "".concat(count, " selected");
},
showActions: true,
borderTop: 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, borderTop = _useProps.borderTop, 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",
"borderTop",
"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), {
mod: {
'with-border-top': borderTop
},
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.Quaternary, {
onClick: store.clearRowSelection,
disabled: !store.rowSelectionEnabled,
leftSection: /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.CrossSize16Px, {
height: 16
}),
children: selectedCountLabel(selectedRows.length)
})
})
})) : null,
children,
showActions ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_TableHeaderActions.TableHeaderActions, {}) : null,
/*#__PURE__*/ (0, _jsxruntime.jsx)(_TableLayoutControl.TableLayoutControl, {})
]
})
}));
});
TableHeader.displayName = 'Table.Header';
//# sourceMappingURL=TableHeader.js.map