UNPKG

primereact

Version:

A rich set of premium UI Components for React.

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