primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 1.79 kB
JavaScript
'use client';
import{Component as P,withComponent as v}from"@primereact/core/component";import{mergeProps as s}from"@primeuix/utils";import*as n from"react";import{createOptionalContext as z}from"@primereact/core/utils";var[S,m]=z();import{createOptionalContext as b}from"@primereact/core/utils";var[V,C]=b();import{createOptionalContext as R}from"@primereact/core/utils";var[u,I]=R();var h={as:"li",uKey:""};function d(r,t,i){return{node:t,expanded:!r.isCollapsed(t),leaf:!t.children||t.children.length===0,selected:r.isSelected(t),partiallySelected:r.isPartiallySelected(t),selectable:r.isSelectable(),expandable:r.isExpandable(t),level:i}}var M=v({name:"OrganizationChart.Node",defaultProps:h,setup({props:r}){let t=m(),i=C(),e=r.uKey,p=e?t?.findNodeByKey(e):void 0,o=e?t?.getNodeLevel(e)??1:1,l=p&&t?d(t,p,o):void 0;return{organizationchart:t,render:i,node:p,level:o,row:l}},render(r){let{props:t,ptmi:i,organizationchart:e,render:p,node:o,level:l,row:a}=r;if(!e||!o||!a)return null;let g=s(e.getTreeProps(o,l),{className:e.cx("tree")},e.ptm("tree"),i("root")),x=s(e.subtreeProps,{className:e.cx("subtree")},e.ptm("subtree")),f=a.expandable&&a.expanded,N={node:o,expanded:a.expanded,leaf:a.leaf,selected:a.selected,partiallySelected:a.partiallySelected,selectable:a.selectable,expandable:a.expandable},O=()=>{a.selectable&&o.key&&e.toggleNodeSelect(o.key)},y=s(e.getNodeProps(o,O),{className:e.cx("node")},e.ptm("node"));return n.createElement(P,{instance:r,attrs:g},n.createElement(u,{value:N},n.createElement("div",{...y},t.children)),f&&n.createElement("ul",{...x},o.children.map(c=>n.createElement(n.Fragment,{key:c.key},p?.renderNode(d(e,c,l+1))))))}});export{M as OrganizationChartNode,u as OrganizationChartNodeProvider,h as defaultNodeProps,I as useOrganizationChartNodeContext};