UNPKG

@ebay/ui-core-react

Version:

Skin components build off React

2 lines (1 loc) 2.25 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../tslib.es6-BW4cJBUu.js"),o=require("react"),B=require("classnames"),R=require("../forwardRef-DBQKIlPy.js"),V=require("../utils-C9NL3q0j.js"),k=require("../hooks-BZOKHA9o.js"),x=require("../icons/ebay-icon-chevron-down-12/index.js"),b=t=>{var{children:e}=t,r=m.__rest(t,["children"]);return o.createElement("option",Object.assign({},r),e)},_=t=>typeof t<"u",I=t=>{var{value:e,defaultValue:r,className:n,borderless:p,fluid:c,name:s,disabled:d,onChange:h=()=>{},onBlur:f=()=>{},onFocus:y=()=>{},floatingLabel:l,forwardedRef:E,children:O,inputSize:g,invalid:i}=t,u=m.__rest(t,["value","defaultValue","className","borderless","fluid","name","disabled","onChange","onBlur","onFocus","floatingLabel","forwardedRef","children","inputSize","invalid"]);const w=i||u["aria-invalid"]==="true",[v,F]=o.useState(r),C=k.useFloatingLabel({text:l,disabled:d,size:g,invalid:w}),G=a=>{const{value:S,selectedIndex:N}=a.target;_(e)||F(S),h(a,{index:N,selected:[S]})},q=a=>{f(a)},j=a=>{y(a)},L=B("select",n,{"select--borderless":p,"select--fluid":c,"select--large":g==="large"});return o.createElement(C.Container,null,o.createElement(C.Label,{htmlFor:u.id}),o.createElement("span",{className:L},o.createElement("select",Object.assign({},u,{name:s,value:_(e)?e:v,disabled:d,onChange:G,onBlur:q,onFocus:j,ref:E}),T(O)),o.createElement(x.EbayIconChevronDown12,{height:"8",width:"8"})))},P=R.withForwardRef(I);function z(t){const e={};return t.forEach(r=>{const n=r.props;n.optgroup&&(Object.prototype.hasOwnProperty.call(e,n.optgroup)||(e[n.optgroup]=[]),e[n.optgroup].push(n))}),e}function T(t){const e=[],r=[];let n={},p=!1;const c=V.filterByType(t,b).map(s=>o.cloneElement(s,{}));if(c){n=z(c);let s;return c.forEach((d,h)=>{const f=d.props,{children:y,optgroup:l}=f,E=m.__rest(f,["children","optgroup"]);if(p=l&&e.indexOf(l)===-1,p){s=l;const g=n[s].map(i=>{const{children:u,optgroup:w}=i,v=m.__rest(i,["children","optgroup"]);return o.createElement(b,Object.assign({key:`opt-${i.value}`},v),u)});r.push(o.createElement("optgroup",{key:h,label:l},g)),e.push(l)}else l||r.push(o.createElement(b,Object.assign({key:h},E),y))}),r}}exports.EbaySelect=P;exports.EbaySelectOption=b;