@ishibashi0112/spreadsheet-grid-core 0.39.0 → 0.40.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.
@@ -1,84 +1,96 @@
1
1
  import { getCellValue as e } from "../utils/permissions.js";
2
2
  import { buildGroupTree as t, flattenGroupTree as n, groupIndexOfOrderValue as r, groupRowKey as i, isGroupOrderValue as a } from "../logic/grouping.js";
3
3
  import { isIdentityOrder as o, isRowDragOperable as s } from "../logic/rowReorder.js";
4
- import { coerceNumberFilterCellValue as c, columnFilterUsesNumericKey as l, createSourceOrder as u, filterOrderByColumns as d } from "../logic/filtering.js";
5
- import { sortOrder as f } from "../logic/sorting.js";
6
- import { createMemo as p } from "./memo.js";
7
- import { buildServerSideQuery as m, serializeServerSideQuery as h } from "../logic/serverSideQuery.js";
4
+ import { buildLabelDisplay as c, createLabelFreeOrder as l, createLabelRowModel as u, isSameOrder as d, resolveLabelRowLayout as f } from "../logic/labelRows.js";
5
+ import { coerceNumberFilterCellValue as p, columnFilterUsesNumericKey as m, createSourceOrder as h, filterOrderByColumns as g } from "../logic/filtering.js";
6
+ import { sortOrder as _ } from "../logic/sorting.js";
7
+ import { createMemo as v } from "./memo.js";
8
+ import { buildServerSideQuery as y, serializeServerSideQuery as b } from "../logic/serverSideQuery.js";
8
9
  //#region src/engine/rowPipeline.ts
9
- var g = {}, _ = {}, v = [], y = "\0", b = () => {
10
- let b = p((e) => u(e)), x = p((e, t) => {
10
+ var x = {}, S = {}, C = [], w = "\0", T = () => {
11
+ let T = v((e) => h(e)), E = v((e, t) => t ? f(e, t) : null), D = v((e, t) => l(e, t)), O = v((e, t) => {
11
12
  let n = [];
12
- for (let r of e) l(t[r.key]) && n.push(r.key);
13
- return n.join(y);
14
- }), S = p((t, n, r) => {
13
+ for (let r of e) m(t[r.key]) && n.push(r.key);
14
+ return n.join(w);
15
+ }), k = v((t, n, r) => {
15
16
  let i = /* @__PURE__ */ new Map();
16
17
  if (r.length === 0) return i;
17
- let a = new Set(r.split(y)), o = t.length;
18
+ let a = new Set(r.split(w)), o = t.length;
18
19
  for (let r of n) {
19
20
  if (!a.has(r.key)) continue;
20
21
  let n = new Float64Array(o);
21
- for (let i = 0; i < o; i += 1) n[i] = c(e(t[i], r));
22
+ for (let i = 0; i < o; i += 1) n[i] = p(e(t[i], r));
22
23
  i.set(r.key, n);
23
24
  }
24
25
  return i;
25
- }), C = p((e, t, n, r, i) => d(e, t, n, r, i)), w = p((e, t, n, r) => f(e, t, n, r)), T = p((e, t, n) => e && o(t, n)), E = p((e, n, r, i, a) => e ? t(n, r, i, a) : null), D = p((e, t) => e ? n(e, t) : null), O = p((e, t, n, o) => {
26
+ }), A = v((e, t, n, r, i) => g(e, t, n, r, i)), j = v((e, t, n, r) => _(e, t, n, r)), M = v((e, t, n) => e && o(t, n)), N = v((e, t, n) => e && d(t, n)), P = v((e, n, r, i, a) => e ? t(n, r, i, a) : null), F = v((e, t) => e ? n(e, t) : null), I = v((e, t, n, r, i, a, o) => e && o ? c({
27
+ rows: t,
28
+ order: n,
29
+ layout: e,
30
+ sortMode: r,
31
+ keepEmptySections: i,
32
+ sortActive: a,
33
+ getLabel: o
34
+ }) : null), L = v((e, t, n, o, s) => {
35
+ if (t) return u(t, o, s);
26
36
  if (e) {
27
- let { displayOrder: t, groups: s } = e;
37
+ let { displayOrder: t, groups: n } = e;
28
38
  return {
29
39
  getRowCount: () => t.length,
30
- getRow: (e) => n[t[e]],
40
+ getRow: (e) => o[t[e]],
31
41
  getSourceIndex: (e) => {
32
42
  let n = t[e];
33
43
  return n >= 0 ? n : void 0;
34
44
  },
35
45
  getRowKey: (e) => {
36
46
  let c = t[e];
37
- return a(c) ? i(s[r(c)]) : o(n[c], c);
47
+ return a(c) ? i(n[r(c)]) : s(o[c], c);
38
48
  },
39
49
  getGroupRow: (e) => {
40
- let n = t[e];
41
- return a(n) ? s[r(n)] : void 0;
50
+ let i = t[e];
51
+ return a(i) ? n[r(i)] : void 0;
42
52
  }
43
53
  };
44
54
  }
45
55
  return {
46
- getRowCount: () => t.length,
47
- getRow: (e) => n[t[e]],
48
- getSourceIndex: (e) => t[e],
49
- getRowKey: (e) => o(n[t[e]], t[e])
56
+ getRowCount: () => n.length,
57
+ getRow: (e) => o[n[e]],
58
+ getSourceIndex: (e) => n[e],
59
+ getRowKey: (e) => s(o[n[e]], n[e])
50
60
  };
51
- }), k = p((e, t, n, r, i, a, o) => e ? m({
61
+ }), R = v((e, t, n, r, i, a, o) => e ? y({
52
62
  globalText: t ? n : "",
53
- columnFilters: r ? i : _,
54
- sort: a ? o : v
55
- }) : g), A = p((e, t) => e ? h(t) : ""), j = p((e, t) => ({
63
+ columnFilters: r ? i : S,
64
+ sort: a ? o : C
65
+ }) : x), z = v((e, t) => e ? b(t) : ""), B = v((e, t) => ({
56
66
  query: e,
57
67
  queryKey: t
58
68
  }));
59
69
  return {
60
- resolveBaseOrder: (e) => b(e),
70
+ resolveLabelRowLayout: (e, t) => E(e, t),
71
+ resolveBaseOrder: (e, t) => t ? D(t, e) : T(e),
61
72
  resolveOrder: (e) => {
62
- let { rows: t, visibleColumns: n, columnFilters: r, globalFilteredOrder: i, sort: a, rowDragAvailable: o } = e, c = x(n, r), l = S(t, n, c), u = C(t, i, n, r, l), d = w(t, u, n, a), f = T(o, d, t.length);
73
+ let { rows: t, visibleColumns: n, columnFilters: r, globalFilteredOrder: i, sort: a, rowDragAvailable: o, labelLayout: c } = e, l = O(n, r), u = k(t, n, l), d = A(t, i, n, r, u), f = j(t, d, n, a), p = c ? N(o, f, D(c, t.length)) : M(o, f, t.length);
63
74
  return {
64
- order: d,
65
- orderIsIdentity: f,
66
- rowDragOperable: s(o, f)
75
+ order: f,
76
+ orderIsIdentity: p,
77
+ rowDragOperable: s(o, p)
67
78
  };
68
79
  },
69
80
  resolveClientSideRowModel: (e) => {
70
- let { rows: t, order: n, rowGroupingActive: r, groupColumns: i, aggColumns: a, collapsedGroupKeys: o, rowKeyGetter: s } = e, c = E(r, t, n, i, a), l = D(c, o);
81
+ let { rows: t, order: n, rowGroupingActive: r, groupColumns: i, aggColumns: a, collapsedGroupKeys: o, rowKeyGetter: s, labelLayout: c, labelSortMode: l = "section", keepEmptySections: u = !1, sortActive: d = !1, getLabel: f } = e, p = P(r, t, n, i, a), m = F(p, o), h = I(r ? null : c ?? null, t, n, l, u, d, f);
71
82
  return {
72
- groupTree: c,
73
- groupedDisplay: l,
74
- rowModel: O(l, n, t, s)
83
+ groupTree: p,
84
+ groupedDisplay: m,
85
+ labelDisplay: h,
86
+ rowModel: L(m, h, n, t, s)
75
87
  };
76
88
  },
77
89
  resolveServerSideQuery: (e) => {
78
- let { isServerSide: t, globalFilterEnabled: n, globalText: r, columnFilterEnabled: i, columnFilters: a, sortingEnabled: o, sort: s } = e, c = k(t, n, r, i, a, o, s);
79
- return j(c, A(t, c));
90
+ let { isServerSide: t, globalFilterEnabled: n, globalText: r, columnFilterEnabled: i, columnFilters: a, sortingEnabled: o, sort: s } = e, c = R(t, n, r, i, a, o, s);
91
+ return B(c, z(t, c));
80
92
  }
81
93
  };
82
94
  };
83
95
  //#endregion
84
- export { b as createRowPipelineResolver };
96
+ export { T as createRowPipelineResolver };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../logic/rowHeightStore.cjs"),t=require("../logic/detailRow.cjs"),n=require("../logic/verticalGeometry.cjs"),r=require("./memo.cjs");var i=[],a=[],o=20,s=()=>{let s=r.createMemo(e=>e.some(e=>e.autoHeight===!0)),c=r.createMemo((t,n,r,i,a)=>t?e.buildRowHeightStore(n,r,i.getRowKey,a):null),l=r.createMemo((t,r,i,a,o)=>t&&r?e.createAutoHeightRowMetrics(r):n.createUniformRowMetrics(a,o)),u=r.createMemo((e,n,r,a,o,s,c)=>e?t.resolveDetailRowExtras({expandedKeys:n,rowModel:r,height:a,isExpandable:o,cache:s.current,allowScan:!c}):i),d=r.createMemo((e,t,r)=>e?n.createDetailRowMetrics(t,r):t),f=r.createMemo((e,t,r,i,a,s,c)=>e?n.computeAutoHeightVerticalGeometry({headerHeight:a,viewportHeight:s,scrollTop:c,overscan:o},t):n.computeVerticalGeometry({rowCount:r,rowHeight:i,headerHeight:a,viewportHeight:s,scrollTop:c,overscan:o,maxBodyPx:n.MAX_BODY_PX})),p=r.createMemo((e,t,n)=>{if(!e)return a;let r=[];for(let e of t)e.detailSize!==void 0&&e.detailSize>0&&r.push({rowKey:n.getRowKey(e.index)??e.index,virtualRow:e});return r});return e=>{let{isServerSide:t,autoHeight:r,visibleColumns:i,viewRowCount:a,estimateRowHeight:o,rowHeight:m,headerHeight:h,viewportHeight:g,scrollTop:_,rowModel:v,measuredHeights:y,autoHeightVersion:b,detailRowEnabled:x,expandedDetailRowKeys:S,detailHeight:C,detailIsExpandable:w,detailIndexCacheRef:T}=e,E=s(i),D=!t&&n.shouldUseAutoHeight(r,E,a,5e4),O=c(D,a,o,v,y),k=l(D,O,b,a,m),A=u(x,S,v,C,w,T,t),j=A.length>0&&k.totalBodyHeight+A.reduce((e,t)=>e+t.height,0)<=15e6,M=d(j,k,A),N=f(D||j,M,a,m,h,g,_),P=N.rows,F=p(j,P,v);return{hasAutoHeightColumn:E,autoHeightActive:D,rowHeightStore:O,baseRowMetrics:k,detailExtras:A,detailActive:j,rowMetrics:M,verticalGeometry:N,virtualRows:P,virtualRowIndexes:N.rowIndexSet,detailEntries:F,windowFirstRow:P.length>0?P[0].index:0,windowLastRow:P.length>0?P[P.length-1].index:-1,physicalBodyHeight:N.physicalBodyHeight,bodyLayerTransform:N.translateY===0?void 0:`translateY(${N.translateY}px)`,verticalScaleFactor:N.scaleFactor,overlayBaseOffset:N.windowBaseOffsetPx}}};exports.createVerticalLayoutResolver=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../logic/rowHeightStore.cjs"),t=require("../logic/detailRow.cjs"),n=require("../logic/verticalGeometry.cjs"),r=require("./memo.cjs");var i=[],a=[],o=[],s=20,c=()=>{let c=r.createMemo(e=>e.some(e=>e.autoHeight===!0)),l=r.createMemo((t,n,r,i,a)=>t?e.buildRowHeightStore(n,r,i.getRowKey,a):null),u=r.createMemo((t,r,i,a,o)=>t&&r?e.createAutoHeightRowMetrics(r):n.createUniformRowMetrics(a,o)),d=r.createMemo((e,n,r,a,o,s,c)=>e?t.resolveDetailRowExtras({expandedKeys:n,rowModel:r,height:a,isExpandable:o,cache:s.current,allowScan:!c}):i),f=r.createMemo((e,t)=>{if(!e||t===void 0||e.labels.length===0)return a;let n=[];for(let r=0;r<e.labels.length;r+=1){let i=e.labels[r];n.push({index:e.labelViewIndexes[r],height:typeof t==`function`?t(i.row):t})}return n}),p=r.createMemo((e,t)=>t.length>0?n.createRowHeightOverrideMetrics(e,t):e),m=r.createMemo((e,t,r)=>e?n.createDetailRowMetrics(t,r):t),h=r.createMemo((e,t,r,i,a,o,c)=>e?n.computeAutoHeightVerticalGeometry({headerHeight:a,viewportHeight:o,scrollTop:c,overscan:s},t):n.computeVerticalGeometry({rowCount:r,rowHeight:i,headerHeight:a,viewportHeight:o,scrollTop:c,overscan:s,maxBodyPx:n.MAX_BODY_PX})),g=r.createMemo((e,t,n)=>{if(!e)return o;let r=[];for(let e of t)e.detailSize!==void 0&&e.detailSize>0&&r.push({rowKey:n.getRowKey(e.index)??e.index,virtualRow:e});return r});return e=>{let{isServerSide:t,autoHeight:r,visibleColumns:i,viewRowCount:a,estimateRowHeight:o,rowHeight:s,headerHeight:_,viewportHeight:v,scrollTop:y,rowModel:b,measuredHeights:x,autoHeightVersion:S,detailRowEnabled:C,expandedDetailRowKeys:w,detailHeight:T,detailIsExpandable:E,detailIndexCacheRef:D,labelDisplay:O,labelRowHeight:k}=e,A=c(i),j=!t&&n.shouldUseAutoHeight(r,A,a,5e4),M=l(j,a,o,b,x),N=u(j,M,S,a,s),P=d(C,w,b,T,E,D,t),F=f(t?null:O,k),I=p(N,F),L=I!==N&&I.totalBodyHeight<=15e6,R=L?I:N,z=P.length>0&&R.totalBodyHeight+P.reduce((e,t)=>e+t.height,0)<=15e6,B=m(z,R,P),V=h(j||z||L,B,a,s,_,v,y),H=V.rows,U=g(z,H,b);return{hasAutoHeightColumn:A,autoHeightActive:j,rowHeightStore:M,baseRowMetrics:N,labelHeightActive:L,detailExtras:P,detailActive:z,rowMetrics:B,verticalGeometry:V,virtualRows:H,virtualRowIndexes:V.rowIndexSet,detailEntries:U,windowFirstRow:H.length>0?H[0].index:0,windowLastRow:H.length>0?H[H.length-1].index:-1,physicalBodyHeight:V.physicalBodyHeight,bodyLayerTransform:V.translateY===0?void 0:`translateY(${V.translateY}px)`,verticalScaleFactor:V.scaleFactor,overlayBaseOffset:V.windowBaseOffsetPx}}};exports.createVerticalLayoutResolver=c;
@@ -2,6 +2,7 @@ import type { GridColumn, GridRowKey, RowModel } from '../model/gridTypes.unboun
2
2
  import { type DetailRowExtra, type RowMetrics, type VerticalGeometry, type VerticalRow } from '../logic/verticalGeometry';
3
3
  import { type RowHeightStore } from '../logic/rowHeightStore';
4
4
  import { resolveDetailRowExtras, type DetailIndexCache } from '../logic/detailRow';
5
+ import type { LabelDisplay } from '../logic/labelRows';
5
6
  type ReadonlyRef<V> = {
6
7
  readonly current: V;
7
8
  };
@@ -28,12 +29,15 @@ export type VerticalLayoutInputs<T> = {
28
29
  detailHeight: number;
29
30
  detailIsExpandable: DetailIsExpandable<T>;
30
31
  detailIndexCacheRef: ReadonlyRef<DetailIndexCache>;
32
+ labelDisplay?: LabelDisplay<T> | null;
33
+ labelRowHeight?: number | ((row: T) => number);
31
34
  };
32
35
  export type VerticalLayoutResolution = {
33
36
  hasAutoHeightColumn: boolean;
34
37
  autoHeightActive: boolean;
35
38
  rowHeightStore: RowHeightStore | null;
36
39
  baseRowMetrics: RowMetrics;
40
+ labelHeightActive: boolean;
37
41
  detailExtras: readonly DetailRowExtra[];
38
42
  detailActive: boolean;
39
43
  rowMetrics: RowMetrics;
@@ -1,31 +1,42 @@
1
1
  import { buildRowHeightStore as e, createAutoHeightRowMetrics as t } from "../logic/rowHeightStore.js";
2
2
  import { resolveDetailRowExtras as n } from "../logic/detailRow.js";
3
- import { MAX_BODY_PX as r, computeAutoHeightVerticalGeometry as i, computeVerticalGeometry as a, createDetailRowMetrics as o, createUniformRowMetrics as s, shouldUseAutoHeight as c } from "../logic/verticalGeometry.js";
4
- import { createMemo as l } from "./memo.js";
3
+ import { MAX_BODY_PX as r, computeAutoHeightVerticalGeometry as i, computeVerticalGeometry as a, createDetailRowMetrics as o, createRowHeightOverrideMetrics as s, createUniformRowMetrics as c, shouldUseAutoHeight as l } from "../logic/verticalGeometry.js";
4
+ import { createMemo as u } from "./memo.js";
5
5
  //#region src/engine/verticalLayout.ts
6
- var u = [], d = [], f = 20, p = () => {
7
- let p = l((e) => e.some((e) => e.autoHeight === !0)), m = l((t, n, r, i, a) => t ? e(n, r, i.getRowKey, a) : null), h = l((e, n, r, i, a) => e && n ? t(n) : s(i, a)), g = l((e, t, r, i, a, o, s) => e ? n({
6
+ var d = [], f = [], p = [], m = 20, h = () => {
7
+ let h = u((e) => e.some((e) => e.autoHeight === !0)), g = u((t, n, r, i, a) => t ? e(n, r, i.getRowKey, a) : null), _ = u((e, n, r, i, a) => e && n ? t(n) : c(i, a)), v = u((e, t, r, i, a, o, s) => e ? n({
8
8
  expandedKeys: t,
9
9
  rowModel: r,
10
10
  height: i,
11
11
  isExpandable: a,
12
12
  cache: o.current,
13
13
  allowScan: !s
14
- }) : u), _ = l((e, t, n) => e ? o(t, n) : t), v = l((e, t, n, o, s, c, l) => e ? i({
14
+ }) : d), y = u((e, t) => {
15
+ if (!e || t === void 0 || e.labels.length === 0) return f;
16
+ let n = [];
17
+ for (let r = 0; r < e.labels.length; r += 1) {
18
+ let i = e.labels[r];
19
+ n.push({
20
+ index: e.labelViewIndexes[r],
21
+ height: typeof t == "function" ? t(i.row) : t
22
+ });
23
+ }
24
+ return n;
25
+ }), b = u((e, t) => t.length > 0 ? s(e, t) : e), x = u((e, t, n) => e ? o(t, n) : t), S = u((e, t, n, o, s, c, l) => e ? i({
15
26
  headerHeight: s,
16
27
  viewportHeight: c,
17
28
  scrollTop: l,
18
- overscan: f
29
+ overscan: m
19
30
  }, t) : a({
20
31
  rowCount: n,
21
32
  rowHeight: o,
22
33
  headerHeight: s,
23
34
  viewportHeight: c,
24
35
  scrollTop: l,
25
- overscan: f,
36
+ overscan: m,
26
37
  maxBodyPx: r
27
- })), y = l((e, t, n) => {
28
- if (!e) return d;
38
+ })), C = u((e, t, n) => {
39
+ if (!e) return p;
29
40
  let r = [];
30
41
  for (let e of t) e.detailSize !== void 0 && e.detailSize > 0 && r.push({
31
42
  rowKey: n.getRowKey(e.index) ?? e.index,
@@ -34,27 +45,28 @@ var u = [], d = [], f = 20, p = () => {
34
45
  return r;
35
46
  });
36
47
  return (e) => {
37
- let { isServerSide: t, autoHeight: n, visibleColumns: r, viewRowCount: i, estimateRowHeight: a, rowHeight: o, headerHeight: s, viewportHeight: l, scrollTop: u, rowModel: d, measuredHeights: f, autoHeightVersion: b, detailRowEnabled: x, expandedDetailRowKeys: S, detailHeight: C, detailIsExpandable: w, detailIndexCacheRef: T } = e, E = p(r), D = !t && c(n, E, i, 5e4), O = m(D, i, a, d, f), k = h(D, O, b, i, o), A = g(x, S, d, C, w, T, t), j = A.length > 0 && k.totalBodyHeight + A.reduce((e, t) => e + t.height, 0) <= 15e6, M = _(j, k, A), N = v(D || j, M, i, o, s, l, u), P = N.rows, F = y(j, P, d);
48
+ let { isServerSide: t, autoHeight: n, visibleColumns: r, viewRowCount: i, estimateRowHeight: a, rowHeight: o, headerHeight: s, viewportHeight: c, scrollTop: u, rowModel: d, measuredHeights: f, autoHeightVersion: p, detailRowEnabled: m, expandedDetailRowKeys: w, detailHeight: T, detailIsExpandable: E, detailIndexCacheRef: D, labelDisplay: O, labelRowHeight: k } = e, A = h(r), j = !t && l(n, A, i, 5e4), M = g(j, i, a, d, f), N = _(j, M, p, i, o), P = v(m, w, d, T, E, D, t), F = y(t ? null : O, k), I = b(N, F), L = I !== N && I.totalBodyHeight <= 15e6, R = L ? I : N, z = P.length > 0 && R.totalBodyHeight + P.reduce((e, t) => e + t.height, 0) <= 15e6, B = x(z, R, P), V = S(j || z || L, B, i, o, s, c, u), H = V.rows, U = C(z, H, d);
38
49
  return {
39
- hasAutoHeightColumn: E,
40
- autoHeightActive: D,
41
- rowHeightStore: O,
42
- baseRowMetrics: k,
43
- detailExtras: A,
44
- detailActive: j,
45
- rowMetrics: M,
46
- verticalGeometry: N,
47
- virtualRows: P,
48
- virtualRowIndexes: N.rowIndexSet,
49
- detailEntries: F,
50
- windowFirstRow: P.length > 0 ? P[0].index : 0,
51
- windowLastRow: P.length > 0 ? P[P.length - 1].index : -1,
52
- physicalBodyHeight: N.physicalBodyHeight,
53
- bodyLayerTransform: N.translateY === 0 ? void 0 : `translateY(${N.translateY}px)`,
54
- verticalScaleFactor: N.scaleFactor,
55
- overlayBaseOffset: N.windowBaseOffsetPx
50
+ hasAutoHeightColumn: A,
51
+ autoHeightActive: j,
52
+ rowHeightStore: M,
53
+ baseRowMetrics: N,
54
+ labelHeightActive: L,
55
+ detailExtras: P,
56
+ detailActive: z,
57
+ rowMetrics: B,
58
+ verticalGeometry: V,
59
+ virtualRows: H,
60
+ virtualRowIndexes: V.rowIndexSet,
61
+ detailEntries: U,
62
+ windowFirstRow: H.length > 0 ? H[0].index : 0,
63
+ windowLastRow: H.length > 0 ? H[H.length - 1].index : -1,
64
+ physicalBodyHeight: V.physicalBodyHeight,
65
+ bodyLayerTransform: V.translateY === 0 ? void 0 : `translateY(${V.translateY}px)`,
66
+ verticalScaleFactor: V.scaleFactor,
67
+ overlayBaseOffset: V.windowBaseOffsetPx
56
68
  };
57
69
  };
58
70
  };
59
71
  //#endregion
60
- export { p as createVerticalLayoutResolver };
72
+ export { h as createVerticalLayoutResolver };
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils/permissions.cjs");var t=(e,t)=>e.includes(t)||e.includes(`"`)||e.includes(`
2
- `)||e.includes(`\r`)?`"${e.replace(/"/g,`""`)}"`:e,n=(t,n)=>{let r=e.getCellValue(t,n);return n.formatClipboardValue?n.formatClipboardValue(r,t):String(r??``)},r=({getRow:e,startRow:r,endRow:i,columns:a,delimiter:o=`,`,includeHeaders:s=!0,bom:c=!1,isRowIncluded:l})=>{let u=[];s&&u.push(a.map(e=>t(e.title??e.key,o)).join(o));for(let s=r;s<i;s+=1){let r=e(s);if(!r||l&&!l(r,s))continue;let i=a.map(e=>t(n(r,e),o));u.push(i.join(o))}let d=u.join(`\r
3
- `);return c?`\uFEFF${d}`:d};exports.serializeRowsToCsv=r;
2
+ `)||e.includes(`\r`)?`"${e.replace(/"/g,`""`)}"`:e,n=(t,n)=>{let r=e.getCellValue(t,n);return n.formatClipboardValue?n.formatClipboardValue(r,t):String(r??``)},r=e=>e==null?``:String(e),i=({getRow:e,startRow:i,endRow:a,columns:o,delimiter:s=`,`,includeHeaders:c=!0,bom:l=!1,isRowIncluded:u,getLabelLine:d})=>{let f=[];c&&f.push(o.map(e=>t(e.title??e.key,s)).join(s));for(let c=i;c<a;c+=1){let i=e(c);if(!i){let e=d?.(c);e&&f.push(o.map((n,i)=>t(r(e[i]),s)).join(s));continue}if(u&&!u(i,c))continue;let a=o.map(e=>t(n(i,e),s));f.push(a.join(s))}let p=f.join(`\r
3
+ `);return l?`\uFEFF${p}`:p};exports.labelExportCellText=r,exports.serializeRowsToCsv=i;
@@ -8,5 +8,8 @@ export type SerializeRowsToCsvParams<T> = {
8
8
  includeHeaders?: boolean;
9
9
  bom?: boolean;
10
10
  isRowIncluded?: (row: T, rowIndex: number) => boolean;
11
+ getLabelLine?: (rowIndex: number) => LabelExportLine | undefined;
11
12
  };
12
- export declare const serializeRowsToCsv: <T>({ getRow, startRow, endRow, columns, delimiter, includeHeaders, bom, isRowIncluded, }: SerializeRowsToCsvParams<T>) => string;
13
+ export type LabelExportLine = ReadonlyArray<string | number | null | undefined>;
14
+ export declare const labelExportCellText: (value: string | number | null | undefined) => string;
15
+ export declare const serializeRowsToCsv: <T>({ getRow, startRow, endRow, columns, delimiter, includeHeaders, bom, isRowIncluded, getLabelLine, }: SerializeRowsToCsvParams<T>) => string;
@@ -3,17 +3,22 @@ import { getCellValue as e } from "../utils/permissions.js";
3
3
  var t = (e, t) => e.includes(t) || e.includes("\"") || e.includes("\n") || e.includes("\r") ? `"${e.replace(/"/g, "\"\"")}"` : e, n = (t, n) => {
4
4
  let r = e(t, n);
5
5
  return n.formatClipboardValue ? n.formatClipboardValue(r, t) : String(r ?? "");
6
- }, r = ({ getRow: e, startRow: r, endRow: i, columns: a, delimiter: o = ",", includeHeaders: s = !0, bom: c = !1, isRowIncluded: l }) => {
7
- let u = [];
8
- s && u.push(a.map((e) => t(e.title ?? e.key, o)).join(o));
9
- for (let s = r; s < i; s += 1) {
10
- let r = e(s);
11
- if (!r || l && !l(r, s)) continue;
12
- let i = a.map((e) => t(n(r, e), o));
13
- u.push(i.join(o));
6
+ }, r = (e) => e == null ? "" : String(e), i = ({ getRow: e, startRow: i, endRow: a, columns: o, delimiter: s = ",", includeHeaders: c = !0, bom: l = !1, isRowIncluded: u, getLabelLine: d }) => {
7
+ let f = [];
8
+ c && f.push(o.map((e) => t(e.title ?? e.key, s)).join(s));
9
+ for (let c = i; c < a; c += 1) {
10
+ let i = e(c);
11
+ if (!i) {
12
+ let e = d?.(c);
13
+ e && f.push(o.map((n, i) => t(r(e[i]), s)).join(s));
14
+ continue;
15
+ }
16
+ if (u && !u(i, c)) continue;
17
+ let a = o.map((e) => t(n(i, e), s));
18
+ f.push(a.join(s));
14
19
  }
15
- let d = u.join("\r\n");
16
- return c ? `\uFEFF${d}` : d;
20
+ let p = f.join("\r\n");
21
+ return l ? `\uFEFF${p}` : p;
17
22
  };
18
23
  //#endregion
19
- export { r as serializeRowsToCsv };
24
+ export { r as labelExportCellText, i as serializeRowsToCsv };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils/permissions.cjs");var t=({getRow:t,startRow:n,endRow:r,columns:i,isRowIncluded:a})=>{let o=i.map(e=>({key:e.key,title:e.title??e.key})),s=[];for(let o=n;o<r;o+=1){let n=t(o);n&&(a&&!a(n,o)||s.push(i.map(t=>{let r=e.getCellValue(n,t);return{value:r,text:t.formatClipboardValue?t.formatClipboardValue(r,n):String(r??``)}})))}return{columns:o,rows:s}};exports.buildGridExportData=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils/permissions.cjs"),t=require("./exportCsv.cjs");var n=({getRow:n,startRow:r,endRow:i,columns:a,isRowIncluded:o,getLabelLine:s})=>{let c=a.map(e=>({key:e.key,title:e.title??e.key})),l=[],u=s?[]:void 0;for(let c=r;c<i;c+=1){let r=n(c);if(!r){let e=s?.(c);e&&(l.push(a.map((n,r)=>{let i=e[r];return{value:i??null,text:t.labelExportCellText(i)}})),u?.push(`label`));continue}o&&!o(r,c)||(u?.push(`data`),l.push(a.map(t=>{let n=e.getCellValue(r,t);return{value:n,text:t.formatClipboardValue?t.formatClipboardValue(n,r):String(n??``)}})))}return u?{columns:c,rows:l,rowKinds:u}:{columns:c,rows:l}};exports.buildGridExportData=n;
@@ -1,9 +1,11 @@
1
1
  import type { GridColumn, GridExportData } from '../model/gridTypes.unbound';
2
+ import { type LabelExportLine } from './exportCsv';
2
3
  export type BuildGridExportDataParams<T> = {
3
4
  getRow: (viewIndex: number) => T;
4
5
  startRow: number;
5
6
  endRow: number;
6
7
  columns: GridColumn<T>[];
7
8
  isRowIncluded?: (row: T, rowIndex: number) => boolean;
9
+ getLabelLine?: (rowIndex: number) => LabelExportLine | undefined;
8
10
  };
9
- export declare const buildGridExportData: <T>({ getRow, startRow, endRow, columns, isRowIncluded, }: BuildGridExportDataParams<T>) => GridExportData;
11
+ export declare const buildGridExportData: <T>({ getRow, startRow, endRow, columns, isRowIncluded, getLabelLine, }: BuildGridExportDataParams<T>) => GridExportData;
@@ -1,24 +1,40 @@
1
1
  import { getCellValue as e } from "../utils/permissions.js";
2
+ import { labelExportCellText as t } from "./exportCsv.js";
2
3
  //#region src/logic/exportData.ts
3
- var t = ({ getRow: t, startRow: n, endRow: r, columns: i, isRowIncluded: a }) => {
4
- let o = i.map((e) => ({
4
+ var n = ({ getRow: n, startRow: r, endRow: i, columns: a, isRowIncluded: o, getLabelLine: s }) => {
5
+ let c = a.map((e) => ({
5
6
  key: e.key,
6
7
  title: e.title ?? e.key
7
- })), s = [];
8
- for (let o = n; o < r; o += 1) {
9
- let n = t(o);
10
- n && (a && !a(n, o) || s.push(i.map((t) => {
11
- let r = e(n, t);
8
+ })), l = [], u = s ? [] : void 0;
9
+ for (let c = r; c < i; c += 1) {
10
+ let r = n(c);
11
+ if (!r) {
12
+ let e = s?.(c);
13
+ e && (l.push(a.map((n, r) => {
14
+ let i = e[r];
15
+ return {
16
+ value: i ?? null,
17
+ text: t(i)
18
+ };
19
+ })), u?.push("label"));
20
+ continue;
21
+ }
22
+ o && !o(r, c) || (u?.push("data"), l.push(a.map((t) => {
23
+ let n = e(r, t);
12
24
  return {
13
- value: r,
14
- text: t.formatClipboardValue ? t.formatClipboardValue(r, n) : String(r ?? "")
25
+ value: n,
26
+ text: t.formatClipboardValue ? t.formatClipboardValue(n, r) : String(n ?? "")
15
27
  };
16
28
  })));
17
29
  }
18
- return {
19
- columns: o,
20
- rows: s
30
+ return u ? {
31
+ columns: c,
32
+ rows: l,
33
+ rowKinds: u
34
+ } : {
35
+ columns: c,
36
+ rows: l
21
37
  };
22
38
  };
23
39
  //#endregion
24
- export { t as buildGridExportData };
40
+ export { n as buildGridExportData };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>{let n=e.length,r=[],i=new Int32Array(n),a=0;for(let o=0;o<n;o+=1)t(e[o],o)&&(r.push(o),a+=1),i[o]=a;return r.length===0?null:{labelIndexes:Int32Array.from(r),sectionBySource:i,dataRowCount:n-r.length}},t=(e,t)=>{let n=new Int32Array(e.dataRowCount),{labelIndexes:r}=e,i=0,a=0;for(let e=0;e<t;e+=1){if(i<r.length&&r[i]===e){i+=1;continue}n[a]=e,a+=1}return n},n=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0},r=e=>e<0,i=e=>-e-1,a=(e,t,n,r)=>({kind:`label`,row:e[t],sourceIndex:t,label:n(e[t]),sectionRowCount:r}),o=({rows:e,order:t,layout:n,sortMode:r,keepEmptySections:i,sortActive:o,getLabel:s})=>{let{labelIndexes:c,sectionBySource:l,dataRowCount:u}=n,d=c.length,f=d+1,p=t.length!==u,m=o||p,h=[],g=[],_=[],v=(t,n)=>{g.push(a(e,c[t],s,n)),_.push(h.length),h.push(-g.length)},y=()=>({displayOrder:Int32Array.from(h),labels:g,labelViewIndexes:Int32Array.from(_)});if(r===`hide`&&m)return{displayOrder:t,labels:g,labelViewIndexes:new Int32Array};let b=new Int32Array(f);for(let e=0;e<t.length;e+=1)b[l[t[e]]]+=1;let x=e=>b[e+1]>0||i||!p;if(r===`follow`&&m){let e=new Int32Array(f).fill(-1);for(let n=0;n<t.length;n+=1){let r=l[t[n]];e[r]===-1&&(e[r]=n)}let n=new Map;for(let t=0;t<d;t+=1){let r=e[t+1];r!==-1&&n.set(r,t)}let r=0,a=t=>{for(;r<t;)i&&e[r+1]===-1&&v(r,0),r+=1};for(let e=0;e<t.length;e+=1){let i=n.get(e);i!==void 0&&(a(i),r=Math.max(r,i+1),v(i,b[i+1])),h.push(t[e])}return a(d),y()}let S=new Int32Array(f+1);for(let e=0;e<f;e+=1)S[e+1]=S[e]+b[e];let C=new Int32Array(t.length),w=S.slice(0,f);for(let e=0;e<t.length;e+=1){let n=l[t[e]];C[w[n]]=t[e],w[n]+=1}for(let e=0;e<f;e+=1)if(!(e>0&&!x(e-1))){e>0&&v(e-1,b[e]);for(let t=S[e];t<S[e+1];t+=1)h.push(C[t])}return y()},s=(e,t,n)=>{let{displayOrder:a,labels:o}=e;return{getRowCount:()=>a.length,getRow:e=>t[a[e]],getSourceIndex:e=>{let t=a[e];return t>=0?t:void 0},getRowKey:e=>{let s=a[e];if(r(s)){let e=o[i(s)];return n(e.row,e.sourceIndex)}return n(t[s],s)},getLabelRow:e=>{let t=a[e];return r(t)?o[i(t)]:void 0}}},c=(e,t,n)=>{let r=new WeakMap,i=i=>{let a=e.getRow(i);if(a===void 0)return;let o=e.getSourceIndex(i);if(!t(a,o))return;let s=typeof a==`object`&&!!a,c=s?r.get(a):void 0;if(c)return c;let l={kind:`label`,row:a,sourceIndex:o,label:n(a),sectionRowCount:void 0};return s&&r.set(a,l),l};return{getRowCount:e.getRowCount,getRow:t=>i(t)?void 0:e.getRow(t),getSourceIndex:t=>i(t)?void 0:e.getSourceIndex(t),getRowKey:e.getRowKey,getGroupRow:e.getGroupRow,getLabelRow:i}},l=(e,t)=>{let n=0,r=e.length;for(;n<r;){let i=n+r>>>1;e[i]<t?n=i+1:r=i}return n},u=(e,t)=>t-l(e,t)+1,d=(e,t)=>{let n=l(e,t+1);return n>0?e[n-1]:-1},f=(e,t,n)=>{let r=[],i=e.getRowCount(),a=t;for(;r.length<n;)(a>=i||!e.getLabelRow?.(a))&&r.push(a),a+=1;return r},p=(e,t,n)=>{if(e.length===0||t.rowCount<=0||n<=0)return null;let r=l(e,t.rowAtContentY(n)+1);if(r===0)return null;let i=e[r-1];if(t.rowTop(i)>=n)return null;let a=t.cellHeight(i),o=0;if(r<e.length){let i=t.rowTop(e[r])-n;i<a&&(o=Math.min(a,Math.max(a-i,0)))}return{labelViewIndex:i,height:a,pushOffset:o}};exports.buildLabelDisplay=o,exports.countLabelsBefore=l,exports.createLabelFreeOrder=t,exports.createLabelRowModel=s,exports.isLabelOrderValue=r,exports.isSameOrder=n,exports.labelIndexOfOrderValue=i,exports.resolveDataRowNumber=u,exports.resolveLabelRowLayout=e,exports.resolvePasteTargetViewIndexes=f,exports.resolveSectionLabelViewIndex=d,exports.resolveStickyLabel=p,exports.wrapRowModelWithLabelRows=c;
@@ -0,0 +1,45 @@
1
+ import type { GridLabelRow, GridRowKey, LabelRowSortMode, RowModel } from '../model/gridTypes.unbound';
2
+ import type { RowOrder } from './filtering';
3
+ export type LabelRowLayout = {
4
+ labelIndexes: Int32Array;
5
+ sectionBySource: Int32Array;
6
+ dataRowCount: number;
7
+ };
8
+ export declare const resolveLabelRowLayout: <T>(rows: readonly T[], isLabelRow: (row: T, sourceIndex: number) => boolean) => LabelRowLayout | null;
9
+ export declare const createLabelFreeOrder: (layout: LabelRowLayout, rowCount: number) => RowOrder;
10
+ export declare const isSameOrder: (order: ArrayLike<number>, baseOrder: ArrayLike<number>) => boolean;
11
+ export type LabelDisplay<T> = {
12
+ displayOrder: Int32Array;
13
+ labels: GridLabelRow<T>[];
14
+ labelViewIndexes: Int32Array;
15
+ };
16
+ export declare const isLabelOrderValue: (value: number) => boolean;
17
+ export declare const labelIndexOfOrderValue: (value: number) => number;
18
+ export type BuildLabelDisplayArgs<T> = {
19
+ rows: readonly T[];
20
+ order: RowOrder;
21
+ layout: LabelRowLayout;
22
+ sortMode: LabelRowSortMode;
23
+ keepEmptySections: boolean;
24
+ sortActive: boolean;
25
+ getLabel: (row: T) => string;
26
+ };
27
+ export declare const buildLabelDisplay: <T>({ rows, order, layout, sortMode, keepEmptySections, sortActive, getLabel, }: BuildLabelDisplayArgs<T>) => LabelDisplay<T>;
28
+ export declare const createLabelRowModel: <T>(display: LabelDisplay<T>, rows: readonly T[], rowKeyGetter: (row: T, index: number) => GridRowKey) => RowModel<T>;
29
+ export declare const wrapRowModelWithLabelRows: <T>(base: RowModel<T>, isLabelRow: (row: T, sourceIndex: number) => boolean, getLabel: (row: T) => string) => RowModel<T>;
30
+ export declare const countLabelsBefore: (labelViewIndexes: ArrayLike<number>, viewIndex: number) => number;
31
+ export declare const resolveDataRowNumber: (labelViewIndexes: ArrayLike<number>, viewIndex: number) => number;
32
+ export declare const resolveSectionLabelViewIndex: (labelViewIndexes: ArrayLike<number>, viewIndex: number) => number;
33
+ export declare const resolvePasteTargetViewIndexes: <T>(rowModel: RowModel<T>, startViewIndex: number, count: number) => number[];
34
+ export type StickyLabelResolution = {
35
+ labelViewIndex: number;
36
+ height: number;
37
+ pushOffset: number;
38
+ };
39
+ export type StickyLabelMetrics = {
40
+ rowCount: number;
41
+ rowTop: (index: number) => number;
42
+ cellHeight: (index: number) => number;
43
+ rowAtContentY: (y: number) => number;
44
+ };
45
+ export declare const resolveStickyLabel: (labelViewIndexes: ArrayLike<number>, rowMetrics: StickyLabelMetrics, logicalScrollTop: number) => StickyLabelResolution | null;
@@ -0,0 +1,157 @@
1
+ //#region src/logic/labelRows.ts
2
+ var e = (e, t) => {
3
+ let n = e.length, r = [], i = new Int32Array(n), a = 0;
4
+ for (let o = 0; o < n; o += 1) t(e[o], o) && (r.push(o), a += 1), i[o] = a;
5
+ return r.length === 0 ? null : {
6
+ labelIndexes: Int32Array.from(r),
7
+ sectionBySource: i,
8
+ dataRowCount: n - r.length
9
+ };
10
+ }, t = (e, t) => {
11
+ let n = new Int32Array(e.dataRowCount), { labelIndexes: r } = e, i = 0, a = 0;
12
+ for (let e = 0; e < t; e += 1) {
13
+ if (i < r.length && r[i] === e) {
14
+ i += 1;
15
+ continue;
16
+ }
17
+ n[a] = e, a += 1;
18
+ }
19
+ return n;
20
+ }, n = (e, t) => {
21
+ if (e.length !== t.length) return !1;
22
+ for (let n = 0; n < e.length; n += 1) if (e[n] !== t[n]) return !1;
23
+ return !0;
24
+ }, r = (e) => e < 0, i = (e) => -e - 1, a = (e, t, n, r) => ({
25
+ kind: "label",
26
+ row: e[t],
27
+ sourceIndex: t,
28
+ label: n(e[t]),
29
+ sectionRowCount: r
30
+ }), o = ({ rows: e, order: t, layout: n, sortMode: r, keepEmptySections: i, sortActive: o, getLabel: s }) => {
31
+ let { labelIndexes: c, sectionBySource: l, dataRowCount: u } = n, d = c.length, f = d + 1, p = t.length !== u, m = o || p, h = [], g = [], _ = [], v = (t, n) => {
32
+ g.push(a(e, c[t], s, n)), _.push(h.length), h.push(-g.length);
33
+ }, y = () => ({
34
+ displayOrder: Int32Array.from(h),
35
+ labels: g,
36
+ labelViewIndexes: Int32Array.from(_)
37
+ });
38
+ if (r === "hide" && m) return {
39
+ displayOrder: t,
40
+ labels: g,
41
+ labelViewIndexes: /* @__PURE__ */ new Int32Array()
42
+ };
43
+ let b = new Int32Array(f);
44
+ for (let e = 0; e < t.length; e += 1) b[l[t[e]]] += 1;
45
+ let x = (e) => b[e + 1] > 0 || i || !p;
46
+ if (r === "follow" && m) {
47
+ let e = new Int32Array(f).fill(-1);
48
+ for (let n = 0; n < t.length; n += 1) {
49
+ let r = l[t[n]];
50
+ e[r] === -1 && (e[r] = n);
51
+ }
52
+ let n = /* @__PURE__ */ new Map();
53
+ for (let t = 0; t < d; t += 1) {
54
+ let r = e[t + 1];
55
+ r !== -1 && n.set(r, t);
56
+ }
57
+ let r = 0, a = (t) => {
58
+ for (; r < t;) i && e[r + 1] === -1 && v(r, 0), r += 1;
59
+ };
60
+ for (let e = 0; e < t.length; e += 1) {
61
+ let i = n.get(e);
62
+ i !== void 0 && (a(i), r = Math.max(r, i + 1), v(i, b[i + 1])), h.push(t[e]);
63
+ }
64
+ return a(d), y();
65
+ }
66
+ let S = new Int32Array(f + 1);
67
+ for (let e = 0; e < f; e += 1) S[e + 1] = S[e] + b[e];
68
+ let C = new Int32Array(t.length), w = S.slice(0, f);
69
+ for (let e = 0; e < t.length; e += 1) {
70
+ let n = l[t[e]];
71
+ C[w[n]] = t[e], w[n] += 1;
72
+ }
73
+ for (let e = 0; e < f; e += 1) if (!(e > 0 && !x(e - 1))) {
74
+ e > 0 && v(e - 1, b[e]);
75
+ for (let t = S[e]; t < S[e + 1]; t += 1) h.push(C[t]);
76
+ }
77
+ return y();
78
+ }, s = (e, t, n) => {
79
+ let { displayOrder: a, labels: o } = e;
80
+ return {
81
+ getRowCount: () => a.length,
82
+ getRow: (e) => t[a[e]],
83
+ getSourceIndex: (e) => {
84
+ let t = a[e];
85
+ return t >= 0 ? t : void 0;
86
+ },
87
+ getRowKey: (e) => {
88
+ let s = a[e];
89
+ if (r(s)) {
90
+ let e = o[i(s)];
91
+ return n(e.row, e.sourceIndex);
92
+ }
93
+ return n(t[s], s);
94
+ },
95
+ getLabelRow: (e) => {
96
+ let t = a[e];
97
+ return r(t) ? o[i(t)] : void 0;
98
+ }
99
+ };
100
+ }, c = (e, t, n) => {
101
+ let r = /* @__PURE__ */ new WeakMap(), i = (i) => {
102
+ let a = e.getRow(i);
103
+ if (a === void 0) return;
104
+ let o = e.getSourceIndex(i);
105
+ if (!t(a, o)) return;
106
+ let s = typeof a == "object" && !!a, c = s ? r.get(a) : void 0;
107
+ if (c) return c;
108
+ let l = {
109
+ kind: "label",
110
+ row: a,
111
+ sourceIndex: o,
112
+ label: n(a),
113
+ sectionRowCount: void 0
114
+ };
115
+ return s && r.set(a, l), l;
116
+ };
117
+ return {
118
+ getRowCount: e.getRowCount,
119
+ getRow: (t) => i(t) ? void 0 : e.getRow(t),
120
+ getSourceIndex: (t) => i(t) ? void 0 : e.getSourceIndex(t),
121
+ getRowKey: e.getRowKey,
122
+ getGroupRow: e.getGroupRow,
123
+ getLabelRow: i
124
+ };
125
+ }, l = (e, t) => {
126
+ let n = 0, r = e.length;
127
+ for (; n < r;) {
128
+ let i = n + r >>> 1;
129
+ e[i] < t ? n = i + 1 : r = i;
130
+ }
131
+ return n;
132
+ }, u = (e, t) => t - l(e, t) + 1, d = (e, t) => {
133
+ let n = l(e, t + 1);
134
+ return n > 0 ? e[n - 1] : -1;
135
+ }, f = (e, t, n) => {
136
+ let r = [], i = e.getRowCount(), a = t;
137
+ for (; r.length < n;) (a >= i || !e.getLabelRow?.(a)) && r.push(a), a += 1;
138
+ return r;
139
+ }, p = (e, t, n) => {
140
+ if (e.length === 0 || t.rowCount <= 0 || n <= 0) return null;
141
+ let r = l(e, t.rowAtContentY(n) + 1);
142
+ if (r === 0) return null;
143
+ let i = e[r - 1];
144
+ if (t.rowTop(i) >= n) return null;
145
+ let a = t.cellHeight(i), o = 0;
146
+ if (r < e.length) {
147
+ let i = t.rowTop(e[r]) - n;
148
+ i < a && (o = Math.min(a, Math.max(a - i, 0)));
149
+ }
150
+ return {
151
+ labelViewIndex: i,
152
+ height: a,
153
+ pushOffset: o
154
+ };
155
+ };
156
+ //#endregion
157
+ export { o as buildLabelDisplay, l as countLabelsBefore, t as createLabelFreeOrder, s as createLabelRowModel, r as isLabelOrderValue, n as isSameOrder, i as labelIndexOfOrderValue, u as resolveDataRowNumber, e as resolveLabelRowLayout, f as resolvePasteTargetViewIndexes, d as resolveSectionLabelViewIndex, p as resolveStickyLabel, c as wrapRowModelWithLabelRows };