devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
83 lines (82 loc) • 3.04 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/r1/components/base/header_panel.js)
* Version: 24.2.7
* Build date: Mon Apr 28 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 {
createVNode,
createComponentVNode
} from "inferno";
import {
createReRenderEffect,
InfernoWrapperComponent
} from "@devextreme/runtime/inferno";
import {
PublicTemplate
} from "../../../../scheduler/r1/components/templates/index";
import {
isHorizontalGroupingApplied
} from "../../utils/index";
import {
DateHeader
} from "./date_header";
import {
GroupPanel,
GroupPanelDefaultProps
} from "./group_panel";
export const HeaderPanelDefaultProps = _extends({}, GroupPanelDefaultProps, {
isRenderDateHeader: true,
dateHeaderTemplate: DateHeader
});
export class HeaderPanel extends InfernoWrapperComponent {
createEffects() {
return [createReRenderEffect()]
}
render() {
const {
viewContext: viewContext,
dateHeaderData: dateHeaderData,
groupByDate: groupByDate,
groupOrientation: groupOrientation,
groupPanelData: groupPanelData,
groups: groups,
isRenderDateHeader: isRenderDateHeader,
dateCellTemplate: dateCellTemplate,
dateHeaderTemplate: dateHeaderTemplate,
resourceCellTemplate: resourceCellTemplate,
timeCellTemplate: timeCellTemplate
} = this.props;
const isHorizontalGrouping = isHorizontalGroupingApplied(groups, groupOrientation);
return createVNode(1, "thead", null, [isHorizontalGrouping && !groupByDate && createComponentVNode(2, GroupPanel, {
viewContext: viewContext,
groupPanelData: groupPanelData,
groups: groups,
groupByDate: groupByDate,
groupOrientation: groupOrientation,
resourceCellTemplate: resourceCellTemplate
}), isRenderDateHeader && createComponentVNode(2, PublicTemplate, {
template: dateHeaderTemplate,
templateProps: {
viewContext: viewContext,
groupByDate: groupByDate,
dateHeaderData: dateHeaderData,
groupOrientation: groupOrientation,
groups: groups,
dateCellTemplate: dateCellTemplate,
timeCellTemplate: timeCellTemplate
}
}), groupByDate && createComponentVNode(2, GroupPanel, {
viewContext: viewContext,
groupPanelData: groupPanelData,
groups: groups,
groupByDate: groupByDate,
groupOrientation: groupOrientation,
resourceCellTemplate: resourceCellTemplate
})], 0)
}
}
HeaderPanel.defaultProps = HeaderPanelDefaultProps;