UNPKG

grommet

Version:

focus on the essential experience

122 lines (121 loc) 5.32 kB
"use strict"; exports.__esModule = true; exports.ExpanderCell = void 0; var _react = _interopRequireWildcard(require("react")); var _Blank = require("grommet-icons/icons/Blank"); var _Box = require("../Box"); var _Button = require("../Button"); var _TableCell = require("../TableCell"); var _MessageContext = require("../../contexts/MessageContext"); var _utils = require("../../utils"); var _useThemeValue3 = require("../../utils/useThemeValue"); var _excluded = ["context", "expanded", "onToggle", "messages", "pad", "expandLabel"], _excluded2 = ["background", "border", "context", "expandLabel"]; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } // ExpanderControl is separated from ExpanderCell to give TableCell a chance // to set the ThemeContext dark context. var ExpanderControl = function ExpanderControl(_ref) { var context = _ref.context, expanded = _ref.expanded, onToggle = _ref.onToggle, messages = _ref.messages, pad = _ref.pad, expandLabel = _ref.expandLabel, rest = _objectWithoutPropertiesLoose(_ref, _excluded); var _useThemeValue = (0, _useThemeValue3.useThemeValue)(), theme = _useThemeValue.theme; var _useContext = (0, _react.useContext)(_MessageContext.MessageContext), format = _useContext.format; var content; if (onToggle) { var ExpandIcon = theme.dataTable.icons[expanded ? 'contract' : 'expand']; content = /*#__PURE__*/_react["default"].createElement(ExpandIcon, { color: (0, _utils.normalizeColor)('border', theme) }); } else { content = /*#__PURE__*/_react["default"].createElement(_Blank.Blank, null); } var normalizedThemeProps = _extends({}, theme.table[context], theme.dataTable[context]); delete normalizedThemeProps.background; delete normalizedThemeProps.border; delete normalizedThemeProps.pad; content = /*#__PURE__*/_react["default"].createElement(_Box.Box, _extends({}, normalizedThemeProps, rest, { align: "center", fill: true, pad: pad }), content); if (onToggle) { var expandText = format({ id: 'dataTable.expand', messages: messages, values: { label: expandLabel || '' } }); var collapseText = format({ id: 'dataTable.collapse', messages: messages, values: { label: expandLabel || '' } }); var expandAllText = format({ id: 'dataTable.expandAll', messages: messages }); var collapseAllText = format({ id: 'dataTable.collapseAll', messages: messages }); var a11yTitle; if (expandLabel) { a11yTitle = format({ id: expanded ? 'dataTable.collapse' : 'dataTable.expand', messages: messages, values: { label: expandLabel } }); } else if (context === 'header') { a11yTitle = expanded ? collapseAllText : expandAllText; } else { a11yTitle = expanded ? collapseText : expandText; } content = /*#__PURE__*/_react["default"].createElement(_Button.Button, { fill: true, "aria-expanded": expanded ? 'true' : 'false', a11yTitle: a11yTitle, hoverIndicator: true // ensure focus is visible since overflow: hidden on TableCell sizeStyle // would otherwise clip it , focusIndicator: "inset", onClick: onToggle, plain: true }, content); } return content; }; var ExpanderCell = exports.ExpanderCell = function ExpanderCell(_ref2) { var _theme$dataTable$expa; var background = _ref2.background, border = _ref2.border, context = _ref2.context, expandLabel = _ref2.expandLabel, rest = _objectWithoutPropertiesLoose(_ref2, _excluded2); var _useThemeValue2 = (0, _useThemeValue3.useThemeValue)(), theme = _useThemeValue2.theme; return /*#__PURE__*/_react["default"].createElement(_TableCell.TableCell, { background: background, border: border, size: (_theme$dataTable$expa = theme.dataTable.expand) == null ? void 0 : _theme$dataTable$expa.size, plain: "noPad", verticalAlign: context === 'groupEnd' ? 'bottom' : 'top' }, /*#__PURE__*/_react["default"].createElement(ExpanderControl, _extends({ context: context, expandLabel: expandLabel }, rest))); }; ExpanderCell.displayName = 'ExpanderCell';