UNPKG

@integec/grid-tools

Version:
244 lines (194 loc) 10.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withColumnOffset = exports.defaultCellRender = exports.defaultRowHeaderRender = exports.cellRenderWrapper = exports.OptimizedEllipsisCell = exports.OptimizedContentCell = exports.ColHeaderBase = exports.EllipsisCell = exports.Cell = void 0; var _omit2 = _interopRequireDefault(require("ramda/src/omit")); var _react = _interopRequireDefault(require("react")); var _Components = require("../Components"); var _AdvancedPureComponent = _interopRequireDefault(require("../AdvancedPureComponent")); var _utils = require("../utils"); var _VirtualizedContext = require("./VirtualizedContext"); var _CellEditContainer = _interopRequireDefault(require("../CellEditContainer")); var _context = _interopRequireDefault(require("../context")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _templateObject3() { var data = _taggedTemplateLiteral(["\n border: ", ";\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = _taggedTemplateLiteral(["\n display: initial;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: ", ";\n padding-top: ", ";\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = _taggedTemplateLiteral(["\n border: ", ";\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var Cell = _Components.BasicCell.extend(_templateObject(), function (props) { return props.border || '1px solid #ccc'; }); exports.Cell = Cell; var EllipsisCell = Cell.extend(_templateObject2(), function (props) { return props.verticalAlign || 'center'; }, function (props) { return props.paddingTop; }); exports.EllipsisCell = EllipsisCell; var ColHeaderBase = _Components.BasicColHeader.extend(_templateObject3(), function (props) { return props.border || '1px solid #ccc'; }); exports.ColHeaderBase = ColHeaderBase; var flattenCellProps = function flattenCellProps(_ref) { var style = _ref.style, props = _objectWithoutProperties(_ref, ["style"]); return _objectSpread({}, style, {}, props); }; var OptimizedContentCell = (0, _AdvancedPureComponent["default"])(Cell, flattenCellProps); exports.OptimizedContentCell = OptimizedContentCell; var OptimizedEllipsisCell = (0, _AdvancedPureComponent["default"])(EllipsisCell, flattenCellProps); exports.OptimizedEllipsisCell = OptimizedEllipsisCell; var ColHeader = function ColHeader(_ref2) { var header = _ref2.header, sortOrder = _ref2.sortOrder, width = _ref2.width, _ref2$typeData = _ref2.typeData, typeData = _ref2$typeData === void 0 ? 'nonfixed-data' : _ref2$typeData, rest = _objectWithoutProperties(_ref2, ["header", "sortOrder", "width", "typeData"]); var gridContext = _react["default"].useContext(_context["default"]); var contextProps = typeData === 'nonfixed-data' ? gridContext.columnHeaderProps : _objectSpread({}, gridContext.columnHeaderProps, {}, gridContext.fixedColHead); return _react["default"].createElement(ColHeaderBase, _extends({ width: width }, rest, contextProps, { sortable: header.sortable }), header.display, sortOrder === 'asc' ? _react["default"].createElement(_Components.SortIndicator, null, "\u25B2") : sortOrder === 'desc' ? _react["default"].createElement(_Components.SortIndicator, null, "\u25BC") : null); }; var cellRenderWrapper = function cellRenderWrapper() { var propPreProcessor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (_) { return _; }; return function (render) { return function (reactVirtualizedProps) { return _react["default"].createElement(_VirtualizedContext.Consumer, { key: reactVirtualizedProps.key }, function (gridToolProps) { return render(propPreProcessor({ gridToolProps: gridToolProps, reactVirtualizedProps: reactVirtualizedProps })); }); }; }; }; exports.cellRenderWrapper = cellRenderWrapper; var defaultRowHeaderRender = function defaultRowHeaderRender(_ref3) { var _ref3$gridToolProps = _ref3.gridToolProps, getColumnHeaderProps = _ref3$gridToolProps.getColumnHeaderProps, headers = _ref3$gridToolProps.headers, data = _ref3$gridToolProps.data, _ref3$reactVirtualize = _ref3.reactVirtualizedProps, columnIndex = _ref3$reactVirtualize.columnIndex, rowIndex = _ref3$reactVirtualize.rowIndex, style = _ref3$reactVirtualize.style; return _react["default"].createElement(ColHeader, getColumnHeaderProps({ index: columnIndex, header: headers[columnIndex], style: style }), (0, _utils.extractAndFormatData)({ rowData: data[rowIndex], header: headers[columnIndex] })); }; exports.defaultRowHeaderRender = defaultRowHeaderRender; var defaultCellRender = function defaultCellRender(_ref4) { var _ref4$gridToolProps = _ref4.gridToolProps, getCellProps = _ref4$gridToolProps.getCellProps, headers = _ref4$gridToolProps.headers, data = _ref4$gridToolProps.data, _ref4$reactVirtualize = _ref4.reactVirtualizedProps, columnIndex = _ref4$reactVirtualize.columnIndex, rowIndex = _ref4$reactVirtualize.rowIndex, style = _ref4$reactVirtualize.style, gridContext = _ref4.gridContext, _ref4$typeData = _ref4.typeData, typeData = _ref4$typeData === void 0 ? 'nonfixed-data' : _ref4$typeData, _ref4$getRowStyle = _ref4.getRowStyle, getRowStyle = _ref4$getRowStyle === void 0 ? function (_) { return {}; } : _ref4$getRowStyle, rest = _objectWithoutProperties(_ref4, ["gridToolProps", "reactVirtualizedProps", "gridContext", "typeData", "getRowStyle"]); var cellProps = getCellProps(_objectSpread({ rowIndex: rowIndex, columnIndex: columnIndex, header: headers[columnIndex], data: data, style: style, isLastInRow: headers.length === columnIndex + 1 }, rest)); if (cellProps.isEditing) { var computedEditRender = cellProps.editRender || (cellProps.header.choices ? _Components.dropdownEditRender : _Components.inputCellEditRender); cellProps = _objectSpread({}, cellProps, { style: _objectSpread({}, cellProps.style) }); return _react["default"].createElement(_CellEditContainer["default"], _extends({}, cellProps, { render: computedEditRender })); } var rowStyle = getRowStyle ? getRowStyle({ cellProps: cellProps, headers: headers, data: data, rowIndex: rowIndex, columnIndex: columnIndex }) : {}; var customizeColumnStyle = {}; var formatCell = headers[columnIndex].formatCell; if (formatCell) { customizeColumnStyle = formatCell({ headers: headers, data: data, rowIndex: rowIndex, columnIndex: columnIndex }) || {}; } var contextProps = typeData === 'nonfixed-data' ? gridContext.rowContentProps : _objectSpread({}, gridContext.rowContentProps, {}, gridContext.fixedColData) || {}; cellProps = _objectSpread({}, cellProps, { style: _objectSpread({}, cellProps.style, {}, rowStyle, {}, customizeColumnStyle) }); if (cellProps.header.ellipsis) { return _react["default"].createElement(OptimizedEllipsisCell, _extends({}, (0, _omit2["default"])(['data'], cellProps), contextProps), (0, _utils.extractAndFormatData)({ rowData: data[rowIndex], header: headers[columnIndex] })); } return _react["default"].createElement(OptimizedContentCell, _extends({}, (0, _omit2["default"])(['data'], cellProps), contextProps), (0, _utils.extractAndFormatData)({ rowData: data[rowIndex], header: headers[columnIndex] })); }; exports.defaultCellRender = defaultCellRender; var withColumnOffset = function withColumnOffset(offSet) { return function (props) { return _objectSpread({}, props, { reactVirtualizedProps: _objectSpread({}, props.reactVirtualizedProps, { columnIndex: props.reactVirtualizedProps.columnIndex + offSet }) }); }; }; exports.withColumnOffset = withColumnOffset; //# sourceMappingURL=cellRender.js.map