UNPKG

@table-library/react-table-library

Version:
3 lines (2 loc) 4.73 kB
import{s as n}from"./slicedToArray-c92cae3a.js";import{t as e}from"./toConsumableArray-25e5c43c.js";import{d as r}from"./defineProperty-9f9de5d0.js";import*as t from"react";import{a as o,f as i}from"./fromTreeToList-272db833.js";import{u,a}from"./useSyncControlledState-6e39bfdc.js";var d=function(n,e){return n.every((function(n){return e.includes(n)}))};function c(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function l(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?c(Object(t),!0).forEach((function(e){r(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}var s="ADD_BY_ID",f="REMOVE_BY_ID",y="ADD_BY_IDS",p="REMOVE_BY_IDS",I="ADD_BY_ID_EXCLUSIVELY",v="REMOVE_BY_ID_EXCLUSIVELY",b="ADD_ALL",g="REMOVE_ALL",m=function(n,r){switch(r.type){case s:return function(n,e){return l(l({},n),{},{id:null,ids:n.ids.concat(e.payload.id)})}(n,r);case f:return function(n,e){return l(l({},n),{},{id:null,ids:n.ids.filter((function(n){return n!==e.payload.id}))})}(n,r);case y:return function(n,r){var t=r.payload.options.isCarryForward&&null!=n.id?e(Array.from(new Set(r.payload.ids.concat(n.id)))):n.ids.concat(r.payload.ids);return l(l({},n),{},{id:null,ids:t})}(n,r);case p:return function(n,e){return l(l({},n),{},{id:null,ids:n.ids.filter((function(n){return!e.payload.ids.includes(n)}))})}(n,r);case I:return function(n,e){return l(l({},n),{},{id:e.payload.id,ids:[]})}(n,r);case v:return function(n){return l(l({},n),{},{id:null,ids:[]})}(n);case b:return function(n,r){return l(l({},n),{},{id:null,ids:e(Array.from(new Set([].concat(e(n.ids),e(r.payload.ids)))))})}(n,r);case g:return function(n){return l(l({},n),{},{id:null,ids:[]})}(n);case"SET":return function(n,e){return l(l({},n),e.payload)}(n,r);default:throw new Error}},A={isCarryForward:!0,isPartialToAll:!1},C=function(n){return l(l({},A),n)},O=function(n,r){var t=i(r,n);return[t].concat(e(o(null==t?void 0:t.nodes))).map((function(n){return n.id}))},S=function(e,r,i,c){var A=u(m,r,[],[i],c),S=n(A,2),E=S[0],T=S[1],h=t.useRef({lastToggledId:null,currentShiftIds:[]}),B=!E.ids.length,D=!!e.nodes.length&&d(e.nodes.map((function(n){return n.id})),E.ids),j=t.useCallback((function(n){return T({type:s,payload:{id:n}})}),[T]),k=t.useCallback((function(n){return T({type:f,payload:{id:n}})}),[T]),_=t.useCallback((function(n){E.ids.includes(n)?k(n):j(n),h.current.lastToggledId=n,h.current.currentShiftIds=[]}),[E,j,k]),P=t.useCallback((function(n,e){var r=C(e);T({type:y,payload:{ids:n,options:r}})}),[T]),w=t.useCallback((function(n){T({type:p,payload:{ids:n}})}),[T]),R=t.useCallback((function(n,r){var t,o,i=C(r),u=O(n,e.nodes);i.isPartialToAll||(t=u,o=E.ids,t.every((function(n){return!o.includes(n)}))?P(u,i):w(u)),i.isPartialToAll&&(d(u,E.ids)?w(u):P(u,i)),h.current.lastToggledId=n,h.current.currentShiftIds=[]}),[e.nodes,E.ids,P,w]),L=t.useCallback((function(n,r){var t=C(r),o=O(n,e.nodes);P(o,t)}),[e.nodes,P]),Y=t.useCallback((function(n){var r=O(n,e.nodes);w(r)}),[e.nodes,w]),x=t.useCallback((function(n){T({type:I,payload:{id:n}})}),[T]),V=t.useCallback((function(){T({type:v})}),[T]),M=t.useCallback((function(n){n===E.id?V():x(n),h.current.lastToggledId=n,h.current.currentShiftIds=[]}),[E,V,x]),F=t.useCallback((function(n){T({type:b,payload:{ids:n}})}),[T]),U=t.useCallback((function(){T({type:g})}),[T]),X=t.useCallback((function(n){var r=C(n),t=o(e.nodes).map((function(n){return n.id}));r.isPartialToAll||(B?F(t):U()),r.isPartialToAll&&(D?U():F(t))}),[e.nodes,B,F,U,D]),q=t.useCallback((function(n,r,t){var o=C(r);h.current.currentShiftIds.length&&(w(h.current.currentShiftIds),h.current.currentShiftIds=[]);var i=h.current.lastToggledId,u=n,a=t(e.nodes).map((function(n){return n.id})),d=a.findIndex((function(n){return n===i})),c=a.findIndex((function(n){return n===u}));if(d>c){var l=[c,d];d=l[0],c=l[1]}var s=a.slice(d,c+1);P(s,o),h.current.currentShiftIds=s}),[e.nodes,P,w]);a(r,E,(function(){return T({type:"SET",payload:r})}));var z=t.useMemo((function(){return{onAddById:j,onRemoveById:k,onToggleById:_,onAddByIds:P,onRemoveByIds:w,onToggleByIdRecursively:R,onAddByIdRecursively:L,onRemoveByIdRecursively:Y,onAddByIdExclusively:x,onRemoveByIdExclusively:V,onToggleByIdExclusively:M,onToggleByIdShift:q,onAddAll:F,onRemoveAll:U,onToggleAll:X}}),[F,j,P,U,k,w,x,V,M,X,_,R,q,L,Y]);return[l(l({},E),{},{none:B,all:D}),z]};export{S as u}; //# sourceMappingURL=index-7b379f2c.js.map