{"version":3,"file":"AgTable.mjs","names":["AllModules","RowHeightParams","AgGridEvent","ColumnApi","GridApi","Module","AgGridReact","AgGridReactProps","ExcelExportModule","Box","Button","Grid","makeStyles","MenuItem","useTheme","clsx","invariant","React","Dispatch","FC","Reducer","useCallback","useMemo","useReducer","useTranslation","SplitButton","LicenseManager","LicenseKey","setLicenseKey","useStyles","theme","root","flex","height","props","AgGrid","palette","primary","light","main","hideHeader","name","globalModules","AgGridApi","gridApi","gridColumnApi","UseAgGridApi","onGridReady","useAgGridApi","$","_c","t0","Symbol","for","t1","_temp","t2","state","params","api","columnApi","AgTableButttonsProps","AgTableButtons","t","exportDataAsCsv","allColumns","fileName","exportToCSV","exportDataAsExcel","exportToExcel","sizeColumnsToFit","sizeToFit","t3","skipHeader","allColumnIds","getAllColumns","forEach","column","push","getColId","autoSizeColumns","autoSizeAll","t4","autoSizeAllWithHeader","t5","autoSizeAllWithoutHeader","t6","defaultValue","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","AgTableProps","dynamicSizing","className","isUsingAgRowHeight","AgTable","classes","modules","modulesProp","getRowHeight","rowModelType","concat","calculateRowHeight","node","level","rowHeightFunction","undefined","onGridSizeChanged"],"sources":["../../../src/utilities/aggrid/AgTable.tsx"],"sourcesContent":["import { AllModules, RowHeightParams } from '@ag-grid-enterprise/all-modules';\nimport {\n  AgGridEvent,\n  ColumnApi,\n  GridApi,\n  Module\n} from '@ag-grid-enterprise/all-modules/dist/cjs/main';\nimport '@ag-grid-enterprise/all-modules/dist/styles/ag-grid.css';\nimport '@ag-grid-enterprise/all-modules/dist/styles/ag-theme-material.css';\nimport './ag-grid-styles.css';\nimport { AgGridReact, AgGridReactProps } from '@ag-grid-community/react';\nimport { ExcelExportModule } from '@ag-grid-enterprise/excel-export';\nimport {\n  Box,\n  Button,\n  Grid,\n  makeStyles,\n  MenuItem,\n  useTheme\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport invariant from 'invariant';\nimport React, {\n  Dispatch,\n  FC,\n  Reducer,\n  useCallback,\n  useMemo,\n  useReducer\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { SplitButton } from './SplitButton';\nimport { LicenseManager } from '@ag-grid-enterprise/core';\nimport { LicenseKey } from '../../AGLicense';\n\nLicenseManager.setLicenseKey(LicenseKey);\n\nconst useStyles = makeStyles(\n  (theme) => ({\n    root: {\n      flex: 1,\n      height: (props: any) =>\n        props?.height ? props.height : 'calc(100vh - 280px)'\n    },\n    AgGrid: (props: any) => ({\n      '--ag-control-panel-background-color': theme.palette.primary.light,\n      '--ag-checkbox-checked-color': theme.palette.primary.main,\n      ...(props.hideHeader ? {} : {\n        '--ag-header-background-color': theme.palette.primary.main,\n        '--ag-header-foreground-color': theme.palette.primary.light,\n      }),\n    })\n  }),\n  { name: 'AgTable' }\n);\n\nconst globalModules: Module[] = [...AllModules, ExcelExportModule];\n\ninterface AgGridApi {\n  gridApi?: GridApi;\n  gridColumnApi?: ColumnApi;\n}\n\ninterface UseAgGridApi extends AgGridApi {\n  onGridReady: Dispatch<AgGridEvent>;\n}\n\n/**\n * Utility hook for getting the ag-grid APIs into state\n */\nexport function useAgGridApi(): UseAgGridApi {\n  const [{ gridApi, gridColumnApi }, onGridReady] = useReducer<\n    Reducer<AgGridApi, AgGridEvent>\n  >((state, params) => {\n    return { gridApi: params.api, gridColumnApi: params.columnApi };\n  }, {});\n\n  return { gridApi, gridColumnApi, onGridReady };\n}\n\nexport interface AgTableButttonsProps {\n  gridApi?: GridApi;\n  gridColumnApi?: ColumnApi;\n}\n\n/**\n * Size/Export buttons for AgGrid tables.\n *\n * @deprecated Tightly coupled to the legacy `AgTable` component. The new UDP\n * grids expose equivalent functionality via `gridFunctions` — see the\n * `udp-grid-conversion` skill.\n */\nexport const AgTableButtons: FC<AgTableButttonsProps> = (props) => {\n  const { gridApi, gridColumnApi } = props;\n  const { t } = useTranslation();\n\n  const exportToCSV = useCallback(() => {\n    invariant(gridApi, `gridApi not ready`);\n    gridApi?.exportDataAsCsv({\n      allColumns: true,\n      fileName: 'export'\n    });\n  }, [gridApi]);\n  const exportToExcel = useCallback(() => {\n    invariant(gridApi, `gridApi not ready`);\n    gridApi?.exportDataAsExcel({\n      allColumns: true,\n      fileName: 'export'\n    });\n  }, [gridApi]);\n\n  const sizeToFit = useCallback(\n    (params: any) => {\n      invariant(gridApi, `gridApi not ready`);\n      gridApi?.sizeColumnsToFit();\n    },\n    [gridApi]\n  );\n\n  const autoSizeAll = useCallback(\n    (skipHeader: any) => {\n      invariant(gridColumnApi, `gridColumnApi not ready`);\n      const allColumnIds: string[] = [];\n      gridColumnApi\n        ?.getAllColumns()\n        ?.forEach((column: { getColId: () => string }) => {\n          allColumnIds.push(column.getColId());\n        });\n      gridColumnApi?.autoSizeColumns(allColumnIds, skipHeader);\n    },\n    [gridColumnApi]\n  );\n  const autoSizeAllWithHeader = useCallback(\n    () => autoSizeAll(false),\n    [autoSizeAll]\n  );\n  const autoSizeAllWithoutHeader = useCallback(\n    () => autoSizeAll(false),\n    [autoSizeAll]\n  );\n\n  return (\n    // @ts-ignore\n    <Box mb={1}>\n      <Grid container direction='row' spacing={1} justify='flex-end'>\n        <Grid item>\n          <Button variant='outlined' size='small' onClick={sizeToFit}>\n            {t('grid.agTable.sizeToFit', { defaultValue: 'Size to Fit' })}\n          </Button>\n        </Grid>\n        <Grid item>\n          <SplitButton\n            popupName='auto-size'\n            variant='outlined'\n            size='small'\n            label={t('grid.agTable.autoSize', { defaultValue: 'Auto-Size' })}\n          >\n            <MenuItem onClick={autoSizeAllWithHeader}>\n              {t('common.all', { defaultValue: 'All' })}\n            </MenuItem>\n            <MenuItem onClick={autoSizeAllWithoutHeader}>\n              {t('grid.agTable.skipHeader', { defaultValue: 'Skip Header' })}\n            </MenuItem>\n          </SplitButton>\n        </Grid>\n        <Grid item>\n          <SplitButton\n            popupName='export'\n            variant='outlined'\n            size='small'\n            label={t('grid.agTable.export', { defaultValue: 'Export' })}\n          >\n            <MenuItem onClick={exportToExcel}>\n              {t('grid.agTable.excel', { defaultValue: 'Excel' })}\n            </MenuItem>\n            <MenuItem onClick={exportToCSV}>\n              {t('grid.agTable.csv', { defaultValue: 'CSV' })}\n            </MenuItem>\n          </SplitButton>\n        </Grid>\n      </Grid>\n    </Box>\n  );\n};\n\ninterface AgTableProps extends AgGridReactProps {\n  dynamicSizing?: boolean;\n  className?: string;\n  isUsingAgRowHeight?: boolean;\n  hideHeader?: boolean; // Add the hideHeader prop\n}\n\n/**\n * AgGrid with tweaks.\n *\n * @deprecated Use the new UDP grid components instead — `ClientSideUdpGrid`,\n * `SearchMethodUdpGrid`, `ServerSideUdpGrid`, or `ApiMethodInstanceUdpGrid`.\n * See the `udp-grid-conversion` skill for migration guidance.\n */\nexport const AgTable: FC<AgTableProps> = (props) => {\n  const classes = useStyles(props);\n  const {\n    modules: modulesProp,\n    className,\n    getRowHeight,\n    rowModelType,\n    isUsingAgRowHeight = false,\n    hideHeader = false // Add the hideHeader prop to the destructuring\n  } = props;\n  const modules = useMemo<Module[]>(\n    () => (modulesProp ? globalModules.concat(modulesProp) : globalModules),\n    [modulesProp]\n  );\n\n  const calculateRowHeight: (\n    params: RowHeightParams\n  ) => number | null | undefined = (params) => {\n    if (params.node.level === 0) {\n      return 48;\n    }\n    if (params.node.level === 1) {\n      return 32;\n    }\n    return 16;\n  };\n\n  const rowHeightFunction = useCallback(\n    (params) => {\n      if (rowModelType === 'serverSide') {\n        if (isUsingAgRowHeight) {\n          return undefined;\n        } else {\n          if (getRowHeight) {\n            return getRowHeight(params);\n          } else {\n            return calculateRowHeight(params);\n          }\n        }\n      } else {\n        if (getRowHeight) {\n          return getRowHeight(params);\n        }\n      }\n      return undefined;\n    },\n    [getRowHeight, isUsingAgRowHeight]\n  );\n\n  const onGridSizeChanged = () => {\n    if (props.dynamicSizing) {\n      props.api?.sizeColumnsToFit();\n    }\n  };\n\n  return (\n    <div className={clsx('ag-theme-material', classes.root, className)}>\n      <AgGridReact\n        {...props}\n        modules={modules}\n        onGridSizeChanged={onGridSizeChanged}\n        getRowHeight={rowHeightFunction}\n        className={classes.AgGrid}\n      />\n    </div>\n  );\n};\n"],"mappings":"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"}