primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 1.18 kB
JavaScript
'use client';
import{Component as P,withComponent as C}from"@primereact/core/component";import{mergeProps as g}from"@primeuix/utils";import*as r from"react";import{createOptionalContext as f}from"@primereact/core/utils";var[N,i]=f();import{createOptionalContext as x}from"@primereact/core/utils";var[b,m]=x();import{createOptionalContext as u}from"@primereact/core/utils";var[c,R]=u();var l={as:"button"};var k=C({name:"Tree.Toggle",defaultProps:l,setup(){let s=m(),o=i(),n=o?.node,e=!!o?.expanded,t=!!o?.leaf,p=!!n?.loading,a=r.useMemo(()=>({isExpanded:e,isLeaf:t,isLoading:p}),[e,t,p]);return{tree:s,treenode:o,node:n,isExpanded:e,isLeaf:t,isLoading:p,contextValue:a}},render(s){let{props:o,ptmi:n,tree:e,node:t,isLeaf:p,contextValue:a}=s;if(p){let d=g(e?.getToggleSpacerProps?.(),{className:e?.cx("toggleSpacer")},e?.ptm("toggleSpacer"),n("root"));return r.createElement("span",{...d})}let T=g(t?e?.getToggleProps?.(t):void 0,{className:e?.cx("toggle")},e?.ptm("toggle"),n("root"));return r.createElement(c,{value:a},r.createElement(P,{instance:s,attrs:T,children:o.children}))}});export{k as TreeToggle,c as TreeToggleProvider,l as defaultToggleProps,R as useTreeToggleContext};