wix-style-react
Version:
62 lines (48 loc) • 2.48 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.virtualRowsAreEqual = virtualRowsAreEqual;
exports.getStickyColumnStyle = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _shallowequal = _interopRequireDefault(require("shallowequal"));
var _DataTableSt = require("./DataTable.st.css");
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 = parseInt(_DataTableSt.stVars.cellHorizontalPadding, 10);
var CELL_EDGE_PADDING = parseInt(_DataTableSt.stVars.cellHorizontalEdgePadding, 10);
var CELL_EDGE_PADDING_REDUCED_SPACING = parseInt(_DataTableSt.stVars.cellHorizontalEdgePaddingReducedSpacing, 10);
var getStickyColumnStyle = function getStickyColumnStyle(columns, column, reducedSpacingAndImprovedLayout) {
var cellEdgePadding = reducedSpacingAndImprovedLayout ? CELL_EDGE_PADDING_REDUCED_SPACING : CELL_EDGE_PADDING;
var left = 0;
for (var i = 0; i < columns.length; i++) {
var col = columns[i];
if (col === column) {
break;
}
var horizontalPadding = i === 0 ? cellEdgePadding + CELL_PADDING : 2 * CELL_PADDING;
left += parseInt(col.width, 10) + horizontalPadding;
}
return {
left: left
};
};
exports.getStickyColumnStyle = getStickyColumnStyle;