@jswork/react-selection
Version:
Selection component for react.
2 lines • 2.57 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var L=Object.defineProperty,K=Object.defineProperties;var O=Object.getOwnPropertyDescriptors;var E=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var k=(e,c,t)=>c in e?L(e,c,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[c]=t,y=(e,c)=>{for(var t in c||(c={}))R.call(c,t)&&k(e,t,c[t]);if(E)for(var t of E(c))v.call(c,t)&&k(e,t,c[t]);return e},D=(e,c)=>K(e,O(c)),f=(e,c)=>L(e,"name",{value:c,configurable:!0});var w=(e,c)=>{var t={};for(var s in e)R.call(e,s)&&c.indexOf(s)<0&&(t[s]=e[s]);if(e!=null&&E)for(var s of E(e))c.indexOf(s)<0&&v.call(e,s)&&(t[s]=e[s]);return t};var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _reactlist = require('@jswork/react-list');var _fastdeepequal = require('fast-deep-equal'); var _fastdeepequal2 = _interopRequireDefault(_fastdeepequal);var J=f((e,c)=>{let t=e.indexOf(c);return t>-1?e.splice(t,1):e.push(c),e},"toggle"),A;(function(e){e.MAX_LIMIT_EXCEED="MAX_LIMIT_EXCEED"})(A||(A= exports.ErrorCode ={}));var N=f(e=>{let M=e,{allowDeselect:c=!1,max:t=1e3,value:s,onChange:o,onError:m,multiple:u=!1,valueExtractor:i="value",slots:p}=M,C=w(M,["allowDeselect","max","value","onChange","onError","multiple","valueExtractor","slots"]),[l,x]=_react.useState.call(void 0, s||(u?[]:null));_react.useEffect.call(void 0, ()=>{let a=_fastdeepequal2.default.call(void 0, s,l);s!==void 0&&!a&&(x(s),o==null||o(s))},[s,o,l]);let T=_react.useCallback.call(void 0, a=>{let n=_reactlist.getKey.call(void 0, a,0,i),d=c&&n===l?null:n;x(d),l!==d&&(o==null||o(d))},[l,c,i,o]),b=_react.useCallback.call(void 0, a=>{let n=J([...l],_reactlist.getKey.call(void 0, a,0,i)),r=t>0?n.slice(0,t):n;if(n.length>t){m==null||m({code:"MAX_LIMIT_EXCEED"});return}x(r),o==null||o(r)},[l,t,i,m,o]),h=u?b:T,V=_react.useCallback.call(void 0, a=>{let{item:n,index:r,data:d}=a,X=_reactlist.getKey.call(void 0, n,r,i),_=u?l==null?void 0:l.includes(X):l===X,g=u&&(l==null?void 0:l.length)>=t&&!_,q=f(()=>h(n),"onClick");return _reactlist.renderSlot.call(void 0, p.item,{item:n,index:r,data:d,active:_,disabled:g,onClick:q})},[l,u,t,i,h,p.item]);return _react2.default.createElement(_reactlist.ReactList,D(y({keyExtractor:i},C),{slots:{item:V,empty:p.empty}}))},"ReactSelection"),Y= exports.default =N;exports.ErrorCode = A; exports.ReactSelection = N; exports.default = Y;
//# sourceMappingURL=index.cjs.js.map