simple-table-core 2.0.8 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Animate-3a7fcf5d.js → Animate-c3857efa.js} +2 -2
- package/dist/Animate-c3857efa.js.map +1 -0
- package/dist/{DatePicker-63405e18.js → DatePicker-d14cbf9a.js} +2 -2
- package/dist/DatePicker-d14cbf9a.js.map +1 -0
- package/dist/cjs/{Animate-b233af03.js → Animate-a43bf1cb.js} +2 -2
- package/dist/cjs/Animate-a43bf1cb.js.map +1 -0
- package/dist/cjs/{DatePicker-53dd311c.js → DatePicker-12f18810.js} +2 -2
- package/dist/cjs/DatePicker-12f18810.js.map +1 -0
- package/dist/cjs/components/Checkbox.d.ts +2 -1
- package/dist/cjs/context/TableContext.d.ts +7 -3
- package/dist/cjs/hooks/useAriaAnnouncements.d.ts +9 -0
- package/dist/cjs/hooks/useExpandedDepths.d.ts +14 -0
- package/dist/cjs/hooks/useFilterableData.d.ts +4 -2
- package/dist/cjs/hooks/useFlattenedRows.d.ts +4 -3
- package/dist/cjs/hooks/useHeaderLookup.d.ts +8 -0
- package/dist/cjs/hooks/useSortableData.d.ts +2 -1
- package/dist/cjs/hooks/useTableAPI.d.ts +6 -1
- package/dist/cjs/hooks/useTableDimensions.d.ts +1 -0
- package/dist/cjs/index-0c555f61.js +2 -0
- package/dist/cjs/index-0c555f61.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/styles.css +1 -1
- package/dist/cjs/types/OnRowGroupExpandProps.d.ts +2 -2
- package/dist/cjs/types/RowButton.d.ts +2 -0
- package/dist/cjs/types/TableRefType.d.ts +18 -0
- package/dist/cjs/utils/headerUtils.d.ts +13 -0
- package/dist/cjs/utils/rowUtils.d.ts +10 -7
- package/dist/components/Checkbox.d.ts +2 -1
- package/dist/context/TableContext.d.ts +7 -3
- package/dist/hooks/useAriaAnnouncements.d.ts +9 -0
- package/dist/hooks/useExpandedDepths.d.ts +14 -0
- package/dist/hooks/useFilterableData.d.ts +4 -2
- package/dist/hooks/useFlattenedRows.d.ts +4 -3
- package/dist/hooks/useHeaderLookup.d.ts +8 -0
- package/dist/hooks/useSortableData.d.ts +2 -1
- package/dist/hooks/useTableAPI.d.ts +6 -1
- package/dist/hooks/useTableDimensions.d.ts +1 -0
- package/dist/index-e35d0f44.js +2 -0
- package/dist/index-e35d0f44.js.map +1 -0
- package/dist/index.es.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/OnRowGroupExpandProps.d.ts +2 -2
- package/dist/types/RowButton.d.ts +2 -0
- package/dist/types/TableRefType.d.ts +18 -0
- package/dist/utils/headerUtils.d.ts +13 -0
- package/dist/utils/rowUtils.d.ts +10 -7
- package/package.json +1 -1
- package/src/styles/base.css +47 -1
- package/src/styles/themes/dark.css +1 -0
- package/src/styles/themes/frost.css +1 -0
- package/src/styles/themes/light.css +1 -0
- package/src/styles/themes/neutral.css +1 -0
- package/src/styles/themes/sky.css +1 -0
- package/src/styles/themes/violet.css +1 -0
- package/dist/Animate-3a7fcf5d.js.map +0 -1
- package/dist/DatePicker-63405e18.js.map +0 -1
- package/dist/cjs/Animate-b233af03.js.map +0 -1
- package/dist/cjs/DatePicker-53dd311c.js.map +0 -1
- package/dist/cjs/index-85f9b4fe.js +0 -2
- package/dist/cjs/index-85f9b4fe.js.map +0 -1
- package/dist/index-3ee6f1b1.js +0 -2
- package/dist/index-3ee6f1b1.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as n,u as i,a as t,c as e,b as o,A as a,d as r,f as l,R as d}from"./index-
|
|
2
|
-
//# sourceMappingURL=Animate-
|
|
1
|
+
import{_ as n,u as i,a as t,c as e,b as o,A as a,d as r,f as l,R as d}from"./index-e35d0f44.js";import{jsx as u}from"react/jsx-runtime";import{useRef as f,useMemo as s,useLayoutEffect as v}from"react";var m=function(m){var p=m.children,h=m.id,M=m.parentRef,c=m.tableRow,Y=n(m,["children","id","parentRef","tableRow"]),C=i(),g=C.allowAnimations,x=C.isResizing,R=C.isScrolling,b=C.rowHeight,j=f(null),A=f(null),B=t(R),w=t(x),_=s(function(){return e(b)},[b]);return v(function(){var n,i,t,e;if(g&&j.current&&!x){var u=j.current.getBoundingClientRect(),f=A.current;if(!R)if(!B||R)if(!w||x){if(A.current=u,f){var s=u.x-f.x,v=u.y-f.y;if((Math.abs(s)>=50||Math.abs(v)>5)&&(Math.abs(s)>5||Math.abs(v)>5)){var m=o(o({},a.ROW_REORDER),{onComplete:function(){j.current&&(j.current.style.zIndex="",j.current.style.position="",j.current.style.top="")}}),p=null===(n=null==M?void 0:M.current)||void 0===n?void 0:n.scrollTop,h=null===(i=null==M?void 0:M.current)||void 0===i?void 0:i.clientHeight,Y=null===(t=null==M?void 0:M.current)||void 0===t?void 0:t.scrollHeight;if(void 0!==p&&void 0!==h&&void 0!==Y){var C=_*(b+d),k=p-C,q=p+h+C,y=f.y>k&&q>f.y,z=u.y>k&&q>u.y,D=p>u.y,E=null!==(e=null==c?void 0:c.position)&&void 0!==e?e:0,F=.6*b,G=function(n,i,t){return Math.min(900,Math.max(100,100+80*Math.log10(Math.max(1,Math.min(Math.abs(n-i),Math.abs(n-t))))))};if(y&&!z&&u.y>p+h){var H=G(u.y,p,p+h);return void r({element:j.current,options:{startY:f.y,endY:p+h+H+E%15*F*2.5+E%7*.4*b,finalY:u.y,duration:m.duration,easing:m.easing,onComplete:m.onComplete}})}if(y&&!z&&D)return H=G(u.y,p,p+h),void r({element:j.current,options:{startY:f.y,endY:p-H-E%15*F*2.5-E%7*.4*b,finalY:u.y,duration:m.duration,easing:m.easing,onComplete:m.onComplete}});if(!y&&z&&f.y>p+h)return H=G(f.y,p,p+h),void r({element:j.current,options:{startY:p+h+H+E%10*F*1,endY:u.y,duration:m.duration,easing:m.easing,onComplete:m.onComplete}});if(!y&&z&&p>f.y)return H=G(f.y,p,p+h),void r({element:j.current,options:{startY:p-H-E%10*F*1,endY:u.y,duration:m.duration,easing:m.easing,onComplete:m.onComplete}})}l({element:j.current,fromBounds:f,toBounds:u,finalConfig:m})}}}else A.current=u;else A.current=u}},[g,_,x,R,M,B,w,b,null==c?void 0:c.position,c]),u("div",o({ref:j,"data-animate-id":h,id:h+""},Y,{children:p}))};m.displayName="Animate";export{m as Animate,m as default};
|
|
2
|
+
//# sourceMappingURL=Animate-c3857efa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Animate-c3857efa.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as e,b as n}from"./index-
|
|
2
|
-
//# sourceMappingURL=DatePicker-
|
|
1
|
+
import{u as e,b as n}from"./index-e35d0f44.js";import{jsxs as t,Fragment as a,jsx as r}from"react/jsx-runtime";import{useState as c}from"react";var i=function(i){var d,o,s=i.onChange,l=i.onClose,u=i.value,f=e(),h=f.nextIcon,m=f.prevIcon,v=c(u||new Date),k=v[0],p=v[1],w=c("days"),y=w[0],D=w[1],N=function(e,n){return new Date(e,n+1,0).getDate()};return t("div",n({className:"st-datepicker"},{children:[t("div",n({className:"st-datepicker-header"},{children:["days"===y&&t(a,{children:[r("button",n({onClick:function(){p(new Date(k.getFullYear(),k.getMonth()-1,1))},className:"st-datepicker-nav-btn"},{children:m})),t("div",n({className:"st-datepicker-header-label",onClick:function(){return D("months")}},{children:[(o=k,o.toLocaleString("default",{month:"long"}))," ",k.getFullYear()]})),r("button",n({onClick:function(){p(new Date(k.getFullYear(),k.getMonth()+1,1))},className:"st-datepicker-nav-btn"},{children:h}))]}),"months"===y&&r("div",n({className:"st-datepicker-header-label",onClick:function(){return D("years")}},{children:k.getFullYear()})),"years"===y&&r("div",n({className:"st-datepicker-header-label"},{children:"Select Year"}))]})),t("div",n({className:"st-datepicker-grid st-datepicker-".concat(y,"-grid")},{children:["days"===y&&function(){var e=[],t=k.getFullYear(),a=k.getMonth(),c=N(t,a),i=function(e,n){return new Date(e,n,1).getDay()}(t,a),d=N(t,a-1);["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(function(t,a){e.push(r("div",n({className:"st-datepicker-weekday"},{children:t}),"header-".concat(a)))});for(var o=function(t){var a=d-i+t+1;e.push(r("div",n({className:"st-datepicker-day other-month",onClick:function(){return function(e){var n=new Date(k.getFullYear(),k.getMonth()-1,e,12,0,0);p(n),s(n),null==l||l()}(a)}},{children:a}),"prev-".concat(a)))},f=0;i>f;f++)o(f);for(var h=function(c){var i=c===(new Date).getDate()&&a===(new Date).getMonth()&&t===(new Date).getFullYear(),d=new Date(u),o=c===d.getDate()&&a===d.getMonth()&&t===d.getFullYear();e.push(r("div",n({className:"st-datepicker-day ".concat(i?"today":""," ").concat(o?"selected":""),onClick:function(){return function(e){var n=k.getFullYear(),t=k.getMonth(),a=new Date(n,t,e,12,0,0);p(a),s(a),null==l||l()}(c)}},{children:c}),"day-".concat(c)))},m=1;c>=m;m++)h(m);var v=35-(i+c),w=function(t){e.push(r("div",n({className:"st-datepicker-day other-month",onClick:function(){return function(e){var n=new Date(k.getFullYear(),k.getMonth()+1,e,12,0,0);p(n),s(n),null==l||l()}(t)}},{children:t}),"next-".concat(t)))};for(m=1;v>=m;m++)w(m);return e}(),"months"===y&&(d=[],Array.from({length:12},function(e,n){return new Date(2e3,n,1).toLocaleString("default",{month:"short"})}).forEach(function(e,t){var a=t===k.getMonth();d.push(r("div",n({className:"st-datepicker-month ".concat(a?"selected":""),onClick:function(){return function(e){p(new Date(k.getFullYear(),e,1)),D("days")}(t)}},{children:e}),"month-".concat(t)))}),d),"years"===y&&function(){for(var e=[],t=k.getFullYear(),a=t-6,c=function(a){e.push(r("div",n({className:"st-datepicker-year ".concat(a===t?"selected":""),onClick:function(){return function(e){p(new Date(e,k.getMonth(),1)),D("months")}(a)}},{children:a}),"year-".concat(a)))},i=a;a+12>i;i++)c(i);return e}()]})),r("div",n({className:"st-datepicker-footer"},{children:r("button",n({className:"st-datepicker-today-btn",onClick:function(){var e=new Date,n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),12,0,0);p(n),s(n),null==l||l()}},{children:"Today"}))}))]}))};export{i as default};
|
|
2
|
+
//# sourceMappingURL=DatePicker-d14cbf9a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker-d14cbf9a.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var n=require("./index-
|
|
2
|
-
//# sourceMappingURL=Animate-
|
|
1
|
+
"use strict";var n=require("./index-0c555f61.js"),e=require("react/jsx-runtime"),i=require("react"),t=function(t){var o=t.children,r=t.id,a=t.parentRef,l=t.tableRow,d=n.__rest(t,["children","id","parentRef","tableRow"]),u=n.useTableContext(),v=u.allowAnimations,f=u.isResizing,s=u.isScrolling,m=u.rowHeight,h=i.useRef(null),p=i.useRef(null),c=n.usePrevious(s),M=n.usePrevious(f),Y=i.useMemo(function(){return n.calculateBufferRowCount(m)},[m]);return i.useLayoutEffect(function(){var e,i,t,o;if(v&&h.current&&!f){var r=h.current.getBoundingClientRect(),d=p.current;if(!s)if(!c||s)if(!M||f){if(p.current=r,d){var u=r.x-d.x,C=r.y-d.y;if((Math.abs(u)>=50||Math.abs(C)>5)&&(Math.abs(u)>5||Math.abs(C)>5)){var g=n.__assign(n.__assign({},n.ANIMATION_CONFIGS.ROW_REORDER),{onComplete:function(){h.current&&(h.current.style.zIndex="",h.current.style.position="",h.current.style.top="")}}),x=null===(e=null==a?void 0:a.current)||void 0===e?void 0:e.scrollTop,q=null===(i=null==a?void 0:a.current)||void 0===i?void 0:i.clientHeight,j=null===(t=null==a?void 0:a.current)||void 0===t?void 0:t.scrollHeight;if(void 0!==x&&void 0!==q&&void 0!==j){var B=Y*(m+n.ROW_SEPARATOR_WIDTH),R=x-B,b=x+q+B,w=d.y>R&&b>d.y,A=r.y>R&&b>r.y,k=x>r.y,y=null!==(o=null==l?void 0:l.position)&&void 0!==o?o:0,z=.6*m,D=function(n,e,i){return Math.min(900,Math.max(100,100+80*Math.log10(Math.max(1,Math.min(Math.abs(n-e),Math.abs(n-i))))))};if(w&&!A&&r.y>x+q){var E=D(r.y,x,x+q);return void n.animateWithCustomCoordinates({element:h.current,options:{startY:d.y,endY:x+q+E+y%15*z*2.5+y%7*.4*m,finalY:r.y,duration:g.duration,easing:g.easing,onComplete:g.onComplete}})}if(w&&!A&&k)return E=D(r.y,x,x+q),void n.animateWithCustomCoordinates({element:h.current,options:{startY:d.y,endY:x-E-y%15*z*2.5-y%7*.4*m,finalY:r.y,duration:g.duration,easing:g.easing,onComplete:g.onComplete}});if(!w&&A&&d.y>x+q)return E=D(d.y,x,x+q),void n.animateWithCustomCoordinates({element:h.current,options:{startY:x+q+E+y%10*z*1,endY:r.y,duration:g.duration,easing:g.easing,onComplete:g.onComplete}});if(!w&&A&&x>d.y)return E=D(d.y,x,x+q),void n.animateWithCustomCoordinates({element:h.current,options:{startY:x-E-y%10*z*1,endY:r.y,duration:g.duration,easing:g.easing,onComplete:g.onComplete}})}n.flipElement({element:h.current,fromBounds:d,toBounds:r,finalConfig:g})}}}else p.current=r;else p.current=r}},[v,Y,f,s,a,c,M,m,null==l?void 0:l.position,l]),e.jsx("div",n.__assign({ref:h,"data-animate-id":r,id:r+""},d,{children:o}))};t.displayName="Animate",exports.Animate=t,exports.default=t;
|
|
2
|
+
//# sourceMappingURL=Animate-a43bf1cb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Animate-a43bf1cb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./index-
|
|
2
|
-
//# sourceMappingURL=DatePicker-
|
|
1
|
+
"use strict";var e=require("./index-0c555f61.js"),n=require("react/jsx-runtime"),t=require("react");exports.default=function(a){var r,c,i=a.onChange,d=a.onClose,s=a.value,l=e.useTableContext(),o=l.nextIcon,u=l.prevIcon,h=t.useState(s||new Date),f=h[0],v=h[1],k=t.useState("days"),m=k[0],p=k[1],w=function(e,n){return new Date(e,n+1,0).getDate()};return n.jsxs("div",e.__assign({className:"st-datepicker"},{children:[n.jsxs("div",e.__assign({className:"st-datepicker-header"},{children:["days"===m&&n.jsxs(n.Fragment,{children:[n.jsx("button",e.__assign({onClick:function(){v(new Date(f.getFullYear(),f.getMonth()-1,1))},className:"st-datepicker-nav-btn"},{children:u})),n.jsxs("div",e.__assign({className:"st-datepicker-header-label",onClick:function(){return p("months")}},{children:[(c=f,c.toLocaleString("default",{month:"long"}))," ",f.getFullYear()]})),n.jsx("button",e.__assign({onClick:function(){v(new Date(f.getFullYear(),f.getMonth()+1,1))},className:"st-datepicker-nav-btn"},{children:o}))]}),"months"===m&&n.jsx("div",e.__assign({className:"st-datepicker-header-label",onClick:function(){return p("years")}},{children:f.getFullYear()})),"years"===m&&n.jsx("div",e.__assign({className:"st-datepicker-header-label"},{children:"Select Year"}))]})),n.jsxs("div",e.__assign({className:"st-datepicker-grid st-datepicker-".concat(m,"-grid")},{children:["days"===m&&function(){var t=[],a=f.getFullYear(),r=f.getMonth(),c=w(a,r),l=function(e,n){return new Date(e,n,1).getDay()}(a,r),o=w(a,r-1);["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(function(a,r){t.push(n.jsx("div",e.__assign({className:"st-datepicker-weekday"},{children:a}),"header-".concat(r)))});for(var u=function(a){var r=o-l+a+1;t.push(n.jsx("div",e.__assign({className:"st-datepicker-day other-month",onClick:function(){return function(e){var n=new Date(f.getFullYear(),f.getMonth()-1,e,12,0,0);v(n),i(n),null==d||d()}(r)}},{children:r}),"prev-".concat(r)))},h=0;l>h;h++)u(h);for(var k=function(c){var l=c===(new Date).getDate()&&r===(new Date).getMonth()&&a===(new Date).getFullYear(),o=new Date(s),u=c===o.getDate()&&r===o.getMonth()&&a===o.getFullYear();t.push(n.jsx("div",e.__assign({className:"st-datepicker-day ".concat(l?"today":""," ").concat(u?"selected":""),onClick:function(){return function(e){var n=f.getFullYear(),t=f.getMonth(),a=new Date(n,t,e,12,0,0);v(a),i(a),null==d||d()}(c)}},{children:c}),"day-".concat(c)))},m=1;c>=m;m++)k(m);var p=35-(l+c),y=function(a){t.push(n.jsx("div",e.__assign({className:"st-datepicker-day other-month",onClick:function(){return function(e){var n=new Date(f.getFullYear(),f.getMonth()+1,e,12,0,0);v(n),i(n),null==d||d()}(a)}},{children:a}),"next-".concat(a)))};for(m=1;p>=m;m++)y(m);return t}(),"months"===m&&(r=[],Array.from({length:12},function(e,n){return new Date(2e3,n,1).toLocaleString("default",{month:"short"})}).forEach(function(t,a){var c=a===f.getMonth();r.push(n.jsx("div",e.__assign({className:"st-datepicker-month ".concat(c?"selected":""),onClick:function(){return function(e){v(new Date(f.getFullYear(),e,1)),p("days")}(a)}},{children:t}),"month-".concat(a)))}),r),"years"===m&&function(){for(var t=[],a=f.getFullYear(),r=a-6,c=function(r){t.push(n.jsx("div",e.__assign({className:"st-datepicker-year ".concat(r===a?"selected":""),onClick:function(){return function(e){v(new Date(e,f.getMonth(),1)),p("months")}(r)}},{children:r}),"year-".concat(r)))},i=r;r+12>i;i++)c(i);return t}()]})),n.jsx("div",e.__assign({className:"st-datepicker-footer"},{children:n.jsx("button",e.__assign({className:"st-datepicker-today-btn",onClick:function(){var e=new Date,n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),12,0,0);v(n),i(n),null==d||d()}},{children:"Today"}))}))]}))};
|
|
2
|
+
//# sourceMappingURL=DatePicker-12f18810.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker-12f18810.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -3,6 +3,7 @@ interface CheckboxProps {
|
|
|
3
3
|
checked?: boolean;
|
|
4
4
|
children?: ReactNode;
|
|
5
5
|
onChange?: (checked: boolean) => void;
|
|
6
|
+
ariaLabel?: string;
|
|
6
7
|
}
|
|
7
|
-
declare const Checkbox: ({ checked, children, onChange }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const Checkbox: ({ checked, children, onChange, ariaLabel }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
9
|
export default Checkbox;
|
|
@@ -37,7 +37,7 @@ interface TableContextType {
|
|
|
37
37
|
editColumns?: boolean;
|
|
38
38
|
enableHeaderEditing?: boolean;
|
|
39
39
|
enableRowSelection?: boolean;
|
|
40
|
-
|
|
40
|
+
expandedDepths: Set<number>;
|
|
41
41
|
expandIcon?: ReactNode;
|
|
42
42
|
filterIcon?: ReactNode;
|
|
43
43
|
filters: TableFilterState;
|
|
@@ -65,6 +65,7 @@ interface TableContextType {
|
|
|
65
65
|
headerRegistry?: Map<string, HeaderRegistryEntry>;
|
|
66
66
|
headers: HeaderObject[];
|
|
67
67
|
hoveredHeaderRef: MutableRefObject<HeaderObject | null>;
|
|
68
|
+
maxHeaderDepth: number;
|
|
68
69
|
isAnimating: boolean;
|
|
69
70
|
isCopyFlashing: (cell: Cell) => boolean;
|
|
70
71
|
isInitialFocusedCell: (cell: Cell) => boolean;
|
|
@@ -111,7 +112,9 @@ interface TableContextType {
|
|
|
111
112
|
setSelectedCells: Dispatch<SetStateAction<Set<string>>>;
|
|
112
113
|
setSelectedColumns: Dispatch<SetStateAction<Set<number>>>;
|
|
113
114
|
setSelectedRows?: Dispatch<SetStateAction<Set<string>>>;
|
|
114
|
-
|
|
115
|
+
setExpandedDepths: Dispatch<SetStateAction<Set<number>>>;
|
|
116
|
+
setExpandedRows: Dispatch<SetStateAction<Map<string, number>>>;
|
|
117
|
+
setCollapsedRows: Dispatch<SetStateAction<Map<string, number>>>;
|
|
115
118
|
shouldPaginate: boolean;
|
|
116
119
|
sortDownIcon: ReactNode;
|
|
117
120
|
sortUpIcon: ReactNode;
|
|
@@ -119,7 +122,8 @@ interface TableContextType {
|
|
|
119
122
|
tableEmptyStateRenderer?: ReactNode;
|
|
120
123
|
tableRows: TableRow[];
|
|
121
124
|
theme: Theme;
|
|
122
|
-
|
|
125
|
+
expandedRows: Map<string, number>;
|
|
126
|
+
collapsedRows: Map<string, number>;
|
|
123
127
|
useHoverRowBackground: boolean;
|
|
124
128
|
useOddColumnBackground: boolean;
|
|
125
129
|
useOddEvenRowBackground: boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook to manage aria-live announcements for screen readers
|
|
3
|
+
* Provides a way to announce dynamic content changes to assistive technologies
|
|
4
|
+
*/
|
|
5
|
+
declare const useAriaAnnouncements: () => {
|
|
6
|
+
announcement: string;
|
|
7
|
+
announce: (message: string) => void;
|
|
8
|
+
};
|
|
9
|
+
export default useAriaAnnouncements;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Accessor } from "../types/HeaderObject";
|
|
3
|
+
/**
|
|
4
|
+
* Initialize expandedDepths based on expandAll prop and rowGrouping
|
|
5
|
+
*/
|
|
6
|
+
export declare const initializeExpandedDepths: (expandAll: boolean, rowGrouping?: Accessor[]) => Set<number>;
|
|
7
|
+
/**
|
|
8
|
+
* Hook to manage expandedDepths state and sync with rowGrouping changes
|
|
9
|
+
*/
|
|
10
|
+
declare const useExpandedDepths: (expandAll: boolean, rowGrouping?: Accessor[]) => {
|
|
11
|
+
expandedDepths: Set<number>;
|
|
12
|
+
setExpandedDepths: import("react").Dispatch<import("react").SetStateAction<Set<number>>>;
|
|
13
|
+
};
|
|
14
|
+
export default useExpandedDepths;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { TableFilterState, FilterCondition } from "../types/FilterTypes";
|
|
2
2
|
import Row from "../types/Row";
|
|
3
|
-
import { Accessor } from "../types/HeaderObject";
|
|
3
|
+
import HeaderObject, { Accessor } from "../types/HeaderObject";
|
|
4
4
|
interface UseFilterableDataProps {
|
|
5
5
|
rows: Row[];
|
|
6
|
+
headers: HeaderObject[];
|
|
6
7
|
externalFilterHandling: boolean;
|
|
7
8
|
onFilterChange?: (filters: TableFilterState) => void;
|
|
9
|
+
announce?: (message: string) => void;
|
|
8
10
|
}
|
|
9
11
|
interface UseFilterableDataReturn {
|
|
10
12
|
filteredRows: Row[];
|
|
@@ -14,5 +16,5 @@ interface UseFilterableDataReturn {
|
|
|
14
16
|
filters: TableFilterState;
|
|
15
17
|
computeFilteredRowsPreview: (filter: FilterCondition) => Row[];
|
|
16
18
|
}
|
|
17
|
-
declare const useFilterableData: ({ rows, externalFilterHandling, onFilterChange, }: UseFilterableDataProps) => UseFilterableDataReturn;
|
|
19
|
+
declare const useFilterableData: ({ rows, headers, externalFilterHandling, onFilterChange, announce, }: UseFilterableDataProps) => UseFilterableDataReturn;
|
|
18
20
|
export default useFilterableData;
|
|
@@ -6,8 +6,9 @@ interface UseFlattenedRowsProps {
|
|
|
6
6
|
rows: Row[];
|
|
7
7
|
rowGrouping?: Accessor[];
|
|
8
8
|
rowIdAccessor: Accessor;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
expandedRows: Map<string, number>;
|
|
10
|
+
collapsedRows: Map<string, number>;
|
|
11
|
+
expandedDepths: Set<number>;
|
|
11
12
|
rowStateMap: Map<string | number, RowState>;
|
|
12
13
|
hasLoadingRenderer: boolean;
|
|
13
14
|
hasErrorRenderer: boolean;
|
|
@@ -19,5 +20,5 @@ interface UseFlattenedRowsProps {
|
|
|
19
20
|
* can all operate on the flat structure, fixing issues where rowsPerPage
|
|
20
21
|
* didn't account for nested children.
|
|
21
22
|
*/
|
|
22
|
-
declare const useFlattenedRows: ({ rows, rowGrouping, rowIdAccessor,
|
|
23
|
+
declare const useFlattenedRows: ({ rows, rowGrouping, rowIdAccessor, expandedRows, collapsedRows, expandedDepths, rowStateMap, hasLoadingRenderer, hasErrorRenderer, hasEmptyRenderer, }: UseFlattenedRowsProps) => TableRow[];
|
|
23
24
|
export default useFlattenedRows;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import HeaderObject, { Accessor } from "../types/HeaderObject";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a memoized O(1) lookup map for headers by accessor
|
|
4
|
+
* @param headers The headers array to create lookup from
|
|
5
|
+
* @returns Map of accessor to HeaderObject
|
|
6
|
+
*/
|
|
7
|
+
declare const useHeaderLookup: (headers: HeaderObject[]) => Map<Accessor, HeaderObject>;
|
|
8
|
+
export default useHeaderLookup;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import HeaderObject, { Accessor } from "../types/HeaderObject";
|
|
2
2
|
import Row from "../types/Row";
|
|
3
3
|
import SortColumn, { SortDirection } from "../types/SortColumn";
|
|
4
|
-
declare const useSortableData: ({ headers, tableRows, externalSortHandling, onSortChange, rowGrouping, initialSortColumn, initialSortDirection, }: {
|
|
4
|
+
declare const useSortableData: ({ headers, tableRows, externalSortHandling, onSortChange, rowGrouping, initialSortColumn, initialSortDirection, announce, }: {
|
|
5
5
|
headers: HeaderObject[];
|
|
6
6
|
tableRows: Row[];
|
|
7
7
|
externalSortHandling: boolean;
|
|
@@ -9,6 +9,7 @@ declare const useSortableData: ({ headers, tableRows, externalSortHandling, onSo
|
|
|
9
9
|
rowGrouping?: string[] | undefined;
|
|
10
10
|
initialSortColumn?: string | undefined;
|
|
11
11
|
initialSortDirection?: SortDirection | undefined;
|
|
12
|
+
announce?: ((message: string) => void) | undefined;
|
|
12
13
|
}) => {
|
|
13
14
|
sort: SortColumn | null;
|
|
14
15
|
sortedRows: Row[];
|
|
@@ -6,22 +6,27 @@ import TableRow from "../types/TableRow";
|
|
|
6
6
|
import HeaderObject from "../types/HeaderObject";
|
|
7
7
|
import { TableFilterState, FilterCondition } from "../types/FilterTypes";
|
|
8
8
|
import { SortDirection } from "../types/SortColumn";
|
|
9
|
-
declare const useTableAPI: ({ cellRegistryRef, clearAllFilters, clearFilter, currentPage, filters, flattenedRows, headerRegistryRef, headers, includeHeadersInCSVExport, rowIdAccessor, rowIndexMap, rows, rowsPerPage, serverSidePagination, setCurrentPage, setRows, shouldPaginate, sort, tableRef, updateFilter, updateSort, visibleRows, }: {
|
|
9
|
+
declare const useTableAPI: ({ cellRegistryRef, clearAllFilters, clearFilter, currentPage, expandedDepths, filters, flattenedRows, headerRegistryRef, headers, includeHeadersInCSVExport, rowGrouping, rowIdAccessor, rowIndexMap, rows, rowsPerPage, serverSidePagination, setCollapsedRows, setCurrentPage, setExpandedDepths, setExpandedRows, setRows, shouldPaginate, sort, tableRef, updateFilter, updateSort, visibleRows, }: {
|
|
10
10
|
cellRegistryRef: MutableRefObject<Map<string, CellRegistryEntry>>;
|
|
11
11
|
clearAllFilters: () => void;
|
|
12
12
|
clearFilter: (accessor: Accessor) => void;
|
|
13
13
|
currentPage: number;
|
|
14
|
+
expandedDepths: Set<number>;
|
|
14
15
|
filters: TableFilterState;
|
|
15
16
|
flattenedRows: TableRow[];
|
|
16
17
|
headerRegistryRef: MutableRefObject<Map<string, HeaderRegistryEntry>>;
|
|
17
18
|
headers: HeaderObject[];
|
|
18
19
|
includeHeadersInCSVExport: boolean;
|
|
20
|
+
rowGrouping?: string[] | undefined;
|
|
19
21
|
rowIdAccessor: Accessor;
|
|
20
22
|
rowIndexMap: MutableRefObject<Map<string | number, number>>;
|
|
21
23
|
rows: Row[];
|
|
22
24
|
rowsPerPage: number;
|
|
23
25
|
serverSidePagination: boolean;
|
|
26
|
+
setCollapsedRows: (rows: Map<string, number> | ((prev: Map<string, number>) => Map<string, number>)) => void;
|
|
24
27
|
setCurrentPage: (page: number) => void;
|
|
28
|
+
setExpandedDepths: (depths: Set<number> | ((prev: Set<number>) => Set<number>)) => void;
|
|
29
|
+
setExpandedRows: (rows: Map<string, number> | ((prev: Map<string, number>) => Map<string, number>)) => void;
|
|
25
30
|
setRows: (rows: Row[]) => void;
|
|
26
31
|
shouldPaginate: boolean;
|
|
27
32
|
sort: SortColumn | null;
|
|
@@ -9,6 +9,7 @@ interface UseTableDimensionsProps {
|
|
|
9
9
|
interface UseTableDimensionsReturn {
|
|
10
10
|
containerWidth: number;
|
|
11
11
|
calculatedHeaderHeight: number;
|
|
12
|
+
maxHeaderDepth: number;
|
|
12
13
|
}
|
|
13
14
|
export declare const useTableDimensions: ({ effectiveHeaders, headerHeight, rowHeight, tableBodyContainerRef, }: UseTableDimensionsProps) => UseTableDimensionsReturn;
|
|
14
15
|
export {};
|