primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 2.07 kB
JavaScript
'use client';
import{Component as G,withComponent as h}from"@primereact/core/component";import{mergeProps as I,resolve as K}from"@primeuix/utils";import*as a from"react";import{createOptionalContext as v}from"@primereact/core/utils";var[j,l]=v();import{Component as k,withComponent as R}from"@primereact/core/component";import{useListboxOption as w}from"@primereact/headless/listbox";import{mergeProps as b}from"@primeuix/utils";import*as f from"react";import{createOptionalContext as C}from"@primereact/core/utils";var[L,q]=C();var O={as:"li",group:!1,uKey:void 0,index:void 0};var d=R({name:"Listbox.Option",defaultProps:O,setup(t){let e=l(),n=e?.getOptions(),o=t.props?.index??n?.findIndex(r=>r&&typeof r=="object"&&e?.props.optionKey?r[e.props.optionKey]===t.props.uKey:!1)??-1,s=n?.[o],p=t.props?.group??e?.isOptionGroup(s),m=w({option:s,index:o,group:p,context:e}),c=m.state.selected;return{listbox:e,listboxOption:m,option:s,index:o,group:p,selected:c}},render(t){let{props:e,ptmi:n,listbox:o,listboxOption:s,index:p,selected:m,group:c}=t,r=c?b(s.groupProps,{className:o?.cx("optionGroup",{index:p})},o?.ptm("optionGroup")):b(s.optionProps,{className:o?.cx("option",{index:p,selected:m,disabled:s.state.disabled})},o?.ptm("option")),i=b(r,n("root"));return f.createElement(L,{value:t},f.createElement(k,{instance:t,attrs:i,children:e.children}))}});var P={as:"ul"};var Z=h({name:"Listbox.List",defaultProps:P,setup(){let t=l();return{listbox:t,options:t?.getOptions()}},render(t){let{props:e,ptmi:n,listbox:o,options:s}=t,p=()=>s?.map((r,i)=>{if(o?.isOptionGroup(r)){let u=o?.getOptionGroupLabel(r.optionGroup),x=`group-${String(u??i)}`;return a.createElement(d,{key:x,index:i,group:!0},u)}else{let u=o?.getOptionLabel(r),x=o?.getOptionValue(r),g=x!=null&&typeof x!="object"?x:u??i,y=`opt-${String(g)}-${i}`;return a.createElement(d,{key:y,index:i},u)}}),m=I(o?.listProps,{className:o?.cx("list")},o?.ptm("list"),n("root")),c=K(e.children,t)??p();return a.createElement(G,{ref:o?.listRef,instance:t,attrs:m},c)}});export{Z as ListboxList,P as defaultListProps};