UNPKG

@table-library/react-table-library

Version:
3 lines (2 loc) 5.12 kB
import{S as e,a as r}from"./sort-c8713016.js";export{S as SortIconPositions,a as SortToggleType}from"./sort-c8713016.js";import{o as t}from"./styles-492c6342.js";import*as o from"react";import{u as n,H as s}from"./HeaderCell-1d879c3c.js";import i from"clsx";import{jsx as c}from"@emotion/react";import{d as u}from"./defineProperty-9f9de5d0.js";import{B as l,I as p}from"./IconChevronSingleDown-c0866f17.js";import{s as f}from"./slicedToArray-c92cae3a.js";import{u as v,a as g,b as y}from"./useSyncControlledState-6e39bfdc.js";import"./toConsumableArray-25e5c43c.js";import"./unsupportedIterableToArray-dc74e326.js";function d(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?d(Object(t),!0).forEach((function(r){u(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var h=function(r){var t=r.sort,n=r.sortKey,s=r.sortIcon,a=void 0===s?{}:s,u=r.children,p=t.state,f=t.fns,v=m(m({},t.options.sortIcon),a),g=v.position===e.Prefix,y=v.position===e.Suffix,d=function(e,r,t,n,s,i){var c={height:"".concat(t),width:"".concat(t)};return e.sortKey===r&&e.reverse?i?o.cloneElement(i,m({},c)):null:e.sortKey!==r||e.reverse?n?o.cloneElement(n,m({},c)):null:s?o.cloneElement(s,m({},c)):null}(p,n,v.size,v.iconDefault,v.iconUp,v.iconDown);return c(l,{className:i({active:p.sortKey===n}),onClick:function(){return f.onToggleSort({sortKey:n})}},g&&d&&c("span",{style:{marginRight:v.margin}},d),c("div",{title:"string"==typeof u?u:""},u),y&&d&&c("span",{style:{marginLeft:v.margin}},d))},w=["sortKey","sortIcon","children"],O=o.memo((function(e){var r=e.sortKey,o=e.sortIcon,i=void 0===o?{}:o,a=e.children,u=t(e,w),l=n();if(!l)throw new Error("No Sort Context. No return value from useSort provided to Table component.");return c(s,u,c(h,{sort:l,sortKey:r,sortIcon:i},a))}));function b(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function j(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?b(Object(t),!0).forEach((function(r){u(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var P="TOGGLE_SORT",x=function(e,t){switch(t.type){case P:return function(e,t){var o=t.payload.value.sortKey===e.sortKey,n=e.reverse;if(o&&n&&t.payload.options.sortToggleType===r.AlternateWithReset)return{sortKey:"NONE",reverse:!1};var s=o&&!n;return j(j({},t.payload.value),{},{reverse:s})}(e,t);case"SET":return function(e,r){return j(j({},e),r.payload)}(e,t);default:throw new Error}},T={sortKey:"NONE",reverse:!1},E={position:e.Suffix,margin:"4px",size:"14px",iconDefault:c((function(e){var r=e.width,t=e.height,o=e.viewBox,n=e.strokeWidth;return c("svg",{id:"svg-icon-chevron-single-up-down","data-name":"svg-icon-chevron-single-up-down","data-testid":"svg-icon-chevron-single-up-down",xmlns:"http://www.w3.org/2000/svg",width:r||"36rem",height:t||"36rem",viewBox:o||"0 0 36 36",strokeWidth:n||"0rem"},c("polygon",{points:"36 12 36 15 18 6 0 15 0 12 18 3 36 12"}),c("polygon",{points:"0 24 0 21 18 30 36 21 36 24 18 33 0 24"}))}),null),iconUp:c((function(e){var r=e.width,t=e.height,o=e.viewBox,n=e.strokeWidth;return c("svg",{id:"svg-icon-chevron-single-up","data-name":"svg-icon-chevron-single-up","data-testid":"svg-icon-chevron-single-up",xmlns:"http://www.w3.org/2000/svg",width:r||"36rem",height:t||"36rem",viewBox:o||"0 0 36 36",strokeWidth:n||"0rem"},c("polygon",{points:"36 21 36 24 18 15 0 24 0 21 18 12 36 21"}))}),null),iconDown:c(p,null)},D={isServer:!1,sortToggleType:r.Alternate,sortIcon:E,isRecursive:!0},K=function(e,r,t,n){var s,i=j(j({},T),null!==(s=null==r?void 0:r.state)&&void 0!==s?s:{}),c=null!=r&&r.onChange?r.onChange:function(){},a=v(x,i,[],[c],n),u=f(a,2),l=u[0],p=u[1],d=o.useCallback((function(e){return p({type:P,payload:{value:e,options:t}})}),[t,p]);g(i,l,(function(){return p({type:"SET",payload:i})}));var m=o.useCallback((function(e,r,t){var o=r[l.sortKey]||function(e){return e};return(l.reverse?function(e){return o(e).reverse()}:o)(e).reduce((function(e,o){return t&&o.nodes?e.concat(j(j({},o),{},{nodes:m(o.nodes,r,t)})):e.concat(o)}),[])}),[l]),h=o.useMemo((function(){return{onToggleSort:d}}),[d]);y("sort",n,l);var w=j(j(j({},D),t),{},{sortIcon:j(j({},E),t?t.sortIcon:{})}),b=j(j({},l),{},{sortFn:m});return{state:b,fns:h,options:w,modifier:function(e){return w.isServer?e:b.sortFn(e,w.sortFns,w.isRecursive)},components:{HeaderCellSort:O}}};export{O as HeaderCellSort,K as useSort}; //# sourceMappingURL=sort.js.map