@platforma-sdk/ui-vue 1.54.7 → 1.54.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-formatter$colon$check.log +2 -2
- package/.turbo/turbo-linter$colon$check.log +2 -2
- package/.turbo/turbo-types$colon$check.log +1 -1
- package/CHANGELOG.md +9 -0
- package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-state-v2.js +66 -64
- package/dist/components/PlAgDataTable/sources/table-state-v2.js.map +1 -1
- package/package.json +5 -5
- package/src/components/PlAgDataTable/sources/table-state-v2.ts +12 -15
package/.turbo/turbo-build.log
CHANGED
|
@@ -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.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.54.8 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...
|
|
@@ -19,8 +19,8 @@ computing gzip size...
|
|
|
19
19
|
[2mdist/[22m[36mcomponents/PlAgCellFile/PlAgCellFile.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
20
20
|
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgRowCount.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
21
21
|
[2mdist/[22m[36mcomponents/PlAgCsvExporter/PlAgCsvExporter.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
22
|
-
[2mdist/[22m[36mcomponents/PlAgCellProgress/PlAgCellProgress.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
23
22
|
[2mdist/[22m[36mcomponents/PlAgColumnHeader/PlAgColumnHeader.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
23
|
+
[2mdist/[22m[36mcomponents/PlAgCellProgress/PlAgCellProgress.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
24
24
|
[2mdist/[22m[36mcomponents/PlAgRowNumHeader.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
25
25
|
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgOverlayLoading.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
26
26
|
[2mdist/[22m[36mcomponents/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
@@ -134,7 +134,7 @@ computing gzip size...
|
|
|
134
134
|
[2mdist/[22m[36mcomponents/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js [39m[1m[2m 2.81 kB[22m[1m[22m[2m │ gzip: 1.16 kB[22m[2m │ map: 4.23 kB[22m
|
|
135
135
|
[2mdist/[22m[36mcomponents/PlAgColumnHeader/PlAgColumnHeader.vue.js [39m[1m[2m 2.98 kB[22m[1m[22m[2m │ gzip: 1.12 kB[22m[2m │ map: 4.85 kB[22m
|
|
136
136
|
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/row-number.js [39m[1m[2m 3.14 kB[22m[1m[22m[2m │ gzip: 1.35 kB[22m[2m │ map: 8.52 kB[22m
|
|
137
|
-
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/table-state-v2.js [39m[1m[2m 3.
|
|
137
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/table-state-v2.js [39m[1m[2m 3.49 kB[22m[1m[22m[2m │ gzip: 1.25 kB[22m[2m │ map: 10.94 kB[22m
|
|
138
138
|
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFiltersV2.vue2.js [39m[1m[2m 3.76 kB[22m[1m[22m[2m │ gzip: 1.59 kB[22m[2m │ map: 7.28 kB[22m
|
|
139
139
|
[2mdist/[22m[36mplugins/Monetization/LimitCard.vue2.js [39m[1m[2m 3.84 kB[22m[1m[22m[2m │ gzip: 1.15 kB[22m[2m │ map: 9.62 kB[22m
|
|
140
140
|
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js [39m[1m[2m 3.85 kB[22m[1m[22m[2m │ gzip: 1.53 kB[22m[2m │ map: 6.85 kB[22m
|
|
@@ -152,7 +152,7 @@ computing gzip size...
|
|
|
152
152
|
[2mdist/[22m[36mcomponents/PlAdvancedFilter/FilterEditor.vue2.js [39m[1m[2m12.83 kB[22m[1m[22m[2m │ gzip: 3.28 kB[22m[2m │ map: 25.49 kB[22m
|
|
153
153
|
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableV2.vue2.js [39m[1m[2m14.97 kB[22m[1m[22m[2m │ gzip: 4.35 kB[22m[2m │ map: 33.82 kB[22m
|
|
154
154
|
[2mdist/[22m[36mindex.js [39m[1m[2m99.79 kB[22m[1m[22m[2m │ gzip: 64.33 kB[22m[2m │ map: 0.13 kB[22m
|
|
155
|
-
[vite:dts] Declaration files built in
|
|
155
|
+
[vite:dts] Declaration files built in 7480ms.
|
|
156
156
|
|
|
157
|
-
[32m✓ built in
|
|
157
|
+
[32m✓ built in 8.94s[39m
|
|
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.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.54.8 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
|
|
11
|
+
Finished in 2862ms 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.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.54.8 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
|
|
9
|
+
Finished in 27ms 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.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.54.8 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-state-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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
|
|
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
|
|
4
|
-
import { randomInt as
|
|
5
|
-
import { computedCached as
|
|
6
|
-
function
|
|
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
|
|
15
|
-
var
|
|
16
|
-
return ((
|
|
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((
|
|
20
|
-
const
|
|
21
|
-
return typeof
|
|
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
|
|
25
|
-
return (r == null ? void 0 : r.sortModel.map((
|
|
26
|
-
const { spec:
|
|
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:
|
|
29
|
-
ascending:
|
|
30
|
-
naAndAbsentAreLeastValues:
|
|
28
|
+
column: s,
|
|
29
|
+
ascending: a.sort === "asc",
|
|
30
|
+
naAndAbsentAreLeastValues: a.sort === "asc"
|
|
31
31
|
};
|
|
32
32
|
})) ?? [];
|
|
33
33
|
}
|
|
34
|
-
function
|
|
35
|
-
const
|
|
34
|
+
function x(r) {
|
|
35
|
+
const a = [
|
|
36
36
|
...P(r.sheetsState),
|
|
37
|
-
...
|
|
38
|
-
], u =
|
|
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:
|
|
43
|
+
hiddenColIds: C(r.gridState.columnVisibility),
|
|
42
44
|
filters: u,
|
|
43
|
-
sorting:
|
|
45
|
+
sorting: T(r.gridState.sort)
|
|
44
46
|
};
|
|
45
47
|
}
|
|
46
|
-
function
|
|
47
|
-
const
|
|
48
|
-
get: () =>
|
|
48
|
+
function J(r, a) {
|
|
49
|
+
const u = b({
|
|
50
|
+
get: () => v(r.value),
|
|
49
51
|
set: (e) => r.value = e
|
|
50
|
-
}),
|
|
52
|
+
}), s = d({
|
|
51
53
|
get: () => {
|
|
52
|
-
const e =
|
|
53
|
-
if (!
|
|
54
|
-
const l =
|
|
55
|
-
(p) => p.sourceId ===
|
|
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:
|
|
59
|
+
return l || { ...e, sourceId: t };
|
|
58
60
|
},
|
|
59
61
|
set: (e) => {
|
|
60
|
-
const
|
|
61
|
-
...
|
|
62
|
-
pTableParams:
|
|
62
|
+
const t = {
|
|
63
|
+
...u.value,
|
|
64
|
+
pTableParams: m()
|
|
63
65
|
};
|
|
64
66
|
if (e.sourceId) {
|
|
65
|
-
|
|
66
|
-
const l =
|
|
67
|
+
t.pTableParams = x(e);
|
|
68
|
+
const l = t.stateCache.findIndex(
|
|
67
69
|
(p) => p.sourceId === e.sourceId
|
|
68
70
|
);
|
|
69
|
-
l !== -1 ?
|
|
71
|
+
l !== -1 ? t.stateCache[l] = e : (t.stateCache.push(e), t.stateCache = t.stateCache.slice(-5));
|
|
70
72
|
}
|
|
71
|
-
|
|
73
|
+
n(u.value, t) || (u.value = t);
|
|
72
74
|
}
|
|
73
75
|
});
|
|
74
76
|
f(
|
|
75
|
-
() =>
|
|
76
|
-
(e) =>
|
|
77
|
+
() => s.value,
|
|
78
|
+
(e) => n(s.value, e) && (s.value = e),
|
|
77
79
|
{ deep: !0 }
|
|
78
80
|
);
|
|
79
|
-
const
|
|
80
|
-
get: () =>
|
|
81
|
+
const o = d({
|
|
82
|
+
get: () => s.value.gridState,
|
|
81
83
|
set: (e) => {
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
...
|
|
84
|
+
const t = s.value;
|
|
85
|
+
t.sourceId && (s.value = {
|
|
86
|
+
...t,
|
|
85
87
|
gridState: e
|
|
86
88
|
});
|
|
87
89
|
}
|
|
88
90
|
});
|
|
89
|
-
f(
|
|
91
|
+
f(o, (e) => n(o.value, e) && (o.value = e), {
|
|
90
92
|
deep: !0
|
|
91
93
|
});
|
|
92
|
-
const
|
|
93
|
-
get: () =>
|
|
94
|
+
const c = d({
|
|
95
|
+
get: () => s.value.sheetsState,
|
|
94
96
|
set: (e) => {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
...
|
|
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
|
-
|
|
104
|
-
(e) =>
|
|
105
|
+
c,
|
|
106
|
+
(e) => n(c.value, e) && (c.value = e),
|
|
105
107
|
{ deep: !0 }
|
|
106
108
|
);
|
|
107
|
-
const
|
|
109
|
+
const i = d({
|
|
108
110
|
get: () => {
|
|
109
|
-
const e =
|
|
110
|
-
return e && (e.type === "and" || e.type === "or") && "filters" in e && Array.isArray(e.filters) ? e : { id:
|
|
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
|
|
114
|
-
|
|
115
|
-
...
|
|
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
|
-
|
|
122
|
-
(e) =>
|
|
123
|
+
i,
|
|
124
|
+
(e) => n(i.value, e) && (i.value = e),
|
|
123
125
|
{ deep: !0 }
|
|
124
|
-
), { gridState:
|
|
126
|
+
), { gridState: o, sheetsState: c, filtersState: i };
|
|
125
127
|
}
|
|
126
128
|
export {
|
|
127
|
-
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/ui-vue",
|
|
3
|
-
"version": "1.54.
|
|
3
|
+
"version": "1.54.8",
|
|
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.
|
|
30
|
-
"@platforma-sdk/model": "1.54.
|
|
29
|
+
"@milaboratories/uikit": "2.10.21",
|
|
30
|
+
"@platforma-sdk/model": "1.54.8"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@faker-js/faker": "^9.2.0",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"vite": "^6.4.1",
|
|
44
44
|
"vitest": "^4.0.16",
|
|
45
45
|
"@milaboratories/build-configs": "1.4.4",
|
|
46
|
-
"@milaboratories/
|
|
46
|
+
"@milaboratories/helpers": "1.13.4",
|
|
47
47
|
"@milaboratories/ts-configs": "1.2.1",
|
|
48
|
-
"@milaboratories/
|
|
48
|
+
"@milaboratories/ts-builder": "1.2.10"
|
|
49
49
|
},
|
|
50
50
|
"styles": "dist/index.js",
|
|
51
51
|
"scripts": {
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
...
|
|
85
|
-
...(
|
|
80
|
+
...convertPartitionFiltersToFilterSpec(state.sheetsState),
|
|
81
|
+
...(state.filtersState ? [state.filtersState] : []),
|
|
86
82
|
];
|
|
87
|
-
const filters:
|
|
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:
|
|
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 =
|
|
129
|
+
newState.pTableParams = createPTableParams(state);
|
|
133
130
|
|
|
134
131
|
const stateIdx = newState.stateCache.findIndex(
|
|
135
132
|
(entry) => entry.sourceId === state.sourceId,
|