def build_aggrid_options()

in src/backend/entrypoints/streamlit_frontend/state.py [0:0]


def build_aggrid_options(data, currency):
    df = pd.DataFrame(data)
    gb = GridOptionsBuilder.from_dataframe(df)
    gb.configure_auto_height(True)
    gridOptions = gb.build()

    if len(data) == 0:
        return gridOptions

    # gridOptions["headerHeight"] = 0
    gridOptions["columnDefs"] = []
    for field in data[0].keys():
        if not field == "sheetHierarchy":
            gridOptions["columnDefs"].append(
                {"field": field, "type": "rightAligned", "valueFormatter": f"x.toLocaleString() + ' {currency}'"}
            )
            # gb.configure_column(field,
            #         type=["numericColumn","numberColumnFilter","customNumericFormat"], precision=0)

    gridOptions["defaultColDef"] = {
        "flex": 1,
    }
    gridOptions["autoGroupColumnDef"] = (
        {
            "headerName": "Balance sheet",
            "minWidth": 300,
            "cellRendererParams": {
                "suppressCount": True,
            },
        },
    )
    gridOptions["treeData"] = True
    gridOptions["animateRows"] = True
    gridOptions["groupDefaultExpanded"] = 1
    gridOptions["getDataPath"] = JsCode(
        """ function(data){
        return data.sheetHierarchy.split("/");
    }"""
    ).js_code

    return gridOptions