@table-library/react-table-library
Version:
react-table-library
3 lines (2 loc) • 12.4 kB
JavaScript
import*as e from"react";import{a as c,s as l,b as t,g as n,t as r,c as b,d as g,o as i,T as I,H as u,_ as d,r as C}from"./styles-79dd03ea.js";import{d as a}from"./defineProperty-9f9de5d0.js";import s from"clsx";import{jsx as o,css as G}from"@emotion/react";import{t as m}from"./toConsumableArray-25e5c43c.js";var Z=null,A=function(){return Z||(Z=e.createContext(null))},W=function(){return e.useContext(Z)};function X(e,c){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);c&&(t=t.filter((function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),l.push.apply(l,t)}return l}function h(e){for(var c=1;c<arguments.length;c++){var l=null!=arguments[c]?arguments[c]:{};c%2?X(Object(l),!0).forEach((function(c){a(e,c,l[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(l)):X(Object(l)).forEach((function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(l,c))}))}return e}var V=function(i,I){var u=e.useContext(c);if(!u)throw new Error("No Layout Context.");var d=u.tableElementRef,C=u.tableMemoryRef,a=u.layout,s=e.useRef(null),o=e.useRef(null),G=e.useRef(""),Z=e.useRef(null),A=e.useRef(!1),W=e.useCallback((function(e){var c;e.preventDefault(),G.current=d.current.style.getPropertyValue("--data-table-library_grid-template-columns"),A.current=!0,Z.current=s.current.offsetWidth-e.pageX,null===(c=s.current)||void 0===c||c.querySelector(".resizer-area").classList.add("active")}),[d]),X=e.useCallback((function(e){if(A.current){e.preventDefault();var c=Z.current+e.pageX,t=function(e,c,l,t){var i=n(l).map(r).filter((function(e){return!e.isHide})),I=i.findIndex((function(c){return c.index===e})),u=(i=i.map((function(e,c){return h(h({},e),{},{index:c})}))).reduce((function(e,c,l){return e||(l>I&&0!==c.width?c:e)}),null),d=i.reduce((function(e,c){return e+c.width}),0),C=i[I].minWidth,a=t>C&&0!==t?t:C,s=a-i[I].width,o=i.map((function(e,c){if(u&&I===c)return u.width-s>C?a:e.width;if((null==u?void 0:u.index)===c){var l=e.width-s;return l>C?l:e.width}return e.width})),G=d-o.reduce((function(e,c){return e+c}),0);o[I]=o[I]+G;var Z=!1,A=i.slice(0).reverse().map((function(e,l){var t=o.slice(0).reverse()[l],n=t/d*100;return e.isStiff||null!=c&&c.horizontalScroll?"".concat(t,"px"):Z?"minmax(0, ".concat(n,"%)"):(Z=!0,"minmax(0, 1fr)")})).slice(0).reverse().join(" "),W=function(e,c){if(m(Array.from(e.classList)).includes("pin-left")){var l=o.reduce((function(e,l,t){return t>=c?e:e+l}),0);e.style.left="".concat(l,"px")}if(m(Array.from(e.classList)).includes("pin-right")){var t=o.reduceRight((function(e,l,t){return t<=c?e:e+l}),0);e.style.right="".concat(t,"px")}};return b(l,W),g(l,W),A}(i,a,d,c);l(t,d,C)}}),[i,a,d,C]),V=e.useCallback((function(){var e;A.current=!1;var c=d.current.style.getPropertyValue("--data-table-library_grid-template-columns");if(G.current!==c){t(c,a);var l=n(d).map(r);C.current.dataColumns=l}null===(e=s.current)||void 0===e||e.querySelector(".resizer-area").classList.remove("active")}),[a,d,C]);return e.useEffect((function(){var e=o.current;return e&&(e.addEventListener("mousedown",W),document.addEventListener("mousemove",X),document.addEventListener("mouseup",V)),function(){e&&(e.removeEventListener("mousedown",W),document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",V))}}),[I,W,X,V]),{cellRef:s,resizeRef:o}},y=["index","className","hide","pinLeft","pinRight","stiff","isFooter","includePreviousColSpan","previousColSpans","gridColumnStart","gridColumnEnd","resize","role","children","style"];function p(e,c){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);c&&(t=t.filter((function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),l.push.apply(l,t)}return l}function v(e){for(var c=1;c<arguments.length;c++){var l=null!=arguments[c]?arguments[c]:{};c%2?p(Object(l),!0).forEach((function(c){a(e,c,l[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(l)):p(Object(l)).forEach((function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(l,c))}))}return e}var x=function(e,c){return c.find((function(c){return c.index===e}))},R=function(b){var g=b.index,a=b.className,m=b.hide,Z=b.pinLeft,A=b.pinRight,W=b.stiff,X=b.isFooter,h=b.includePreviousColSpan,p=b.previousColSpans,R=b.gridColumnStart,J=b.gridColumnEnd,H=b.resize,f=b.role,Y=void 0===f?"columnheader":f,N=b.children,B=b.style,F=i(b,y),S=e.useContext(I);!function(b,g){var i=e.useContext(c);if(!i)throw new Error("No Layout Context.");var I=i.layout,u=i.tableElementRef,d=i.tableMemoryRef;e.useLayoutEffect((function(){var e=d.current.dataColumns,c=n(u).map(r),i=x(b,e),C=(null==i?void 0:i.isHide)===!!g;if(null!=e&&e.length&&!C){var a=c.filter((function(e){return!e.isHide})).map((function(c){if(c.isStiff||null!=I&&I.horizontalScroll){var l=x(c.index,e);return"".concat(l.width||2*l.minWidth,"px")}return"minmax(0px, 1fr)"})).join(" ");l(a,u,d),t(a,I);var s=n(u).map(r);d.current.dataColumns=s}}),[b,g,I,u,d])}(g,m);var z=V(g,m),Q=z.cellRef,k=z.resizeRef,D=R&&J,w=D?J-R-1:0,L=h?R+p:R,j=h?J+p:J;return o(e.Fragment,null,o(u,d({role:Y,"data-table-library_th":"","data-hide":!!m,"data-resize-min-width":"boolean"==typeof H||null==(null==H?void 0:H.minWidth)?75:H.minWidth,style:v(v({},D?{gridColumnStart:L,gridColumnEnd:j}:{}),B),css:G(null==S?void 0:S.BaseCell," ",X?null==S?void 0:S.FooterCell:null==S?void 0:S.HeaderCell,";"+("production"===process.env.NODE_ENV?"":";label:HeaderCell;"),"production"===process.env.NODE_ENV?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlckNlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEb0IiLCJmaWxlIjoiSGVhZGVyQ2VsbC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBjcyBmcm9tICdjbHN4JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgeyBIZWFkZXJDZWxsQ29udGFpbmVyIH0gZnJvbSAnQHRhYmxlLWxpYnJhcnkvcmVhY3QtdGFibGUtbGlicmFyeS9jb21tb24vY29tcG9uZW50cy9DZWxsJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnQHRhYmxlLWxpYnJhcnkvcmVhY3QtdGFibGUtbGlicmFyeS9jb21tb24vY29udGV4dC9UaGVtZSc7XHJcbmltcG9ydCB7IExheW91dENvbnRleHQsIHByb3BhZ2F0ZVJlc2l6ZWRMYXlvdXQsIHNldFJlc2l6ZWRMYXlvdXQsIH0gZnJvbSAnQHRhYmxlLWxpYnJhcnkvcmVhY3QtdGFibGUtbGlicmFyeS9jb21tb24vY29udGV4dCc7XHJcbmltcG9ydCB7IHJlc2l6ZXJTdHlsZSB9IGZyb20gJ0B0YWJsZS1saWJyYXJ5L3JlYWN0LXRhYmxlLWxpYnJhcnkvcmVzaXplL3N0eWxlcyc7XHJcbmltcG9ydCB7IHVzZVJlc2l6ZSB9IGZyb20gJ0B0YWJsZS1saWJyYXJ5L3JlYWN0LXRhYmxlLWxpYnJhcnkvcmVzaXplL3VzZVJlc2l6ZSc7XHJcbmltcG9ydCB7IHRvRGF0YUNvbHVtbiwgZ2V0SGVhZGVyQ29sdW1ucywgfSBmcm9tICdAdGFibGUtbGlicmFyeS9yZWFjdC10YWJsZS1saWJyYXJ5L2NvbW1vbi91dGlsL2NvbHVtbnMnO1xyXG5jb25zdCBnZXRQcmVzZXJ2ZWRDb2x1bW4gPSAoaW5kZXgsIHByZXNlcnZlZERhdGFDb2x1bW5zKSA9PiB7XHJcbiAgICBjb25zdCBmaW5kUHJlc2VydmVkRGF0YUNvbHVtbiA9IChkYXRhQ29sdW1uKSA9PiBkYXRhQ29sdW1uLmluZGV4ID09PSBpbmRleDtcclxuICAgIGNvbnN0IHByZXNlcnZlZERhdGFDb2x1bW4gPSBwcmVzZXJ2ZWREYXRhQ29sdW1ucy5maW5kKGZpbmRQcmVzZXJ2ZWREYXRhQ29sdW1uKTtcclxuICAgIHJldHVybiBwcmVzZXJ2ZWREYXRhQ29sdW1uO1xyXG59O1xyXG5jb25zdCB1c2VVcGRhdGVMYXlvdXQgPSAoaW5kZXgsIGhpZGUpID0+IHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KExheW91dENvbnRleHQpO1xyXG4gICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBMYXlvdXQgQ29udGV4dC4nKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgbGF5b3V0LCB0YWJsZUVsZW1lbnRSZWYsIHRhYmxlTWVtb3J5UmVmIH0gPSBjb250ZXh0O1xyXG4gICAgUmVhY3QudXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBwcmVzZXJ2ZWREYXRhQ29sdW1ucyA9IHRhYmxlTWVtb3J5UmVmLmN1cnJlbnQuZGF0YUNvbHVtbnM7XHJcbiAgICAgICAgY29uc3QgZGF0YUNvbHVtbnMgPSBnZXRIZWFkZXJDb2x1bW5zKHRhYmxlRWxlbWVudFJlZikubWFwKHRvRGF0YUNvbHVtbik7XHJcbiAgICAgICAgY29uc3QgdGhpc1ByZXNlcnZlZERhdGFDb2x1bW4gPSBnZXRQcmVzZXJ2ZWRDb2x1bW4oaW5kZXgsIHByZXNlcnZlZERhdGFDb2x1bW5zKTtcclxuICAgICAgICBjb25zdCBoaWRlU3RhdHVzRGlkTm90Q2hhbmdlID0gdGhpc1ByZXNlcnZlZERhdGFDb2x1bW4/LmlzSGlkZSA9PT0gISFoaWRlO1xyXG4gICAgICAgIGlmICghcHJlc2VydmVkRGF0YUNvbHVtbnM/Lmxlbmd0aCB8fCBoaWRlU3RhdHVzRGlkTm90Q2hhbmdlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgdmlzaWJsZURhdGFDb2x1bW5zID0gZGF0YUNvbHVtbnMuZmlsdGVyKChkYXRhQ29sdW1uKSA9PiAhZGF0YUNvbHVtbi5pc0hpZGUpO1xyXG4gICAgICAgIGNvbnN0IGdldFBhcnRpYWxSZXNpemVkTGF5b3V0ID0gKGRhdGFDb2x1bW4pID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGFDb2x1bW4uaXNTdGlmZiB8fCBsYXlvdXQ/Lmhvcml6b250YWxTY3JvbGwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXNlcnZlZERhdGFDb2x1bW4gPSBnZXRQcmVzZXJ2ZWRDb2x1bW4oZGF0YUNvbHVtbi5pbmRleCwgcHJlc2VydmVkRGF0YUNvbHVtbnMpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3ByZXNlcnZlZERhdGFDb2x1bW4ud2lkdGggfHwgcHJlc2VydmVkRGF0YUNvbHVtbi5taW5XaWR0aCAqIDJ9cHhgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdtaW5tYXgoMHB4LCAxZnIpJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgcmVzaXplZExheW91dCA9IHZpc2libGVEYXRhQ29sdW1ucy5tYXAoZ2V0UGFydGlhbFJlc2l6ZWRMYXlvdXQpLmpvaW4oJyAnKTtcclxuICAgICAgICBzZXRSZXNpemVkTGF5b3V0KHJlc2l6ZWRMYXlvdXQsIHRhYmxlRWxlbWVudFJlZiwgdGFibGVNZW1vcnlSZWYpO1xyXG4gICAgICAgIHByb3BhZ2F0ZVJlc2l6ZWRMYXlvdXQocmVzaXplZExheW91dCwgbGF5b3V0KTtcclxuICAgICAgICBjb25zdCBuZXdQcmVzZXJ2ZWREYXRhQ29sdW1ucyA9IGdldEhlYWRlckNvbHVtbnModGFibGVFbGVtZW50UmVmKS5tYXAodG9EYXRhQ29sdW1uKTtcclxuICAgICAgICB0YWJsZU1lbW9yeVJlZi5jdXJyZW50LmRhdGFDb2x1bW5zID0gbmV3UHJlc2VydmVkRGF0YUNvbHVtbnM7XHJcbiAgICB9LCBbaW5kZXgsIGhpZGUsIGxheW91dCwgdGFibGVFbGVtZW50UmVmLCB0YWJsZU1lbW9yeVJlZl0pO1xyXG59O1xyXG5leHBvcnQgY29uc3QgSGVhZGVyQ2VsbCA9ICh7IGluZGV4LCBjbGFzc05hbWUsIGhpZGUsIHBpbkxlZnQsIHBpblJpZ2h0LCBzdGlmZiwgaXNGb290ZXIsIGluY2x1ZGVQcmV2aW91c0NvbFNwYW4sIHByZXZpb3VzQ29sU3BhbnMsIGdyaWRDb2x1bW5TdGFydCwgZ3JpZENvbHVtbkVuZCwgcmVzaXplLCByb2xlID0gJ2NvbHVtbmhlYWRlcicsIGNoaWxkcmVuLCBzdHlsZSwgLi4ucmVzdCB9KSA9PiB7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIHVzZVVwZGF0ZUxheW91dChpbmRleCwgaGlkZSk7XHJcbiAgICBjb25zdCB7IGNlbGxSZWYsIHJlc2l6ZVJlZiB9ID0gdXNlUmVzaXplKGluZGV4LCBoaWRlKTtcclxuICAgIGNvbnN0IGhhc0NvbFNwYW4gPSBncmlkQ29sdW1uU3RhcnQgJiYgZ3JpZENvbHVtbkVuZDtcclxuICAgIGNvbnN0IGNvbFNwYW4gPSBoYXNDb2xTcGFuID8gZ3JpZENvbHVtbkVuZCAtIGdyaWRDb2x1bW5TdGFydCAtIDEgOiAwO1xyXG4gICAgY29uc3QgY29tcHV0ZWRHcmlkQ29sdW1uU3RhcnQgPSBpbmNsdWRlUHJldmlvdXNDb2xTcGFuXHJcbiAgICAgICAgPyBncmlkQ29sdW1uU3RhcnQgKyBwcmV2aW91c0NvbFNwYW5zXHJcbiAgICAgICAgOiBncmlkQ29sdW1uU3RhcnQ7XHJcbiAgICBjb25zdCBjb21wdXRlZEdyaWRDb2x1bW5FbmQgPSBpbmNsdWRlUHJldmlvdXNDb2xTcGFuXHJcbiAgICAgICAgPyBncmlkQ29sdW1uRW5kICsgcHJldmlvdXNDb2xTcGFuc1xyXG4gICAgICAgIDogZ3JpZENvbHVtbkVuZDtcclxuICAgIHJldHVybiAoPD5cbiAgICAgIDxIZWFkZXJDZWxsQ29udGFpbmVyIHJvbGU9e3JvbGV9IGRhdGEtdGFibGUtbGlicmFyeV90aD1cIlwiIGRhdGEtaGlkZT17ISFoaWRlfSBkYXRhLXJlc2l6ZS1taW4td2lkdGg9e3R5cGVvZiByZXNpemUgPT09ICdib29sZWFuJyB8fCByZXNpemU/Lm1pbldpZHRoID09IG51bGwgPyA3NSA6IHJlc2l6ZS5taW5XaWR0aH0gc3R5bGU9e3tcclxuICAgICAgICAgICAgLi4uKGhhc0NvbFNwYW5cclxuICAgICAgICAgICAgICAgID8geyBncmlkQ29sdW1uU3RhcnQ6IGNvbXB1dGVkR3JpZENvbHVtblN0YXJ0LCBncmlkQ29sdW1uRW5kOiBjb21wdXRlZEdyaWRDb2x1bW5FbmQgfVxyXG4gICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgIC4uLnN0eWxlLFxyXG4gICAgICAgIH19IGNzcz17Y3NzIGBcbiAgICAgICAgICAke3RoZW1lPy5CYXNlQ2VsbH1cbiAgICAgICAgICAke2lzRm9vdGVyID8gdGhlbWU/LkZvb3RlckNlbGwgOiB0aGVtZT8uSGVhZGVyQ2VsbH1cbiAgICAgICAgYH0gY2xhc3NOYW1lPXtjcygndGgnLCBjbGFzc05hbWUsIHtcclxuICAgICAgICAgICAgc3RpZmYsXHJcbiAgICAgICAgICAgIGhpZGUsXHJcbiAgICAgICAgICAgIHJlc2l6ZSxcclxuICAgICAgICAgICAgJ3Bpbi1sZWZ0JzogcGluTGVmdCxcclxuICAgICAgICAgICAgJ3Bpbi1yaWdodCc6IHBpblJpZ2h0LFxyXG4gICAgICAgIH0pfSByZWY9e2NlbGxSZWZ9IHsuLi5yZXN0fT5cbiAgICAgICAgPGRpdj57Y2hpbGRyZW59PC9kaXY+XG4gICAgICAgIHtyZXNpemUgJiYgIWhpZGUgJiYgKDxkaXYgY2xhc3NOYW1lPVwicmVzaXplci1hcmVhXCIgcmVmPXtyZXNpemVSZWZ9IGNzcz17cmVzaXplclN0eWxlKHJlc2l6ZSkuYXJlYX0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZXNpemVyLWhhbmRsZVwiIGNzcz17cmVzaXplclN0eWxlKHJlc2l6ZSkuaGFuZGxlfS8+XG4gICAgICAgICAgPC9kaXY+KX1cbiAgICAgIDwvSGVhZGVyQ2VsbENvbnRhaW5lcj5cblxuICAgICAgXG4gICAgICB7QXJyYXkuZnJvbSh7IGxlbmd0aDogY29sU3BhbiB9LCAoKSA9PiAoPEhlYWRlckNlbGxDb250YWluZXIgY2xhc3NOYW1lPXtjcygndGgnLCAnaGlkZScsICdjb2xzcGFuJyl9Lz4pKX1cbiAgICA8Lz4pO1xyXG59O1xyXG4iXX0= */"),className:s("th",a,{stiff:W,hide:m,resize:H,"pin-left":Z,"pin-right":A}),ref:Q},F),o("div",null,N),H&&!m&&o("div",{className:"resizer-area",ref:k,css:C(H).area},o("span",{className:"resizer-handle",css:C(H).handle}))),Array.from({length:w},(function(){return o(u,{className:s("th","hide","colspan")})})))};export{R as H,A as c,W as u};
//# sourceMappingURL=HeaderCell-3621006f.js.map