UNPKG

@wix/design-system

Version:

@wix/design-system

61 lines (59 loc) 3.05 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.getStickyColumnStyle = exports.getStickyColumnOffset = exports.CELL_PADDING = exports.CELL_EDGE_PADDING = void 0; exports.virtualRowsAreEqual = virtualRowsAreEqual; var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _shallowequal = _interopRequireDefault(require("shallowequal")); var _DataTableSt = require("./DataTable.st.css.js"); var _excluded = ["style", "data", "index"], _excluded2 = ["style", "data", "index"], _excluded3 = ["data"], _excluded4 = ["data"]; function virtualRowsAreEqual(prevProps, nextProps) { var prevStyle = prevProps.style, prevData = prevProps.data, prevIndex = prevProps.index, prevRest = (0, _objectWithoutProperties2.default)(prevProps, _excluded); var nextStyle = nextProps.style, nextData = nextProps.data, nextIndex = nextProps.index, nextRest = (0, _objectWithoutProperties2.default)(nextProps, _excluded2); var nextItemData = nextData.data, restNextItemData = (0, _objectWithoutProperties2.default)(nextData, _excluded3); var prevItemData = prevData.data, restPrevItemData = (0, _objectWithoutProperties2.default)(prevData, _excluded4); return nextIndex === prevIndex && (0, _shallowequal.default)(prevStyle, nextStyle) && (0, _shallowequal.default)(prevItemData[prevIndex], nextItemData[nextIndex]) && (0, _shallowequal.default)(restPrevItemData, restNextItemData) && (0, _shallowequal.default)(prevRest, nextRest); } var CELL_PADDING = exports.CELL_PADDING = parseInt(_DataTableSt.stVars.cellHorizontalPadding, 10); var CELL_EDGE_PADDING = exports.CELL_EDGE_PADDING = parseInt(_DataTableSt.stVars.cellHorizontalEdgePadding, 10); /** * The cell padding is themeable, so the offset has to stay symbolic — a number * computed from CELL_PADDING would misplace sticky columns in themes that * resolve `--wds-table-cell-padding-inline` to anything other than 12px. */ var getStickyColumnOffset = (widths, cellPaddings, edgePaddings) => "calc(".concat(widths, "px + ").concat(edgePaddings * CELL_EDGE_PADDING, "px + ").concat(cellPaddings, " * var(--wds-table-cell-padding-inline, ").concat(CELL_PADDING, "px))"); exports.getStickyColumnOffset = getStickyColumnOffset; var getStickyColumnStyle = exports.getStickyColumnStyle = function getStickyColumnStyle(columns, column) { var getColumnWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : col => parseInt(col.width, 10); var widths = 0; var cellPaddings = 0; var edgePaddings = 0; for (var i = 0; i < columns.length; i++) { var col = columns[i]; if (col === column) { break; } if (i === 0) { edgePaddings += 1; cellPaddings += 1; } else { cellPaddings += 2; } widths += getColumnWidth(col); } return { left: getStickyColumnOffset(widths, cellPaddings, edgePaddings) }; }; //# sourceMappingURL=DataTable.utils.js.map