UNPKG

@progress/kendo-react-grid

Version:

React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package

64 lines (63 loc) 2.38 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import * as a from "react"; import { getSelectionOptions as i, getEditableOptions as o } from "@progress/kendo-react-data-tools"; import { normalizeSortable as d } from "../sortCommon.mjs"; import { normalize as u } from "../paging/GridPagerSettings.mjs"; const m = (e) => ({ lockedColumn: e.some((l) => l.locked) }), s = (e) => ({ multiColumn: e.some((l) => l.children && l.children.length > 0) }), c = (e) => ({ columnCellTemplate: e.some((l) => l.columnType !== "data" ? !1 : l.cells || l.cell || l.headerCell || l.footerCell || l.filterCell) }), b = (e) => ({ columnMenu: e.some((l) => l.columnMenu) }), C = (e) => a.Children.toArray(e.children).some((t) => t && t.type && t.type.displayName === "KendoReactGridColumn" ? t.props.hidden : !1), g = (e) => { const l = i(e.selectable), t = o(e.editable), r = e.sortable && d(e.sortable), n = e.pageable && u(e.pageable); return { cells: !!e.cells, detail: !!e.detail, cellRender: !!e.cellRender, rows: !!e.rows, rowRender: !!e.rowRender, filterCellRender: !!e.filterCellRender, headerCellRender: !!e.headerCellRender, editableInline: t.mode === "inline", selectionMultiple: l.enabled && l.mode === "multiple", selectionDrag: l.enabled && l.drag, columnMenu: !!e.columnMenu, filterOperators: !!e.filterOperators, groupable: !!e.groupable, group: !!e.group, groupExpand: !!e.groupExpand, customPager: !!e.pager, clipboard: !!e.clipboard, contextMenu: !!e.contextMenu, serverGrid: !e.isClient, scrollableVirtual: e.scrollable === "virtual", pageableInput: !!(e.pageable && n.type === "input"), sortableMultiple: !!(e.sortable && r.mode === "multiple"), hiddenColumns: C(e) }; }, h = (e) => ({ ...m(e), ...s(e), ...c(e), ...b(e) }), M = (e, l) => { const t = { ...g(e), ...h(l) }; return Object.keys(t).filter((r) => t[r] === !0); }; export { M as gridPremiumFeatures, h as isPremiumGridByColumns, g as isPremiumGridByProps };