UNPKG

@table-library/react-table-library

Version:
3 lines (2 loc) 4.75 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-f1e2c7f1.js";import{u,a}from"./useSyncControlledState-367beeb4.js";var c=function(n,e){return n.every((function(n){return e.includes(n)}))};function d(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?d(Object(t),!0).forEach((function(e){r(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}var s=function(n,r){switch(r.type){case"ADD_BY_ID":return function(n,e){return l(l({},n),{},{id:null,ids:n.ids.concat(e.payload.id)})}(n,r);case"REMOVE_BY_ID":return function(n,e){return l(l({},n),{},{id:null,ids:n.ids.filter((function(n){return n!==e.payload.id}))})}(n,r);case"ADD_BY_IDS":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"REMOVE_BY_IDS":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"ADD_BY_ID_EXCLUSIVELY":return function(n,e){return l(l({},n),{},{id:e.payload.id,ids:[]})}(n,r);case"REMOVE_BY_ID_EXCLUSIVELY":case"REMOVE_ALL":return function(n){return l(l({},n),{},{id:null,ids:[]})}(n);case"ADD_ALL":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"SET":return function(n,e){return l(l({},n),e.payload)}(n,r);default:throw new Error}},f={isCarryForward:!0,isPartialToAll:!1},y=function(n){return l(l({},f),n)},p=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}))},I=function(e,r,i,d){var f=u(s,r,[],[i],d),I=n(f,2),v=I[0],b=I[1],D=t.useRef({lastToggledId:null,currentShiftIds:[]}),E=!v.ids.length,_=!!e.nodes.length&&c(e.nodes.map((function(n){return n.id})),v.ids),g=t.useCallback((function(n){return b({type:"ADD_BY_ID",payload:{id:n}})}),[b]),m=t.useCallback((function(n){return b({type:"REMOVE_BY_ID",payload:{id:n}})}),[b]),A=t.useCallback((function(n){v.ids.includes(n)?m(n):g(n),D.current.lastToggledId=n,D.current.currentShiftIds=[]}),[v,g,m]),O=t.useCallback((function(n,e){var r=y(e);b({type:"ADD_BY_IDS",payload:{ids:n,options:r}})}),[b]),S=t.useCallback((function(n){b({type:"REMOVE_BY_IDS",payload:{ids:n}})}),[b]),B=t.useCallback((function(n,r){var t,o,i=y(r),u=p(n,e.nodes);i.isPartialToAll||(t=u,o=v.ids,t.every((function(n){return!o.includes(n)}))?O(u,i):S(u)),i.isPartialToAll&&(c(u,v.ids)?S(u):O(u,i)),D.current.lastToggledId=n,D.current.currentShiftIds=[]}),[e.nodes,v.ids,O,S]),C=t.useCallback((function(n,r){var t=y(r),o=p(n,e.nodes);O(o,t)}),[e.nodes,O]),T=t.useCallback((function(n){var r=p(n,e.nodes);S(r)}),[e.nodes,S]),h=t.useCallback((function(n){b({type:"ADD_BY_ID_EXCLUSIVELY",payload:{id:n}})}),[b]),L=t.useCallback((function(){b({type:"REMOVE_BY_ID_EXCLUSIVELY"})}),[b]),R=t.useCallback((function(n){n===v.id?L():h(n),D.current.lastToggledId=n,D.current.currentShiftIds=[]}),[v,L,h]),j=t.useCallback((function(n){b({type:"ADD_ALL",payload:{ids:n}})}),[b]),k=t.useCallback((function(){b({type:"REMOVE_ALL"})}),[b]),Y=t.useCallback((function(n){var r=y(n),t=o(e.nodes).map((function(n){return n.id}));r.isPartialToAll||(E?j(t):k()),r.isPartialToAll&&(_?k():j(t))}),[e.nodes,E,j,k,_]),P=t.useCallback((function(n,r,t){var o=y(r);D.current.currentShiftIds.length&&(S(D.current.currentShiftIds),D.current.currentShiftIds=[]);var i=D.current.lastToggledId,u=n,a=t(e.nodes).map((function(n){return n.id})),c=a.findIndex((function(n){return n===i})),d=a.findIndex((function(n){return n===u}));if(c>d){var l=[d,c];c=l[0],d=l[1]}var s=a.slice(c,d+1);O(s,o),D.current.currentShiftIds=s}),[e.nodes,O,S]);a(r,v,(function(){return b({type:"SET",payload:r})}));var w=t.useMemo((function(){return{onAddById:g,onRemoveById:m,onToggleById:A,onAddByIds:O,onRemoveByIds:S,onToggleByIdRecursively:B,onAddByIdRecursively:C,onRemoveByIdRecursively:T,onAddByIdExclusively:h,onRemoveByIdExclusively:L,onToggleByIdExclusively:R,onToggleByIdShift:P,onAddAll:j,onRemoveAll:k,onToggleAll:Y}}),[j,g,O,k,m,S,h,L,R,Y,A,B,P,C,T]);return[l(l({},v),{},{none:E,all:_}),w]};export{I as u}; //# sourceMappingURL=index-396eb960.js.map