@platforma-sdk/ui-vue 1.40.5 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +52 -25
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +21 -0
- package/dist/AgGridVue/useAgGridOptions.js +54 -53
- package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
- package/dist/components/BlockLayout.vue.d.ts.map +1 -1
- package/dist/components/BlockLayout.vue.js +7 -50
- package/dist/components/BlockLayout.vue.js.map +1 -1
- package/dist/components/BlockLayout.vue2.js +53 -2
- package/dist/components/BlockLayout.vue2.js.map +1 -1
- package/dist/components/BlockLayout.vue3.js +9 -0
- package/dist/components/BlockLayout.vue3.js.map +1 -0
- package/dist/components/NotFound.vue.d.ts.map +1 -1
- package/dist/components/NotFound.vue.js +12 -14
- package/dist/components/NotFound.vue.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts +1 -4
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +155 -172
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +7 -6
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts +2 -2
- package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-source-v2.js +110 -105
- package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
- package/dist/components/PlAgDataTable/types.d.ts +27 -43
- package/dist/components/PlAgDataTable/types.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/types.js +32 -43
- package/dist/components/PlAgDataTable/types.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +10 -9
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
- package/dist/components/PlAgRowNumHeader.vue.js +3 -2
- package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
- package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +10 -10
- package/dist/components/PlAnnotations/components/PlAnnotationCreateDialog.vue.d.ts +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotationCreateDialog.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/data.js +51 -51
- package/dist/composition/fileContent.js +16 -16
- package/dist/defineApp.d.ts +19 -6
- package/dist/defineApp.d.ts.map +1 -1
- package/dist/defineApp.js +50 -30
- package/dist/defineApp.js.map +1 -1
- package/dist/internal/UpdateSerializer.d.ts +26 -0
- package/dist/internal/UpdateSerializer.d.ts.map +1 -0
- package/dist/internal/UpdateSerializer.js +65 -0
- package/dist/internal/UpdateSerializer.js.map +1 -0
- package/dist/internal/createAppModel.d.ts +1 -1
- package/dist/internal/createAppModel.d.ts.map +1 -1
- package/dist/internal/createAppModel.js +43 -51
- package/dist/internal/createAppModel.js.map +1 -1
- package/dist/internal/{createApp.d.ts → createAppV1.d.ts} +4 -4
- package/dist/internal/createAppV1.d.ts.map +1 -0
- package/dist/internal/{createApp.js → createAppV1.js} +17 -18
- package/dist/internal/createAppV1.js.map +1 -0
- package/dist/internal/createAppV2.d.ts +56 -0
- package/dist/internal/createAppV2.d.ts.map +1 -0
- package/dist/internal/createAppV2.js +158 -0
- package/dist/internal/createAppV2.js.map +1 -0
- package/dist/internal/test-helpers/BlockMock.d.ts +28 -0
- package/dist/internal/test-helpers/BlockMock.d.ts.map +1 -0
- package/dist/internal/test-helpers/createMockApi.d.ts +4 -0
- package/dist/internal/test-helpers/createMockApi.d.ts.map +1 -0
- package/dist/internal/test-helpers/utils.d.ts +4 -0
- package/dist/internal/test-helpers/utils.d.ts.map +1 -0
- package/dist/{types.static-test.d.ts → internal/v1.static-test.d.ts} +3 -3
- package/dist/internal/v1.static-test.d.ts.map +1 -0
- package/dist/internal/v2.static-test.d.ts +7 -0
- package/dist/internal/v2.static-test.d.ts.map +1 -0
- package/dist/lib/model/common/dist/index.js +214 -199
- package/dist/lib/model/common/dist/index.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlAccordion/{ExpandTransition.vue.js → ExpandTransition.vue2.js} +1 -1
- package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -0
- package/dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js +1 -1
- package/dist/lib/ui/uikit/dist/components/PlDialogModal/PlDialogModal.vue.js.map +1 -1
- package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js +7 -7
- package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +77 -56
- package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js.map +1 -1
- package/dist/lib/util/helpers/dist/index.js +67 -56
- package/dist/lib/util/helpers/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js +29 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/core.js +208 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/core.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/duplex.js +95 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/duplex.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/helpers.js +112 -0
- package/dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/helpers.js.map +1 -0
- package/dist/sdk/model/dist/index.js +165 -140
- package/dist/sdk/model/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -6
- package/src/components/BlockLayout.vue +9 -1
- package/src/components/NotFound.vue +1 -3
- package/src/components/PlAgDataTable/PlAgDataTableV2.vue +6 -31
- package/src/components/PlAgDataTable/sources/table-source-v2.ts +29 -29
- package/src/components/PlAgDataTable/types.ts +42 -70
- package/src/defineApp.ts +134 -36
- package/src/internal/UpdateSerializer.ts +112 -0
- package/src/internal/createAppModel.ts +7 -20
- package/src/internal/{createApp.ts → createAppV1.ts} +10 -6
- package/src/internal/createAppV2.test.ts +158 -0
- package/src/internal/createAppV2.ts +309 -0
- package/src/internal/test-helpers/BlockMock.ts +144 -0
- package/src/internal/test-helpers/createMockApi.ts +92 -0
- package/src/internal/test-helpers/utils.ts +65 -0
- package/src/{types.static-test.ts → internal/v1.static-test.ts} +5 -9
- package/src/internal/v2.static-test.ts +98 -0
- package/src/types.ts +2 -2
- package/dist/internal/createApp.d.ts.map +0 -1
- package/dist/internal/createApp.js.map +0 -1
- package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue.js.map +0 -1
- package/dist/types.static-test.d.ts.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -42,9 +42,9 @@ export type RouteParams<Href extends `/${string}` = `/${string}`> = {
|
|
|
42
42
|
};
|
|
43
43
|
export type AppSettings = {
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* App ID (just for debugging)
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
appId?: string;
|
|
48
48
|
/**
|
|
49
49
|
* Enables some debug logs
|
|
50
50
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"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.
|
|
3
|
+
"version": "1.41.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/lib.js",
|
|
6
6
|
"styles": "dist/lib.js",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"@vueuse/integrations": "^13.3.0",
|
|
26
26
|
"d3-format": "^3.1.0",
|
|
27
27
|
"zod": "~3.23.8",
|
|
28
|
-
"@milaboratories/
|
|
29
|
-
"@platforma-sdk/model": "~1.
|
|
30
|
-
"@milaboratories/
|
|
28
|
+
"@milaboratories/biowasm-tools": "^1.1.0",
|
|
29
|
+
"@platforma-sdk/model": "~1.41.0",
|
|
30
|
+
"@milaboratories/uikit": "2.3.16"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"happy-dom": "^15.11.7",
|
|
@@ -38,12 +38,15 @@
|
|
|
38
38
|
"typescript": "~5.6.3",
|
|
39
39
|
"vite": "^6.3.5",
|
|
40
40
|
"vitest": "^2.1.9",
|
|
41
|
+
"@vue/test-utils": "^2.4.6",
|
|
41
42
|
"vue-tsc": "^2.2.10",
|
|
42
43
|
"yarpm": "^1.2.0",
|
|
44
|
+
"fast-json-patch": "^3.1.1",
|
|
45
|
+
"@faker-js/faker": "^9.2.0",
|
|
43
46
|
"@milaboratories/ts-configs": "1.0.4",
|
|
44
|
-
"@milaboratories/helpers": "^1.6.18",
|
|
45
47
|
"@milaboratories/build-configs": "1.0.4",
|
|
46
|
-
"@milaboratories/eslint-config": "^1.0.4"
|
|
48
|
+
"@milaboratories/eslint-config": "^1.0.4",
|
|
49
|
+
"@milaboratories/helpers": "^1.6.18"
|
|
47
50
|
},
|
|
48
51
|
"scripts": {
|
|
49
52
|
"test": "vitest run --passWithNoTests",
|
|
@@ -43,7 +43,7 @@ const progress = computed(() => app.value?.progress?.());
|
|
|
43
43
|
<template>
|
|
44
44
|
<div class="block block__layout">
|
|
45
45
|
<BlockLoader :value="progress" />
|
|
46
|
-
<div v-if="sdk.error">{{ sdk.error }}</div>
|
|
46
|
+
<div v-if="sdk.error" :class="$style.error">{{ sdk.error }}</div>
|
|
47
47
|
<LoaderPage v-else-if="!sdk.loaded">Loading...</LoaderPage>
|
|
48
48
|
<component :is="CurrentView" v-else-if="CurrentView" :key="href" />
|
|
49
49
|
<NotFound v-else />
|
|
@@ -52,3 +52,11 @@ const progress = computed(() => app.value?.progress?.());
|
|
|
52
52
|
<!-- Plugins -->
|
|
53
53
|
<MonetizationSidebar v-if="CurrentView" />
|
|
54
54
|
</template>
|
|
55
|
+
|
|
56
|
+
<style module>
|
|
57
|
+
.error {
|
|
58
|
+
color: red;
|
|
59
|
+
font-weight: bold;
|
|
60
|
+
padding: 24px;
|
|
61
|
+
}
|
|
62
|
+
</style>
|
|
@@ -44,7 +44,6 @@ import type {
|
|
|
44
44
|
PlAgOverlayNoRowsParams,
|
|
45
45
|
PlDataTableSettingsV2,
|
|
46
46
|
PlDataTableSheetsSettings,
|
|
47
|
-
PlTableLabeledSelectionModel,
|
|
48
47
|
PlTableRowIdJson,
|
|
49
48
|
} from './types';
|
|
50
49
|
import { watchCached } from '@milaboratories/uikit';
|
|
@@ -53,7 +52,6 @@ const tableState = defineModel<PlDataTableStateV2>({
|
|
|
53
52
|
required: true,
|
|
54
53
|
});
|
|
55
54
|
const selection = defineModel<PlSelectionModel>('selection');
|
|
56
|
-
const selectionLabeled = defineModel<PlTableLabeledSelectionModel>('selectionLabeled');
|
|
57
55
|
const props = defineProps<{
|
|
58
56
|
/** Required component settings */
|
|
59
57
|
settings: Readonly<PlDataTableSettingsV2>;
|
|
@@ -155,10 +153,10 @@ const firstDataRenderedTracker = makeOnceTracker<GridApi<PlAgDataTableV2Row>>();
|
|
|
155
153
|
const gridOptions = shallowRef<GridOptions<PlAgDataTableV2Row>>({
|
|
156
154
|
animateRows: false,
|
|
157
155
|
suppressColumnMoveAnimation: true,
|
|
158
|
-
cellSelection: !selection.value
|
|
156
|
+
cellSelection: !selection.value,
|
|
159
157
|
initialState: gridState.value,
|
|
160
158
|
autoSizeStrategy: { type: 'fitCellContents' },
|
|
161
|
-
rowSelection: selection.value
|
|
159
|
+
rowSelection: selection.value
|
|
162
160
|
? {
|
|
163
161
|
mode: 'multiRow',
|
|
164
162
|
selectAll: 'all',
|
|
@@ -169,15 +167,11 @@ const gridOptions = shallowRef<GridOptions<PlAgDataTableV2Row>>({
|
|
|
169
167
|
}
|
|
170
168
|
: undefined,
|
|
171
169
|
onSelectionChanged: (event) => {
|
|
172
|
-
const state = event.api.getServerSideSelectionState();
|
|
173
170
|
if (selection.value) {
|
|
174
|
-
const
|
|
171
|
+
const state = event.api.getServerSideSelectionState();
|
|
172
|
+
const selectedKeys = state?.toggledNodes?.map((nodeId) => parseJson(nodeId as PlTableRowIdJson)) ?? [];
|
|
175
173
|
selection.value = { ...selection.value, selectedKeys };
|
|
176
174
|
}
|
|
177
|
-
if (selectionLabeled.value) {
|
|
178
|
-
const selectedLabeledKeys = state?.toggledNodes?.map((nodeId) => parseJson(nodeId as PlTableRowIdJson).labeled) ?? [];
|
|
179
|
-
selectionLabeled.value = { ...selectionLabeled.value, selectedLabeledKeys };
|
|
180
|
-
}
|
|
181
175
|
},
|
|
182
176
|
onRowDoubleClicked: (event) => {
|
|
183
177
|
if (event.data && event.data.axesKey) emit('rowDoubleClicked', event.data.axesKey);
|
|
@@ -356,12 +350,6 @@ watchCached(
|
|
|
356
350
|
selectedKeys: [],
|
|
357
351
|
};
|
|
358
352
|
}
|
|
359
|
-
if (selectionLabeled.value) {
|
|
360
|
-
selectionLabeled.value = {
|
|
361
|
-
spec: [],
|
|
362
|
-
selectedLabeledKeys: [],
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
353
|
} else {
|
|
366
354
|
const isColDef = (def: ColDef | ColGroupDef): def is ColDef =>
|
|
367
355
|
!('children' in def);
|
|
@@ -386,19 +374,6 @@ watchCached(
|
|
|
386
374
|
axesSpec,
|
|
387
375
|
};
|
|
388
376
|
}
|
|
389
|
-
if (selectionLabeled.value) {
|
|
390
|
-
const spec = columns
|
|
391
|
-
.reduce((acc, column) => {
|
|
392
|
-
if (column.source.type === 'axis') {
|
|
393
|
-
acc.push(column.labeled);
|
|
394
|
-
}
|
|
395
|
-
return acc;
|
|
396
|
-
}, [] as PTableColumnSpec[]);
|
|
397
|
-
selectionLabeled.value = {
|
|
398
|
-
...selectionLabeled.value,
|
|
399
|
-
spec,
|
|
400
|
-
};
|
|
401
|
-
}
|
|
402
377
|
}
|
|
403
378
|
},
|
|
404
379
|
{ immediate: true },
|
|
@@ -431,7 +406,7 @@ watch(
|
|
|
431
406
|
columnDefs: undefined,
|
|
432
407
|
serverSideDatasource: undefined,
|
|
433
408
|
});
|
|
434
|
-
if (selection.value
|
|
409
|
+
if (selection.value) {
|
|
435
410
|
gridApi.setServerSideSelectionState({
|
|
436
411
|
selectAll: false,
|
|
437
412
|
toggledNodes: [],
|
|
@@ -449,7 +424,7 @@ watch(
|
|
|
449
424
|
notReady: false,
|
|
450
425
|
} satisfies PlAgOverlayLoadingParams,
|
|
451
426
|
});
|
|
452
|
-
if (selection.value
|
|
427
|
+
if (selection.value) {
|
|
453
428
|
gridApi.setServerSideSelectionState({
|
|
454
429
|
selectAll: false,
|
|
455
430
|
toggledNodes: [],
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
PTableColumnSpecColumn } from '@platforma-sdk/model';
|
|
1
3
|
import {
|
|
2
4
|
canonicalizeJson,
|
|
3
5
|
getAxisId,
|
|
@@ -15,6 +17,7 @@ import {
|
|
|
15
17
|
type PlTableColumnId,
|
|
16
18
|
type PlTableColumnIdJson,
|
|
17
19
|
isLabelColumn as isLabelColumnSpec,
|
|
20
|
+
isColumnHidden,
|
|
18
21
|
} from '@platforma-sdk/model';
|
|
19
22
|
import type {
|
|
20
23
|
CellStyle,
|
|
@@ -39,7 +42,7 @@ import { getColumnRenderingSpec } from './value-rendering';
|
|
|
39
42
|
import type { Ref } from 'vue';
|
|
40
43
|
import { isJsonEqual } from '@milaboratories/helpers';
|
|
41
44
|
|
|
42
|
-
export function isLabelColumn(column: PTableColumnSpec) {
|
|
45
|
+
export function isLabelColumn(column: PTableColumnSpec): column is PTableColumnSpecColumn {
|
|
43
46
|
return column.type === 'column' && isLabelColumnSpec(column.spec);
|
|
44
47
|
}
|
|
45
48
|
|
|
@@ -48,7 +51,6 @@ function columns2rows(
|
|
|
48
51
|
fields: number[],
|
|
49
52
|
columns: PTableVector[],
|
|
50
53
|
axes: number[],
|
|
51
|
-
labeledAxes: number[],
|
|
52
54
|
resultMapping: number[],
|
|
53
55
|
): PlAgDataTableV2Row[] {
|
|
54
56
|
const rowData: PlAgDataTableV2Row[] = [];
|
|
@@ -58,15 +60,7 @@ function columns2rows(
|
|
|
58
60
|
pTableValue(columns[resultMapping[iAxis]], iRow),
|
|
59
61
|
);
|
|
60
62
|
});
|
|
61
|
-
const
|
|
62
|
-
return mapPTableValueToAxisKey(
|
|
63
|
-
pTableValue(columns[resultMapping[iAxis]], iRow),
|
|
64
|
-
);
|
|
65
|
-
});
|
|
66
|
-
const id = canonicalizeJson<PlTableRowId>({
|
|
67
|
-
axesKey,
|
|
68
|
-
labeled,
|
|
69
|
-
});
|
|
63
|
+
const id = canonicalizeJson<PlTableRowId>(axesKey);
|
|
70
64
|
const row: PlAgDataTableV2Row = { id, axesKey };
|
|
71
65
|
fields.forEach((field, iCol) => {
|
|
72
66
|
row[field.toString() as `${number}`] = resultMapping[iCol] === -1
|
|
@@ -118,18 +112,31 @@ export async function calculateGridOptions({
|
|
|
118
112
|
if (numberOfAxes === -1) numberOfAxes = specs.length;
|
|
119
113
|
|
|
120
114
|
// column indices in the specs array that we are going to process
|
|
121
|
-
const indices =
|
|
115
|
+
const indices = specs.keys()
|
|
122
116
|
.filter(
|
|
123
|
-
(i) =>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
117
|
+
(i) => {
|
|
118
|
+
const spec = specs[i];
|
|
119
|
+
switch (spec.type) {
|
|
120
|
+
case 'axis':
|
|
121
|
+
{
|
|
122
|
+
return !sheets.some(
|
|
123
|
+
(sheet) => isJsonEqual(getAxisId(sheet.axis), spec.id),
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
case 'column':
|
|
127
|
+
{
|
|
128
|
+
if (isLabelColumnSpec(spec.spec)) {
|
|
129
|
+
return !sheets.some(
|
|
130
|
+
(sheet) => isJsonEqual(getAxisId(sheet.axis), getAxisId(spec.spec.axesSpec[0])),
|
|
131
|
+
);
|
|
132
|
+
} else {
|
|
133
|
+
return !isColumnHidden(spec.spec);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
132
138
|
)
|
|
139
|
+
.toArray()
|
|
133
140
|
.sort((a, b) => {
|
|
134
141
|
if (specs[a].type !== specs[b].type) return specs[a].type === 'axis' ? -1 : 1;
|
|
135
142
|
|
|
@@ -202,13 +209,6 @@ export async function calculateGridOptions({
|
|
|
202
209
|
}
|
|
203
210
|
return r;
|
|
204
211
|
});
|
|
205
|
-
const labeledAxes: number[] = fields
|
|
206
|
-
.reduce((acc, field, index) => {
|
|
207
|
-
if (specs[field].type === 'axis') {
|
|
208
|
-
acc.push(allIndices.indexOf(indices[index]));
|
|
209
|
-
}
|
|
210
|
-
return acc;
|
|
211
|
-
}, [] as number[]);
|
|
212
212
|
|
|
213
213
|
const requestIndices: number[] = [];
|
|
214
214
|
const resultMapping: number[] = [];
|
|
@@ -260,7 +260,7 @@ export async function calculateGridOptions({
|
|
|
260
260
|
length,
|
|
261
261
|
});
|
|
262
262
|
if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();
|
|
263
|
-
rowData = columns2rows(fields, data, axes,
|
|
263
|
+
rowData = columns2rows(fields, data, axes, resultMapping);
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
266
|
|
|
@@ -24,9 +24,7 @@ export type PlDataTableFilterConfig = {
|
|
|
24
24
|
default?: PlTableFilter;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
export type PlDataTableSettingsV2 =
|
|
29
|
-
(
|
|
27
|
+
export type PlDataTableSettingsV2Base =
|
|
30
28
|
| { sourceId: null }
|
|
31
29
|
| {
|
|
32
30
|
/** Unique source id for state caching */
|
|
@@ -35,8 +33,10 @@ export type PlDataTableSettingsV2 =
|
|
|
35
33
|
sheets: PlDataTableSheet[];
|
|
36
34
|
/** Result of `createPlDataTableV2` */
|
|
37
35
|
model: PlDataTableModel | undefined;
|
|
38
|
-
}
|
|
39
|
-
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/** Data table V2 settings */
|
|
39
|
+
export type PlDataTableSettingsV2 = PlDataTableSettingsV2Base & {
|
|
40
40
|
/** Callback configuring filters for the table */
|
|
41
41
|
filtersConfig: (info: {
|
|
42
42
|
sourceId: string;
|
|
@@ -44,45 +44,41 @@ export type PlDataTableSettingsV2 =
|
|
|
44
44
|
}) => PlDataTableFilterConfig;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
type
|
|
48
|
-
/**
|
|
49
|
-
* Block property (such as inputAnchor) used to produce the data source.
|
|
50
|
-
* Mandatory for cases when the table can change without block run.
|
|
51
|
-
* Skip when the table is changed only after block run.
|
|
52
|
-
* Ask developers for help if you don't know what to set here.
|
|
53
|
-
*/
|
|
54
|
-
sourceId: MaybeRefOrGetter<T | undefined>;
|
|
47
|
+
type OptionsBasic = {
|
|
55
48
|
/** Block output created by `createPlDataTableV2` */
|
|
56
49
|
model: MaybeRefOrGetter<PlDataTableModel | undefined>;
|
|
57
50
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
* Sheets for partitioned data sources.
|
|
52
|
+
* Do not set if data source is never partitioned.
|
|
53
|
+
*/
|
|
61
54
|
sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
type OptionsSimple = OptionsBasic & {
|
|
62
58
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
*/
|
|
59
|
+
* Callback configuring filters for the table.
|
|
60
|
+
* If not provided, filtering will be disabled.
|
|
61
|
+
*/
|
|
67
62
|
filtersConfig?: (info: {
|
|
68
|
-
sourceId: JsonCompatible<T>;
|
|
69
63
|
column: PTableColumnSpec;
|
|
70
64
|
}) => PlDataTableFilterConfig;
|
|
71
65
|
};
|
|
72
66
|
|
|
73
|
-
type
|
|
74
|
-
/** Block output created by `createPlDataTableV2` */
|
|
75
|
-
model: MaybeRefOrGetter<PlDataTableModel | undefined>;
|
|
67
|
+
type OptionsAdvanced<T> = OptionsBasic & {
|
|
76
68
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
* Block property (such as inputAnchor) used to produce the data source.
|
|
70
|
+
* Mandatory for cases when the table can change without block run.
|
|
71
|
+
* Skip when the table is changed only after block run.
|
|
72
|
+
* Ask developers for help if you don't know what to set here.
|
|
73
|
+
*/
|
|
74
|
+
sourceId: MaybeRefOrGetter<T | undefined>;
|
|
81
75
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
* Callback configuring filters for the table.
|
|
77
|
+
* If not provided, filtering will be disabled.
|
|
78
|
+
* Parameter `sourceId` should be compared using `isJsonEqual` from `@milaboratories/helpers`.
|
|
79
|
+
*/
|
|
85
80
|
filtersConfig?: (info: {
|
|
81
|
+
sourceId: JsonCompatible<T>;
|
|
86
82
|
column: PTableColumnSpec;
|
|
87
83
|
}) => PlDataTableFilterConfig;
|
|
88
84
|
};
|
|
@@ -109,62 +105,51 @@ export function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T> | Option
|
|
|
109
105
|
: () => ({});
|
|
110
106
|
return computed(() => {
|
|
111
107
|
const modelValue = toValue(options.model);
|
|
108
|
+
let settingsBase: PlDataTableSettingsV2Base;
|
|
112
109
|
if ('sourceId' in options) {
|
|
113
110
|
const sourceIdValue = deepClone(toValue(options.sourceId));
|
|
114
111
|
if (options.sheets) {
|
|
115
112
|
const sheetsValue = deepClone(toValue(options.sheets));
|
|
116
|
-
|
|
113
|
+
settingsBase = sourceIdValue && sheetsValue
|
|
117
114
|
? {
|
|
118
115
|
sourceId: canonicalize(sourceIdValue)!,
|
|
119
116
|
sheets: sheetsValue,
|
|
120
117
|
model: modelValue,
|
|
121
|
-
filtersConfig: filtersConfigValue,
|
|
122
118
|
}
|
|
123
|
-
: {
|
|
124
|
-
sourceId: null,
|
|
125
|
-
filtersConfig: filtersConfigValue,
|
|
126
|
-
};
|
|
119
|
+
: { sourceId: null };
|
|
127
120
|
} else {
|
|
128
|
-
|
|
121
|
+
settingsBase = sourceIdValue
|
|
129
122
|
? {
|
|
130
123
|
sourceId: canonicalize(sourceIdValue)!,
|
|
131
124
|
sheets: [],
|
|
132
125
|
model: modelValue,
|
|
133
|
-
filtersConfig: filtersConfigValue,
|
|
134
126
|
}
|
|
135
|
-
: {
|
|
136
|
-
sourceId: null,
|
|
137
|
-
filtersConfig: filtersConfigValue,
|
|
138
|
-
};
|
|
127
|
+
: { sourceId: null };
|
|
139
128
|
}
|
|
140
129
|
} else {
|
|
141
130
|
if (options.sheets) {
|
|
142
131
|
const sheetsValue = toValue(options.sheets);
|
|
143
|
-
|
|
132
|
+
settingsBase = sheetsValue
|
|
144
133
|
? {
|
|
145
134
|
sourceId: canonicalize('static')!,
|
|
146
135
|
sheets: sheetsValue,
|
|
147
136
|
model: modelValue,
|
|
148
|
-
filtersConfig: filtersConfigValue,
|
|
149
137
|
}
|
|
150
|
-
: {
|
|
151
|
-
sourceId: null,
|
|
152
|
-
filtersConfig: filtersConfigValue,
|
|
153
|
-
};
|
|
138
|
+
: { sourceId: null };
|
|
154
139
|
} else {
|
|
155
|
-
|
|
140
|
+
settingsBase = modelValue
|
|
156
141
|
? {
|
|
157
142
|
sourceId: canonicalize('static')!,
|
|
158
143
|
sheets: [],
|
|
159
144
|
model: modelValue,
|
|
160
|
-
filtersConfig: filtersConfigValue,
|
|
161
145
|
}
|
|
162
|
-
: {
|
|
163
|
-
sourceId: null,
|
|
164
|
-
filtersConfig: filtersConfigValue,
|
|
165
|
-
};
|
|
146
|
+
: { sourceId: null };
|
|
166
147
|
}
|
|
167
148
|
}
|
|
149
|
+
return {
|
|
150
|
+
...settingsBase,
|
|
151
|
+
filtersConfig: filtersConfigValue,
|
|
152
|
+
};
|
|
168
153
|
});
|
|
169
154
|
};
|
|
170
155
|
|
|
@@ -193,14 +178,9 @@ export type PlAgDataTableV2Controller = {
|
|
|
193
178
|
focusRow: (rowKey: PTableKey) => Promise<void>;
|
|
194
179
|
};
|
|
195
180
|
|
|
196
|
-
export type PlTableRowId =
|
|
197
|
-
/** Axes values */
|
|
198
|
-
axesKey: PTableKey;
|
|
199
|
-
/** Axes key where values of labeled axes are resolved to corresponding labels */
|
|
200
|
-
labeled: PTableKey;
|
|
201
|
-
};
|
|
181
|
+
export type PlTableRowId = PTableKey;
|
|
202
182
|
|
|
203
|
-
export type PlTableRowIdJson = CanonicalizedJson<
|
|
183
|
+
export type PlTableRowIdJson = CanonicalizedJson<PTableKey>;
|
|
204
184
|
|
|
205
185
|
/** PlAgDataTableV2 row */
|
|
206
186
|
export type PlAgDataTableV2Row = {
|
|
@@ -212,14 +192,6 @@ export type PlAgDataTableV2Row = {
|
|
|
212
192
|
[field: `${number}`]: PTableValue | PTableHidden;
|
|
213
193
|
};
|
|
214
194
|
|
|
215
|
-
/** PlSelectionModel with labeled axes replaced by label columns */
|
|
216
|
-
export type PlTableLabeledSelectionModel = {
|
|
217
|
-
/** Specs for valuess in {@link PTableKey} */
|
|
218
|
-
spec: PTableColumnSpec[];
|
|
219
|
-
/** Row keys (arrays of axes values) of selected rows */
|
|
220
|
-
selectedLabeledKeys: PTableKey[];
|
|
221
|
-
};
|
|
222
|
-
|
|
223
195
|
export type PlAgOverlayLoadingParams = {
|
|
224
196
|
/**
|
|
225
197
|
* Required flag, that shows catInBag icon with message if `true`, shows PlSplash component if `false`.
|