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