diff --git a/src/services/resultsPanelProvider.ts b/src/services/resultsPanelProvider.ts index 8dda5428..8d708f80 100644 --- a/src/services/resultsPanelProvider.ts +++ b/src/services/resultsPanelProvider.ts @@ -261,14 +261,19 @@ export class KdbResultsViewProvider implements WebviewViewProvider { const columnWidths = saveColumnWidths(); const gridOptions = { defaultColDef: { - sortable: true, resizable: true, - filter: true, - flex: 1, - minWidth: 100, + sortable: false, + filter: false, editable: false, + flex: 1, }, theme: message.theme, + autoSizeStrategy: { + type: 'fitCellContents', + defaultMinWidth: 100, + defaultMaxWidth: 1000, + scaleUpToFitGridWidth: true, + }, columnDefs: message.columnDefs, domLayout: "autoHeight", pagination: true, diff --git a/src/utils/resultsRenderer.ts b/src/utils/resultsRenderer.ts index d800eb49..e7c62faa 100644 --- a/src/utils/resultsRenderer.ts +++ b/src/utils/resultsRenderer.ts @@ -83,6 +83,7 @@ export function convertToGrid( field: "index", headerName: "Index", cellDataType: "number", + pinned: "left", }); } diff --git a/test/suite/webPanels/resultsPanelProvider.test.ts b/test/suite/webPanels/resultsPanelProvider.test.ts index c9c6a6e3..f15b8b54 100644 --- a/test/suite/webPanels/resultsPanelProvider.test.ts +++ b/test/suite/webPanels/resultsPanelProvider.test.ts @@ -162,7 +162,12 @@ describe("ResultsPanelProvider", () => { { index: 2, prop1: "value3", prop2: "value4" }, ], columnDefs: [ - { field: "index", headerName: "Index", cellDataType: "number" }, + { + field: "index", + headerName: "Index", + cellDataType: "number", + pinned: "left", + }, { field: "prop1", headerName: "prop1 [type1]", @@ -205,7 +210,12 @@ describe("ResultsPanelProvider", () => { { index: 2, prop1: "value2", prop2: "value4" }, ], columnDefs: [ - { field: "index", headerName: "Index", cellDataType: "number" }, + { + field: "index", + headerName: "Index", + cellDataType: "number", + pinned: "left", + }, { field: "prop1", headerName: "prop1 [type1]", @@ -236,7 +246,12 @@ describe("ResultsPanelProvider", () => { const expectedOutput = JSON.stringify({ rowData: [], columnDefs: [ - { field: "index", headerName: "Index", cellDataType: "number" }, + { + field: "index", + headerName: "Index", + cellDataType: "number", + pinned: "left", + }, { field: "prop1", headerName: "prop1 [type1]", @@ -272,7 +287,12 @@ describe("ResultsPanelProvider", () => { { index: 3, sym: "c", val: 3 }, ], columnDefs: [ - { field: "index", headerName: "Index", cellDataType: "number" }, + { + field: "index", + headerName: "Index", + cellDataType: "number", + pinned: "left", + }, { field: "sym", headerName: "sym [type1]", cellDataType: "text" }, { field: "val", headerName: "val [type2]", cellDataType: "text" }, ], @@ -290,7 +310,12 @@ describe("ResultsPanelProvider", () => { const expectedOutput = JSON.stringify({ rowData: [{ index: 1, value: "1,2,3" }], columnDefs: [ - { field: "index", headerName: "Index", cellDataType: "number" }, + { + field: "index", + headerName: "Index", + cellDataType: "number", + pinned: "left", + }, { field: "value", headerName: "value [type1]",