UNPKG

@cavilha/input-autocomplete

Version:

- [Installing](#installing) - [Using](#Using) - [Get Involved](#get-involved) - [License](#license)

2 lines (1 loc) 3.25 kB
"use strict";var e=require("react"),t=require("@cavilha/text-input"),n=require("@cavilha/box"),r=require("@cavilha/button"),o=require("@cavilha/icon"),a=require("@fortawesome/pro-regular-svg-icons"),i=require("@cavilha/theme"),l=require("@cavilha/radio");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(e),d=u(t),f=u(n),s=u(r),p=u(o),m=function(){return m=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},m.apply(this,arguments)};var v=i.styled("div",{maxWidth:320,width:"calc(100% - ($medium1*2))",bc:"$background1",zIndex:"$max",borderRadius:4,boxShadow:"0px 0px 8px rgba(116, 116, 116, 0.4)",transform:"translateY(6px)",padding:"$medium2 $medium1",margin:"0 auto",position:"absolute",left:0,right:0,maxHeight:300,overflow:"hidden auto","@md":{maxWidth:600},"> div":{"> div":{margin:0,"&:last-child":{mb:"0px !important"},label:{cursor:"pointer"}}}}),h=i.styled("button",{display:"flex",alignItems:"center",backgroundColor:"transparent",border:"none",cursor:"pointer",fontSize:"$bodyMedium",width:"100%",minHeight:"$large1",padding:"$small3","&:focus":{backgroundColor:"$secondary0Hover"},"&:hover":{backgroundColor:"$secondary0Hover"}});i.styled(l.Radio,{display:"none !important"});var g=c.default.forwardRef((function(t,n){var r=t.options,o=void 0===r?[]:r,i=t.onChange,l=t.onSearch,u=t.onAutocomplete,g=t.onFocus,b=t.onAutocompleteClick,y=t.allowClear,x=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(t,["options","onChange","onSearch","onAutocomplete","onFocus","onAutocompleteClick","allowClear"]),w=e.useState([]),C=w[0],E=w[1],O=e.useState(!1),k=O[0],$=O[1],S=e.useState(""),q=S[0],j=S[1],I=e.useRef(null),A=e.useMemo((function(){return o}),[o]);e.useEffect((function(){var e=function(e){I.current&&!I.current.contains(e.target)&&$(!1)};return document.addEventListener("click",e),function(){return document.removeEventListener("click",e)}}),[I]);return e.useEffect((function(){A.length>0&&E(A)}),[A]),c.default.createElement(f.default,{css:{position:"relative"},ref:I},c.default.createElement(f.default,{css:{position:"relative"}},c.default.createElement(d.default,m({value:q,onFocus:function(e){$(!0),g&&g(e)},onChange:function(e){if(j(e.target.value),i&&i(e),u||l)if(!u||l){if(l&&!u){var t=l(e.target.value,A);E(t)}}else{var n=u(e.target.value,A);E(n)}else E(A)},ref:n},x)),y&&q.length>0&&c.default.createElement(s.default,{onClick:function(){return j("")},variant:"ghost",label:c.default.createElement(p.default,{icon:a.faTimes}),css:{width:"fit-content",height:"fit-content",position:"absolute",right:"5px",top:5,zIndex:"9999999"}})),k&&C.length>0&&c.default.createElement(v,null,null==C?void 0:C.map((function(e){return c.default.createElement(h,{tabIndex:0,onClick:function(){return function(e){if(b){var t=b(q,e);return j(t),void $(!1)}j("".concat(q).concat(e)),$(!1)}(e)},key:e},e)}))))}));module.exports=g;