UNPKG

@ebay/ui-core-react

Version:

Skin components build off React

2 lines (1 loc) 3.4 kB
"use strict";const m=require("./tslib.es6-C4EgNkz1.js"),o=require("react"),re=require("classnames"),ce=require("./forwardRef-DBQKIlPy.js"),f=require("./utils-C9NL3q0j.js"),L=require("./icon-CR8ApQBy.js"),ue=require("./icon-button-B1aE4GTn.js"),de=require("./hooks-uidlIIid.js"),w=n=>{var{children:l,name:a,buttonAriaLabel:i,onClick:u=()=>{}}=n,r=m.__rest(n,["children","name","buttonAriaLabel","onClick"]);return a?i?o.createElement(ue.EbayIconButton,Object.assign({"aria-label":i,icon:a,transparent:!0,onClick:u},r)):o.createElement(L.EbayIcon,Object.assign({name:a},r)):l},K=n=>o.createElement("span",Object.assign({},n)),P=n=>{var{children:l,name:a}=n,i=m.__rest(n,["children","name"]);return a?o.createElement(L.EbayIcon,Object.assign({name:a},i)):l},F=n=>o.createElement("span",Object.assign({},n)),y=n=>typeof n<"u",be=n=>{var l,a,{type:i="text",invalid:u,fluid:r,multiline:_,onChange:q=()=>{},onInputChange:B=()=>{},onFocus:j=()=>{},onBlur:k=()=>{},onKeyPress:O=()=>{},onKeyUp:V=()=>{},onKeyDown:N=()=>{},onInvalid:S=()=>{},onFloatingLabelInit:R=()=>{},onButtonClick:D=()=>{},autoFocus:h,defaultValue:p="",value:g,forwardedRef:U,inputSize:E="default",floatingLabel:z,floatingLabelStatic:A,children:d,placeholder:M,opaqueLabel:W}=n,c=m.__rest(n,["type","invalid","fluid","multiline","onChange","onInputChange","onFocus","onBlur","onKeyPress","onKeyUp","onKeyDown","onInvalid","onFloatingLabelInit","onButtonClick","autoFocus","defaultValue","value","forwardedRef","inputSize","floatingLabel","floatingLabelStatic","children","placeholder","opaqueLabel"]);const[C,$]=o.useState(p),[G,H]=o.useState(p),I=de.useFloatingLabel({text:z,disabled:c.disabled,size:E,invalid:u,opaqueLabel:W,static:A||i==="date",onMount:R,containerTagName:r?"div":"span"}),T=t=>{var e;j(t,{value:((e=t?.target)===null||e===void 0?void 0:e.value)||p})},J=t=>{var e;const s=(e=t.target)===null||e===void 0?void 0:e.value;k(t,{value:s}),s!==C&&(q(t,{value:s}),$(s))},Q=t=>{const e=t.target;O(t,{value:e?.value})},X=t=>{const e=t.target;V(t,{value:e?.value})},Y=t=>{const e=t.target;N(t,{value:e?.value})},Z=t=>{const e=t.target;S(t,{value:e?.value})},ee=t=>{D(t,{value:C})};o.useEffect(()=>{h&&T()},[]);const te=t=>{var e;const s=(e=t.target)===null||e===void 0?void 0:e.value;y(g)||H(s),B(t,{value:s})},ne=_?"textarea":"input",oe=r?"div":"span",ae=f.findComponent(d,P),b=f.findComponent(d,F),le=(l=b?.props)===null||l===void 0?void 0:l.id,x=f.findComponent(d,w),v=f.findComponent(d,K),ie=(a=v?.props)===null||a===void 0?void 0:a.id,se=re("textbox",c.className,{"textbox--fluid":r,"textbox--large":E==="large","textbox--disabled":c.disabled,"textbox--invalid":u,"textbox--readonly":c.readOnly});return o.createElement(I.Container,null,o.createElement(I.Label,{htmlFor:c.id}),o.createElement(oe,{className:se},ae,b,o.createElement(ne,Object.assign({"aria-describedby":[le,ie].filter(Boolean).join(" ")||void 0},c,{className:"textbox__control",type:i,"aria-invalid":u,value:y(g)?g:G,onChange:te,onBlur:J,onFocus:T,onKeyPress:Q,onKeyUp:X,onKeyDown:Y,onInvalid:Z,autoFocus:h,ref:U,placeholder:M})),v,x&&o.cloneElement(x,Object.assign(Object.assign({},x.props),{onClick:t=>{const{onClick:e=()=>{}}=x.props;e(t),ee(t)}}))))},xe=ce.withForwardRef(be);exports.EbayTextbox=xe;exports.EbayTextboxPostfixIcon=w;exports.EbayTextboxPostfixText=K;exports.EbayTextboxPrefixIcon=P;exports.EbayTextboxPrefixText=F;exports.isControlled=y;