diff --git a/.vscode/launch.json b/.vscode/launch.json index 3441cbc..8c05997 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,7 @@ "name": "Flask", "type": "debugpy", "request": "launch", - "program": "${workspaceFolder}/app.py", + "program": "${workspaceFolder}/py-src/data_formulator/app.py", "args": ["run", "--no-debugger", "--no-reload"], "env": { "FLASK_APP": "app.py", diff --git a/src/app/App.tsx b/src/app/App.tsx index c8c5f79..80b2117 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -106,7 +106,7 @@ export const ImportStateButton: React.FC<{}> = ({ }) => { return - + {releventChartElements} @@ -281,14 +270,14 @@ let SingleThreadView: FC<{ "& .MuiDivider-wrapper": { display: 'flex', flexDirection: 'row' }, "&::before, &::after": { borderColor: 'darkgray', borderWidth: '2px', width: 50 }, }}> - + {`thread - ${threadIdx + 1}`} - +
{content} - +
} @@ -480,9 +469,11 @@ export const DataThread: FC<{}> = function ({ }) { Data Threads - { setThreadDrawerOpen(!threadDrawerOpen); }}> - {drawerOpen ? : } - + + { setThreadDrawerOpen(!threadDrawerOpen); }}> + {drawerOpen ? : } + + = function DataView({ $table if (colDefs) { colDefs = [{ id: "#rowId", label: "#", minWidth: 10, align: undefined, width: 40, - format: (value: any) => {value}, + format: (value: any) => {value}, dataType: Type.Number, source: "original", }, ...colDefs] @@ -110,7 +110,7 @@ export const FreeDataViewFC: FC = function DataView({ $table let genTableLink = (t: DictTable) => { dispatch(dfActions.setFocusedTable(t.id)) }}> + color="#1770c7" onClick={()=>{ dispatch(dfActions.setFocusedTable(t.id)) }}> {t.id} ; diff --git a/src/views/EncodingBox.tsx b/src/views/EncodingBox.tsx index 0d944c8..ecd40d0 100644 --- a/src/views/EncodingBox.tsx +++ b/src/views/EncodingBox.tsx @@ -594,14 +594,14 @@ export const EncodingBox: FC = function EncodingBox({ channel, }} freeSolo renderInput={(params) => ( - )} /> const filter = createFilterOptions(); // when there is no field added, allow users to directly type concepts here, and it will be created on the fly. - let encContent = field == undefined ? + const encContent = field == undefined ? (encoding.aggregate == 'count' ? [ aggregateDisplay ] : [ normalizedDisplay, aggregateDisplay, diff --git a/src/views/EncodingShelfCard.tsx b/src/views/EncodingShelfCard.tsx index 935a19e..9e8691a 100644 --- a/src/views/EncodingShelfCard.tsx +++ b/src/views/EncodingShelfCard.tsx @@ -208,7 +208,7 @@ export const EncodingShelfCard: FC = function ({ chartId .map(([group, channelList]) => { let component = - {group} + {group} {channelList.filter(channel => Object.keys(encodingMap).includes(channel)) .map(channel => )} @@ -538,30 +538,36 @@ export const EncodingShelfCard: FC = function ({ chartId + Chart Type } onChange={(event: SelectChangeEvent) => { @@ -135,7 +136,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { - {newKeyType == "openai" ? N/A : N/A
: { setNewEndpoint(event.target.value); }} @@ -163,6 +164,10 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { //label={modelExists ? "endpoint and model exists" : ""} {...params} InputProps={{ ...params.InputProps, style: { fontSize: "0.875rem" } }} + inputProps={{ + ...params.inputProps, // Spread params.inputProps to preserve existing functionality + 'aria-label': 'Select or enter a model', // Apply aria-label directly to inputProps + }} size="small" onChange={(event: any) => { setNewModel(event.target.value); }} /> @@ -234,21 +239,19 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { let message = status == "unknown" ? "Status unknown, click the status icon to test again." : (testedModels.find(m => m.model === oaiModel.model && m.endpoint === oaiModel.endpoint)?.message || "Unknown error"); - const borderStyle = ['error', 'unknown'].includes(status) ? '1px dashed lightgray' : undefined; + const borderStyle = ['error', 'unknown'].includes(status) ? '1px dashed text.secondary' : undefined; const noBorderStyle = ['error', 'unknown'].includes(status) ? 'none' : undefined; return ( <> { setTempSelectedMode({model: oaiModel.model, endpoint: oaiModel.endpoint}) }} sx={{ cursor: 'pointer'}} > - + {oaiModel.endpoint == 'openai' ? 'openai' : 'azure openai'} @@ -258,37 +261,41 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { {oaiModel.key != "" ? - (showKeys ? (oaiModel.key || N/A) : "************") : - N/A + (showKeys ? (oaiModel.key || N/A) : "************") : + N/A } {oaiModel.model} - { testModel(oaiModel.endpoint, oaiModel.key, oaiModel.model) }} - > - {statusIcon} - + + { testModel(oaiModel.endpoint, oaiModel.key, oaiModel.model) }} + > + {statusIcon} + + - { - dispatch(dfActions.removeModel({model: oaiModel.model, endpoint: oaiModel.endpoint})); - if ((tempSelectedModel) - && tempSelectedModel.endpoint == oaiModel.endpoint - && tempSelectedModel.model == oaiModel.model) { - if (oaiModels.length == 0) { - setTempSelectedMode(undefined); - } else { - let chosenModel = oaiModels[oaiModels.length - 1]; - setTempSelectedMode({ - model: chosenModel.model, endpoint: chosenModel.endpoint - }) + + { + dispatch(dfActions.removeModel({model: oaiModel.model, endpoint: oaiModel.endpoint})); + if ((tempSelectedModel) + && tempSelectedModel.endpoint == oaiModel.endpoint + && tempSelectedModel.model == oaiModel.model) { + if (oaiModels.length == 0) { + setTempSelectedMode(undefined); + } else { + let chosenModel = oaiModels[oaiModels.length - 1]; + setTempSelectedMode({ + model: chosenModel.model, endpoint: chosenModel.endpoint + }) + } } - } - }}> - - + }}> + + +
{['error', 'unknown'].includes(status) && ( @@ -304,7 +311,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { > - + {message} @@ -320,7 +327,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { return <> - diff --git a/src/views/ReactTable.tsx b/src/views/ReactTable.tsx index 3fc286e..3cb92e0 100644 --- a/src/views/ReactTable.tsx +++ b/src/views/ReactTable.tsx @@ -87,7 +87,7 @@ export const CustomReactTable: React.FC = ({ rows, column {rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) .map((row, i) => { return ( - + {columnDefs.map((column, j) => { const value = row[column.id]; let backgroundColor = "none"; diff --git a/src/views/SelectableDataGrid.tsx b/src/views/SelectableDataGrid.tsx index 375e437..89c2640 100644 --- a/src/views/SelectableDataGrid.tsx +++ b/src/views/SelectableDataGrid.tsx @@ -275,6 +275,7 @@ export const SelectableDataGrid: React.FC = ({ rows, ta */} + { console.log(`[fyi] just sent request to process load data`); @@ -312,7 +313,7 @@ export const SelectableDataGrid: React.FC = ({ rows, ta }); } } - > + > @@ -394,9 +395,11 @@ export const SelectableDataGrid: React.FC = ({ rows, ta }} > - - {getIconFromType(columnDef.dataType)} - + + + {getIconFromType(columnDef.dataType)} + + {columnDef.label} @@ -433,21 +436,23 @@ export const SelectableDataGrid: React.FC = ({ rows, ta - { - if (footerActionExpand) { - setSearchText(""); - } - setFooterActionExpand(!footerActionExpand); - }} - > - {footerActionExpand ? : } - + + { + if (footerActionExpand) { + setSearchText(""); + } + setFooterActionExpand(!footerActionExpand); + }} + > + {footerActionExpand ? : } + + {/* */} diff --git a/src/views/TableSelectionView.tsx b/src/views/TableSelectionView.tsx index da2d5d1..7e05b1e 100644 --- a/src/views/TableSelectionView.tsx +++ b/src/views/TableSelectionView.tsx @@ -139,7 +139,7 @@ export const TableSelectionView: React.FC = function Ta return {content} - {Object.keys(t.rows[0]).length} columns{hideRowNum ? "" : ` ⨉ ${t.rows.length} rows`} + {Object.keys(t.rows[0]).length} columns{hideRowNum ? "" : ` ⨉ ${t.rows.length} rows`} {handleDeleteTable == undefined ? "" : = function T let dispatch = useDispatch(); return <> - @@ -425,7 +425,7 @@ export const TableURLDialog: React.FC = ({ buttonElement, d ; return <> - @@ -745,7 +745,7 @@ export const TableCopyDialogV2: React.FC = ({ buttonElemen ; return <> - diff --git a/src/views/VisualizationView.tsx b/src/views/VisualizationView.tsx index a0c99e0..4f6c1ec 100644 --- a/src/views/VisualizationView.tsx +++ b/src/views/VisualizationView.tsx @@ -383,6 +383,7 @@ export const ChartEditorFC: FC<{ cachedCandidates: DictTable[], ) : ( + { @@ -392,13 +393,13 @@ export const ChartEditorFC: FC<{ cachedCandidates: DictTable[], // }); dispatch(dfActions.saveUnsaveChart(focusedChart.id)); }}> - - - + + ); - let duplicateButton = + { // trackEvent('save-chart', { @@ -407,10 +408,10 @@ export const ChartEditorFC: FC<{ cachedCandidates: DictTable[], // }); dispatch(dfActions.duplicateChart(focusedChart.id)); }}> - + - - + + let createNewChartButton = @@ -680,18 +681,24 @@ export const ChartEditorFC: FC<{ cachedCandidates: DictTable[], let [scaleMin, scaleMax] = [0.2, 2.4] let chartResizer = - { - dispatch(dfActions.updateChartScaleFactor({chartId: focusedChart.id, scaleFactor: scaleFactor - 0.1})) - }}> - - + + { + dispatch(dfActions.updateChartScaleFactor({ chartId: focusedChart.id, scaleFactor: scaleFactor - 0.1 })) + }}> + + + { dispatch(dfActions.updateChartScaleFactor({chartId: focusedChart.id, scaleFactor: newValue as number})) }} /> - = scaleMax} onClick={()=>{ - dispatch(dfActions.updateChartScaleFactor({chartId: focusedChart.id, scaleFactor: scaleFactor + 0.1})) - }}> + + = scaleMax} onClick={() => { + dispatch(dfActions.updateChartScaleFactor({ chartId: focusedChart.id, scaleFactor: scaleFactor + 0.1 })) + }}> + + + return