UNPKG

primereact

Version:

A rich set of premium UI Components for React.

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