@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-source-v2.js","sources":["../../../../src/components/PlAgDataTable/sources/table-source-v2.ts"],"sourcesContent":["import {\n canonicalizeJson,\n getAxisId,\n isColumnOptional,\n mapPTableValueToAxisKey,\n pTableValue,\n type PColumnSpec,\n type PFrameDriver,\n type PlDataTableSheet,\n type PTableVector,\n type AxisId,\n type PlDataTableModel,\n type PTableColumnSpec,\n type PTableKey,\n type PlTableColumnId,\n type PlTableColumnIdJson,\n isLabelColumn as isLabelColumnSpec,\n} from '@platforma-sdk/model';\nimport type {\n CellStyle,\n ColDef,\n GridApi,\n ICellRendererParams,\n IServerSideDatasource,\n IServerSideGetRowsParams,\n ManagedGridOptions,\n} from 'ag-grid-enterprise';\nimport canonicalize from 'canonicalize';\nimport type { PlAgHeaderComponentParams, PlAgHeaderComponentType } from '../../PlAgColumnHeader';\nimport { PlAgColumnHeader } from '../../PlAgColumnHeader';\nimport { PlAgTextAndButtonCell } from '../../PlAgTextAndButtonCell';\nimport type { PlAgDataTableV2Row, PlTableRowId } from '../types';\nimport {\n PTableHidden,\n} from './common';\nimport { defaultMainMenuItems } from './menu-items';\nimport { makeRowNumberColDef, PlAgDataTableRowNumberColId } from './row-number';\nimport { getColumnRenderingSpec } from './value-rendering';\nimport type { Ref } from 'vue';\nimport { isJsonEqual } from '@milaboratories/helpers';\n\nexport function isLabelColumn(column: PTableColumnSpec) {\n return column.type === 'column' && isLabelColumnSpec(column.spec);\n}\n\n/** Convert columnar data from the driver to rows, used by ag-grid */\nfunction columns2rows(\n fields: number[],\n columns: PTableVector[],\n axes: number[],\n labeledAxes: number[],\n resultMapping: number[],\n): PlAgDataTableV2Row[] {\n const rowData: PlAgDataTableV2Row[] = [];\n for (let iRow = 0; iRow < columns[0].data.length; ++iRow) {\n const axesKey = axes.map((iAxis) => {\n return mapPTableValueToAxisKey(\n pTableValue(columns[resultMapping[iAxis]], iRow),\n );\n });\n const labeled = labeledAxes.map((iAxis) => {\n return mapPTableValueToAxisKey(\n pTableValue(columns[resultMapping[iAxis]], iRow),\n );\n });\n const id = canonicalizeJson<PlTableRowId>({\n axesKey,\n labeled,\n });\n const row: PlAgDataTableV2Row = { id, axesKey };\n fields.forEach((field, iCol) => {\n row[field.toString() as `${number}`] = resultMapping[iCol] === -1\n ? PTableHidden\n : pTableValue(columns[resultMapping[iCol]], iRow);\n });\n rowData.push(row);\n }\n return rowData;\n}\n\n/** Calculate GridOptions for selected p-table data source */\nexport async function calculateGridOptions({\n generation,\n pfDriver,\n model,\n sheets,\n track,\n hiddenColIds,\n cellButtonAxisParams,\n}: {\n generation: Ref<number>;\n pfDriver: PFrameDriver;\n model: PlDataTableModel;\n sheets: PlDataTableSheet[];\n track: (ctx: GridApi<PlAgDataTableV2Row>) => void;\n hiddenColIds?: PlTableColumnIdJson[];\n cellButtonAxisParams?: PlAgCellButtonAxisParams;\n}): Promise<Pick<ManagedGridOptions<PlAgDataTableV2Row>, 'columnDefs' | 'serverSideDatasource'>> {\n const pt = model.visibleTableHandle;\n const specs = await pfDriver.getSpec(model.fullTableHandle);\n type SpecId = string;\n const specId = (spec: PTableColumnSpec): SpecId =>\n spec.type === 'axis' ? canonicalize(getAxisId(spec.spec))! : spec.id;\n const dataSpecs = await pfDriver.getSpec(pt);\n const dataSpecsMap = new Map<SpecId, number>();\n dataSpecs.forEach((spec, i) => {\n dataSpecsMap.set(specId(spec), i);\n });\n const specsToDataSpecsMapping = new Map<number, number>();\n specs.forEach((spec, i) => {\n const dataSpecIdx = dataSpecsMap.get(specId(spec));\n if (dataSpecIdx === undefined && spec.type === 'axis')\n throw new Error(`axis ${JSON.stringify(spec.spec)} not present in join result`);\n specsToDataSpecsMapping.set(i, dataSpecIdx ?? -1);\n });\n\n let numberOfAxes = specs.findIndex((s) => s.type === 'column');\n if (numberOfAxes === -1) numberOfAxes = specs.length;\n\n // column indices in the specs array that we are going to process\n const indices = [...specs.keys()]\n .filter(\n (i) =>\n !sheets.some(\n (sheet) =>\n isJsonEqual(getAxisId(sheet.axis), specs[i].id)\n || (specs[i].type === 'column'\n && specs[i].spec.name === 'pl7.app/label'\n && specs[i].spec.axesSpec.length === 1\n && isJsonEqual(getAxisId(sheet.axis), getAxisId(specs[i].spec.axesSpec[0]))),\n ),\n )\n .sort((a, b) => {\n if (specs[a].type !== specs[b].type) return specs[a].type === 'axis' ? -1 : 1;\n\n const aPriority = specs[a].spec.annotations?.['pl7.app/table/orderPriority'];\n const bPriority = specs[b].spec.annotations?.['pl7.app/table/orderPriority'];\n\n if (aPriority === undefined) return bPriority === undefined ? 0 : 1;\n if (bPriority === undefined) return -1;\n return Number(bPriority) - Number(aPriority);\n });\n\n const fields = [...indices];\n\n // process label columns\n const firstColumnIdx = indices.findIndex((i) => specs[i].type === 'column');\n for (let i = indices.length - 1; i >= firstColumnIdx; --i) {\n const idx = indices[i];\n if (!isLabelColumn(specs[idx])) continue;\n\n // axis of labels\n const axisId = getAxisId((specs[idx].spec as PColumnSpec).axesSpec[0]);\n const axisIdx = indices.findIndex((idx) => isJsonEqual(specs[idx].id, axisId));\n if (axisIdx !== -1) {\n indices[axisIdx] = idx;\n } else {\n console.warn(`multiple label columns match axisId: ${JSON.stringify(axisId)}`);\n }\n\n // remove original axis\n indices.splice(i, 1);\n fields.splice(i, 1);\n }\n\n const columnDefs: ColDef<PlAgDataTableV2Row>[] = [\n makeRowNumberColDef(),\n ...fields.map((field, index) => makeColDef(field, specs[field], specs[indices[index]], hiddenColIds, cellButtonAxisParams)),\n ];\n\n // mixing in axis indices\n\n const allIndices = [...indices];\n\n // axisIdx (0..<axesCount) -> idx in allIndices array\n const axisToFieldIdx = new Map<number, number>();\n for (let i = 0; i < numberOfAxes; ++i) axisToFieldIdx.set(i, -1);\n\n allIndices.forEach((idx, i) => {\n if (axisToFieldIdx.has(idx)) axisToFieldIdx.set(idx, i);\n });\n // at this point we have axis indices that are not listed in indices set to -1 in axisToFieldIdx\n\n // adding those indices at the end of allIndices array, to make sure we have all the axes in our response\n for (const [key, value] of axisToFieldIdx) {\n if (value === -1) {\n axisToFieldIdx.set(key, allIndices.length /* at this index value will be inserted in the next line */);\n allIndices.push(key);\n }\n }\n\n // Construct the `axes` array for key generation in `columns2rows`.\n // The key components should be ordered according to the display order of axis columns from the `fields` array.\n const axes: number[] = fields\n .filter((field) => specs[field].type === 'axis')\n .map((field) => {\n const r = allIndices.indexOf(field);\n if (r === -1) {\n throw new Error(\n `Assertion failed: Original axis spec index ${field} (from fields) for key construction not found in allIndices.`,\n );\n }\n return r;\n });\n const labeledAxes: number[] = fields\n .reduce((acc, field, index) => {\n if (specs[field].type === 'axis') {\n acc.push(allIndices.indexOf(indices[index]));\n }\n return acc;\n }, [] as number[]);\n\n const requestIndices: number[] = [];\n const resultMapping: number[] = [];\n allIndices.forEach((idx) => {\n const dataSpecIdx = specsToDataSpecsMapping.get(idx)!;\n if (dataSpecIdx !== -1) {\n resultMapping.push(requestIndices.length);\n requestIndices.push(dataSpecIdx);\n } else {\n resultMapping.push(-1);\n }\n });\n\n const stateGeneration = generation.value;\n let rowCount = -1;\n let lastParams: IServerSideGetRowsParams | undefined = undefined;\n const serverSideDatasource: IServerSideDatasource<PlAgDataTableV2Row> = {\n getRows: async (params: IServerSideGetRowsParams) => {\n if (stateGeneration !== generation.value) return params.fail();\n try {\n if (rowCount === -1) {\n const ptShape = await pfDriver.getShape(pt);\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n rowCount = ptShape.rows;\n }\n\n if (rowCount == 0) {\n params.success({ rowData: [], rowCount });\n // Warning: AgGrid cannot show two overlays at once,\n // so first hide loading overlay, then show no rows overlay\n params.api.setGridOption('loading', false);\n params.api.showNoRowsOverlay();\n return;\n }\n\n // If sort has changed - show skeletons instead of data\n if (lastParams && !isJsonEqual(lastParams.request.sortModel, params.request.sortModel)) {\n return params.success({ rowData: [], rowCount });\n }\n lastParams = params;\n\n let length = 0;\n let rowData: PlAgDataTableV2Row[] = [];\n if (rowCount > 0 && params.request.startRow !== undefined && params.request.endRow !== undefined) {\n length = Math.min(rowCount, params.request.endRow) - params.request.startRow;\n if (length > 0) {\n const data = await pfDriver.getData(pt, requestIndices, {\n offset: params.request.startRow,\n length,\n });\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n rowData = columns2rows(fields, data, axes, labeledAxes, resultMapping);\n }\n }\n\n params.success({ rowData, rowCount });\n params.api.autoSizeColumns(\n params.api.getAllDisplayedColumns()\n .filter((column) => column.getColId() !== PlAgDataTableRowNumberColId),\n );\n params.api.setGridOption('loading', false);\n } catch (error: unknown) {\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n params.api.setGridOption('loading', true);\n params.fail();\n console.trace(error);\n } finally {\n if (!params.api.isDestroyed()) {\n track(params.api);\n }\n }\n },\n };\n\n return {\n columnDefs,\n serverSideDatasource,\n };\n}\n\nexport type PlAgCellButtonAxisParams = {\n showCellButtonForAxisId?: AxisId;\n cellButtonInvokeRowsOnDoubleClick?: boolean;\n trigger: (key?: PTableKey) => void;\n};\n\n/**\n * Calculates column definition for a given p-table column\n */\nexport function makeColDef(\n iCol: number,\n spec: PTableColumnSpec,\n labeledSpec: PTableColumnSpec,\n hiddenColIds: PlTableColumnIdJson[] | undefined,\n cellButtonAxisParams?: PlAgCellButtonAxisParams,\n): ColDef {\n const colId = canonicalizeJson<PlTableColumnId>({\n source: spec,\n labeled: labeledSpec,\n });\n const valueType = spec.type === 'axis' ? spec.spec.type : spec.spec.valueType;\n const columnRenderingSpec = getColumnRenderingSpec(spec);\n const cellStyle: CellStyle = {};\n if (columnRenderingSpec.fontFamily) {\n if (columnRenderingSpec.fontFamily === 'monospace') {\n cellStyle.fontFamily = 'Spline Sans Mono';\n cellStyle.fontWeight = 300;\n } else {\n cellStyle.fontFamily = columnRenderingSpec.fontFamily;\n }\n }\n return {\n colId,\n mainMenuItems: defaultMainMenuItems,\n context: spec,\n field: iCol.toString(),\n headerName: labeledSpec.spec.annotations?.['pl7.app/label']?.trim() ?? 'Unlabeled ' + spec.type + ' ' + iCol.toString(),\n lockPosition: spec.type === 'axis',\n hide: hiddenColIds?.includes(colId) ?? isColumnOptional(spec.spec),\n valueFormatter: columnRenderingSpec.valueFormatter,\n headerComponent: PlAgColumnHeader,\n cellRendererSelector: cellButtonAxisParams?.showCellButtonForAxisId\n ? (params: ICellRendererParams) => {\n if (spec.type !== 'axis') return;\n\n const axisId = (params.colDef?.context as PTableColumnSpec)?.id as AxisId;\n if (isJsonEqual(axisId, cellButtonAxisParams.showCellButtonForAxisId)) {\n return {\n component: PlAgTextAndButtonCell,\n params: {\n invokeRowsOnDoubleClick: cellButtonAxisParams.cellButtonInvokeRowsOnDoubleClick,\n onClick: (params: ICellRendererParams<PlAgDataTableV2Row>) => {\n cellButtonAxisParams.trigger(params.data?.axesKey);\n },\n },\n };\n }\n }\n : undefined,\n cellStyle,\n headerComponentParams: {\n type: ((): PlAgHeaderComponentType => {\n switch (valueType) {\n case 'Int':\n case 'Long':\n case 'Float':\n case 'Double':\n return 'Number';\n case 'String':\n case 'Bytes':\n return 'Text';\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n } satisfies PlAgHeaderComponentParams,\n cellDataType: (() => {\n switch (valueType) {\n case 'Int':\n case 'Long':\n case 'Float':\n case 'Double':\n return 'number';\n case 'String':\n case 'Bytes':\n return 'text';\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n };\n}\n"],"names":["isLabelColumn","column","isLabelColumnSpec","columns2rows","fields","columns","axes","labeledAxes","resultMapping","rowData","iRow","axesKey","iAxis","mapPTableValueToAxisKey","pTableValue","labeled","row","canonicalizeJson","field","iCol","PTableHidden","calculateGridOptions","generation","pfDriver","model","sheets","track","hiddenColIds","cellButtonAxisParams","pt","specs","specId","spec","canonicalize","getAxisId","dataSpecs","dataSpecsMap","i","specsToDataSpecsMapping","dataSpecIdx","numberOfAxes","s","indices","sheet","isJsonEqual","a","b","aPriority","_a","bPriority","_b","firstColumnIdx","idx","axisId","axisIdx","columnDefs","makeRowNumberColDef","index","makeColDef","allIndices","axisToFieldIdx","key","value","r","acc","requestIndices","stateGeneration","rowCount","lastParams","params","ptShape","length","data","PlAgDataTableRowNumberColId","error","labeledSpec","colId","valueType","columnRenderingSpec","getColumnRenderingSpec","cellStyle","defaultMainMenuItems","isColumnOptional","PlAgColumnHeader","PlAgTextAndButtonCell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-source-v2.js","sources":["../../../../src/components/PlAgDataTable/sources/table-source-v2.ts"],"sourcesContent":["import type {\n PTableColumnSpecColumn } from '@platforma-sdk/model';\nimport {\n canonicalizeJson,\n getAxisId,\n isColumnOptional,\n mapPTableValueToAxisKey,\n pTableValue,\n type PColumnSpec,\n type PFrameDriver,\n type PlDataTableSheet,\n type PTableVector,\n type AxisId,\n type PlDataTableModel,\n type PTableColumnSpec,\n type PTableKey,\n type PlTableColumnId,\n type PlTableColumnIdJson,\n isLabelColumn as isLabelColumnSpec,\n isColumnHidden,\n} from '@platforma-sdk/model';\nimport type {\n CellStyle,\n ColDef,\n GridApi,\n ICellRendererParams,\n IServerSideDatasource,\n IServerSideGetRowsParams,\n ManagedGridOptions,\n} from 'ag-grid-enterprise';\nimport canonicalize from 'canonicalize';\nimport type { PlAgHeaderComponentParams, PlAgHeaderComponentType } from '../../PlAgColumnHeader';\nimport { PlAgColumnHeader } from '../../PlAgColumnHeader';\nimport { PlAgTextAndButtonCell } from '../../PlAgTextAndButtonCell';\nimport type { PlAgDataTableV2Row, PlTableRowId } from '../types';\nimport {\n PTableHidden,\n} from './common';\nimport { defaultMainMenuItems } from './menu-items';\nimport { makeRowNumberColDef, PlAgDataTableRowNumberColId } from './row-number';\nimport { getColumnRenderingSpec } from './value-rendering';\nimport type { Ref } from 'vue';\nimport { isJsonEqual } from '@milaboratories/helpers';\n\nexport function isLabelColumn(column: PTableColumnSpec): column is PTableColumnSpecColumn {\n return column.type === 'column' && isLabelColumnSpec(column.spec);\n}\n\n/** Convert columnar data from the driver to rows, used by ag-grid */\nfunction columns2rows(\n fields: number[],\n columns: PTableVector[],\n axes: number[],\n resultMapping: number[],\n): PlAgDataTableV2Row[] {\n const rowData: PlAgDataTableV2Row[] = [];\n for (let iRow = 0; iRow < columns[0].data.length; ++iRow) {\n const axesKey = axes.map((iAxis) => {\n return mapPTableValueToAxisKey(\n pTableValue(columns[resultMapping[iAxis]], iRow),\n );\n });\n const id = canonicalizeJson<PlTableRowId>(axesKey);\n const row: PlAgDataTableV2Row = { id, axesKey };\n fields.forEach((field, iCol) => {\n row[field.toString() as `${number}`] = resultMapping[iCol] === -1\n ? PTableHidden\n : pTableValue(columns[resultMapping[iCol]], iRow);\n });\n rowData.push(row);\n }\n return rowData;\n}\n\n/** Calculate GridOptions for selected p-table data source */\nexport async function calculateGridOptions({\n generation,\n pfDriver,\n model,\n sheets,\n track,\n hiddenColIds,\n cellButtonAxisParams,\n}: {\n generation: Ref<number>;\n pfDriver: PFrameDriver;\n model: PlDataTableModel;\n sheets: PlDataTableSheet[];\n track: (ctx: GridApi<PlAgDataTableV2Row>) => void;\n hiddenColIds?: PlTableColumnIdJson[];\n cellButtonAxisParams?: PlAgCellButtonAxisParams;\n}): Promise<Pick<ManagedGridOptions<PlAgDataTableV2Row>, 'columnDefs' | 'serverSideDatasource'>> {\n const pt = model.visibleTableHandle;\n const specs = await pfDriver.getSpec(model.fullTableHandle);\n type SpecId = string;\n const specId = (spec: PTableColumnSpec): SpecId =>\n spec.type === 'axis' ? canonicalize(getAxisId(spec.spec))! : spec.id;\n const dataSpecs = await pfDriver.getSpec(pt);\n const dataSpecsMap = new Map<SpecId, number>();\n dataSpecs.forEach((spec, i) => {\n dataSpecsMap.set(specId(spec), i);\n });\n const specsToDataSpecsMapping = new Map<number, number>();\n specs.forEach((spec, i) => {\n const dataSpecIdx = dataSpecsMap.get(specId(spec));\n if (dataSpecIdx === undefined && spec.type === 'axis')\n throw new Error(`axis ${JSON.stringify(spec.spec)} not present in join result`);\n specsToDataSpecsMapping.set(i, dataSpecIdx ?? -1);\n });\n\n let numberOfAxes = specs.findIndex((s) => s.type === 'column');\n if (numberOfAxes === -1) numberOfAxes = specs.length;\n\n // column indices in the specs array that we are going to process\n const indices = specs.keys()\n .filter(\n (i) => {\n const spec = specs[i];\n switch (spec.type) {\n case 'axis':\n {\n return !sheets.some(\n (sheet) => isJsonEqual(getAxisId(sheet.axis), spec.id),\n );\n }\n case 'column':\n {\n if (isLabelColumnSpec(spec.spec)) {\n return !sheets.some(\n (sheet) => isJsonEqual(getAxisId(sheet.axis), getAxisId(spec.spec.axesSpec[0])),\n );\n } else {\n return !isColumnHidden(spec.spec);\n }\n }\n }\n },\n )\n .toArray()\n .sort((a, b) => {\n if (specs[a].type !== specs[b].type) return specs[a].type === 'axis' ? -1 : 1;\n\n const aPriority = specs[a].spec.annotations?.['pl7.app/table/orderPriority'];\n const bPriority = specs[b].spec.annotations?.['pl7.app/table/orderPriority'];\n\n if (aPriority === undefined) return bPriority === undefined ? 0 : 1;\n if (bPriority === undefined) return -1;\n return Number(bPriority) - Number(aPriority);\n });\n\n const fields = [...indices];\n\n // process label columns\n const firstColumnIdx = indices.findIndex((i) => specs[i].type === 'column');\n for (let i = indices.length - 1; i >= firstColumnIdx; --i) {\n const idx = indices[i];\n if (!isLabelColumn(specs[idx])) continue;\n\n // axis of labels\n const axisId = getAxisId((specs[idx].spec as PColumnSpec).axesSpec[0]);\n const axisIdx = indices.findIndex((idx) => isJsonEqual(specs[idx].id, axisId));\n if (axisIdx !== -1) {\n indices[axisIdx] = idx;\n } else {\n console.warn(`multiple label columns match axisId: ${JSON.stringify(axisId)}`);\n }\n\n // remove original axis\n indices.splice(i, 1);\n fields.splice(i, 1);\n }\n\n const columnDefs: ColDef<PlAgDataTableV2Row>[] = [\n makeRowNumberColDef(),\n ...fields.map((field, index) => makeColDef(field, specs[field], specs[indices[index]], hiddenColIds, cellButtonAxisParams)),\n ];\n\n // mixing in axis indices\n\n const allIndices = [...indices];\n\n // axisIdx (0..<axesCount) -> idx in allIndices array\n const axisToFieldIdx = new Map<number, number>();\n for (let i = 0; i < numberOfAxes; ++i) axisToFieldIdx.set(i, -1);\n\n allIndices.forEach((idx, i) => {\n if (axisToFieldIdx.has(idx)) axisToFieldIdx.set(idx, i);\n });\n // at this point we have axis indices that are not listed in indices set to -1 in axisToFieldIdx\n\n // adding those indices at the end of allIndices array, to make sure we have all the axes in our response\n for (const [key, value] of axisToFieldIdx) {\n if (value === -1) {\n axisToFieldIdx.set(key, allIndices.length /* at this index value will be inserted in the next line */);\n allIndices.push(key);\n }\n }\n\n // Construct the `axes` array for key generation in `columns2rows`.\n // The key components should be ordered according to the display order of axis columns from the `fields` array.\n const axes: number[] = fields\n .filter((field) => specs[field].type === 'axis')\n .map((field) => {\n const r = allIndices.indexOf(field);\n if (r === -1) {\n throw new Error(\n `Assertion failed: Original axis spec index ${field} (from fields) for key construction not found in allIndices.`,\n );\n }\n return r;\n });\n\n const requestIndices: number[] = [];\n const resultMapping: number[] = [];\n allIndices.forEach((idx) => {\n const dataSpecIdx = specsToDataSpecsMapping.get(idx)!;\n if (dataSpecIdx !== -1) {\n resultMapping.push(requestIndices.length);\n requestIndices.push(dataSpecIdx);\n } else {\n resultMapping.push(-1);\n }\n });\n\n const stateGeneration = generation.value;\n let rowCount = -1;\n let lastParams: IServerSideGetRowsParams | undefined = undefined;\n const serverSideDatasource: IServerSideDatasource<PlAgDataTableV2Row> = {\n getRows: async (params: IServerSideGetRowsParams) => {\n if (stateGeneration !== generation.value) return params.fail();\n try {\n if (rowCount === -1) {\n const ptShape = await pfDriver.getShape(pt);\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n rowCount = ptShape.rows;\n }\n\n if (rowCount == 0) {\n params.success({ rowData: [], rowCount });\n // Warning: AgGrid cannot show two overlays at once,\n // so first hide loading overlay, then show no rows overlay\n params.api.setGridOption('loading', false);\n params.api.showNoRowsOverlay();\n return;\n }\n\n // If sort has changed - show skeletons instead of data\n if (lastParams && !isJsonEqual(lastParams.request.sortModel, params.request.sortModel)) {\n return params.success({ rowData: [], rowCount });\n }\n lastParams = params;\n\n let length = 0;\n let rowData: PlAgDataTableV2Row[] = [];\n if (rowCount > 0 && params.request.startRow !== undefined && params.request.endRow !== undefined) {\n length = Math.min(rowCount, params.request.endRow) - params.request.startRow;\n if (length > 0) {\n const data = await pfDriver.getData(pt, requestIndices, {\n offset: params.request.startRow,\n length,\n });\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n rowData = columns2rows(fields, data, axes, resultMapping);\n }\n }\n\n params.success({ rowData, rowCount });\n params.api.autoSizeColumns(\n params.api.getAllDisplayedColumns()\n .filter((column) => column.getColId() !== PlAgDataTableRowNumberColId),\n );\n params.api.setGridOption('loading', false);\n } catch (error: unknown) {\n if (stateGeneration !== generation.value || params.api.isDestroyed()) return params.fail();\n params.api.setGridOption('loading', true);\n params.fail();\n console.trace(error);\n } finally {\n if (!params.api.isDestroyed()) {\n track(params.api);\n }\n }\n },\n };\n\n return {\n columnDefs,\n serverSideDatasource,\n };\n}\n\nexport type PlAgCellButtonAxisParams = {\n showCellButtonForAxisId?: AxisId;\n cellButtonInvokeRowsOnDoubleClick?: boolean;\n trigger: (key?: PTableKey) => void;\n};\n\n/**\n * Calculates column definition for a given p-table column\n */\nexport function makeColDef(\n iCol: number,\n spec: PTableColumnSpec,\n labeledSpec: PTableColumnSpec,\n hiddenColIds: PlTableColumnIdJson[] | undefined,\n cellButtonAxisParams?: PlAgCellButtonAxisParams,\n): ColDef {\n const colId = canonicalizeJson<PlTableColumnId>({\n source: spec,\n labeled: labeledSpec,\n });\n const valueType = spec.type === 'axis' ? spec.spec.type : spec.spec.valueType;\n const columnRenderingSpec = getColumnRenderingSpec(spec);\n const cellStyle: CellStyle = {};\n if (columnRenderingSpec.fontFamily) {\n if (columnRenderingSpec.fontFamily === 'monospace') {\n cellStyle.fontFamily = 'Spline Sans Mono';\n cellStyle.fontWeight = 300;\n } else {\n cellStyle.fontFamily = columnRenderingSpec.fontFamily;\n }\n }\n return {\n colId,\n mainMenuItems: defaultMainMenuItems,\n context: spec,\n field: iCol.toString(),\n headerName: labeledSpec.spec.annotations?.['pl7.app/label']?.trim() ?? 'Unlabeled ' + spec.type + ' ' + iCol.toString(),\n lockPosition: spec.type === 'axis',\n hide: hiddenColIds?.includes(colId) ?? isColumnOptional(spec.spec),\n valueFormatter: columnRenderingSpec.valueFormatter,\n headerComponent: PlAgColumnHeader,\n cellRendererSelector: cellButtonAxisParams?.showCellButtonForAxisId\n ? (params: ICellRendererParams) => {\n if (spec.type !== 'axis') return;\n\n const axisId = (params.colDef?.context as PTableColumnSpec)?.id as AxisId;\n if (isJsonEqual(axisId, cellButtonAxisParams.showCellButtonForAxisId)) {\n return {\n component: PlAgTextAndButtonCell,\n params: {\n invokeRowsOnDoubleClick: cellButtonAxisParams.cellButtonInvokeRowsOnDoubleClick,\n onClick: (params: ICellRendererParams<PlAgDataTableV2Row>) => {\n cellButtonAxisParams.trigger(params.data?.axesKey);\n },\n },\n };\n }\n }\n : undefined,\n cellStyle,\n headerComponentParams: {\n type: ((): PlAgHeaderComponentType => {\n switch (valueType) {\n case 'Int':\n case 'Long':\n case 'Float':\n case 'Double':\n return 'Number';\n case 'String':\n case 'Bytes':\n return 'Text';\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n } satisfies PlAgHeaderComponentParams,\n cellDataType: (() => {\n switch (valueType) {\n case 'Int':\n case 'Long':\n case 'Float':\n case 'Double':\n return 'number';\n case 'String':\n case 'Bytes':\n return 'text';\n default:\n throw Error(`unsupported data type: ${valueType}`);\n }\n })(),\n };\n}\n"],"names":["isLabelColumn","column","isLabelColumnSpec","columns2rows","fields","columns","axes","resultMapping","rowData","iRow","axesKey","iAxis","mapPTableValueToAxisKey","pTableValue","row","canonicalizeJson","field","iCol","PTableHidden","calculateGridOptions","generation","pfDriver","model","sheets","track","hiddenColIds","cellButtonAxisParams","pt","specs","specId","spec","canonicalize","getAxisId","dataSpecs","dataSpecsMap","i","specsToDataSpecsMapping","dataSpecIdx","numberOfAxes","s","indices","sheet","isJsonEqual","isColumnHidden","a","b","aPriority","_a","bPriority","_b","firstColumnIdx","idx","axisId","axisIdx","columnDefs","makeRowNumberColDef","index","makeColDef","allIndices","axisToFieldIdx","key","value","r","requestIndices","stateGeneration","rowCount","lastParams","params","ptShape","length","data","PlAgDataTableRowNumberColId","error","labeledSpec","colId","valueType","columnRenderingSpec","getColumnRenderingSpec","cellStyle","defaultMainMenuItems","isColumnOptional","PlAgColumnHeader","PlAgTextAndButtonCell"],"mappings":"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"}
|
|
@@ -5,8 +5,7 @@ export type PlDataTableFilterConfig = {
|
|
|
5
5
|
options?: PlTableFilterType[];
|
|
6
6
|
default?: PlTableFilter;
|
|
7
7
|
};
|
|
8
|
-
|
|
9
|
-
export type PlDataTableSettingsV2 = ({
|
|
8
|
+
export type PlDataTableSettingsV2Base = {
|
|
10
9
|
sourceId: null;
|
|
11
10
|
} | {
|
|
12
11
|
/** Unique source id for state caching */
|
|
@@ -15,51 +14,48 @@ export type PlDataTableSettingsV2 = ({
|
|
|
15
14
|
sheets: PlDataTableSheet[];
|
|
16
15
|
/** Result of `createPlDataTableV2` */
|
|
17
16
|
model: PlDataTableModel | undefined;
|
|
18
|
-
}
|
|
17
|
+
};
|
|
18
|
+
/** Data table V2 settings */
|
|
19
|
+
export type PlDataTableSettingsV2 = PlDataTableSettingsV2Base & {
|
|
19
20
|
/** Callback configuring filters for the table */
|
|
20
21
|
filtersConfig: (info: {
|
|
21
22
|
sourceId: string;
|
|
22
23
|
column: PTableColumnSpec;
|
|
23
24
|
}) => PlDataTableFilterConfig;
|
|
24
25
|
};
|
|
25
|
-
type
|
|
26
|
-
/**
|
|
27
|
-
* Block property (such as inputAnchor) used to produce the data source.
|
|
28
|
-
* Mandatory for cases when the table can change without block run.
|
|
29
|
-
* Skip when the table is changed only after block run.
|
|
30
|
-
* Ask developers for help if you don't know what to set here.
|
|
31
|
-
*/
|
|
32
|
-
sourceId: MaybeRefOrGetter<T | undefined>;
|
|
26
|
+
type OptionsBasic = {
|
|
33
27
|
/** Block output created by `createPlDataTableV2` */
|
|
34
28
|
model: MaybeRefOrGetter<PlDataTableModel | undefined>;
|
|
35
29
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
* Sheets for partitioned data sources.
|
|
31
|
+
* Do not set if data source is never partitioned.
|
|
32
|
+
*/
|
|
39
33
|
sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;
|
|
34
|
+
};
|
|
35
|
+
type OptionsSimple = OptionsBasic & {
|
|
40
36
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*/
|
|
37
|
+
* Callback configuring filters for the table.
|
|
38
|
+
* If not provided, filtering will be disabled.
|
|
39
|
+
*/
|
|
45
40
|
filtersConfig?: (info: {
|
|
46
|
-
sourceId: JsonCompatible<T>;
|
|
47
41
|
column: PTableColumnSpec;
|
|
48
42
|
}) => PlDataTableFilterConfig;
|
|
49
43
|
};
|
|
50
|
-
type
|
|
51
|
-
/** Block output created by `createPlDataTableV2` */
|
|
52
|
-
model: MaybeRefOrGetter<PlDataTableModel | undefined>;
|
|
44
|
+
type OptionsAdvanced<T> = OptionsBasic & {
|
|
53
45
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
* Block property (such as inputAnchor) used to produce the data source.
|
|
47
|
+
* Mandatory for cases when the table can change without block run.
|
|
48
|
+
* Skip when the table is changed only after block run.
|
|
49
|
+
* Ask developers for help if you don't know what to set here.
|
|
50
|
+
*/
|
|
51
|
+
sourceId: MaybeRefOrGetter<T | undefined>;
|
|
58
52
|
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
* Callback configuring filters for the table.
|
|
54
|
+
* If not provided, filtering will be disabled.
|
|
55
|
+
* Parameter `sourceId` should be compared using `isJsonEqual` from `@milaboratories/helpers`.
|
|
56
|
+
*/
|
|
62
57
|
filtersConfig?: (info: {
|
|
58
|
+
sourceId: JsonCompatible<T>;
|
|
63
59
|
column: PTableColumnSpec;
|
|
64
60
|
}) => PlDataTableFilterConfig;
|
|
65
61
|
};
|
|
@@ -87,13 +83,8 @@ export type PlAgDataTableV2Controller = {
|
|
|
87
83
|
*/
|
|
88
84
|
focusRow: (rowKey: PTableKey) => Promise<void>;
|
|
89
85
|
};
|
|
90
|
-
export type PlTableRowId =
|
|
91
|
-
|
|
92
|
-
axesKey: PTableKey;
|
|
93
|
-
/** Axes key where values of labeled axes are resolved to corresponding labels */
|
|
94
|
-
labeled: PTableKey;
|
|
95
|
-
};
|
|
96
|
-
export type PlTableRowIdJson = CanonicalizedJson<PlTableRowId>;
|
|
86
|
+
export type PlTableRowId = PTableKey;
|
|
87
|
+
export type PlTableRowIdJson = CanonicalizedJson<PTableKey>;
|
|
97
88
|
/** PlAgDataTableV2 row */
|
|
98
89
|
export type PlAgDataTableV2Row = {
|
|
99
90
|
/** Axes key */
|
|
@@ -103,13 +94,6 @@ export type PlAgDataTableV2Row = {
|
|
|
103
94
|
/** Row values by column; sheet axes and labeled axes are excluded */
|
|
104
95
|
[field: `${number}`]: PTableValue | PTableHidden;
|
|
105
96
|
};
|
|
106
|
-
/** PlSelectionModel with labeled axes replaced by label columns */
|
|
107
|
-
export type PlTableLabeledSelectionModel = {
|
|
108
|
-
/** Specs for valuess in {@link PTableKey} */
|
|
109
|
-
spec: PTableColumnSpec[];
|
|
110
|
-
/** Row keys (arrays of axes values) of selected rows */
|
|
111
|
-
selectedLabeledKeys: PTableKey[];
|
|
112
|
-
};
|
|
113
97
|
export type PlAgOverlayLoadingParams = {
|
|
114
98
|
/**
|
|
115
99
|
* Required flag, that shows catInBag icon with message if `true`, shows PlSplash component if `false`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgDataTable/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAKzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgDataTable/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { computed as f, toValue as l } from "vue";
|
|
2
|
-
import
|
|
3
|
-
import { deepClone as
|
|
4
|
-
function
|
|
5
|
-
const
|
|
2
|
+
import u from "../../_virtual/canonicalize.js";
|
|
3
|
+
import { deepClone as n } from "../../lib/util/helpers/dist/index.js";
|
|
4
|
+
function I(s) {
|
|
5
|
+
const c = s.filtersConfig, d = typeof c == "function" ? (e) => {
|
|
6
6
|
try {
|
|
7
|
-
return
|
|
7
|
+
return c({
|
|
8
8
|
sourceId: JSON.parse(e.sourceId),
|
|
9
9
|
column: e.column
|
|
10
10
|
});
|
|
@@ -14,53 +14,42 @@ function m(s) {
|
|
|
14
14
|
} : () => ({});
|
|
15
15
|
return f(() => {
|
|
16
16
|
const e = l(s.model);
|
|
17
|
+
let r;
|
|
17
18
|
if ("sourceId" in s) {
|
|
18
|
-
const
|
|
19
|
+
const t = n(l(s.sourceId));
|
|
19
20
|
if (s.sheets) {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
sourceId:
|
|
23
|
-
sheets:
|
|
24
|
-
model: e
|
|
25
|
-
|
|
26
|
-
} : {
|
|
27
|
-
sourceId: null,
|
|
28
|
-
filtersConfig: t
|
|
29
|
-
};
|
|
21
|
+
const o = n(l(s.sheets));
|
|
22
|
+
r = t && o ? {
|
|
23
|
+
sourceId: u(t),
|
|
24
|
+
sheets: o,
|
|
25
|
+
model: e
|
|
26
|
+
} : { sourceId: null };
|
|
30
27
|
} else
|
|
31
|
-
|
|
32
|
-
sourceId:
|
|
28
|
+
r = t ? {
|
|
29
|
+
sourceId: u(t),
|
|
33
30
|
sheets: [],
|
|
34
|
-
model: e
|
|
35
|
-
|
|
36
|
-
} : {
|
|
37
|
-
sourceId: null,
|
|
38
|
-
filtersConfig: t
|
|
39
|
-
};
|
|
31
|
+
model: e
|
|
32
|
+
} : { sourceId: null };
|
|
40
33
|
} else if (s.sheets) {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
sourceId:
|
|
44
|
-
sheets:
|
|
45
|
-
model: e
|
|
46
|
-
|
|
47
|
-
} : {
|
|
48
|
-
sourceId: null,
|
|
49
|
-
filtersConfig: t
|
|
50
|
-
};
|
|
34
|
+
const t = l(s.sheets);
|
|
35
|
+
r = t ? {
|
|
36
|
+
sourceId: u("static"),
|
|
37
|
+
sheets: t,
|
|
38
|
+
model: e
|
|
39
|
+
} : { sourceId: null };
|
|
51
40
|
} else
|
|
52
|
-
|
|
53
|
-
sourceId:
|
|
41
|
+
r = e ? {
|
|
42
|
+
sourceId: u("static"),
|
|
54
43
|
sheets: [],
|
|
55
|
-
model: e
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
model: e
|
|
45
|
+
} : { sourceId: null };
|
|
46
|
+
return {
|
|
47
|
+
...r,
|
|
48
|
+
filtersConfig: d
|
|
49
|
+
};
|
|
61
50
|
});
|
|
62
51
|
}
|
|
63
52
|
export {
|
|
64
|
-
|
|
53
|
+
I as usePlDataTableSettingsV2
|
|
65
54
|
};
|
|
66
55
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../src/components/PlAgDataTable/types.ts"],"sourcesContent":["import {\n type JsonCompatible,\n type AxisId,\n type CanonicalizedJson,\n type ListOptionBase,\n type PlDataTableModel,\n type PlDataTableSheet,\n type PlDataTableSheetState,\n type PlTableFilter,\n type PlTableFilterType,\n type PTableColumnId,\n type PTableColumnSpec,\n type PTableKey,\n type PTableValue,\n} from '@platforma-sdk/model';\nimport type { PTableHidden } from './sources/common';\nimport type { ComputedRef, MaybeRefOrGetter } from 'vue';\nimport { computed, toValue } from 'vue';\nimport canonicalize from 'canonicalize';\nimport { deepClone } from '@milaboratories/helpers';\n\nexport type PlDataTableFilterConfig = {\n options?: PlTableFilterType[];\n default?: PlTableFilter;\n};\n\
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/PlAgDataTable/types.ts"],"sourcesContent":["import {\n type JsonCompatible,\n type AxisId,\n type CanonicalizedJson,\n type ListOptionBase,\n type PlDataTableModel,\n type PlDataTableSheet,\n type PlDataTableSheetState,\n type PlTableFilter,\n type PlTableFilterType,\n type PTableColumnId,\n type PTableColumnSpec,\n type PTableKey,\n type PTableValue,\n} from '@platforma-sdk/model';\nimport type { PTableHidden } from './sources/common';\nimport type { ComputedRef, MaybeRefOrGetter } from 'vue';\nimport { computed, toValue } from 'vue';\nimport canonicalize from 'canonicalize';\nimport { deepClone } from '@milaboratories/helpers';\n\nexport type PlDataTableFilterConfig = {\n options?: PlTableFilterType[];\n default?: PlTableFilter;\n};\n\nexport type PlDataTableSettingsV2Base =\n | { sourceId: null }\n | {\n /** Unique source id for state caching */\n sourceId: string;\n /** Sheets that we want to show in our table */\n sheets: PlDataTableSheet[];\n /** Result of `createPlDataTableV2` */\n model: PlDataTableModel | undefined;\n };\n\n/** Data table V2 settings */\nexport type PlDataTableSettingsV2 = PlDataTableSettingsV2Base & {\n /** Callback configuring filters for the table */\n filtersConfig: (info: {\n sourceId: string;\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\ntype OptionsBasic = {\n /** Block output created by `createPlDataTableV2` */\n model: MaybeRefOrGetter<PlDataTableModel | undefined>;\n /**\n * Sheets for partitioned data sources.\n * Do not set if data source is never partitioned.\n */\n sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;\n};\n\ntype OptionsSimple = OptionsBasic & {\n /**\n * Callback configuring filters for the table.\n * If not provided, filtering will be disabled.\n */\n filtersConfig?: (info: {\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\ntype OptionsAdvanced<T> = OptionsBasic & {\n /**\n * Block property (such as inputAnchor) used to produce the data source.\n * Mandatory for cases when the table can change without block run.\n * Skip when the table is changed only after block run.\n * Ask developers for help if you don't know what to set here.\n */\n sourceId: MaybeRefOrGetter<T | undefined>;\n /**\n * Callback configuring filters for the table.\n * If not provided, filtering will be disabled.\n * Parameter `sourceId` should be compared using `isJsonEqual` from `@milaboratories/helpers`.\n */\n filtersConfig?: (info: {\n sourceId: JsonCompatible<T>;\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\nexport function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T>): ComputedRef<PlDataTableSettingsV2>;\nexport function usePlDataTableSettingsV2(options: OptionsSimple): ComputedRef<PlDataTableSettingsV2>;\nexport function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T> | OptionsSimple): ComputedRef<PlDataTableSettingsV2> {\n const fc = options.filtersConfig;\n const filtersConfigValue = typeof fc === 'function'\n ? (ops: {\n sourceId: string;\n column: PTableColumnSpec;\n }) => {\n try {\n return fc({\n sourceId: JSON.parse(ops.sourceId) as JsonCompatible<T>,\n column: ops.column,\n });\n } catch (e) {\n console.error(`filtersConfig failed for sourceId: ${ops.sourceId}, column: ${JSON.stringify(ops.column)} - using default config`, e);\n return {};\n }\n }\n : () => ({});\n return computed(() => {\n const modelValue = toValue(options.model);\n let settingsBase: PlDataTableSettingsV2Base;\n if ('sourceId' in options) {\n const sourceIdValue = deepClone(toValue(options.sourceId));\n if (options.sheets) {\n const sheetsValue = deepClone(toValue(options.sheets));\n settingsBase = sourceIdValue && sheetsValue\n ? {\n sourceId: canonicalize(sourceIdValue)!,\n sheets: sheetsValue,\n model: modelValue,\n }\n : { sourceId: null };\n } else {\n settingsBase = sourceIdValue\n ? {\n sourceId: canonicalize(sourceIdValue)!,\n sheets: [],\n model: modelValue,\n }\n : { sourceId: null };\n }\n } else {\n if (options.sheets) {\n const sheetsValue = toValue(options.sheets);\n settingsBase = sheetsValue\n ? {\n sourceId: canonicalize('static')!,\n sheets: sheetsValue,\n model: modelValue,\n }\n : { sourceId: null };\n } else {\n settingsBase = modelValue\n ? {\n sourceId: canonicalize('static')!,\n sheets: [],\n model: modelValue,\n }\n : { sourceId: null };\n }\n }\n return {\n ...settingsBase,\n filtersConfig: filtersConfigValue,\n };\n });\n};\n\n/** PlTableFilters restriction entry */\nexport type PlTableFiltersRestriction = {\n /** Spec of the column for which filter types should be restricted */\n column: PTableColumnId;\n /** List of filter types applicable to the column */\n allowedFilterTypes: PlTableFilterType[];\n};\n\n/** PlTableFilters default settings entry */\nexport type PlTableFiltersDefault = {\n /** Spec of the column the default should be applied */\n column: PTableColumnId;\n /** Filter entry */\n default: PlTableFilter;\n};\n\n/** PlAgDataTable controller contains all exported methods */\nexport type PlAgDataTableV2Controller = {\n /**\n * Scroll table to make row with provided key visible\n * Warning: works reliably only in client side mode.\n */\n focusRow: (rowKey: PTableKey) => Promise<void>;\n};\n\nexport type PlTableRowId = PTableKey;\n\nexport type PlTableRowIdJson = CanonicalizedJson<PTableKey>;\n\n/** PlAgDataTableV2 row */\nexport type PlAgDataTableV2Row = {\n /** Axes key */\n axesKey: PTableKey;\n /** Unique row identifier */\n id: PlTableRowIdJson;\n /** Row values by column; sheet axes and labeled axes are excluded */\n [field: `${number}`]: PTableValue | PTableHidden;\n};\n\nexport type PlAgOverlayLoadingParams = {\n /**\n * Required flag, that shows catInBag icon with message if `true`, shows PlSplash component if `false`.\n */\n notReady?: boolean;\n /**\n * Prop to override default \"Loading\" text\n */\n loadingText?: string;\n /**\n * Prop to override default \"No datasource\" text (So why props name is notReady? Good question)\n */\n notReadyText?: string;\n /**\n * Use \"transparent\" to make table headers visible below the loading layer\n */\n overlayType?: 'transparent';\n};\n\nexport type PlAgOverlayNoRowsParams = {\n /**\n * Prop to override default \"Empty\" text\n */\n text?: string;\n};\n\nexport type PlDataTableSheetsSettings = {\n /** User-provided sheets for the sourceId */\n sheets: PlDataTableSheet[];\n /** Persisted selection for the sourceId */\n cachedState: PlDataTableSheetState[];\n};\n\nexport type PlDataTableSheetNormalized = {\n /** id of the axis */\n axisId: AxisId;\n /** sheet prefix */\n prefix: string;\n /** options to show in the filter dropdown */\n options: ListOptionBase<string | number>[];\n /** default (selected) value */\n defaultValue: string | number;\n};\n"],"names":["usePlDataTableSettingsV2","options","fc","filtersConfigValue","ops","e","computed","modelValue","toValue","settingsBase","sourceIdValue","deepClone","sheetsValue","canonicalize"],"mappings":";;;AAuFO,SAASA,EAA4BC,GAAiF;AAC3H,QAAMC,IAAKD,EAAQ,eACbE,IAAqB,OAAOD,KAAO,aACrC,CAACE,MAGK;AACA,QAAA;AACF,aAAOF,EAAG;AAAA,QACR,UAAU,KAAK,MAAME,EAAI,QAAQ;AAAA,QACjC,QAAQA,EAAI;AAAA,MAAA,CACb;AAAA,aACMC,GAAG;AACF,qBAAA,MAAM,sCAAsCD,EAAI,QAAQ,aAAa,KAAK,UAAUA,EAAI,MAAM,CAAC,2BAA2BC,CAAC,GAC5H,CAAC;AAAA,IAAA;AAAA,EAEZ,IACA,OAAO,CAAA;AACX,SAAOC,EAAS,MAAM;AACd,UAAAC,IAAaC,EAAQP,EAAQ,KAAK;AACpC,QAAAQ;AACJ,QAAI,cAAcR,GAAS;AACzB,YAAMS,IAAgBC,EAAUH,EAAQP,EAAQ,QAAQ,CAAC;AACzD,UAAIA,EAAQ,QAAQ;AAClB,cAAMW,IAAcD,EAAUH,EAAQP,EAAQ,MAAM,CAAC;AACrD,QAAAQ,IAAeC,KAAiBE,IAC5B;AAAA,UACE,UAAUC,EAAaH,CAAa;AAAA,UACpC,QAAQE;AAAA,UACR,OAAOL;AAAA,QAAA,IAET,EAAE,UAAU,KAAK;AAAA,MAAA;AAErB,QAAAE,IAAeC,IACX;AAAA,UACE,UAAUG,EAAaH,CAAa;AAAA,UACpC,QAAQ,CAAC;AAAA,UACT,OAAOH;AAAA,QAAA,IAET,EAAE,UAAU,KAAK;AAAA,IACvB,WAEIN,EAAQ,QAAQ;AACZ,YAAAW,IAAcJ,EAAQP,EAAQ,MAAM;AAC1C,MAAAQ,IAAeG,IACX;AAAA,QACE,UAAUC,EAAa,QAAQ;AAAA,QAC/B,QAAQD;AAAA,QACR,OAAOL;AAAA,MAAA,IAET,EAAE,UAAU,KAAK;AAAA,IAAA;AAErB,MAAAE,IAAeF,IACX;AAAA,QACE,UAAUM,EAAa,QAAQ;AAAA,QAC/B,QAAQ,CAAC;AAAA,QACT,OAAON;AAAA,MAAA,IAET,EAAE,UAAU,KAAK;AAGlB,WAAA;AAAA,MACL,GAAGE;AAAA,MACH,eAAeN;AAAA,IACjB;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
.pl-ag-chart-stacked-bar-cell{height:100%;display:flex;flex-direction:row;align-items:center}.pl-ag-chart-stacked-bar-cell__not-ready{color:var(--txt-03)!important}
|
|
8
8
|
.pl-ag-chart-histogram-cell{height:100%;display:flex;flex-direction:row;align-items:center}.pl-ag-chart-histogram-cell__not-ready{color:var(--txt-03)!important}
|
|
9
9
|
.pl-ag-cell-status-tag{height:100%;padding:0 12px}`)),document.head.appendChild(o)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
10
|
-
import { defineComponent as x, ref as c, computed as C, onBeforeMount as h, onBeforeUnmount as y, createElementBlock as d, openBlock as
|
|
10
|
+
import { defineComponent as x, ref as c, computed as C, onBeforeMount as h, onBeforeUnmount as y, createElementBlock as d, openBlock as l, normalizeClass as n, unref as t, createCommentVNode as u, createBlock as B, toDisplayString as b } from "vue";
|
|
11
11
|
import "../../lib/ui/uikit/dist/index.js";
|
|
12
12
|
import r from "./pl-ag-row-num-checkbox.module.scss.js";
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
import "../../sdk/model/dist/index.js";
|
|
16
|
+
import "../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js";
|
|
16
17
|
import "../../aggrid.js";
|
|
17
18
|
|
|
18
19
|
import "../../plugins/Monetization/validation.js";
|
|
@@ -31,7 +32,7 @@ import "../PlMultiSequenceAlignment/data.js";
|
|
|
31
32
|
import "@milaboratories/biowasm-tools";
|
|
32
33
|
import "../../composition/fileContent.js";
|
|
33
34
|
import E from "../../lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
|
|
34
|
-
const
|
|
35
|
+
const X = /* @__PURE__ */ x({
|
|
35
36
|
__name: "PlAgRowNumCheckbox",
|
|
36
37
|
props: {
|
|
37
38
|
params: {}
|
|
@@ -39,21 +40,21 @@ const W = /* @__PURE__ */ x({
|
|
|
39
40
|
setup(f) {
|
|
40
41
|
const e = f, a = e.params.api, o = c(!!e.params.node.isSelected()), v = C(() => o.value || p(a)), S = c(p(a)), m = () => {
|
|
41
42
|
o.value = e.params.node.isSelected() !== !1;
|
|
42
|
-
}, k = (
|
|
43
|
-
p(a) && (e.params.node.setSelected(
|
|
43
|
+
}, k = (i) => {
|
|
44
|
+
p(a) && (e.params.node.setSelected(i), m());
|
|
44
45
|
};
|
|
45
46
|
return h(() => {
|
|
46
47
|
e.params.node.addEventListener("rowSelected", m);
|
|
47
48
|
}), y(() => {
|
|
48
49
|
e.params.node.removeEventListener("rowSelected", m);
|
|
49
|
-
}), (
|
|
50
|
+
}), (i, s) => (l(), d("div", {
|
|
50
51
|
class: n([t(r).container, { [t(r)["allowed-selection"]]: S.value }, "d-flex", "justify-center", "align-center"])
|
|
51
52
|
}, [
|
|
52
|
-
o.value ? u("", !0) : (
|
|
53
|
+
o.value ? u("", !0) : (l(), d("div", {
|
|
53
54
|
key: 0,
|
|
54
55
|
class: n([t(r).text])
|
|
55
|
-
}, b(
|
|
56
|
-
v.value ? (
|
|
56
|
+
}, b(i.params.value), 3)),
|
|
57
|
+
v.value ? (l(), B(t(E), {
|
|
57
58
|
key: 1,
|
|
58
59
|
modelValue: o.value,
|
|
59
60
|
"onUpdate:modelValue": [
|
|
@@ -66,6 +67,6 @@ const W = /* @__PURE__ */ x({
|
|
|
66
67
|
}
|
|
67
68
|
});
|
|
68
69
|
export {
|
|
69
|
-
|
|
70
|
+
X as default
|
|
70
71
|
};
|
|
71
72
|
//# sourceMappingURL=PlAgRowNumCheckbox.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumCheckbox.vue.js","sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from 'vue';\nimport $styles from './pl-ag-row-num-checkbox.module.scss';\nimport { isSelectionEnabled } from '../../lib';\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener('rowSelected', updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener('rowSelected', updateSelection);\n});\n</script>\n\n<template>\n <div :class=\"[$styles.container, { [$styles['allowed-selection']]: allowedSelection }, 'd-flex', 'justify-center', 'align-center']\">\n <div v-if=\"!isChecked\" :class=\"[$styles.text]\">{{ params.value }}</div>\n <PlCheckbox\n v-if=\"forceShowCheckbox\"\n v-model=\"isChecked\"\n :class=\"[$styles.checkbox, isChecked && $styles.checked]\"\n @update:modelValue=\"setSelection\"\n />\n </div>\n</template>\n"],"names":["props","__props","api","isChecked","ref","forceShowCheckbox","computed","isSelectionEnabled","allowedSelection","updateSelection","setSelection","val","onBeforeMount","onBeforeUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumCheckbox.vue.js","sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from 'vue';\nimport $styles from './pl-ag-row-num-checkbox.module.scss';\nimport { isSelectionEnabled } from '../../lib';\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener('rowSelected', updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener('rowSelected', updateSelection);\n});\n</script>\n\n<template>\n <div :class=\"[$styles.container, { [$styles['allowed-selection']]: allowedSelection }, 'd-flex', 'justify-center', 'align-center']\">\n <div v-if=\"!isChecked\" :class=\"[$styles.text]\">{{ params.value }}</div>\n <PlCheckbox\n v-if=\"forceShowCheckbox\"\n v-model=\"isChecked\"\n :class=\"[$styles.checkbox, isChecked && $styles.checked]\"\n @update:modelValue=\"setSelection\"\n />\n </div>\n</template>\n"],"names":["props","__props","api","isChecked","ref","forceShowCheckbox","computed","isSelectionEnabled","allowedSelection","updateSelection","setSelection","val","onBeforeMount","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,UAAMA,IAAQC,GAERC,IAAMF,EAAM,OAAO,KACnBG,IAAYC,EAAI,CAAC,CAACJ,EAAM,OAAO,KAAK,YAAY,GAChDK,IAAoBC,EAAS,MAAMH,EAAU,SAASI,EAAmBL,CAAG,CAAC,GAC7EM,IAAmBJ,EAAIG,EAAmBL,CAAG,CAAC,GAE9CO,IAAkB,MAAM;AAC5B,MAAAN,EAAU,QAAQH,EAAM,OAAO,KAAK,iBAAiB;AAAA,IACvD,GAEMU,IAAe,CAACC,MAAiB;AACjC,MAAAJ,EAAmBL,CAAG,MAClBF,EAAA,OAAO,KAAK,YAAYW,CAAG,GACjBF,EAAA;AAAA,IAEpB;AAEA,WAAAG,EAAc,MAAM;AAClB,MAAAZ,EAAM,OAAO,KAAK,iBAAiB,eAAeS,CAAe;AAAA,IAAA,CAClE,GAEDI,EAAgB,MAAM;AACpB,MAAAb,EAAM,OAAO,KAAK,oBAAoB,eAAeS,CAAe;AAAA,IAAA,CACrE;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -12,6 +12,7 @@ import "../lib/ui/uikit/dist/index.js";
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
import "../sdk/model/dist/index.js";
|
|
15
|
+
import "../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js";
|
|
15
16
|
import "../aggrid.js";
|
|
16
17
|
|
|
17
18
|
import "../plugins/Monetization/validation.js";
|
|
@@ -30,7 +31,7 @@ import "./PlMultiSequenceAlignment/data.js";
|
|
|
30
31
|
import "@milaboratories/biowasm-tools";
|
|
31
32
|
import "../composition/fileContent.js";
|
|
32
33
|
import h from "../lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
|
|
33
|
-
const k = { style: { position: "absolute", inset: "0", display: "flex", "justify-content": "center", "align-items": "center" } }, B = { key: 1 },
|
|
34
|
+
const k = { style: { position: "absolute", inset: "0", display: "flex", "justify-content": "center", "align-items": "center" } }, B = { key: 1 }, _ = /* @__PURE__ */ E({
|
|
34
35
|
__name: "PlAgRowNumHeader",
|
|
35
36
|
props: {
|
|
36
37
|
params: {}
|
|
@@ -65,6 +66,6 @@ const k = { style: { position: "absolute", inset: "0", display: "flex", "justify
|
|
|
65
66
|
}
|
|
66
67
|
});
|
|
67
68
|
export {
|
|
68
|
-
|
|
69
|
+
_ as default
|
|
69
70
|
};
|
|
70
71
|
//# sourceMappingURL=PlAgRowNumHeader.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumHeader.vue.js","sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport type { IHeaderParams } from 'ag-grid-enterprise';\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from 'vue';\nimport { deselectAll, getSelectedRowsCount, getTotalRowsCount, isSelectionEnabled, selectAll } from '../lib';\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() =>\n selectedRowCount.value > 0,\n);\n\nconst allRowsSelected = computed(() =>\n someRowsSelected.value\n && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener('selectionChanged', updateRowCounts);\n params.api.addEventListener('rowDataUpdated', updateRowCounts);\n params.api.addEventListener('modelUpdated', updateRowCounts);\n params.api.addEventListener('stateUpdated', updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener('selectionChanged', updateRowCounts);\n params.api.removeEventListener('rowDataUpdated', updateRowCounts);\n params.api.removeEventListener('modelUpdated', updateRowCounts);\n params.api.removeEventListener('stateUpdated', updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else>\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"names":["selectedRowCount","ref","getSelectedRowsCount","__props","totalRowCount","getTotalRowsCount","isSelectable","isSelectionEnabled","someRowsSelected","computed","allRowsSelected","toggleSelectAll","deselectAll","selectAll","updateRowCounts","updateIsSelectable","onBeforeMount","onBeforeUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumHeader.vue.js","sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport type { IHeaderParams } from 'ag-grid-enterprise';\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from 'vue';\nimport { deselectAll, getSelectedRowsCount, getTotalRowsCount, isSelectionEnabled, selectAll } from '../lib';\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() =>\n selectedRowCount.value > 0,\n);\n\nconst allRowsSelected = computed(() =>\n someRowsSelected.value\n && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener('selectionChanged', updateRowCounts);\n params.api.addEventListener('rowDataUpdated', updateRowCounts);\n params.api.addEventListener('modelUpdated', updateRowCounts);\n params.api.addEventListener('stateUpdated', updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener('selectionChanged', updateRowCounts);\n params.api.removeEventListener('rowDataUpdated', updateRowCounts);\n params.api.removeEventListener('modelUpdated', updateRowCounts);\n params.api.removeEventListener('stateUpdated', updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else>\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"names":["selectedRowCount","ref","getSelectedRowsCount","__props","totalRowCount","getTotalRowsCount","isSelectable","isSelectionEnabled","someRowsSelected","computed","allRowsSelected","toggleSelectAll","deselectAll","selectAll","updateRowCounts","updateIsSelectable","onBeforeMount","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,UAAMA,IAAmBC,EAAIC,EAAqBC,EAAM,OAAC,GAAG,CAAC,GACvDC,IAAgBH,EAAII,EAAkBF,EAAA,OAAO,GAAG,CAAC,GACjDG,IAAeL,EAAIM,EAAmBJ,EAAA,OAAO,GAAG,CAAC,GAEjDK,IAAmBC;AAAA,MAAS,MAChCT,EAAiB,QAAQ;AAAA,IAC3B,GAEMU,IAAkBD;AAAA,MAAS,MAC/BD,EAAiB,SACdR,EAAiB,UAAUI,EAAc;AAAA,IAC9C;AAEA,aAASO,IAAkB;AACzB,MAAIH,EAAiB,QACPI,EAAAT,EAAA,OAAO,GAAG,IAEZU,EAAAV,EAAA,OAAO,GAAG;AAAA,IACtB;AAGF,aAASW,IAAkB;AACzB,MAAAd,EAAiB,QAAQE,EAAqBC,SAAO,GAAG,GACxDC,EAAc,QAAQC,EAAkBF,SAAO,GAAG;AAAA,IAAA;AAGpD,aAASY,IAAqB;AAC5B,MAAAT,EAAa,QAAQC,EAAmBJ,SAAO,GAAG;AAAA,IAAA;AAGpD,WAAAa,EAAc,MAAM;AAClB,MAAAb,EAAM,OAAC,IAAI,iBAAiB,oBAAoBW,CAAe,GAC/DX,EAAM,OAAC,IAAI,iBAAiB,kBAAkBW,CAAe,GAC7DX,EAAM,OAAC,IAAI,iBAAiB,gBAAgBW,CAAe,GAC3DX,EAAM,OAAC,IAAI,iBAAiB,gBAAgBY,CAAkB;AAAA,IAAA,CAC/D,GAEDE,EAAgB,MAAM;AACpB,MAAAd,EAAA,OAAO,IAAI,oBAAoB,oBAAoBW,CAAe,GAClEX,EAAA,OAAO,IAAI,oBAAoB,kBAAkBW,CAAe,GAChEX,EAAM,OAAC,IAAI,oBAAoB,gBAAgBW,CAAe,GAC9DX,EAAA,OAAO,IAAI,oBAAoB,gBAAgBY,CAAkB;AAAA,IAAA,CAClE;;;;;;;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { defineComponent as g, mergeModels as O, useModel as D, computed as c, watch as _, resolveComponent as h, createElementBlock as v, createCommentVNode as V, openBlock as n, normalizeClass as B, Fragment as i, renderList as S, createBlock as p, unref as s, withCtx as j, createTextVNode as w, toDisplayString as U } from "vue";
|
|
2
2
|
import { isNil as R } from "../../../lib/util/helpers/dist/index.js";
|
|
3
3
|
import "../../../lib/ui/uikit/dist/index.js";
|
|
4
|
-
import { getFilterUiMetadata as
|
|
4
|
+
import { getFilterUiMetadata as x, getFilterUiTypeOptions as z } from "../../../sdk/model/dist/index.js";
|
|
5
5
|
import k from "../../../lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js";
|
|
6
|
-
import
|
|
6
|
+
import E from "../../../lib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js";
|
|
7
7
|
import T from "../../../lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js";
|
|
8
|
-
import
|
|
9
|
-
const
|
|
8
|
+
import I from "../../../lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
|
|
9
|
+
const L = { key: 7 }, H = /* @__PURE__ */ g({
|
|
10
10
|
__name: "DynamicForm",
|
|
11
11
|
props: /* @__PURE__ */ O({
|
|
12
12
|
columns: {},
|
|
@@ -25,8 +25,8 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
|
|
|
25
25
|
}), f = c(() => {
|
|
26
26
|
const o = t.value;
|
|
27
27
|
if (o.type && typeof o.type == "string")
|
|
28
|
-
return
|
|
29
|
-
}), M = c(() =>
|
|
28
|
+
return x(o.type);
|
|
29
|
+
}), M = c(() => z(b.value)), F = c(() => d.columns.map((o) => ({ label: o.label, value: o.id }))), C = c(() => {
|
|
30
30
|
const o = f.value, u = b.value;
|
|
31
31
|
return o && u ? d.columns.filter((r) => o.supportedFor(u, r.obj)).map((r) => ({
|
|
32
32
|
label: r.label,
|
|
@@ -66,7 +66,7 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
|
|
|
66
66
|
label: l.label ?? e,
|
|
67
67
|
options: M.value,
|
|
68
68
|
"onUpdate:modelValue": (a) => m(e, a)
|
|
69
|
-
}, null, 8, ["model-value", "label", "options", "onUpdate:modelValue"])) : l.fieldType === "string" ? (n(), p(s(
|
|
69
|
+
}, null, 8, ["model-value", "label", "options", "onUpdate:modelValue"])) : l.fieldType === "string" ? (n(), p(s(E), {
|
|
70
70
|
key: 2,
|
|
71
71
|
"model-value": t.value[e],
|
|
72
72
|
label: l.label ?? e,
|
|
@@ -88,7 +88,7 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
|
|
|
88
88
|
label: l.label ?? e,
|
|
89
89
|
clearable: !0,
|
|
90
90
|
"onUpdate:modelValue": (a) => m(e, a)
|
|
91
|
-
}, null, 8, ["model-value", "label", "onUpdate:modelValue"])) : l.fieldType === "boolean" || l.fieldType === "boolean?" ? (n(), p(s(
|
|
91
|
+
}, null, 8, ["model-value", "label", "onUpdate:modelValue"])) : l.fieldType === "boolean" || l.fieldType === "boolean?" ? (n(), p(s(I), {
|
|
92
92
|
key: 6,
|
|
93
93
|
"model-value": !!t.value[e],
|
|
94
94
|
label: l.label ?? e,
|
|
@@ -98,13 +98,13 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
|
|
|
98
98
|
w(U(l.label ?? e), 1)
|
|
99
99
|
]),
|
|
100
100
|
_: 2
|
|
101
|
-
}, 1032, ["model-value", "label", "onUpdate:modelValue"])) : (n(), v("pre",
|
|
101
|
+
}, 1032, ["model-value", "label", "onUpdate:modelValue"])) : (n(), v("pre", L, "TODO:" + U(l.fieldType), 1))
|
|
102
102
|
], 64))), 128))
|
|
103
103
|
], 2)) : V("", !0);
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
107
|
export {
|
|
108
|
-
|
|
108
|
+
H as default
|
|
109
109
|
};
|
|
110
110
|
//# sourceMappingURL=DynamicForm.vue2.js.map
|
|
@@ -9,11 +9,11 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
|
|
|
9
9
|
name: string;
|
|
10
10
|
}) => any;
|
|
11
11
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
12
|
-
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
13
12
|
onSubmit?: ((props: {
|
|
14
13
|
type: "byClonotype" | "bySampleAndClonotype";
|
|
15
14
|
name: string;
|
|
16
15
|
}) => any) | undefined;
|
|
16
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
17
17
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
18
18
|
export default _default;
|
|
19
19
|
//# sourceMappingURL=PlAnnotationCreateDialog.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAnnotationCreateDialog.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/PlAnnotationCreateDialog.vue"],"names":[],"mappings":"AA6GA,KAAK,iBAAiB,GAAG;IACzB,UAAU,EAAE,OAAO,CAAC;CACnB,CAAC;;;;;cApC6B,aAAa,GAAG,sBAAsB;cAAQ,MAAM
|
|
1
|
+
{"version":3,"file":"PlAnnotationCreateDialog.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/PlAnnotationCreateDialog.vue"],"names":[],"mappings":"AA6GA,KAAK,iBAAiB,GAAG;IACzB,UAAU,EAAE,OAAO,CAAC;CACnB,CAAC;;;;;cApC6B,aAAa,GAAG,sBAAsB;cAAQ,MAAM;;;;cAApD,aAAa,GAAG,sBAAsB;cAAQ,MAAM;;;;AAkLnF,wBAQG"}
|