devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
138 lines (135 loc) • 5.93 kB
JavaScript
/**
* DevExtreme (cjs/__internal/scheduler/r1/components/base/time_panel_table.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/
*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TimePanelTableDefaultProps = exports.TimePanelTable = void 0;
var _inferno = require("inferno");
var _inferno2 = require("@devextreme/runtime/inferno");
var _index = require("../../../../core/r1/utils/index");
var _all_day_panel_title = require("./all_day_panel_title");
var _cell = require("./cell");
var _row = require("./row");
var _table = require("./table");
var _time_panel_cell = require("./time_panel_cell");
const _excluded = ["timePanelData", "viewContext", "tableRef", "timeCellTemplate"];
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 (e.includes(n)) {
continue
}
t[n] = r[n]
}
}
return t
}
const TimePanelTableDefaultProps = exports.TimePanelTableDefaultProps = {
timePanelData: {
groupedData: [],
leftVirtualCellCount: 0,
rightVirtualCellCount: 0,
topVirtualRowCount: 0,
bottomVirtualRowCount: 0
}
};
class TimePanelTable extends _inferno2.InfernoWrapperComponent {
createEffects() {
return [(0, _inferno2.createReRenderEffect)()]
}
render() {
const _this$props = this.props,
{
timePanelData: timePanelData,
viewContext: viewContext,
tableRef: tableRef,
timeCellTemplate: timeCellTemplate
} = _this$props,
restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);
const {
topVirtualRowHeight: topVirtualRowHeight,
bottomVirtualRowHeight: bottomVirtualRowHeight
} = timePanelData;
const TimeCellTemplateComponent = (0, _index.getTemplate)(timeCellTemplate);
return (0, _inferno.normalizeProps)((0, _inferno.createComponentVNode)(2, _table.Table, _extends({}, restProps, {
className: "dx-scheduler-time-panel",
topVirtualRowHeight: topVirtualRowHeight ?? 0,
bottomVirtualRowHeight: bottomVirtualRowHeight ?? 0,
virtualCellsCount: 1,
tableRef: tableRef,
children: timePanelData.groupedData.map((_ref => {
let {
dateTable: dateTable,
groupIndex: groupIndex,
isGroupedAllDayPanel: isGroupedAllDayPanel,
key: fragmentKey
} = _ref;
return (0, _inferno.createFragment)([isGroupedAllDayPanel && (0, _inferno.createComponentVNode)(2, _row.Row, {
leftVirtualCellWidth: _row.RowDefaultProps.leftVirtualCellWidth,
rightVirtualCellWidth: _row.RowDefaultProps.rightVirtualCellWidth,
children: (0, _inferno.createComponentVNode)(2, _cell.CellBase, {
className: "dx-scheduler-time-panel-title-cell",
viewContext: viewContext,
startDate: _cell.CellBaseDefaultProps.startDate,
endDate: _cell.CellBaseDefaultProps.endDate,
index: _cell.CellBaseDefaultProps.index,
children: (0, _inferno.createComponentVNode)(2, _all_day_panel_title.AllDayPanelTitle)
})
}), dateTable.map((_ref2 => {
let {
groups: groups,
highlighted: highlighted,
index: cellIndex,
isFirstGroupCell: isFirstGroupCell,
isLastGroupCell: isLastGroupCell,
key: key,
startDate: startDate,
text: text
} = _ref2;
return (0, _inferno.createComponentVNode)(2, _row.Row, {
className: "dx-scheduler-time-panel-row",
leftVirtualCellWidth: _row.RowDefaultProps.leftVirtualCellWidth,
rightVirtualCellWidth: _row.RowDefaultProps.rightVirtualCellWidth,
children: (0, _inferno.createComponentVNode)(2, _time_panel_cell.TimePanelCell, {
viewContext: viewContext,
startDate: startDate,
endDate: _cell.CellBaseDefaultProps.endDate,
text: text,
groups: groups,
groupIndex: groupIndex,
isFirstGroupCell: isFirstGroupCell,
isLastGroupCell: isLastGroupCell,
index: cellIndex,
timeCellTemplate: TimeCellTemplateComponent,
highlighted: highlighted
})
}, key)
}))], 0, fragmentKey)
}))
})))
}
}
exports.TimePanelTable = TimePanelTable;
TimePanelTable.defaultProps = TimePanelTableDefaultProps;