@progress/kendo-react-grid
Version: 
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
99 lines (98 loc) • 2.89 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 n from "react";
import e from "prop-types";
import { isClient as i } from "./utils/index.mjs";
import { GridClientContextReader as m } from "./GridClientContextReader.mjs";
import { GridComponent as t } from "./GridComponent.mjs";
import { GridClientStateProvider as u } from "./GridState.mjs";
import { useCustomComponent as f } from "@progress/kendo-react-common";
import { ServerGlobalization as b } from "@progress/kendo-react-intl";
const a = n.forwardRef((o, r) => {
  const [l] = f(u);
  return i() ? /* @__PURE__ */ n.createElement(l, { ...o }, /* @__PURE__ */ n.createElement(m, { id: o.id }, /* @__PURE__ */ n.createElement(t, { ref: r, ...o, innerGrid: a }))) : /* @__PURE__ */ n.createElement(b, { locale: o.locale, language: o.language }, /* @__PURE__ */ n.createElement(t, { ref: r, ...o }));
}), p = {
  data: e.oneOfType([
    e.array,
    e.shape({
      data: e.array,
      total: e.number
    })
  ]),
  sortable: e.oneOfType([
    e.bool,
    e.shape({
      mode: e.oneOf(["single", "multiple"]),
      allowUnsort: e.bool
    })
  ]),
  onSortChange: e.func,
  sort: e.array,
  highlight: e.any,
  filterable: e.bool,
  filter: e.any,
  onFilterChange: e.func,
  pageable: e.oneOfType([
    e.bool,
    e.shape({
      buttonCount: e.number,
      responsive: e.bool,
      info: e.bool,
      type: e.oneOf(["numeric", "input"]),
      pageSizes: e.oneOfType([
        e.bool,
        e.arrayOf(e.oneOfType([e.string, e.number]))
      ]),
      previousNext: e.bool
    })
  ]),
  pageSize: e.number,
  onPageChange: e.func,
  total: e.number,
  skip: e.number,
  take: e.number,
  fixedScroll: e.bool,
  onExpandChange: e.func,
  onSelectionChange: e.func,
  onHeaderSelectionChange: e.func,
  resizable: e.bool,
  reorderable: e.bool,
  group: e.any,
  groupable: e.oneOfType([
    e.bool,
    e.shape({
      enabled: e.bool,
      footer: e.oneOf(["always", "visible", "none"])
    })
  ]),
  onGroupChange: e.func,
  onRowClick: e.func,
  onRowDoubleClick: e.func,
  onItemChange: e.func,
  scrollable: e.oneOf(["none", "scrollable", "virtual"]),
  rowHeight: e.number,
  detailRowHeight: e.number,
  detail: e.any,
  style: e.object,
  onDataStateChange: e.func,
  onColumnResize: e.func,
  onColumnReorder: e.func,
  dataItemKey: e.string,
  navigatable: e.oneOfType([
    e.bool,
    e.shape({
      mode: e.oneOf(["incell", "inline", "popup"])
    })
  ]),
  size: e.oneOf(["small", "medium"])
};
a.displayName = "KendoReactGrid";
a.propTypes = p;
export {
  a as Grid
};