UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

68 lines (67 loc) 2.28 kB
/** * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel.js) * Version: 25.2.8 * Build date: Mon Jun 08 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { createComponentVNode } from "inferno"; import { createReRenderEffect, InfernoWrapperComponent } from "../../../../core/r1/runtime/inferno/index"; import { VERTICAL_GROUP_ORIENTATION } from "../../../constants"; import { isVerticalGroupingApplied } from "../../utils/index"; import { GroupPanelHorizontal } from "./group_panel_horizontal"; import { GroupPanelBaseDefaultProps } from "./group_panel_props"; import { GroupPanelVertical } from "./group_panel_vertical"; export const GroupPanelDefaultProps = Object.assign({}, GroupPanelBaseDefaultProps, { groups: [], groupOrientation: VERTICAL_GROUP_ORIENTATION }); export class GroupPanel extends InfernoWrapperComponent { createEffects() { return [createReRenderEffect()] } render() { const { className: className, viewContext: viewContext, elementRef: elementRef, groupPanelData: groupPanelData, height: height, resourceCellTemplate: resourceCellTemplate, groupOrientation: groupOrientation, groups: groups, styles: styles } = this.props; const isVerticalLayout = isVerticalGroupingApplied(groups.length, groupOrientation); const Layout = isVerticalLayout ? GroupPanelVertical : GroupPanelHorizontal; return createComponentVNode(2, Layout, { viewContext: viewContext, height: height, resourceCellTemplate: resourceCellTemplate, className: className, groupPanelData: groupPanelData, elementRef: elementRef, styles: styles, groups: GroupPanelDefaultProps.groups, groupOrientation: GroupPanelDefaultProps.groupOrientation, groupByDate: GroupPanelDefaultProps.groupByDate }) } } GroupPanel.defaultProps = GroupPanelDefaultProps;