@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
70 lines (69 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const Table_styles = require("./Table.styles.cjs");
const TableContext = require("./TableContext.cjs");
const defaultComponent = "table";
const computeTablePartComponents = (rootComponent) => {
if (rootComponent === "table") {
return {
Table: "table",
THead: "thead",
TBody: "tbody",
Tr: "tr",
Th: "th",
Td: "td"
};
}
return {
Table: rootComponent,
THead: rootComponent,
TBody: rootComponent,
Tr: rootComponent,
Th: rootComponent,
Td: rootComponent
};
};
const HvTable = React.forwardRef(function HvTable2(props, ref) {
const {
classes: classesProp,
className,
component = defaultComponent,
stickyHeader = false,
stickyColumns = false,
variant = "default",
...others
} = uikitReactUtils.useDefaultProps("HvTable", props);
const { classes, cx } = Table_styles.useClasses(classesProp);
const containerRef = React.useRef(ref);
const components = React.useMemo(
() => computeTablePartComponents(component),
[component]
);
const tableContext = React.useMemo(
() => ({ components, variant, containerRef }),
[components, variant, containerRef]
);
const Table = React.useMemo(() => components.Table, [components]);
return /* @__PURE__ */ jsxRuntime.jsx(TableContext.default.Provider, { value: tableContext, children: /* @__PURE__ */ jsxRuntime.jsx(
Table,
{
ref,
role: component === defaultComponent ? null : "table",
className: cx(
classes.root,
{
[classes.stickyHeader]: stickyHeader,
[classes.stickyColumns]: stickyColumns,
[classes.listRow]: variant === "listrow"
},
className
),
...others
}
) });
});
exports.tableClasses = Table_styles.staticClasses;
exports.HvTable = HvTable;