@platforma-sdk/ui-vue 1.53.15 → 1.54.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.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.53.15 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.1 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder build --target browser-lib
5
5
 
6
6
  Building browser-lib project...
@@ -20,8 +20,8 @@ computing gzip size...
20
20
  dist/components/PlAgCellFile/PlAgCellFile.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
21
21
  dist/components/PlAgDataTable/PlAgRowCount.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
22
22
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
23
- dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
24
23
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
24
+ dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
25
25
  dist/components/PlAgRowNumHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
26
26
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
27
27
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -146,7 +146,7 @@ computing gzip size...
146
146
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js  1.18 kB │ gzip: 0.58 kB │ map: 3.54 kB
147
147
  dist/plugins/Monetization/validation.js  1.19 kB │ gzip: 0.57 kB │ map: 2.92 kB
148
148
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js  1.20 kB │ gzip: 0.57 kB │ map: 2.88 kB
149
- dist/lib/util/helpers/dist/prettyBytes.js  1.26 kB │ gzip: 0.65 kB │ map: 4.20 kB
149
+ dist/lib/util/helpers/dist/prettyBytes.js  1.26 kB │ gzip: 0.65 kB │ map: 4.14 kB
150
150
  dist/plugins/Monetization/RunStatus.vue2.js  1.27 kB │ gzip: 0.59 kB │ map: 3.14 kB
151
151
  dist/components/PlAdvancedFilter/utils.js  1.31 kB │ gzip: 0.61 kB │ map: 5.45 kB
152
152
  dist/components/PlBtnExportArchive/Summary.vue2.js  1.32 kB │ gzip: 0.58 kB │ map: 2.53 kB
@@ -203,9 +203,9 @@ computing gzip size...
203
203
  dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js  8.35 kB │ gzip: 2.42 kB │ map: 16.93 kB
204
204
  dist/components/PlTableFilters/filters_logic.js  9.25 kB │ gzip: 2.19 kB │ map: 20.75 kB
205
205
  dist/components/PlAdvancedFilter/FilterEditor.vue2.js  12.83 kB │ gzip: 3.28 kB │ map: 25.49 kB
206
- dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js  15.28 kB │ gzip: 4.40 kB │ map: 34.83 kB
206
+ dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js  15.31 kB │ gzip: 4.41 kB │ map: 34.88 kB
207
207
  dist/index.js 101.49 kB │ gzip: 64.76 kB │ map: 0.13 kB
208
- [vite:dts] Declaration files built in 8049ms.
208
+ [vite:dts] Declaration files built in 6166ms.
209
209
 
210
- ✓ built in 9.74s
210
+ ✓ built in 7.95s
211
211
  Build completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.53.15 formatter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.1 formatter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder formatter --check
5
5
 
6
6
  Checking formatting...
@@ -8,5 +8,5 @@ Checking formatting...
8
8
  Checking formatting...
9
9
 
10
10
  All matched files use the correct format.
11
- Finished in 2113ms on 125 files using 8 threads.
11
+ Finished in 2901ms on 125 files using 8 threads.
12
12
  Format check completed successfully
@@ -1,10 +1,10 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.53.15 linter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.1 linter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder linter --check
5
5
 
6
6
  Linting project...
7
7
  ↳ oxlint --config /home/runner/_work/platforma/platforma/sdk/ui-vue/.oxlintrc.json --deny-warnings
8
8
  Found 0 warnings and 0 errors.
9
- Finished in 9ms on 108 files with 100 rules using 8 threads.
9
+ Finished in 32ms on 108 files with 98 rules using 8 threads.
10
10
  Linting completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.53.15 types:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.1 types:check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder type-check --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.54.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @milaboratories/uikit@2.10.19
8
+ - @platforma-sdk/model@1.53.15
9
+
10
+ ## 1.54.0
11
+
12
+ ### Minor Changes
13
+
14
+ - ddc83fb: Make PlAgDataTableV2 export TSV by default instead of CSV
15
+
3
16
  ## 1.53.15
4
17
 
5
18
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgDataTableV2.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgDataTable/PlAgDataTableV2.vue"],"names":[],"mappings":"AAmoBA,OAAO,KAAK,EACV,MAAM,EAEN,kBAAkB,EAClB,gBAAgB,EAGhB,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EACV,wBAAwB,EAQzB,MAAM,oBAAoB,CAAC;AAiB5B,OAAO,KAAK,EAEV,kBAAkB,EAGlB,qBAAqB,EAItB,MAAM,SAAS,CAAC;AASjB,KAAK,WAAW,GAAG;IACjB,kCAAkC;IAClC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAE1C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;OAMG;IACH,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAE5C,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;CACrE,CAAC;AAmeF,KAAK,iBAAiB,GAAG;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAC9B,GAAG,WAAW,CAAC;AAMhB,iBAAS,cAAc;WA2GT,OAAO,IAA6B;;iCAXZ,GAAG;gCACJ,GAAG;;;;EAevC;AAsBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;6FASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlAgDataTableV2.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgDataTable/PlAgDataTableV2.vue"],"names":[],"mappings":"AAooBA,OAAO,KAAK,EACV,MAAM,EAEN,kBAAkB,EAClB,gBAAgB,EAGhB,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EACV,wBAAwB,EAQzB,MAAM,oBAAoB,CAAC;AAiB5B,OAAO,KAAK,EAEV,kBAAkB,EAGlB,qBAAqB,EAItB,MAAM,SAAS,CAAC;AASjB,KAAK,WAAW,GAAG;IACjB,kCAAkC;IAClC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAE1C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;OAMG;IACH,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAE5C,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;CACrE,CAAC;AAoeF,KAAK,iBAAiB,GAAG;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAC9B,GAAG,WAAW,CAAC;AAMhB,iBAAS,cAAc;WA2GT,OAAO,IAA6B;;iCAXZ,GAAG;gCACJ,GAAG;;;;EAevC;AAsBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;6FASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -40,8 +40,8 @@ const Ze = /* @__PURE__ */ ie({
40
40
  selectionModifiers: {}
41
41
  }),
42
42
  emits: /* @__PURE__ */ J(["rowDoubleClicked", "cellButtonClicked", "newDataRendered"], ["update:modelValue", "update:selection"]),
43
- setup(y, { expose: te, emit: le }) {
44
- const oe = U(y, "modelValue"), o = U(y, "selection"), i = y, { settings: x } = ue(i), B = le, { gridState: R, sheetsState: P, filtersState: T } = Be(oe, x), ae = K(() => {
43
+ setup(y, { expose: te, emit: oe }) {
44
+ const le = U(y, "modelValue"), l = U(y, "selection"), i = y, { settings: x } = ue(i), B = oe, { gridState: R, sheetsState: P, filtersState: T } = Be(le, x), ae = K(() => {
45
45
  const e = { ...x.value };
46
46
  return e.sourceId !== null ? {
47
47
  sheets: e.sheets ?? [],
@@ -64,10 +64,10 @@ const Ze = /* @__PURE__ */ ie({
64
64
  }), u = q(null), D = new Ie(), r = q({
65
65
  animateRows: !1,
66
66
  suppressColumnMoveAnimation: !0,
67
- cellSelection: !o.value,
67
+ cellSelection: !l.value,
68
68
  initialState: R.value,
69
69
  autoSizeStrategy: { type: "fitCellContents" },
70
- rowSelection: o.value ? {
70
+ rowSelection: l.value ? {
71
71
  mode: "multiRow",
72
72
  selectAll: "all",
73
73
  groupSelects: "self",
@@ -77,9 +77,9 @@ const Ze = /* @__PURE__ */ ie({
77
77
  } : void 0,
78
78
  onSelectionChanged: (e) => {
79
79
  var t;
80
- if (o.value) {
81
- const l = e.api.getServerSideSelectionState(), a = ((t = l == null ? void 0 : l.toggledNodes) == null ? void 0 : t.map((n) => X(n))) ?? [];
82
- d(o.value.selectedKeys, a) || (o.value = { ...o.value, selectedKeys: a });
80
+ if (l.value) {
81
+ const o = e.api.getServerSideSelectionState(), a = ((t = o == null ? void 0 : o.toggledNodes) == null ? void 0 : t.map((n) => X(n))) ?? [];
82
+ d(l.value.selectedKeys, a) || (l.value = { ...l.value, selectedKeys: a });
83
83
  }
84
84
  },
85
85
  onRowDoubleClicked: (e) => {
@@ -118,12 +118,13 @@ const Ze = /* @__PURE__ */ ie({
118
118
  defaultCsvExportParams: {
119
119
  allColumns: !0,
120
120
  suppressQuotes: !0,
121
- fileName: "table.csv"
121
+ columnSeparator: " ",
122
+ fileName: "table.tsv"
122
123
  },
123
124
  onGridReady: (e) => {
124
125
  const t = e.api;
125
126
  Te(t);
126
- const l = (n, c) => {
127
+ const o = (n, c) => {
127
128
  const s = { ...r.value };
128
129
  s[n] = c, r.value = s, t.setGridOption(n, c);
129
130
  }, a = (n) => {
@@ -136,7 +137,7 @@ const Ze = /* @__PURE__ */ ie({
136
137
  get(n, c, s) {
137
138
  switch (c) {
138
139
  case "setGridOption":
139
- return l;
140
+ return o;
140
141
  case "updateGridOptions":
141
142
  return a;
142
143
  default:
@@ -166,8 +167,8 @@ const Ze = /* @__PURE__ */ ie({
166
167
  () => [u.value, R.value],
167
168
  ([e, t]) => {
168
169
  if (!e || e.isDestroyed()) return;
169
- const l = V(e.getState());
170
- !d(t, {}) && !d(t, l) && (r.value.initialState = t, ++F.value);
170
+ const o = V(e.getState());
171
+ !d(t, {}) && !d(t, o) && (r.value.initialState = t, ++F.value);
171
172
  }
172
173
  );
173
174
  const se = K(() => i.cellRendererSelector ?? null);
@@ -182,16 +183,16 @@ const Ze = /* @__PURE__ */ ie({
182
183
  ), te({
183
184
  focusRow: async (e) => {
184
185
  const t = await D.promise;
185
- return t.isDestroyed() ? !1 : Pe(t, (l) => {
186
+ return t.isDestroyed() ? !1 : Pe(t, (o) => {
186
187
  var a;
187
- return d((a = l.data) == null ? void 0 : a.axesKey, e);
188
+ return d((a = o.data) == null ? void 0 : a.axesKey, e);
188
189
  });
189
190
  },
190
191
  updateSelection: async ({ axesSpec: e, selectedKeys: t }) => {
191
192
  var h, g;
192
- const l = await D.promise;
193
- if (l.isDestroyed()) return !1;
194
- const a = (h = o.value) == null ? void 0 : h.axesSpec;
193
+ const o = await D.promise;
194
+ if (o.isDestroyed()) return !1;
195
+ const a = (h = l.value) == null ? void 0 : h.axesSpec;
195
196
  if (!a || a.length !== e.length) return !1;
196
197
  const n = e.map((p) => {
197
198
  const S = Y(p);
@@ -200,14 +201,14 @@ const Ze = /* @__PURE__ */ ie({
200
201
  if (c.has(-1) || c.size !== e.length) return !1;
201
202
  const s = t.map(
202
203
  (p) => _(n.map((S) => p[S]))
203
- ), m = ((g = l.getServerSideSelectionState()) == null ? void 0 : g.toggledNodes) ?? [];
204
+ ), m = ((g = o.getServerSideSelectionState()) == null ? void 0 : g.toggledNodes) ?? [];
204
205
  if (!d(m, s)) {
205
- l.setServerSideSelectionState({
206
+ o.setServerSideSelectionState({
206
207
  selectAll: !1,
207
208
  toggledNodes: s
208
209
  });
209
210
  const p = de(), { resolve: S, promise: w } = Promise.withResolvers();
210
- p.run(() => O(o, S, { once: !0 }));
211
+ p.run(() => O(l, S, { once: !0 }));
211
212
  try {
212
213
  await pe(w, 500);
213
214
  } catch {
@@ -220,8 +221,8 @@ const Ze = /* @__PURE__ */ ie({
220
221
  }
221
222
  });
222
223
  function re(e) {
223
- const t = (l) => !("children" in l);
224
- return e ? e.filter(t).filter((l) => l.colId && l.colId !== ee) : [];
224
+ const t = (o) => !("children" in o);
225
+ return e ? e.filter(t).filter((o) => o.colId && o.colId !== ee) : [];
225
226
  }
226
227
  Ge(
227
228
  () => r.value.columnDefs,
@@ -229,8 +230,8 @@ const Ze = /* @__PURE__ */ ie({
229
230
  if (x.value.sourceId === null)
230
231
  G.value = [];
231
232
  else {
232
- const l = re(e);
233
- G.value = l.map(
233
+ const o = re(e);
234
+ G.value = o.map(
234
235
  (a) => X(a.colId).labeled
235
236
  );
236
237
  }
@@ -243,7 +244,7 @@ const Ze = /* @__PURE__ */ ie({
243
244
  return O(
244
245
  () => [u.value, x.value],
245
246
  ([e, t]) => {
246
- var l, a;
247
+ var o, a;
247
248
  if (!(!e || e.isDestroyed()) && !d(t, v)) {
248
249
  ++C.value;
249
250
  try {
@@ -256,7 +257,7 @@ const Ze = /* @__PURE__ */ ie({
256
257
  },
257
258
  columnDefs: void 0,
258
259
  serverSideDatasource: void 0
259
- }), o.value && (o.value && !d(o.value, E) && (o.value = z()), e.setServerSideSelectionState({
260
+ }), l.value && (l.value && !d(l.value, E) && (l.value = z()), e.setServerSideSelectionState({
260
261
  selectAll: !1,
261
262
  toggledNodes: []
262
263
  }));
@@ -268,11 +269,11 @@ const Ze = /* @__PURE__ */ ie({
268
269
  ...r.value.loadingOverlayComponentParams,
269
270
  variant: "loading"
270
271
  }
271
- }), o.value && (v != null && v.sourceId) && (o.value && !d(o.value, E) && (o.value = z()), e.setServerSideSelectionState({
272
+ }), l.value && (v != null && v.sourceId) && (l.value && !d(l.value, E) && (l.value = z()), e.setServerSideSelectionState({
272
273
  selectAll: !1,
273
274
  toggledNodes: []
274
275
  })));
275
- const n = ((l = t.model) == null ? void 0 : l.sourceId) && t.model.sourceId !== t.sourceId;
276
+ const n = ((o = t.model) == null ? void 0 : o.sourceId) && t.model.sourceId !== t.sourceId;
276
277
  if (!t.model || n) {
277
278
  const s = e.getServerSideGroupLevelState(), m = !n && s.length > 0 ? s[0].rowCount : 1;
278
279
  return e.updateGridOptions({
@@ -301,12 +302,12 @@ const Ze = /* @__PURE__ */ ie({
301
302
  const { axesSpec: m, ...h } = s;
302
303
  if (e.updateGridOptions({
303
304
  ...h
304
- }), o.value) {
305
- const { axesSpec: g, selectedKeys: p } = o.value;
305
+ }), l.value) {
306
+ const { axesSpec: g, selectedKeys: p } = l.value;
306
307
  if (!d(g, m)) {
307
308
  if (!g || m.length !== g.length) {
308
309
  const f = { axesSpec: m, selectedKeys: [] };
309
- return d(o.value, f) || (o.value = f), e.setServerSideSelectionState({
310
+ return d(l.value, f) || (l.value = f), e.setServerSideSelectionState({
310
311
  selectAll: !1,
311
312
  toggledNodes: []
312
313
  });
@@ -314,7 +315,7 @@ const Ze = /* @__PURE__ */ ie({
314
315
  const S = g.map(Y).map((f) => m.findIndex((N) => Z(N, f))), w = new Set(S);
315
316
  if (w.has(-1) || w.size !== m.length) {
316
317
  const f = { axesSpec: m, selectedKeys: [] };
317
- return d(o.value, f) || (o.value = f), e.setServerSideSelectionState({
318
+ return d(l.value, f) || (l.value = f), e.setServerSideSelectionState({
318
319
  selectAll: !1,
319
320
  toggledNodes: []
320
321
  });
@@ -322,7 +323,7 @@ const Ze = /* @__PURE__ */ ie({
322
323
  const A = p.map(
323
324
  (f) => S.map((N) => f[N])
324
325
  ), L = { axesSpec: m, selectedKeys: A };
325
- return d(o.value, L) || (o.value = L), e.setServerSideSelectionState({
326
+ return d(l.value, L) || (l.value = L), e.setServerSideSelectionState({
326
327
  selectAll: !1,
327
328
  toggledNodes: A.map((f) => _(f))
328
329
  });
@@ -350,12 +351,12 @@ const Ze = /* @__PURE__ */ ie({
350
351
  notReadyText: i.notReadyText,
351
352
  noRowsText: i.noRowsText
352
353
  }),
353
- ({ gridApi: e, loadingText: t, runningText: l, notReadyText: a, noRowsText: n }) => {
354
+ ({ gridApi: e, loadingText: t, runningText: o, notReadyText: a, noRowsText: n }) => {
354
355
  !e || e.isDestroyed() || e.updateGridOptions({
355
356
  loadingOverlayComponentParams: {
356
357
  ...r.value.loadingOverlayComponentParams,
357
358
  loadingText: t,
358
- runningText: l,
359
+ runningText: o,
359
360
  notReadyText: a
360
361
  },
361
362
  noRowsOverlayComponentParams: {
@@ -381,7 +382,7 @@ const Ze = /* @__PURE__ */ ie({
381
382
  y.disableFiltersPanel ? $("", !0) : (b(), k(xe, {
382
383
  key: 1,
383
384
  modelValue: I(T),
384
- "onUpdate:modelValue": t[0] || (t[0] = (l) => Q(T) ? T.value = l : null),
385
+ "onUpdate:modelValue": t[0] || (t[0] = (o) => Q(T) ? T.value = o : null),
385
386
  settings: ne.value
386
387
  }, null, 8, ["modelValue", "settings"])),
387
388
  u.value && y.showExportButton ? (b(), k(he, {
@@ -390,7 +391,7 @@ const Ze = /* @__PURE__ */ ie({
390
391
  }, null, 8, ["api"])) : $("", !0),
391
392
  fe(Re, {
392
393
  modelValue: I(P),
393
- "onUpdate:modelValue": t[1] || (t[1] = (l) => Q(P) ? P.value = l : null),
394
+ "onUpdate:modelValue": t[1] || (t[1] = (o) => Q(P) ? P.value = o : null),
394
395
  settings: ae.value
395
396
  }, ve({ _: 2 }, [
396
397
  e.$slots["before-sheets"] ? {
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgDataTableV2.vue2.js","sources":["../../../src/components/PlAgDataTable/PlAgDataTableV2.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { promiseTimeout, isJsonEqual } from \"@milaboratories/helpers\";\nimport type {\n AxisId,\n PlDataTableGridStateCore,\n PlDataTableStateV2,\n PlSelectionModel,\n PlTableColumnIdJson,\n PTableColumnSpec,\n PTableKey,\n PTableValue,\n} from \"@platforma-sdk/model\";\nimport {\n getRawPlatformaInstance,\n parseJson,\n createPlSelectionModel,\n matchAxisId,\n getAxisId,\n canonicalizeJson,\n isAbortError,\n} from \"@platforma-sdk/model\";\nimport type {\n CellRendererSelectorFunc,\n ColDef,\n ColGroupDef,\n GridApi,\n GridOptions,\n GridState,\n ManagedGridOptionKey,\n ManagedGridOptions,\n} from \"ag-grid-enterprise\";\nimport { AgGridVue } from \"ag-grid-vue3\";\nimport { computed, effectScope, ref, shallowRef, toRefs, watch, watchEffect } from \"vue\";\nimport { AgGridTheme } from \"../../aggrid\";\nimport PlAgCsvExporter from \"../PlAgCsvExporter/PlAgCsvExporter.vue\";\nimport { PlAgGridColumnManager } from \"../PlAgGridColumnManager\";\nimport type { PlDataTableFiltersSettings } from \"../PlTableFilters\";\nimport PlTableFiltersV2 from \"../PlTableFilters/PlTableFiltersV2.vue\";\nimport PlAgDataTableSheets from \"./PlAgDataTableSheets.vue\";\nimport PlOverlayLoading from \"./PlAgOverlayLoading.vue\";\nimport PlOverlayNoRows from \"./PlAgOverlayNoRows.vue\";\nimport PlAgRowCount from \"./PlAgRowCount.vue\";\nimport { DeferredCircular, ensureNodeVisible } from \"./sources/focus-row\";\nimport { autoSizeRowNumberColumn, PlAgDataTableRowNumberColId } from \"./sources/row-number\";\nimport type { PlAgCellButtonAxisParams } from \"./sources/table-source-v2\";\nimport { calculateGridOptions } from \"./sources/table-source-v2\";\nimport { useTableState } from \"./sources/table-state-v2\";\nimport type {\n PlAgDataTableV2Controller,\n PlAgDataTableV2Row,\n PlAgOverlayLoadingParams,\n PlAgOverlayNoRowsParams,\n PlDataTableSettingsV2,\n PlDataTableSheetsSettings,\n PlTableRowId,\n PlTableRowIdJson,\n} from \"./types\";\nimport { watchCached } from \"@milaboratories/uikit\";\nimport { type PTableHidden } from \"./sources/common\";\n\nconst tableState = defineModel<PlDataTableStateV2>({\n required: true,\n});\n/** Warning: selection model value updates are ignored, use updateSelection instead */\nconst selection = defineModel<PlSelectionModel>(\"selection\");\nconst props = defineProps<{\n /** Required component settings */\n settings: Readonly<PlDataTableSettingsV2>;\n\n /**\n * The disableColumnsPanel prop controls the display of a button that activates\n * the columns management panel in the table. To make the button functional\n * and visible, you must also include the PlAgDataTableToolsPanel component in your layout.\n * This component serves as the target for teleporting the button.\n */\n disableColumnsPanel?: boolean;\n\n /**\n * The disableFiltersPanel prop controls the display of a button that activates\n * the filters management panel in the table. To make the button functional\n * and visible, you must also include the PlAgDataTableToolsPanel component in your layout.\n * This component serves as the target for teleporting the button.\n */\n disableFiltersPanel?: boolean;\n\n /**\n * The showExportButton prop controls the display of a button that allows\n * to export table data in CSV format. To make the button functional\n * and visible, you must also include the PlAgDataTableToolsPanel component in your layout.\n * This component serves as the target for teleporting the button.\n */\n showExportButton?: boolean;\n\n /**\n * The AxisId property is used to configure and display the PlAgTextAndButtonCell component\n */\n showCellButtonForAxisId?: AxisId;\n\n /**\n * If cellButtonInvokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row.\n *\n * If cellButtonInvokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but will triggered cellButtonClicked event with (key: PTableRowKey) argument.\n */\n cellButtonInvokeRowsOnDoubleClick?: boolean;\n\n /** @see {@link PlAgOverlayLoadingParams.loadingText} */\n loadingText?: string;\n\n /** @see {@link PlAgOverlayLoadingParams.runningText} */\n runningText?: string;\n\n /** @see {@link PlAgOverlayLoadingParams.notReadyText} */\n notReadyText?: string;\n\n /** @see {@link PlAgOverlayNoRowsParams.text} */\n noRowsText?: string;\n\n /**\n * Callback to override the default renderer for a given cell.\n * @see https://www.ag-grid.com/vue-data-grid/component-cell-renderer/#dynamic-component-selection\n */\n cellRendererSelector?: CellRendererSelectorFunc<PlAgDataTableV2Row>;\n}>();\nconst { settings } = toRefs(props);\nconst emit = defineEmits<{\n rowDoubleClicked: [key?: PTableKey];\n cellButtonClicked: [key?: PTableKey];\n newDataRendered: [];\n}>();\n\nconst { gridState, sheetsState, filtersState } = useTableState(tableState, settings);\n\nconst sheetsSettings = computed<PlDataTableSheetsSettings>(() => {\n const settingsCopy = { ...settings.value };\n return settingsCopy.sourceId !== null\n ? {\n sheets: settingsCopy.sheets ?? [],\n cachedState: [...sheetsState.value],\n }\n : {\n sheets: [],\n cachedState: [],\n };\n});\n\nconst filterableColumns = ref<PTableColumnSpec[]>([]);\nconst filtersSettings = computed<PlDataTableFiltersSettings>(() => {\n const settingsCopy = { ...settings.value };\n const columns = filterableColumns.value;\n const result =\n settingsCopy.sourceId !== null && columns.length > 0\n ? {\n columns,\n config: (column: PTableColumnSpec) =>\n settingsCopy.filtersConfig({ sourceId: settingsCopy.sourceId, column }),\n cachedState: [...filtersState.value],\n }\n : {\n columns: [],\n config: () => ({}),\n cachedState: [],\n };\n return result;\n});\n\nconst gridApi = shallowRef<GridApi<PlAgDataTableV2Row> | null>(null);\nconst dataRenderedTracker = new DeferredCircular<GridApi<PlAgDataTableV2Row>>();\nconst gridOptions = shallowRef<GridOptions<PlAgDataTableV2Row>>({\n animateRows: false,\n suppressColumnMoveAnimation: true,\n cellSelection: !selection.value,\n initialState: gridState.value,\n autoSizeStrategy: { type: \"fitCellContents\" },\n rowSelection: selection.value\n ? {\n mode: \"multiRow\",\n selectAll: \"all\",\n groupSelects: \"self\",\n checkboxes: false,\n headerCheckbox: false,\n enableClickSelection: false,\n }\n : undefined,\n onSelectionChanged: (event) => {\n if (selection.value) {\n const state = event.api.getServerSideSelectionState();\n const selectedKeys =\n state?.toggledNodes?.map((nodeId) => parseJson(nodeId as PlTableRowIdJson)) ?? [];\n if (!isJsonEqual(selection.value.selectedKeys, selectedKeys)) {\n selection.value = { ...selection.value, selectedKeys };\n }\n }\n },\n onRowDoubleClicked: (event) => {\n if (event.data && event.data.axesKey) emit(\"rowDoubleClicked\", event.data.axesKey);\n },\n defaultColDef: {\n suppressHeaderMenuButton: true,\n sortingOrder: [\"desc\", \"asc\", null],\n cellRendererSelector: props.cellRendererSelector,\n },\n maintainColumnOrder: true,\n localeText: {\n loadingError: \"...\",\n },\n rowModelType: \"serverSide\",\n // cacheBlockSize should be the same as PlMultiSequenceAlignment limit\n // so that selectAll will add all rows to selection\n cacheBlockSize: 1000,\n maxBlocksInCache: 100,\n blockLoadDebounceMillis: 500,\n serverSideSortAllLevels: true,\n suppressServerSideFullWidthLoadingRow: true,\n getRowId: (params) => params.data.id,\n loading: true,\n loadingOverlayComponentParams: {\n variant: \"not-ready\",\n loadingText: props.loadingText,\n runningText: props.runningText,\n notReadyText: props.notReadyText,\n } satisfies PlAgOverlayLoadingParams,\n loadingOverlayComponent: PlOverlayLoading,\n noRowsOverlayComponent: PlOverlayNoRows,\n noRowsOverlayComponentParams: {\n text: props.noRowsText,\n } satisfies PlAgOverlayNoRowsParams,\n defaultCsvExportParams: {\n allColumns: true,\n suppressQuotes: true,\n fileName: \"table.csv\",\n },\n onGridReady: (event) => {\n const api = event.api;\n autoSizeRowNumberColumn(api);\n const setGridOption = (key: ManagedGridOptionKey, value: GridOptions[ManagedGridOptionKey]) => {\n const options = { ...gridOptions.value };\n options[key] = value;\n gridOptions.value = options;\n api.setGridOption(key, value);\n };\n const updateGridOptions = (options: ManagedGridOptions) => {\n gridOptions.value = {\n ...gridOptions.value,\n ...options,\n };\n api.updateGridOptions(options);\n };\n gridApi.value = new Proxy(api, {\n get(target, prop, receiver) {\n switch (prop) {\n case \"setGridOption\":\n return setGridOption;\n case \"updateGridOptions\":\n return updateGridOptions;\n default:\n return Reflect.get(target, prop, receiver);\n }\n },\n });\n },\n onStateUpdated: (event) => {\n gridOptions.value.initialState = gridState.value = makePartialState(event.state);\n if (!isJsonEqual(event.sources, [\"columnSizing\"])) {\n event.api.autoSizeColumns(\n event.api\n .getAllDisplayedColumns()\n .filter((column) => column.getColId() !== PlAgDataTableRowNumberColId),\n );\n }\n },\n onGridPreDestroyed: (event) => {\n gridOptions.value.initialState = gridState.value = makePartialState(event.api.getState());\n gridApi.value = null;\n },\n});\n\n// Restore proper types erased by AgGrid\nfunction makePartialState(state: GridState): PlDataTableGridStateCore {\n return {\n columnOrder: state.columnOrder as\n | {\n orderedColIds: PlTableColumnIdJson[];\n }\n | undefined,\n sort: state.sort as\n | {\n sortModel: {\n colId: PlTableColumnIdJson;\n sort: \"asc\" | \"desc\";\n }[];\n }\n | undefined,\n columnVisibility: state.columnVisibility as\n | {\n hiddenColIds: PlTableColumnIdJson[];\n }\n | undefined,\n };\n}\n\n// Reload AgGrid when new state arrives from server\nconst reloadKey = ref(0);\nwatch(\n () => [gridApi.value, gridState.value] as const,\n ([gridApi, gridState]) => {\n if (!gridApi || gridApi.isDestroyed()) return;\n const selfState = makePartialState(gridApi.getState());\n if (!isJsonEqual(gridState, {}) && !isJsonEqual(gridState, selfState)) {\n gridOptions.value.initialState = gridState;\n ++reloadKey.value;\n }\n },\n);\n\n// Make cellRendererSelector reactive\nconst cellRendererSelector = computed(() => props.cellRendererSelector ?? null);\nwatch(\n () => [gridApi.value, cellRendererSelector.value] as const,\n ([gridApi, cellRendererSelector]) => {\n if (!gridApi || gridApi.isDestroyed()) return;\n gridApi.setGridOption(\"defaultColDef\", {\n ...gridOptions.value.defaultColDef,\n cellRendererSelector: cellRendererSelector ?? undefined,\n });\n },\n);\n\ndefineExpose<PlAgDataTableV2Controller>({\n focusRow: async (rowKey) => {\n const gridApi = await dataRenderedTracker.promise;\n if (gridApi.isDestroyed()) return false;\n\n return ensureNodeVisible(gridApi, (row) => isJsonEqual(row.data?.axesKey, rowKey));\n },\n updateSelection: async ({ axesSpec, selectedKeys }) => {\n const gridApi = await dataRenderedTracker.promise;\n if (gridApi.isDestroyed()) return false;\n\n const axes = selection.value?.axesSpec;\n if (!axes || axes.length !== axesSpec.length) return false;\n\n const mapping = axesSpec.map((spec) => {\n const id = getAxisId(spec);\n return axes.findIndex((axis) => matchAxisId(axis, id));\n });\n const mappingSet = new Set(mapping);\n if (mappingSet.has(-1) || mappingSet.size !== axesSpec.length) return false;\n\n const selectedNodes = selectedKeys.map((key) =>\n canonicalizeJson<PlTableRowId>(mapping.map((index) => key[index])),\n );\n const oldSelectedKeys = gridApi.getServerSideSelectionState()?.toggledNodes ?? [];\n if (!isJsonEqual(oldSelectedKeys, selectedNodes)) {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: selectedNodes,\n });\n\n // wait for `onSelectionChanged` to update `selection` model\n const scope = effectScope();\n const { resolve, promise } = Promise.withResolvers();\n scope.run(() => watch(selection, resolve, { once: true }));\n try {\n await promiseTimeout(promise, 500);\n } catch {\n return false;\n } finally {\n scope.stop();\n }\n }\n return true;\n },\n});\n\nfunction getDataColDefs(\n columnDefs: ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>[] | null | undefined,\n): ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>[] {\n const isColDef = <TData, TValue>(\n def: ColDef<TData, TValue> | ColGroupDef<TData>,\n ): def is ColDef<TData, TValue> => !(\"children\" in def);\n if (!columnDefs) return [];\n return columnDefs\n .filter(isColDef)\n .filter((def) => def.colId && def.colId !== PlAgDataTableRowNumberColId);\n}\n\n// Propagate columns for filter component\nwatchCached(\n () => gridOptions.value.columnDefs,\n (columnDefs) => {\n const sourceId = settings.value.sourceId;\n if (sourceId === null) {\n filterableColumns.value = [];\n } else {\n const dataColumns = getDataColDefs(columnDefs);\n filterableColumns.value = dataColumns.map(\n (def) => parseJson(def.colId! satisfies string as PlTableColumnIdJson).labeled,\n );\n }\n },\n { immediate: true },\n);\n\n// Update AgGrid when settings change\nconst defaultSelection = createPlSelectionModel();\nlet oldSettings: PlDataTableSettingsV2 | null = null;\nconst generation = ref(0);\nwatch(\n () => [gridApi.value, settings.value] as const,\n ([gridApi, settings]) => {\n // Wait for AgGrid reinitialization, gridApi will eventually become initialized\n if (!gridApi || gridApi.isDestroyed()) return;\n // Verify that this is not a false watch trigger\n if (isJsonEqual(settings, oldSettings)) return;\n ++generation.value;\n try {\n // Hide no rows overlay if it is shown, or else loading overlay will not be shown\n gridApi.hideOverlay();\n dataRenderedTracker.reset();\n\n // No data source selected -> reset state to default\n if (settings.sourceId === null) {\n gridApi.updateGridOptions({\n loading: true,\n loadingOverlayComponentParams: {\n ...gridOptions.value.loadingOverlayComponentParams,\n variant: settings.pending ? \"running\" : \"not-ready\",\n } satisfies PlAgOverlayLoadingParams,\n columnDefs: undefined,\n serverSideDatasource: undefined,\n });\n if (selection.value) {\n if (selection.value && !isJsonEqual(selection.value, defaultSelection)) {\n selection.value = createPlSelectionModel();\n }\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n return;\n }\n\n // Data source changed -> show full page loader, clear selection\n if (settings.sourceId !== oldSettings?.sourceId) {\n gridApi.updateGridOptions({\n loading: true,\n loadingOverlayComponentParams: {\n ...gridOptions.value.loadingOverlayComponentParams,\n variant: \"loading\",\n } satisfies PlAgOverlayLoadingParams,\n });\n if (selection.value && oldSettings?.sourceId) {\n if (selection.value && !isJsonEqual(selection.value, defaultSelection)) {\n selection.value = createPlSelectionModel();\n }\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n }\n\n // Model updated -> show skeletons instead of data\n const sourceChanged =\n settings.model?.sourceId && settings.model.sourceId !== settings.sourceId;\n if (!settings.model || sourceChanged) {\n const state = gridApi.getServerSideGroupLevelState();\n const rowCount = !sourceChanged && state.length > 0 ? state[0].rowCount : 1;\n return gridApi.updateGridOptions({\n serverSideDatasource: {\n getRows: (params) => {\n params.success({ rowData: [], rowCount });\n },\n },\n });\n }\n\n // Model ready -> calculate new state\n const stateGeneration = generation.value;\n calculateGridOptions({\n generation,\n pfDriver: getRawPlatformaInstance().pFrameDriver,\n model: settings.model,\n sheets: settings.sheets ?? [],\n dataRenderedTracker,\n hiddenColIds: gridState.value.columnVisibility?.hiddenColIds,\n cellButtonAxisParams: {\n showCellButtonForAxisId: props.showCellButtonForAxisId,\n cellButtonInvokeRowsOnDoubleClick: props.cellButtonInvokeRowsOnDoubleClick,\n trigger: (key?: PTableKey) => emit(\"cellButtonClicked\", key),\n } satisfies PlAgCellButtonAxisParams,\n })\n .then((result) => {\n if (gridApi.isDestroyed() || stateGeneration !== generation.value) return;\n const { axesSpec, ...options } = result;\n gridApi.updateGridOptions({\n ...options,\n });\n if (selection.value) {\n // Update selection if axesSpec changed, as order of axes may have changed and so we need to remap selected keys\n const { axesSpec: oldAxesSpec, selectedKeys: oldSelectedKeys } = selection.value;\n if (!isJsonEqual(oldAxesSpec, axesSpec)) {\n if (!oldAxesSpec || axesSpec.length !== oldAxesSpec.length) {\n const newSelection: PlSelectionModel = { axesSpec, selectedKeys: [] };\n if (!isJsonEqual(selection.value, newSelection)) {\n selection.value = newSelection;\n }\n return gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n\n const mapping = oldAxesSpec\n .map(getAxisId)\n .map((id) => axesSpec.findIndex((axis) => matchAxisId(axis, id)));\n const mappingSet = new Set(mapping);\n if (mappingSet.has(-1) || mappingSet.size !== axesSpec.length) {\n const newSelection: PlSelectionModel = { axesSpec, selectedKeys: [] };\n if (!isJsonEqual(selection.value, newSelection)) {\n selection.value = newSelection;\n }\n return gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n\n const selectedNodes = oldSelectedKeys.map((key) =>\n mapping.map((index) => key[index]),\n );\n const newSelection: PlSelectionModel = { axesSpec, selectedKeys: selectedNodes };\n if (!isJsonEqual(selection.value, newSelection)) {\n selection.value = newSelection;\n }\n return gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: selectedNodes.map((key) => canonicalizeJson<PlTableRowId>(key)),\n });\n }\n }\n })\n .catch((error: unknown) => {\n if (gridApi.isDestroyed() || stateGeneration !== generation.value) return;\n if (isAbortError(error)) return;\n console.trace(error);\n })\n .finally(() => {\n if (gridApi.isDestroyed() || stateGeneration !== generation.value) return;\n gridApi.updateGridOptions({\n loading: false,\n });\n });\n dataRenderedTracker.promise.then(() => emit(\"newDataRendered\"));\n } catch (error: unknown) {\n console.trace(error);\n } finally {\n oldSettings = settings;\n }\n },\n);\n\nwatch(\n () => ({\n gridApi: gridApi.value,\n loadingText: props.loadingText,\n runningText: props.runningText,\n notReadyText: props.notReadyText,\n noRowsText: props.noRowsText,\n }),\n ({ gridApi, loadingText, runningText, notReadyText, noRowsText }) => {\n if (!gridApi || gridApi.isDestroyed()) return;\n gridApi.updateGridOptions({\n loadingOverlayComponentParams: {\n ...gridOptions.value.loadingOverlayComponentParams,\n loadingText,\n runningText,\n notReadyText,\n },\n noRowsOverlayComponentParams: {\n ...gridOptions.value.noRowsOverlayComponentParams,\n text: noRowsText,\n },\n });\n },\n);\n\nwatchEffect(() => {\n if (!gridApi.value || gridApi.value?.isDestroyed()) return;\n gridApi.value.updateGridOptions({\n statusBar: gridOptions.value.loading\n ? undefined\n : {\n statusPanels: [{ statusPanel: PlAgRowCount, align: \"left\" }],\n },\n });\n});\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <PlAgGridColumnManager v-if=\"gridApi && !disableColumnsPanel\" :api=\"gridApi\" />\n <PlTableFiltersV2\n v-if=\"!disableFiltersPanel\"\n v-model=\"filtersState\"\n :settings=\"filtersSettings\"\n />\n <PlAgCsvExporter v-if=\"gridApi && showExportButton\" :api=\"gridApi\" />\n <PlAgDataTableSheets v-model=\"sheetsState\" :settings=\"sheetsSettings\">\n <template v-if=\"$slots['before-sheets']\" #before>\n <slot name=\"before-sheets\" />\n </template>\n <template v-if=\"$slots['after-sheets']\" #after>\n <slot name=\"after-sheets\" />\n </template>\n </PlAgDataTableSheets>\n <AgGridVue\n :key=\"reloadKey\"\n :theme=\"AgGridTheme\"\n :class=\"$style.grid\"\n :grid-options=\"gridOptions\"\n />\n </div>\n</template>\n\n<style lang=\"css\" module>\n.container {\n display: flex;\n flex-direction: column;\n height: 100%;\n gap: 12px;\n}\n\n.grid {\n flex: 1;\n}\n</style>\n"],"names":["tableState","_useModel","selection","__props","props","settings","toRefs","emit","__emit","gridState","sheetsState","filtersState","useTableState","sheetsSettings","computed","settingsCopy","filterableColumns","ref","filtersSettings","columns","column","gridApi","shallowRef","dataRenderedTracker","DeferredCircular","gridOptions","event","state","selectedKeys","_a","nodeId","parseJson","isJsonEqual","params","PlOverlayLoading","PlOverlayNoRows","api","autoSizeRowNumberColumn","setGridOption","key","value","options","updateGridOptions","target","prop","receiver","makePartialState","PlAgDataTableRowNumberColId","reloadKey","watch","selfState","cellRendererSelector","__expose","rowKey","ensureNodeVisible","row","axesSpec","axes","mapping","spec","id","getAxisId","axis","matchAxisId","mappingSet","selectedNodes","canonicalizeJson","index","oldSelectedKeys","scope","effectScope","resolve","promise","promiseTimeout","getDataColDefs","columnDefs","isColDef","def","watchCached","dataColumns","defaultSelection","createPlSelectionModel","oldSettings","generation","sourceChanged","rowCount","stateGeneration","calculateGridOptions","getRawPlatformaInstance","_b","result","oldAxesSpec","newSelection","error","isAbortError","loadingText","runningText","notReadyText","noRowsText","watchEffect","PlAgRowCount","_createElementBlock","_normalizeClass","$style","_createBlock","_unref","PlAgGridColumnManager","PlTableFiltersV2","$event","PlAgCsvExporter","_createVNode","PlAgDataTableSheets","$slots","_renderSlot","_ctx","AgGridVue","AgGridTheme"],"mappings":"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"}
1
+ {"version":3,"file":"PlAgDataTableV2.vue2.js","sources":["../../../src/components/PlAgDataTable/PlAgDataTableV2.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { promiseTimeout, isJsonEqual } from \"@milaboratories/helpers\";\nimport type {\n AxisId,\n PlDataTableGridStateCore,\n PlDataTableStateV2,\n PlSelectionModel,\n PlTableColumnIdJson,\n PTableColumnSpec,\n PTableKey,\n PTableValue,\n} from \"@platforma-sdk/model\";\nimport {\n getRawPlatformaInstance,\n parseJson,\n createPlSelectionModel,\n matchAxisId,\n getAxisId,\n canonicalizeJson,\n isAbortError,\n} from \"@platforma-sdk/model\";\nimport type {\n CellRendererSelectorFunc,\n ColDef,\n ColGroupDef,\n GridApi,\n GridOptions,\n GridState,\n ManagedGridOptionKey,\n ManagedGridOptions,\n} from \"ag-grid-enterprise\";\nimport { AgGridVue } from \"ag-grid-vue3\";\nimport { computed, effectScope, ref, shallowRef, toRefs, watch, watchEffect } from \"vue\";\nimport { AgGridTheme } from \"../../aggrid\";\nimport PlAgCsvExporter from \"../PlAgCsvExporter/PlAgCsvExporter.vue\";\nimport { PlAgGridColumnManager } from \"../PlAgGridColumnManager\";\nimport type { PlDataTableFiltersSettings } from \"../PlTableFilters\";\nimport PlTableFiltersV2 from \"../PlTableFilters/PlTableFiltersV2.vue\";\nimport PlAgDataTableSheets from \"./PlAgDataTableSheets.vue\";\nimport PlOverlayLoading from \"./PlAgOverlayLoading.vue\";\nimport PlOverlayNoRows from \"./PlAgOverlayNoRows.vue\";\nimport PlAgRowCount from \"./PlAgRowCount.vue\";\nimport { DeferredCircular, ensureNodeVisible } from \"./sources/focus-row\";\nimport { autoSizeRowNumberColumn, PlAgDataTableRowNumberColId } from \"./sources/row-number\";\nimport type { PlAgCellButtonAxisParams } from \"./sources/table-source-v2\";\nimport { calculateGridOptions } from \"./sources/table-source-v2\";\nimport { useTableState } from \"./sources/table-state-v2\";\nimport type {\n PlAgDataTableV2Controller,\n PlAgDataTableV2Row,\n PlAgOverlayLoadingParams,\n PlAgOverlayNoRowsParams,\n PlDataTableSettingsV2,\n PlDataTableSheetsSettings,\n PlTableRowId,\n PlTableRowIdJson,\n} from \"./types\";\nimport { watchCached } from \"@milaboratories/uikit\";\nimport { type PTableHidden } from \"./sources/common\";\n\nconst tableState = defineModel<PlDataTableStateV2>({\n required: true,\n});\n/** Warning: selection model value updates are ignored, use updateSelection instead */\nconst selection = defineModel<PlSelectionModel>(\"selection\");\nconst props = defineProps<{\n /** Required component settings */\n settings: Readonly<PlDataTableSettingsV2>;\n\n /**\n * The disableColumnsPanel prop controls the display of a button that activates\n * the columns management panel in the table. To make the button functional\n * and visible, you must also include the PlAgDataTableToolsPanel component in your layout.\n * This component serves as the target for teleporting the button.\n */\n disableColumnsPanel?: boolean;\n\n /**\n * The disableFiltersPanel prop controls the display of a button that activates\n * the filters management panel in the table. To make the button functional\n * and visible, you must also include the PlAgDataTableToolsPanel component in your layout.\n * This component serves as the target for teleporting the button.\n */\n disableFiltersPanel?: boolean;\n\n /**\n * The showExportButton prop controls the display of a button that allows\n * to export table data in CSV format. To make the button functional\n * and visible, you must also include the PlAgDataTableToolsPanel component in your layout.\n * This component serves as the target for teleporting the button.\n */\n showExportButton?: boolean;\n\n /**\n * The AxisId property is used to configure and display the PlAgTextAndButtonCell component\n */\n showCellButtonForAxisId?: AxisId;\n\n /**\n * If cellButtonInvokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row.\n *\n * If cellButtonInvokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but will triggered cellButtonClicked event with (key: PTableRowKey) argument.\n */\n cellButtonInvokeRowsOnDoubleClick?: boolean;\n\n /** @see {@link PlAgOverlayLoadingParams.loadingText} */\n loadingText?: string;\n\n /** @see {@link PlAgOverlayLoadingParams.runningText} */\n runningText?: string;\n\n /** @see {@link PlAgOverlayLoadingParams.notReadyText} */\n notReadyText?: string;\n\n /** @see {@link PlAgOverlayNoRowsParams.text} */\n noRowsText?: string;\n\n /**\n * Callback to override the default renderer for a given cell.\n * @see https://www.ag-grid.com/vue-data-grid/component-cell-renderer/#dynamic-component-selection\n */\n cellRendererSelector?: CellRendererSelectorFunc<PlAgDataTableV2Row>;\n}>();\nconst { settings } = toRefs(props);\nconst emit = defineEmits<{\n rowDoubleClicked: [key?: PTableKey];\n cellButtonClicked: [key?: PTableKey];\n newDataRendered: [];\n}>();\n\nconst { gridState, sheetsState, filtersState } = useTableState(tableState, settings);\n\nconst sheetsSettings = computed<PlDataTableSheetsSettings>(() => {\n const settingsCopy = { ...settings.value };\n return settingsCopy.sourceId !== null\n ? {\n sheets: settingsCopy.sheets ?? [],\n cachedState: [...sheetsState.value],\n }\n : {\n sheets: [],\n cachedState: [],\n };\n});\n\nconst filterableColumns = ref<PTableColumnSpec[]>([]);\nconst filtersSettings = computed<PlDataTableFiltersSettings>(() => {\n const settingsCopy = { ...settings.value };\n const columns = filterableColumns.value;\n const result =\n settingsCopy.sourceId !== null && columns.length > 0\n ? {\n columns,\n config: (column: PTableColumnSpec) =>\n settingsCopy.filtersConfig({ sourceId: settingsCopy.sourceId, column }),\n cachedState: [...filtersState.value],\n }\n : {\n columns: [],\n config: () => ({}),\n cachedState: [],\n };\n return result;\n});\n\nconst gridApi = shallowRef<GridApi<PlAgDataTableV2Row> | null>(null);\nconst dataRenderedTracker = new DeferredCircular<GridApi<PlAgDataTableV2Row>>();\nconst gridOptions = shallowRef<GridOptions<PlAgDataTableV2Row>>({\n animateRows: false,\n suppressColumnMoveAnimation: true,\n cellSelection: !selection.value,\n initialState: gridState.value,\n autoSizeStrategy: { type: \"fitCellContents\" },\n rowSelection: selection.value\n ? {\n mode: \"multiRow\",\n selectAll: \"all\",\n groupSelects: \"self\",\n checkboxes: false,\n headerCheckbox: false,\n enableClickSelection: false,\n }\n : undefined,\n onSelectionChanged: (event) => {\n if (selection.value) {\n const state = event.api.getServerSideSelectionState();\n const selectedKeys =\n state?.toggledNodes?.map((nodeId) => parseJson(nodeId as PlTableRowIdJson)) ?? [];\n if (!isJsonEqual(selection.value.selectedKeys, selectedKeys)) {\n selection.value = { ...selection.value, selectedKeys };\n }\n }\n },\n onRowDoubleClicked: (event) => {\n if (event.data && event.data.axesKey) emit(\"rowDoubleClicked\", event.data.axesKey);\n },\n defaultColDef: {\n suppressHeaderMenuButton: true,\n sortingOrder: [\"desc\", \"asc\", null],\n cellRendererSelector: props.cellRendererSelector,\n },\n maintainColumnOrder: true,\n localeText: {\n loadingError: \"...\",\n },\n rowModelType: \"serverSide\",\n // cacheBlockSize should be the same as PlMultiSequenceAlignment limit\n // so that selectAll will add all rows to selection\n cacheBlockSize: 1000,\n maxBlocksInCache: 100,\n blockLoadDebounceMillis: 500,\n serverSideSortAllLevels: true,\n suppressServerSideFullWidthLoadingRow: true,\n getRowId: (params) => params.data.id,\n loading: true,\n loadingOverlayComponentParams: {\n variant: \"not-ready\",\n loadingText: props.loadingText,\n runningText: props.runningText,\n notReadyText: props.notReadyText,\n } satisfies PlAgOverlayLoadingParams,\n loadingOverlayComponent: PlOverlayLoading,\n noRowsOverlayComponent: PlOverlayNoRows,\n noRowsOverlayComponentParams: {\n text: props.noRowsText,\n } satisfies PlAgOverlayNoRowsParams,\n defaultCsvExportParams: {\n allColumns: true,\n suppressQuotes: true,\n columnSeparator: \"\\t\",\n fileName: \"table.tsv\",\n },\n onGridReady: (event) => {\n const api = event.api;\n autoSizeRowNumberColumn(api);\n const setGridOption = (key: ManagedGridOptionKey, value: GridOptions[ManagedGridOptionKey]) => {\n const options = { ...gridOptions.value };\n options[key] = value;\n gridOptions.value = options;\n api.setGridOption(key, value);\n };\n const updateGridOptions = (options: ManagedGridOptions) => {\n gridOptions.value = {\n ...gridOptions.value,\n ...options,\n };\n api.updateGridOptions(options);\n };\n gridApi.value = new Proxy(api, {\n get(target, prop, receiver) {\n switch (prop) {\n case \"setGridOption\":\n return setGridOption;\n case \"updateGridOptions\":\n return updateGridOptions;\n default:\n return Reflect.get(target, prop, receiver);\n }\n },\n });\n },\n onStateUpdated: (event) => {\n gridOptions.value.initialState = gridState.value = makePartialState(event.state);\n if (!isJsonEqual(event.sources, [\"columnSizing\"])) {\n event.api.autoSizeColumns(\n event.api\n .getAllDisplayedColumns()\n .filter((column) => column.getColId() !== PlAgDataTableRowNumberColId),\n );\n }\n },\n onGridPreDestroyed: (event) => {\n gridOptions.value.initialState = gridState.value = makePartialState(event.api.getState());\n gridApi.value = null;\n },\n});\n\n// Restore proper types erased by AgGrid\nfunction makePartialState(state: GridState): PlDataTableGridStateCore {\n return {\n columnOrder: state.columnOrder as\n | {\n orderedColIds: PlTableColumnIdJson[];\n }\n | undefined,\n sort: state.sort as\n | {\n sortModel: {\n colId: PlTableColumnIdJson;\n sort: \"asc\" | \"desc\";\n }[];\n }\n | undefined,\n columnVisibility: state.columnVisibility as\n | {\n hiddenColIds: PlTableColumnIdJson[];\n }\n | undefined,\n };\n}\n\n// Reload AgGrid when new state arrives from server\nconst reloadKey = ref(0);\nwatch(\n () => [gridApi.value, gridState.value] as const,\n ([gridApi, gridState]) => {\n if (!gridApi || gridApi.isDestroyed()) return;\n const selfState = makePartialState(gridApi.getState());\n if (!isJsonEqual(gridState, {}) && !isJsonEqual(gridState, selfState)) {\n gridOptions.value.initialState = gridState;\n ++reloadKey.value;\n }\n },\n);\n\n// Make cellRendererSelector reactive\nconst cellRendererSelector = computed(() => props.cellRendererSelector ?? null);\nwatch(\n () => [gridApi.value, cellRendererSelector.value] as const,\n ([gridApi, cellRendererSelector]) => {\n if (!gridApi || gridApi.isDestroyed()) return;\n gridApi.setGridOption(\"defaultColDef\", {\n ...gridOptions.value.defaultColDef,\n cellRendererSelector: cellRendererSelector ?? undefined,\n });\n },\n);\n\ndefineExpose<PlAgDataTableV2Controller>({\n focusRow: async (rowKey) => {\n const gridApi = await dataRenderedTracker.promise;\n if (gridApi.isDestroyed()) return false;\n\n return ensureNodeVisible(gridApi, (row) => isJsonEqual(row.data?.axesKey, rowKey));\n },\n updateSelection: async ({ axesSpec, selectedKeys }) => {\n const gridApi = await dataRenderedTracker.promise;\n if (gridApi.isDestroyed()) return false;\n\n const axes = selection.value?.axesSpec;\n if (!axes || axes.length !== axesSpec.length) return false;\n\n const mapping = axesSpec.map((spec) => {\n const id = getAxisId(spec);\n return axes.findIndex((axis) => matchAxisId(axis, id));\n });\n const mappingSet = new Set(mapping);\n if (mappingSet.has(-1) || mappingSet.size !== axesSpec.length) return false;\n\n const selectedNodes = selectedKeys.map((key) =>\n canonicalizeJson<PlTableRowId>(mapping.map((index) => key[index])),\n );\n const oldSelectedKeys = gridApi.getServerSideSelectionState()?.toggledNodes ?? [];\n if (!isJsonEqual(oldSelectedKeys, selectedNodes)) {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: selectedNodes,\n });\n\n // wait for `onSelectionChanged` to update `selection` model\n const scope = effectScope();\n const { resolve, promise } = Promise.withResolvers();\n scope.run(() => watch(selection, resolve, { once: true }));\n try {\n await promiseTimeout(promise, 500);\n } catch {\n return false;\n } finally {\n scope.stop();\n }\n }\n return true;\n },\n});\n\nfunction getDataColDefs(\n columnDefs: ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>[] | null | undefined,\n): ColDef<PlAgDataTableV2Row, PTableValue | PTableHidden>[] {\n const isColDef = <TData, TValue>(\n def: ColDef<TData, TValue> | ColGroupDef<TData>,\n ): def is ColDef<TData, TValue> => !(\"children\" in def);\n if (!columnDefs) return [];\n return columnDefs\n .filter(isColDef)\n .filter((def) => def.colId && def.colId !== PlAgDataTableRowNumberColId);\n}\n\n// Propagate columns for filter component\nwatchCached(\n () => gridOptions.value.columnDefs,\n (columnDefs) => {\n const sourceId = settings.value.sourceId;\n if (sourceId === null) {\n filterableColumns.value = [];\n } else {\n const dataColumns = getDataColDefs(columnDefs);\n filterableColumns.value = dataColumns.map(\n (def) => parseJson(def.colId! satisfies string as PlTableColumnIdJson).labeled,\n );\n }\n },\n { immediate: true },\n);\n\n// Update AgGrid when settings change\nconst defaultSelection = createPlSelectionModel();\nlet oldSettings: PlDataTableSettingsV2 | null = null;\nconst generation = ref(0);\nwatch(\n () => [gridApi.value, settings.value] as const,\n ([gridApi, settings]) => {\n // Wait for AgGrid reinitialization, gridApi will eventually become initialized\n if (!gridApi || gridApi.isDestroyed()) return;\n // Verify that this is not a false watch trigger\n if (isJsonEqual(settings, oldSettings)) return;\n ++generation.value;\n try {\n // Hide no rows overlay if it is shown, or else loading overlay will not be shown\n gridApi.hideOverlay();\n dataRenderedTracker.reset();\n\n // No data source selected -> reset state to default\n if (settings.sourceId === null) {\n gridApi.updateGridOptions({\n loading: true,\n loadingOverlayComponentParams: {\n ...gridOptions.value.loadingOverlayComponentParams,\n variant: settings.pending ? \"running\" : \"not-ready\",\n } satisfies PlAgOverlayLoadingParams,\n columnDefs: undefined,\n serverSideDatasource: undefined,\n });\n if (selection.value) {\n if (selection.value && !isJsonEqual(selection.value, defaultSelection)) {\n selection.value = createPlSelectionModel();\n }\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n return;\n }\n\n // Data source changed -> show full page loader, clear selection\n if (settings.sourceId !== oldSettings?.sourceId) {\n gridApi.updateGridOptions({\n loading: true,\n loadingOverlayComponentParams: {\n ...gridOptions.value.loadingOverlayComponentParams,\n variant: \"loading\",\n } satisfies PlAgOverlayLoadingParams,\n });\n if (selection.value && oldSettings?.sourceId) {\n if (selection.value && !isJsonEqual(selection.value, defaultSelection)) {\n selection.value = createPlSelectionModel();\n }\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n }\n\n // Model updated -> show skeletons instead of data\n const sourceChanged =\n settings.model?.sourceId && settings.model.sourceId !== settings.sourceId;\n if (!settings.model || sourceChanged) {\n const state = gridApi.getServerSideGroupLevelState();\n const rowCount = !sourceChanged && state.length > 0 ? state[0].rowCount : 1;\n return gridApi.updateGridOptions({\n serverSideDatasource: {\n getRows: (params) => {\n params.success({ rowData: [], rowCount });\n },\n },\n });\n }\n\n // Model ready -> calculate new state\n const stateGeneration = generation.value;\n calculateGridOptions({\n generation,\n pfDriver: getRawPlatformaInstance().pFrameDriver,\n model: settings.model,\n sheets: settings.sheets ?? [],\n dataRenderedTracker,\n hiddenColIds: gridState.value.columnVisibility?.hiddenColIds,\n cellButtonAxisParams: {\n showCellButtonForAxisId: props.showCellButtonForAxisId,\n cellButtonInvokeRowsOnDoubleClick: props.cellButtonInvokeRowsOnDoubleClick,\n trigger: (key?: PTableKey) => emit(\"cellButtonClicked\", key),\n } satisfies PlAgCellButtonAxisParams,\n })\n .then((result) => {\n if (gridApi.isDestroyed() || stateGeneration !== generation.value) return;\n const { axesSpec, ...options } = result;\n gridApi.updateGridOptions({\n ...options,\n });\n if (selection.value) {\n // Update selection if axesSpec changed, as order of axes may have changed and so we need to remap selected keys\n const { axesSpec: oldAxesSpec, selectedKeys: oldSelectedKeys } = selection.value;\n if (!isJsonEqual(oldAxesSpec, axesSpec)) {\n if (!oldAxesSpec || axesSpec.length !== oldAxesSpec.length) {\n const newSelection: PlSelectionModel = { axesSpec, selectedKeys: [] };\n if (!isJsonEqual(selection.value, newSelection)) {\n selection.value = newSelection;\n }\n return gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n\n const mapping = oldAxesSpec\n .map(getAxisId)\n .map((id) => axesSpec.findIndex((axis) => matchAxisId(axis, id)));\n const mappingSet = new Set(mapping);\n if (mappingSet.has(-1) || mappingSet.size !== axesSpec.length) {\n const newSelection: PlSelectionModel = { axesSpec, selectedKeys: [] };\n if (!isJsonEqual(selection.value, newSelection)) {\n selection.value = newSelection;\n }\n return gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: [],\n });\n }\n\n const selectedNodes = oldSelectedKeys.map((key) =>\n mapping.map((index) => key[index]),\n );\n const newSelection: PlSelectionModel = { axesSpec, selectedKeys: selectedNodes };\n if (!isJsonEqual(selection.value, newSelection)) {\n selection.value = newSelection;\n }\n return gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: selectedNodes.map((key) => canonicalizeJson<PlTableRowId>(key)),\n });\n }\n }\n })\n .catch((error: unknown) => {\n if (gridApi.isDestroyed() || stateGeneration !== generation.value) return;\n if (isAbortError(error)) return;\n console.trace(error);\n })\n .finally(() => {\n if (gridApi.isDestroyed() || stateGeneration !== generation.value) return;\n gridApi.updateGridOptions({\n loading: false,\n });\n });\n dataRenderedTracker.promise.then(() => emit(\"newDataRendered\"));\n } catch (error: unknown) {\n console.trace(error);\n } finally {\n oldSettings = settings;\n }\n },\n);\n\nwatch(\n () => ({\n gridApi: gridApi.value,\n loadingText: props.loadingText,\n runningText: props.runningText,\n notReadyText: props.notReadyText,\n noRowsText: props.noRowsText,\n }),\n ({ gridApi, loadingText, runningText, notReadyText, noRowsText }) => {\n if (!gridApi || gridApi.isDestroyed()) return;\n gridApi.updateGridOptions({\n loadingOverlayComponentParams: {\n ...gridOptions.value.loadingOverlayComponentParams,\n loadingText,\n runningText,\n notReadyText,\n },\n noRowsOverlayComponentParams: {\n ...gridOptions.value.noRowsOverlayComponentParams,\n text: noRowsText,\n },\n });\n },\n);\n\nwatchEffect(() => {\n if (!gridApi.value || gridApi.value?.isDestroyed()) return;\n gridApi.value.updateGridOptions({\n statusBar: gridOptions.value.loading\n ? undefined\n : {\n statusPanels: [{ statusPanel: PlAgRowCount, align: \"left\" }],\n },\n });\n});\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <PlAgGridColumnManager v-if=\"gridApi && !disableColumnsPanel\" :api=\"gridApi\" />\n <PlTableFiltersV2\n v-if=\"!disableFiltersPanel\"\n v-model=\"filtersState\"\n :settings=\"filtersSettings\"\n />\n <PlAgCsvExporter v-if=\"gridApi && showExportButton\" :api=\"gridApi\" />\n <PlAgDataTableSheets v-model=\"sheetsState\" :settings=\"sheetsSettings\">\n <template v-if=\"$slots['before-sheets']\" #before>\n <slot name=\"before-sheets\" />\n </template>\n <template v-if=\"$slots['after-sheets']\" #after>\n <slot name=\"after-sheets\" />\n </template>\n </PlAgDataTableSheets>\n <AgGridVue\n :key=\"reloadKey\"\n :theme=\"AgGridTheme\"\n :class=\"$style.grid\"\n :grid-options=\"gridOptions\"\n />\n </div>\n</template>\n\n<style lang=\"css\" module>\n.container {\n display: flex;\n flex-direction: column;\n height: 100%;\n gap: 12px;\n}\n\n.grid {\n flex: 1;\n}\n</style>\n"],"names":["tableState","_useModel","selection","__props","props","settings","toRefs","emit","__emit","gridState","sheetsState","filtersState","useTableState","sheetsSettings","computed","settingsCopy","filterableColumns","ref","filtersSettings","columns","column","gridApi","shallowRef","dataRenderedTracker","DeferredCircular","gridOptions","event","state","selectedKeys","_a","nodeId","parseJson","isJsonEqual","params","PlOverlayLoading","PlOverlayNoRows","api","autoSizeRowNumberColumn","setGridOption","key","value","options","updateGridOptions","target","prop","receiver","makePartialState","PlAgDataTableRowNumberColId","reloadKey","watch","selfState","cellRendererSelector","__expose","rowKey","ensureNodeVisible","row","axesSpec","axes","mapping","spec","id","getAxisId","axis","matchAxisId","mappingSet","selectedNodes","canonicalizeJson","index","oldSelectedKeys","scope","effectScope","resolve","promise","promiseTimeout","getDataColDefs","columnDefs","isColDef","def","watchCached","dataColumns","defaultSelection","createPlSelectionModel","oldSettings","generation","sourceChanged","rowCount","stateGeneration","calculateGridOptions","getRawPlatformaInstance","_b","result","oldAxesSpec","newSelection","error","isAbortError","loadingText","runningText","notReadyText","noRowsText","watchEffect","PlAgRowCount","_createElementBlock","_normalizeClass","$style","_createBlock","_unref","PlAgGridColumnManager","PlTableFiltersV2","$event","PlAgCsvExporter","_createVNode","PlAgDataTableSheets","$slots","_renderSlot","_ctx","AgGridVue","AgGridTheme"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlAnnotations.vue2.js","sources":["../../../../src/components/PlAnnotations/components/PlAnnotations.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Props as BaseProps } from \"./FilterSidebar.vue\";\nexport type Props = BaseProps & {\n onDeleteSchema?: () => void;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, effect, shallowRef } from \"vue\";\n\nimport { isNil } from \"@milaboratories/helpers\";\nimport { PlSidebarGroup, useConfirm } from \"@milaboratories/uikit\";\n\nimport type { Annotation } from \"../types\";\nimport AnnotationsSidebar from \"./AnnotationsSidebar.vue\";\nimport FilterSidebar from \"./FilterSidebar.vue\";\n\n// Models\nconst annotation = defineModel<Annotation>(\"annotation\", { required: true });\n// Props\nconst props = defineProps<Props>();\n// State\nconst selectedStepId = shallowRef<number | undefined>(undefined);\nconst selectedStep = computed(() => {\n return isNil(selectedStepId.value) || isNil(annotation.value)\n ? undefined\n : annotation.value.steps.find((step) => step.id === selectedStepId.value);\n});\n\n// Watchers\neffect(function setDefaultStepId() {\n if (selectedStepId.value === undefined && annotation.value.steps.length > 0) {\n selectedStepId.value = annotation.value.steps[0].id;\n }\n});\n// Hooks\nconst confirmResetSchema = useConfirm({\n title: \"Reset Schema\",\n message: \"Are you sure you want to reset the schema? This action cannot be undone.\",\n confirmLabel: \"Yes, reset\",\n cancelLabel: \"No, cancel\",\n});\n// Actions\nasync function handleDeleteSchema() {\n if (await confirmResetSchema()) {\n selectedStepId.value = undefined;\n props.onDeleteSchema?.();\n }\n}\n</script>\n\n<template>\n <PlSidebarGroup>\n <template #item-0>\n <AnnotationsSidebar\n v-model:annotation=\"annotation\"\n v-model:selectedStepId=\"selectedStepId\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n @delete-schema=\"handleDeleteSchema\"\n />\n </template>\n <template #item-1>\n <FilterSidebar\n v-if=\"selectedStep\"\n v-model:step=\"selectedStep\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :selectedStepId=\"selectedStepId\"\n :hasSelectedColumns=\"props.hasSelectedColumns\"\n :getValuesForSelectedColumns=\"props.getValuesForSelectedColumns\"\n />\n </template>\n </PlSidebarGroup>\n</template>\n\n<style module>\n.sidebarItem {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["annotation","_useModel","props","__props","selectedStepId","shallowRef","selectedStep","computed","isNil","step","effect","confirmResetSchema","useConfirm","handleDeleteSchema","_a","_createBlock","_unref","PlSidebarGroup","_createVNode","AnnotationsSidebar","$event","_normalizeClass","$style","FilterSidebar"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAAaC,KAAwB,YAAgC,GAErEC,IAAQC,GAERC,IAAiBC,EAA+B,MAAS,GACzDC,IAAeC,EAAS,MACrBC,EAAMJ,EAAe,KAAK,KAAKI,EAAMR,EAAW,KAAK,IACxD,SACAA,EAAW,MAAM,MAAM,KAAK,CAACS,MAASA,EAAK,OAAOL,EAAe,KAAK,CAC3E;AAGD,IAAAM,EAAO,WAA4B;AACjC,MAAIN,EAAe,UAAU,UAAaJ,EAAW,MAAM,MAAM,SAAS,MACxEI,EAAe,QAAQJ,EAAW,MAAM,MAAM,CAAC,EAAE;AAAA,IAErD,CAAC;AAED,UAAMW,IAAqBC,EAAW;AAAA,MACpC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,aAAa;AAAA,IAAA,CACd;AAED,mBAAeC,IAAqB;;AAClC,MAAI,MAAMF,QACRP,EAAe,QAAQ,SACvBU,IAAAZ,EAAM,mBAAN,QAAAY,EAAA,KAAAZ;AAAA,IAEJ;2BAIEa,EAsBiBC,EAAAC,CAAA,GAAA,MAAA;AAAA,MArBJ,YACT,MAME;AAAA,QANFC,EAMEC,GAAA;AAAA,UALQ,YAAYnB,EAAA;AAAA,wDAAAA,EAAU,QAAAoB;AAAA,UACtB,gBAAgBhB,EAAA;AAAA,4DAAAA,EAAc,QAAAgB;AAAA,UACrC,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,gBAAeW;AAAA,QAAA;;MAGT,YACT,MASE;AAAA,QARMP,EAAA,cADRS,EASEQ,GAAA;AAAA;UAPQ,MAAMjB,EAAA;AAAA,kDAAAA,EAAY,QAAAc;AAAA,UACzB,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,uBAAqBA,EAAM;AAAA,UAC3B,gBAAgBE,EAAA;AAAA,UAChB,oBAAoBF,EAAM;AAAA,UAC1B,6BAA6BA,EAAM;AAAA,QAAA;;;;;;"}
1
+ {"version":3,"file":"PlAnnotations.vue2.js","sources":["../../../../src/components/PlAnnotations/components/PlAnnotations.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Props as BaseProps } from \"./FilterSidebar.vue\";\nexport type Props = BaseProps & {\n onDeleteSchema?: () => void;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, effect, shallowRef } from \"vue\";\n\nimport { isNil } from \"@milaboratories/helpers\";\nimport { PlSidebarGroup, useConfirm } from \"@milaboratories/uikit\";\n\nimport type { Annotation } from \"../types\";\nimport AnnotationsSidebar from \"./AnnotationsSidebar.vue\";\nimport FilterSidebar from \"./FilterSidebar.vue\";\n\n// Models\nconst annotation = defineModel<Annotation>(\"annotation\", { required: true });\n// Props\nconst props = defineProps<Props>();\n// State\nconst selectedStepId = shallowRef<number | undefined>(undefined);\nconst selectedStep = computed(() => {\n return isNil(selectedStepId.value) || isNil(annotation.value)\n ? undefined\n : annotation.value.steps.find((step) => step.id === selectedStepId.value);\n});\n\n// Watchers\neffect(function setDefaultStepId() {\n if (selectedStepId.value === undefined && annotation.value.steps.length > 0) {\n selectedStepId.value = annotation.value.steps[0].id;\n }\n});\n// Hooks\nconst confirmResetSchema = useConfirm({\n title: \"Reset Schema\",\n message: \"Are you sure you want to reset the schema? This action cannot be undone.\",\n confirmLabel: \"Yes, reset\",\n cancelLabel: \"No, cancel\",\n});\n// Actions\nasync function handleDeleteSchema() {\n if (await confirmResetSchema()) {\n selectedStepId.value = undefined;\n props.onDeleteSchema?.();\n }\n}\n</script>\n\n<template>\n <PlSidebarGroup>\n <template #item-0>\n <AnnotationsSidebar\n v-model:annotation=\"annotation\"\n v-model:selectedStepId=\"selectedStepId\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n @delete-schema=\"handleDeleteSchema\"\n />\n </template>\n <template #item-1>\n <FilterSidebar\n v-if=\"selectedStep\"\n v-model:step=\"selectedStep\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :selectedStepId=\"selectedStepId\"\n :hasSelectedColumns=\"props.hasSelectedColumns\"\n :getValuesForSelectedColumns=\"props.getValuesForSelectedColumns\"\n />\n </template>\n </PlSidebarGroup>\n</template>\n\n<style module>\n.sidebarItem {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["annotation","_useModel","props","__props","selectedStepId","shallowRef","selectedStep","computed","isNil","step","effect","confirmResetSchema","useConfirm","handleDeleteSchema","_a","_createBlock","_unref","PlSidebarGroup","_createVNode","AnnotationsSidebar","$event","_normalizeClass","$style","FilterSidebar"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAAaC,KAAwB,YAAgC,GAErEC,IAAQC,GAERC,IAAiBC,EAA+B,MAAS,GACzDC,IAAeC,EAAS,MACrBC,EAAMJ,EAAe,KAAK,KAAKI,EAAMR,EAAW,KAAK,IACxD,SACAA,EAAW,MAAM,MAAM,KAAK,CAACS,MAASA,EAAK,OAAOL,EAAe,KAAK,CAC3E;AAGD,IAAAM,EAAO,WAA4B;AACjC,MAAIN,EAAe,UAAU,UAAaJ,EAAW,MAAM,MAAM,SAAS,MACxEI,EAAe,QAAQJ,EAAW,MAAM,MAAM,CAAC,EAAE;AAAA,IAErD,CAAC;AAED,UAAMW,IAAqBC,EAAW;AAAA,MACpC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,aAAa;AAAA,IAAA,CACd;AAED,mBAAeC,IAAqB;;AAClC,MAAI,MAAMF,QACRP,EAAe,QAAQ,SACvBU,IAAAZ,EAAM,mBAAN,QAAAY,EAAA,KAAAZ;AAAA,IAEJ;2BAIEa,EAsBiBC,EAAAC,CAAA,GAAA,MAAA;AAAA,MArBJ,YACT,MAME;AAAA,QANFC,EAMEC,GAAA;AAAA,UALQ,YAAYnB,EAAA;AAAA,wDAAAA,EAAU,QAAAoB;AAAA,UACtB,gBAAgBhB,EAAA;AAAA,4DAAAA,EAAc,QAAAgB;AAAA,UACrC,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,gBAAeW;AAAA,QAAA;;MAGT,YAJqD,MAYrD;AAAA,QANDP,EAAA,cADRS,EASEQ,GAAA;AAAA;UAPQ,MAAMjB,EAAA;AAAA,kDAAAA,EAAY,QAAAc;AAAA,UACzB,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,uBAAqBA,EAAM;AAAA,UAC3B,gBAAgBE,EAAA;AAAA,UAChB,oBAAoBF,EAAM;AAAA,UAC1B,6BAA6BA,EAAM;AAAA,QAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"prettyBytes.js","sources":["../../../../../../../lib/util/helpers/src/prettyBytes.ts"],"sourcesContent":["const BYTE_UNITS = [\"B\", \"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\nconst BIBYTE_UNITS = [\"B\", \"kiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"];\n\nconst BIT_UNITS = [\"b\", \"kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"];\n\nconst BIBIT_UNITS = [\"b\", \"kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"];\n\ntype Options = {\n bits?: boolean;\n binary?: boolean;\n signed?: boolean;\n locale?: string;\n};\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number: number, locale: string | undefined) => {\n let result = String(number);\n if (typeof locale === \"string\" || Array.isArray(locale)) {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString(undefined);\n }\n\n return result;\n};\n\nexport function prettyBytes(number: number | bigint, options: Options) {\n number = typeof number === \"bigint\" ? Number(number) : number;\n\n if (!Number.isFinite(number)) {\n throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n }\n\n Object.assign(\n {\n bits: false,\n binary: false,\n },\n options,\n );\n\n const UNITS = options.bits\n ? options.binary\n ? BIBIT_UNITS\n : BIT_UNITS\n : options.binary\n ? BIBYTE_UNITS\n : BYTE_UNITS;\n\n if (options.signed && number === 0) {\n return ` 0 ${UNITS[0]}`;\n }\n\n const isNegative = number < 0;\n const prefix = isNegative ? \"-\" : options.signed ? \"+\" : \"\";\n\n if (isNegative) {\n number = -number;\n }\n\n let localeOptions;\n\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + \" \" + UNITS[0];\n }\n\n const exponent = Math.min(\n Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3),\n UNITS.length - 1,\n );\n number /= (options.binary ? 1024 : 1000) ** exponent;\n\n if (!localeOptions) {\n number = Number(number.toPrecision(3));\n }\n\n const numberString = toLocaleString(Number(number), options.locale);\n\n const unit = UNITS[exponent];\n\n return prefix + numberString + \" \" + unit;\n}\n"],"names":["BYTE_UNITS","BIBYTE_UNITS","BIT_UNITS","BIBIT_UNITS","toLocaleString","number","locale","result","prettyBytes","options","UNITS","isNegative","prefix","numberString","exponent","unit"],"mappings":"AAAA,MAAMA,IAAa,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAEjEC,IAAe,CAAC,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAE3EC,IAAY,CAAC,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,GAEhFC,IAAc,CAAC,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,GAe1FC,IAAiB,CAACC,GAAgBC,MAA8B;AACpE,MAAIC,IAAS,OAAOF,CAAM;AAC1B,SAAI,OAAOC,KAAW,YAAY,MAAM,QAAQA,CAAM,IACpDC,IAASF,EAAO,eAAeC,CAAM,IAC5BA,MAAW,OACpBC,IAASF,EAAO,eAAe,MAAS,IAGnCE;AACT;AAEM,SAAUC,EAAYH,GAAyBI,GAAgB;AAGnE,MAFAJ,IAAS,OAAOA,KAAW,WAAW,OAAOA,CAAM,IAAIA,GAEnD,CAAC,OAAO,SAASA,CAAM;AACzB,UAAM,IAAI,UAAU,iCAAiC,OAAOA,CAAM,KAAKA,CAAM,EAAE;AAGjF,SAAO,OACL;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,GACDI,CAAO;AAGT,QAAMC,IAAQD,EAAQ,OAClBA,EAAQ,SACNN,IACAD,IACFO,EAAQ,SACNR,IACAD;AAEN,MAAIS,EAAQ,UAAUJ,MAAW;AAC/B,WAAO,MAAMK,EAAM,CAAC,CAAC;AAGvB,QAAMC,IAAaN,IAAS,GACtBO,IAASD,IAAa,MAAMF,EAAQ,SAAS,MAAM;AAQzD,MANIE,MACFN,IAAS,CAACA,IAKRA,IAAS,GAAG;AACd,UAAMQ,IAAeT,EAAeC,GAAQI,EAAQ,MAAM;AAC1D,WAAOG,IAASC,IAAe,MAAMH,EAAM,CAAC;AAAA,EAC9C;AAEA,QAAMI,IAAW,KAAK,IACpB,KAAK,MAAML,EAAQ,SAAS,KAAK,IAAIJ,CAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAMA,CAAM,IAAI,CAAC,GACtFK,EAAM,SAAS,CAAC;AAElB,EAAAL,MAAWI,EAAQ,SAAS,OAAO,QAASK,GAG1CT,IAAS,OAAOA,EAAO,YAAY,CAAC,CAAC;AAGvC,QAAMQ,IAAeT,EAAe,OAAOC,CAAM,GAAGI,EAAQ,MAAM,GAE5DM,IAAOL,EAAMI,CAAQ;AAE3B,SAAOF,IAASC,IAAe,MAAME;AACvC;"}
1
+ {"version":3,"file":"prettyBytes.js","sources":["../../../../../../../lib/util/helpers/src/prettyBytes.ts"],"sourcesContent":["const BYTE_UNITS = [\"B\", \"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\nconst BIBYTE_UNITS = [\"B\", \"kiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"];\n\nconst BIT_UNITS = [\"b\", \"kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"];\n\nconst BIBIT_UNITS = [\"b\", \"kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"];\n\ntype Options = {\n bits?: boolean;\n binary?: boolean;\n signed?: boolean;\n locale?: string;\n};\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number: number, locale: string | undefined) => {\n let result = String(number);\n if (typeof locale === \"string\" || Array.isArray(locale)) {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString(undefined);\n }\n\n return result;\n};\n\nexport function prettyBytes(number: number | bigint, options: Options) {\n number = typeof number === \"bigint\" ? Number(number) : number;\n\n if (!Number.isFinite(number)) {\n throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n }\n\n Object.assign(\n {\n bits: false,\n binary: false,\n },\n options,\n );\n\n const UNITS = options.bits\n ? options.binary\n ? BIBIT_UNITS\n : BIT_UNITS\n : options.binary\n ? BIBYTE_UNITS\n : BYTE_UNITS;\n\n if (options.signed && number === 0) {\n return ` 0 ${UNITS[0]}`;\n }\n\n const isNegative = number < 0;\n const prefix = isNegative ? \"-\" : options.signed ? \"+\" : \"\";\n\n if (isNegative) {\n number = -number;\n }\n\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + \" \" + UNITS[0];\n }\n\n const exponent = Math.min(\n Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3),\n UNITS.length - 1,\n );\n number /= (options.binary ? 1024 : 1000) ** exponent;\n\n number = Number(number.toPrecision(3));\n\n const numberString = toLocaleString(Number(number), options.locale);\n\n const unit = UNITS[exponent];\n\n return prefix + numberString + \" \" + unit;\n}\n"],"names":["BYTE_UNITS","BIBYTE_UNITS","BIT_UNITS","BIBIT_UNITS","toLocaleString","number","locale","result","prettyBytes","options","UNITS","isNegative","prefix","numberString","exponent","unit"],"mappings":"AAAA,MAAMA,IAAa,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAEjEC,IAAe,CAAC,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAE3EC,IAAY,CAAC,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,GAEhFC,IAAc,CAAC,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,GAe1FC,IAAiB,CAACC,GAAgBC,MAA8B;AACpE,MAAIC,IAAS,OAAOF,CAAM;AAC1B,SAAI,OAAOC,KAAW,YAAY,MAAM,QAAQA,CAAM,IACpDC,IAASF,EAAO,eAAeC,CAAM,IAC5BA,MAAW,OACpBC,IAASF,EAAO,eAAe,MAAS,IAGnCE;AACT;AAEM,SAAUC,EAAYH,GAAyBI,GAAgB;AAGnE,MAFAJ,IAAS,OAAOA,KAAW,WAAW,OAAOA,CAAM,IAAIA,GAEnD,CAAC,OAAO,SAASA,CAAM;AACzB,UAAM,IAAI,UAAU,iCAAiC,OAAOA,CAAM,KAAKA,CAAM,EAAE;AAGjF,SAAO,OACL;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,GACDI,CAAO;AAGT,QAAMC,IAAQD,EAAQ,OAClBA,EAAQ,SACNN,IACAD,IACFO,EAAQ,SACNR,IACAD;AAEN,MAAIS,EAAQ,UAAUJ,MAAW;AAC/B,WAAO,MAAMK,EAAM,CAAC,CAAC;AAGvB,QAAMC,IAAaN,IAAS,GACtBO,IAASD,IAAa,MAAMF,EAAQ,SAAS,MAAM;AAMzD,MAJIE,MACFN,IAAS,CAACA,IAGRA,IAAS,GAAG;AACd,UAAMQ,IAAeT,EAAeC,GAAQI,EAAQ,MAAM;AAC1D,WAAOG,IAASC,IAAe,MAAMH,EAAM,CAAC;AAAA,EAC9C;AAEA,QAAMI,IAAW,KAAK,IACpB,KAAK,MAAML,EAAQ,SAAS,KAAK,IAAIJ,CAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAMA,CAAM,IAAI,CAAC,GACtFK,EAAM,SAAS,CAAC;AAElB,EAAAL,MAAWI,EAAQ,SAAS,OAAO,QAASK,GAE5CT,IAAS,OAAOA,EAAO,YAAY,CAAC,CAAC;AAErC,QAAMQ,IAAeT,EAAe,OAAOC,CAAM,GAAGI,EAAQ,MAAM,GAE5DM,IAAOL,EAAMI,CAAQ;AAE3B,SAAOF,IAASC,IAAe,MAAME;AACvC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.53.15",
3
+ "version": "1.54.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -27,7 +27,7 @@
27
27
  "vue": "^3.5.24",
28
28
  "zod": "~3.23.8",
29
29
  "@platforma-sdk/model": "1.53.15",
30
- "@milaboratories/uikit": "2.10.18"
30
+ "@milaboratories/uikit": "2.10.19"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@faker-js/faker": "^9.2.0",
@@ -42,10 +42,10 @@
42
42
  "typescript": "~5.6.3",
43
43
  "vite": "^6.4.1",
44
44
  "vitest": "^4.0.16",
45
+ "@milaboratories/ts-configs": "1.2.1",
46
+ "@milaboratories/helpers": "1.13.3",
45
47
  "@milaboratories/build-configs": "1.4.3",
46
- "@milaboratories/ts-builder": "1.2.7",
47
- "@milaboratories/helpers": "1.13.2",
48
- "@milaboratories/ts-configs": "1.2.1"
48
+ "@milaboratories/ts-builder": "1.2.8"
49
49
  },
50
50
  "styles": "dist/index.js",
51
51
  "scripts": {
@@ -229,7 +229,8 @@ const gridOptions = shallowRef<GridOptions<PlAgDataTableV2Row>>({
229
229
  defaultCsvExportParams: {
230
230
  allColumns: true,
231
231
  suppressQuotes: true,
232
- fileName: "table.csv",
232
+ columnSeparator: "\t",
233
+ fileName: "table.tsv",
233
234
  },
234
235
  onGridReady: (event) => {
235
236
  const api = event.api;