UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

76 lines (75 loc) 2.53 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const DescendantProvider = require("../internals/DescendantProvider.cjs"); const TreeViewProvider = require("../internals/TreeViewProvider.cjs"); function _interopNamespace(e) { if (e && e.__esModule) return e; const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } }); if (e) { for (const k in e) { if (k !== "default") { const d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: () => e[k] }); } } } n.default = e; return Object.freeze(n); } const React__namespace = /* @__PURE__ */ _interopNamespace(React); function useHvTreeItem(nodeId) { const { instance, multiSelect } = TreeViewProvider.useTreeViewContext(); const { level = 0 } = React__namespace.useContext(DescendantProvider.DescendantContext); const expandable = instance ? instance.isNodeExpandable(nodeId) : false; const expanded = instance ? instance.isNodeExpanded(nodeId) : false; const focused = instance ? instance.isNodeFocused(nodeId) : false; const selected = instance ? instance.isNodeSelected(nodeId) : false; const disabled = instance ? instance.isNodeDisabled(nodeId) : false; const handleExpansion = (event) => { if (!instance || disabled) return; if (!focused) { instance.focusNode(event, nodeId); } const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey); if (expandable && !(multiple && instance.isNodeExpanded(nodeId))) { instance.toggleNodeExpansion(event, nodeId); } }; const handleSelection = (event) => { if (!instance || disabled) return; if (!focused) { instance.focusNode(event, nodeId); } const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey); if (multiple) { if (event.shiftKey) { instance.selectRange(event, { end: nodeId }); } else { instance.selectNode(event, nodeId, true); } } else { instance.selectNode(event, nodeId); } }; const preventSelection = (event) => { if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) { event.preventDefault(); } }; return { instance, level, disabled, expanded, selected, focused, handleExpansion, handleSelection, preventSelection }; } exports.useHvTreeItem = useHvTreeItem;