@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
JavaScript
/**
* @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
};