@simple-table/react 4.0.8 → 4.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/cjs/index.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/SimpleTable.d.ts +7 -24
- package/dist/types/buildVanillaConfig.d.ts +3 -3
- package/dist/types/index.d.ts +2 -2
- package/dist/types/types.d.ts +57 -30
- package/dist/types/utils/wrapReactRenderer.d.ts +7 -0
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("simple-table-core"),r=require("react-dom/server"),o=require("react-dom");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=s(t);function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function u({node:n}){const r=t.useRef(null);return t.useLayoutEffect(()=>{const e=r.current;if(e)return e.appendChild(n),()=>{n.parentNode===e&&e.removeChild(n)}},[n]),e.jsx("span",{ref:r,style:{display:"contents"}})}function a(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e.jsx(u,{node:t}):void 0}function l(e){return{sortIcon:a(null==e?void 0:e.sortIcon),filterIcon:a(null==e?void 0:e.filterIcon),collapseIcon:a(null==e?void 0:e.collapseIcon),labelContent:a(null==e?void 0:e.labelContent)}}function d(t){if(null!=t){if("string"==typeof t){if(""===t)return;return e.jsx("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:t}})}return t instanceof Node?e.jsx(u,{node:t}):void 0}}"function"==typeof SuppressedError&&SuppressedError;const f=Symbol.for("simple-table.wrappedRenderer");function p(e){return"function"==typeof e&&Boolean(e[f])}function h(e){return e[f]=!0,e}function m(t,n){return p(n)?n:h(r=>{const o=document.createElement("div");return t.register(e.jsx(n,Object.assign({},r)),o),o})}function g(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:(c=r.components,{expandIcon:a(c.expandIcon),checkbox:a(c.checkbox),dragIcon:a(c.dragIcon),labelContent:a(c.labelContent),pinIcon:a(c.pinIcon)})});var c;return t.register(e.jsx(n,Object.assign({},s)),o),o})}function b(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?a(r.searchSection):null,listSection:a(r.listSection),resetSection:r.resetSection?a(r.resetSection):null});return t.register(e.jsx(n,Object.assign({},s)),o),o})}function R(t){const n=document.createElement("div");return n.innerHTML=r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(n)}function O(t){return r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t}))}function y(e){return"function"==typeof e}function j(t,n){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:c}=t,u=i(t,["cellRenderer","headerRenderer","children","nestedTable"]),a=String(t.accessor),d=Object.assign({},u);if(r&&(d.cellRenderer=function(t,n,r){if(p(r))return r;const o=t.cellRendererCache.get(n);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null},c=h(n=>{const r=s.component,o=document.createElement("div");return o.style.display="contents",t.register(e.jsx(r,Object.assign({},n)),o),o});return s.wrapped=c,t.cellRendererCache.set(n,s),c}(n,a,r)),o&&(d.headerRenderer=function(t,n,r){if(p(r))return r;const o=t.headerRendererCache.get(n);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null};let c=null;const i=h(n=>{const r=s.component,o=Object.assign(Object.assign({},n),{components:l(n.components)}),i=e.jsx(r,Object.assign({},o));return c&&t.update(c,i)||(c=document.createElement("div"),t.register(i,c)),c});return s.wrapped=i,t.headerRendererCache.set(n,s),i}(n,a,o)),s&&(d.children=s.map(e=>j(e,n))),c){const e=Object.assign(Object.assign({},c),{rows:[]});d.nestedTable=E(e,n)}return d}function S(e){const t=e.columns;if(!t)throw new Error("SimpleTable requires `columns`");return t}function E(t,r){const{rows:o,footerRenderer:s,emptyStateRenderer:c,errorStateRenderer:u,loadingStateRenderer:a,tableEmptyStateRenderer:f,headerDropdown:E,columnEditorConfig:v,icons:C,rowButtons:w,onColumnOrderChange:x,onColumnWidthChange:I,onHeaderEdit:T,onColumnSelect:P,enableColumnEditor:A,enableColumnEditorInitOpen:_,enablePagination:L,onTableReady:B,hoverRowBackground:k,oddColumnBackground:D,oddEvenRowBackground:H}=t,M=i(t,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),N=S(t);r.pruneRendererCaches(n.collectHeaderAccessors(N));const V=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},M),{rows:o,columns:N.map(e=>j(e,r)),enableColumnEditor:A,enableColumnEditorInitOpen:_,enablePagination:L,onTableReady:B,hoverRowBackground:k,oddColumnBackground:D,oddEvenRowBackground:H,onRendererHostDiscard:r.disposeHost}),x?{onColumnOrderChange:e=>x(e)}:{}),I?{onColumnWidthChange:e=>I(e)}:{}),T?{onHeaderEdit:(e,t)=>T(e,t)}:{}),P?{onColumnSelect:e=>P(e)}:{});if(void 0!==s&&(V.footerRenderer=function(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:d((c={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:d(c.prevIcon)});var c;return t.register(e.jsx(n,Object.assign({},s)),o),o})}(r,s)),void 0!==c)if(y(c))V.emptyStateRenderer=m(r,c);else{const e=c;V.emptyStateRenderer=()=>R(e)}if(void 0!==u)if(y(u))V.errorStateRenderer=m(r,u);else{const e=u;V.errorStateRenderer=()=>R(e)}if(void 0!==a)if(y(a))V.loadingStateRenderer=m(r,a);else{const e=a;V.loadingStateRenderer=()=>R(e)}return void 0!==f&&(V.tableEmptyStateRenderer=null===f?null:R(f)),void 0!==E&&(V.headerDropdown=function(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:l(r.components)});return t.register(e.jsx(n,Object.assign({},s)),o),o})}(r,E)),void 0!==v&&(V.columnEditorConfig=function(e,t){const{rowRenderer:n,customRenderer:r}=e,o=i(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),n?{rowRenderer:g(t,n)}:{}),r?{customRenderer:b(t,r)}:{})}(v,r)),void 0!==C&&(V.icons=function(e){const t={};for(const[n,r]of Object.entries(e))null!=r&&(t[n]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:O(r));return t}(C)),void 0!==w&&(V.rowButtons=w.map(t=>function(t,n){return p(n)?n:h(r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e.jsx(n,Object.assign({},r)),o),o})}(r,t))),V}const v="data-st-portal-id";class C{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const t=[],n=e.getAttribute(v);null!==n&&t.push(n),e.querySelectorAll(`[${v}]`).forEach(e=>{const n=e.getAttribute(v);null!==n&&t.push(n)});for(const e of t)this.unregister(e)},this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,t){const n="st-portal-"+this.nextId++;return t.setAttribute(v,n),this.entries.set(n,{id:n,container:t,node:e}),this.scheduleEmit(),{id:n,unregister:()=>this.unregister(n)}}update(e,t){const n=e.getAttribute(v);if(null===n)return!1;const r=this.entries.get(n);return!(!r||r.container!==e||(r.node=t,this.scheduleEmit(),0))}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear(),0!==this.entries.size&&(this.entries.clear(),this.emit())}pruneRendererCaches(e){for(const t of this.cellRendererCache.keys())e.has(t)||this.cellRendererCache.delete(t);for(const t of this.headerRendererCache.keys())e.has(t)||this.headerRendererCache.delete(t)}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}}class w extends c.default.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const x=c.default.forwardRef(function(r,s){const c=t.useRef(null),i=t.useRef(null);null===i.current&&(i.current=new C);const u=i.current,a=t.useRef(null),l=t.useRef(void 0),d=t.useRef(void 0),f=t.useRef(null),p=r;t.useLayoutEffect(()=>{const e=c.current;if(!e)return;const t=new n.SimpleTableVanilla(e,E(p,u));if(t.mount(),a.current=t,f.current=p,l.current=S(p),d.current=p.rows,s){const e=t.getAPI();"function"==typeof s?s(e):s.current=e}return()=>{t.destroy(),a.current=null,l.current=void 0,d.current=void 0,f.current=null,u.clear(),s&&"function"!=typeof s&&(s.current=null)}},[]),t.useLayoutEffect(()=>{const e=a.current;if(!e)return;if(null!==f.current&&!function(e,t){const n=new Set([...Object.keys(e),...Object.keys(t)]);for(const r of n)if(e[r]!==t[r])return!0;return!1}(f.current,p))return;f.current=p;const t=E(p,u),r=Object.assign({},t),o=S(p),s=n.headersStructurallyEqual(l.current,o);l.current=o,s&&delete r.columns;const c=n.rowsShallowUnchanged(d.current,p.rows,p.getRowId);d.current=p.rows,c&&delete r.rows,e.update(r)},[p]);const h=function(n){return t.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot).map(t=>o.createPortal(e.jsx(w,{children:t.node}),t.container,t.id))}(u),m=Array.isArray(h)&&h.length>0,g=t.useRef(!1),b=t.useRef(Boolean(p.isLoading));return t.useLayoutEffect(()=>{var e,t;const n=a.current;if(!n)return;const r=Boolean(p.isLoading),o=b.current&&!r;b.current=r,o?null===(e=n.refitAutoSizeColumns)||void 0===e||e.call(n):!g.current&&m&&(g.current=!0,null===(t=n.refitAutoSizeColumns)||void 0===t||t.call(n))},[m,p.isLoading]),e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:c}),h]})});x.displayName="SimpleTable",Object.defineProperty(exports,"PIVOT_ACCESSOR_PREFIX",{enumerable:!0,get:function(){return n.PIVOT_ACCESSOR_PREFIX}}),Object.defineProperty(exports,"PIVOT_BLANK_LABEL",{enumerable:!0,get:function(){return n.PIVOT_BLANK_LABEL}}),Object.defineProperty(exports,"PIVOT_CHILDREN_KEY",{enumerable:!0,get:function(){return n.PIVOT_CHILDREN_KEY}}),Object.defineProperty(exports,"PIVOT_IS_TOTAL_KEY",{enumerable:!0,get:function(){return n.PIVOT_IS_TOTAL_KEY}}),Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return n.asRows}}),Object.defineProperty(exports,"buildPivotAccessor",{enumerable:!0,get:function(){return n.buildPivotAccessor}}),Object.defineProperty(exports,"buildPivotRowTotalAccessor",{enumerable:!0,get:function(){return n.buildPivotRowTotalAccessor}}),Object.defineProperty(exports,"pivotRows",{enumerable:!0,get:function(){return n.pivotRows}}),exports.SimpleTable=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("simple-table-core"),r=require("react-dom/server"),o=require("react-dom");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=s(t);function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function u({node:n}){const r=t.useRef(null);return t.useLayoutEffect(()=>{const e=r.current;if(e)return e.appendChild(n),()=>{n.parentNode===e&&e.removeChild(n)}},[n]),e.jsx("span",{ref:r,style:{display:"contents"}})}function a(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e.jsx(u,{node:t}):void 0}function l(e){return{sortIcon:a(null==e?void 0:e.sortIcon),filterIcon:a(null==e?void 0:e.filterIcon),collapseIcon:a(null==e?void 0:e.collapseIcon),labelContent:a(null==e?void 0:e.labelContent)}}function d(t){if(null!=t){if("string"==typeof t){if(""===t)return;return e.jsx("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:t}})}return t instanceof Node?e.jsx(u,{node:t}):void 0}}"function"==typeof SuppressedError&&SuppressedError;const f=Symbol.for("simple-table.wrappedRenderer");function p(e){return"function"==typeof e&&Boolean(e[f])}function h(e){return e[f]=!0,e}function m(t,n){return p(n)?n:h(r=>{const o=document.createElement("div");return t.register(e.jsx(n,Object.assign({},r)),o),o})}function g(t,n){if(p(n))return n;const r=new Map;return h(o=>{const s=Object.assign(Object.assign({},o),{components:(c=o.components,{expandIcon:a(c.expandIcon),checkbox:a(c.checkbox),dragIcon:a(c.dragIcon),labelContent:a(c.labelContent),pinIcon:a(c.pinIcon)})});var c;const i=e.jsx(n,Object.assign({},s)),u=String(o.accessor),l=r.get(u);if(l&&t.update(l,i))return l;const d=document.createElement("div");return t.register(i,d),r.set(u,d),d})}function b(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?a(r.searchSection):null,listSection:a(r.listSection),resetSection:r.resetSection?a(r.resetSection):null});return t.register(e.jsx(n,Object.assign({},s)),o),o})}function R(t){const n=document.createElement("div");return n.innerHTML=r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(n)}function O(t){return r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t}))}function y(e){return"function"==typeof e}function S(t,n){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:c}=t,u=i(t,["cellRenderer","headerRenderer","children","nestedTable"]),a=String(t.accessor),d=Object.assign({},u);if(r&&(d.cellRenderer=function(t,n,r){if(p(r))return r;const o=t.cellRendererCache.get(n);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null},c=h(n=>{const r=s.component,o=document.createElement("div");return o.style.display="contents",t.register(e.jsx(r,Object.assign({},n)),o),o});return s.wrapped=c,t.cellRendererCache.set(n,s),c}(n,a,r)),o&&(d.headerRenderer=function(t,n,r){if(p(r))return r;const o=t.headerRendererCache.get(n);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null};let c=null;const i=h(n=>{const r=s.component,o=Object.assign(Object.assign({},n),{components:l(n.components)}),i=e.jsx(r,Object.assign({},o));return c&&t.update(c,i)||(c=document.createElement("div"),t.register(i,c)),c});return s.wrapped=i,t.headerRendererCache.set(n,s),i}(n,a,o)),s&&(d.children=s.map(e=>S(e,n))),c){const e=Object.assign(Object.assign({},c),{rows:[]});d.nestedTable=E(e,n)}return d}function j(e){const t=e.columns;if(!t)throw new Error("SimpleTable requires `columns`");return t}function E(t,r){const{rows:o,footerRenderer:s,emptyStateRenderer:c,errorStateRenderer:u,loadingStateRenderer:a,tableEmptyStateRenderer:f,headerDropdown:E,columnEditorConfig:v,icons:C,rowButtons:w,onColumnOrderChange:x,onColumnWidthChange:I,onHeaderEdit:T,onColumnSelect:P,enableColumnEditor:A,enableColumnEditorInitOpen:_,enablePagination:L,onTableReady:B,hoverRowBackground:k,oddColumnBackground:D,oddEvenRowBackground:H}=t,M=i(t,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),N=j(t);r.pruneRendererCaches(n.collectHeaderAccessors(N));const V=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},M),{rows:o,columns:N.map(e=>S(e,r)),enableColumnEditor:A,enableColumnEditorInitOpen:_,enablePagination:L,onTableReady:B,hoverRowBackground:k,oddColumnBackground:D,oddEvenRowBackground:H,onRendererHostDiscard:r.disposeHost}),x?{onColumnOrderChange:e=>x(e)}:{}),I?{onColumnWidthChange:e=>I(e)}:{}),T?{onHeaderEdit:(e,t)=>T(e,t)}:{}),P?{onColumnSelect:e=>P(e)}:{});if(void 0!==s&&(V.footerRenderer=function(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:d((c={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:d(c.prevIcon)});var c;return t.register(e.jsx(n,Object.assign({},s)),o),o})}(r,s)),void 0!==c)if(y(c))V.emptyStateRenderer=m(r,c);else{const e=c;V.emptyStateRenderer=()=>R(e)}if(void 0!==u)if(y(u))V.errorStateRenderer=m(r,u);else{const e=u;V.errorStateRenderer=()=>R(e)}if(void 0!==a)if(y(a))V.loadingStateRenderer=m(r,a);else{const e=a;V.loadingStateRenderer=()=>R(e)}return void 0!==f&&(V.tableEmptyStateRenderer=null===f?null:R(f)),void 0!==E&&(V.headerDropdown=function(t,n){return p(n)?n:h(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:l(r.components)});return t.register(e.jsx(n,Object.assign({},s)),o),o})}(r,E)),void 0!==v&&(V.columnEditorConfig=function(e,t){const{rowRenderer:n,customRenderer:r}=e,o=i(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),n?{rowRenderer:g(t,n)}:{}),r?{customRenderer:b(t,r)}:{})}(v,r)),void 0!==C&&(V.icons=function(e){const t={};for(const[n,r]of Object.entries(e))null!=r&&(t[n]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:O(r));return t}(C)),void 0!==w&&(V.rowButtons=w.map(t=>function(t,n){return p(n)?n:h(r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e.jsx(n,Object.assign({},r)),o),o})}(r,t))),V}const v="data-st-portal-id";class C{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const t=[],n=e.getAttribute(v);null!==n&&t.push(n),e.querySelectorAll(`[${v}]`).forEach(e=>{const n=e.getAttribute(v);null!==n&&t.push(n)});for(const e of t)this.unregister(e)},this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,t){const n="st-portal-"+this.nextId++;return t.setAttribute(v,n),this.entries.set(n,{id:n,container:t,node:e}),this.scheduleEmit(),{id:n,unregister:()=>this.unregister(n)}}update(e,t){const n=e.getAttribute(v);if(null===n)return!1;const r=this.entries.get(n);return!(!r||r.container!==e||(r.node=t,this.scheduleEmit(),0))}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear(),0!==this.entries.size&&(this.entries.clear(),this.emit())}pruneRendererCaches(e){for(const t of this.cellRendererCache.keys())e.has(t)||this.cellRendererCache.delete(t);for(const t of this.headerRendererCache.keys())e.has(t)||this.headerRendererCache.delete(t)}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}}class w extends c.default.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const x=c.default.forwardRef(function(r,s){const c=t.useRef(null),i=t.useRef(null);null===i.current&&(i.current=new C);const u=i.current,a=t.useRef(null),l=t.useRef(void 0),d=t.useRef(void 0),f=t.useRef(null),p=r;t.useLayoutEffect(()=>{const e=c.current;if(!e)return;const t=new n.SimpleTableVanilla(e,E(p,u));if(t.mount(),a.current=t,f.current=p,l.current=j(p),d.current=p.rows,s){const e=t.getAPI();"function"==typeof s?s(e):s.current=e}return()=>{t.destroy(),a.current=null,l.current=void 0,d.current=void 0,f.current=null,u.clear(),s&&"function"!=typeof s&&(s.current=null)}},[]),t.useLayoutEffect(()=>{const e=a.current;if(!e)return;if(null!==f.current&&!function(e,t){const n=new Set([...Object.keys(e),...Object.keys(t)]);for(const r of n)if(e[r]!==t[r])return!0;return!1}(f.current,p))return;f.current=p;const t=E(p,u),r=Object.assign({},t),o=j(p),s=n.headersStructurallyEqual(l.current,o);l.current=o,s&&delete r.columns;const c=n.rowsShallowUnchanged(d.current,p.rows,p.getRowId);d.current=p.rows,c&&delete r.rows,e.update(r)},[p]);const h=function(n){return t.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot).map(t=>o.createPortal(e.jsx(w,{children:t.node}),t.container,t.id))}(u),m=Array.isArray(h)&&h.length>0,g=t.useRef(!1),b=t.useRef(Boolean(p.isLoading));return t.useLayoutEffect(()=>{var e,t;const n=a.current;if(!n)return;const r=Boolean(p.isLoading),o=b.current&&!r;b.current=r,o?null===(e=n.refitAutoSizeColumns)||void 0===e||e.call(n):!g.current&&m&&(g.current=!0,null===(t=n.refitAutoSizeColumns)||void 0===t||t.call(n))},[m,p.isLoading]),e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:c}),h]})});x.displayName="SimpleTable",Object.defineProperty(exports,"PIVOT_ACCESSOR_PREFIX",{enumerable:!0,get:function(){return n.PIVOT_ACCESSOR_PREFIX}}),Object.defineProperty(exports,"PIVOT_BLANK_LABEL",{enumerable:!0,get:function(){return n.PIVOT_BLANK_LABEL}}),Object.defineProperty(exports,"PIVOT_CHILDREN_KEY",{enumerable:!0,get:function(){return n.PIVOT_CHILDREN_KEY}}),Object.defineProperty(exports,"PIVOT_IS_TOTAL_KEY",{enumerable:!0,get:function(){return n.PIVOT_IS_TOTAL_KEY}}),Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return n.asRows}}),Object.defineProperty(exports,"buildPivotAccessor",{enumerable:!0,get:function(){return n.buildPivotAccessor}}),Object.defineProperty(exports,"buildPivotRowTotalAccessor",{enumerable:!0,get:function(){return n.buildPivotRowTotalAccessor}}),Object.defineProperty(exports,"pivotRows",{enumerable:!0,get:function(){return n.pivotRows}}),exports.SimpleTable=x;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,Fragment as n,jsxs as t}from"react/jsx-runtime";import r,{useRef as o,useLayoutEffect as s,useSyncExternalStore as c}from"react";import{collectHeaderAccessors as i,SimpleTableVanilla as l,headersStructurallyEqual as a,rowsShallowUnchanged as d}from"simple-table-core";export{PIVOT_ACCESSOR_PREFIX,PIVOT_BLANK_LABEL,PIVOT_CHILDREN_KEY,PIVOT_IS_TOTAL_KEY,asRows,buildPivotAccessor,buildPivotRowTotalAccessor,pivotRows}from"simple-table-core";import{renderToStaticMarkup as u}from"react-dom/server";import{createPortal as h}from"react-dom";function p(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t}function m({node:n}){const t=o(null);return s(()=>{const e=t.current;if(e)return e.appendChild(n),()=>{n.parentNode===e&&e.removeChild(n)}},[n]),e("span",{ref:t,style:{display:"contents"}})}function f(n){if(null!=n)return"string"==typeof n?n:n instanceof Node?e(m,{node:n}):void 0}function g(e){return{sortIcon:f(null==e?void 0:e.sortIcon),filterIcon:f(null==e?void 0:e.filterIcon),collapseIcon:f(null==e?void 0:e.collapseIcon),labelContent:f(null==e?void 0:e.labelContent)}}function b(n){if(null!=n){if("string"==typeof n){if(""===n)return;return e("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:n}})}return n instanceof Node?e(m,{node:n}):void 0}}"function"==typeof SuppressedError&&SuppressedError;const R=Symbol.for("simple-table.wrappedRenderer");function C(e){return"function"==typeof e&&Boolean(e[R])}function O(e){return e[R]=!0,e}function v(n,t){return C(t)?t:O(r=>{const o=document.createElement("div");return n.register(e(t,Object.assign({},r)),o),o})}function S(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:(c=r.components,{expandIcon:f(c.expandIcon),checkbox:f(c.checkbox),dragIcon:f(c.dragIcon),labelContent:f(c.labelContent),pinIcon:f(c.pinIcon)})});var c;return n.register(e(t,Object.assign({},s)),o),o})}function y(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?f(r.searchSection):null,listSection:f(r.listSection),resetSection:r.resetSection?f(r.resetSection):null});return n.register(e(t,Object.assign({},s)),o),o})}function E(t){const r=document.createElement("div");return r.innerHTML=u(e(n,{children:t})),function(e){const n=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===n.length&&n[0]instanceof HTMLElement?(e.removeChild(n[0]),n[0]):e}(r)}function w(t){return u(e(n,{children:t}))}function j(e){return"function"==typeof e}function I(n,t){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:c}=n,i=p(n,["cellRenderer","headerRenderer","children","nestedTable"]),l=String(n.accessor),a=Object.assign({},i);if(r&&(a.cellRenderer=function(n,t,r){if(C(r))return r;const o=n.cellRendererCache.get(t);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null},c=O(t=>{const r=s.component,o=document.createElement("div");return o.style.display="contents",n.register(e(r,Object.assign({},t)),o),o});return s.wrapped=c,n.cellRendererCache.set(t,s),c}(t,l,r)),o&&(a.headerRenderer=function(n,t,r){if(C(r))return r;const o=n.headerRendererCache.get(t);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null};let c=null;const i=O(t=>{const r=s.component,o=Object.assign(Object.assign({},t),{components:g(t.components)}),i=e(r,Object.assign({},o));return c&&n.update(c,i)||(c=document.createElement("div"),n.register(i,c)),c});return s.wrapped=i,n.headerRendererCache.set(t,s),i}(t,l,o)),s&&(a.children=s.map(e=>I(e,t))),c){const e=Object.assign(Object.assign({},c),{rows:[]});a.nestedTable=A(e,t)}return a}function T(e){const n=e.columns;if(!n)throw new Error("SimpleTable requires `columns`");return n}function A(n,t){const{rows:r,footerRenderer:o,emptyStateRenderer:s,errorStateRenderer:c,loadingStateRenderer:l,tableEmptyStateRenderer:a,headerDropdown:d,columnEditorConfig:u,icons:h,rowButtons:m,onColumnOrderChange:f,onColumnWidthChange:R,onHeaderEdit:A,onColumnSelect:x,enableColumnEditor:B,enableColumnEditorInitOpen:k,enablePagination:P,onTableReady:D,hoverRowBackground:L,oddColumnBackground:_,oddEvenRowBackground:H}=n,N=p(n,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),M=T(n);t.pruneRendererCaches(i(M));const V=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},N),{rows:r,columns:M.map(e=>I(e,t)),enableColumnEditor:B,enableColumnEditorInitOpen:k,enablePagination:P,onTableReady:D,hoverRowBackground:L,oddColumnBackground:_,oddEvenRowBackground:H,onRendererHostDiscard:t.disposeHost}),f?{onColumnOrderChange:e=>f(e)}:{}),R?{onColumnWidthChange:e=>R(e)}:{}),A?{onHeaderEdit:(e,n)=>A(e,n)}:{}),x?{onColumnSelect:e=>x(e)}:{});if(void 0!==o&&(V.footerRenderer=function(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:b((c={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:b(c.prevIcon)});var c;return n.register(e(t,Object.assign({},s)),o),o})}(t,o)),void 0!==s)if(j(s))V.emptyStateRenderer=v(t,s);else{const e=s;V.emptyStateRenderer=()=>E(e)}if(void 0!==c)if(j(c))V.errorStateRenderer=v(t,c);else{const e=c;V.errorStateRenderer=()=>E(e)}if(void 0!==l)if(j(l))V.loadingStateRenderer=v(t,l);else{const e=l;V.loadingStateRenderer=()=>E(e)}return void 0!==a&&(V.tableEmptyStateRenderer=null===a?null:E(a)),void 0!==d&&(V.headerDropdown=function(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:g(r.components)});return n.register(e(t,Object.assign({},s)),o),o})}(t,d)),void 0!==u&&(V.columnEditorConfig=function(e,n){const{rowRenderer:t,customRenderer:r}=e,o=p(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),t?{rowRenderer:S(n,t)}:{}),r?{customRenderer:y(n,r)}:{})}(u,t)),void 0!==h&&(V.icons=function(e){const n={};for(const[t,r]of Object.entries(e))null!=r&&(n[t]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:w(r));return n}(h)),void 0!==m&&(V.rowButtons=m.map(n=>function(n,t){return C(t)?t:O(r=>{const o=document.createElement("div");return o.style.display="contents",n.register(e(t,Object.assign({},r)),o),o})}(t,n))),V}const x="data-st-portal-id";class B{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const n=[],t=e.getAttribute(x);null!==t&&n.push(t),e.querySelectorAll(`[${x}]`).forEach(e=>{const t=e.getAttribute(x);null!==t&&n.push(t)});for(const e of n)this.unregister(e)},this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,n){const t="st-portal-"+this.nextId++;return n.setAttribute(x,t),this.entries.set(t,{id:t,container:n,node:e}),this.scheduleEmit(),{id:t,unregister:()=>this.unregister(t)}}update(e,n){const t=e.getAttribute(x);if(null===t)return!1;const r=this.entries.get(t);return!(!r||r.container!==e||(r.node=n,this.scheduleEmit(),0))}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear(),0!==this.entries.size&&(this.entries.clear(),this.emit())}pruneRendererCaches(e){for(const n of this.cellRendererCache.keys())e.has(n)||this.cellRendererCache.delete(n);for(const n of this.headerRendererCache.keys())e.has(n)||this.headerRendererCache.delete(n)}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}}class k extends r.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const P=r.forwardRef(function(r,i){const u=o(null),p=o(null);null===p.current&&(p.current=new B);const m=p.current,f=o(null),g=o(void 0),b=o(void 0),R=o(null),C=r;s(()=>{const e=u.current;if(!e)return;const n=new l(e,A(C,m));if(n.mount(),f.current=n,R.current=C,g.current=T(C),b.current=C.rows,i){const e=n.getAPI();"function"==typeof i?i(e):i.current=e}return()=>{n.destroy(),f.current=null,g.current=void 0,b.current=void 0,R.current=null,m.clear(),i&&"function"!=typeof i&&(i.current=null)}},[]),s(()=>{const e=f.current;if(!e)return;if(null!==R.current&&!function(e,n){const t=new Set([...Object.keys(e),...Object.keys(n)]);for(const r of t)if(e[r]!==n[r])return!0;return!1}(R.current,C))return;R.current=C;const n=A(C,m),t=Object.assign({},n),r=T(C),o=a(g.current,r);g.current=r,o&&delete t.columns;const s=d(b.current,C.rows,C.getRowId);b.current=C.rows,s&&delete t.rows,e.update(t)},[C]);const O=function(n){return c(n.subscribe,n.getSnapshot,n.getSnapshot).map(n=>h(e(k,{children:n.node}),n.container,n.id))}(m),v=Array.isArray(O)&&O.length>0,S=o(!1),y=o(Boolean(C.isLoading));return s(()=>{var e,n;const t=f.current;if(!t)return;const r=Boolean(C.isLoading),o=y.current&&!r;y.current=r,o?null===(e=t.refitAutoSizeColumns)||void 0===e||e.call(t):!S.current&&v&&(S.current=!0,null===(n=t.refitAutoSizeColumns)||void 0===n||n.call(t))},[v,C.isLoading]),t(n,{children:[e("div",{ref:u}),O]})});P.displayName="SimpleTable";export{P as SimpleTable};
|
|
1
|
+
import{jsx as e,Fragment as n,jsxs as t}from"react/jsx-runtime";import r,{useRef as o,useLayoutEffect as s,useSyncExternalStore as c}from"react";import{collectHeaderAccessors as i,SimpleTableVanilla as a,headersStructurallyEqual as l,rowsShallowUnchanged as d}from"simple-table-core";export{PIVOT_ACCESSOR_PREFIX,PIVOT_BLANK_LABEL,PIVOT_CHILDREN_KEY,PIVOT_IS_TOTAL_KEY,asRows,buildPivotAccessor,buildPivotRowTotalAccessor,pivotRows}from"simple-table-core";import{renderToStaticMarkup as u}from"react-dom/server";import{createPortal as h}from"react-dom";function p(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t}function m({node:n}){const t=o(null);return s(()=>{const e=t.current;if(e)return e.appendChild(n),()=>{n.parentNode===e&&e.removeChild(n)}},[n]),e("span",{ref:t,style:{display:"contents"}})}function f(n){if(null!=n)return"string"==typeof n?n:n instanceof Node?e(m,{node:n}):void 0}function g(e){return{sortIcon:f(null==e?void 0:e.sortIcon),filterIcon:f(null==e?void 0:e.filterIcon),collapseIcon:f(null==e?void 0:e.collapseIcon),labelContent:f(null==e?void 0:e.labelContent)}}function b(n){if(null!=n){if("string"==typeof n){if(""===n)return;return e("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:n}})}return n instanceof Node?e(m,{node:n}):void 0}}"function"==typeof SuppressedError&&SuppressedError;const R=Symbol.for("simple-table.wrappedRenderer");function C(e){return"function"==typeof e&&Boolean(e[R])}function O(e){return e[R]=!0,e}function S(n,t){return C(t)?t:O(r=>{const o=document.createElement("div");return n.register(e(t,Object.assign({},r)),o),o})}function v(n,t){if(C(t))return t;const r=new Map;return O(o=>{const s=Object.assign(Object.assign({},o),{components:(c=o.components,{expandIcon:f(c.expandIcon),checkbox:f(c.checkbox),dragIcon:f(c.dragIcon),labelContent:f(c.labelContent),pinIcon:f(c.pinIcon)})});var c;const i=e(t,Object.assign({},s)),a=String(o.accessor),l=r.get(a);if(l&&n.update(l,i))return l;const d=document.createElement("div");return n.register(i,d),r.set(a,d),d})}function y(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?f(r.searchSection):null,listSection:f(r.listSection),resetSection:r.resetSection?f(r.resetSection):null});return n.register(e(t,Object.assign({},s)),o),o})}function E(t){const r=document.createElement("div");return r.innerHTML=u(e(n,{children:t})),function(e){const n=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===n.length&&n[0]instanceof HTMLElement?(e.removeChild(n[0]),n[0]):e}(r)}function w(t){return u(e(n,{children:t}))}function j(e){return"function"==typeof e}function I(n,t){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:c}=n,i=p(n,["cellRenderer","headerRenderer","children","nestedTable"]),a=String(n.accessor),l=Object.assign({},i);if(r&&(l.cellRenderer=function(n,t,r){if(C(r))return r;const o=n.cellRendererCache.get(t);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null},c=O(t=>{const r=s.component,o=document.createElement("div");return o.style.display="contents",n.register(e(r,Object.assign({},t)),o),o});return s.wrapped=c,n.cellRendererCache.set(t,s),c}(t,a,r)),o&&(l.headerRenderer=function(n,t,r){if(C(r))return r;const o=n.headerRendererCache.get(t);if(o)return o.component=r,o.wrapped;const s={component:r,wrapped:null};let c=null;const i=O(t=>{const r=s.component,o=Object.assign(Object.assign({},t),{components:g(t.components)}),i=e(r,Object.assign({},o));return c&&n.update(c,i)||(c=document.createElement("div"),n.register(i,c)),c});return s.wrapped=i,n.headerRendererCache.set(t,s),i}(t,a,o)),s&&(l.children=s.map(e=>I(e,t))),c){const e=Object.assign(Object.assign({},c),{rows:[]});l.nestedTable=A(e,t)}return l}function T(e){const n=e.columns;if(!n)throw new Error("SimpleTable requires `columns`");return n}function A(n,t){const{rows:r,footerRenderer:o,emptyStateRenderer:s,errorStateRenderer:c,loadingStateRenderer:a,tableEmptyStateRenderer:l,headerDropdown:d,columnEditorConfig:u,icons:h,rowButtons:m,onColumnOrderChange:f,onColumnWidthChange:R,onHeaderEdit:A,onColumnSelect:x,enableColumnEditor:B,enableColumnEditorInitOpen:k,enablePagination:P,onTableReady:D,hoverRowBackground:L,oddColumnBackground:_,oddEvenRowBackground:H}=n,M=p(n,["columns","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect","enableColumnEditor","enableColumnEditorInitOpen","enablePagination","onTableReady","hoverRowBackground","oddColumnBackground","oddEvenRowBackground"]),N=T(n);t.pruneRendererCaches(i(N));const V=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},M),{rows:r,columns:N.map(e=>I(e,t)),enableColumnEditor:B,enableColumnEditorInitOpen:k,enablePagination:P,onTableReady:D,hoverRowBackground:L,oddColumnBackground:_,oddEvenRowBackground:H,onRendererHostDiscard:t.disposeHost}),f?{onColumnOrderChange:e=>f(e)}:{}),R?{onColumnWidthChange:e=>R(e)}:{}),A?{onHeaderEdit:(e,n)=>A(e,n)}:{}),x?{onColumnSelect:e=>x(e)}:{});if(void 0!==o&&(V.footerRenderer=function(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:b((c={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:b(c.prevIcon)});var c;return n.register(e(t,Object.assign({},s)),o),o})}(t,o)),void 0!==s)if(j(s))V.emptyStateRenderer=S(t,s);else{const e=s;V.emptyStateRenderer=()=>E(e)}if(void 0!==c)if(j(c))V.errorStateRenderer=S(t,c);else{const e=c;V.errorStateRenderer=()=>E(e)}if(void 0!==a)if(j(a))V.loadingStateRenderer=S(t,a);else{const e=a;V.loadingStateRenderer=()=>E(e)}return void 0!==l&&(V.tableEmptyStateRenderer=null===l?null:E(l)),void 0!==d&&(V.headerDropdown=function(n,t){return C(t)?t:O(r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:g(r.components)});return n.register(e(t,Object.assign({},s)),o),o})}(t,d)),void 0!==u&&(V.columnEditorConfig=function(e,n){const{rowRenderer:t,customRenderer:r}=e,o=p(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),t?{rowRenderer:v(n,t)}:{}),r?{customRenderer:y(n,r)}:{})}(u,t)),void 0!==h&&(V.icons=function(e){const n={};for(const[t,r]of Object.entries(e))null!=r&&(n[t]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:w(r));return n}(h)),void 0!==m&&(V.rowButtons=m.map(n=>function(n,t){return C(t)?t:O(r=>{const o=document.createElement("div");return o.style.display="contents",n.register(e(t,Object.assign({},r)),o),o})}(t,n))),V}const x="data-st-portal-id";class B{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.cellRendererCache=new Map,this.headerRendererCache=new Map,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const n=[],t=e.getAttribute(x);null!==t&&n.push(t),e.querySelectorAll(`[${x}]`).forEach(e=>{const t=e.getAttribute(x);null!==t&&n.push(t)});for(const e of n)this.unregister(e)},this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,n){const t="st-portal-"+this.nextId++;return n.setAttribute(x,t),this.entries.set(t,{id:t,container:n,node:e}),this.scheduleEmit(),{id:t,unregister:()=>this.unregister(t)}}update(e,n){const t=e.getAttribute(x);if(null===t)return!1;const r=this.entries.get(t);return!(!r||r.container!==e||(r.node=n,this.scheduleEmit(),0))}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}clear(){this.cellRendererCache.clear(),this.headerRendererCache.clear(),0!==this.entries.size&&(this.entries.clear(),this.emit())}pruneRendererCaches(e){for(const n of this.cellRendererCache.keys())e.has(n)||this.cellRendererCache.delete(n);for(const n of this.headerRendererCache.keys())e.has(n)||this.headerRendererCache.delete(n)}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}}class k extends r.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const P=r.forwardRef(function(r,i){const u=o(null),p=o(null);null===p.current&&(p.current=new B);const m=p.current,f=o(null),g=o(void 0),b=o(void 0),R=o(null),C=r;s(()=>{const e=u.current;if(!e)return;const n=new a(e,A(C,m));if(n.mount(),f.current=n,R.current=C,g.current=T(C),b.current=C.rows,i){const e=n.getAPI();"function"==typeof i?i(e):i.current=e}return()=>{n.destroy(),f.current=null,g.current=void 0,b.current=void 0,R.current=null,m.clear(),i&&"function"!=typeof i&&(i.current=null)}},[]),s(()=>{const e=f.current;if(!e)return;if(null!==R.current&&!function(e,n){const t=new Set([...Object.keys(e),...Object.keys(n)]);for(const r of t)if(e[r]!==n[r])return!0;return!1}(R.current,C))return;R.current=C;const n=A(C,m),t=Object.assign({},n),r=T(C),o=l(g.current,r);g.current=r,o&&delete t.columns;const s=d(b.current,C.rows,C.getRowId);b.current=C.rows,s&&delete t.rows,e.update(t)},[C]);const O=function(n){return c(n.subscribe,n.getSnapshot,n.getSnapshot).map(n=>h(e(k,{children:n.node}),n.container,n.id))}(m),S=Array.isArray(O)&&O.length>0,v=o(!1),y=o(Boolean(C.isLoading));return s(()=>{var e,n;const t=f.current;if(!t)return;const r=Boolean(C.isLoading),o=y.current&&!r;y.current=r,o?null===(e=t.refitAutoSizeColumns)||void 0===e||e.call(t):!v.current&&S&&(v.current=!0,null===(n=t.refitAutoSizeColumns)||void 0===n||n.call(t))},[S,C.isLoading]),t(n,{children:[e("div",{ref:u}),O]})});P.displayName="SimpleTable";export{P as SimpleTable};
|
|
2
2
|
//# sourceMappingURL=index.es.js.map
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.st-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.simple-table-root{--st-after-width:11.01px;--st-resize-handle-width:2px;--st-resize-handle-container-width:10px;--st-border-width:1px;--st-footer-height:49px;--st-transition-duration:0.2s;--st-transition-ease:ease;--st-opacity-disabled:0.5;--st-white:#fff;--st-black:#000;--st-slate-50:#f8fafc;--st-slate-100:#f1f5f9;--st-slate-200:#e2e8f0;--st-slate-300:#cbd5e1;--st-slate-400:#94a3b8;--st-slate-500:#64748b;--st-slate-600:#475569;--st-slate-800:#1e293b;--st-slate-900:#0f172a;--st-gray-100:#f3f4f6;--st-gray-200:#e5e7eb;--st-gray-300:#d1d5db;--st-gray-400:#9ca3af;--st-gray-500:#6b7280;--st-gray-600:#4b5563;--st-gray-700:#374151;--st-gray-800:#1f2937;--st-gray-900:#111827;--st-neutral-50:#fafafa;--st-neutral-100:#f5f5f5;--st-neutral-200:#e5e5e5;--st-neutral-300:#d4d4d4;--st-neutral-400:#a3a3a3;--st-neutral-500:#737373;--st-neutral-600:#525252;--st-neutral-800:#262626;--st-neutral-900:#171717;--st-red-300:#fca5a5;--st-red-400:#f87171;--st-blue-50:#eff6ff;--st-blue-100:#dbeafe;--st-blue-200:#bfdbfe;--st-blue-300:#93c5fd;--st-blue-400:#60a5fa;--st-blue-500:#3b82f6;--st-blue-600:#2563eb;--st-blue-800:#1e40af;--st-blue-900:#1e3a8a;--st-blue-950:#172554}.simple-table-root *{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit;scrollbar-color:var(--st-scrollbar-thumb-color) var(--st-scrollbar-bg-color);scrollbar-width:var(--st-scrollbar-width)}input{color:#000}.simple-table-root ::-webkit-scrollbar{height:8px;width:8px}.simple-table-root ::-webkit-scrollbar-track{background:var(--st-scrollbar-bg-color)}.simple-table-root ::-webkit-scrollbar-thumb{background:var(--st-scrollbar-thumb-color);border-radius:4px}.simple-table-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--st-cell-color)}.st-wrapper{border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);overflow:hidden;position:relative}.simple-table-root.st-external-scroll{overflow:visible}.simple-table-root.st-external-scroll .st-header-container{position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1);z-index:4}.simple-table-root.st-external-scroll .st-sticky-top{position:sticky;top:0;top:calc(var(--st-calculated-header-height, 0px) - var(--st-external-scroll-padding-top, 0px))}.simple-table-root.st-external-scroll .st-column-editor-text{-ms-flex-item-align:start;-webkit-box-flex:0;-ms-flex-positive:0;align-self:flex-start;flex-grow:0;position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1)}.st-wrapper-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.st-content-wrapper,.st-wrapper-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%}.st-content-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0}.st-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--st-even-row-background-color);-ms-flex-direction:column;flex-direction:column}.st-content,.st-header-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.st-header-container,.st-header-container.st-header-scroll-padding:after{-ms-flex-negative:0;background-color:var(--st-header-background-color);flex-shrink:0}.st-header-container.st-header-scroll-padding:after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";display:block;width:default-width;width:var(--st-after-width,default-width)}.st-header-container.st-header-scroll-padding:after,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-grid{min-width:100%;position:relative}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right,.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{overflow:auto;-ms-touch-action:auto;touch-action:auto}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{scrollbar-width:none}.st-body-pinned-left,.st-body-pinned-right,.st-header-pinned-left,.st-header-pinned-right{-ms-flex-negative:0;flex-shrink:0}.st-body-pinned-left,.st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-body-pinned-right,.st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-header-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-header-main,.st-header-pinned-left,.st-header-pinned-right{overflow-x:auto;overflow-y:hidden}.st-header-main::-webkit-scrollbar{display:none}.st-body-container{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-overflow-scrolling:touch;background-color:var(--st-even-row-background-color);flex-grow:1;height:-webkit-max-content;height:-moz-max-content;height:max-content;overflow:auto;-ms-touch-action:auto;touch-action:auto;width:100%}.st-body-container,.st-sticky-top{display:-webkit-box;display:-ms-flexbox;display:flex}.st-sticky-top{left:0;position:absolute;top:0;z-index:10}.st-sticky-section-left,.st-sticky-section-main,.st-sticky-section-right{overflow:hidden}.st-sticky-section-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-sticky-section-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-empty-state-wrapper{-ms-flex-align:center;-ms-flex-pack:center;-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:200px;width:100%}.st-empty-state,.st-empty-state-wrapper{-webkit-box-align:center;-webkit-box-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-empty-state{-ms-flex-align:center;-ms-flex-pack:center;color:var(--st-header-icon-color);font-size:.9em;opacity:.6;padding:48px 24px}.st-body-main,.st-body-pinned-left,.st-body-pinned-right{display:grid;height:-webkit-max-content;height:-moz-max-content;height:max-content;min-height:100%}.st-body-main::-webkit-scrollbar{display:none}.st-row{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--st-even-row-background-color);display:grid;min-width:100%;position:absolute;-webkit-transition:background .2s ease;transition:background .2s ease}.st-row.st-sticky-parent{z-index:5}.st-sticky-top .st-row.even{background-color:var(--st-even-row-background-color)}.st-sticky-top .st-row.odd{background-color:var(--st-odd-row-background-color)}.st-sticky-top .st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.hovered .st-cell-editing,.st-row.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-sticky-top .st-row.hovered:not(.st-cell-editing):not(.st-cell-column-selected):not(.st-cell-column-selected-last):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-row.hovered .st-cell.st-sub-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-sub-cell-hover-background-color)}.st-row.even{background-color:var(--st-even-row-background-color)}.st-row.odd{background-color:var(--st-odd-row-background-color)}.st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.selected.hovered .st-cell-editing,.st-row.selected.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-nested-grid-row{padding-left:8px;padding-right:8px}.st-cell-content{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px}.st-row.odd .st-cell-content{color:var(--st-cell-odd-row-color)}.st-row.even .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-even-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-even-row-background-color)}.st-cell.st-cell-odd-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-odd-row-background-color)}.st-cell.st-cell-even-row .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-odd-row .st-cell-content{color:var(--st-cell-odd-row-color)}.st-cell.st-cell-selected-row:not(.st-row-hovered):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-selected-row-background-color)}.st-cell.st-row-active:not(.st-row-hovered){outline:1px solid #93c5fd;outline:1px solid var(--st-selected-row-background-color,#93c5fd);outline-offset:-1px}.st-cell.st-row-hovered:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;font-weight:500;gap:var(--st-spacing-small);top:0}.st-header-cell.parent{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-cell.st-sub-header{background-color:var(--st-sub-header-background-color)}.st-cell.st-sub-cell{background-color:var(--st-sub-cell-background-color)}.st-header-cell.clickable,.st-header-cell.st-header-editable{cursor:pointer}.st-header-cell.draggable{cursor:-webkit-grab;cursor:grab}.st-header-cell.st-header-selected{background-color:var(--st-header-selected-background-color)}.st-header-cell.st-header-selected .st-header-label-text{color:var(--st-header-selected-label-color)}.st-header-cell.st-header-selected .st-header-icon,.st-header-cell.st-header-selected .st-icon-container{color:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-icon-container svg:not([fill=none]){fill:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-header-resize-handle{background-color:var(--st-resize-handle-selected-color)}.st-header-cell.st-header-has-highlighted-cell{background-color:var(--st-header-highlight-indicator-color)}.st-cell,.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:initial;color:var(--st-cell-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);overflow:hidden;position:relative}.st-cell.left-aligned,.st-header-cell.left-aligned{padding-left:var(--st-cell-padding);text-align:left}.st-cell.center-aligned,.st-cell.center-aligned>.st-cell-content,.st-header-cell.center-aligned,.st-header-cell.center-aligned>.st-header-label-text{text-align:center}.st-cell.clickable{cursor:pointer}.st-cell,.st-cell-editing,.st-header-cell{height:100%;width:100%}.st-cell-editing{position:relative}.st-header-label{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1;height:100%;min-width:0;overflow:hidden}.st-cell-content,.st-header-label-text{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:100%}.st-header-label-text{color:var(--st-header-label-color);font-weight:600;overflow:hidden;padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding);text-overflow:ellipsis;white-space:nowrap}.st-cell-content.left-aligned,.st-header-label-text.left-aligned{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.st-cell-content.center-aligned,.st-header-label-text.center-aligned{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.st-cell-content.right-aligned,.st-header-label-text.right-aligned{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.st-not-resizeable .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-resizeable .st-body-pinned-right .st-cell-content,.st-resizeable .st-sticky-section-right .st-cell-content{padding-left:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width));padding-right:var(--st-cell-padding)}.st-resizeable .st-body-main .st-cell-content,.st-resizeable .st-body-pinned-left .st-cell-content,.st-resizeable .st-sticky-section-left .st-cell-content,.st-resizeable .st-sticky-section-main .st-cell-content{padding-left:var(--st-cell-padding);padding-right:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width))}.st-resizeable .st-selection-cell .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-selection-cell.st-selection-has-highlighted-cell{background-color:var(--st-selection-highlight-indicator-color)}.st-cell{border:var(--st-border-width) solid #0000;z-index:1}.st-cell:focus,.st-cell:focus-visible{outline:none}.st-cell.even-column:not(.st-cell-selected){background-color:var(--st-even-column-background-color)}.st-cell.odd-column:not(.st-cell-selected){background-color:var(--st-odd-column-background-color)}.st-cell-depth-1{padding-left:calc(var(--st-cell-padding)*4)}.st-cell-depth-2{padding-left:calc(var(--st-cell-padding)*8)}.st-cell-depth-3{padding-left:calc(var(--st-cell-padding)*12)}.st-cell-depth-4{padding-left:calc(var(--st-cell-padding)*16)}.st-cell-depth-5{padding-left:calc(var(--st-cell-padding)*20)}.st-cell-depth-6{padding-left:calc(var(--st-cell-padding)*24)}.st-cell-depth-7{padding-left:calc(var(--st-cell-padding)*28)}.st-cell-depth-1 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/80%)!important}.st-cell-depth-2 .st-cell-content,.st-cell-depth-3 .st-cell-content,.st-cell-depth-4 .st-cell-content,.st-cell-depth-5 .st-cell-content,.st-cell-depth-6 .st-cell-content,.st-cell-depth-7 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/70%)!important}.st-icon-container{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-ms-flex-item-align:stretch;align-items:center;align-self:stretch;border-radius:4px;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin-left:4px;-webkit-transition:outline .2s ease;transition:outline .2s ease}.st-icon-container:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:2px}.st-collapse-icon-container{cursor:pointer}.st-expand-icon{color:var(--st-header-label-color);cursor:pointer}.st-expand-icon:not([fill=none]){fill:var(--st-header-label-color)}.st-header-resize-handle-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:col-resize;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--st-resize-handle-container-width)}.st-header-resize-handle{background-color:var(--st-resize-handle-color);height:calc(100% - 20px);width:var(--st-resize-handle-width)}.st-row-separator{background-color:var(--st-border-color);cursor:pointer;height:1px;min-width:100%;position:absolute;width:100%}.st-row-separator.st-last-group-row{background-color:var(--st-last-group-row-separator-border-color)}.st-dragging:not(.st-sub-header){background-color:var(--st-dragging-background-color)}.st-dragging.st-sub-header{background-color:var(--st-dragging-sub-header-background-color)}.st-loading-skeleton{-webkit-animation:st-skeleton-pulse 1.5s ease-in-out infinite;animation:st-skeleton-pulse 1.5s ease-in-out infinite;background-color:var(--st-loading-skeleton-bg-color);border-radius:4px;height:16px;width:80%}@-webkit-keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.st-cell-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-selected-first{background-color:var(--st-selected-first-cell-background-color);border:var(--st-border-width) solid var(--st-selected-border-color)}.st-cell-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-column-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-column-selected-first{background-color:var(--st-selected-first-cell-background-color)}.st-cell-column-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-column-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-selected-top-border{border-top:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-bottom-border{border-bottom:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-left-border{border-left:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-right-border{border-right:var(--st-border-width) solid var(--st-selected-border-color)}.st-horizontal-scrollbar-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:13px;width:100%}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-right{-ms-flex-negative:0;flex-shrink:0}.st-horizontal-scrollbar-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{height:8px;overflow-x:auto;overflow-y:hidden;scrollbar-color:auto}.st-horizontal-scrollbar-middle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-horizontal-scrollbar-left>div,.st-horizontal-scrollbar-middle>div,.st-horizontal-scrollbar-right>div{height:.3px}.st-horizontal-scrollbar-left::-webkit-scrollbar,.st-horizontal-scrollbar-middle::-webkit-scrollbar,.st-horizontal-scrollbar-right::-webkit-scrollbar{height:8px}.st-footer{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;gap:12px;justify-content:space-between;min-height:49px;min-height:var(--st-footer-height,49px);padding:12px 16px}.simple-table-root.st-footer-position-top .st-footer{border-bottom:var(--st-border-width) solid var(--st-border-color);border-top:none}.st-footer-info{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-footer-results-text{color:var(--st-footer-text-color,var(--st-cell-color));font-size:14px;white-space:nowrap}.st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.st-footer-pagination,.st-next-prev-btn{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-next-prev-btn{-webkit-box-pack:center;-ms-flex-pack:center;fill:var(--st-next-prev-btn-color);background-color:initial;border:none;border-radius:var(--st-border-radius);cursor:pointer;justify-content:center;margin-left:4px;padding:6px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-next-prev-btn,.st-next-prev-btn .st-next-prev-icon{color:var(--st-next-prev-btn-color)}.st-next-prev-btn .st-next-prev-icon:not([fill=none]){fill:var(--st-next-prev-btn-color)}.disabled>.st-next-prev-icon{fill:var(--st-next-prev-btn-disabled-color);color:var(--st-next-prev-btn-disabled-color);cursor:not-allowed}.st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.st-next-prev-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:0}.st-page-btn{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:initial;border:none;border-radius:var(--st-border-radius);color:var(--st-page-btn-color);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:500;justify-content:center;min-width:36px;padding:6px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-page-btn:hover{background-color:var(--st-button-hover-background-color)}.st-page-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:-2px}.st-page-btn.active{background-color:var(--st-button-active-background-color);color:var(--st-header-selected-label-color,var(--st-white));font-weight:600}.st-footer-pagination .st-page-btn.st-page-btn--compact-hidden{display:none}.st-page-ellipsis{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:var(--st-next-prev-btn-color);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-weight:400;justify-content:center;padding:0 4px}.editable-cell-input{border:var(--st-border-width) solid var(--st-border-color);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);font-size:.875rem;height:100%;left:0;outline:none;padding:var(--st-cell-padding);position:absolute;top:0;width:100%;z-index:1}.editable-cell-input:focus{border:var(--st-border-width) solid var(--st-editable-cell-focus-border-color)}.st-column-editor{-ms-flex-negative:0;-ms-flex-item-align:stretch;align-self:stretch;background:var(--st-column-editor-background-color);border-left:var(--st-border-width) solid var(--st-border-color);color:var(--st-column-editor-text-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:auto;min-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-editor.st-column-editor--no-toggle{background:#0000;border-left:none;cursor:default;overflow:visible;pointer-events:none;width:0}.st-column-editor.st-column-editor--no-toggle .st-column-editor-popout{pointer-events:auto;right:100%}.st-column-editor-text{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;flex-grow:1;max-width:100%;min-width:0;padding:var(--st-spacing-medium) var(--st-spacing-small);width:100%;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;z-index:2}.st-column-editor.open,.st-column-editor.open .st-column-editor-text{background-color:var(--st-column-editor-background-color)}.st-column-editor-popout{background-color:var(--st-column-editor-popout-background-color);cursor:default;height:100%;overflow:hidden;position:absolute;right:calc(100% + var(--st-border-width)*2);top:0;-webkit-transition:width var(--st-transition-duration) var(--st-transition-ease);transition:width var(--st-transition-duration) var(--st-transition-ease);width:0;z-index:10}.st-column-editor-popout-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;border-left:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;-ms-touch-action:auto;touch-action:auto}.st-column-editor-search-wrapper{background-color:var(--st-column-editor-popout-background-color);padding:var(--st-spacing-medium);position:sticky;top:0;z-index:1}.st-column-editor-list{padding-bottom:var(--st-spacing-medium);padding-left:var(--st-spacing-medium);padding-right:var(--st-spacing-medium)}.st-column-editor-list,.st-column-editor-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.st-column-editor-lists{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:auto}.st-column-editor-section-label{color:var(--st-column-editor-text-color);font-size:.7rem;font-weight:600;letter-spacing:.04em;opacity:.75;padding:var(--st-spacing-small) var(--st-spacing-medium) 0;text-transform:uppercase}.st-column-editor-list-section{padding-bottom:var(--st-spacing-small);padding-top:0}.st-column-editor-footer{background-color:var(--st-column-editor-popout-background-color);border-top:var(--st-border-width) solid var(--st-border-color);bottom:0;position:sticky;z-index:1}.st-column-editor-footer,.st-column-editor-reset-btn{padding:var(--st-spacing-small) var(--st-spacing-medium)}.st-column-editor-reset-btn{background:#0000;border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-column-editor-text-color);cursor:pointer;font-size:.8rem;font-weight:500;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-column-editor-reset-btn:hover{background-color:var(--st-button-hover-background-color)}.st-column-pin-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:0;padding:2px}.st-column-pin-btn:hover{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000)}.st-column-pin-pinned-mark{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-column-pin-pinned-active{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000);border-radius:4px}.st-column-pin-pinned-essential{cursor:default}.st-column-pin-side-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:1px}.st-column-pin-side{font-size:.65rem;font-weight:700;height:1.25rem;letter-spacing:-.02em;line-height:1;min-width:1.25rem;padding:0 3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-pin-side-option{color:color-mix(in srgb,var(--st-column-editor-text-color) 52%,#0000);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease)}.st-column-pin-svg,.st-header-checkbox-item:hover .st-column-pin-side-option{color:var(--st-column-editor-text-color)}.st-column-pin-svg{display:block}.st-checkbox-disabled{cursor:not-allowed;opacity:.45}.st-header-checkbox-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);padding-bottom:var(--st-spacing-small);padding-top:var(--st-spacing-small)}.st-column-label-container{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-drag-icon-container{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:-webkit-grab;cursor:grab;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:.5;-webkit-transition:opacity var(--st-transition-duration) var(--st-transition-ease);transition:opacity var(--st-transition-duration) var(--st-transition-ease)}.st-drag-icon-container:hover{opacity:1}.st-drag-icon-container:active{cursor:-webkit-grabbing;cursor:grabbing}.st-drag-icon{fill:currentColor;color:currentColor}.st-column-editor-drag-separator{background-color:var(--st-drag-separator-color);border-radius:1px;height:2px;margin:2px 0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;width:100%}.st-header-icon-container{-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;width:28px}.st-header-icon{color:var(--st-header-icon-color);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease)}.st-header-icon:not([fill=none]){fill:var(--st-header-icon-color)}.st-checkbox-checkmark[fill=none] path,.st-custom-select-arrow[fill=none] path,.st-expand-icon[fill=none] path,.st-header-icon[fill=none] path,.st-next-prev-icon[fill=none] path{fill:none}.st-collapsible-header-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.st-collapsible-header-icon.st-expand-icon-container.expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-collapsible-header-icon.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-column-editor-expand-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.st-column-editor-expand-icon,.st-nested-headers{display:-webkit-box;display:-ms-flexbox;display:flex}.st-nested-headers{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-column-editor-popout.open{min-width:240px;width:auto}.st-column-editor-popout.left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.st-column-editor-popout.open.left{-webkit-transform:translateX(0);transform:translateX(0)}.st-checkbox-label{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);justify-content:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-checkbox-input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.st-checkbox-input:focus-visible+.st-checkbox-custom{outline:1px solid var(--st-focus-ring-color);outline-offset:-1px}.st-checkbox-custom{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--st-checkbox-background-color,var(--st-white));border:1.5px solid var(--st-checkbox-border-color);border-radius:var(--st-border-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;min-height:16px;min-width:16px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease)}.st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.st-checkbox-checkmark{color:#fff}@-webkit-keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.st-group-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:500;height:40px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-group-header:hover{background-color:var(--st-button-hover-background-color)}.st-group-header-content{gap:var(--st-spacing-medium)}.st-group-header-content,.st-group-toggle-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-group-toggle-icon{-webkit-box-pack:center;-ms-flex-pack:center;font-size:.8em;height:16px;justify-content:center;width:16px}.st-group-name{font-weight:600}.st-group-count{color:var(--st-cell-odd-row-color);font-size:.9em}.st-group-header.expanded .st-group-toggle-icon{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-group-header.collapsed .st-group-toggle-icon,.st-group-header.expanded .st-group-toggle-icon{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-group-header.collapsed .st-group-toggle-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.st-expand-icon-container{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-expand-icon-container.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-expand-icon-container.placeholder{opacity:0;pointer-events:none}.st-accordion-animating .st-cell,.st-accordion-animating .st-header-cell{overflow:hidden;-webkit-transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease));transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease))}@-webkit-keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}@keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}.st-cell-updating{-webkit-animation:cell-flash .6s ease-in-out;animation:cell-flash .6s ease-in-out}@-webkit-keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@-webkit-keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-copy-flash{-webkit-animation:copy-flash .8s ease-in-out;animation:copy-flash .8s ease-in-out}.st-cell-copy-flash-first{-webkit-animation:copy-flash-first .8s ease-in-out;animation:copy-flash-first .8s ease-in-out}@-webkit-keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@-webkit-keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-warning-flash{-webkit-animation:warning-flash .6s ease-in-out;animation:warning-flash .6s ease-in-out}.st-cell-warning-flash-first{-webkit-animation:warning-flash-first .6s ease-in-out;animation:warning-flash-first .6s ease-in-out}.st-dropdown-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;background-color:var(--st-odd-row-background-color);border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:300px;min-width:120px;position:fixed;-ms-touch-action:auto;touch-action:auto;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;z-index:100}.st-dropdown-content.st-dropdown-content--allow-descendant-overflow{max-height:none;overflow:visible}.st-filter-container .st-dropdown-content{z-index:101}.st-dropdown-bottom-left,.st-dropdown-bottom-right,.st-dropdown-top-left,.st-dropdown-top-right{margin:0}.st-dropdown-item{color:var(--st-cell-color);cursor:pointer;font-size:.9em;padding:var(--st-spacing-small) var(--st-spacing-medium);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-dropdown-item:hover{background-color:var(--st-button-hover-background-color)}.st-dropdown-item.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-dropdown-divider{background-color:var(--st-border-color);height:1px;margin:4px 0}.st-datepicker{background-color:var(--st-odd-row-background-color);font-family:inherit}.st-datepicker-header{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;padding:var(--st-spacing-medium)}.st-datepicker-header-label{-webkit-box-flex:1;color:var(--st-header-label-color);cursor:pointer;-ms-flex:1;flex:1;font-weight:600;text-align:center}.st-datepicker-nav-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1.2em;justify-content:center;padding:0 8px}.st-datepicker-nav-btn>*{color:var(--st-cell-color)!important}.st-datepicker-nav-btn>:not([fill=none]){fill:var(--st-cell-color)!important}.st-datepicker-nav-btn:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-grid{display:grid;padding:var(--st-spacing-medium)}.st-datepicker-days-grid{gap:4px;grid-template-columns:repeat(7,1fr)}.st-datepicker-months-grid,.st-datepicker-years-grid{gap:8px;grid-template-columns:repeat(3,1fr)}.st-datepicker-weekday{color:var(--st-datepicker-weekday-color);font-size:.8em;font-weight:600;padding:6px 0;text-align:center}.st-datepicker-day{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9em;height:24px;justify-content:center;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:24px}.st-datepicker-day.empty{cursor:default}.st-datepicker-day:not(.empty):hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-day.today{color:var(--st-button-active-background-color);font-weight:600}.st-datepicker-day.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-day.other-month{color:var(--st-datepicker-other-month-color)}.st-datepicker-month,.st-datepicker-year{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:var(--st-border-radius);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;padding:12px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-month:hover,.st-datepicker-year:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-month.selected,.st-datepicker-year.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-footer{-webkit-box-pack:end;-ms-flex-pack:end;border-top:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;padding:var(--st-spacing-medium)}.st-datepicker-today-btn{background-color:initial;border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;padding:6px 12px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-today-btn:hover{background-color:var(--st-button-hover-background-color)}.st-filter-container{min-width:150px;padding:var(--st-spacing-medium)}.st-filter-container,.st-filter-section{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1}.st-filter-section{margin-bottom:var(--st-spacing-medium)}.st-filter-input{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-small);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-input:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-input-range-from{margin-bottom:var(--st-spacing-medium)}.st-filter-select{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-medium) var(--st-spacing-medium);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-select:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-actions{border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-medium);padding-top:var(--st-spacing-medium)}.st-filter-button{-webkit-box-flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;border-radius:var(--st-border-radius);cursor:pointer;-ms-flex:1;flex:1;font-family:inherit;font-size:.9em;font-weight:500;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-filter-button:focus{outline:none}.st-filter-button:focus-visible{outline:2px solid var(--st-focus-ring-color);outline-offset:2px}.st-filter-button-apply{background-color:var(--st-button-active-background-color);color:#fff}.st-filter-button-apply:hover:not(.st-filter-button-disabled){opacity:.9}.st-filter-button-disabled{background-color:var(--st-filter-button-disabled-background-color);color:var(--st-filter-button-disabled-text-color);cursor:not-allowed}.st-filter-button-clear{background-color:initial;border:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color)}.st-filter-button-clear:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select{position:relative;width:100%}.st-custom-select-trigger{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:.9em;gap:var(--st-spacing-medium);justify-content:space-between;outline:none;padding:var(--st-spacing-small);text-align:left;-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-custom-select-open .st-custom-select-trigger,.st-custom-select-trigger:focus,.st-custom-select-trigger:hover:not(:disabled){border-color:var(--st-editable-cell-focus-border-color)}.st-custom-select-value{-webkit-box-flex:1;color:var(--st-cell-color);-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.st-custom-select-arrow{-ms-flex-negative:0;color:var(--st-header-label-color);flex-shrink:0;-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-custom-select-open .st-custom-select-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-custom-select-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:200px;min-width:120px;overflow:auto;overflow-x:hidden}.st-custom-select-option{-ms-flex-negative:0;color:var(--st-cell-color);cursor:pointer;flex-shrink:0;font-size:.9em;overflow:hidden;padding:var(--st-spacing-small);text-overflow:ellipsis;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-custom-select-option-focused,.st-custom-select-option:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select-option-selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-custom-select-option-selected.st-custom-select-option-focused{background-color:var(--st-selected-cell-background-color);opacity:.9}.st-custom-select-disabled{opacity:var(--st-opacity-disabled);pointer-events:none}.st-custom-select-disabled .st-custom-select-trigger{background-color:var(--st-header-background-color);color:var(--st-header-label-color);cursor:not-allowed}.st-enum-filter-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1;gap:var(--st-spacing-small);max-height:200px;overflow:auto}.st-enum-filter-options .st-checkbox-label{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.st-enum-search,.st-enum-select-all{border-bottom:var(--st-border-width) solid var(--st-border-color);padding-bottom:var(--st-spacing-small)}.st-enum-select-all-label{color:var(--st-header-label-color);font-weight:600}.st-enum-option-label{color:var(--st-cell-color);font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-enum-filter-options .st-enum-option-label{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-enum-no-results{color:var(--st-slate-400);font-size:.9em;font-style:italic;padding:var(--st-spacing-medium);text-align:center}.st-row-number{font-size:.8em;font-weight:500;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-selection-cell-content{-webkit-box-pack:justify;-ms-flex-pack:justify;gap:8px;justify-content:space-between;width:100%}.st-row-buttons,.st-selection-cell-content,.st-selection-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-row-buttons,.st-selection-control{-ms-flex-negative:0;flex-shrink:0}.st-row-buttons{-webkit-box-pack:end;-ms-flex-pack:end;gap:4px;justify-content:flex-end}.st-row-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}.st-column-borders .st-cell:not(.st-last-column),.st-column-borders .st-header-cell:not(.st-last-column),.st-column-borders .st-row.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-column-borders .st-row.selected.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){-webkit-box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color);box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color)}.st-tooltip{word-wrap:break-word;-webkit-animation:st-tooltip-fade-in .2s ease-out;animation:st-tooltip-fade-in .2s ease-out;background-color:var(--st-tooltip-background-color);border-radius:var(--st-tooltip-border-radius);-webkit-box-shadow:var(--st-tooltip-shadow);box-shadow:var(--st-tooltip-shadow);color:var(--st-tooltip-text-color);font-size:12px;font-size:var(--st-tooltip-font-size,12px);line-height:1.4;max-width:300px;padding:var(--st-tooltip-padding);pointer-events:none}@-webkit-keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.st-row.st-state-row{display:grid;position:absolute;width:100%}.st-row.st-state-row-spacer{background-color:initial;display:block;position:absolute;width:100%}.st-state-row-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-body-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;grid-column:1/-1}.st-bar-chart,.st-line-area-chart{overflow:visible}.theme-light{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-slate-50);--st-scrollbar-thumb-color:var(--st-slate-300);--st-scrollbar-width:thin;--st-border-color:var(--st-slate-300);--st-body-background-color:var(--st-white);--st-footer-background-color:var(--st-slate-50);--st-footer-text-color:var(--st-slate-600);--st-last-group-row-separator-border-color:var(--st-slate-400);--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-slate-50);--st-hover-row-background-color:var(--st-slate-100);--st-selected-row-background-color:var(--st-blue-50);--st-odd-column-background-color:var(--st-slate-50);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-slate-100);--st-sub-header-background-color:var(--st-slate-200);--st-header-label-color:var(--st-slate-900);--st-header-icon-color:var(--st-slate-500);--st-cell-color:var(--st-slate-900);--st-cell-odd-row-color:var(--st-slate-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-sub-cell-background-color:var(--st-slate-100);--st-sub-cell-hover-background-color:var(--st-slate-200);--st-selected-cell-background-color:var(--st-blue-100);--st-selected-first-cell-background-color:var(--st-blue-50);--st-selected-cell-color:var(--st-slate-900);--st-selected-first-cell-color:var(--st-slate-900);--st-selected-sub-cell-background-color:var(--st-blue-200);--st-selected-sub-cell-color:var(--st-slate-900);--st-dragging-background-color:var(--st-slate-200);--st-dragging-sub-header-background-color:var(--st-slate-300);--st-resize-handle-color:var(--st-slate-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-500);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-800);--st-button-hover-background-color:var(--st-slate-100);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-slate-600);--st-next-prev-btn-disabled-color:var(--st-slate-400);--st-page-btn-color:var(--st-slate-600);--st-page-btn-hover-background-color:var(--st-slate-100);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-slate-300);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-slate-500);--st-datepicker-weekday-color:var(--st-slate-500);--st-datepicker-other-month-color:var(--st-slate-400);--st-filter-button-disabled-background-color:var(--st-slate-300);--st-filter-button-disabled-text-color:var(--st-slate-500);--st-cell-flash-color:var(--st-slate-200);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-300);--st-tooltip-background-color:var(--st-slate-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-100);--st-selection-highlight-indicator-color:var(--st-slate-300);--st-loading-skeleton-bg-color:var(--st-slate-200);--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:var(--st-blue-500)}.theme-dark{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-gray-900);--st-scrollbar-thumb-color:var(--st-gray-600);--st-scrollbar-width:thin;--st-border-color:var(--st-gray-700);--st-body-background-color:var(--st-gray-900);--st-footer-background-color:var(--st-gray-900);--st-footer-text-color:var(--st-gray-300);--st-last-group-row-separator-border-color:var(--st-gray-500);--st-odd-row-background-color:var(--st-gray-800);--st-even-row-background-color:var(--st-gray-900);--st-hover-row-background-color:var(--st-gray-700);--st-selected-row-background-color:var(--st-blue-950);--st-odd-column-background-color:var(--st-gray-800);--st-even-column-background-color:var(--st-gray-900);--st-header-background-color:var(--st-gray-800);--st-sub-header-background-color:var(--st-gray-700);--st-sub-cell-background-color:var(--st-gray-800);--st-sub-cell-hover-background-color:var(--st-gray-700);--st-header-label-color:var(--st-gray-100);--st-header-icon-color:var(--st-gray-400);--st-cell-color:var(--st-gray-100);--st-cell-odd-row-color:var(--st-gray-200);--st-edit-cell-shadow:0 1px 3px 0 #ffffff1a;--st-selected-cell-background-color:var(--st-blue-900);--st-selected-first-cell-background-color:var(--st-blue-800);--st-selected-cell-color:var(--st-white);--st-selected-first-cell-color:var(--st-white);--st-selected-sub-cell-background-color:var(--st-blue-800);--st-selected-sub-cell-color:var(--st-white);--st-dragging-background-color:var(--st-gray-500);--st-dragging-sub-header-background-color:var(--st-gray-600);--st-resize-handle-color:var(--st-gray-500);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-400);--st-editable-cell-focus-border-color:var(--st-blue-400);--st-focus-ring-color:var(--st-blue-400);--st-button-hover-background-color:var(--st-gray-600);--st-button-active-background-color:var(--st-blue-500);--st-next-prev-btn-color:var(--st-gray-300);--st-next-prev-btn-disabled-color:var(--st-gray-600);--st-page-btn-color:var(--st-gray-300);--st-page-btn-hover-background-color:var(--st-gray-600);--st-checkbox-background-color:var(--st-gray-800);--st-checkbox-checked-background-color:var(--st-blue-500);--st-checkbox-checked-border-color:var(--st-blue-500);--st-checkbox-border-color:var(--st-gray-600);--st-column-editor-background-color:var(--st-gray-800);--st-column-editor-popout-background-color:var(--st-gray-800);--st-column-editor-text-color:var(--st-gray-400);--st-datepicker-weekday-color:var(--st-gray-400);--st-datepicker-other-month-color:var(--st-gray-600);--st-filter-button-disabled-background-color:var(--st-gray-700);--st-filter-button-disabled-text-color:var(--st-gray-500);--st-cell-flash-color:var(--st-gray-600);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-gray-100);--st-tooltip-text-color:var(--st-gray-900);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 2px 8px #0000004d;--st-header-selected-background-color:var(--st-blue-500);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-900);--st-selection-highlight-indicator-color:var(--st-gray-600);--st-loading-skeleton-bg-color:var(--st-gray-700);--st-chart-color:var(--st-blue-400);--st-chart-fill-color:var(--st-blue-400);--st-drag-separator-color:var(--st-blue-400)}.theme-neutral{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-neutral-100);--st-scrollbar-thumb-color:var(--st-neutral-400);--st-scrollbar-width:thin;--st-border-color:var(--st-neutral-300);--st-body-background-color:var(--st-neutral-50);--st-footer-background-color:var(--st-neutral-50);--st-footer-text-color:var(--st-neutral-600);--st-last-group-row-separator-border-color:var(--st-neutral-400);--st-odd-row-background-color:var(--st-neutral-50);--st-even-row-background-color:var(--st-neutral-100);--st-hover-row-background-color:var(--st-neutral-200);--st-selected-row-background-color:var(--st-neutral-300);--st-odd-column-background-color:var(--st-neutral-50);--st-even-column-background-color:var(--st-neutral-100);--st-header-background-color:var(--st-neutral-200);--st-sub-header-background-color:var(--st-neutral-300);--st-sub-cell-background-color:var(--st-neutral-200);--st-sub-cell-hover-background-color:var(--st-neutral-300);--st-header-label-color:var(--st-neutral-900);--st-header-icon-color:var(--st-neutral-500);--st-cell-color:var(--st-neutral-900);--st-cell-odd-row-color:var(--st-neutral-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-neutral-400);--st-selected-first-cell-background-color:var(--st-neutral-300);--st-selected-cell-color:var(--st-neutral-900);--st-selected-first-cell-color:var(--st-neutral-900);--st-selected-sub-cell-background-color:var(--st-neutral-400);--st-selected-sub-cell-color:var(--st-neutral-900);--st-dragging-background-color:var(--st-neutral-300);--st-dragging-sub-header-background-color:var(--st-neutral-400);--st-resize-handle-color:var(--st-neutral-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-neutral-600);--st-editable-cell-focus-border-color:var(--st-neutral-500);--st-focus-ring-color:var(--st-neutral-600);--st-button-hover-background-color:var(--st-neutral-200);--st-button-active-background-color:var(--st-neutral-600);--st-next-prev-btn-color:var(--st-neutral-600);--st-next-prev-btn-disabled-color:var(--st-neutral-400);--st-page-btn-color:var(--st-neutral-600);--st-page-btn-hover-background-color:var(--st-neutral-200);--st-checkbox-checked-background-color:var(--st-neutral-600);--st-checkbox-checked-border-color:var(--st-neutral-600);--st-checkbox-border-color:var(--st-neutral-300);--st-column-editor-background-color:var(--st-neutral-50);--st-column-editor-popout-background-color:var(--st-neutral-50);--st-column-editor-text-color:var(--st-neutral-500);--st-datepicker-weekday-color:var(--st-neutral-500);--st-datepicker-other-month-color:var(--st-neutral-400);--st-filter-button-disabled-background-color:var(--st-neutral-300);--st-filter-button-disabled-text-color:var(--st-neutral-500);--st-cell-flash-color:var(--st-neutral-400);--st-copy-flash-color:var(--st-neutral-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-neutral-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-neutral-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-neutral-400);--st-selection-highlight-indicator-color:var(--st-neutral-400);--st-loading-skeleton-bg-color:var(--st-neutral-200);--st-chart-color:var(--st-neutral-500);--st-chart-fill-color:var(--st-neutral-500);--st-drag-separator-color:var(--st-neutral-600)}.theme-custom,.theme-modern-light{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#e5e7eb;--st-footer-background-color:var(--st-white);--st-footer-text-color:#6b7280;--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-white);--st-hover-row-background-color:#f3f4f6;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#374151;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-modern-dark{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#111827;--st-scrollbar-thumb-color:#4b5563;--st-scrollbar-width:thin;--st-border-color:#374151;--st-footer-background-color:#1f2937;--st-footer-text-color:#d1d5db;--st-last-group-row-separator-border-color:#4b5563;--st-odd-row-background-color:#1f2937;--st-even-row-background-color:#1f2937;--st-hover-row-background-color:#374151;--st-selected-row-background-color:#1e3a5f;--st-odd-column-background-color:#1f2937;--st-even-column-background-color:#1f2937;--st-header-background-color:#1f2937;--st-sub-header-background-color:#111827;--st-header-label-color:#f3f4f6;--st-header-icon-color:#9ca3af;--st-cell-color:#f3f4f6;--st-cell-odd-row-color:#d1d5db;--st-edit-cell-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003;--st-sub-cell-background-color:#111827;--st-sub-cell-hover-background-color:#1f2937;--st-selected-cell-background-color:#1e40af;--st-selected-first-cell-background-color:#1e3a8a;--st-selected-cell-color:#f3f4f6;--st-selected-first-cell-color:#f3f4f6;--st-selected-sub-cell-background-color:#1e3a8a;--st-selected-sub-cell-color:#f3f4f6;--st-dragging-background-color:#374151;--st-dragging-sub-header-background-color:#4b5563;--st-resize-handle-color:#4b5563;--st-resize-handle-selected-color:#60a5fa;--st-selected-border-color:#60a5fa;--st-editable-cell-focus-border-color:#60a5fa;--st-focus-ring-color:#60a5fa;--st-button-hover-background-color:#374151;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#9ca3af;--st-next-prev-btn-disabled-color:#4b5563;--st-page-btn-color:#d1d5db;--st-page-btn-hover-background-color:#374151;--st-checkbox-background-color:#1f2937;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#4b5563;--st-column-editor-background-color:#1f2937;--st-column-editor-popout-background-color:#1f2937;--st-column-editor-text-color:#9ca3af;--st-datepicker-weekday-color:#9ca3af;--st-datepicker-other-month-color:#4b5563;--st-filter-button-disabled-background-color:#374151;--st-filter-button-disabled-text-color:#6b7280;--st-cell-flash-color:#1e40af;--st-copy-flash-color:#60a5fa;--st-warning-flash-color:#ef4444;--st-tooltip-background-color:#f3f4f6;--st-tooltip-text-color:#111827;--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#1e40af;--st-selection-highlight-indicator-color:#374151;--st-loading-skeleton-bg-color:#374151;--st-chart-color:#60a5fa;--st-chart-fill-color:#3b82f6;--st-drag-separator-color:#60a5fa;--st-body-background-color:#1f2937}
|
|
1
|
+
.st-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.simple-table-root{--st-after-width:11.01px;--st-resize-handle-width:2px;--st-resize-handle-container-width:10px;--st-border-width:1px;--st-footer-height:49px;--st-transition-duration:0.2s;--st-transition-ease:ease;--st-opacity-disabled:0.5;--st-white:#fff;--st-black:#000;--st-slate-50:#f8fafc;--st-slate-100:#f1f5f9;--st-slate-200:#e2e8f0;--st-slate-300:#cbd5e1;--st-slate-400:#94a3b8;--st-slate-500:#64748b;--st-slate-600:#475569;--st-slate-800:#1e293b;--st-slate-900:#0f172a;--st-gray-100:#f3f4f6;--st-gray-200:#e5e7eb;--st-gray-300:#d1d5db;--st-gray-400:#9ca3af;--st-gray-500:#6b7280;--st-gray-600:#4b5563;--st-gray-700:#374151;--st-gray-800:#1f2937;--st-gray-900:#111827;--st-neutral-50:#fafafa;--st-neutral-100:#f5f5f5;--st-neutral-200:#e5e5e5;--st-neutral-300:#d4d4d4;--st-neutral-400:#a3a3a3;--st-neutral-500:#737373;--st-neutral-600:#525252;--st-neutral-800:#262626;--st-neutral-900:#171717;--st-red-300:#fca5a5;--st-red-400:#f87171;--st-blue-50:#eff6ff;--st-blue-100:#dbeafe;--st-blue-200:#bfdbfe;--st-blue-300:#93c5fd;--st-blue-400:#60a5fa;--st-blue-500:#3b82f6;--st-blue-600:#2563eb;--st-blue-800:#1e40af;--st-blue-900:#1e3a8a;--st-blue-950:#172554}.simple-table-root *{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit;scrollbar-color:var(--st-scrollbar-thumb-color) var(--st-scrollbar-bg-color);scrollbar-width:var(--st-scrollbar-width)}input{color:#000}.simple-table-root ::-webkit-scrollbar{height:8px;width:8px}.simple-table-root ::-webkit-scrollbar-track{background:var(--st-scrollbar-bg-color)}.simple-table-root ::-webkit-scrollbar-thumb{background:var(--st-scrollbar-thumb-color);border-radius:4px}.simple-table-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--st-cell-color)}.st-wrapper{border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);overflow:hidden;position:relative}.simple-table-root.st-external-scroll{overflow:visible}.simple-table-root.st-external-scroll .st-header-container{position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1);z-index:4}.simple-table-root.st-external-scroll .st-sticky-top{position:sticky;top:0;top:calc(var(--st-calculated-header-height, 0px) - var(--st-external-scroll-padding-top, 0px))}.simple-table-root.st-external-scroll .st-column-editor-text{-ms-flex-item-align:start;-webkit-box-flex:0;-ms-flex-positive:0;align-self:flex-start;flex-grow:0;position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1)}.st-wrapper-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.st-content-wrapper,.st-wrapper-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%}.st-content-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0}.st-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--st-even-row-background-color);-ms-flex-direction:column;flex-direction:column}.st-content,.st-header-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.st-header-container,.st-header-container.st-header-scroll-padding:after{-ms-flex-negative:0;background-color:var(--st-header-background-color);flex-shrink:0}.st-header-container.st-header-scroll-padding:after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";display:block;width:default-width;width:var(--st-after-width,default-width)}.st-header-container.st-header-scroll-padding:after,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-grid{min-width:100%;position:relative}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right,.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{overflow:auto;-ms-touch-action:auto;touch-action:auto}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{scrollbar-width:none}.st-body-pinned-left,.st-body-pinned-right,.st-header-pinned-left,.st-header-pinned-right{-ms-flex-negative:0;flex-shrink:0}.st-body-pinned-left,.st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-body-pinned-right,.st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-header-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-header-main,.st-header-pinned-left,.st-header-pinned-right{background-color:var(--st-header-background-color);overflow-x:auto;overflow-y:hidden}.st-header-main::-webkit-scrollbar{display:none}.st-body-container{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-overflow-scrolling:touch;background-color:var(--st-even-row-background-color);flex-grow:1;height:-webkit-max-content;height:-moz-max-content;height:max-content;overflow:auto;-ms-touch-action:auto;touch-action:auto;width:100%}.st-body-container,.st-sticky-top{display:-webkit-box;display:-ms-flexbox;display:flex}.st-sticky-top{left:0;position:absolute;top:0;z-index:10}.st-sticky-section-left,.st-sticky-section-main,.st-sticky-section-right{overflow:hidden}.st-sticky-section-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-sticky-section-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-empty-state-wrapper{-ms-flex-align:center;-ms-flex-pack:center;-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:200px;width:100%}.st-empty-state,.st-empty-state-wrapper{-webkit-box-align:center;-webkit-box-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-empty-state{-ms-flex-align:center;-ms-flex-pack:center;color:var(--st-header-icon-color);font-size:.9em;opacity:.6;padding:48px 24px}.st-body-main,.st-body-pinned-left,.st-body-pinned-right{display:grid;height:-webkit-max-content;height:-moz-max-content;height:max-content;min-height:100%}.st-body-main::-webkit-scrollbar{display:none}.st-row{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--st-even-row-background-color);display:grid;min-width:100%;position:absolute;-webkit-transition:background .2s ease;transition:background .2s ease}.st-row.st-sticky-parent{z-index:5}.st-sticky-top .st-row.even{background-color:var(--st-even-row-background-color)}.st-sticky-top .st-row.odd{background-color:var(--st-odd-row-background-color)}.st-sticky-top .st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.hovered .st-cell-editing,.st-row.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-sticky-top .st-row.hovered:not(.st-cell-editing):not(.st-cell-column-selected):not(.st-cell-column-selected-last):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-row.hovered .st-cell.st-sub-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-sub-cell-hover-background-color)}.st-row.even{background-color:var(--st-even-row-background-color)}.st-row.odd{background-color:var(--st-odd-row-background-color)}.st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.selected.hovered .st-cell-editing,.st-row.selected.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-nested-grid-row{padding-left:8px;padding-right:8px}.st-cell-content{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px}.st-row.odd .st-cell-content{color:var(--st-cell-odd-row-color)}.st-row.even .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-even-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-even-row-background-color)}.st-cell.st-cell-odd-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-odd-row-background-color)}.st-cell.st-cell-even-row .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-odd-row .st-cell-content{color:var(--st-cell-odd-row-color)}.st-cell.st-cell-selected-row:not(.st-row-hovered):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-selected-row-background-color)}.st-cell.st-row-active:not(.st-row-hovered){outline:1px solid #93c5fd;outline:1px solid var(--st-selected-row-background-color,#93c5fd);outline-offset:-1px}.st-cell.st-row-hovered:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;font-weight:500;gap:var(--st-spacing-small);top:0}.st-header-cell.parent{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-cell.st-sub-header{background-color:var(--st-sub-header-background-color)}.st-cell.st-sub-cell{background-color:var(--st-sub-cell-background-color)}.st-header-cell.clickable,.st-header-cell.st-header-editable{cursor:pointer}.st-header-cell.draggable{cursor:-webkit-grab;cursor:grab}.st-header-cell.st-header-selected{background-color:var(--st-header-selected-background-color)}.st-header-cell.st-header-selected .st-header-label-text{color:var(--st-header-selected-label-color)}.st-header-cell.st-header-selected .st-header-icon,.st-header-cell.st-header-selected .st-icon-container{color:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-icon-container svg:not([fill=none]){fill:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-header-resize-handle{background-color:var(--st-resize-handle-selected-color)}.st-header-cell.st-header-has-highlighted-cell{background-color:var(--st-header-highlight-indicator-color)}.st-cell,.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--st-cell-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);overflow:hidden;position:relative}.st-cell{background-color:initial}.st-cell.left-aligned,.st-header-cell.left-aligned{padding-left:var(--st-cell-padding);text-align:left}.st-cell.center-aligned,.st-cell.center-aligned>.st-cell-content,.st-header-cell.center-aligned,.st-header-cell.center-aligned>.st-header-label-text{text-align:center}.st-cell.clickable{cursor:pointer}.st-cell,.st-cell-editing,.st-header-cell{height:100%;width:100%}.st-cell-editing{position:relative}.st-header-label{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1;height:100%;min-width:0;overflow:hidden}.st-cell-content,.st-header-label-text{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:100%}.st-header-label-text{color:var(--st-header-label-color);font-weight:600;overflow:hidden;padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding);text-overflow:ellipsis;white-space:nowrap}.st-cell-content.left-aligned,.st-header-label-text.left-aligned{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.st-cell-content.center-aligned,.st-header-label-text.center-aligned{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.st-cell-content.right-aligned,.st-header-label-text.right-aligned{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.st-not-resizeable .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-resizeable .st-body-pinned-right .st-cell-content,.st-resizeable .st-sticky-section-right .st-cell-content{padding-left:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width));padding-right:var(--st-cell-padding)}.st-resizeable .st-body-main .st-cell-content,.st-resizeable .st-body-pinned-left .st-cell-content,.st-resizeable .st-sticky-section-left .st-cell-content,.st-resizeable .st-sticky-section-main .st-cell-content{padding-left:var(--st-cell-padding);padding-right:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width))}.st-resizeable .st-selection-cell .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-selection-cell.st-selection-has-highlighted-cell{background-color:var(--st-selection-highlight-indicator-color)}.st-cell{border:var(--st-border-width) solid #0000;z-index:1}.st-cell:focus,.st-cell:focus-visible{outline:none}.st-cell.even-column:not(.st-cell-selected){background-color:var(--st-even-column-background-color)}.st-cell.odd-column:not(.st-cell-selected){background-color:var(--st-odd-column-background-color)}.st-cell-depth-1{padding-left:calc(var(--st-cell-padding)*4)}.st-cell-depth-2{padding-left:calc(var(--st-cell-padding)*8)}.st-cell-depth-3{padding-left:calc(var(--st-cell-padding)*12)}.st-cell-depth-4{padding-left:calc(var(--st-cell-padding)*16)}.st-cell-depth-5{padding-left:calc(var(--st-cell-padding)*20)}.st-cell-depth-6{padding-left:calc(var(--st-cell-padding)*24)}.st-cell-depth-7{padding-left:calc(var(--st-cell-padding)*28)}.st-cell-depth-1 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/80%)!important}.st-cell-depth-2 .st-cell-content,.st-cell-depth-3 .st-cell-content,.st-cell-depth-4 .st-cell-content,.st-cell-depth-5 .st-cell-content,.st-cell-depth-6 .st-cell-content,.st-cell-depth-7 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/70%)!important}.st-icon-container{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-ms-flex-item-align:stretch;align-items:center;align-self:stretch;border-radius:var(--st-border-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin-left:var(--st-spacing-small);-webkit-transition:outline .2s ease;transition:outline .2s ease}.st-icon-container:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:2px}.st-collapse-icon-container{cursor:pointer}.st-expand-icon{color:var(--st-header-label-color);cursor:pointer}.st-expand-icon:not([fill=none]){fill:var(--st-header-label-color)}.st-header-resize-handle-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:col-resize;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--st-resize-handle-container-width)}.st-header-resize-handle{background-color:var(--st-resize-handle-color);height:calc(100% - 20px);width:var(--st-resize-handle-width)}.st-row-separator{background-color:var(--st-border-color);cursor:pointer;height:1px;min-width:100%;position:absolute;width:100%}.st-row-separator.st-last-group-row{background-color:var(--st-last-group-row-separator-border-color)}.st-dragging:not(.st-sub-header){background-color:var(--st-dragging-background-color)}.st-dragging.st-sub-header{background-color:var(--st-dragging-sub-header-background-color)}.st-loading-skeleton{-webkit-animation:st-skeleton-pulse 1.5s ease-in-out infinite;animation:st-skeleton-pulse 1.5s ease-in-out infinite;background-color:var(--st-loading-skeleton-bg-color);border-radius:4px;height:16px;width:80%}@-webkit-keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.st-cell-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-selected-first{background-color:var(--st-selected-first-cell-background-color);border:var(--st-border-width) solid var(--st-selected-border-color)}.st-cell-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-column-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-column-selected-first{background-color:var(--st-selected-first-cell-background-color)}.st-cell-column-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-column-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-selected-top-border{border-top:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-bottom-border{border-bottom:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-left-border{border-left:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-right-border{border-right:var(--st-border-width) solid var(--st-selected-border-color)}.st-horizontal-scrollbar-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:13px;width:100%}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-right{-ms-flex-negative:0;flex-shrink:0}.st-horizontal-scrollbar-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{height:8px;overflow-x:auto;overflow-y:hidden;scrollbar-color:auto}.st-horizontal-scrollbar-middle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-horizontal-scrollbar-left>div,.st-horizontal-scrollbar-middle>div,.st-horizontal-scrollbar-right>div{height:.3px}.st-horizontal-scrollbar-left::-webkit-scrollbar,.st-horizontal-scrollbar-middle::-webkit-scrollbar,.st-horizontal-scrollbar-right::-webkit-scrollbar{height:8px}.st-footer{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;gap:12px;justify-content:space-between;min-height:49px;min-height:var(--st-footer-height,49px);padding:12px 16px}.simple-table-root.st-footer-position-top .st-footer{border-bottom:var(--st-border-width) solid var(--st-border-color);border-top:none}.st-footer-info{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-footer-results-text{color:var(--st-footer-text-color,var(--st-cell-color));font-size:14px;white-space:nowrap}.st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.st-footer-pagination,.st-next-prev-btn{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-next-prev-btn{-webkit-box-pack:center;-ms-flex-pack:center;fill:var(--st-next-prev-btn-color);background-color:initial;border:none;border-radius:var(--st-border-radius);cursor:pointer;justify-content:center;margin-left:4px;padding:6px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-next-prev-btn,.st-next-prev-btn .st-next-prev-icon{color:var(--st-next-prev-btn-color)}.st-next-prev-btn .st-next-prev-icon:not([fill=none]){fill:var(--st-next-prev-btn-color)}.disabled>.st-next-prev-icon{fill:var(--st-next-prev-btn-disabled-color);color:var(--st-next-prev-btn-disabled-color);cursor:not-allowed}.st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.st-next-prev-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:0}.st-page-btn{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:initial;border:none;border-radius:var(--st-border-radius);color:var(--st-page-btn-color);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:500;justify-content:center;min-width:36px;padding:6px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-page-btn:hover{background-color:var(--st-button-hover-background-color)}.st-page-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:-2px}.st-page-btn.active{background-color:var(--st-button-active-background-color);color:var(--st-header-selected-label-color,var(--st-white));font-weight:600}.st-footer-pagination .st-page-btn.st-page-btn--compact-hidden{display:none}.st-page-ellipsis{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:var(--st-next-prev-btn-color);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-weight:400;justify-content:center;padding:0 4px}.editable-cell-input{border:var(--st-border-width) solid var(--st-border-color);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);font-size:.875rem;height:100%;left:0;outline:none;padding:var(--st-cell-padding);position:absolute;top:0;width:100%;z-index:1}.editable-cell-input:focus{border:var(--st-border-width) solid var(--st-editable-cell-focus-border-color)}.st-column-editor{-ms-flex-negative:0;-ms-flex-item-align:stretch;align-self:stretch;background:var(--st-column-editor-background-color);border-left:var(--st-border-width) solid var(--st-border-color);color:var(--st-column-editor-text-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:auto;min-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-editor.st-column-editor--no-toggle{background:#0000;border-left:none;cursor:default;overflow:visible;pointer-events:none;width:0}.st-column-editor.st-column-editor--no-toggle .st-column-editor-popout{pointer-events:auto;right:100%}.st-column-editor-text{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;flex-grow:1;max-width:100%;min-width:0;padding:var(--st-spacing-medium) var(--st-spacing-small);width:100%;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;z-index:2}.st-column-editor.open,.st-column-editor.open .st-column-editor-text{background-color:var(--st-column-editor-background-color)}.st-column-editor-popout{background-color:var(--st-column-editor-popout-background-color);cursor:default;height:100%;overflow:hidden;position:absolute;right:calc(100% + var(--st-border-width)*2);top:0;-webkit-transition:width var(--st-transition-duration) var(--st-transition-ease);transition:width var(--st-transition-duration) var(--st-transition-ease);width:0;z-index:10}.st-column-editor-popout-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;border-left:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;-ms-touch-action:auto;touch-action:auto}.st-column-editor-search-wrapper{background-color:var(--st-column-editor-popout-background-color);padding:var(--st-spacing-medium);position:sticky;top:0;z-index:1}.st-column-editor-list{padding-bottom:var(--st-spacing-medium);padding-left:var(--st-spacing-medium);padding-right:var(--st-spacing-medium)}.st-column-editor-list,.st-column-editor-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.st-column-editor-lists{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:auto}.st-column-editor-section-label{color:var(--st-column-editor-text-color);font-size:.7rem;font-weight:600;letter-spacing:.04em;opacity:.75;padding:var(--st-spacing-small) var(--st-spacing-medium) 0;text-transform:uppercase}.st-column-editor-list-section{padding-bottom:var(--st-spacing-small);padding-top:0}.st-column-editor-footer{background-color:var(--st-column-editor-popout-background-color);border-top:var(--st-border-width) solid var(--st-border-color);bottom:0;position:sticky;z-index:1}.st-column-editor-footer,.st-column-editor-reset-btn{padding:var(--st-spacing-small) var(--st-spacing-medium)}.st-column-editor-reset-btn{background:#0000;border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-column-editor-text-color);cursor:pointer;font-size:.8rem;font-weight:500;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-column-editor-reset-btn:hover{background-color:var(--st-button-hover-background-color)}.st-column-pin-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:0;padding:2px}.st-column-pin-btn:hover{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000)}.st-column-pin-pinned-mark{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-column-pin-pinned-active{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000);border-radius:4px}.st-column-pin-pinned-essential{cursor:default}.st-column-pin-side-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:1px}.st-column-pin-side{font-size:.65rem;font-weight:700;height:1.25rem;letter-spacing:-.02em;line-height:1;min-width:1.25rem;padding:0 3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-pin-side-option{color:color-mix(in srgb,var(--st-column-editor-text-color) 52%,#0000);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease)}.st-column-pin-svg,.st-header-checkbox-item:hover .st-column-pin-side-option{color:var(--st-column-editor-text-color)}.st-column-pin-svg{display:block}.st-checkbox-disabled{cursor:not-allowed;opacity:.45}.st-header-checkbox-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);padding-bottom:var(--st-spacing-small);padding-top:var(--st-spacing-small)}.st-column-label-container{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-drag-icon-container{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:-webkit-grab;cursor:grab;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:.5;-webkit-transition:opacity var(--st-transition-duration) var(--st-transition-ease);transition:opacity var(--st-transition-duration) var(--st-transition-ease)}.st-drag-icon-container:hover{opacity:1}.st-drag-icon-container:active{cursor:-webkit-grabbing;cursor:grabbing}.st-drag-icon{fill:currentColor;color:currentColor}.st-column-editor-drag-separator{background-color:var(--st-drag-separator-color);border-radius:1px;height:2px;margin:2px 0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;width:100%}.st-header-icon-container{-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;width:28px}.st-header-icon{color:var(--st-header-icon-color);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease)}.st-header-icon:not([fill=none]){fill:var(--st-header-icon-color)}.st-checkbox-checkmark[fill=none] path,.st-checkbox-minus[fill=none] path,.st-custom-select-arrow[fill=none] path,.st-expand-icon[fill=none] path,.st-header-icon[fill=none] path,.st-next-prev-icon[fill=none] path{fill:none}.st-collapsible-header-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.st-collapsible-header-icon.st-expand-icon-container.expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-collapsible-header-icon.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-column-editor-expand-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.st-column-editor-expand-icon,.st-nested-headers{display:-webkit-box;display:-ms-flexbox;display:flex}.st-nested-headers{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-column-editor-popout.open{min-width:240px;width:auto}.st-column-editor-popout.left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.st-column-editor-popout.open.left{-webkit-transform:translateX(0);transform:translateX(0)}.st-checkbox-label{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);justify-content:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-checkbox-input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.st-checkbox-input:focus-visible+.st-checkbox-custom{outline:1px solid var(--st-focus-ring-color);outline-offset:-1px}.st-checkbox-custom{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--st-checkbox-background-color,var(--st-white));border:1.5px solid var(--st-checkbox-border-color);border-radius:var(--st-border-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;min-height:16px;min-width:16px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease)}.st-checkbox-custom.st-checked,.st-checkbox-custom.st-indeterminate{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.st-checkbox-checkmark,.st-checkbox-minus{color:var(--st-button-active-text-color)}@-webkit-keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.st-group-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:500;height:40px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-group-header:hover{background-color:var(--st-button-hover-background-color)}.st-group-header-content{gap:var(--st-spacing-medium)}.st-group-header-content,.st-group-toggle-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-group-toggle-icon{-webkit-box-pack:center;-ms-flex-pack:center;font-size:.8em;height:16px;justify-content:center;width:16px}.st-group-name{font-weight:600}.st-group-count{color:var(--st-cell-odd-row-color);font-size:.9em}.st-group-header.expanded .st-group-toggle-icon{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-group-header.collapsed .st-group-toggle-icon,.st-group-header.expanded .st-group-toggle-icon{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-group-header.collapsed .st-group-toggle-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.st-expand-icon-container{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-expand-icon-container.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-expand-icon-container.placeholder{opacity:0;pointer-events:none}.st-accordion-animating .st-cell,.st-accordion-animating .st-header-cell{overflow:hidden;-webkit-transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease));transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease))}@-webkit-keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}@keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}.st-cell-updating{-webkit-animation:cell-flash .6s ease-in-out;animation:cell-flash .6s ease-in-out}@-webkit-keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@-webkit-keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-copy-flash{-webkit-animation:copy-flash .8s ease-in-out;animation:copy-flash .8s ease-in-out}.st-cell-copy-flash-first{-webkit-animation:copy-flash-first .8s ease-in-out;animation:copy-flash-first .8s ease-in-out}@-webkit-keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@-webkit-keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-warning-flash{-webkit-animation:warning-flash .6s ease-in-out;animation:warning-flash .6s ease-in-out}.st-cell-warning-flash-first{-webkit-animation:warning-flash-first .6s ease-in-out;animation:warning-flash-first .6s ease-in-out}.st-dropdown-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;background-color:var(--st-odd-row-background-color);border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:300px;min-width:120px;position:fixed;-ms-touch-action:auto;touch-action:auto;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;z-index:100}.st-dropdown-content:has(>.st-datepicker){max-height:none}.st-dropdown-content.st-dropdown-content--allow-descendant-overflow{max-height:none;overflow:visible}.st-filter-container .st-dropdown-content{z-index:101}.st-dropdown-bottom-left,.st-dropdown-bottom-right,.st-dropdown-top-left,.st-dropdown-top-right{margin:0}.st-dropdown-item{color:var(--st-cell-color);cursor:pointer;font-size:var(--st-overlay-font-size);padding:var(--st-control-padding-y) var(--st-control-padding-x);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-dropdown-item:hover{background-color:var(--st-button-hover-background-color)}.st-dropdown-item.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-dropdown-divider{background-color:var(--st-border-color);height:1px;margin:4px 0}.st-datepicker{background-color:var(--st-odd-row-background-color);font-family:inherit;font-size:var(--st-overlay-font-size)}.st-datepicker-header{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;padding:6px var(--st-overlay-padding)}.st-datepicker-header-label{-webkit-box-flex:1;color:var(--st-header-label-color);cursor:default;-ms-flex:1;flex:1;font-size:var(--st-overlay-font-size);font-weight:600;text-align:center}.st-datepicker-header-label[role=button]{cursor:pointer}.st-datepicker-nav-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-ms-flex-negative:0;align-items:center;background:#0000;border:none;border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;font-size:1.2em;height:var(--st-datepicker-day-size);justify-content:center;padding:0;width:var(--st-datepicker-day-size)}.st-datepicker-nav-btn>*{color:var(--st-cell-color)!important}.st-datepicker-nav-btn>:not([fill=none]){fill:var(--st-cell-color)!important}.st-datepicker-nav-btn:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-grid{display:grid;padding:var(--st-overlay-padding)}.st-datepicker-days-grid{gap:4px;grid-template-columns:repeat(7,1fr)}.st-datepicker-months-grid,.st-datepicker-years-grid{gap:8px;grid-template-columns:repeat(3,1fr)}.st-datepicker-weekday{color:var(--st-datepicker-weekday-color);font-size:12px;font-weight:600;padding:6px 0;text-align:center}.st-datepicker-day{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:var(--st-overlay-font-size);height:var(--st-datepicker-day-size);justify-content:center;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:var(--st-datepicker-day-size)}.st-datepicker-day.empty{cursor:default}.st-datepicker-day:not(.empty):hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-day.today{color:var(--st-button-active-background-color);font-weight:600}.st-datepicker-day.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-day.other-month{color:var(--st-datepicker-other-month-color)}.st-datepicker-month,.st-datepicker-year{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:var(--st-border-radius);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;padding:12px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-month:hover,.st-datepicker-year:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-month.selected,.st-datepicker-year.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-footer{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-top:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;padding:6px var(--st-overlay-padding)}.st-datepicker-today-btn{background-color:initial;border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--st-cell-color);cursor:pointer;font-size:var(--st-overlay-font-size);min-height:var(--st-datepicker-day-size);padding:var(--st-spacing-small) var(--st-control-padding-x);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-today-btn:hover{background-color:var(--st-button-hover-background-color)}.st-filter-container{font-size:var(--st-overlay-font-size);min-width:200px;padding:var(--st-overlay-padding)}.st-filter-container,.st-filter-section{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1}.st-filter-section{margin-bottom:var(--st-spacing-medium)}.st-filter-input{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);font-family:inherit;font-size:var(--st-overlay-font-size);outline:none;padding:var(--st-control-padding-y) var(--st-control-padding-x);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-input:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-input-range-from{margin-bottom:var(--st-spacing-medium)}.st-filter-select{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;font-family:inherit;font-size:var(--st-overlay-font-size);outline:none;padding:var(--st-control-padding-y) var(--st-control-padding-x);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-select:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-actions{border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-medium);padding-top:var(--st-spacing-medium)}.st-filter-button{-webkit-box-flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;border-radius:var(--st-border-radius);cursor:pointer;-ms-flex:1;flex:1;font-family:inherit;font-size:var(--st-overlay-font-size);font-weight:500;padding:var(--st-control-padding-y) var(--st-control-padding-x);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-filter-button:focus{outline:none}.st-filter-button:focus-visible{outline:2px solid var(--st-focus-ring-color);outline-offset:2px}.st-filter-button-apply{background-color:var(--st-button-active-background-color);color:var(--st-button-active-text-color)}.st-filter-button-apply:hover:not(.st-filter-button-disabled){opacity:.9}.st-filter-button-disabled{background-color:var(--st-filter-button-disabled-background-color);color:var(--st-filter-button-disabled-text-color);cursor:not-allowed}.st-filter-button-clear{background-color:initial;border:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color)}.st-filter-button-clear:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select{position:relative;width:100%}.st-custom-select-trigger{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:var(--st-overlay-font-size);gap:var(--st-spacing-medium);justify-content:space-between;outline:none;padding:var(--st-control-padding-y) var(--st-control-padding-x);text-align:left;-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-custom-select-open .st-custom-select-trigger,.st-custom-select-trigger:focus,.st-custom-select-trigger:hover:not(:disabled){border-color:var(--st-editable-cell-focus-border-color)}.st-custom-select-value{-webkit-box-flex:1;color:var(--st-cell-color);-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.st-custom-select-arrow{-ms-flex-negative:0;color:var(--st-header-label-color);flex-shrink:0;-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-custom-select-open .st-custom-select-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-custom-select-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:200px;min-width:120px;overflow:auto;overflow-x:hidden}.st-custom-select-option{-ms-flex-negative:0;color:var(--st-cell-color);cursor:pointer;flex-shrink:0;font-size:var(--st-overlay-font-size);overflow:hidden;padding:var(--st-control-padding-y) var(--st-control-padding-x);text-overflow:ellipsis;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-custom-select-option-focused,.st-custom-select-option:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select-option-selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-custom-select-option-selected.st-custom-select-option-focused{background-color:var(--st-selected-cell-background-color);opacity:.9}.st-custom-select-disabled{opacity:var(--st-opacity-disabled);pointer-events:none}.st-custom-select-disabled .st-custom-select-trigger{background-color:var(--st-header-background-color);color:var(--st-header-label-color);cursor:not-allowed}.st-enum-filter-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1;gap:var(--st-spacing-small);max-height:200px;overflow:auto}.st-enum-filter-options .st-checkbox-label{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.st-enum-search,.st-enum-select-all{border-bottom:var(--st-border-width) solid var(--st-border-color);padding-bottom:var(--st-spacing-small)}.st-enum-select-all-label{color:var(--st-header-label-color);font-weight:600}.st-enum-option-label{color:var(--st-cell-color);font-size:var(--st-overlay-font-size);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-enum-filter-options .st-enum-option-label{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-enum-no-results{color:var(--st-muted-text-color);font-size:var(--st-overlay-font-size);font-style:italic;padding:var(--st-spacing-medium);text-align:center}.st-row-number{font-size:.8em;font-weight:500;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-selection-cell-content{-webkit-box-pack:justify;-ms-flex-pack:justify;gap:8px;justify-content:space-between;width:100%}.st-row-buttons,.st-selection-cell-content,.st-selection-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-row-buttons,.st-selection-control{-ms-flex-negative:0;flex-shrink:0}.st-row-buttons{-webkit-box-pack:end;-ms-flex-pack:end;gap:4px;justify-content:flex-end}.st-row-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}.st-column-borders .st-cell:not(.st-last-column),.st-column-borders .st-header-cell:not(.st-last-column),.st-column-borders .st-row.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-column-borders .st-row.selected.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){-webkit-box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color);box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color)}.st-tooltip{word-wrap:break-word;-webkit-animation:st-tooltip-fade-in .2s ease-out;animation:st-tooltip-fade-in .2s ease-out;background-color:var(--st-tooltip-background-color);border-radius:var(--st-tooltip-border-radius);-webkit-box-shadow:var(--st-tooltip-shadow);box-shadow:var(--st-tooltip-shadow);color:var(--st-tooltip-text-color);font-size:12px;font-size:var(--st-tooltip-font-size,12px);line-height:1.4;max-width:300px;padding:var(--st-tooltip-padding);pointer-events:none}@-webkit-keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.st-row.st-state-row{display:grid;position:absolute;width:100%}.st-row.st-state-row-spacer{background-color:initial;display:block;position:absolute;width:100%}.st-state-row-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-body-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;grid-column:1/-1}.st-bar-chart,.st-line-area-chart{overflow:visible}.theme-light{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-overlay-font-size:14px;--st-overlay-padding:8px;--st-control-padding-y:6px;--st-control-padding-x:8px;--st-datepicker-day-size:28px;--st-scrollbar-bg-color:var(--st-slate-50);--st-scrollbar-thumb-color:var(--st-slate-300);--st-scrollbar-width:thin;--st-border-color:var(--st-slate-300);--st-body-background-color:var(--st-white);--st-footer-background-color:var(--st-slate-50);--st-footer-text-color:var(--st-slate-600);--st-last-group-row-separator-border-color:var(--st-slate-400);--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-slate-50);--st-hover-row-background-color:var(--st-slate-100);--st-selected-row-background-color:var(--st-blue-50);--st-odd-column-background-color:var(--st-slate-50);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-slate-100);--st-sub-header-background-color:var(--st-slate-200);--st-header-label-color:var(--st-slate-900);--st-header-icon-color:var(--st-slate-500);--st-cell-color:var(--st-slate-900);--st-cell-odd-row-color:var(--st-slate-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-sub-cell-background-color:var(--st-slate-100);--st-sub-cell-hover-background-color:var(--st-slate-200);--st-selected-cell-background-color:var(--st-blue-100);--st-selected-first-cell-background-color:var(--st-blue-50);--st-selected-cell-color:var(--st-slate-900);--st-selected-first-cell-color:var(--st-slate-900);--st-selected-sub-cell-background-color:var(--st-blue-200);--st-selected-sub-cell-color:var(--st-slate-900);--st-dragging-background-color:var(--st-slate-200);--st-dragging-sub-header-background-color:var(--st-slate-300);--st-resize-handle-color:var(--st-slate-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-500);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-800);--st-button-hover-background-color:var(--st-slate-100);--st-button-active-background-color:var(--st-blue-600);--st-button-active-text-color:var(--st-white);--st-next-prev-btn-color:var(--st-slate-600);--st-next-prev-btn-disabled-color:var(--st-slate-400);--st-page-btn-color:var(--st-slate-600);--st-page-btn-hover-background-color:var(--st-slate-100);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-slate-300);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-slate-500);--st-datepicker-weekday-color:var(--st-slate-500);--st-datepicker-other-month-color:var(--st-slate-400);--st-filter-button-disabled-background-color:var(--st-slate-300);--st-filter-button-disabled-text-color:var(--st-slate-500);--st-muted-text-color:var(--st-slate-500);--st-cell-flash-color:var(--st-slate-200);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-300);--st-tooltip-background-color:var(--st-slate-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-100);--st-selection-highlight-indicator-color:var(--st-slate-300);--st-loading-skeleton-bg-color:var(--st-slate-200);--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:var(--st-blue-500)}.theme-dark{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-overlay-font-size:14px;--st-overlay-padding:8px;--st-control-padding-y:6px;--st-control-padding-x:8px;--st-datepicker-day-size:28px;--st-scrollbar-bg-color:var(--st-gray-900);--st-scrollbar-thumb-color:var(--st-gray-600);--st-scrollbar-width:thin;--st-border-color:var(--st-gray-700);--st-body-background-color:var(--st-gray-900);--st-footer-background-color:var(--st-gray-900);--st-footer-text-color:var(--st-gray-300);--st-last-group-row-separator-border-color:var(--st-gray-500);--st-odd-row-background-color:var(--st-gray-800);--st-even-row-background-color:var(--st-gray-900);--st-hover-row-background-color:var(--st-gray-700);--st-selected-row-background-color:var(--st-blue-950);--st-odd-column-background-color:var(--st-gray-800);--st-even-column-background-color:var(--st-gray-900);--st-header-background-color:var(--st-gray-800);--st-sub-header-background-color:var(--st-gray-700);--st-sub-cell-background-color:var(--st-gray-800);--st-sub-cell-hover-background-color:var(--st-gray-700);--st-header-label-color:var(--st-gray-100);--st-header-icon-color:var(--st-gray-400);--st-cell-color:var(--st-gray-100);--st-cell-odd-row-color:var(--st-gray-200);--st-edit-cell-shadow:0 1px 3px 0 #ffffff1a;--st-selected-cell-background-color:var(--st-blue-900);--st-selected-first-cell-background-color:var(--st-blue-800);--st-selected-cell-color:var(--st-white);--st-selected-first-cell-color:var(--st-white);--st-selected-sub-cell-background-color:var(--st-blue-800);--st-selected-sub-cell-color:var(--st-white);--st-dragging-background-color:var(--st-gray-500);--st-dragging-sub-header-background-color:var(--st-gray-600);--st-resize-handle-color:var(--st-gray-500);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-400);--st-editable-cell-focus-border-color:var(--st-blue-400);--st-focus-ring-color:var(--st-blue-400);--st-button-hover-background-color:var(--st-gray-600);--st-button-active-background-color:var(--st-blue-500);--st-button-active-text-color:var(--st-white);--st-next-prev-btn-color:var(--st-gray-300);--st-next-prev-btn-disabled-color:var(--st-gray-600);--st-page-btn-color:var(--st-gray-300);--st-page-btn-hover-background-color:var(--st-gray-600);--st-checkbox-background-color:var(--st-gray-800);--st-checkbox-checked-background-color:var(--st-blue-500);--st-checkbox-checked-border-color:var(--st-blue-500);--st-checkbox-border-color:var(--st-gray-600);--st-column-editor-background-color:var(--st-gray-800);--st-column-editor-popout-background-color:var(--st-gray-800);--st-column-editor-text-color:var(--st-gray-400);--st-datepicker-weekday-color:var(--st-gray-400);--st-datepicker-other-month-color:var(--st-gray-600);--st-filter-button-disabled-background-color:var(--st-gray-700);--st-filter-button-disabled-text-color:var(--st-gray-500);--st-muted-text-color:var(--st-gray-400);--st-cell-flash-color:var(--st-gray-600);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-gray-100);--st-tooltip-text-color:var(--st-gray-900);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 2px 8px #0000004d;--st-header-selected-background-color:var(--st-blue-500);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-900);--st-selection-highlight-indicator-color:var(--st-gray-600);--st-loading-skeleton-bg-color:var(--st-gray-700);--st-chart-color:var(--st-blue-400);--st-chart-fill-color:var(--st-blue-400);--st-drag-separator-color:var(--st-blue-400)}.theme-neutral{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-overlay-font-size:14px;--st-overlay-padding:8px;--st-control-padding-y:6px;--st-control-padding-x:8px;--st-datepicker-day-size:28px;--st-scrollbar-bg-color:var(--st-neutral-100);--st-scrollbar-thumb-color:var(--st-neutral-400);--st-scrollbar-width:thin;--st-border-color:var(--st-neutral-300);--st-body-background-color:var(--st-neutral-50);--st-footer-background-color:var(--st-neutral-50);--st-footer-text-color:var(--st-neutral-600);--st-last-group-row-separator-border-color:var(--st-neutral-400);--st-odd-row-background-color:var(--st-neutral-50);--st-even-row-background-color:var(--st-neutral-100);--st-hover-row-background-color:var(--st-neutral-200);--st-selected-row-background-color:var(--st-neutral-300);--st-odd-column-background-color:var(--st-neutral-50);--st-even-column-background-color:var(--st-neutral-100);--st-header-background-color:var(--st-neutral-200);--st-sub-header-background-color:var(--st-neutral-300);--st-sub-cell-background-color:var(--st-neutral-200);--st-sub-cell-hover-background-color:var(--st-neutral-300);--st-header-label-color:var(--st-neutral-900);--st-header-icon-color:var(--st-neutral-500);--st-cell-color:var(--st-neutral-900);--st-cell-odd-row-color:var(--st-neutral-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-neutral-400);--st-selected-first-cell-background-color:var(--st-neutral-300);--st-selected-cell-color:var(--st-neutral-900);--st-selected-first-cell-color:var(--st-neutral-900);--st-selected-sub-cell-background-color:var(--st-neutral-400);--st-selected-sub-cell-color:var(--st-neutral-900);--st-dragging-background-color:var(--st-neutral-300);--st-dragging-sub-header-background-color:var(--st-neutral-400);--st-resize-handle-color:var(--st-neutral-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-neutral-600);--st-editable-cell-focus-border-color:var(--st-neutral-500);--st-focus-ring-color:var(--st-neutral-600);--st-button-hover-background-color:var(--st-neutral-200);--st-button-active-background-color:var(--st-neutral-600);--st-button-active-text-color:var(--st-white);--st-next-prev-btn-color:var(--st-neutral-600);--st-next-prev-btn-disabled-color:var(--st-neutral-400);--st-page-btn-color:var(--st-neutral-600);--st-page-btn-hover-background-color:var(--st-neutral-200);--st-checkbox-checked-background-color:var(--st-neutral-600);--st-checkbox-checked-border-color:var(--st-neutral-600);--st-checkbox-border-color:var(--st-neutral-300);--st-column-editor-background-color:var(--st-neutral-50);--st-column-editor-popout-background-color:var(--st-neutral-50);--st-column-editor-text-color:var(--st-neutral-500);--st-datepicker-weekday-color:var(--st-neutral-500);--st-datepicker-other-month-color:var(--st-neutral-400);--st-filter-button-disabled-background-color:var(--st-neutral-300);--st-filter-button-disabled-text-color:var(--st-neutral-500);--st-muted-text-color:var(--st-neutral-500);--st-cell-flash-color:var(--st-neutral-400);--st-copy-flash-color:var(--st-neutral-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-neutral-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-neutral-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-neutral-400);--st-selection-highlight-indicator-color:var(--st-neutral-400);--st-loading-skeleton-bg-color:var(--st-neutral-200);--st-chart-color:var(--st-neutral-500);--st-chart-fill-color:var(--st-neutral-500);--st-drag-separator-color:var(--st-neutral-600)}.theme-custom,.theme-modern-light{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-overlay-font-size:14px;--st-overlay-padding:12px;--st-control-padding-y:8px;--st-control-padding-x:12px;--st-datepicker-day-size:32px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#e5e7eb;--st-footer-background-color:var(--st-white);--st-footer-text-color:#6b7280;--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-white);--st-hover-row-background-color:#f3f4f6;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-button-active-text-color:var(--st-white);--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#374151;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-muted-text-color:#6b7280;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-modern-dark{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-overlay-font-size:14px;--st-overlay-padding:12px;--st-control-padding-y:8px;--st-control-padding-x:12px;--st-datepicker-day-size:32px;--st-scrollbar-bg-color:#111827;--st-scrollbar-thumb-color:#4b5563;--st-scrollbar-width:thin;--st-border-color:#374151;--st-footer-background-color:#1f2937;--st-footer-text-color:#d1d5db;--st-last-group-row-separator-border-color:#4b5563;--st-odd-row-background-color:#1f2937;--st-even-row-background-color:#1f2937;--st-hover-row-background-color:#374151;--st-selected-row-background-color:#1e3a5f;--st-odd-column-background-color:#1f2937;--st-even-column-background-color:#1f2937;--st-header-background-color:#1f2937;--st-sub-header-background-color:#111827;--st-header-label-color:#f3f4f6;--st-header-icon-color:#9ca3af;--st-cell-color:#f3f4f6;--st-cell-odd-row-color:#d1d5db;--st-edit-cell-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003;--st-sub-cell-background-color:#111827;--st-sub-cell-hover-background-color:#1f2937;--st-selected-cell-background-color:#1e40af;--st-selected-first-cell-background-color:#1e3a8a;--st-selected-cell-color:#f3f4f6;--st-selected-first-cell-color:#f3f4f6;--st-selected-sub-cell-background-color:#1e3a8a;--st-selected-sub-cell-color:#f3f4f6;--st-dragging-background-color:#374151;--st-dragging-sub-header-background-color:#4b5563;--st-resize-handle-color:#4b5563;--st-resize-handle-selected-color:#60a5fa;--st-selected-border-color:#60a5fa;--st-editable-cell-focus-border-color:#60a5fa;--st-focus-ring-color:#60a5fa;--st-button-hover-background-color:#374151;--st-button-active-background-color:#3b82f6;--st-button-active-text-color:var(--st-white);--st-next-prev-btn-color:#9ca3af;--st-next-prev-btn-disabled-color:#4b5563;--st-page-btn-color:#d1d5db;--st-page-btn-hover-background-color:#374151;--st-checkbox-background-color:#1f2937;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#4b5563;--st-column-editor-background-color:#1f2937;--st-column-editor-popout-background-color:#1f2937;--st-column-editor-text-color:#9ca3af;--st-datepicker-weekday-color:#9ca3af;--st-datepicker-other-month-color:#4b5563;--st-filter-button-disabled-background-color:#374151;--st-filter-button-disabled-text-color:#6b7280;--st-muted-text-color:#9ca3af;--st-cell-flash-color:#1e40af;--st-copy-flash-color:#60a5fa;--st-warning-flash-color:#ef4444;--st-tooltip-background-color:#f3f4f6;--st-tooltip-text-color:#111827;--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#1e40af;--st-selection-highlight-indicator-color:#374151;--st-loading-skeleton-bg-color:#374151;--st-chart-color:#60a5fa;--st-chart-fill-color:#3b82f6;--st-drag-separator-color:#60a5fa;--st-body-background-color:#1f2937}
|
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { TableAPI } from "simple-table-core";
|
|
3
|
-
import type { SimpleTableReactProps } from "./types";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* emptyStateRenderer, headerDropdown, and per-column renderers inside
|
|
11
|
-
* ReactColumnDef.
|
|
12
|
-
*
|
|
13
|
-
* The ref exposes the full TableAPI imperative interface (sort, filter,
|
|
14
|
-
* paginate, export to CSV, cell selection, column visibility, etc.).
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* const tableRef = useRef<TableAPI>(null);
|
|
18
|
-
*
|
|
19
|
-
* <SimpleTable
|
|
20
|
-
* ref={tableRef}
|
|
21
|
-
* rows={rows}
|
|
22
|
-
* columns={headers}
|
|
23
|
-
* footerRenderer={MyFooter}
|
|
24
|
-
* />
|
|
25
|
-
*/
|
|
26
|
-
declare const SimpleTable: React.ForwardRefExoticComponent<SimpleTableReactProps & React.RefAttributes<TableAPI>>;
|
|
3
|
+
import type { SimpleTableReactProps, ReactDefaultRowData } from "./types";
|
|
4
|
+
type SimpleTableComponent = <TData extends ReactDefaultRowData>(props: SimpleTableReactProps<TData> & {
|
|
5
|
+
ref?: React.ForwardedRef<TableAPI<TData>>;
|
|
6
|
+
}) => React.ReactElement | null;
|
|
7
|
+
declare const SimpleTable: SimpleTableComponent & {
|
|
8
|
+
displayName?: string;
|
|
9
|
+
};
|
|
27
10
|
export default SimpleTable;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SimpleTableConfig } from "simple-table-core";
|
|
2
|
-
import type { SimpleTableReactProps, ReactColumnDef } from "./types";
|
|
2
|
+
import type { SimpleTableReactProps, ReactColumnDef, ReactDefaultRowData } from "./types";
|
|
3
3
|
import type { PortalBridge } from "./PortalBridge";
|
|
4
4
|
/** Resolve column definitions. */
|
|
5
|
-
export declare function resolveReactColumns(config: Pick<SimpleTableReactProps
|
|
6
|
-
export declare function buildVanillaConfig(config: SimpleTableReactProps
|
|
5
|
+
export declare function resolveReactColumns<TData extends ReactDefaultRowData = ReactDefaultRowData>(config: Pick<SimpleTableReactProps<TData>, "columns">): ReadonlyArray<ReactColumnDef<TData, any>>;
|
|
6
|
+
export declare function buildVanillaConfig<TData extends ReactDefaultRowData = ReactDefaultRowData>(config: SimpleTableReactProps<TData>, bridge: PortalBridge): SimpleTableConfig;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as SimpleTable } from "./SimpleTable";
|
|
2
2
|
export { asRows } from "simple-table-core";
|
|
3
|
-
export type { SimpleTableReactProps, TableInstance, ReactColumnDef, ReactColumnEditorConfig, ReactIconsConfig, ReactIconElement, ReactCellRenderer, ReactHeaderRenderer, ReactFooterRenderer, ReactHeaderDropdown, ReactColumnEditorRowRenderer, ReactColumnEditorCustomRenderer, ReactRowButton, ReactLoadingStateRenderer, ReactErrorStateRenderer, ReactEmptyStateRenderer, HeaderRendererComponents, HeaderRendererProps, ColumnEditorRowRendererComponents, ColumnEditorRowRendererProps, ColumnEditorCustomRendererProps, FooterRendererProps, HeaderDropdownProps, } from "./types";
|
|
4
|
-
export type { Accessor, AggregationConfig, AggregationType, AnimationsConfig, AutoSizeMode, ColumnDef, Cell, CellChangeProps, CellClickProps, CellRenderer, CellRendererProps, CellValue, ChartOptions, ColumnEditorConfig, ColumnEditorRowRenderer, ColumnEditorCustomRenderer, ColumnEditorSearchFunction, ColumnType, ColumnVisibilityState, Comparator, ComparatorProps, CustomTheme, CustomThemeProps, EmptyStateRenderer, EmptyStateRendererProps, EnumOption, ErrorStateRenderer, ErrorStateRendererProps, ExportToCSVProps, ExportValueGetter, ExportValueProps, FilterCondition, FilterOperator, StringFilterOperator, NumberFilterOperator, BooleanFilterOperator, DateFilterOperator, EnumFilterOperator, FooterPosition, GetRowId, GetRowIdParams, HeaderDropdown, HeaderRenderer, IconsConfig, LoadingStateRenderer, LoadingStateRendererProps, OnRowGroupExpandProps, Pinned, PinnedSectionsState, PivotConfig, PivotValueConfig, PivotResult, QuickFilterConfig, QuickFilterGetter, QuickFilterGetterProps, QuickFilterMode, Row, RowButtonProps, RowId, RowSelectionChangeProps, RowSelectionMode, RowState, SetHeaderRenameProps, ShowWhen, SimpleTableConfig, SimpleTableProps, SortColumn, TableAPI, TableFilterState, TableRow, Theme, UpdateDataProps, ValueFormatter, ValueFormatterProps, ValueGetter, ValueGetterProps, } from "simple-table-core";
|
|
3
|
+
export type { SimpleTableReactProps, TableInstance, ReactColumnDef, NestedReactColumnDef, NestedTableReactConfig, ReactColumnEditorConfig, ReactIconsConfig, ReactIconElement, ReactCellRenderer, ReactHeaderRenderer, ReactFooterRenderer, ReactHeaderDropdown, ReactColumnEditorRowRenderer, ReactColumnEditorCustomRenderer, ReactRowButton, ReactLoadingStateRenderer, ReactErrorStateRenderer, ReactEmptyStateRenderer, ReactDefaultRowData, HeaderRendererComponents, HeaderRendererProps, ColumnEditorRowRendererComponents, ColumnEditorRowRendererProps, ColumnEditorCustomRendererProps, FooterRendererProps, HeaderDropdownProps, } from "./types";
|
|
4
|
+
export type { Accessor, AggregationConfig, AggregationType, AnimationsConfig, AutoSizeMode, ColumnDef, Cell, CellChangeProps, CellClickProps, CellRenderer, CellRendererProps, CellValue, ChartOptions, ColumnEditorConfig, ColumnEditorRowRenderer, ColumnEditorCustomRenderer, ColumnEditorSearchFunction, ColumnType, ColumnVisibilityState, Comparator, ComparatorProps, CustomTheme, CustomThemeProps, EmptyStateRenderer, EmptyStateRendererProps, EnumOption, ErrorStateRenderer, ErrorStateRendererProps, ExportToCSVProps, ExportValueGetter, ExportValueProps, FilterCondition, FilterOperator, StringFilterOperator, NumberFilterOperator, BooleanFilterOperator, DateFilterOperator, EnumFilterOperator, FooterPosition, GetRowId, GetRowIdParams, HeaderDropdown, HeaderRenderer, IconsConfig, LoadingStateRenderer, LoadingStateRendererProps, OnRowGroupExpandProps, Pinned, PinnedSectionsState, PivotConfig, PivotValueConfig, PivotResult, QuickFilterConfig, QuickFilterGetter, QuickFilterGetterProps, QuickFilterMode, Row, RowData, RowButtonProps, RowId, RowSelectionChangeProps, RowSelectionMode, RowState, SetHeaderRenameProps, ShowWhen, SimpleTableConfig, SimpleTableProps, SortColumn, TableAPI, TableFilterState, TableRow, Theme, UpdateDataProps, ValueFormatter, ValueFormatterProps, ValueGetter, ValueGetterProps, } from "simple-table-core";
|
|
5
5
|
export { pivotRows, buildPivotAccessor, buildPivotRowTotalAccessor, PIVOT_CHILDREN_KEY, PIVOT_IS_TOTAL_KEY, PIVOT_ACCESSOR_PREFIX, PIVOT_BLANK_LABEL, } from "simple-table-core";
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
|
-
import type { SimpleTableProps, SimpleTableConfig, ColumnDef, TableAPI,
|
|
2
|
+
import type { SimpleTableProps, SimpleTableConfig, ColumnDef, TableAPI, CellValue, CellRendererProps, HeaderRendererProps as VanillaHeaderRendererProps, FooterRendererProps as VanillaFooterRendererProps, LoadingStateRendererProps, ErrorStateRendererProps, EmptyStateRendererProps, HeaderDropdownProps as VanillaHeaderDropdownProps, ColumnEditorRowRendererProps as VanillaColumnEditorRowRendererProps, ColumnEditorCustomRendererProps as VanillaColumnEditorCustomRendererProps, ColumnEditorConfig, RowButtonProps } from "simple-table-core";
|
|
3
|
+
/**
|
|
4
|
+
* Default `TData` for React props bags / helpers: open records so untyped
|
|
5
|
+
* object arrays keep assigning to `rows` without `asRows`.
|
|
6
|
+
*
|
|
7
|
+
* Prefer letting `<SimpleTable rows={…} columns={…} />` infer `TData` from
|
|
8
|
+
* those props — an explicit `SimpleTable<MyRow>` is only needed when inference
|
|
9
|
+
* can't see a typed `rows`/`columns` (or for `useRef<TableAPI<MyRow>>`).
|
|
10
|
+
*/
|
|
11
|
+
export type ReactDefaultRowData = Record<string, any>;
|
|
3
12
|
/** Passed to React `headerRenderer` / `headerDropdown`; slots are React nodes. */
|
|
4
13
|
export interface HeaderRendererComponents {
|
|
5
14
|
sortIcon?: React.ReactNode;
|
|
@@ -7,7 +16,7 @@ export interface HeaderRendererComponents {
|
|
|
7
16
|
collapseIcon?: React.ReactNode;
|
|
8
17
|
labelContent?: React.ReactNode;
|
|
9
18
|
}
|
|
10
|
-
export type HeaderRendererProps = Omit<VanillaHeaderRendererProps
|
|
19
|
+
export type HeaderRendererProps<TData extends ReactDefaultRowData = ReactDefaultRowData> = Omit<VanillaHeaderRendererProps<TData>, "components"> & {
|
|
11
20
|
components?: HeaderRendererComponents;
|
|
12
21
|
};
|
|
13
22
|
/** Column editor row slots as React nodes (core uses `IconElement` / `HTMLElement`). */
|
|
@@ -56,16 +65,16 @@ export interface ReactIconsConfig {
|
|
|
56
65
|
pinnedLeftIcon?: ReactIconElement;
|
|
57
66
|
pinnedRightIcon?: ReactIconElement;
|
|
58
67
|
}
|
|
59
|
-
export type ReactCellRenderer =
|
|
60
|
-
export type ReactHeaderRenderer =
|
|
61
|
-
export type ReactFooterRenderer =
|
|
62
|
-
export type ReactHeaderDropdown =
|
|
63
|
-
export type ReactColumnEditorRowRenderer =
|
|
64
|
-
export type ReactColumnEditorCustomRenderer =
|
|
65
|
-
export type ReactRowButton =
|
|
66
|
-
export type ReactLoadingStateRenderer = React.ComponentType<LoadingStateRendererProps
|
|
67
|
-
export type ReactErrorStateRenderer = React.ComponentType<ErrorStateRendererProps
|
|
68
|
-
export type ReactEmptyStateRenderer = React.ComponentType<EmptyStateRendererProps
|
|
68
|
+
export type ReactCellRenderer<TData extends ReactDefaultRowData = ReactDefaultRowData, TValue = CellValue> = (props: CellRendererProps<TData, TValue>) => React.ReactNode;
|
|
69
|
+
export type ReactHeaderRenderer<TData extends ReactDefaultRowData = ReactDefaultRowData> = (props: HeaderRendererProps<TData>) => React.ReactNode;
|
|
70
|
+
export type ReactFooterRenderer = (props: FooterRendererProps) => React.ReactNode;
|
|
71
|
+
export type ReactHeaderDropdown = (props: HeaderDropdownProps) => React.ReactNode;
|
|
72
|
+
export type ReactColumnEditorRowRenderer = (props: ColumnEditorRowRendererProps) => React.ReactNode;
|
|
73
|
+
export type ReactColumnEditorCustomRenderer = (props: ColumnEditorCustomRendererProps) => React.ReactNode;
|
|
74
|
+
export type ReactRowButton<TData extends ReactDefaultRowData = ReactDefaultRowData> = (props: RowButtonProps<TData>) => React.ReactNode;
|
|
75
|
+
export type ReactLoadingStateRenderer<TData extends ReactDefaultRowData = ReactDefaultRowData> = React.ComponentType<LoadingStateRendererProps<TData>> | React.ReactNode;
|
|
76
|
+
export type ReactErrorStateRenderer<TData extends ReactDefaultRowData = ReactDefaultRowData> = React.ComponentType<ErrorStateRendererProps<TData>> | React.ReactNode;
|
|
77
|
+
export type ReactEmptyStateRenderer<TData extends ReactDefaultRowData = ReactDefaultRowData> = React.ComponentType<EmptyStateRendererProps<TData>> | React.ReactNode;
|
|
69
78
|
export interface ReactColumnEditorConfig extends Omit<ColumnEditorConfig, "rowRenderer" | "customRenderer"> {
|
|
70
79
|
rowRenderer?: ReactColumnEditorRowRenderer;
|
|
71
80
|
customRenderer?: ReactColumnEditorCustomRenderer;
|
|
@@ -74,31 +83,49 @@ export interface ReactColumnEditorConfig extends Omit<ColumnEditorConfig, "rowRe
|
|
|
74
83
|
* Column definition for `columns`: same column metadata as core
|
|
75
84
|
* columns, but `cellRenderer` / `headerRenderer` / `children` / `nestedTable` are React-only.
|
|
76
85
|
*/
|
|
77
|
-
export interface ReactColumnDef extends Omit<ColumnDef, "cellRenderer" | "headerRenderer" | "children" | "nestedTable"> {
|
|
78
|
-
cellRenderer?: ReactCellRenderer
|
|
79
|
-
headerRenderer?: ReactHeaderRenderer
|
|
80
|
-
children?: ReadonlyArray<ReactColumnDef
|
|
81
|
-
/** Nested grid
|
|
82
|
-
nestedTable?:
|
|
86
|
+
export interface ReactColumnDef<TData extends ReactDefaultRowData = ReactDefaultRowData, TValue = CellValue> extends Omit<ColumnDef<TData, TValue>, "cellRenderer" | "headerRenderer" | "children" | "nestedTable"> {
|
|
87
|
+
cellRenderer?: ReactCellRenderer<TData, TValue>;
|
|
88
|
+
headerRenderer?: ReactHeaderRenderer<TData>;
|
|
89
|
+
children?: ReadonlyArray<ReactColumnDef<TData, any>>;
|
|
90
|
+
/** Nested grid; child columns may use a different row type than `TData`. */
|
|
91
|
+
nestedTable?: NestedTableReactConfig;
|
|
83
92
|
}
|
|
84
|
-
export interface SimpleTableReactProps extends Omit<SimpleTableProps
|
|
93
|
+
export interface SimpleTableReactProps<TData extends ReactDefaultRowData = ReactDefaultRowData> extends Omit<SimpleTableProps<TData>, "columns" | "footerRenderer" | "emptyStateRenderer" | "errorStateRenderer" | "loadingStateRenderer" | "tableEmptyStateRenderer" | "headerDropdown" | "columnEditorConfig" | "icons" | "rows" | "rowButtons" | "onColumnOrderChange" | "onColumnWidthChange" | "onHeaderEdit" | "onColumnSelect"> {
|
|
85
94
|
/** Column definitions. */
|
|
86
|
-
columns?: ReadonlyArray<ReactColumnDef
|
|
87
|
-
onColumnOrderChange?: (newHeaders: ReactColumnDef[]) => void;
|
|
88
|
-
onColumnWidthChange?: (headers: ReactColumnDef[]) => void;
|
|
89
|
-
onHeaderEdit?: (header: ReactColumnDef, newLabel: string) => void;
|
|
90
|
-
onColumnSelect?: (header: ReactColumnDef) => void;
|
|
91
|
-
/** Row data
|
|
92
|
-
rows:
|
|
95
|
+
columns?: ReadonlyArray<ReactColumnDef<TData, any>>;
|
|
96
|
+
onColumnOrderChange?: (newHeaders: ReactColumnDef<TData, any>[]) => void;
|
|
97
|
+
onColumnWidthChange?: (headers: ReactColumnDef<TData, any>[]) => void;
|
|
98
|
+
onHeaderEdit?: (header: ReactColumnDef<TData, any>, newLabel: string) => void;
|
|
99
|
+
onColumnSelect?: (header: ReactColumnDef<TData, any>) => void;
|
|
100
|
+
/** Row data; cast to vanilla `Row[]` inside the adapter. */
|
|
101
|
+
rows: readonly TData[];
|
|
93
102
|
footerRenderer?: ReactFooterRenderer;
|
|
94
|
-
loadingStateRenderer?: ReactLoadingStateRenderer
|
|
95
|
-
errorStateRenderer?: ReactErrorStateRenderer
|
|
96
|
-
emptyStateRenderer?: ReactEmptyStateRenderer
|
|
103
|
+
loadingStateRenderer?: ReactLoadingStateRenderer<TData>;
|
|
104
|
+
errorStateRenderer?: ReactErrorStateRenderer<TData>;
|
|
105
|
+
emptyStateRenderer?: ReactEmptyStateRenderer<TData>;
|
|
97
106
|
tableEmptyStateRenderer?: React.ReactNode;
|
|
98
107
|
headerDropdown?: ReactHeaderDropdown;
|
|
99
108
|
columnEditorConfig?: ReactColumnEditorConfig;
|
|
100
109
|
icons?: ReactIconsConfig;
|
|
101
110
|
/** Per-row action buttons; each entry returns JSX rendered into the row's selection column. */
|
|
102
|
-
rowButtons?: ReactRowButton[];
|
|
111
|
+
rowButtons?: ReactRowButton<TData>[];
|
|
103
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* TData-bound call signatures omitted at nest boundaries so
|
|
115
|
+
* `ReactColumnDef<Child>[]` assigns under a parent column without casts/`any`.
|
|
116
|
+
* Child columns stay fully checked at their own declaration site.
|
|
117
|
+
*/
|
|
118
|
+
type ReactColumnDefCallbacks = "cellRenderer" | "headerRenderer" | "children" | "nestedTable" | "comparator" | "exportValueGetter" | "valueFormatter" | "valueGetter" | "quickFilterGetter";
|
|
119
|
+
/** Column shape accepted on nested grids — metadata only, no TData-bound callbacks. */
|
|
120
|
+
export type NestedReactColumnDef = Omit<ReactColumnDef<ReactDefaultRowData>, ReactColumnDefCallbacks> & {
|
|
121
|
+
children?: ReadonlyArray<NestedReactColumnDef>;
|
|
122
|
+
nestedTable?: NestedTableReactConfig;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Nested grid props (no `rows` / inherited state renderers).
|
|
126
|
+
* Child row shape may differ from the parent column's `TData`.
|
|
127
|
+
*/
|
|
128
|
+
export type NestedTableReactConfig = Omit<SimpleTableReactProps, "rows" | "columns" | "loadingStateRenderer" | "errorStateRenderer" | "emptyStateRenderer" | "tableEmptyStateRenderer"> & {
|
|
129
|
+
columns?: ReadonlyArray<NestedReactColumnDef>;
|
|
130
|
+
};
|
|
104
131
|
export type { CellRendererProps, LoadingStateRendererProps, ErrorStateRendererProps, EmptyStateRendererProps, };
|
|
@@ -64,6 +64,13 @@ export declare function wrapReactFooterRenderer(bridge: PortalBridge, Component:
|
|
|
64
64
|
/**
|
|
65
65
|
* Like {@link wrapReactRenderer} for column editor rows: core passes `components.*`
|
|
66
66
|
* as live DOM nodes; this maps them to React nodes so consumers can use normal JSX.
|
|
67
|
+
*
|
|
68
|
+
* Reuses one portal host per column `accessor` so popout list rebuilds
|
|
69
|
+
* (`listsContainer.innerHTML = ""` then re-invoke) update props in place via
|
|
70
|
+
* {@link PortalBridge.update} instead of remounting the React subtree and wiping
|
|
71
|
+
* local state (open tooltips, toggles, etc.). Unlike headerRenderer — which gets
|
|
72
|
+
* one wrapper per column — a single rowRenderer serves every editor row, so hosts
|
|
73
|
+
* are keyed by accessor.
|
|
67
74
|
*/
|
|
68
75
|
export declare function wrapReactColumnEditorRowRenderer(bridge: PortalBridge, Component: React.ComponentType<object>): (props: VanillaColumnEditorRowRendererProps) => HTMLElement;
|
|
69
76
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simple-table/react",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/index.es.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"react-dom": ">=18.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"simple-table-core": "4.0
|
|
36
|
+
"simple-table-core": "4.1.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@rollup/plugin-alias": "^4.0.4",
|