@platforma-sdk/ui-vue 1.79.34 → 1.80.1

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.
Files changed (51) hide show
  1. package/.turbo/turbo-build.log +19 -19
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +23 -0
  6. package/dist/components/PlAdvancedFilter/FilterEditor.js.map +1 -1
  7. package/dist/components/PlAdvancedFilter/FilterEditor.style.js.map +1 -1
  8. package/dist/components/PlAdvancedFilter/FilterEditor.vue.d.ts.map +1 -1
  9. package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js +124 -113
  10. package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js.map +1 -1
  11. package/dist/components/PlAdvancedFilter/types.d.ts +1 -1
  12. package/dist/components/PlAdvancedFilter/types.d.ts.map +1 -1
  13. package/dist/components/PlAdvancedFilter/utils.d.ts +1 -1
  14. package/dist/components/PlAdvancedFilter/utils.d.ts.map +1 -1
  15. package/dist/components/PlAdvancedFilter/utils.js.map +1 -1
  16. package/dist/components/PlAgDataTable/PlAgDataTableV2.js.map +1 -1
  17. package/dist/components/PlAgDataTable/PlAgDataTableV2.style.js.map +1 -1
  18. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
  19. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +125 -121
  20. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
  21. package/dist/components/PlAgDataTable/compositions/useFilterableColumns.d.ts +4 -4
  22. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts +40 -4
  23. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts.map +1 -1
  24. package/dist/components/PlAgDataTable/sources/table-source-v2.js +91 -56
  25. package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
  26. package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts.map +1 -1
  27. package/dist/components/PlAgDataTable/sources/table-state-v2.js +64 -64
  28. package/dist/components/PlAgDataTable/sources/table-state-v2.js.map +1 -1
  29. package/dist/components/PlAgDataTable/sources/value-rendering.d.ts +3 -3
  30. package/dist/components/PlAgDataTable/sources/value-rendering.d.ts.map +1 -1
  31. package/dist/components/PlAgDataTable/sources/value-rendering.js +12 -12
  32. package/dist/components/PlAgDataTable/sources/value-rendering.js.map +1 -1
  33. package/dist/components/PlTableFilters/PlTableFiltersV2.js.map +1 -1
  34. package/dist/components/PlTableFilters/PlTableFiltersV2.style.js.map +1 -1
  35. package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts.map +1 -1
  36. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +42 -45
  37. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
  38. package/dist/internal/service_factories.d.ts +4 -3
  39. package/dist/internal/service_factories.d.ts.map +1 -1
  40. package/dist/internal/service_factories.js +6 -4
  41. package/dist/internal/service_factories.js.map +1 -1
  42. package/package.json +8 -7
  43. package/src/components/PlAdvancedFilter/FilterEditor.vue +39 -10
  44. package/src/components/PlAdvancedFilter/types.ts +3 -2
  45. package/src/components/PlAdvancedFilter/utils.ts +1 -1
  46. package/src/components/PlAgDataTable/PlAgDataTableV2.vue +21 -5
  47. package/src/components/PlAgDataTable/sources/table-source-v2.ts +132 -31
  48. package/src/components/PlAgDataTable/sources/table-state-v2.ts +5 -7
  49. package/src/components/PlAgDataTable/sources/value-rendering.ts +7 -7
  50. package/src/components/PlTableFilters/PlTableFiltersV2.vue +9 -13
  51. package/src/internal/service_factories.ts +2 -0
@@ -1,17 +1,18 @@
1
- import { AxesSpec, PTableColumnSpecColumn, PTableHandle, PTableValue, PFrameDriver, PlDataTableSheet, AxisId, PTableColumnSpec, PTableKey, PlTableColumnIdJson } from '@platforma-sdk/model';
1
+ import { AnnotationDataStatus, AxesSpec, PlDataTableColumnsMeta, PTableColumnSpecColumn, PTableHandle, PTableValue, PFrameDriver, PlDataTableSheet, AxisId, PTableColumnSpec, PTableKey, PlTableColumnIdJson } from '@platforma-sdk/model';
2
2
  import { ColDef, GridApi, ManagedGridOptions } from 'ag-grid-enterprise';
3
3
  import { PlAgDataTableV2Row } from '../types';
4
4
  import { PTableHidden } from './common';
5
5
  import { Ref } from 'vue';
6
6
  import { DeferredCircular } from './focus-row';
7
- export declare function isLabelColumn(column: PTableColumnSpec): column is PTableColumnSpecColumn;
8
7
  /** Calculate GridOptions for selected p-table data source */
9
- export declare function calculateGridOptions({ generation, pfDriver, sheets, fullTableHandle, visibleTableHandle, dataRenderedTracker, hiddenColIds, cellButtonAxisParams, }: {
8
+ export declare function calculateGridOptions({ generation, pfDriver, sheets, fullTableHandle, visibleTableHandle, columnsMeta, dataRenderedTracker, hiddenColIds, cellButtonAxisParams, }: {
10
9
  sheets: PlDataTableSheet[];
11
10
  pfDriver: PFrameDriver;
12
11
  generation: Ref<number>;
13
12
  fullTableHandle: PTableHandle;
14
13
  visibleTableHandle: PTableHandle;
14
+ /** Sidecar display metadata (label/visibility/order/status/hidden axes) from the model. */
15
+ columnsMeta?: PlDataTableColumnsMeta;
15
16
  dataRenderedTracker: DeferredCircular<GridApi<PlAgDataTableV2Row>>;
16
17
  hiddenColIds?: PlTableColumnIdJson[];
17
18
  cellButtonAxisParams?: PlAgCellButtonAxisParams;
@@ -26,5 +27,40 @@ export type PlAgCellButtonAxisParams = {
26
27
  /**
27
28
  * Calculates column definition for a given p-table column
28
29
  */
29
- export declare function makeColDef(iCol: number, spec: PTableColumnSpec, hiddenColIds: PlTableColumnIdJson[] | undefined, cellButtonAxisParams?: PlAgCellButtonAxisParams): ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>;
30
+ export declare function makeColDef({ iCol, spec, dataStatus, hiddenColIds, cellButtonAxisParams, columnsMeta, }: {
31
+ iCol: number;
32
+ spec: PTableColumnSpec;
33
+ /** Per-column rendering status from the model; `undefined` for hidden cols. */
34
+ dataStatus: AnnotationDataStatus | undefined;
35
+ hiddenColIds: PlTableColumnIdJson[] | undefined;
36
+ cellButtonAxisParams?: PlAgCellButtonAxisParams;
37
+ /** Sidecar meta used to resolve the effective header label. */
38
+ columnsMeta?: PlDataTableColumnsMeta;
39
+ }): ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>;
40
+ export declare function isLabelColumn(column: PTableColumnSpec): column is PTableColumnSpecColumn;
41
+ /**
42
+ * Effective column label: sidecar override wins over intrinsic spec
43
+ * annotation. Axes have no label override in the sidecar — they fall through
44
+ * to `pl7.app/label` on the axis spec.
45
+ */
46
+ export declare function effectiveLabel(spec: PTableColumnSpec, meta: PlDataTableColumnsMeta | undefined): string | undefined;
47
+ /**
48
+ * Effective visibility. For columns: sidecar override wins over the intrinsic
49
+ * `pl7.app/table/visibility` annotation. For axes: `meta.axes[id].hidden`
50
+ * forces hidden; otherwise the intrinsic axis annotation rules.
51
+ *
52
+ * Kept out of the spec on purpose — baking visibility into a column spec via
53
+ * override changes its `ColumnUniversalId`, so the same physical column reached
54
+ * two ways (e.g. as primary and as a discovered label) would diverge into two
55
+ * ids and render twice. The sidecar preserves identity; readers apply this at
56
+ * use sites.
57
+ */
58
+ export declare function effectiveVisibility(spec: PTableColumnSpec, meta: PlDataTableColumnsMeta | undefined): "default" | "optional" | "hidden";
59
+ /**
60
+ * Effective order priority — number suitable for left-to-right comparison
61
+ * (higher = further left). Sidecar override on columns wins over the
62
+ * intrinsic `pl7.app/table/orderPriority`; axes have no override.
63
+ * `undefined` when neither source supplied a value (consumer decides default).
64
+ */
65
+ export declare function effectiveOrder(spec: PTableColumnSpec, meta: PlDataTableColumnsMeta | undefined): number | undefined;
30
66
  //# sourceMappingURL=table-source-v2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-source-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-source-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAGR,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,mBAAmB,EAWzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAEV,MAAM,EACN,OAAO,EAIP,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAIxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,sBAAsB,CAExF;AA6BD,6DAA6D;AAC7D,wBAAsB,oBAAoB,CAAC,EACzC,UAAU,EACV,QAAQ,EACR,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,EAAE;IACD,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,YAAY,CAAC;IAC9B,kBAAkB,EAAE,YAAY,CAAC;IACjC,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnE,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;CACjD,GAAG,OAAO,CACT,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,YAAY,GAAG,sBAAsB,CAAC,GAAG;IACpF,QAAQ,EAAE,QAAQ,CAAC;CACpB,CACF,CAkHA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAC/C,oBAAoB,CAAC,EAAE,wBAAwB,GAC9C,MAAM,CAAC,kBAAkB,EAAE,WAAW,GAAG,YAAY,CAAC,CAkFxD"}
1
+ {"version":3,"file":"table-source-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-source-v2.ts"],"names":[],"mappings":"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"}
@@ -22,119 +22,152 @@ function C(e, t, n, r) {
22
22
  }
23
23
  return i;
24
24
  }
25
- async function w({ generation: r, pfDriver: i, sheets: a, fullTableHandle: o, visibleTableHandle: s, dataRenderedTracker: c, hiddenColIds: l, cellButtonAxisParams: u }) {
26
- let d = r.value, [f, p] = await Promise.all([i.getSpec(o), i.getSpec(s)]);
27
- if (d !== r.value) throw Error("table state generation changed");
28
- let m = E(f, p), h = D(a), g = A(k(f, h, O(f, h)), f), _ = l ?? j(g, f), v = [n(), ...g.map((e) => T(e, f[e], _, u))], y = M(p), { requestIndices: b, axesResultIndices: x, fieldResultMapping: S } = N(g, y.map(([e]) => e), m), w = -1, P;
25
+ async function w({ generation: r, pfDriver: i, sheets: a, fullTableHandle: o, visibleTableHandle: s, columnsMeta: c, dataRenderedTracker: l, hiddenColIds: u, cellButtonAxisParams: d }) {
26
+ let f = r.value, [p, m] = await Promise.all([i.getSpec(o), i.getSpec(s)]);
27
+ if (f !== r.value) throw Error("table state generation changed");
28
+ let h = p, g = m, _ = k(h, g), v = A(a), y = N(M(h, v, j(h, v), c), h, c), b = u ?? P(y, h, c), x = [n(), ...y.map((e) => {
29
+ let t = h[e];
30
+ return T({
31
+ iCol: e,
32
+ spec: t,
33
+ dataStatus: (_.get(e) ?? -1) >= 0 && t.type === "column" ? c?.columns[t.id]?.status : void 0,
34
+ hiddenColIds: b,
35
+ cellButtonAxisParams: d,
36
+ columnsMeta: c
37
+ });
38
+ })], S = F(g), { requestIndices: w, axesResultIndices: E, fieldResultMapping: D } = I(y, S.map(([e]) => e), _), O = -1, L;
29
39
  return {
30
- axesSpec: y.map(([, { spec: e }]) => e),
31
- columnDefs: v,
40
+ axesSpec: S.map(([, { spec: e }]) => e),
41
+ columnDefs: x,
32
42
  serverSideDatasource: { getRows: async (n) => {
33
- if (d !== r.value) return n.fail();
43
+ if (f !== r.value) return n.fail();
34
44
  try {
35
- if (w === -1) {
45
+ if (O === -1) {
36
46
  let e = await i.getShape(s);
37
- if (d !== r.value || n.api.isDestroyed()) return n.fail();
38
- w = e.rows;
47
+ if (f !== r.value || n.api.isDestroyed()) return n.fail();
48
+ O = e.rows;
39
49
  }
40
- if (w == 0) {
50
+ if (O == 0) {
41
51
  n.success({
42
52
  rowData: [],
43
- rowCount: w
53
+ rowCount: O
44
54
  }), n.api.setGridOption("loading", !1), n.api.showNoRowsOverlay();
45
55
  return;
46
56
  }
47
- if (P && !e(P.request.sortModel, n.request.sortModel)) return n.success({
57
+ if (L && !e(L.request.sortModel, n.request.sortModel)) return n.success({
48
58
  rowData: [],
49
- rowCount: w
59
+ rowCount: O
50
60
  });
51
- P = n;
61
+ L = n;
52
62
  let a = 0, o = [];
53
- if (w > 0 && n.request.startRow !== void 0 && n.request.endRow !== void 0 && (a = Math.min(w, n.request.endRow) - n.request.startRow, a > 0)) {
54
- let e = await i.getData(s, b, {
63
+ if (O > 0 && n.request.startRow !== void 0 && n.request.endRow !== void 0 && (a = Math.min(O, n.request.endRow) - n.request.startRow, a > 0)) {
64
+ let e = await i.getData(s, w, {
55
65
  offset: n.request.startRow,
56
66
  length: a
57
67
  });
58
- if (d !== r.value || n.api.isDestroyed()) return n.fail();
59
- o = C(g, e, S, x);
68
+ if (f !== r.value || n.api.isDestroyed()) return n.fail();
69
+ o = C(y, e, D, E);
60
70
  }
61
71
  n.success({
62
72
  rowData: o,
63
- rowCount: w
64
- }), n.api.autoSizeColumns(n.api.getAllDisplayedColumns().filter((e) => e.getColId() !== t)), n.api.setGridOption("loading", !1), c.resolve(n.api);
73
+ rowCount: O
74
+ }), n.api.autoSizeColumns(n.api.getAllDisplayedColumns().filter((e) => e.getColId() !== t)), n.api.setGridOption("loading", !1), l.resolve(n.api);
65
75
  } catch (e) {
66
- if (d !== r.value || n.api.isDestroyed()) return n.fail();
76
+ if (f !== r.value || n.api.isDestroyed()) return n.fail();
67
77
  n.api.setGridOption("loading", !0), n.fail(), console.trace(e);
68
78
  }
69
79
  } }
70
80
  };
71
81
  }
72
- function T(t, n, o, p) {
73
- let m = u(f(n)), g = n.type === "axis" ? n.spec.type : n.spec.valueType, _ = s(n), v = {};
74
- _.fontFamily && (_.fontFamily === "monospace" ? (v.fontFamily = "Spline Sans Mono", v.fontWeight = 300) : v.fontFamily = _.fontFamily);
75
- let b = y(n.spec, c.Label)?.trim() ?? `Unlabeled ${n.type} ${t}`;
82
+ function T({ iCol: t, spec: n, dataStatus: o, hiddenColIds: p, cellButtonAxisParams: m, columnsMeta: g }) {
83
+ let _ = u(f(n)), v = n.type === "axis" ? n.spec.type : n.spec.valueType, b = s(n, o), x = {};
84
+ b.fontFamily && (b.fontFamily === "monospace" ? (x.fontFamily = "Spline Sans Mono", x.fontWeight = 300) : x.fontFamily = b.fontFamily);
85
+ let S = E(n, g)?.trim() ?? `Unlabeled ${n.type} ${t}`;
76
86
  return {
77
- colId: m,
87
+ colId: _,
78
88
  mainMenuItems: r,
79
89
  context: n,
80
90
  field: `${t}`,
81
- headerName: b,
91
+ headerName: S,
82
92
  lockPosition: n.type === "axis" || h(n.spec) && n.spec.axesSpec.length === 1,
83
- hide: o !== void 0 && o.includes(m),
84
- valueFormatter: _.valueFormatter,
93
+ hide: p !== void 0 && p.includes(_),
94
+ valueFormatter: b.valueFormatter,
85
95
  headerComponent: i,
86
- cellRendererSelector: p?.showCellButtonForAxisId ? () => {
96
+ cellRendererSelector: m?.showCellButtonForAxisId ? () => {
87
97
  let t = n.type === "axis" ? n.id : h(n.spec) && n.spec.axesSpec.length === 1 ? d(n.spec.axesSpec[0]) : void 0;
88
- if (t && e(t, p.showCellButtonForAxisId)) return {
98
+ if (t && e(t, m.showCellButtonForAxisId)) return {
89
99
  component: a,
90
100
  params: {
91
- invokeRowsOnDoubleClick: p.cellButtonInvokeRowsOnDoubleClick,
101
+ invokeRowsOnDoubleClick: m.cellButtonInvokeRowsOnDoubleClick,
92
102
  onClick: (e) => {
93
- p.trigger(e.data?.axesKey);
103
+ m.trigger(e.data?.axesKey);
94
104
  }
95
105
  }
96
106
  };
97
107
  } : void 0,
98
- cellStyle: v,
108
+ cellStyle: x,
99
109
  headerComponentParams: {
100
110
  type: (() => {
101
- switch (g) {
111
+ switch (v) {
102
112
  case l.Int:
103
113
  case l.Long:
104
114
  case l.Float:
105
115
  case l.Double: return "Number";
106
116
  case l.String:
107
117
  case l.Bytes: return "Text";
108
- default: throw Error(`unsupported data type: ${g}`);
118
+ default: throw Error(`unsupported data type: ${v}`);
109
119
  }
110
120
  })(),
111
121
  tooltip: y(n.spec, c.Description)?.trim()
112
122
  },
113
123
  cellDataType: (() => {
114
- switch (g) {
124
+ switch (v) {
115
125
  case l.Int:
116
126
  case l.Long:
117
127
  case l.Float:
118
128
  case l.Double: return "number";
119
129
  case l.String:
120
130
  case l.Bytes: return "text";
121
- default: throw Error(`unsupported data type: ${g}`);
131
+ default: throw Error(`unsupported data type: ${v}`);
122
132
  }
123
133
  })()
124
134
  };
125
135
  }
126
136
  function E(e, t) {
137
+ if (e.type === "column") {
138
+ let n = t?.columns[e.id]?.label;
139
+ if (n !== void 0) return n;
140
+ }
141
+ return y(e.spec, c.Label);
142
+ }
143
+ function D(e, t) {
144
+ if (e.type === "axis") {
145
+ if (t?.axes[u(d(e.id))]?.hidden === !0) return "hidden";
146
+ } else {
147
+ let n = t?.columns[e.id]?.visibility;
148
+ if (n !== void 0) return n;
149
+ }
150
+ return p(e.spec) ? "hidden" : m(e.spec) ? "optional" : "default";
151
+ }
152
+ function O(e, t) {
153
+ if (e.type === "column") {
154
+ let n = t?.columns[e.id]?.order;
155
+ if (n !== void 0) return n;
156
+ }
157
+ return b(e.spec, c.Table.OrderPriority);
158
+ }
159
+ function k(e, t) {
127
160
  let n = (e) => u(f(e)), r = new Map(t.entries().map(([e, t]) => [n(t), e]));
128
161
  return new Map(e.entries().map(([e, t]) => {
129
162
  let i = r.get(n(t));
130
163
  return [e, x(i) ? -1 : i];
131
164
  }));
132
165
  }
133
- function D(e) {
166
+ function A(e) {
134
167
  let t = e.map((e) => d(e.axis));
135
168
  return (e) => t.some((t) => _(t, e));
136
169
  }
137
- function O(e, t) {
170
+ function j(e, t) {
138
171
  let n = [];
139
172
  for (let [r, i] of e.entries()) {
140
173
  if (i.type !== "column" || !h(i.spec)) continue;
@@ -152,31 +185,33 @@ function O(e, t) {
152
185
  }
153
186
  return (e) => n.find((t) => _(t.axisId, e))?.labelColumnIdx ?? -1;
154
187
  }
155
- function k(e, t, n) {
188
+ function M(e, t, n, r) {
156
189
  return e.entries().filter(([, e]) => {
157
190
  switch (e.type) {
158
- case "axis": return !(n(e.id) > -1 || p(e.spec)) && !t(e.id);
159
- case "column": return !p(e.spec) && !g(e.spec);
191
+ case "axis": return !(n(e.id) > -1 || D(e, r) === "hidden") && !t(e.id);
192
+ case "column": return D(e, r) !== "hidden" && !g(e.spec);
160
193
  }
161
194
  }).map(([e]) => e).toArray();
162
195
  }
163
- function A(e, t) {
164
- let n = (e) => {
165
- let n = t[e], r = n.type === "axis" || h(n.spec) ? Infinity : Number(b(n.spec, c.Table.OrderPriority));
166
- return isNaN(r) ? 0 : r;
196
+ function N(e, t, n) {
197
+ let r = (e) => {
198
+ let r = t[e];
199
+ if (r.type === "axis" || h(r.spec)) return Infinity;
200
+ let i = Number(O(r, n));
201
+ return isNaN(i) ? 0 : i;
167
202
  };
168
- return [...e].sort((e, t) => n(t) - n(e));
203
+ return [...e].sort((e, t) => r(t) - r(e));
169
204
  }
170
- function j(e, t) {
171
- return e.reduce((e, n) => {
172
- let r = t[n];
173
- return r.type === "column" && m(r.spec) ? [...e, u(f(r))] : e;
205
+ function P(e, t, n) {
206
+ return e.reduce((e, r) => {
207
+ let i = t[r];
208
+ return i.type === "column" && D(i, n) === "optional" && e.push(u(f(i))), e;
174
209
  }, []);
175
210
  }
176
- function M(e) {
211
+ function F(e) {
177
212
  return e.entries().filter((e) => e[1].type === "axis").toArray();
178
213
  }
179
- function N(e, t, n) {
214
+ function I(e, t, n) {
180
215
  let r = e.map((e) => {
181
216
  let t = n.get(e);
182
217
  return x(t) || t === -1 ? null : t;
@@ -188,6 +223,6 @@ function N(e, t, n) {
188
223
  };
189
224
  }
190
225
  //#endregion
191
- export { w as calculateGridOptions };
226
+ export { w as calculateGridOptions, D as effectiveVisibility };
192
227
 
193
228
  //# sourceMappingURL=table-source-v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-source-v2.js","names":[],"sources":["../../../../src/components/PlAgDataTable/sources/table-source-v2.ts"],"sourcesContent":["import type {\n AxesSpec,\n PTableColumnId,\n PTableColumnSpecAxis,\n PTableColumnSpecColumn,\n PTableHandle,\n PTableValue,\n} from \"@platforma-sdk/model\";\nimport {\n canonicalizeJson,\n getAxisId,\n pTableValue,\n type PFrameDriver,\n type PlDataTableSheet,\n type PTableVector,\n type AxisId,\n type PTableColumnSpec,\n type PTableKey,\n type PlTableColumnIdJson,\n isLabelColumn as isLabelColumnSpec,\n isLinkerColumn as isLinkerColumnSpec,\n isColumnHidden,\n isColumnOptional,\n matchAxisId,\n readAnnotation,\n readAnnotationJson,\n Annotation,\n ValueType,\n getPTableColumnId,\n} from \"@platforma-sdk/model\";\nimport type {\n CellStyle,\n ColDef,\n GridApi,\n ICellRendererParams,\n IServerSideDatasource,\n IServerSideGetRowsParams,\n ManagedGridOptions,\n} from \"ag-grid-enterprise\";\nimport type { PlAgHeaderComponentParams, PlAgHeaderComponentType } from \"../../PlAgColumnHeader\";\nimport { PlAgColumnHeader } from \"../../PlAgColumnHeader\";\nimport { PlAgTextAndButtonCell } from \"../../PlAgTextAndButtonCell\";\nimport type { PlAgDataTableV2Row, PlTableRowId } from \"../types\";\nimport { PTableHidden } from \"./common\";\nimport { defaultMainMenuItems } from \"./menu-items\";\nimport { makeRowNumberColDef, PlAgDataTableRowNumberColId } from \"./row-number\";\nimport { getColumnRenderingSpec } from \"./value-rendering\";\nimport type { Ref } from \"vue\";\nimport { isJsonEqual } from \"@milaboratories/helpers\";\nimport type { DeferredCircular } from \"./focus-row\";\nimport { isNil, uniq } from \"es-toolkit\";\n\nexport function isLabelColumn(column: PTableColumnSpec): column is PTableColumnSpecColumn {\n return column.type === \"column\" && isLabelColumnSpec(column.spec);\n}\n\n/** Convert columnar data from the driver to rows, used by ag-grid */\nfunction columns2rows(\n fields: number[],\n columns: PTableVector[],\n fieldResultMapping: number[],\n axesResultIndices: number[],\n): PlAgDataTableV2Row[] {\n const rowData: PlAgDataTableV2Row[] = [];\n for (let rowIdx = 0; rowIdx < columns[0].data.length; ++rowIdx) {\n const axesKey: PTableKey = axesResultIndices.map((ri) => pTableValue(columns[ri], rowIdx));\n const id = canonicalizeJson<PlTableRowId>(axesKey);\n const row = fields.reduce<PlAgDataTableV2Row>(\n (acc, field, colIdx) => {\n acc[field.toString() as `${number}`] =\n fieldResultMapping[colIdx] === -1\n ? PTableHidden\n : pTableValue(columns[fieldResultMapping[colIdx]], rowIdx);\n return acc;\n },\n { id, axesKey },\n );\n\n rowData.push(row);\n }\n return rowData;\n}\n\n/** Calculate GridOptions for selected p-table data source */\nexport async function calculateGridOptions({\n generation,\n pfDriver,\n sheets,\n fullTableHandle,\n visibleTableHandle,\n dataRenderedTracker,\n hiddenColIds,\n cellButtonAxisParams,\n}: {\n sheets: PlDataTableSheet[];\n pfDriver: PFrameDriver;\n generation: Ref<number>;\n fullTableHandle: PTableHandle;\n visibleTableHandle: PTableHandle;\n dataRenderedTracker: DeferredCircular<GridApi<PlAgDataTableV2Row>>;\n hiddenColIds?: PlTableColumnIdJson[];\n cellButtonAxisParams?: PlAgCellButtonAxisParams;\n}): Promise<\n Pick<ManagedGridOptions<PlAgDataTableV2Row>, \"columnDefs\" | \"serverSideDatasource\"> & {\n axesSpec: AxesSpec;\n }\n> {\n const stateGeneration = generation.value;\n\n // get specs of the full table\n const [tableSpecs, visibleTableSpecs] = await Promise.all([\n pfDriver.getSpec(fullTableHandle),\n pfDriver.getSpec(visibleTableHandle),\n ]);\n\n if (stateGeneration !== generation.value) throw new Error(\"table state generation changed\");\n\n // index mapping from full specs to visible subset (hidden columns → -1)\n const specsToVisibleSpecsMapping = buildSpecsToVisibleSpecsMapping(tableSpecs, visibleTableSpecs);\n\n const isPartitionedAxis = createPartitionedAxisPredicate(sheets);\n\n // label columns indexed by labeled axis (used for displayability filter)\n const getLabelColumnIndex = collectLabelColumnsByAxis(tableSpecs, isPartitionedAxis);\n\n // displayable column indices ordered: axes first, then columns by OrderPriority\n const fields = sortIndicesByTypeAndPriority(\n selectDisplayableIndices(tableSpecs, isPartitionedAxis, getLabelColumnIndex),\n tableSpecs,\n );\n\n // default hidden columns derived from Optional annotation when no saved state\n const resolvedHiddenColIds = hiddenColIds ?? computeDefaultHiddenColIds(fields, tableSpecs);\n\n const columnDefs: ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>[] = [\n makeRowNumberColDef(),\n ...fields.map((field) =>\n makeColDef(field, tableSpecs[field], resolvedHiddenColIds, cellButtonAxisParams),\n ),\n ];\n\n // axes — taken directly from visible table (always present as part of join)\n const visibleAxes = collectVisibleAxes(visibleTableSpecs);\n\n // request indices: display fields + visible axes for row selection keys.\n const { requestIndices, axesResultIndices, fieldResultMapping } = buildRequestIndices(\n fields,\n visibleAxes.map(([idx]) => idx),\n specsToVisibleSpecsMapping,\n );\n\n let rowCount = -1;\n let lastParams: IServerSideGetRowsParams | undefined = undefined;\n const serverSideDatasource: IServerSideDatasource<PlAgDataTableV2Row> = {\n getRows: async (params: IServerSideGetRowsParams) => {\n if (stateGeneration !== generation.value) return params.fail();\n try {\n if (rowCount === -1) {\n const ptShape = await pfDriver.getShape(visibleTableHandle);\n if (stateGeneration !== generation.value || params.api.isDestroyed())\n return params.fail();\n rowCount = ptShape.rows;\n }\n\n if (rowCount == 0) {\n params.success({ rowData: [], rowCount });\n // Warning: AgGrid cannot show two overlays at once,\n // so first hide loading overlay, then show no rows overlay\n params.api.setGridOption(\"loading\", false);\n params.api.showNoRowsOverlay();\n return;\n }\n\n // If sort has changed - show skeletons instead of data\n if (lastParams && !isJsonEqual(lastParams.request.sortModel, params.request.sortModel)) {\n return params.success({ rowData: [], rowCount });\n }\n lastParams = params;\n\n let length = 0;\n let rowData: PlAgDataTableV2Row[] = [];\n if (\n rowCount > 0 &&\n params.request.startRow !== undefined &&\n params.request.endRow !== undefined\n ) {\n length = Math.min(rowCount, params.request.endRow) - params.request.startRow;\n if (length > 0) {\n const data = await pfDriver.getData(visibleTableHandle, requestIndices, {\n offset: params.request.startRow,\n length,\n });\n if (stateGeneration !== generation.value || params.api.isDestroyed())\n return params.fail();\n rowData = columns2rows(fields, data, fieldResultMapping, axesResultIndices);\n }\n }\n\n params.success({ rowData, rowCount });\n params.api.autoSizeColumns(\n params.api\n .getAllDisplayedColumns()\n .filter((column) => column.getColId() !== PlAgDataTableRowNumberColId),\n );\n params.api.setGridOption(\"loading\", false);\n dataRenderedTracker.resolve(params.api);\n } catch (error: unknown) {\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n params.api.setGridOption(\"loading\", true);\n params.fail();\n console.trace(error);\n }\n },\n };\n\n return {\n axesSpec: visibleAxes.map(([, { spec }]) => spec),\n columnDefs,\n serverSideDatasource,\n };\n}\n\nexport type PlAgCellButtonAxisParams = {\n showCellButtonForAxisId?: AxisId;\n cellButtonInvokeRowsOnDoubleClick?: boolean;\n trigger: (key?: PTableKey) => void;\n};\n\n/**\n * Calculates column definition for a given p-table column\n */\nexport function makeColDef(\n iCol: number,\n spec: PTableColumnSpec,\n hiddenColIds: PlTableColumnIdJson[] | undefined,\n cellButtonAxisParams?: PlAgCellButtonAxisParams,\n): ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden> {\n const colId = canonicalizeJson<PTableColumnId>(getPTableColumnId(spec));\n const valueType = spec.type === \"axis\" ? spec.spec.type : spec.spec.valueType;\n const columnRenderingSpec = getColumnRenderingSpec(spec);\n const cellStyle: CellStyle = {};\n if (columnRenderingSpec.fontFamily) {\n if (columnRenderingSpec.fontFamily === \"monospace\") {\n cellStyle.fontFamily = \"Spline Sans Mono\";\n cellStyle.fontWeight = 300;\n } else {\n cellStyle.fontFamily = columnRenderingSpec.fontFamily;\n }\n }\n const headerName =\n readAnnotation(spec.spec, Annotation.Label)?.trim() ?? `Unlabeled ${spec.type} ${iCol}`;\n\n return {\n colId,\n mainMenuItems: defaultMainMenuItems,\n context: spec,\n field: `${iCol}`,\n headerName,\n lockPosition:\n spec.type === \"axis\" || (isLabelColumnSpec(spec.spec) && spec.spec.axesSpec.length === 1),\n hide: hiddenColIds !== undefined && hiddenColIds.includes(colId),\n valueFormatter: columnRenderingSpec.valueFormatter,\n headerComponent: PlAgColumnHeader,\n cellRendererSelector: cellButtonAxisParams?.showCellButtonForAxisId\n ? () => {\n const axisId =\n spec.type === \"axis\"\n ? spec.id\n : isLabelColumnSpec(spec.spec) && spec.spec.axesSpec.length === 1\n ? getAxisId(spec.spec.axesSpec[0])\n : undefined;\n if (axisId && isJsonEqual(axisId, cellButtonAxisParams.showCellButtonForAxisId)) {\n return {\n component: PlAgTextAndButtonCell,\n params: {\n invokeRowsOnDoubleClick: cellButtonAxisParams.cellButtonInvokeRowsOnDoubleClick,\n onClick: (params: ICellRendererParams<PlAgDataTableV2Row>) => {\n cellButtonAxisParams.trigger(params.data?.axesKey);\n },\n },\n };\n }\n }\n : undefined,\n cellStyle,\n headerComponentParams: {\n type: ((): PlAgHeaderComponentType => {\n switch (valueType) {\n case ValueType.Int:\n case ValueType.Long:\n case ValueType.Float:\n case ValueType.Double:\n return \"Number\";\n case ValueType.String:\n case ValueType.Bytes:\n return \"Text\";\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n tooltip: readAnnotation(spec.spec, Annotation.Description)?.trim(),\n // info: readAnnotation(spec.spec, Annotation.Table.Info)?.trim(),\n } satisfies PlAgHeaderComponentParams,\n cellDataType: (() => {\n switch (valueType) {\n case ValueType.Int:\n case ValueType.Long:\n case ValueType.Float:\n case ValueType.Double:\n return \"number\";\n case ValueType.String:\n case ValueType.Bytes:\n return \"text\";\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n };\n}\n\n/** Build index mapping from full tableSpecs to their position in visibleTableSpecs (missing → -1). */\nfunction buildSpecsToVisibleSpecsMapping(\n tableSpecs: PTableColumnSpec[],\n visibleTableSpecs: PTableColumnSpec[],\n): Map<number, number> {\n const specId = (spec: PTableColumnSpec) =>\n canonicalizeJson<PTableColumnId>(getPTableColumnId(spec));\n const visibleSpecsMap = new Map(\n visibleTableSpecs.entries().map(([i, spec]) => [specId(spec), i] as const),\n );\n return new Map(\n tableSpecs.entries().map(([i, spec]) => {\n const visibleSpecIdx = visibleSpecsMap.get(specId(spec));\n return [i, isNil(visibleSpecIdx) ? -1 : visibleSpecIdx];\n }),\n );\n}\n\n/** Predicate that returns true when an axis is one of the sheet partition axes. */\nfunction createPartitionedAxisPredicate(sheets: PlDataTableSheet[]): (axisId: AxisId) => boolean {\n const sheetAxesIds = sheets.map((sheet) => getAxisId(sheet.axis));\n return (axisId) => sheetAxesIds.some((id) => matchAxisId(id, axisId));\n}\n\n/**\n * Collect label columns (skipping partitioned axes and duplicates) and return a\n * lookup function that resolves labeled axisId → label column index (or -1).\n */\nfunction collectLabelColumnsByAxis(\n tableSpecs: PTableColumnSpec[],\n isPartitionedAxis: (axisId: AxisId) => boolean,\n): (axisId: AxisId) => number {\n const labelColumns: { axisId: AxisId; labelColumnIdx: number }[] = [];\n for (const [i, spec] of tableSpecs.entries()) {\n if (spec.type !== \"column\" || !isLabelColumnSpec(spec.spec)) continue;\n const labeledAxisId = getAxisId(spec.spec.axesSpec[0]);\n if (isPartitionedAxis(labeledAxisId)) continue;\n if (labelColumns.some((info) => matchAxisId(info.axisId, labeledAxisId))) {\n console.warn(`multiple label columns match axisId: ${JSON.stringify(labeledAxisId)}`);\n continue;\n }\n labelColumns.push({ axisId: labeledAxisId, labelColumnIdx: i });\n }\n return (axisId) =>\n labelColumns.find((info) => matchAxisId(info.axisId, axisId))?.labelColumnIdx ?? -1;\n}\n\n/** Indices of columns to display: drop partitioned axes, label/linker columns, hidden columns. */\nfunction selectDisplayableIndices(\n tableSpecs: PTableColumnSpec[],\n isPartitionedAxis: (axisId: AxisId) => boolean,\n getLabelColumnIndex: (axisId: AxisId) => number,\n): number[] {\n return tableSpecs\n .entries()\n .filter(([, spec]) => {\n switch (spec.type) {\n case \"axis\":\n return (\n !(getLabelColumnIndex(spec.id) > -1 ? true : isColumnHidden(spec.spec)) &&\n !isPartitionedAxis(spec.id)\n );\n case \"column\":\n return !isColumnHidden(spec.spec) && !isLinkerColumnSpec(spec.spec);\n }\n })\n .map(([i]) => i)\n .toArray();\n}\n\n/** Sort: axes first, then columns by OrderPriority annotation (higher priority = further left). */\nfunction sortIndicesByTypeAndPriority(indices: number[], tableSpecs: PTableColumnSpec[]): number[] {\n const priorityOf = (i: number): number => {\n const spec = tableSpecs[i];\n const prior =\n spec.type === \"axis\" || isLabelColumnSpec(spec.spec)\n ? Infinity\n : Number(readAnnotationJson(spec.spec, Annotation.Table.OrderPriority));\n\n return isNaN(prior) ? 0 : prior;\n };\n return [...indices].sort((a, b) => priorityOf(b) - priorityOf(a));\n}\n\n/** Default hidden col ids built from columns marked with the Optional annotation. */\nfunction computeDefaultHiddenColIds(\n fields: number[],\n tableSpecs: PTableColumnSpec[],\n): PlTableColumnIdJson[] {\n return fields.reduce<PlTableColumnIdJson[]>((acc, field) => {\n const spec = tableSpecs[field];\n return spec.type === \"column\" && isColumnOptional(spec.spec)\n ? [...acc, canonicalizeJson<PTableColumnId>(getPTableColumnId(spec))]\n : acc;\n }, []);\n}\n\n/** Extract axis indices and specs from the visible table (always present as part of join). */\nfunction collectVisibleAxes(\n visibleTableSpecs: PTableColumnSpec[],\n): [number, PTableColumnSpecAxis][] {\n return visibleTableSpecs\n .entries()\n .filter((entry): entry is [number, PTableColumnSpecAxis] => entry[1].type === \"axis\")\n .toArray();\n}\n\n/**\n * Compose request indices for the visible table:\n * non-hidden display fields first, then visible axes (deduplicated).\n * Returns fieldResultMapping (display field → position in requestIndices, -1 if not requested)\n * and axesResultIndices (visible axis → position in requestIndices).\n */\nfunction buildRequestIndices(\n indices: number[],\n visibleAxesIndices: number[],\n specsToVisibleSpecsMapping: Map<number, number>,\n): {\n requestIndices: number[];\n axesResultIndices: number[];\n fieldResultMapping: number[];\n} {\n const resolved = indices.map((displayField) => {\n const idx = specsToVisibleSpecsMapping.get(displayField);\n return isNil(idx) || idx === -1 ? null : idx;\n });\n const requestIndices = uniq([\n ...resolved.filter((v): v is number => v !== null),\n ...visibleAxesIndices,\n ]);\n const fieldResultMapping = resolved.map((v) => (v === null ? -1 : requestIndices.indexOf(v)));\n const axesResultIndices = visibleAxesIndices.map((vi) => requestIndices.indexOf(vi));\n\n return { requestIndices, axesResultIndices, fieldResultMapping };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"table-source-v2.js","names":[],"sources":["../../../../src/components/PlAgDataTable/sources/table-source-v2.ts"],"sourcesContent":["import type {\n AnnotationDataStatus,\n AxesSpec,\n PlDataTableColumnsMeta,\n PTableColumnId,\n PTableColumnSpecAxis,\n PTableColumnSpecColumn,\n PTableHandle,\n PTableValue,\n} from \"@platforma-sdk/model\";\nimport {\n canonicalizeJson,\n getAxisId,\n pTableValue,\n type PFrameDriver,\n type PlDataTableSheet,\n type PTableVector,\n type AxisId,\n type PTableColumnSpec,\n type PTableKey,\n type PlTableColumnIdJson,\n isLabelColumn as isLabelColumnSpec,\n isLinkerColumn as isLinkerColumnSpec,\n isColumnHidden,\n isColumnOptional,\n matchAxisId,\n readAnnotation,\n readAnnotationJson,\n Annotation,\n ValueType,\n getPTableColumnId,\n} from \"@platforma-sdk/model\";\nimport type {\n CellStyle,\n ColDef,\n GridApi,\n ICellRendererParams,\n IServerSideDatasource,\n IServerSideGetRowsParams,\n ManagedGridOptions,\n} from \"ag-grid-enterprise\";\nimport type { PlAgHeaderComponentParams, PlAgHeaderComponentType } from \"../../PlAgColumnHeader\";\nimport { PlAgColumnHeader } from \"../../PlAgColumnHeader\";\nimport { PlAgTextAndButtonCell } from \"../../PlAgTextAndButtonCell\";\nimport type { PlAgDataTableV2Row, PlTableRowId } from \"../types\";\nimport { PTableHidden } from \"./common\";\nimport { defaultMainMenuItems } from \"./menu-items\";\nimport { makeRowNumberColDef, PlAgDataTableRowNumberColId } from \"./row-number\";\nimport { getColumnRenderingSpec } from \"./value-rendering\";\nimport type { Ref } from \"vue\";\nimport { isJsonEqual } from \"@milaboratories/helpers\";\nimport type { DeferredCircular } from \"./focus-row\";\nimport { isNil, uniq } from \"es-toolkit\";\n\n/** Convert columnar data from the driver to rows, used by ag-grid */\nfunction columns2rows(\n fields: number[],\n columns: PTableVector[],\n fieldResultMapping: number[],\n axesResultIndices: number[],\n): PlAgDataTableV2Row[] {\n const rowData: PlAgDataTableV2Row[] = [];\n for (let rowIdx = 0; rowIdx < columns[0].data.length; ++rowIdx) {\n const axesKey: PTableKey = axesResultIndices.map((ri) => pTableValue(columns[ri], rowIdx));\n const id = canonicalizeJson<PlTableRowId>(axesKey);\n const row = fields.reduce<PlAgDataTableV2Row>(\n (acc, field, colIdx) => {\n acc[field.toString() as `${number}`] =\n fieldResultMapping[colIdx] === -1\n ? PTableHidden\n : pTableValue(columns[fieldResultMapping[colIdx]], rowIdx);\n return acc;\n },\n { id, axesKey },\n );\n\n rowData.push(row);\n }\n return rowData;\n}\n\n/** Calculate GridOptions for selected p-table data source */\nexport async function calculateGridOptions({\n generation,\n pfDriver,\n sheets,\n fullTableHandle,\n visibleTableHandle,\n columnsMeta,\n dataRenderedTracker,\n hiddenColIds,\n cellButtonAxisParams,\n}: {\n sheets: PlDataTableSheet[];\n pfDriver: PFrameDriver;\n generation: Ref<number>;\n fullTableHandle: PTableHandle;\n visibleTableHandle: PTableHandle;\n /** Sidecar display metadata (label/visibility/order/status/hidden axes) from the model. */\n columnsMeta?: PlDataTableColumnsMeta;\n dataRenderedTracker: DeferredCircular<GridApi<PlAgDataTableV2Row>>;\n hiddenColIds?: PlTableColumnIdJson[];\n cellButtonAxisParams?: PlAgCellButtonAxisParams;\n}): Promise<\n Pick<ManagedGridOptions<PlAgDataTableV2Row>, \"columnDefs\" | \"serverSideDatasource\"> & {\n axesSpec: AxesSpec;\n }\n> {\n const stateGeneration = generation.value;\n\n // get specs of the full table\n const [rawTableSpecs, rawVisibleTableSpecs] = await Promise.all([\n pfDriver.getSpec(fullTableHandle),\n pfDriver.getSpec(visibleTableHandle),\n ]);\n\n if (stateGeneration !== generation.value) throw new Error(\"table state generation changed\");\n\n // Engine specs flow through untouched; readers below merge `columnsMeta` at\n // their use sites via the `effective*` helpers — keeps spec === what the\n // engine produced (matters for `colDef.context` consumers).\n const tableSpecs = rawTableSpecs;\n const visibleTableSpecs = rawVisibleTableSpecs;\n\n // index mapping from full specs to visible subset (hidden columns → -1)\n const specsToVisibleSpecsMapping = buildSpecsToVisibleSpecsMapping(tableSpecs, visibleTableSpecs);\n\n const isPartitionedAxis = createPartitionedAxisPredicate(sheets);\n\n // label columns indexed by labeled axis (used for displayability filter)\n const getLabelColumnIndex = collectLabelColumnsByAxis(tableSpecs, isPartitionedAxis);\n\n // displayable column indices ordered: axes first, then columns by OrderPriority\n const fields = sortIndicesByTypeAndPriority(\n selectDisplayableIndices(tableSpecs, isPartitionedAxis, getLabelColumnIndex, columnsMeta),\n tableSpecs,\n columnsMeta,\n );\n\n // default hidden columns derived from Optional annotation when no saved state\n const resolvedHiddenColIds =\n hiddenColIds ?? computeDefaultHiddenColIds(fields, tableSpecs, columnsMeta);\n\n const columnDefs: ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>[] = [\n makeRowNumberColDef(),\n ...fields.map((field) => {\n const spec = tableSpecs[field];\n // Only visible columns get a status (hidden columns → undefined → no\n // \"computing/absent\" placeholder rendering).\n const visible = (specsToVisibleSpecsMapping.get(field) ?? -1) >= 0;\n const status =\n visible && spec.type === \"column\" ? columnsMeta?.columns[spec.id]?.status : undefined;\n return makeColDef({\n iCol: field,\n spec,\n dataStatus: status,\n hiddenColIds: resolvedHiddenColIds,\n cellButtonAxisParams,\n columnsMeta,\n });\n }),\n ];\n\n // axes — taken directly from visible table (always present as part of join)\n const visibleAxes = collectVisibleAxes(visibleTableSpecs);\n\n // request indices: display fields + visible axes for row selection keys.\n const { requestIndices, axesResultIndices, fieldResultMapping } = buildRequestIndices(\n fields,\n visibleAxes.map(([idx]) => idx),\n specsToVisibleSpecsMapping,\n );\n\n let rowCount = -1;\n let lastParams: IServerSideGetRowsParams | undefined = undefined;\n const serverSideDatasource: IServerSideDatasource<PlAgDataTableV2Row> = {\n getRows: async (params: IServerSideGetRowsParams) => {\n if (stateGeneration !== generation.value) return params.fail();\n try {\n if (rowCount === -1) {\n const ptShape = await pfDriver.getShape(visibleTableHandle);\n if (stateGeneration !== generation.value || params.api.isDestroyed())\n return params.fail();\n rowCount = ptShape.rows;\n }\n\n if (rowCount == 0) {\n params.success({ rowData: [], rowCount });\n // Warning: AgGrid cannot show two overlays at once,\n // so first hide loading overlay, then show no rows overlay\n params.api.setGridOption(\"loading\", false);\n params.api.showNoRowsOverlay();\n return;\n }\n\n // If sort has changed - show skeletons instead of data\n if (lastParams && !isJsonEqual(lastParams.request.sortModel, params.request.sortModel)) {\n return params.success({ rowData: [], rowCount });\n }\n lastParams = params;\n\n let length = 0;\n let rowData: PlAgDataTableV2Row[] = [];\n if (\n rowCount > 0 &&\n params.request.startRow !== undefined &&\n params.request.endRow !== undefined\n ) {\n length = Math.min(rowCount, params.request.endRow) - params.request.startRow;\n if (length > 0) {\n const data = await pfDriver.getData(visibleTableHandle, requestIndices, {\n offset: params.request.startRow,\n length,\n });\n if (stateGeneration !== generation.value || params.api.isDestroyed())\n return params.fail();\n rowData = columns2rows(fields, data, fieldResultMapping, axesResultIndices);\n }\n }\n\n params.success({ rowData, rowCount });\n params.api.autoSizeColumns(\n params.api\n .getAllDisplayedColumns()\n .filter((column) => column.getColId() !== PlAgDataTableRowNumberColId),\n );\n params.api.setGridOption(\"loading\", false);\n dataRenderedTracker.resolve(params.api);\n } catch (error: unknown) {\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n params.api.setGridOption(\"loading\", true);\n params.fail();\n console.trace(error);\n }\n },\n };\n\n return {\n axesSpec: visibleAxes.map(([, { spec }]) => spec),\n columnDefs,\n serverSideDatasource,\n };\n}\n\nexport type PlAgCellButtonAxisParams = {\n showCellButtonForAxisId?: AxisId;\n cellButtonInvokeRowsOnDoubleClick?: boolean;\n trigger: (key?: PTableKey) => void;\n};\n\n/**\n * Calculates column definition for a given p-table column\n */\nexport function makeColDef({\n iCol,\n spec,\n dataStatus,\n hiddenColIds,\n cellButtonAxisParams,\n columnsMeta,\n}: {\n iCol: number;\n spec: PTableColumnSpec;\n /** Per-column rendering status from the model; `undefined` for hidden cols. */\n dataStatus: AnnotationDataStatus | undefined;\n hiddenColIds: PlTableColumnIdJson[] | undefined;\n cellButtonAxisParams?: PlAgCellButtonAxisParams;\n /** Sidecar meta used to resolve the effective header label. */\n columnsMeta?: PlDataTableColumnsMeta;\n}): ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden> {\n const colId = canonicalizeJson<PTableColumnId>(getPTableColumnId(spec));\n const valueType = spec.type === \"axis\" ? spec.spec.type : spec.spec.valueType;\n const columnRenderingSpec = getColumnRenderingSpec(spec, dataStatus);\n const cellStyle: CellStyle = {};\n if (columnRenderingSpec.fontFamily) {\n if (columnRenderingSpec.fontFamily === \"monospace\") {\n cellStyle.fontFamily = \"Spline Sans Mono\";\n cellStyle.fontWeight = 300;\n } else {\n cellStyle.fontFamily = columnRenderingSpec.fontFamily;\n }\n }\n const headerName = effectiveLabel(spec, columnsMeta)?.trim() ?? `Unlabeled ${spec.type} ${iCol}`;\n\n return {\n colId,\n mainMenuItems: defaultMainMenuItems,\n context: spec,\n field: `${iCol}`,\n headerName,\n lockPosition:\n spec.type === \"axis\" || (isLabelColumnSpec(spec.spec) && spec.spec.axesSpec.length === 1),\n hide: hiddenColIds !== undefined && hiddenColIds.includes(colId),\n valueFormatter: columnRenderingSpec.valueFormatter,\n headerComponent: PlAgColumnHeader,\n cellRendererSelector: cellButtonAxisParams?.showCellButtonForAxisId\n ? () => {\n const axisId =\n spec.type === \"axis\"\n ? spec.id\n : isLabelColumnSpec(spec.spec) && spec.spec.axesSpec.length === 1\n ? getAxisId(spec.spec.axesSpec[0])\n : undefined;\n if (axisId && isJsonEqual(axisId, cellButtonAxisParams.showCellButtonForAxisId)) {\n return {\n component: PlAgTextAndButtonCell,\n params: {\n invokeRowsOnDoubleClick: cellButtonAxisParams.cellButtonInvokeRowsOnDoubleClick,\n onClick: (params: ICellRendererParams<PlAgDataTableV2Row>) => {\n cellButtonAxisParams.trigger(params.data?.axesKey);\n },\n },\n };\n }\n }\n : undefined,\n cellStyle,\n headerComponentParams: {\n type: ((): PlAgHeaderComponentType => {\n switch (valueType) {\n case ValueType.Int:\n case ValueType.Long:\n case ValueType.Float:\n case ValueType.Double:\n return \"Number\";\n case ValueType.String:\n case ValueType.Bytes:\n return \"Text\";\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n tooltip: readAnnotation(spec.spec, Annotation.Description)?.trim(),\n // info: readAnnotation(spec.spec, Annotation.Table.Info)?.trim(),\n } satisfies PlAgHeaderComponentParams,\n cellDataType: (() => {\n switch (valueType) {\n case ValueType.Int:\n case ValueType.Long:\n case ValueType.Float:\n case ValueType.Double:\n return \"number\";\n case ValueType.String:\n case ValueType.Bytes:\n return \"text\";\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n };\n}\n\nexport function isLabelColumn(column: PTableColumnSpec): column is PTableColumnSpecColumn {\n return column.type === \"column\" && isLabelColumnSpec(column.spec);\n}\n\n/**\n * Effective column label: sidecar override wins over intrinsic spec\n * annotation. Axes have no label override in the sidecar — they fall through\n * to `pl7.app/label` on the axis spec.\n */\nexport function effectiveLabel(\n spec: PTableColumnSpec,\n meta: PlDataTableColumnsMeta | undefined,\n): string | undefined {\n if (spec.type === \"column\") {\n const override = meta?.columns[spec.id]?.label;\n if (override !== undefined) return override;\n }\n return readAnnotation(spec.spec, Annotation.Label);\n}\n\n/**\n * Effective visibility. For columns: sidecar override wins over the intrinsic\n * `pl7.app/table/visibility` annotation. For axes: `meta.axes[id].hidden`\n * forces hidden; otherwise the intrinsic axis annotation rules.\n *\n * Kept out of the spec on purpose — baking visibility into a column spec via\n * override changes its `ColumnUniversalId`, so the same physical column reached\n * two ways (e.g. as primary and as a discovered label) would diverge into two\n * ids and render twice. The sidecar preserves identity; readers apply this at\n * use sites.\n */\nexport function effectiveVisibility(\n spec: PTableColumnSpec,\n meta: PlDataTableColumnsMeta | undefined,\n): \"default\" | \"optional\" | \"hidden\" {\n if (spec.type === \"axis\") {\n if (meta?.axes[canonicalizeJson<AxisId>(getAxisId(spec.id))]?.hidden === true) return \"hidden\";\n } else {\n const override = meta?.columns[spec.id]?.visibility;\n if (override !== undefined) return override;\n }\n if (isColumnHidden(spec.spec)) return \"hidden\";\n if (isColumnOptional(spec.spec)) return \"optional\";\n return \"default\";\n}\n\n/**\n * Effective order priority — number suitable for left-to-right comparison\n * (higher = further left). Sidecar override on columns wins over the\n * intrinsic `pl7.app/table/orderPriority`; axes have no override.\n * `undefined` when neither source supplied a value (consumer decides default).\n */\nexport function effectiveOrder(\n spec: PTableColumnSpec,\n meta: PlDataTableColumnsMeta | undefined,\n): number | undefined {\n if (spec.type === \"column\") {\n const override = meta?.columns[spec.id]?.order;\n if (override !== undefined) return override;\n }\n const raw = readAnnotationJson(spec.spec, Annotation.Table.OrderPriority);\n return raw as number | undefined;\n}\n\n/** Build index mapping from full tableSpecs to their position in visibleTableSpecs (missing → -1). */\nfunction buildSpecsToVisibleSpecsMapping(\n tableSpecs: PTableColumnSpec[],\n visibleTableSpecs: PTableColumnSpec[],\n): Map<number, number> {\n const specId = (spec: PTableColumnSpec) =>\n canonicalizeJson<PTableColumnId>(getPTableColumnId(spec));\n const visibleSpecsMap = new Map(\n visibleTableSpecs.entries().map(([i, spec]) => [specId(spec), i] as const),\n );\n return new Map(\n tableSpecs.entries().map(([i, spec]) => {\n const visibleSpecIdx = visibleSpecsMap.get(specId(spec));\n return [i, isNil(visibleSpecIdx) ? -1 : visibleSpecIdx];\n }),\n );\n}\n\n/** Predicate that returns true when an axis is one of the sheet partition axes. */\nfunction createPartitionedAxisPredicate(sheets: PlDataTableSheet[]): (axisId: AxisId) => boolean {\n const sheetAxesIds = sheets.map((sheet) => getAxisId(sheet.axis));\n return (axisId) => sheetAxesIds.some((id) => matchAxisId(id, axisId));\n}\n\n/**\n * Collect label columns (skipping partitioned axes and duplicates) and return a\n * lookup function that resolves labeled axisId → label column index (or -1).\n */\nfunction collectLabelColumnsByAxis(\n tableSpecs: PTableColumnSpec[],\n isPartitionedAxis: (axisId: AxisId) => boolean,\n): (axisId: AxisId) => number {\n const labelColumns: { axisId: AxisId; labelColumnIdx: number }[] = [];\n for (const [i, spec] of tableSpecs.entries()) {\n if (spec.type !== \"column\" || !isLabelColumnSpec(spec.spec)) continue;\n const labeledAxisId = getAxisId(spec.spec.axesSpec[0]);\n if (isPartitionedAxis(labeledAxisId)) continue;\n if (labelColumns.some((info) => matchAxisId(info.axisId, labeledAxisId))) {\n console.warn(`multiple label columns match axisId: ${JSON.stringify(labeledAxisId)}`);\n continue;\n }\n labelColumns.push({ axisId: labeledAxisId, labelColumnIdx: i });\n }\n return (axisId) =>\n labelColumns.find((info) => matchAxisId(info.axisId, axisId))?.labelColumnIdx ?? -1;\n}\n\n/** Indices of columns to display: drop partitioned axes, label/linker columns, hidden columns. */\nfunction selectDisplayableIndices(\n tableSpecs: PTableColumnSpec[],\n isPartitionedAxis: (axisId: AxisId) => boolean,\n getLabelColumnIndex: (axisId: AxisId) => number,\n meta: PlDataTableColumnsMeta | undefined,\n): number[] {\n return tableSpecs\n .entries()\n .filter(([, spec]) => {\n switch (spec.type) {\n case \"axis\":\n return (\n !(getLabelColumnIndex(spec.id) > -1\n ? true\n : effectiveVisibility(spec, meta) === \"hidden\") && !isPartitionedAxis(spec.id)\n );\n case \"column\":\n return effectiveVisibility(spec, meta) !== \"hidden\" && !isLinkerColumnSpec(spec.spec);\n }\n })\n .map(([i]) => i)\n .toArray();\n}\n\n/** Sort: axes first, then columns by OrderPriority annotation (higher priority = further left). */\nfunction sortIndicesByTypeAndPriority(\n indices: number[],\n tableSpecs: PTableColumnSpec[],\n meta: PlDataTableColumnsMeta | undefined,\n): number[] {\n const priorityOf = (i: number): number => {\n const spec = tableSpecs[i];\n if (spec.type === \"axis\" || isLabelColumnSpec(spec.spec)) return Infinity;\n const prior = Number(effectiveOrder(spec, meta));\n return isNaN(prior) ? 0 : prior;\n };\n return [...indices].sort((a, b) => priorityOf(b) - priorityOf(a));\n}\n\n/** Default hidden col ids built from columns marked with the Optional annotation. */\nfunction computeDefaultHiddenColIds(\n fields: number[],\n tableSpecs: PTableColumnSpec[],\n meta: PlDataTableColumnsMeta | undefined,\n): PlTableColumnIdJson[] {\n return fields.reduce<PlTableColumnIdJson[]>((acc, field) => {\n const spec = tableSpecs[field];\n if (spec.type === \"column\" && effectiveVisibility(spec, meta) === \"optional\") {\n acc.push(canonicalizeJson<PTableColumnId>(getPTableColumnId(spec)));\n }\n return acc;\n }, []);\n}\n\n/** Extract axis indices and specs from the visible table (always present as part of join). */\nfunction collectVisibleAxes(\n visibleTableSpecs: PTableColumnSpec[],\n): [number, PTableColumnSpecAxis][] {\n return visibleTableSpecs\n .entries()\n .filter((entry): entry is [number, PTableColumnSpecAxis] => entry[1].type === \"axis\")\n .toArray();\n}\n\n/**\n * Compose request indices for the visible table:\n * non-hidden display fields first, then visible axes (deduplicated).\n * Returns fieldResultMapping (display field → position in requestIndices, -1 if not requested)\n * and axesResultIndices (visible axis → position in requestIndices).\n */\nfunction buildRequestIndices(\n indices: number[],\n visibleAxesIndices: number[],\n specsToVisibleSpecsMapping: Map<number, number>,\n): {\n requestIndices: number[];\n axesResultIndices: number[];\n fieldResultMapping: number[];\n} {\n const resolved = indices.map((displayField) => {\n const idx = specsToVisibleSpecsMapping.get(displayField);\n return isNil(idx) || idx === -1 ? null : idx;\n });\n const requestIndices = uniq([\n ...resolved.filter((v): v is number => v !== null),\n ...visibleAxesIndices,\n ]);\n const fieldResultMapping = resolved.map((v) => (v === null ? -1 : requestIndices.indexOf(v)));\n const axesResultIndices = visibleAxesIndices.map((vi) => requestIndices.indexOf(vi));\n\n return { requestIndices, axesResultIndices, fieldResultMapping };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-state-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAOvB,KAAK,kBAAkB,EAEvB,0BAA0B,EAG3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAY,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,KAAK,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAoC,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAKhF,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC/C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,EACpC,OAAO,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,EAChC,cAAc,EAAE,GAAG,CAAC,GAAG,GAAG,kBAAkB,CAAC,GAC5C;IACD,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACzD,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAE1D,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC1C,YAAY,EAAE,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC9C,mBAAmB,EAAE,GAAG,CAAC,IAAI,GAAG,0BAA0B,CAAC,CAAC;IAC5D,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAgJA"}
1
+ {"version":3,"file":"table-state-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAOvB,KAAK,kBAAkB,EAEvB,0BAA0B,EAE3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAY,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,KAAK,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAoC,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAKhF,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC/C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,EACpC,OAAO,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,EAChC,cAAc,EAAE,GAAG,CAAC,GAAG,GAAG,kBAAkB,CAAC,GAC5C;IACD,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACzD,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAE1D,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC1C,YAAY,EAAE,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC9C,mBAAmB,EAAE,GAAG,CAAC,IAAI,GAAG,0BAA0B,CAAC,CAAC;IAC5D,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAgJA"}