@infinite-table/infinite-react 0.7.3 → 0.8.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/README.md CHANGED
@@ -37,25 +37,25 @@
37
37
 
38
38
  `Infinite Table` is a React DataGrid component for displaying virtualized tabular data. It helps you display huge datasets and get the most out of them by providing you the right tools to do so:
39
39
 
40
- * [<img src="https://infinite-table.com/icons/sorting.svg" style="display:inline-block; vertical-align: middle">
40
+ * [<img src="https://infinite-table.com/icons/sorting.svg" align="center" />
41
41
  sorting](https://infinite-table.com/docs/latest/learn/working-with-data/sorting)
42
- * [<img src="https://infinite-table.com/icons/row-grouping.svg" style="display:inline-block; vertical-align: middle">
42
+ * [<img src="https://infinite-table.com/icons/row-grouping.svg" align="center" />
43
43
  row grouping](https://infinite-table.com/docs/latest/learn/grouping-and-pivoting/grouping-rows) - both server-side and client-side
44
- * [<img src="https://infinite-table.com/icons/pivoting.svg" style="display:inline-block; vertical-align: middle">
44
+ * [<img src="https://infinite-table.com/icons/pivoting.svg" align="center" />
45
45
  pivoting](https://infinite-table.com/docs/latest/learn/grouping-and-pivoting/pivoting/overview) - both server-side and client-side
46
- * [<img src="https://infinite-table.com/icons/aggregations.svg" style="display:inline-block; vertical-align: middle">
46
+ * [<img src="https://infinite-table.com/icons/aggregations.svg" align="center" />
47
47
  aggregations](https://infinite-table.com/docs/latest/learn/grouping-and-pivoting/grouping-rows#aggregations)
48
- * [<img src="https://infinite-table.com/icons/live-pagination.svg" style="display:inline-block; vertical-align: middle">
48
+ * [<img src="https://infinite-table.com/icons/live-pagination.svg" align="center" />
49
49
  live pagination](https://infinite-table.com/docs/latest/learn/working-with-data/live-pagination)
50
- * [<img src="https://infinite-table.com/icons/lazy-loading.svg" style="display:inline-block; vertical-align: middle">
50
+ * [<img src="https://infinite-table.com/icons/lazy-loading.svg" align="center" />
51
51
  lazy loading](https://infinite-table.com/docs/latest/learn/working-with-data/lazy-loading)
52
- * [<img src="https://infinite-table.com/icons/keyboard-navigation.svg" style="display:inline-block; vertical-align: middle">
52
+ * [<img src="https://infinite-table.com/icons/keyboard-navigation.svg" align="center" />
53
53
  keyboard navigation for cells and rows](https://infinite-table.com/docs/latest/learn/keyboard-navigation/navigating-cells)
54
- * [<img src="https://infinite-table.com/icons/fixed-flex-cols.svg" style="display:inline-block; vertical-align: middle">
54
+ * [<img src="https://infinite-table.com/icons/fixed-flex-cols.svg" align="center" />
55
55
  fixed and flexible columns](https://infinite-table.com/docs/latest/learn/columns/fixed-and-flexible-size)
56
- * [<img src="https://infinite-table.com/icons/column-grouping.svg" style="display:inline-block; vertical-align: middle">
56
+ * [<img src="https://infinite-table.com/icons/column-grouping.svg" align="center" />
57
57
  column grouping](https://infinite-table.com/docs/latest/learn/column-groups)
58
- * [<img src="https://infinite-table.com/icons/theming.svg" style="display:inline-block; vertical-align: middle">
58
+ * [<img src="https://infinite-table.com/icons/theming.svg" align="center" />
59
59
  theming](https://infinite-table.com/docs/latest/learn/theming)
60
60
 
61
61
  <!-- * [🗃 filtering](https://infinite-table.com/docs/latest/learn/filtering) -->
@@ -110,7 +110,7 @@ This file includes both the light and the dark themes.
110
110
 
111
111
  ## 🚀 Releases
112
112
 
113
- We release often - see [what each release contains hre](https://infinite-table.com/docs/releases). Due to our automated releases which have integrated tests, we're confident that we're delivering the best possible experience to our users.
113
+ We release often - see [what each release contains here](https://infinite-table.com/docs/releases). Due to our automated releases which have integrated tests, we're confident that we're delivering the best possible experience to our users.
114
114
 
115
115
  ## 📑 License
116
116
 
package/index.css CHANGED
@@ -1 +1 @@
1
- :root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.light,.infinite-light,.light:root,.infinite-light:root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.dark,.infinite-dark{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}@media (prefers-color-scheme: dark){:root{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}}._16lm1iw0{box-sizing:border-box}._16lm1iw0:before{box-sizing:border-box}._16lm1iw0:after{box-sizing:border-box}._16lm1iw0 *{box-sizing:border-box}._16lm1iw0 *:before{box-sizing:border-box}._16lm1iw0 *:after{box-sizing:border-box}._16lm1iw1{position:relative}._16lm1iw2{position:absolute}._16lm1iw3{position:sticky}._16lm1iw4{position:fixed}._16lm1iw5{fill:currentColor}._16lm1iw6{fill:var(--infinite-accent-color)}._16lm1iw7{margin:0}._16lm1iw8{stroke:currentColor}._16lm1iw9{stroke:var(--infinite-accent-color)}._16lm1iwa{background:inherit}._16lm1iwb{transform:translate(0)}._16lm1iwc{transform:translate(0)}._16lm1iwd{transform:rotate(90deg)}._16lm1iwe{transform:rotate(180deg)}._16lm1iwf{cursor:pointer}._16lm1iwg{cursor:default}._16lm1iwh{cursor:col-resize}._16lm1iwi{pointer-events:none}._16lm1iwj{flex:1}._16lm1iwk{flex:none}._16lm1iwl{z-index:1}._16lm1iwm{z-index:10}._16lm1iwn{z-index:100}._16lm1iwo{z-index:1000}._16lm1iwp{z-index:10000}._16lm1iwq{z-index:100000}._16lm1iwr{z-index:1000000}._16lm1iws{z-index:10000000}._16lm1iwt{z-index:1000}._16lm1iwu{z-index:10000}._16lm1iwv{z-index:100000}._16lm1iww{display:flex}._16lm1iwx{display:contents}._16lm1iwy{display:none}._16lm1iwz{display:block}._16lm1iw10{display:grid}._16lm1iw11{display:inline-block}._16lm1iw12{display:inline-flex}._16lm1iw13{display:inline-grid}._16lm1iw14{-webkit-user-select:none;-moz-user-select:none;user-select:none}._16lm1iw15{height:0}._16lm1iw16{height:100%}._16lm1iw17{width:0}._16lm1iw18{width:100%}._16lm1iw19{top:0}._16lm1iw1a{top:100%}._16lm1iw1b{left:0}._16lm1iw1c{left:100%}._16lm1iw1d{left:auto}._16lm1iw1e{bottom:0}._16lm1iw1f{bottom:100%}._16lm1iw1g{right:0}._16lm1iw1h{right:100%}._16lm1iw1i{right:auto}._16lm1iw1j{flex-flow:column}._16lm1iw1k{flex-flow:column-reverse}._16lm1iw1l{flex-flow:row}._16lm1iw1m{flex-flow:row-reverse}._16lm1iw1n{align-items:center}._16lm1iw1o{align-items:stretch}._16lm1iw1p{justify-content:center}._16lm1iw1q{justify-content:space-between}._16lm1iw1r{justify-content:space-around}._16lm1iw1s{justify-content:flex-start}._16lm1iw1t{justify-content:flex-end}._16lm1iw1u{overflow:hidden}._16lm1iw1v{overflow:auto}._16lm1iw1w{overflow:visible}._16lm1iw1x{visibility:visible}._16lm1iw1y{visibility:hidden}._16lm1iw1z{will-change:transform}._16lm1iw20{white-space:nowrap}._16lm1iw21{text-overflow:ellipsis}.mlx2t2{display:inline-block}.mlx2t3{height:0;width:0;will-change:transform}._1ueijco0{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;outline:none;position:fixed;height:100%;width:100%;left:0;top:0}._1ueijco0>:first-child{position:sticky;top:0;left:0}._1ueijco1{overflow:auto}._1ueijco2{overflow:hidden}._1ueijco3{overflow:visible}._1ueijco4{overflow:auto}._1ueijco5{overflow:hidden}._1ueijco6{overflow-x:auto}._1ueijco7{overflow-x:hidden}._1ueijco8{overflow-x:visible}._1ueijco9{overflow-x:auto}._1ueijcoa{overflow-x:hidden}._1ueijcob{overflow-y:auto}._1ueijcoc{overflow-y:hidden}._1ueijcod{overflow-y:visible}._1ueijcoe{overflow-y:auto}._1ueijcof{overflow-y:hidden}.nxbq1c1{border:var(--infinite-active-cell-border, var(--infinite-active-cell-border-width) var(--infinite-active-cell-border-style) var(--infinite-active-cell-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-cell-background-alpha)))}.nxbq1c2{display:block}.nxbq1c3{display:none}.j26lrx0{--infinite-active-row-border-style: var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style));border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-row-background, var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-row-background-alpha, var(--infinite-active-cell-background-alpha)))))}.j26lrx1{display:block}.j26lrx2{display:none}._1yeub2v0{outline:none;font-family:var(--infinite-font-family);color:var(--infinite-color);background:var(--infinite-background);min-height:var(--infinite-min-height)}._1yeub2v1{--infinite-row-pointer-events-while-scrolling: none}._1yeub2ve{--infinite-active-cell-background-alpha: var(--infinite-active-cell-background-alpha--table-unfocused);--infinite-active-row-background-alpha: var(--infinite-active-row-background-alpha--table-unfocused, var(--infinite-active-cell-background-alpha--table-unfocused))}._1yeub2vi{border-right:var(--infinite-cell-border)}._1yeub2vj{border-left:var(--infinite-cell-border)}._1yeub2vl{-webkit-user-select:none;-moz-user-select:none;user-select:none}._1yeub2vp{transform:translate(-100%);border-right:var(--infinite-pinned-cell-border);bottom:var(--_1slvgu9m)}._1yeub2vq{left:var(--_1slvgu9f)}._1yeub2vn ._1yeub2vq{visibility:visible}._1yeub2vr{left:calc(var(--_1slvgu9h))}._1yeub2vo ._1yeub2vr{visibility:visible}._7pupv00{will-change:transform;position:absolute;top:0;left:0;pointer-events:var(--infinite-row-pointer-events-while-scrolling);--infinite-column-cell-bg-dont-override: var(--infinite-row-background)}._7pupv01{--infinite-row-background: var(--infinite-row-hover-background);--infinite-row-selected-background: var(--infinite-row-selected-hover-background);--infinite-row-odd-background: var(--infinite-row-hover-background)}._7pupv03{background:var(--infinite-row-background)}._7pupv04{background:var(--infinite-row-odd-background)}._7pupv05{z-index:100}._7pupv07{z-index:100}._7pupv0b{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0c{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0d{-webkit-padding-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._1eexc2a0{justify-content:center}._1eexc2a1{justify-content:flex-start}._1eexc2a2{justify-content:flex-start;flex-flow:row-reverse}._1eexc2a3{transition:left .3s}._1eexc2a4{transition:none}._1eexc2a5{padding:var(--infinite-cell-padding);border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border-width) solid transparent}._1yeub2vl ._1eexc2a6{transition:transform var(--infinite-column-reorder-effect-duration)}._1eexc2a7{margin-inline:var(--infinite-selection-checkbox-margin-inline)}._1eexc2a8{color:var(--infinite-cell-color)}._1eexc2ah{background:var(--infinite-row-background)}._1eexc2ai{background:var(--infinite-row-odd-background)}._1eexc2aj{background:var(--infinite-row-selected-background)}._1eexc2am{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._1eexc2ao{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}.qz8ht90[disabled]{opacity:.7}._12zfob11{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob12{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob13{margin-right:var(--infinite-header-cell-sort-icon-margin)}._12zfob14{line-height:0;font-size:10px;border-radius:50%;padding:1px;position:absolute;transition:top .2s;top:0;right:2px}._12zfob15{background:var(--infinite-header-background);top:0;right:0;bottom:0}._12zfob16{background:var(--infinite-header-background);color:var(--infinite-header-color)}._12zfob1e{z-index:10}._12zfob1k{background:var(--infinite-header-cell-hover-background);color:var(--infinite-cell-color);opacity:.8;padding:var(--infinite-cell-padding);padding-left:20px;z-index:2000}._12zfob1l{border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background);padding:0}._12zfob1l:hover{background:var(--infinite-header-cell-hover-background)}._12zfob1z{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._12zfob111{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}._12zfob119{z-index:10}._1yeub2va ._12zfob11e{--infinite-cell-border: var(--infinite-cell-border-invisible)}._12zfob11g{border-right:var(--infinite-cell-border)}._12zfob11h{cursor:context-menu;-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}._12zfob11h:active{top:1px}._12zfob1l:hover ._12zfob11h{visibility:visible;display:flex}._12zfob11j{display:none}._12zfob11k{padding:var(--infinite-header-cell-padding)}._12zfob11o{flex-direction:row-reverse}._12zfob11p{justify-content:center}._12zfob11q{background:var(--infinite-header-background)}._12zfob11r{padding:var(--infinite-cell-padding);border-bottom:var(--infinite-cell-border);border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background)}._12zfob11s{border-top:var(--infinite-cell-border)}._1ek6mqy0{-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}.zneyzh0{transform:translate(50%);width:var(--infinite-resize-handle-active-area-width)}.zneyzh0:hover{overflow:visible}.zneyzh2{transform:translate(-50%)}.zneyzh8{transform:none}.zneyzh9{transform:none}.zneyzha{transform:none}.zneyzhb{right:calc((var(--infinite-resize-handle-active-area-width) - var(--infinite-resize-handle-width)) / 2);width:var(--infinite-resize-handle-width)}.zneyzh0:hover .zneyzhb{background:var(--infinite-resize-handle-hover-background)}.zneyzh0:hover .zneyzhd{background:var(--infinite-resize-handle-constrained-hover-background)}.qy58ya0{flex-flow:row;align-items:center;justify-content:center}.qy58ya1{display:flex}.qy58ya2{display:none}.qy58ya3{background:var(--infinite-load-mask-overlay-background);opacity:var(--infinite-load-mask-overlay-opacity)}.qy58ya4{position:relative;padding:var(--infinite-load-mask-padding);color:var(--infinite-load-mask-color);background:var(--infinite-load-mask-text-background);border-radius:var(--infinite-load-mask-border-radius)}.db3arf0{padding:var(--infinite-menu-padding);color:var(--infinite-menu-color);background:var(--infinite-menu-background);border-radius:var(--infinite-menu-border-radius);outline:none;box-shadow:0 6px 12px -2px var(--infinite-menu-shadow-color),0 3px 7px -3px var(--infinite-menu-background)}.db3arf1{display:contents}.db3arf2{padding-block:var(--infinite-menu-cell-padding-vertical);padding-inline:var(--infinite-menu-cell-padding-horizontal);margin-block:var(--infinite-menu-cell-margin-vertical);border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));border-color:transparent}.db3arf3{opacity:var(--infinite-menu-item-disabled-opacity);background:var(--infinite-menu-item-disabled-background)}.db3arf0:focus-within>.db3arf1>.db3arf9{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child:last-child{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child{border-right-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:last-child{border-left-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:not(:first-child):not(:last-child){border-left-color:transparent;border-right-color:transparent}.db3arfb{background:var(--infinite-menu-item-active-background);opacity:var(--infinite-menu-item-active-opacity)}.db3arfc{background:var(--infinite-menu-item-pressed-background);opacity:var(--infinite-menu-item-pressed-opacity)}.db3arfd{border-top:1px solid currentColor;border-bottom:0;margin-top:calc(var(--infinite-menu-cell-padding-vertical) / 2);margin-bottom:calc(var(--infinite-menu-cell-padding-vertical) / 2)}
1
+ :root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.light,.infinite-light,.light:root,.infinite-light:root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.dark,.infinite-dark{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}@media (prefers-color-scheme: dark){:root{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}}._16lm1iw0{box-sizing:border-box}._16lm1iw0:before{box-sizing:border-box}._16lm1iw0:after{box-sizing:border-box}._16lm1iw0 *{box-sizing:border-box}._16lm1iw0 *:before{box-sizing:border-box}._16lm1iw0 *:after{box-sizing:border-box}._16lm1iw1{position:relative}._16lm1iw2{position:absolute}._16lm1iw3{position:sticky}._16lm1iw4{position:fixed}._16lm1iw5{fill:currentColor}._16lm1iw6{fill:var(--infinite-accent-color)}._16lm1iw7{margin:0}._16lm1iw8{stroke:currentColor}._16lm1iw9{stroke:var(--infinite-accent-color)}._16lm1iwa{background:inherit}._16lm1iwb{outline:none}._16lm1iwc{transform:translate(0)}._16lm1iwd{transform:translate(0)}._16lm1iwe{transform:rotate(90deg)}._16lm1iwf{transform:rotate(180deg)}._16lm1iwg{cursor:pointer}._16lm1iwh{cursor:default}._16lm1iwi{cursor:col-resize}._16lm1iwj{pointer-events:none}._16lm1iwk{flex:1}._16lm1iwl{flex:none}._16lm1iwm{z-index:1}._16lm1iwn{z-index:10}._16lm1iwo{z-index:100}._16lm1iwp{z-index:1000}._16lm1iwq{z-index:10000}._16lm1iwr{z-index:100000}._16lm1iws{z-index:1000000}._16lm1iwt{z-index:10000000}._16lm1iwu{z-index:1000}._16lm1iwv{z-index:10000}._16lm1iww{z-index:100000}._16lm1iwx{display:flex}._16lm1iwy{display:contents}._16lm1iwz{display:none}._16lm1iw10{display:block}._16lm1iw11{display:grid}._16lm1iw12{display:inline-block}._16lm1iw13{display:inline-flex}._16lm1iw14{display:inline-grid}._16lm1iw15{-webkit-user-select:none;-moz-user-select:none;user-select:none}._16lm1iw16{height:0}._16lm1iw17{height:100%}._16lm1iw18{width:0}._16lm1iw19{width:100%}._16lm1iw1a{top:0}._16lm1iw1b{top:100%}._16lm1iw1c{left:0}._16lm1iw1d{left:100%}._16lm1iw1e{left:auto}._16lm1iw1f{bottom:0}._16lm1iw1g{bottom:100%}._16lm1iw1h{right:0}._16lm1iw1i{right:100%}._16lm1iw1j{right:auto}._16lm1iw1k{flex-flow:column}._16lm1iw1l{flex-flow:column-reverse}._16lm1iw1m{flex-flow:row}._16lm1iw1n{flex-flow:row-reverse}._16lm1iw1o{align-items:center}._16lm1iw1p{align-items:stretch}._16lm1iw1q{justify-content:center}._16lm1iw1r{justify-content:space-between}._16lm1iw1s{justify-content:space-around}._16lm1iw1t{justify-content:flex-start}._16lm1iw1u{justify-content:flex-end}._16lm1iw1v{overflow:hidden}._16lm1iw1w{overflow:auto}._16lm1iw1x{overflow:visible}._16lm1iw1y{visibility:visible}._16lm1iw1z{visibility:hidden}._16lm1iw20{will-change:transform}._16lm1iw21{white-space:nowrap}._16lm1iw22{text-overflow:ellipsis}.mlx2t2{display:inline-block}.mlx2t3{height:0;width:0;will-change:transform}._1ueijco0{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;outline:none;position:fixed;height:100%;width:100%;left:0;top:0}._1ueijco0>:first-child{position:sticky;top:0;left:0}._1ueijco1{overflow:auto}._1ueijco2{overflow:hidden}._1ueijco3{overflow:visible}._1ueijco4{overflow:auto}._1ueijco5{overflow:hidden}._1ueijco6{overflow-x:auto}._1ueijco7{overflow-x:hidden}._1ueijco8{overflow-x:visible}._1ueijco9{overflow-x:auto}._1ueijcoa{overflow-x:hidden}._1ueijcob{overflow-y:auto}._1ueijcoc{overflow-y:hidden}._1ueijcod{overflow-y:visible}._1ueijcoe{overflow-y:auto}._1ueijcof{overflow-y:hidden}.nxbq1c1{border:var(--infinite-active-cell-border, var(--infinite-active-cell-border-width) var(--infinite-active-cell-border-style) var(--infinite-active-cell-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-cell-background-alpha)))}.nxbq1c2{display:block}.nxbq1c3{display:none}.j26lrx0{--infinite-active-row-border-style: var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style));border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-row-background, var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-row-background-alpha, var(--infinite-active-cell-background-alpha)))))}.j26lrx1{display:block}.j26lrx2{display:none}._1yeub2v0{outline:none;font-family:var(--infinite-font-family);color:var(--infinite-color);background:var(--infinite-background);min-height:var(--infinite-min-height)}._1yeub2v1{--infinite-row-pointer-events-while-scrolling: none}._1yeub2ve{--infinite-active-cell-background-alpha: var(--infinite-active-cell-background-alpha--table-unfocused);--infinite-active-row-background-alpha: var(--infinite-active-row-background-alpha--table-unfocused, var(--infinite-active-cell-background-alpha--table-unfocused))}._1yeub2vi{border-right:var(--infinite-cell-border)}._1yeub2vj{border-left:var(--infinite-cell-border)}._1yeub2vl{-webkit-user-select:none;-moz-user-select:none;user-select:none}._1yeub2vp{transform:translate(-100%);border-right:var(--infinite-pinned-cell-border);bottom:var(--_1slvgu9m)}._1yeub2vq{left:var(--_1slvgu9f)}._1yeub2vn ._1yeub2vq{visibility:visible}._1yeub2vr{left:calc(var(--_1slvgu9h))}._1yeub2vo ._1yeub2vr{visibility:visible}._7pupv00{will-change:transform;position:absolute;top:0;left:0;pointer-events:var(--infinite-row-pointer-events-while-scrolling);--infinite-column-cell-bg-dont-override: var(--infinite-row-background)}._7pupv01{--infinite-row-background: var(--infinite-row-hover-background);--infinite-row-selected-background: var(--infinite-row-selected-hover-background);--infinite-row-odd-background: var(--infinite-row-hover-background)}._7pupv03{background:var(--infinite-row-background)}._7pupv04{background:var(--infinite-row-odd-background)}._7pupv05{z-index:100}._7pupv07{z-index:100}._7pupv0b{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0c{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0d{-webkit-padding-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._1eexc2a0{justify-content:center}._1eexc2a1{justify-content:flex-start}._1eexc2a2{justify-content:flex-start;flex-flow:row-reverse}._1eexc2a3{transition:left .3s}._1eexc2a4{transition:none}._1eexc2a5{padding:var(--infinite-cell-padding);border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border-width) solid transparent}._1yeub2vl ._1eexc2a6{transition:transform var(--infinite-column-reorder-effect-duration)}._1eexc2a7{margin-inline:var(--infinite-selection-checkbox-margin-inline)}._1eexc2a8{color:var(--infinite-cell-color)}._1eexc2ah{background:var(--infinite-row-background)}._1eexc2ai{background:var(--infinite-row-odd-background)}._1eexc2aj{background:var(--infinite-row-selected-background)}._1eexc2am{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._1eexc2ao{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}.qz8ht90[disabled]{opacity:.7}._12zfob11{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob12{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob13{margin-right:var(--infinite-header-cell-sort-icon-margin)}._12zfob14{line-height:0;font-size:10px;border-radius:50%;padding:1px;position:absolute;transition:top .2s;top:0;right:2px}._12zfob15{background:var(--infinite-header-background);top:0;right:0;bottom:0}._12zfob16{background:var(--infinite-header-background);color:var(--infinite-header-color)}._12zfob1e{z-index:10}._12zfob1k{background:var(--infinite-header-cell-hover-background);color:var(--infinite-cell-color);opacity:.8;padding:var(--infinite-cell-padding);padding-left:20px;z-index:2000}._12zfob1l{border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background);padding:0}._12zfob1l:hover{background:var(--infinite-header-cell-hover-background)}._12zfob1z{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._12zfob111{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}._12zfob119{z-index:10}._1yeub2va ._12zfob11e{--infinite-cell-border: var(--infinite-cell-border-invisible)}._12zfob11g{border-right:var(--infinite-cell-border)}._12zfob11h{cursor:context-menu;-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}._12zfob11h:active{top:1px}._12zfob1l:hover ._12zfob11h{visibility:visible;display:flex}._12zfob11j{display:none}._12zfob11k{padding:var(--infinite-header-cell-padding)}._12zfob11o{flex-direction:row-reverse}._12zfob11p{justify-content:center}._12zfob11q{background:var(--infinite-header-background)}._12zfob11r{padding:var(--infinite-cell-padding);border-bottom:var(--infinite-cell-border);border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background)}._12zfob11s{border-top:var(--infinite-cell-border)}._1ek6mqy0{-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}.zneyzh0{transform:translate(50%);width:var(--infinite-resize-handle-active-area-width)}.zneyzh0:hover{overflow:visible}.zneyzh2{transform:translate(-50%)}.zneyzh8{transform:none}.zneyzh9{transform:none}.zneyzha{transform:none}.zneyzhb{right:calc((var(--infinite-resize-handle-active-area-width) - var(--infinite-resize-handle-width)) / 2);width:var(--infinite-resize-handle-width)}.zneyzh0:hover .zneyzhb{background:var(--infinite-resize-handle-hover-background)}.zneyzh0:hover .zneyzhd{background:var(--infinite-resize-handle-constrained-hover-background)}.qy58ya0{flex-flow:row;align-items:center;justify-content:center}.qy58ya1{display:flex}.qy58ya2{display:none}.qy58ya3{background:var(--infinite-load-mask-overlay-background);opacity:var(--infinite-load-mask-overlay-opacity)}.qy58ya4{position:relative;padding:var(--infinite-load-mask-padding);color:var(--infinite-load-mask-color);background:var(--infinite-load-mask-text-background);border-radius:var(--infinite-load-mask-border-radius)}.db3arf0{padding:var(--infinite-menu-padding);color:var(--infinite-menu-color);background:var(--infinite-menu-background);border-radius:var(--infinite-menu-border-radius);outline:none;box-shadow:0 6px 12px -2px var(--infinite-menu-shadow-color),0 3px 7px -3px var(--infinite-menu-background)}.db3arf1{display:contents}.db3arf2{padding-block:var(--infinite-menu-cell-padding-vertical);padding-inline:var(--infinite-menu-cell-padding-horizontal);margin-block:var(--infinite-menu-cell-margin-vertical);border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));border-color:transparent}.db3arf3{opacity:var(--infinite-menu-item-disabled-opacity);background:var(--infinite-menu-item-disabled-background)}.db3arf0:focus-within>.db3arf1>.db3arf9{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child:last-child{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child{border-right-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:last-child{border-left-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:not(:first-child):not(:last-child){border-left-color:transparent;border-right-color:transparent}.db3arfb{background:var(--infinite-menu-item-active-background);opacity:var(--infinite-menu-item-active-opacity)}.db3arfc{background:var(--infinite-menu-item-pressed-background);opacity:var(--infinite-menu-item-pressed-opacity)}.db3arfd{border-top:1px solid currentColor;border-bottom:0;margin-top:calc(var(--infinite-menu-cell-padding-vertical) / 2);margin-bottom:calc(var(--infinite-menu-cell-padding-vertical) / 2)}
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import { CSSProperties, HTMLProps, RefCallback, MutableRefObject, MouseEvent, KeyboardEvent, ReactNode } from 'react';
2
+ import React__default, { CSSProperties, HTMLProps, RefCallback, MutableRefObject, MouseEvent, KeyboardEvent, ReactNode } from 'react';
3
3
 
4
4
  type SortDir = 1 | -1;
5
5
  type MultisortInfo<T> = {
@@ -123,6 +123,36 @@ declare function useInfiniteHeaderCell<T>(): {
123
123
  };
124
124
 
125
125
  declare function useInfiniteColumnCell<T>(): InfiniteTableColumnCellContextType<T>;
126
+ declare function useInfiniteColumnEditor<T>(): {
127
+ api: InfiniteTableApi<T>;
128
+ initialValue: any;
129
+ value: any;
130
+ readOnly: boolean;
131
+ column: InfiniteTableComputedColumn<unknown>;
132
+ rowInfo: InfiniteTable_HasGrouping_RowInfoNormal<unknown> | InfiniteTable_HasGrouping_RowInfoGroup<unknown> | InfiniteTable_NoGrouping_RowInfoNormal<unknown>;
133
+ setValue: (value: any) => void;
134
+ confirmEdit: (value?: any) => Promise<boolean | {
135
+ cancel: true;
136
+ value: null;
137
+ } | {
138
+ reject: Error;
139
+ value: any;
140
+ }>;
141
+ cancelEdit: () => Promise<boolean | {
142
+ cancel: true;
143
+ value: null;
144
+ } | {
145
+ reject: Error;
146
+ value: any;
147
+ }>;
148
+ rejectEdit: (error: Error) => Promise<boolean | {
149
+ cancel: true;
150
+ value: null;
151
+ } | {
152
+ reject: Error;
153
+ value: any;
154
+ }>;
155
+ };
126
156
 
127
157
  declare const InfiniteTableClassName: string;
128
158
  declare const InfiniteTableComponent: React$1.MemoExoticComponent<(<T>() => JSX.Element)>;
@@ -177,6 +207,8 @@ type MenuIconProps = {
177
207
  children?: React$1.ReactNode;
178
208
  };
179
209
 
210
+ type NonUndefined<T> = T extends undefined ? never : T;
211
+
180
212
  type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
181
213
  type InfiniteTableSelectRowFn = (id: any) => void;
182
214
  type InfiniteTableColumnHeaderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
@@ -216,6 +248,7 @@ type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTableCompu
216
248
  rowIndex: number;
217
249
  rowActive: boolean;
218
250
  api: InfiniteTableApi<DATA_TYPE>;
251
+ editError?: Error;
219
252
  column: COL_TYPE;
220
253
  columnsMap: Map<string, COL_TYPE>;
221
254
  fieldsToColumn: Map<keyof DATA_TYPE, COL_TYPE>;
@@ -255,11 +288,12 @@ type InfiniteTableColumnHeaderRenderFunction<T> = (headerParams: InfiniteTableCo
255
288
  type InfiniteTableColumnContentFocusable<T> = boolean | InfiniteTableColumnContentFocusableFn<T>;
256
289
  type InfiniteTableColumnEditable<T> = boolean | InfiniteTableColumnEditableFn<T>;
257
290
  type InfiniteTableColumnContentFocusableFn<T> = (params: InfiniteTableColumnContentFocusableParams<T>) => boolean;
258
- type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean;
259
- type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableColumnValueFormatterParams<T> & {
260
- column: InfiniteTableComputedColumn<T>;
261
- };
291
+ type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean | Promise<boolean>;
292
+ type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T>;
262
293
  type InfiniteTableColumnEditableParams<T> = InfiniteTableColumnContentFocusableParams<T>;
294
+ type InfiniteTableColumnGetValueToPersistParams<T> = InfiniteTableColumnEditableParams<T> & {
295
+ initialValue: any;
296
+ };
263
297
  type InfiniteTableColumnAlign = 'start' | 'center' | 'end';
264
298
  type InfiniteTableColumnVerticalAlign = 'start' | 'center' | 'end';
265
299
  type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
@@ -268,10 +302,12 @@ type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
268
302
  type InfiniteTableColumnStyleFnParams<T> = {
269
303
  value: Renderable;
270
304
  column: InfiniteTableComputedColumn<T>;
305
+ inEdit: boolean;
306
+ editError: InfiniteTableColumnRenderParamBase<T>['editError'];
271
307
  } & InfiniteTableRowInfoDataDiscriminator<T>;
272
- type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | React.CSSProperties;
308
+ type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | React__default.CSSProperties;
273
309
  type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
274
- type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React.CSSProperties;
310
+ type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
275
311
  type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | string;
276
312
  type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
277
313
  type InfiniteTableColumnHeaderStyle<T> = CSSProperties | InfiniteTableColumnHeaderStyleFn<T>;
@@ -298,7 +334,9 @@ type InfiniteTableColumn<DATA_TYPE> = {
298
334
  draggable?: boolean;
299
335
  resizable?: boolean;
300
336
  contentFocusable?: InfiniteTableColumnContentFocusable<DATA_TYPE>;
301
- editable?: InfiniteTableColumnEditable<DATA_TYPE>;
337
+ defaultEditable?: InfiniteTableColumnEditable<DATA_TYPE>;
338
+ getValueToEdit?: (params: InfiniteTableColumnEditableParams<DATA_TYPE>) => any | Promise<any>;
339
+ getValueToPersist?: (params: InfiniteTableColumnGetValueToPersistParams<DATA_TYPE>) => any | Promise<any>;
302
340
  comparer?: InfiniteTableColumnComparer<DATA_TYPE>;
303
341
  defaultHiddenWhenGroupedBy?: '*' | true | keyof DATA_TYPE | {
304
342
  [k in keyof Partial<DATA_TYPE>]: true;
@@ -339,9 +377,9 @@ type InfiniteTableColumn<DATA_TYPE> = {
339
377
  renderMenuIcon?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
340
378
  renderHeaderSelectionCheckBox?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
341
379
  components?: {
342
- ColumnCell?: React.FunctionComponent<HTMLProps<HTMLDivElement>>;
343
- HeaderCell?: React.FunctionComponent<HTMLProps<HTMLDivElement>>;
344
- MenuIcon?: React.FC<MenuIconProps>;
380
+ ColumnCell?: React__default.FunctionComponent<HTMLProps<HTMLDivElement>>;
381
+ HeaderCell?: React__default.FunctionComponent<HTMLProps<HTMLDivElement>>;
382
+ MenuIcon?: React__default.FC<MenuIconProps>;
345
383
  };
346
384
  };
347
385
  type InfiniteTableGeneratedGroupColumn<T> = Omit<InfiniteTableColumn<T>, 'sortable'> & {
@@ -400,6 +438,7 @@ type InfiniteTableComputedColumnBase<T> = {
400
438
  computedLastInCategory: boolean;
401
439
  computedFirst: boolean;
402
440
  computedLast: boolean;
441
+ computedEditable: NonUndefined<InfiniteTableColumn<T>['defaultEditable']>;
403
442
  toggleSort: () => void;
404
443
  colType: InfiniteTableColumnType<T>;
405
444
  id: string;
@@ -967,8 +1006,6 @@ type CellPosition = {
967
1006
  colIndex: number;
968
1007
  };
969
1008
 
970
- type NonUndefined<T> = T extends undefined ? never : T;
971
-
972
1009
  type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
973
1010
  interface SubscriptionCallback<T> {
974
1011
  (node: T, callback?: () => void): void;
@@ -994,6 +1031,7 @@ interface InfiniteTableSetupState<T> {
994
1031
  propsCache: Map<keyof InfiniteTableProps<T>, WeakMap<any, any>>;
995
1032
  columnsWhenInlineGroupRenderStrategy?: Map<string, InfiniteTableColumn<T>>;
996
1033
  domRef: MutableRefObject<HTMLDivElement | null>;
1034
+ editingValueRef: MutableRefObject<any | null>;
997
1035
  scrollerDOMRef: MutableRefObject<HTMLDivElement | null>;
998
1036
  portalDOMRef: MutableRefObject<HTMLDivElement | null>;
999
1037
  focusDetectDOMRef: MutableRefObject<HTMLDivElement | null>;
@@ -1024,6 +1062,27 @@ interface InfiniteTableSetupState<T> {
1024
1062
  scrollPosition: ScrollPosition;
1025
1063
  pinnedStartScrollListener: ScrollListener;
1026
1064
  pinnedEndScrollListener: ScrollListener;
1065
+ editingCell: {
1066
+ active: true;
1067
+ accepted: false;
1068
+ columnId: string;
1069
+ value: any;
1070
+ persisted: false;
1071
+ initialValue: any;
1072
+ rowIndex: number;
1073
+ primaryKey: any;
1074
+ } | null | {
1075
+ active: false;
1076
+ columnId: string;
1077
+ rowIndex: number;
1078
+ value: any;
1079
+ initialValue: any;
1080
+ primaryKey?: any;
1081
+ waiting: 'accept' | 'persist' | false;
1082
+ accepted: boolean | Error;
1083
+ persisted: boolean | Error;
1084
+ cancelled?: boolean;
1085
+ };
1027
1086
  }
1028
1087
  type InfiniteTableColumnGroupsDepthsMap = Map<string, number>;
1029
1088
  type InfiniteTablePropPivotTotalColumnPosition = false | 'start' | 'end';
@@ -1049,6 +1108,13 @@ interface InfiniteTableMappedState<T> {
1049
1108
  onSelfBlur: InfiniteTableProps<T>['onSelfBlur'];
1050
1109
  onFocusWithin: InfiniteTableProps<T>['onFocusWithin'];
1051
1110
  onBlurWithin: InfiniteTableProps<T>['onBlurWithin'];
1111
+ onEditCancelled: InfiniteTableProps<T>['onEditCancelled'];
1112
+ onEditRejected: InfiniteTableProps<T>['onEditRejected'];
1113
+ onEditAccepted: InfiniteTableProps<T>['onEditAccepted'];
1114
+ shouldAcceptEdit: InfiniteTableProps<T>['shouldAcceptEdit'];
1115
+ persistEdit: InfiniteTableProps<T>['persistEdit'];
1116
+ onEditPersistSuccess: InfiniteTableProps<T>['onEditPersistSuccess'];
1117
+ onEditPersistError: InfiniteTableProps<T>['onEditPersistError'];
1052
1118
  autoSizeColumnsKey: InfiniteTableProps<T>['autoSizeColumnsKey'];
1053
1119
  activeRowIndex: InfiniteTableProps<T>['activeRowIndex'];
1054
1120
  activeCellIndex: InfiniteTableProps<T>['activeCellIndex'];
@@ -1064,6 +1130,8 @@ interface InfiniteTableMappedState<T> {
1064
1130
  focusedWithinStyle: InfiniteTableProps<T>['focusedWithinStyle'];
1065
1131
  showSeparatePivotColumnForSingleAggregation: NonUndefined<InfiniteTableProps<T>['showSeparatePivotColumnForSingleAggregation']>;
1066
1132
  domProps: InfiniteTableProps<T>['domProps'];
1133
+ editable: InfiniteTableProps<T>['editable'];
1134
+ columnDefaultEditable: InfiniteTableProps<T>['columnDefaultEditable'];
1067
1135
  rowStyle: InfiniteTableProps<T>['rowStyle'];
1068
1136
  rowProps: InfiniteTableProps<T>['rowProps'];
1069
1137
  rowClassName: InfiniteTableProps<T>['rowClassName'];
@@ -1115,9 +1183,10 @@ interface InfiniteTableState<T> extends InfiniteTableMappedState<T>, InfiniteTab
1115
1183
  }
1116
1184
 
1117
1185
  interface InfiniteTableContextValue<T> {
1118
- imperativeApi: InfiniteTableApi<T>;
1119
- componentState: InfiniteTableState<T>;
1120
- componentActions: InfiniteTableActions<T>;
1186
+ api: InfiniteTableApi<T>;
1187
+ dataSourceApi: DataSourceApi<T>;
1188
+ state: InfiniteTableState<T>;
1189
+ actions: InfiniteTableActions<T>;
1121
1190
  dataSourceActions: DataSourceComponentActions<T>;
1122
1191
  computed: InfiniteTableComputedValues<T>;
1123
1192
  getComputed: () => InfiniteTableComputedValues<T>;
@@ -1403,16 +1472,16 @@ type DataSourceInsertParam = DataSourceCRUDParam & ({
1403
1472
  interface DataSourceApi<T> {
1404
1473
  getRowInfoArray: () => InfiniteTableRowInfo<T>[];
1405
1474
  getDataByPrimaryKey(id: any): T | undefined;
1406
- updateData(data: Partial<T>, options?: DataSourceCRUDParam): void;
1407
- updateDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): void;
1408
- removeDataByPrimaryKey(id: any, options?: DataSourceCRUDParam): void;
1409
- removeDataArrayByPrimaryKeys(id: any[], options?: DataSourceCRUDParam): void;
1410
- removeData(data: Partial<T>, options?: DataSourceCRUDParam): void;
1411
- removeDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): void;
1412
- addData(data: T, options?: DataSourceCRUDParam): void;
1413
- addDataArray(data: T[], options?: DataSourceCRUDParam): void;
1414
- insertData(data: T, options: DataSourceInsertParam): void;
1415
- insertDataArray(data: T[], options: DataSourceInsertParam): void;
1475
+ updateData(data: Partial<T>, options?: DataSourceCRUDParam): Promise<any>;
1476
+ updateDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): Promise<any>;
1477
+ removeDataByPrimaryKey(id: any, options?: DataSourceCRUDParam): Promise<any>;
1478
+ removeDataArrayByPrimaryKeys(id: any[], options?: DataSourceCRUDParam): Promise<any>;
1479
+ removeData(data: Partial<T>, options?: DataSourceCRUDParam): Promise<any>;
1480
+ removeDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): Promise<any>;
1481
+ addData(data: T, options?: DataSourceCRUDParam): Promise<any>;
1482
+ addDataArray(data: T[], options?: DataSourceCRUDParam): Promise<any>;
1483
+ insertData(data: T, options: DataSourceInsertParam): Promise<any>;
1484
+ insertDataArray(data: T[], options: DataSourceInsertParam): Promise<any>;
1416
1485
  }
1417
1486
  type DataSourceProps<T> = {
1418
1487
  children: React$1.ReactNode | ((contextData: DataSourceState<T>) => React$1.ReactNode);
@@ -1592,6 +1661,7 @@ type InfiniteTableRowInfoDataDiscriminator_RowInfoNormal<T> = {
1592
1661
  rowInfo: InfiniteTable_NoGrouping_RowInfoNormal<T> | InfiniteTable_HasGrouping_RowInfoNormal<T>;
1593
1662
  field?: keyof T;
1594
1663
  value: any;
1664
+ rawValue: any;
1595
1665
  rowSelected: boolean | null;
1596
1666
  };
1597
1667
  type InfiniteTableRowInfoDataDiscriminator_RowInfoGroup<T> = {
@@ -1601,6 +1671,7 @@ type InfiniteTableRowInfoDataDiscriminator_RowInfoGroup<T> = {
1601
1671
  isGroupRow: true;
1602
1672
  field?: keyof T;
1603
1673
  value: any;
1674
+ rawValue: any;
1604
1675
  rowSelected: boolean | null;
1605
1676
  };
1606
1677
  type InfiniteTableRowInfoDataDiscriminator<T> = InfiniteTableRowInfoDataDiscriminator_RowInfoNormal<T> | InfiniteTableRowInfoDataDiscriminator_RowInfoGroup<T>;
@@ -2057,6 +2128,7 @@ type InfiniteTableEventHandlerContext<T> = {
2057
2128
  getDataSourceState: () => DataSourceState<T>;
2058
2129
  dataSourceActions: DataSourceComponentActions<T>;
2059
2130
  api: InfiniteTableApi<T>;
2131
+ dataSourceApi: DataSourceApi<T>;
2060
2132
  };
2061
2133
  type InfiniteTableKeyboardEventHandlerContext<T> = InfiniteTableEventHandlerContext<T>;
2062
2134
  type InfiniteTableCellClickEventHandlerContext<T> = InfiniteTableEventHandlerContext<T> & {
@@ -2105,7 +2177,7 @@ type InfiniteTableColumnType<T> = {
2105
2177
  align?: InfiniteTableColumn<T>['align'];
2106
2178
  verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
2107
2179
  contentFocusable?: InfiniteTableColumn<T>['contentFocusable'];
2108
- editable?: InfiniteTableColumn<T>['editable'];
2180
+ defaultEditable?: InfiniteTableColumn<T>['defaultEditable'];
2109
2181
  columnGroup?: string;
2110
2182
  cssEllipsis?: boolean;
2111
2183
  headerCssEllipsis?: boolean;
@@ -2139,15 +2211,53 @@ type InfiniteTableColumnApi<_T> = {
2139
2211
  clearSort: () => void;
2140
2212
  setSort: (sort: SortDir | null) => void;
2141
2213
  };
2142
- type InfiniteTableApi<T> = {
2214
+ type InfiniteTableApiStopEditParams = {
2215
+ cancel: true;
2216
+ reject?: never;
2217
+ value?: never;
2218
+ } | {
2219
+ reject: Error;
2220
+ cancel?: never;
2221
+ value?: never;
2222
+ } | {
2223
+ value?: any;
2224
+ cancel?: never;
2225
+ reject?: never;
2226
+ };
2227
+ type InfiniteTableApiIsCellEditableParams = {
2228
+ columnId: string;
2229
+ rowIndex: number;
2230
+ };
2231
+ type InfiniteTableApiStopEditPromiseResolveType = {
2232
+ cancel: true;
2233
+ value: null;
2234
+ } | {
2235
+ reject: Error;
2236
+ value: any;
2237
+ } | boolean;
2238
+ interface InfiniteTableApi<T> {
2143
2239
  get selectionApi(): InfiniteTableSelectionApi;
2144
2240
  setColumnOrder: (columnOrder: InfiniteTablePropColumnOrder) => void;
2145
2241
  setColumnVisibility: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
2146
- x?: T;
2242
+ clearEditInfo: () => void;
2243
+ isEditorVisibleForCell(params: {
2244
+ rowIndex: number;
2245
+ columnId: string;
2246
+ }): boolean;
2147
2247
  get scrollLeft(): number;
2148
2248
  set scrollLeft(value: number);
2149
2249
  get scrollTop(): number;
2150
2250
  set scrollTop(value: number);
2251
+ isCellEditable: (params: InfiniteTableApiIsCellEditableParams) => Promise<boolean>;
2252
+ startEdit: (params: InfiniteTableApiIsCellEditableParams) => Promise<boolean>;
2253
+ stopEdit: (params?: InfiniteTableApiStopEditParams) => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2254
+ persistEdit: (params?: {
2255
+ value?: any;
2256
+ }) => Promise<true | Error>;
2257
+ rejectEdit: (error: Error) => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2258
+ confirmEdit: (value?: any) => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2259
+ cancelEdit: () => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2260
+ isEditInProgress: () => boolean;
2151
2261
  getVerticalRenderRange: () => {
2152
2262
  renderStartIndex: number;
2153
2263
  renderEndIndex: number;
@@ -2174,7 +2284,8 @@ type InfiniteTableApi<T> = {
2174
2284
  }) => boolean;
2175
2285
  getState: () => InfiniteTableState<T>;
2176
2286
  getDataSourceState: () => DataSourceState<T>;
2177
- };
2287
+ focus: () => void;
2288
+ }
2178
2289
  type InfiniteTablePropVirtualizeColumns<T> = boolean | ((columns: InfiniteTableComputedColumn<T>[]) => boolean);
2179
2290
  type InfiniteTableColumnsMap<T, ColumnType = InfiniteTableColumn<T>> = Map<string, ColumnType>;
2180
2291
  type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = Record<string, ColumnType> | InfiniteTableColumnsMap<T, ColumnType>;
@@ -2236,6 +2347,11 @@ type ScrollStopInfo = {
2236
2347
  lastVisibleRowIndex: number;
2237
2348
  };
2238
2349
  type InfiniteTablePropFilterEditors<T> = Record<string, React$1.FC<InfiniteTableFilterEditorProps<T>>>;
2350
+ type InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T> = {
2351
+ column: InfiniteTableComputedColumn<T>;
2352
+ api: InfiniteTableApi<T>;
2353
+ dataSourceApi: DataSourceApi<T>;
2354
+ } & InfiniteTableRowInfoDataDiscriminator<T>;
2239
2355
  type InfiniteTableFilterEditorProps<T extends any> = {
2240
2356
  filterType: string;
2241
2357
  operator: string;
@@ -2244,6 +2360,16 @@ type InfiniteTableFilterEditorProps<T extends any> = {
2244
2360
  className: string;
2245
2361
  onChange: (value: T | undefined) => void;
2246
2362
  };
2363
+ type InfiniteTablePropsEditable<T> = InfiniteTableColumnEditableFn<T> | undefined;
2364
+ type InfiniteTablePropOnEditAcceptedParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T> & {
2365
+ initialValue: any;
2366
+ };
2367
+ type InfiniteTablePropOnEditCancelledParams<T> = InfiniteTablePropOnEditAcceptedParams<T>;
2368
+ type InfiniteTablePropOnEditRejectedParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T> & {
2369
+ initialValue: any;
2370
+ error: Error;
2371
+ };
2372
+ type InfiniteTablePropOnEditPersistParams<T> = InfiniteTablePropOnEditAcceptedParams<T>;
2247
2373
  interface InfiniteTableProps<T> {
2248
2374
  columns: InfiniteTablePropColumns<T>;
2249
2375
  pivotColumns?: InfiniteTableColumnsMap<T, InfiniteTablePivotColumn<T>>;
@@ -2252,6 +2378,8 @@ interface InfiniteTableProps<T> {
2252
2378
  viewportReservedWidth?: number;
2253
2379
  onViewportReservedWidthChange?: (viewportReservedWidth: number) => void;
2254
2380
  pivotColumn?: InfiniteTablePropPivotColumn<T, InfiniteTableColumn<T> & InfiniteTablePivotFinalColumn<T>>;
2381
+ columnDefaultEditable?: boolean;
2382
+ editable?: InfiniteTablePropsEditable<T>;
2255
2383
  pivotTotalColumnPosition?: InfiniteTablePropPivotTotalColumnPosition;
2256
2384
  pivotGrandTotalColumnPosition?: InfiniteTablePropPivotGrandTotalColumnPosition;
2257
2385
  groupColumn?: Partial<InfiniteTablePropGroupColumn<T>>;
@@ -2261,6 +2389,15 @@ interface InfiniteTableProps<T> {
2261
2389
  defaultColumnVisibility?: InfiniteTablePropColumnVisibility;
2262
2390
  pinnedStartMaxWidth?: number;
2263
2391
  pinnedEndMaxWidth?: number;
2392
+ shouldAcceptEdit?: (params: InfiniteTablePropOnEditAcceptedParams<T>) => boolean | Error | Promise<boolean | Error>;
2393
+ onEditCancelled?: (params: InfiniteTablePropOnEditCancelledParams<T>) => void;
2394
+ onEditAccepted?: (params: InfiniteTablePropOnEditAcceptedParams<T>) => void;
2395
+ onEditRejected?: (params: InfiniteTablePropOnEditRejectedParams<T>) => void;
2396
+ persistEdit?: (params: InfiniteTablePropOnEditPersistParams<T>) => any | Error | Promise<any | Error>;
2397
+ onEditPersistSuccess?: (params: InfiniteTablePropOnEditPersistParams<T>) => void;
2398
+ onEditPersistError?: (params: InfiniteTablePropOnEditPersistParams<T> & {
2399
+ error: Error;
2400
+ }) => void;
2264
2401
  columnPinning?: InfiniteTablePropColumnPinning;
2265
2402
  defaultColumnPinning?: InfiniteTablePropColumnPinning;
2266
2403
  columnSizing?: InfiniteTablePropColumnSizing;
@@ -2454,4 +2591,4 @@ declare const components: {
2454
2591
  LoadMask: (props: LoadMaskProps) => JSX.Element;
2455
2592
  };
2456
2593
 
2457
- export { AdvancedAlignable, ColumnTypeWithInherit, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourceReducer, DataSourceRemoteData, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, ElementContainerGetter, GroupRowsState, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnsMap, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableFilterEditorProps, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropFilterEditors, InfiniteTablePropGetColumnContextMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, NumberFilterEditor, OverlayShowParams, RowSelectionState, Scrollbars, StringFilterEditor, components, debounce, defaultFilterEditors, defaultFilterTypes, defaultFilterTypes as filterTypes, flatten, getComponentStateRoot, group, interceptMap, multisort, useComponentState, useDataSource, useEffectWithChanges, useInfiniteColumnCell, useInfiniteHeaderCell, useOverlay, useOverlayPortal };
2594
+ export { AdvancedAlignable, ColumnTypeWithInherit, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourceReducer, DataSourceRemoteData, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, ElementContainerGetter, GroupRowsState, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnsMap, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableFilterEditorProps, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropFilterEditors, InfiniteTablePropGetColumnContextMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, NumberFilterEditor, OverlayShowParams, RowSelectionState, Scrollbars, StringFilterEditor, components, debounce, defaultFilterEditors, defaultFilterTypes, defaultFilterTypes as filterTypes, flatten, getComponentStateRoot, group, interceptMap, multisort, useComponentState, useDataSource, useEffectWithChanges, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteHeaderCell, useOverlay, useOverlayPortal };