@platforma-sdk/ui-vue 1.54.7 → 1.54.9

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.54.7 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.9 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...
@@ -134,7 +134,7 @@ computing gzip size...
134
134
  dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js  2.81 kB │ gzip: 1.16 kB │ map: 4.23 kB
135
135
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js  2.98 kB │ gzip: 1.12 kB │ map: 4.85 kB
136
136
  dist/components/PlAgDataTable/sources/row-number.js  3.14 kB │ gzip: 1.35 kB │ map: 8.52 kB
137
- dist/components/PlAgDataTable/sources/table-state-v2.js  3.47 kB │ gzip: 1.25 kB │ map: 10.89 kB
137
+ dist/components/PlAgDataTable/sources/table-state-v2.js  3.49 kB │ gzip: 1.25 kB │ map: 10.94 kB
138
138
  dist/components/PlTableFilters/PlTableFiltersV2.vue2.js  3.76 kB │ gzip: 1.59 kB │ map: 7.28 kB
139
139
  dist/plugins/Monetization/LimitCard.vue2.js  3.84 kB │ gzip: 1.15 kB │ map: 9.62 kB
140
140
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  3.85 kB │ gzip: 1.53 kB │ map: 6.85 kB
@@ -152,7 +152,7 @@ computing gzip size...
152
152
  dist/components/PlAdvancedFilter/FilterEditor.vue2.js 12.83 kB │ gzip: 3.28 kB │ map: 25.49 kB
153
153
  dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js 14.97 kB │ gzip: 4.35 kB │ map: 33.82 kB
154
154
  dist/index.js 99.79 kB │ gzip: 64.33 kB │ map: 0.13 kB
155
- [vite:dts] Declaration files built in 5328ms.
155
+ [vite:dts] Declaration files built in 6892ms.
156
156
 
157
- ✓ built in 6.81s
157
+ ✓ built in 8.32s
158
158
  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.54.7 formatter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.9 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 1068ms on 120 files using 8 threads.
11
+ Finished in 2303ms on 120 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.54.7 linter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.9 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 28ms on 103 files with 98 rules using 8 threads.
9
+ Finished in 24ms on 103 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.54.7 types:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.9 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,22 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.54.9
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [a3659cd]
8
+ - @platforma-sdk/model@1.54.9
9
+ - @milaboratories/uikit@2.10.22
10
+
11
+ ## 1.54.8
12
+
13
+ ### Patch Changes
14
+
15
+ - 4f04561: simplify distil , renaming
16
+ - Updated dependencies [4f04561]
17
+ - @platforma-sdk/model@1.54.8
18
+ - @milaboratories/uikit@2.10.21
19
+
3
20
  ## 1.54.7
4
21
 
5
22
  ### Patch Changes
@@ -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,EASL,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAOxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAmB,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA4E/D,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC/C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,GACnC;IACD,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACzD,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1D,YAAY,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CACrD,CAqHA"}
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,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAQxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAmB,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAyE/D,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC/C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,GACnC;IACD,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACzD,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1D,YAAY,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CACrD,CAqHA"}
@@ -1,9 +1,9 @@
1
- import { upgradePlDataTableStateV2 as S, createDefaultPTableParams as v, distillFilter as h, canonicalizeJson as I, parseJson as m } from "@platforma-sdk/model";
1
+ import { upgradePlDataTableStateV2 as v, createDefaultPTableParams as m, distillFilterSpec as g, canonicalizeJson as h, parseJson as S } from "@platforma-sdk/model";
2
2
  import { computed as d, watch as f } from "vue";
3
- import { isJsonEqual as o } from "../../../lib/util/helpers/dist/objects.js";
4
- import { randomInt as g } from "../../../lib/util/helpers/dist/random.js";
5
- import { computedCached as y } from "@milaboratories/uikit";
6
- function C() {
3
+ import { isJsonEqual as n } from "../../../lib/util/helpers/dist/objects.js";
4
+ import { randomInt as I } from "../../../lib/util/helpers/dist/random.js";
5
+ import { computedCached as b } from "@milaboratories/uikit";
6
+ function y() {
7
7
  return {
8
8
  sourceId: null,
9
9
  gridState: {},
@@ -11,119 +11,121 @@ function C() {
11
11
  filtersState: null
12
12
  };
13
13
  }
14
- function b(r) {
15
- var s;
16
- return ((s = r == null ? void 0 : r.hiddenColIds) == null ? void 0 : s.map(m).reduce((n, t) => (t.source.type === "column" && n.push(t.source.id), n), [])) ?? null;
14
+ function C(r) {
15
+ var a;
16
+ return ((a = r == null ? void 0 : r.hiddenColIds) == null ? void 0 : a.map(S).reduce((u, s) => (s.source.type === "column" && u.push(s.source.id), u), [])) ?? null;
17
17
  }
18
18
  function P(r) {
19
- return r.map((s) => {
20
- const n = I({ type: "axis", id: s.axisId });
21
- return typeof s.value == "number" ? { type: "equal", column: n, x: s.value } : { type: "patternEquals", column: n, value: s.value };
19
+ return r.map((a) => {
20
+ const u = h({ type: "axis", id: a.axisId });
21
+ return typeof a.value == "number" ? { type: "equal", column: u, x: a.value } : { type: "patternEquals", column: u, value: a.value };
22
22
  });
23
23
  }
24
- function x(r) {
25
- return (r == null ? void 0 : r.sortModel.map((s) => {
26
- const { spec: n, ...t } = m(s.colId).labeled;
24
+ function T(r) {
25
+ return (r == null ? void 0 : r.sortModel.map((a) => {
26
+ const { spec: u, ...s } = S(a.colId).labeled;
27
27
  return {
28
- column: t,
29
- ascending: s.sort === "asc",
30
- naAndAbsentAreLeastValues: s.sort === "asc"
28
+ column: s,
29
+ ascending: a.sort === "asc",
30
+ naAndAbsentAreLeastValues: a.sort === "asc"
31
31
  };
32
32
  })) ?? [];
33
33
  }
34
- function T(r) {
35
- const s = h(r.filtersState), t = [
34
+ function x(r) {
35
+ const a = [
36
36
  ...P(r.sheetsState),
37
- ...s ? [s] : []
38
- ], u = t.length === 0 ? null : t.length === 1 ? t[0] : { type: "and", filters: t };
37
+ ...r.filtersState ? [r.filtersState] : []
38
+ ], u = g(
39
+ a.length === 0 ? null : a.length === 1 ? a[0] : { type: "and", filters: a }
40
+ );
39
41
  return {
40
42
  sourceId: r.sourceId,
41
- hiddenColIds: b(r.gridState.columnVisibility),
43
+ hiddenColIds: C(r.gridState.columnVisibility),
42
44
  filters: u,
43
- sorting: x(r.gridState.sort)
45
+ sorting: T(r.gridState.sort)
44
46
  };
45
47
  }
46
- function E(r, s) {
47
- const n = y({
48
- get: () => S(r.value),
48
+ function J(r, a) {
49
+ const u = b({
50
+ get: () => v(r.value),
49
51
  set: (e) => r.value = e
50
- }), t = d({
52
+ }), s = d({
51
53
  get: () => {
52
- const e = C(), a = s.value.sourceId;
53
- if (!a) return e;
54
- const l = n.value.stateCache.find(
55
- (p) => p.sourceId === a
54
+ const e = y(), t = a.value.sourceId;
55
+ if (!t) return e;
56
+ const l = u.value.stateCache.find(
57
+ (p) => p.sourceId === t
56
58
  );
57
- return l || { ...e, sourceId: a };
59
+ return l || { ...e, sourceId: t };
58
60
  },
59
61
  set: (e) => {
60
- const a = {
61
- ...n.value,
62
- pTableParams: v()
62
+ const t = {
63
+ ...u.value,
64
+ pTableParams: m()
63
65
  };
64
66
  if (e.sourceId) {
65
- a.pTableParams = T(e);
66
- const l = a.stateCache.findIndex(
67
+ t.pTableParams = x(e);
68
+ const l = t.stateCache.findIndex(
67
69
  (p) => p.sourceId === e.sourceId
68
70
  );
69
- l !== -1 ? a.stateCache[l] = e : (a.stateCache.push(e), a.stateCache = a.stateCache.slice(-5));
71
+ l !== -1 ? t.stateCache[l] = e : (t.stateCache.push(e), t.stateCache = t.stateCache.slice(-5));
70
72
  }
71
- o(n.value, a) || (n.value = a);
73
+ n(u.value, t) || (u.value = t);
72
74
  }
73
75
  });
74
76
  f(
75
- () => t.value,
76
- (e) => o(t.value, e) && (t.value = e),
77
+ () => s.value,
78
+ (e) => n(s.value, e) && (s.value = e),
77
79
  { deep: !0 }
78
80
  );
79
- const u = d({
80
- get: () => t.value.gridState,
81
+ const o = d({
82
+ get: () => s.value.gridState,
81
83
  set: (e) => {
82
- const a = t.value;
83
- a.sourceId && (t.value = {
84
- ...a,
84
+ const t = s.value;
85
+ t.sourceId && (s.value = {
86
+ ...t,
85
87
  gridState: e
86
88
  });
87
89
  }
88
90
  });
89
- f(u, (e) => o(u.value, e) && (u.value = e), {
91
+ f(o, (e) => n(o.value, e) && (o.value = e), {
90
92
  deep: !0
91
93
  });
92
- const i = d({
93
- get: () => t.value.sheetsState,
94
+ const c = d({
95
+ get: () => s.value.sheetsState,
94
96
  set: (e) => {
95
- const a = t.value;
96
- a.sourceId && (t.value = {
97
- ...a,
97
+ const t = s.value;
98
+ t.sourceId && (s.value = {
99
+ ...t,
98
100
  sheetsState: e
99
101
  });
100
102
  }
101
103
  });
102
104
  f(
103
- i,
104
- (e) => o(i.value, e) && (i.value = e),
105
+ c,
106
+ (e) => n(c.value, e) && (c.value = e),
105
107
  { deep: !0 }
106
108
  );
107
- const c = d({
109
+ const i = d({
108
110
  get: () => {
109
- const e = t.value.filtersState;
110
- return e && (e.type === "and" || e.type === "or") && "filters" in e && Array.isArray(e.filters) ? e : { id: g(), type: "and", isExpanded: !0, filters: [] };
111
+ const e = s.value.filtersState;
112
+ return e && (e.type === "and" || e.type === "or") && "filters" in e && Array.isArray(e.filters) ? e : { id: I(), type: "and", isExpanded: !0, filters: [] };
111
113
  },
112
114
  set: (e) => {
113
- const a = t.value;
114
- a.sourceId && (t.value = {
115
- ...a,
115
+ const t = s.value;
116
+ t.sourceId && (s.value = {
117
+ ...t,
116
118
  filtersState: e
117
119
  });
118
120
  }
119
121
  });
120
122
  return f(
121
- c,
122
- (e) => o(c.value, e) && (c.value = e),
123
+ i,
124
+ (e) => n(i.value, e) && (i.value = e),
123
125
  { deep: !0 }
124
- ), { gridState: u, sheetsState: i, filtersState: c };
126
+ ), { gridState: o, sheetsState: c, filtersState: i };
125
127
  }
126
128
  export {
127
- E as useTableState
129
+ J as useTableState
128
130
  };
129
131
  //# sourceMappingURL=table-state-v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-state-v2.js","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"sourcesContent":["import {\n createDefaultPTableParams,\n parseJson,\n canonicalizeJson,\n upgradePlDataTableStateV2,\n distillFilter,\n type FilterSpec,\n type FilterSpecLeaf,\n type PTableColumnId,\n type PlDataTableGridStateCore,\n type PlDataTableSheetState,\n type PlDataTableStateV2,\n type PlDataTableStateV2CacheEntry,\n type PlDataTableStateV2Normalized,\n type PObjectId,\n type PTableFilters,\n type PTableParamsV2,\n type PTableSorting,\n} from \"@platforma-sdk/model\";\nimport { computed, watch, type Ref, type WritableComputedRef } from \"vue\";\nimport type { PlDataTableSettingsV2 } from \"../types\";\nimport type { PlAdvancedFilter } from \"../../PlAdvancedFilter\";\nimport { isJsonEqual, randomInt } from \"@milaboratories/helpers\";\nimport { computedCached } from \"@milaboratories/uikit\";\n\ntype PlDataTableStateV2CacheEntryNullable =\n | PlDataTableStateV2CacheEntry\n | {\n sourceId: null;\n gridState: Record<string, never>;\n sheetsState: [];\n filtersState: null;\n };\n\nfunction makeDefaultState(): PlDataTableStateV2CacheEntryNullable {\n return {\n sourceId: null,\n gridState: {},\n sheetsState: [],\n filtersState: null,\n };\n}\n\nfunction getHiddenColIds(state: PlDataTableGridStateCore[\"columnVisibility\"]): PObjectId[] | null {\n return (\n state?.hiddenColIds?.map(parseJson).reduce((acc, c) => {\n if (c.source.type === \"column\") {\n acc.push(c.source.id);\n }\n return acc;\n }, [] as PObjectId[]) ?? null\n );\n}\n\nfunction makePartitionFilters(\n sheetsState: PlDataTableSheetState[],\n): FilterSpec<FilterSpecLeaf<string>>[] {\n return sheetsState.map((s) => {\n const column = canonicalizeJson<PTableColumnId>({ type: \"axis\", id: s.axisId }) as string;\n return typeof s.value === \"number\"\n ? { type: \"equal\" as const, column, x: s.value }\n : { type: \"patternEquals\" as const, column, value: s.value };\n });\n}\n\nfunction makeSorting(state: PlDataTableGridStateCore[\"sort\"]): PTableSorting[] {\n return (\n state?.sortModel.map((item) => {\n const { spec: _, ...column } = parseJson(item.colId).labeled;\n return {\n column,\n ascending: item.sort === \"asc\",\n naAndAbsentAreLeastValues: item.sort === \"asc\",\n };\n }) ?? []\n );\n}\n\nfunction makePTableParams(state: PlDataTableStateV2CacheEntry): PTableParamsV2 {\n const advancedFilter = distillFilter(state.filtersState);\n const partitionFilters = makePartitionFilters(state.sheetsState);\n\n const parts: FilterSpec<FilterSpecLeaf<string>>[] = [\n ...partitionFilters,\n ...(advancedFilter ? [advancedFilter] : []),\n ];\n const filters: PTableFilters =\n parts.length === 0 ? null : parts.length === 1 ? parts[0] : { type: \"and\", filters: parts };\n\n return {\n sourceId: state.sourceId,\n hiddenColIds: getHiddenColIds(state.gridState.columnVisibility),\n filters,\n sorting: makeSorting(state.gridState.sort),\n };\n}\n\nexport function useTableState(\n tableStateDenormalized: Ref<PlDataTableStateV2>,\n settings: Ref<PlDataTableSettingsV2>,\n): {\n gridState: WritableComputedRef<PlDataTableGridStateCore>;\n sheetsState: WritableComputedRef<PlDataTableSheetState[]>;\n filtersState: WritableComputedRef<PlAdvancedFilter>;\n} {\n const tableStateNormalized = computedCached<PlDataTableStateV2Normalized>({\n get: () => upgradePlDataTableStateV2(tableStateDenormalized.value),\n set: (newState) => (tableStateDenormalized.value = newState),\n });\n\n const tableState = computed<PlDataTableStateV2CacheEntryNullable>({\n get: () => {\n const defaultState = makeDefaultState();\n\n const sourceId = settings.value.sourceId;\n if (!sourceId) return defaultState;\n\n const cachedState = tableStateNormalized.value.stateCache.find(\n (entry) => entry.sourceId === sourceId,\n );\n if (!cachedState) return { ...defaultState, sourceId };\n\n return cachedState;\n },\n set: (state) => {\n const newState: PlDataTableStateV2Normalized = {\n ...tableStateNormalized.value,\n pTableParams: createDefaultPTableParams(),\n };\n\n if (state.sourceId) {\n newState.pTableParams = makePTableParams(state);\n\n const stateIdx = newState.stateCache.findIndex(\n (entry) => entry.sourceId === state.sourceId,\n );\n if (stateIdx !== -1) {\n newState.stateCache[stateIdx] = state;\n } else {\n const CacheDepth = 5;\n newState.stateCache.push(state);\n newState.stateCache = newState.stateCache.slice(-CacheDepth);\n }\n }\n\n if (!isJsonEqual(tableStateNormalized.value, newState)) {\n tableStateNormalized.value = newState;\n }\n },\n });\n\n watch(\n () => tableState.value,\n (value) => isJsonEqual(tableState.value, value) && (tableState.value = value),\n { deep: true },\n );\n\n const gridState = computed<PlDataTableGridStateCore>({\n get: () => tableState.value.gridState,\n set: (gridState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n gridState,\n };\n }\n },\n });\n watch(gridState, (value) => isJsonEqual(gridState.value, value) && (gridState.value = value), {\n deep: true,\n });\n\n const sheetsState = computed<PlDataTableSheetState[]>({\n get: () => tableState.value.sheetsState,\n set: (sheetsState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n sheetsState,\n };\n }\n },\n });\n watch(\n sheetsState,\n (value) => isJsonEqual(sheetsState.value, value) && (sheetsState.value = value),\n { deep: true },\n );\n\n const filtersState = computed<PlAdvancedFilter>({\n get: () => {\n const raw = tableState.value.filtersState;\n const isCorrect =\n raw &&\n (raw.type === \"and\" || raw.type === \"or\") &&\n \"filters\" in raw &&\n Array.isArray(raw.filters);\n\n return isCorrect\n ? (raw as PlAdvancedFilter)\n : { id: randomInt(), type: \"and\" as const, isExpanded: true, filters: [] };\n },\n set: (filtersState: PlAdvancedFilter) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n filtersState,\n };\n }\n },\n });\n watch(\n filtersState,\n (value) => isJsonEqual(filtersState.value, value) && (filtersState.value = value),\n { deep: true },\n );\n\n return { gridState, sheetsState, filtersState };\n}\n"],"names":["makeDefaultState","getHiddenColIds","state","_a","parseJson","acc","c","makePartitionFilters","sheetsState","column","canonicalizeJson","makeSorting","item","_","makePTableParams","advancedFilter","distillFilter","parts","filters","useTableState","tableStateDenormalized","settings","tableStateNormalized","computedCached","upgradePlDataTableStateV2","newState","tableState","computed","defaultState","sourceId","cachedState","entry","createDefaultPTableParams","stateIdx","isJsonEqual","watch","value","gridState","oldState","filtersState","raw","randomInt"],"mappings":"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"}
1
+ {"version":3,"file":"table-state-v2.js","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"sourcesContent":["import {\n createDefaultPTableParams,\n parseJson,\n canonicalizeJson,\n upgradePlDataTableStateV2,\n type FilterSpec,\n type FilterSpecLeaf,\n type PTableColumnId,\n type PlDataTableGridStateCore,\n type PlDataTableSheetState,\n type PlDataTableStateV2,\n type PlDataTableStateV2CacheEntry,\n type PlDataTableStateV2Normalized,\n type PObjectId,\n type PTableParamsV2,\n type PTableSorting,\n type PlDataTableFilters,\n distillFilterSpec,\n} from \"@platforma-sdk/model\";\nimport { computed, watch, type Ref, type WritableComputedRef } from \"vue\";\nimport type { PlDataTableSettingsV2 } from \"../types\";\nimport type { PlAdvancedFilter } from \"../../PlAdvancedFilter\";\nimport { isJsonEqual, randomInt } from \"@milaboratories/helpers\";\nimport { computedCached } from \"@milaboratories/uikit\";\ntype PlDataTableStateV2CacheEntryNullable =\n | PlDataTableStateV2CacheEntry\n | {\n sourceId: null;\n gridState: Record<string, never>;\n sheetsState: [];\n filtersState: null;\n };\n\nfunction makeDefaultState(): PlDataTableStateV2CacheEntryNullable {\n return {\n sourceId: null,\n gridState: {},\n sheetsState: [],\n filtersState: null,\n };\n}\n\nfunction getHiddenColIds(state: PlDataTableGridStateCore[\"columnVisibility\"]): PObjectId[] | null {\n return (\n state?.hiddenColIds?.map(parseJson).reduce((acc, c) => {\n if (c.source.type === \"column\") {\n acc.push(c.source.id);\n }\n return acc;\n }, [] as PObjectId[]) ?? null\n );\n}\n\nfunction convertPartitionFiltersToFilterSpec(\n sheetsState: PlDataTableSheetState[],\n): FilterSpec<FilterSpecLeaf<string>>[] {\n return sheetsState.map((s) => {\n const column = canonicalizeJson<PTableColumnId>({ type: \"axis\", id: s.axisId }) as string;\n return typeof s.value === \"number\"\n ? { type: \"equal\" as const, column, x: s.value }\n : { type: \"patternEquals\" as const, column, value: s.value };\n });\n}\n\nfunction convertAgSortingToPTableSorting(state: PlDataTableGridStateCore[\"sort\"]): PTableSorting[] {\n return (\n state?.sortModel.map((item) => {\n const { spec: _, ...column } = parseJson(item.colId).labeled;\n return {\n column,\n ascending: item.sort === \"asc\",\n naAndAbsentAreLeastValues: item.sort === \"asc\",\n };\n }) ?? []\n );\n}\n\nfunction createPTableParams(state: PlDataTableStateV2CacheEntry): PTableParamsV2 {\n const parts: FilterSpec<FilterSpecLeaf<string>>[] = [\n ...convertPartitionFiltersToFilterSpec(state.sheetsState),\n ...(state.filtersState ? [state.filtersState] : []),\n ];\n const filters: null | PlDataTableFilters = distillFilterSpec(\n parts.length === 0 ? null : parts.length === 1 ? parts[0] : { type: \"and\", filters: parts },\n );\n\n return {\n sourceId: state.sourceId,\n hiddenColIds: getHiddenColIds(state.gridState.columnVisibility),\n filters,\n sorting: convertAgSortingToPTableSorting(state.gridState.sort),\n };\n}\n\nexport function useTableState(\n tableStateDenormalized: Ref<PlDataTableStateV2>,\n settings: Ref<PlDataTableSettingsV2>,\n): {\n gridState: WritableComputedRef<PlDataTableGridStateCore>;\n sheetsState: WritableComputedRef<PlDataTableSheetState[]>;\n filtersState: WritableComputedRef<PlAdvancedFilter>;\n} {\n const tableStateNormalized = computedCached<PlDataTableStateV2Normalized>({\n get: () => upgradePlDataTableStateV2(tableStateDenormalized.value),\n set: (newState) => (tableStateDenormalized.value = newState),\n });\n\n const tableState = computed<PlDataTableStateV2CacheEntryNullable>({\n get: () => {\n const defaultState = makeDefaultState();\n\n const sourceId = settings.value.sourceId;\n if (!sourceId) return defaultState;\n\n const cachedState = tableStateNormalized.value.stateCache.find(\n (entry) => entry.sourceId === sourceId,\n );\n if (!cachedState) return { ...defaultState, sourceId };\n\n return cachedState;\n },\n set: (state) => {\n const newState: PlDataTableStateV2Normalized = {\n ...tableStateNormalized.value,\n pTableParams: createDefaultPTableParams(),\n };\n\n if (state.sourceId) {\n newState.pTableParams = createPTableParams(state);\n\n const stateIdx = newState.stateCache.findIndex(\n (entry) => entry.sourceId === state.sourceId,\n );\n if (stateIdx !== -1) {\n newState.stateCache[stateIdx] = state;\n } else {\n const CacheDepth = 5;\n newState.stateCache.push(state);\n newState.stateCache = newState.stateCache.slice(-CacheDepth);\n }\n }\n\n if (!isJsonEqual(tableStateNormalized.value, newState)) {\n tableStateNormalized.value = newState;\n }\n },\n });\n\n watch(\n () => tableState.value,\n (value) => isJsonEqual(tableState.value, value) && (tableState.value = value),\n { deep: true },\n );\n\n const gridState = computed<PlDataTableGridStateCore>({\n get: () => tableState.value.gridState,\n set: (gridState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n gridState,\n };\n }\n },\n });\n watch(gridState, (value) => isJsonEqual(gridState.value, value) && (gridState.value = value), {\n deep: true,\n });\n\n const sheetsState = computed<PlDataTableSheetState[]>({\n get: () => tableState.value.sheetsState,\n set: (sheetsState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n sheetsState,\n };\n }\n },\n });\n watch(\n sheetsState,\n (value) => isJsonEqual(sheetsState.value, value) && (sheetsState.value = value),\n { deep: true },\n );\n\n const filtersState = computed<PlAdvancedFilter>({\n get: () => {\n const raw = tableState.value.filtersState;\n const isCorrect =\n raw &&\n (raw.type === \"and\" || raw.type === \"or\") &&\n \"filters\" in raw &&\n Array.isArray(raw.filters);\n\n return isCorrect\n ? (raw as PlAdvancedFilter)\n : { id: randomInt(), type: \"and\" as const, isExpanded: true, filters: [] };\n },\n set: (filtersState: PlAdvancedFilter) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n filtersState,\n };\n }\n },\n });\n watch(\n filtersState,\n (value) => isJsonEqual(filtersState.value, value) && (filtersState.value = value),\n { deep: true },\n );\n\n return { gridState, sheetsState, filtersState };\n}\n"],"names":["makeDefaultState","getHiddenColIds","state","_a","parseJson","acc","c","convertPartitionFiltersToFilterSpec","sheetsState","s","column","canonicalizeJson","convertAgSortingToPTableSorting","item","_","createPTableParams","parts","filters","distillFilterSpec","useTableState","tableStateDenormalized","settings","tableStateNormalized","computedCached","upgradePlDataTableStateV2","newState","tableState","computed","defaultState","sourceId","cachedState","entry","createDefaultPTableParams","stateIdx","isJsonEqual","watch","value","gridState","oldState","filtersState","raw","randomInt"],"mappings":";;;;;AAiCA,SAASA,IAAyD;AAChE,SAAO;AAAA,IACL,UAAU;AAAA,IACV,WAAW,CAAA;AAAA,IACX,aAAa,CAAA;AAAA,IACb,cAAc;AAAA,EAAA;AAElB;AAEA,SAASC,EAAgBC,GAAyE;;AAChG,WACEC,IAAAD,KAAA,gBAAAA,EAAO,iBAAP,gBAAAC,EAAqB,IAAIC,GAAW,OAAO,CAACC,GAAKC,OAC3CA,EAAE,OAAO,SAAS,YACpBD,EAAI,KAAKC,EAAE,OAAO,EAAE,GAEfD,IACN,CAAA,OAAsB;AAE7B;AAEA,SAASE,EACPC,GACsC;AACtC,SAAOA,EAAY,IAAI,CAACC,MAAM;AAC5B,UAAMC,IAASC,EAAiC,EAAE,MAAM,QAAQ,IAAIF,EAAE,QAAQ;AAC9E,WAAO,OAAOA,EAAE,SAAU,WACtB,EAAE,MAAM,SAAkB,QAAAC,GAAQ,GAAGD,EAAE,MAAA,IACvC,EAAE,MAAM,iBAA0B,QAAAC,GAAQ,OAAOD,EAAE,MAAA;AAAA,EACzD,CAAC;AACH;AAEA,SAASG,EAAgCV,GAA0D;AACjG,UACEA,KAAA,gBAAAA,EAAO,UAAU,IAAI,CAACW,MAAS;AAC7B,UAAM,EAAE,MAAMC,GAAG,GAAGJ,MAAWN,EAAUS,EAAK,KAAK,EAAE;AACrD,WAAO;AAAA,MACL,QAAAH;AAAA,MACA,WAAWG,EAAK,SAAS;AAAA,MACzB,2BAA2BA,EAAK,SAAS;AAAA,IAAA;AAAA,EAE7C,OAAM,CAAA;AAEV;AAEA,SAASE,EAAmBb,GAAqD;AAC/E,QAAMc,IAA8C;AAAA,IAClD,GAAGT,EAAoCL,EAAM,WAAW;AAAA,IACxD,GAAIA,EAAM,eAAe,CAACA,EAAM,YAAY,IAAI,CAAA;AAAA,EAAC,GAE7Ce,IAAqCC;AAAA,IACzCF,EAAM,WAAW,IAAI,OAAOA,EAAM,WAAW,IAAIA,EAAM,CAAC,IAAI,EAAE,MAAM,OAAO,SAASA,EAAA;AAAA,EAAM;AAG5F,SAAO;AAAA,IACL,UAAUd,EAAM;AAAA,IAChB,cAAcD,EAAgBC,EAAM,UAAU,gBAAgB;AAAA,IAC9D,SAAAe;AAAA,IACA,SAASL,EAAgCV,EAAM,UAAU,IAAI;AAAA,EAAA;AAEjE;AAEO,SAASiB,EACdC,GACAC,GAKA;AACA,QAAMC,IAAuBC,EAA6C;AAAA,IACxE,KAAK,MAAMC,EAA0BJ,EAAuB,KAAK;AAAA,IACjE,KAAK,CAACK,MAAcL,EAAuB,QAAQK;AAAA,EAAA,CACpD,GAEKC,IAAaC,EAA+C;AAAA,IAChE,KAAK,MAAM;AACT,YAAMC,IAAe5B,EAAA,GAEf6B,IAAWR,EAAS,MAAM;AAChC,UAAI,CAACQ,EAAU,QAAOD;AAEtB,YAAME,IAAcR,EAAqB,MAAM,WAAW;AAAA,QACxD,CAACS,MAAUA,EAAM,aAAaF;AAAA,MAAA;AAEhC,aAAKC,KAAoB,EAAE,GAAGF,GAAc,UAAAC,EAAA;AAAA,IAG9C;AAAA,IACA,KAAK,CAAC3B,MAAU;AACd,YAAMuB,IAAyC;AAAA,QAC7C,GAAGH,EAAqB;AAAA,QACxB,cAAcU,EAAA;AAAA,MAA0B;AAG1C,UAAI9B,EAAM,UAAU;AAClB,QAAAuB,EAAS,eAAeV,EAAmBb,CAAK;AAEhD,cAAM+B,IAAWR,EAAS,WAAW;AAAA,UACnC,CAACM,MAAUA,EAAM,aAAa7B,EAAM;AAAA,QAAA;AAEtC,QAAI+B,MAAa,KACfR,EAAS,WAAWQ,CAAQ,IAAI/B,KAGhCuB,EAAS,WAAW,KAAKvB,CAAK,GAC9BuB,EAAS,aAAaA,EAAS,WAAW,MAAM,EAAW;AAAA,MAE/D;AAEA,MAAKS,EAAYZ,EAAqB,OAAOG,CAAQ,MACnDH,EAAqB,QAAQG;AAAA,IAEjC;AAAA,EAAA,CACD;AAED,EAAAU;AAAA,IACE,MAAMT,EAAW;AAAA,IACjB,CAACU,MAAUF,EAAYR,EAAW,OAAOU,CAAK,MAAMV,EAAW,QAAQU;AAAA,IACvE,EAAE,MAAM,GAAA;AAAA,EAAK;AAGf,QAAMC,IAAYV,EAAmC;AAAA,IACnD,KAAK,MAAMD,EAAW,MAAM;AAAA,IAC5B,KAAK,CAACW,MAAc;AAClB,YAAMC,IAAWZ,EAAW;AAC5B,MAAIY,EAAS,aACXZ,EAAW,QAAQ;AAAA,QACjB,GAAGY;AAAA,QACH,WAAAD;AAAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD;AACD,EAAAF,EAAME,GAAW,CAACD,MAAUF,EAAYG,EAAU,OAAOD,CAAK,MAAMC,EAAU,QAAQD,IAAQ;AAAA,IAC5F,MAAM;AAAA,EAAA,CACP;AAED,QAAM5B,IAAcmB,EAAkC;AAAA,IACpD,KAAK,MAAMD,EAAW,MAAM;AAAA,IAC5B,KAAK,CAAClB,MAAgB;AACpB,YAAM8B,IAAWZ,EAAW;AAC5B,MAAIY,EAAS,aACXZ,EAAW,QAAQ;AAAA,QACjB,GAAGY;AAAA,QACH,aAAA9B;AAAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD;AACD,EAAA2B;AAAA,IACE3B;AAAA,IACA,CAAC4B,MAAUF,EAAY1B,EAAY,OAAO4B,CAAK,MAAM5B,EAAY,QAAQ4B;AAAA,IACzE,EAAE,MAAM,GAAA;AAAA,EAAK;AAGf,QAAMG,IAAeZ,EAA2B;AAAA,IAC9C,KAAK,MAAM;AACT,YAAMa,IAAMd,EAAW,MAAM;AAO7B,aALEc,MACCA,EAAI,SAAS,SAASA,EAAI,SAAS,SACpC,aAAaA,KACb,MAAM,QAAQA,EAAI,OAAO,IAGtBA,IACD,EAAE,IAAIC,EAAA,GAAa,MAAM,OAAgB,YAAY,IAAM,SAAS,CAAA,EAAC;AAAA,IAC3E;AAAA,IACA,KAAK,CAACF,MAAmC;AACvC,YAAMD,IAAWZ,EAAW;AAC5B,MAAIY,EAAS,aACXZ,EAAW,QAAQ;AAAA,QACjB,GAAGY;AAAA,QACH,cAAAC;AAAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD;AACD,SAAAJ;AAAA,IACEI;AAAA,IACA,CAACH,MAAUF,EAAYK,EAAa,OAAOH,CAAK,MAAMG,EAAa,QAAQH;AAAA,IAC3E,EAAE,MAAM,GAAA;AAAA,EAAK,GAGR,EAAE,WAAAC,GAAW,aAAA7B,GAAa,cAAA+B,EAAA;AACnC;"}
@@ -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,YANf,MAW4C;AAAA,QAH9BP,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,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;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.54.7",
3
+ "version": "1.54.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -26,8 +26,8 @@
26
26
  "lru-cache": "^11.2.2",
27
27
  "vue": "^3.5.24",
28
28
  "zod": "~3.23.8",
29
- "@milaboratories/uikit": "2.10.20",
30
- "@platforma-sdk/model": "1.54.7"
29
+ "@milaboratories/uikit": "2.10.22",
30
+ "@platforma-sdk/model": "1.54.9"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@faker-js/faker": "^9.2.0",
@@ -42,9 +42,9 @@
42
42
  "typescript": "~5.6.3",
43
43
  "vite": "^6.4.1",
44
44
  "vitest": "^4.0.16",
45
- "@milaboratories/build-configs": "1.4.4",
46
- "@milaboratories/ts-builder": "1.2.10",
47
45
  "@milaboratories/ts-configs": "1.2.1",
46
+ "@milaboratories/ts-builder": "1.2.10",
47
+ "@milaboratories/build-configs": "1.4.4",
48
48
  "@milaboratories/helpers": "1.13.4"
49
49
  },
50
50
  "styles": "dist/index.js",
@@ -3,7 +3,6 @@ import {
3
3
  parseJson,
4
4
  canonicalizeJson,
5
5
  upgradePlDataTableStateV2,
6
- distillFilter,
7
6
  type FilterSpec,
8
7
  type FilterSpecLeaf,
9
8
  type PTableColumnId,
@@ -13,16 +12,16 @@ import {
13
12
  type PlDataTableStateV2CacheEntry,
14
13
  type PlDataTableStateV2Normalized,
15
14
  type PObjectId,
16
- type PTableFilters,
17
15
  type PTableParamsV2,
18
16
  type PTableSorting,
17
+ type PlDataTableFilters,
18
+ distillFilterSpec,
19
19
  } from "@platforma-sdk/model";
20
20
  import { computed, watch, type Ref, type WritableComputedRef } from "vue";
21
21
  import type { PlDataTableSettingsV2 } from "../types";
22
22
  import type { PlAdvancedFilter } from "../../PlAdvancedFilter";
23
23
  import { isJsonEqual, randomInt } from "@milaboratories/helpers";
24
24
  import { computedCached } from "@milaboratories/uikit";
25
-
26
25
  type PlDataTableStateV2CacheEntryNullable =
27
26
  | PlDataTableStateV2CacheEntry
28
27
  | {
@@ -52,7 +51,7 @@ function getHiddenColIds(state: PlDataTableGridStateCore["columnVisibility"]): P
52
51
  );
53
52
  }
54
53
 
55
- function makePartitionFilters(
54
+ function convertPartitionFiltersToFilterSpec(
56
55
  sheetsState: PlDataTableSheetState[],
57
56
  ): FilterSpec<FilterSpecLeaf<string>>[] {
58
57
  return sheetsState.map((s) => {
@@ -63,7 +62,7 @@ function makePartitionFilters(
63
62
  });
64
63
  }
65
64
 
66
- function makeSorting(state: PlDataTableGridStateCore["sort"]): PTableSorting[] {
65
+ function convertAgSortingToPTableSorting(state: PlDataTableGridStateCore["sort"]): PTableSorting[] {
67
66
  return (
68
67
  state?.sortModel.map((item) => {
69
68
  const { spec: _, ...column } = parseJson(item.colId).labeled;
@@ -76,22 +75,20 @@ function makeSorting(state: PlDataTableGridStateCore["sort"]): PTableSorting[] {
76
75
  );
77
76
  }
78
77
 
79
- function makePTableParams(state: PlDataTableStateV2CacheEntry): PTableParamsV2 {
80
- const advancedFilter = distillFilter(state.filtersState);
81
- const partitionFilters = makePartitionFilters(state.sheetsState);
82
-
78
+ function createPTableParams(state: PlDataTableStateV2CacheEntry): PTableParamsV2 {
83
79
  const parts: FilterSpec<FilterSpecLeaf<string>>[] = [
84
- ...partitionFilters,
85
- ...(advancedFilter ? [advancedFilter] : []),
80
+ ...convertPartitionFiltersToFilterSpec(state.sheetsState),
81
+ ...(state.filtersState ? [state.filtersState] : []),
86
82
  ];
87
- const filters: PTableFilters =
88
- parts.length === 0 ? null : parts.length === 1 ? parts[0] : { type: "and", filters: parts };
83
+ const filters: null | PlDataTableFilters = distillFilterSpec(
84
+ parts.length === 0 ? null : parts.length === 1 ? parts[0] : { type: "and", filters: parts },
85
+ );
89
86
 
90
87
  return {
91
88
  sourceId: state.sourceId,
92
89
  hiddenColIds: getHiddenColIds(state.gridState.columnVisibility),
93
90
  filters,
94
- sorting: makeSorting(state.gridState.sort),
91
+ sorting: convertAgSortingToPTableSorting(state.gridState.sort),
95
92
  };
96
93
  }
97
94
 
@@ -129,7 +126,7 @@ export function useTableState(
129
126
  };
130
127
 
131
128
  if (state.sourceId) {
132
- newState.pTableParams = makePTableParams(state);
129
+ newState.pTableParams = createPTableParams(state);
133
130
 
134
131
  const stateIdx = newState.stateCache.findIndex(
135
132
  (entry) => entry.sourceId === state.sourceId,