@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
75 lines (74 loc) • 2.22 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 useHvTreeItem = require("./useHvTreeItem.cjs");
const { useClasses } = uikitReactUtils.createClasses("HvTreeContent", {
root: {},
expanded: {},
selected: {},
focused: {},
disabled: {},
iconContainer: {},
label: {}
});
const DefaultContent = React.forwardRef(
function DefaultContent2(props, ref) {
const {
classes: classesProp,
className,
displayIcon,
expansionIcon,
icon: iconProp,
label,
nodeId,
onClick,
onMouseDown,
...others
} = props;
const { classes } = useClasses(classesProp);
const { cx } = uikitReactUtils.useCss();
const {
disabled,
expanded,
selected,
focused,
handleExpansion,
handleSelection,
preventSelection
} = useHvTreeItem.useHvTreeItem(nodeId);
const icon = iconProp ?? expansionIcon ?? displayIcon;
return (
/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */
/* @__PURE__ */ jsxRuntime.jsxs(
"div",
{
...others,
className: cx(className, classes.root, {
[classes.expanded]: expanded,
[classes.selected]: selected,
[classes.focused]: focused,
[classes.disabled]: disabled
}),
onClick: (event) => {
handleExpansion(event);
handleSelection(event);
onClick?.(event);
},
onMouseDown: (event) => {
preventSelection(event);
onMouseDown?.(event);
},
ref,
children: [
/* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.iconContainer, children: icon }),
/* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.label, children: label })
]
}
)
);
}
);
exports.DefaultContent = DefaultContent;
exports.useClasses = useClasses;