UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

80 lines (79 loc) 2.69 kB
/** * DevExtreme (esm/__internal/scheduler/r1/components/base/virtual_row.js) * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import _extends from "@babel/runtime/helpers/esm/extends"; import { createComponentVNode } from "inferno"; import { BaseInfernoComponent } from "@devextreme/runtime/inferno"; import { renderUtils } from "../../utils/index"; import { Row, RowDefaultProps } from "./row"; import { VirtualCell, VirtualCellDefaultProps } from "./virtual_cell"; export const VirtualRowDefaultProps = _extends({}, RowDefaultProps, { leftVirtualCellWidth: 0, rightVirtualCellWidth: 0, cellsCount: 1 }); export class VirtualRow extends BaseInfernoComponent { constructor() { super(...arguments); this.virtualCells = null } getVirtualCells() { if (null !== this.virtualCells) { return this.virtualCells } const { cellsCount: cellsCount } = this.props; this.virtualCells = [...Array(cellsCount)]; return this.virtualCells } componentWillUpdate(nextProps) { if (this.props.cellsCount !== nextProps.cellsCount) { this.virtualCells = null } } render() { const { className: className, leftVirtualCellCount: leftVirtualCellCount, leftVirtualCellWidth: leftVirtualCellWidth, rightVirtualCellCount: rightVirtualCellCount, rightVirtualCellWidth: rightVirtualCellWidth, styles: styles, height: height } = this.props; const classes = `dx-scheduler-virtual-row ${className}`; const modifiedStyles = renderUtils.addHeightToStyle(height, styles); const virtualCells = this.getVirtualCells(); return createComponentVNode(2, Row, { className: classes, styles: modifiedStyles, leftVirtualCellWidth: leftVirtualCellWidth, rightVirtualCellWidth: rightVirtualCellWidth, leftVirtualCellCount: leftVirtualCellCount, rightVirtualCellCount: rightVirtualCellCount, children: virtualCells.map(((_, index) => createComponentVNode(2, VirtualCell, { width: VirtualCellDefaultProps.width, isHeaderCell: VirtualCellDefaultProps.isHeaderCell }, index.toString()))) }) } } VirtualRow.defaultProps = VirtualRowDefaultProps;