@lanaco/lnc-react-ui
Version:
React component library
101 lines (99 loc) • 17.6 kB
JavaScript
;const h=require("react/jsx-runtime"),d=require("react"),x=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),p=require("./index-BPVoEhTF.cjs"),oe=require("./Chip.cjs"),se=require("./emotion-react.browser.esm-1R69UXoj.cjs"),ae=require("./ThemeProvider.cjs"),_=require("./objectWithoutPropertiesLoose-BLga_MQA.cjs"),j=require("./emotion-element-f0de968e.browser.esm-B7k6i6lC.cjs"),B=require("./setPrototypeOf-4aSEnBDm.cjs"),D=require("./index-EeoArxOx.cjs"),le=se.keyframes`
from {
opacity: 0;
}
to {
opacity: 1;
}
`,pe=x.newStyled.div`
@media (prefers-reduced-motion: no-preference) {
animation-name: ${le};
animation-fill-mode: backwards;
}
`,ce=({duration:e=300,delay:o=0,children:l,...n})=>h.jsx(pe,{...n,style:{...n.style||{},animationDuration:e+"ms",animationDelay:o+"ms"},children:l});function M(e,o){e.prototype=Object.create(o.prototype),e.prototype.constructor=e,B._setPrototypeOf(e,o)}function ue(e,o){return e.classList?!!o&&e.classList.contains(o):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+o+" ")!==-1}function de(e,o){e.classList?e.classList.add(o):ue(e,o)||(typeof e.className=="string"?e.className=e.className+" "+o:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+o))}function W(e,o){return e.replace(new RegExp("(^|\\s)"+o+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function fe(e,o){e.classList?e.classList.remove(o):typeof e.className=="string"?e.className=W(e.className,o):e.setAttribute("class",W(e.className&&e.className.baseVal||"",o))}const G={disabled:!1};var me=process.env.NODE_ENV!=="production"?p.PropTypes.oneOfType([p.PropTypes.number,p.PropTypes.shape({enter:p.PropTypes.number,exit:p.PropTypes.number,appear:p.PropTypes.number}).isRequired]):null,he=process.env.NODE_ENV!=="production"?p.PropTypes.oneOfType([p.PropTypes.string,p.PropTypes.shape({enter:p.PropTypes.string,exit:p.PropTypes.string,active:p.PropTypes.string}),p.PropTypes.shape({enter:p.PropTypes.string,enterDone:p.PropTypes.string,enterActive:p.PropTypes.string,exit:p.PropTypes.string,exitDone:p.PropTypes.string,exitActive:p.PropTypes.string})]):null;const $=d.createContext(null);var X=function(o){return o.scrollTop},w="unmounted",b="exited",C="entering",S="entered",I="exiting",y=function(e){M(o,e);function o(n,r){var t;t=e.call(this,n,r)||this;var i=r,s=i&&!i.isMounting?n.enter:n.appear,a;return t.appearStatus=null,n.in?s?(a=b,t.appearStatus=C):a=S:n.unmountOnExit||n.mountOnEnter?a=w:a=b,t.state={status:a},t.nextCallback=null,t}o.getDerivedStateFromProps=function(r,t){var i=r.in;return i&&t.status===w?{status:b}:null};var l=o.prototype;return l.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},l.componentDidUpdate=function(r){var t=null;if(r!==this.props){var i=this.state.status;this.props.in?i!==C&&i!==S&&(t=C):(i===C||i===S)&&(t=I)}this.updateStatus(!1,t)},l.componentWillUnmount=function(){this.cancelNextCallback()},l.getTimeouts=function(){var r=this.props.timeout,t,i,s;return t=i=s=r,r!=null&&typeof r!="number"&&(t=r.exit,i=r.enter,s=r.appear!==void 0?r.appear:i),{exit:t,enter:i,appear:s}},l.updateStatus=function(r,t){if(r===void 0&&(r=!1),t!==null)if(this.cancelNextCallback(),t===C){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:D.ReactDOM.findDOMNode(this);i&&X(i)}this.performEnter(r)}else this.performExit();else this.props.unmountOnExit&&this.state.status===b&&this.setState({status:w})},l.performEnter=function(r){var t=this,i=this.props.enter,s=this.context?this.context.isMounting:r,a=this.props.nodeRef?[s]:[D.ReactDOM.findDOMNode(this),s],c=a[0],f=a[1],v=this.getTimeouts(),E=s?v.appear:v.enter;if(!r&&!i||G.disabled){this.safeSetState({status:S},function(){t.props.onEntered(c)});return}this.props.onEnter(c,f),this.safeSetState({status:C},function(){t.props.onEntering(c,f),t.onTransitionEnd(E,function(){t.safeSetState({status:S},function(){t.props.onEntered(c,f)})})})},l.performExit=function(){var r=this,t=this.props.exit,i=this.getTimeouts(),s=this.props.nodeRef?void 0:D.ReactDOM.findDOMNode(this);if(!t||G.disabled){this.safeSetState({status:b},function(){r.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:I},function(){r.props.onExiting(s),r.onTransitionEnd(i.exit,function(){r.safeSetState({status:b},function(){r.props.onExited(s)})})})},l.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},l.safeSetState=function(r,t){t=this.setNextCallback(t),this.setState(r,t)},l.setNextCallback=function(r){var t=this,i=!0;return this.nextCallback=function(s){i&&(i=!1,t.nextCallback=null,r(s))},this.nextCallback.cancel=function(){i=!1},this.nextCallback},l.onTransitionEnd=function(r,t){this.setNextCallback(t);var i=this.props.nodeRef?this.props.nodeRef.current:D.ReactDOM.findDOMNode(this),s=r==null&&!this.props.addEndListener;if(!i||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var a=this.props.nodeRef?[this.nextCallback]:[i,this.nextCallback],c=a[0],f=a[1];this.props.addEndListener(c,f)}r!=null&&setTimeout(this.nextCallback,r)},l.render=function(){var r=this.state.status;if(r===w)return null;var t=this.props,i=t.children;t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef;var s=_._objectWithoutPropertiesLoose(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return d.createElement($.Provider,{value:null},typeof i=="function"?i(r,s):d.cloneElement(d.Children.only(i),s))},o}(d.Component);y.contextType=$;y.propTypes=process.env.NODE_ENV!=="production"?{nodeRef:p.PropTypes.shape({current:typeof Element>"u"?p.PropTypes.any:function(e,o,l,n,r,t){var i=e[o];return p.PropTypes.instanceOf(i&&"ownerDocument"in i?i.ownerDocument.defaultView.Element:Element)(e,o,l,n,r,t)}}),children:p.PropTypes.oneOfType([p.PropTypes.func.isRequired,p.PropTypes.element.isRequired]).isRequired,in:p.PropTypes.bool,mountOnEnter:p.PropTypes.bool,unmountOnExit:p.PropTypes.bool,appear:p.PropTypes.bool,enter:p.PropTypes.bool,exit:p.PropTypes.bool,timeout:function(o){var l=me;o.addEndListener||(l=l.isRequired);for(var n=arguments.length,r=new Array(n>1?n-1:0),t=1;t<n;t++)r[t-1]=arguments[t];return l.apply(void 0,[o].concat(r))},addEndListener:p.PropTypes.func,onEnter:p.PropTypes.func,onEntering:p.PropTypes.func,onEntered:p.PropTypes.func,onExit:p.PropTypes.func,onExiting:p.PropTypes.func,onExited:p.PropTypes.func}:{};function N(){}y.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:N,onEntering:N,onEntered:N,onExit:N,onExiting:N,onExited:N};y.UNMOUNTED=w;y.EXITED=b;y.ENTERING=C;y.ENTERED=S;y.EXITING=I;var ve=function(o,l){return o&&l&&l.split(" ").forEach(function(n){return de(o,n)})},k=function(o,l){return o&&l&&l.split(" ").forEach(function(n){return fe(o,n)})},z=function(e){M(o,e);function o(){for(var n,r=arguments.length,t=new Array(r),i=0;i<r;i++)t[i]=arguments[i];return n=e.call.apply(e,[this].concat(t))||this,n.appliedClasses={appear:{},enter:{},exit:{}},n.onEnter=function(s,a){var c=n.resolveArguments(s,a),f=c[0],v=c[1];n.removeClasses(f,"exit"),n.addClass(f,v?"appear":"enter","base"),n.props.onEnter&&n.props.onEnter(s,a)},n.onEntering=function(s,a){var c=n.resolveArguments(s,a),f=c[0],v=c[1],E=v?"appear":"enter";n.addClass(f,E,"active"),n.props.onEntering&&n.props.onEntering(s,a)},n.onEntered=function(s,a){var c=n.resolveArguments(s,a),f=c[0],v=c[1],E=v?"appear":"enter";n.removeClasses(f,E),n.addClass(f,E,"done"),n.props.onEntered&&n.props.onEntered(s,a)},n.onExit=function(s){var a=n.resolveArguments(s),c=a[0];n.removeClasses(c,"appear"),n.removeClasses(c,"enter"),n.addClass(c,"exit","base"),n.props.onExit&&n.props.onExit(s)},n.onExiting=function(s){var a=n.resolveArguments(s),c=a[0];n.addClass(c,"exit","active"),n.props.onExiting&&n.props.onExiting(s)},n.onExited=function(s){var a=n.resolveArguments(s),c=a[0];n.removeClasses(c,"exit"),n.addClass(c,"exit","done"),n.props.onExited&&n.props.onExited(s)},n.resolveArguments=function(s,a){return n.props.nodeRef?[n.props.nodeRef.current,s]:[s,a]},n.getClassNames=function(s){var a=n.props.classNames,c=typeof a=="string",f=c&&a?a+"-":"",v=c?""+f+s:a[s],E=c?v+"-active":a[s+"Active"],T=c?v+"-done":a[s+"Done"];return{baseClassName:v,activeClassName:E,doneClassName:T}},n}var l=o.prototype;return l.addClass=function(r,t,i){var s=this.getClassNames(t)[i+"ClassName"],a=this.getClassNames("enter"),c=a.doneClassName;t==="appear"&&i==="done"&&c&&(s+=" "+c),i==="active"&&r&&X(r),s&&(this.appliedClasses[t][i]=s,ve(r,s))},l.removeClasses=function(r,t){var i=this.appliedClasses[t],s=i.base,a=i.active,c=i.done;this.appliedClasses[t]={},s&&k(r,s),a&&k(r,a),c&&k(r,c)},l.render=function(){var r=this.props;r.classNames;var t=_._objectWithoutPropertiesLoose(r,["classNames"]);return d.createElement(y,j._extends({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},o}(d.Component);z.defaultProps={classNames:""};z.propTypes=process.env.NODE_ENV!=="production"?j._extends({},y.propTypes,{classNames:he,onEnter:p.PropTypes.func,onEntering:p.PropTypes.func,onEntered:p.PropTypes.func,onExit:p.PropTypes.func,onExiting:p.PropTypes.func,onExited:p.PropTypes.func}):{};function A(e,o){var l=function(t){return o&&d.isValidElement(t)?o(t):t},n=Object.create(null);return e&&d.Children.map(e,function(r){return r}).forEach(function(r){n[r.key]=l(r)}),n}function Ee(e,o){e=e||{},o=o||{};function l(f){return f in o?o[f]:e[f]}var n=Object.create(null),r=[];for(var t in e)t in o?r.length&&(n[t]=r,r=[]):r.push(t);var i,s={};for(var a in o){if(n[a])for(i=0;i<n[a].length;i++){var c=n[a][i];s[n[a][i]]=l(c)}s[a]=l(a)}for(i=0;i<r.length;i++)s[r[i]]=l(r[i]);return s}function P(e,o,l){return l[o]!=null?l[o]:e.props[o]}function ge(e,o){return A(e.children,function(l){return d.cloneElement(l,{onExited:o.bind(null,l),in:!0,appear:P(l,"appear",e),enter:P(l,"enter",e),exit:P(l,"exit",e)})})}function xe(e,o,l){var n=A(e.children),r=Ee(o,n);return Object.keys(r).forEach(function(t){var i=r[t];if(d.isValidElement(i)){var s=t in o,a=t in n,c=o[t],f=d.isValidElement(c)&&!c.props.in;a&&(!s||f)?r[t]=d.cloneElement(i,{onExited:l.bind(null,i),in:!0,exit:P(i,"exit",e),enter:P(i,"enter",e)}):!a&&s&&!f?r[t]=d.cloneElement(i,{in:!1}):a&&s&&d.isValidElement(c)&&(r[t]=d.cloneElement(i,{onExited:l.bind(null,i),in:c.props.in,exit:P(i,"exit",e),enter:P(i,"enter",e)}))}}),r}var ye=Object.values||function(e){return Object.keys(e).map(function(o){return e[o]})},Te={component:"div",childFactory:function(o){return o}},L=function(e){M(o,e);function o(n,r){var t;t=e.call(this,n,r)||this;var i=t.handleExited.bind(B._assertThisInitialized(t));return t.state={contextValue:{isMounting:!0},handleExited:i,firstRender:!0},t}var l=o.prototype;return l.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},l.componentWillUnmount=function(){this.mounted=!1},o.getDerivedStateFromProps=function(r,t){var i=t.children,s=t.handleExited,a=t.firstRender;return{children:a?ge(r,s):xe(r,i,s),firstRender:!1}},l.handleExited=function(r,t){var i=A(this.props.children);r.key in i||(r.props.onExited&&r.props.onExited(t),this.mounted&&this.setState(function(s){var a=j._extends({},s.children);return delete a[r.key],{children:a}}))},l.render=function(){var r=this.props,t=r.component,i=r.childFactory,s=_._objectWithoutPropertiesLoose(r,["component","childFactory"]),a=this.state.contextValue,c=ye(this.state.children).map(i);return delete s.appear,delete s.enter,delete s.exit,t===null?d.createElement($.Provider,{value:a},c):d.createElement($.Provider,{value:a},d.createElement(t,s,c))},o}(d.Component);L.propTypes=process.env.NODE_ENV!=="production"?{component:p.PropTypes.any,children:p.PropTypes.node,appear:p.PropTypes.bool,enter:p.PropTypes.bool,exit:p.PropTypes.bool,childFactory:p.PropTypes.func}:{};L.defaultProps=Te;const H=e=>{if(e.size==="small")return e.theme.typography.medium.fontSize;if(e.size==="medium")return e.theme.typography.large.fontSize;if(e.size==="large")return"1.3125rem"},be=e=>{if(e==="small")return"0.40625rem 0.375rem";if(e==="medium")return"0.46875rem 0.375rem";if(e==="large")return"0.53125rem 0.375rem"},J=e=>{if(e==="small")return"0.625rem 0.5rem 0.375rem 0.5rem";if(e==="medium")return"0.71875rem 0.5625rem 0.375rem 0.5625rem";if(e==="large")return"0.78125rem 0.625rem 0.375rem 0.625rem"},Ce=x.newStyled.div`
display: inline-block;
position: relative;
box-sizing: border-box;
border: 0.09375rem solid #bfbfbf;
background-color: white;
border-radius: 0.1875rem;
width: 100%;
transition: all 250ms ease;
`,Pe=x.newStyled.div`
padding: 0.15rem;
transition: all 250ms ease;
display: inline-block;
`,Ne=x.newStyled.div`
display: inline-block;
margin: 0.125rem;
flex-grow: 1;
transition: all 250ms ease;
width: fit-content;
& > div {
width: 100%;
}
`,Se=x.newStyled.div`
display: inline-block;
box-sizing: border-box;
margin: 0.125rem;
margin-left: 0.25rem;
flex-grow: 1;
transition: all 250ms ease;
`,we=x.newStyled.input`
width: 100%;
transition: all 250ms ease;
text-decoration: none;
-webkit-appearance: none;
-moz-appearance: none;
box-sizing: border-box;
outline: none;
border: none;
padding: ${e=>be(e.size)};
background-color: transparent;
font-family: ${e=>e.theme.typography.fontFamily};
font-size: ${e=>e.theme.typography[e.size].fontSize};
color: ${e=>e.theme.palette[e.color].textDark};
border-radius: 0.1875rem;
`,Oe=x.newStyled.div`
display: flex;
width: 100%;
`,De=x.newStyled.div`
padding: ${e=>J(e.size)};
color: ${e=>e.disabled?e.theme.palette.gray[800]:e.theme.palette[e.color].main};
font-size: ${e=>H(e)};
background-color: whitesmoke;
transition: all 250ms ease;
`,$e=x.newStyled.div`
padding: ${e=>J(e.size)};
color: ${e=>e.disabled?e.theme.palette.gray[800]:e.theme.palette[e.color].main};
font-size: ${e=>H(e)};
background-color: whitesmoke;
transition: all 250ms ease;
cursor: ${e=>e.disabled===!0?"default":"pointer"};
margin-right: 0;
margin-left: auto;
`,Re=x.newStyled.div`
position: absolute;
background-color: white;
z-index: 1;
margin-top: 0.25rem;
padding: 0.1875rem;
width: calc(100% - 0.625rem);
border-radius: 0.15625rem;
box-shadow: 0 0 0.375rem #bebebe;
border: 0.125rem solid ${e=>e.theme.palette[e.color].main};
display: flex;
flex-direction: column;
transition: all 250ms ease;
`,ke=x.newStyled.div`
font-family: ${e=>e.theme.typography.fontFamily};
font-size: ${e=>e.theme.typography[e.size].fontSize};
padding: 0.375rem;
cursor: pointer;
background-color: ${e=>e.hover?"whitesmoke":"inherit"};
color: ${e=>e.hover?e.theme.palette[e.color].main:"inherit"};
&:hover {
background-color: whitesmoke;
color: ${e=>e.theme.palette[e.color].main};
}
`,V=e=>{const{items:o,suggestions:l,onChange:n,id:r,disabled:t,className:i,size:s,color:a}=e,[c,f]=d.useState(""),[v,E]=d.useState(!1),[T,O]=d.useState(0);let q=d.createRef();const{theme:Q}=ae.useTheme();let g={size:s,color:a,theme:Q};const Y=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,u=>(u^crypto.getRandomValues(new Uint8Array(1))[0]&15>>u/4).toString(16)),Z=u=>{u.keyCode===27&&q.current.blur(),(u.keyCode===38||u.keyCode===40)&&u.preventDefault(),u.keyCode===38&&T>0&&O(T-1),u.keyCode===40&&T<l.length-1&&O(T+1),u.key==="Enter"&&l.length>0&&c&&c.length>0&&F(l[T]),u.key==="Backspace"&&o.length>0&&c===""&&U(o.length-1)},F=u=>{te({id:Y(),field:u.field,description:u.description,value:c,active:!0,dataType:u.dataType,operation:u.operation,operationDescription:u.operationDescription}),f(""),E(!1),O(0)},K=()=>{E(!1)},ee=u=>{E(!0),O(0),f(u.target.value)},U=u=>{let m=[...o].find((ie,R)=>R!==u);n(r,[...o].filter((ie,R)=>R!==u),m)},te=u=>{n(r,[...o,u],u)},ne=u=>{let m=[...o];m[u]={...m[u],active:!m[u].active},n(r,m,m[u])},re=()=>{if(v)return h.jsx(ce,{children:h.jsx(Re,{...g,children:l.map((u,m)=>d.createElement(ke,{...g,key:m,onMouseDown:()=>F(u),hover:T===m},`${u.description} - ${u.operationDescription}`))})})};return h.jsxs(Ce,{className:i,...g,children:[h.jsxs(Oe,{...g,children:[h.jsx(De,{...g,disabled:t,children:h.jsx("i",{className:"fas fa-search fa-fw"})}),h.jsxs(Pe,{...g,children:[h.jsx(L,{component:null,children:o.map((u,m)=>h.jsx(z,{timeout:200,classNames:"item",children:d.createElement(Ne,{...g,key:m,first:m===0,title:`${u.description} - ${u.operationDescription}: ${u.value}`},h.jsx(oe,{...g,id:u.id,text:u.description,additionalInfo:u.value,inactive:!u.active,onRemove:()=>t?{}:U(m),onClick:()=>t?{}:ne(m),disabled:t}))},m))}),h.jsx(Se,{...g,children:h.jsx(we,{...g,ref:q,value:c,onBlur:K,onChange:ee,onKeyDown:Z,disabled:t})})]}),h.jsx($e,{...g,disabled:t,children:h.jsx("i",{className:"fas fa-times fa-fw",onClick:()=>t?{}:n(r,[])})})]}),re()]})};V.defaultProps={id:"",disabled:!1,onChange:()=>{},items:[],suggestions:[],className:"",size:"small",color:"primary"};V.propTypes={id:p.PropTypes.any,disabled:p.PropTypes.bool,onChange:p.PropTypes.func,className:p.PropTypes.string,items:p.PropTypes.array,suggestions:p.PropTypes.array,size:p.PropTypes.oneOf(["small","medium","large"]),color:p.PropTypes.oneOf(["primary","secondary","success","error","warning","gray","background","transparent","neutral"])};module.exports=V;