Files
ETB/ETB-FrontEnd/node_modules/.cache/babel-loader/30f503bd89aae0250a00359136356e5db732a1179c11091297b207218a765c33.json
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

1 line
54 KiB
JSON

{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useForkRef } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport { defaultMemoize } from 'reselect';\nimport { useGridApiContext } from '../../utils/useGridApiContext';\nimport { useGridSelector } from '../../utils/useGridSelector';\nimport { gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';\nimport { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector } from '../focus/gridFocusStateSelector';\nimport { gridDensityHeaderHeightSelector, gridDensityHeaderGroupingMaxDepthSelector, gridDensityTotalHeaderHeightSelector } from '../density/densitySelector';\nimport { gridFilterActiveItemsLookupSelector } from '../filter/gridFilterSelector';\nimport { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';\nimport { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';\nimport { useGridRootProps } from '../../utils/useGridRootProps';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';\nimport { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';\nimport { useGridVisibleRows } from '../../utils/useGridVisibleRows';\nimport { getRenderableIndexes } from '../virtualization/useGridVirtualScroller';\nimport { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';\nimport { isDeepEqual } from '../../../utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// TODO: add the possibility to switch this value if needed for customization\nconst MERGE_EMPTY_CELLS = true;\nconst GridColumnHeaderRow = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnHeaderRow',\n overridesResolver: (props, styles) => styles.columnHeaderRow\n})(() => ({\n display: 'flex'\n}));\nfunction isUIEvent(event) {\n return !!event.target;\n}\nexport const useGridColumnHeaders = props => {\n const {\n innerRef: innerRefProp,\n minColumnIndex = 0\n } = props;\n const [dragCol, setDragCol] = React.useState('');\n const [resizeCol, setResizeCol] = React.useState('');\n const apiRef = useGridApiContext();\n const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);\n const tabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);\n const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);\n const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);\n const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);\n const headerGroupingMaxDepth = useGridSelector(apiRef, gridDensityHeaderGroupingMaxDepthSelector);\n const totalHeaderHeight = useGridSelector(apiRef, gridDensityTotalHeaderHeightSelector);\n const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);\n const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);\n const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);\n const rootProps = useGridRootProps();\n const innerRef = React.useRef(null);\n const handleInnerRef = useForkRef(innerRefProp, innerRef);\n const [renderContext, setRenderContext] = React.useState(null);\n const prevRenderContext = React.useRef(renderContext);\n const prevScrollLeft = React.useRef(0);\n const currentPage = useGridVisibleRows(apiRef, rootProps);\n React.useEffect(() => {\n apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;\n }, [apiRef]); // memoize `getFirstColumnIndexToRender`, since it's called on scroll\n\n const getFirstColumnIndexToRenderRef = React.useRef(defaultMemoize(getFirstColumnIndexToRender, {\n equalityCheck: (a, b) => ['firstColumnIndex', 'minColumnIndex', 'columnBuffer'].every(key => a[key] === b[key])\n }));\n const updateInnerPosition = React.useCallback(nextRenderContext => {\n const [firstRowToRender, lastRowToRender] = getRenderableIndexes({\n firstIndex: nextRenderContext.firstRowIndex,\n lastIndex: nextRenderContext.lastRowIndex,\n minFirstIndex: 0,\n maxLastIndex: currentPage.rows.length,\n buffer: rootProps.rowBuffer\n });\n const firstColumnToRender = getFirstColumnIndexToRenderRef.current({\n firstColumnIndex: nextRenderContext.firstColumnIndex,\n minColumnIndex,\n columnBuffer: rootProps.columnBuffer,\n firstRowToRender,\n lastRowToRender,\n apiRef,\n visibleRows: currentPage.rows\n });\n const offset = firstColumnToRender > 0 ? prevScrollLeft.current - columnPositions[firstColumnToRender] : prevScrollLeft.current;\n innerRef.current.style.transform = `translate3d(${-offset}px, 0px, 0px)`;\n }, [columnPositions, minColumnIndex, rootProps.columnBuffer, apiRef, currentPage.rows, rootProps.rowBuffer]);\n React.useLayoutEffect(() => {\n if (renderContext) {\n updateInnerPosition(renderContext);\n }\n }, [renderContext, updateInnerPosition]);\n const handleScroll = React.useCallback(({\n left,\n renderContext: nextRenderContext = null\n }, event) => {\n var _prevRenderContext$cu, _prevRenderContext$cu2;\n if (!innerRef.current) {\n return;\n } // Ignore vertical scroll.\n // Excepts the first event which sets the previous render context.\n\n if (prevScrollLeft.current === left && ((_prevRenderContext$cu = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu.firstColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.firstColumnIndex) && ((_prevRenderContext$cu2 = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu2.lastColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.lastColumnIndex)) {\n return;\n }\n prevScrollLeft.current = left; // We can only update the position when we guarantee that the render context has been\n // rendered. This is achieved using ReactDOM.flushSync or when the context doesn't change.\n\n let canUpdateInnerPosition = false;\n if (nextRenderContext !== prevRenderContext.current || !prevRenderContext.current) {\n // ReactDOM.flushSync cannot be called on `scroll` events fired inside effects\n if (isUIEvent(event)) {\n // To prevent flickering, the inner position can only be updated after the new context has\n // been rendered. ReactDOM.flushSync ensures that the state changes will happen before\n // updating the position.\n ReactDOM.flushSync(() => {\n setRenderContext(nextRenderContext);\n });\n canUpdateInnerPosition = true;\n } else {\n setRenderContext(nextRenderContext);\n }\n prevRenderContext.current = nextRenderContext;\n } else {\n canUpdateInnerPosition = true;\n } // Pass directly the render context to avoid waiting for the next render\n\n if (nextRenderContext && canUpdateInnerPosition) {\n updateInnerPosition(nextRenderContext);\n }\n }, [updateInnerPosition]);\n const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);\n const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);\n const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);\n const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);\n useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);\n useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);\n useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);\n useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);\n useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll); // Helper for computation common between getColumnHeaders and getColumnGroupHeaders\n\n const getColumnsToRender = params => {\n const {\n renderContext: nextRenderContext = renderContext,\n minFirstColumn = minColumnIndex,\n maxLastColumn = visibleColumns.length\n } = params || {};\n if (!nextRenderContext) {\n return null;\n }\n const [firstRowToRender, lastRowToRender] = getRenderableIndexes({\n firstIndex: nextRenderContext.firstRowIndex,\n lastIndex: nextRenderContext.lastRowIndex,\n minFirstIndex: 0,\n maxLastIndex: currentPage.rows.length,\n buffer: rootProps.rowBuffer\n });\n const firstColumnToRender = getFirstColumnIndexToRenderRef.current({\n firstColumnIndex: nextRenderContext.firstColumnIndex,\n minColumnIndex: minFirstColumn,\n columnBuffer: rootProps.columnBuffer,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows: currentPage.rows\n });\n const lastColumnToRender = Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);\n const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);\n return {\n renderedColumns,\n firstColumnToRender,\n lastColumnToRender,\n minFirstColumn,\n maxLastColumn\n };\n };\n const getColumnHeaders = (params, other = {}) => {\n const columnsToRender = getColumnsToRender(params);\n if (columnsToRender == null) {\n return null;\n }\n const {\n renderedColumns,\n firstColumnToRender\n } = columnsToRender;\n const columns = [];\n for (let i = 0; i < renderedColumns.length; i += 1) {\n const column = renderedColumns[i];\n const columnIndex = firstColumnToRender + i;\n const isFirstColumn = columnIndex === 0;\n const hasTabbableElement = !(tabIndexState === null && cellTabIndexState === null);\n const tabIndex = tabIndexState !== null && tabIndexState.field === column.field || isFirstColumn && !hasTabbableElement ? 0 : -1;\n const hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === column.field;\n const open = columnMenuState.open && columnMenuState.field === column.field;\n columns.push(/*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[column.field], {\n columnMenuOpen: open,\n filterItemsCounter: filterColumnLookup[column.field] && filterColumnLookup[column.field].length,\n headerHeight: headerHeight,\n isDragging: column.field === dragCol,\n column: column,\n colIndex: columnIndex,\n isResizing: resizeCol === column.field,\n isLastColumn: columnIndex === visibleColumns.length - 1,\n extendRowFullWidth: !rootProps.disableExtendRowFullWidth,\n hasFocus: hasFocus,\n tabIndex: tabIndex\n }, other), column.field));\n }\n return /*#__PURE__*/_jsx(GridColumnHeaderRow, {\n role: \"row\",\n \"aria-rowindex\": headerGroupingMaxDepth + 1,\n ownerState: rootProps,\n children: columns\n });\n };\n const getParents = (path = [], depth) => path.slice(0, depth + 1);\n const getColumnGroupHeaders = params => {\n if (headerGroupingMaxDepth === 0) {\n return null;\n }\n const columnsToRender = getColumnsToRender(params);\n if (columnsToRender == null || columnsToRender.renderedColumns.length === 0) {\n return null;\n }\n const {\n renderedColumns,\n firstColumnToRender,\n lastColumnToRender,\n maxLastColumn\n } = columnsToRender;\n const columns = [];\n const headerToRender = [];\n for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {\n var _visibleColumns$first, _visibleColumns$first2, _visibleColumns$first3;\n\n // Initialize the header line with a grouping item containing all the columns on the left of the virtualization which are in the same group as the first group to render\n const initialHeader = [];\n let leftOverflow = 0;\n let columnIndex = firstColumnToRender - 1;\n const firstColumnToRenderGroup = (_visibleColumns$first = visibleColumns[firstColumnToRender]) == null ? void 0 : (_visibleColumns$first2 = _visibleColumns$first.groupPath) == null ? void 0 : _visibleColumns$first2[depth]; // The array of parent is used to manage empty grouping cell\n // When two empty grouping cell are next to each other, we merge them if the belong to the same group.\n\n const firstColumnToRenderGroupParents = getParents((_visibleColumns$first3 = visibleColumns[firstColumnToRender]) == null ? void 0 : _visibleColumns$first3.groupPath, depth);\n while (firstColumnToRenderGroup !== null && columnIndex >= minColumnIndex && (_visibleColumns$colum = visibleColumns[columnIndex]) != null && _visibleColumns$colum.groupPath && isDeepEqual(getParents((_visibleColumns$colum2 = visibleColumns[columnIndex]) == null ? void 0 : _visibleColumns$colum2.groupPath, depth), firstColumnToRenderGroupParents)) {\n var _visibleColumns$colum, _visibleColumns$colum2, _column$computedWidth;\n const column = visibleColumns[columnIndex];\n leftOverflow += (_column$computedWidth = column.computedWidth) != null ? _column$computedWidth : 0;\n if (initialHeader.length === 0) {\n var _column$computedWidth2;\n initialHeader.push({\n width: (_column$computedWidth2 = column.computedWidth) != null ? _column$computedWidth2 : 0,\n fields: [column.field],\n groupId: firstColumnToRenderGroup,\n groupParents: firstColumnToRenderGroupParents,\n colIndex: columnIndex\n });\n } else {\n var _column$computedWidth3;\n initialHeader[0].width += (_column$computedWidth3 = column.computedWidth) != null ? _column$computedWidth3 : 0;\n initialHeader[0].fields.push(column.field);\n initialHeader[0].colIndex = columnIndex;\n }\n columnIndex -= 1;\n }\n const depthInfo = renderedColumns.reduce((aggregated, column, i) => {\n var _column$computedWidth7;\n const lastItem = aggregated[aggregated.length - 1];\n if (column.groupPath && column.groupPath.length > depth) {\n var _column$computedWidth5;\n if (lastItem && lastItem.groupId === column.groupPath[depth]) {\n var _column$computedWidth4;\n\n // Merge with the previous columns\n return [...aggregated.slice(0, aggregated.length - 1), _extends({}, lastItem, {\n width: lastItem.width + ((_column$computedWidth4 = column.computedWidth) != null ? _column$computedWidth4 : 0),\n fields: [...lastItem.fields, column.field]\n })];\n } // Create a new grouping\n\n return [...aggregated, {\n groupId: column.groupPath[depth],\n groupParents: getParents(column.groupPath, depth),\n width: (_column$computedWidth5 = column.computedWidth) != null ? _column$computedWidth5 : 0,\n fields: [column.field],\n colIndex: firstColumnToRender + i\n }];\n }\n if (MERGE_EMPTY_CELLS && lastItem && lastItem.groupId === null && isDeepEqual(getParents(column.groupPath, depth), lastItem.groupParents)) {\n var _column$computedWidth6;\n\n // We merge with previous column\n return [...aggregated.slice(0, aggregated.length - 1), _extends({}, lastItem, {\n width: lastItem.width + ((_column$computedWidth6 = column.computedWidth) != null ? _column$computedWidth6 : 0),\n fields: [...lastItem.fields, column.field]\n })];\n } // We create new empty cell\n\n return [...aggregated, {\n groupId: null,\n groupParents: getParents(column.groupPath, depth),\n width: (_column$computedWidth7 = column.computedWidth) != null ? _column$computedWidth7 : 0,\n fields: [column.field],\n colIndex: firstColumnToRender + i\n }];\n }, initialHeader);\n columnIndex = lastColumnToRender;\n const lastColumnToRenderGroup = depthInfo[depthInfo.length - 1].groupId;\n while (lastColumnToRenderGroup !== null && columnIndex < maxLastColumn && (_visibleColumns$colum3 = visibleColumns[columnIndex]) != null && _visibleColumns$colum3.groupPath && ((_visibleColumns$colum4 = visibleColumns[columnIndex]) == null ? void 0 : (_visibleColumns$colum5 = _visibleColumns$colum4.groupPath) == null ? void 0 : _visibleColumns$colum5[depth]) === lastColumnToRenderGroup) {\n var _visibleColumns$colum3, _visibleColumns$colum4, _visibleColumns$colum5, _column$computedWidth8;\n const column = visibleColumns[columnIndex];\n depthInfo[depthInfo.length - 1].width += (_column$computedWidth8 = column.computedWidth) != null ? _column$computedWidth8 : 0;\n depthInfo[depthInfo.length - 1].fields.push(column.field);\n columnIndex += 1;\n }\n headerToRender.push({\n leftOverflow,\n elements: [...depthInfo]\n });\n }\n headerToRender.forEach((depthInfo, depthIndex) => {\n columns.push(/*#__PURE__*/_jsx(GridColumnHeaderRow, {\n style: {\n height: `${headerHeight}px`,\n transform: `translateX(-${depthInfo.leftOverflow}px)`\n },\n role: \"row\",\n \"aria-rowindex\": depthIndex + 1,\n ownerState: rootProps,\n children: depthInfo.elements.map(({\n groupId,\n width,\n fields,\n colIndex\n }, groupIndex) => {\n return /*#__PURE__*/_jsx(GridColumnGroupHeader, {\n groupId: groupId,\n width: width,\n fields: fields,\n colIndex: colIndex,\n depth: depthIndex,\n isLastColumn: colIndex === visibleColumns.length - fields.length,\n extendRowFullWidth: !rootProps.disableExtendRowFullWidth,\n maxDepth: headerToRender.length,\n height: headerHeight\n }, groupIndex);\n })\n }, depthIndex));\n });\n return columns;\n };\n const rootStyle = {\n minHeight: totalHeaderHeight,\n maxHeight: totalHeaderHeight,\n lineHeight: `${headerHeight}px`\n };\n return {\n renderContext,\n getColumnHeaders,\n getColumnGroupHeaders,\n isDragging: !!dragCol,\n getRootProps: (other = {}) => _extends({\n style: rootStyle\n }, other),\n getInnerProps: () => ({\n ref: handleInnerRef,\n role: 'rowgroup'\n })\n };\n};","map":{"version":3,"names":["_extends","React","ReactDOM","useForkRef","styled","defaultMemoize","useGridApiContext","useGridSelector","gridVisibleColumnDefinitionsSelector","gridColumnPositionsSelector","gridTabIndexColumnHeaderSelector","gridTabIndexCellSelector","gridFocusColumnHeaderSelector","gridDensityHeaderHeightSelector","gridDensityHeaderGroupingMaxDepthSelector","gridDensityTotalHeaderHeightSelector","gridFilterActiveItemsLookupSelector","gridSortColumnLookupSelector","gridColumnMenuSelector","useGridRootProps","useGridApiEventHandler","GridColumnHeaderItem","getFirstColumnIndexToRender","useGridVisibleRows","getRenderableIndexes","GridColumnGroupHeader","isDeepEqual","jsx","_jsx","MERGE_EMPTY_CELLS","GridColumnHeaderRow","name","slot","overridesResolver","props","styles","columnHeaderRow","display","isUIEvent","event","target","useGridColumnHeaders","innerRef","innerRefProp","minColumnIndex","dragCol","setDragCol","useState","resizeCol","setResizeCol","apiRef","visibleColumns","columnPositions","tabIndexState","cellTabIndexState","columnHeaderFocus","headerHeight","headerGroupingMaxDepth","totalHeaderHeight","filterColumnLookup","sortColumnLookup","columnMenuState","rootProps","useRef","handleInnerRef","renderContext","setRenderContext","prevRenderContext","prevScrollLeft","currentPage","useEffect","current","columnHeadersContainerElementRef","scrollLeft","getFirstColumnIndexToRenderRef","equalityCheck","a","b","every","key","updateInnerPosition","useCallback","nextRenderContext","firstRowToRender","lastRowToRender","firstIndex","firstRowIndex","lastIndex","lastRowIndex","minFirstIndex","maxLastIndex","rows","length","buffer","rowBuffer","firstColumnToRender","firstColumnIndex","columnBuffer","visibleRows","offset","style","transform","useLayoutEffect","handleScroll","left","_prevRenderContext$cu","_prevRenderContext$cu2","lastColumnIndex","canUpdateInnerPosition","flushSync","handleColumnResizeStart","params","field","handleColumnResizeStop","handleColumnReorderStart","handleColumnReorderStop","getColumnsToRender","minFirstColumn","maxLastColumn","lastColumnToRender","Math","min","renderedColumns","slice","getColumnHeaders","other","columnsToRender","columns","i","column","columnIndex","isFirstColumn","hasTabbableElement","tabIndex","hasFocus","open","push","columnMenuOpen","filterItemsCounter","isDragging","colIndex","isResizing","isLastColumn","extendRowFullWidth","disableExtendRowFullWidth","role","ownerState","children","getParents","path","depth","getColumnGroupHeaders","headerToRender","_visibleColumns$first","_visibleColumns$first2","_visibleColumns$first3","initialHeader","leftOverflow","firstColumnToRenderGroup","groupPath","firstColumnToRenderGroupParents","_visibleColumns$colum","_visibleColumns$colum2","_column$computedWidth","computedWidth","_column$computedWidth2","width","fields","groupId","groupParents","_column$computedWidth3","depthInfo","reduce","aggregated","_column$computedWidth7","lastItem","_column$computedWidth5","_column$computedWidth4","_column$computedWidth6","lastColumnToRenderGroup","_visibleColumns$colum3","_visibleColumns$colum4","_visibleColumns$colum5","_column$computedWidth8","elements","forEach","depthIndex","height","map","groupIndex","maxDepth","rootStyle","minHeight","maxHeight","lineHeight","getRootProps","getInnerProps","ref"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/columnHeaders/useGridColumnHeaders.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useForkRef } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport { defaultMemoize } from 'reselect';\nimport { useGridApiContext } from '../../utils/useGridApiContext';\nimport { useGridSelector } from '../../utils/useGridSelector';\nimport { gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';\nimport { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector } from '../focus/gridFocusStateSelector';\nimport { gridDensityHeaderHeightSelector, gridDensityHeaderGroupingMaxDepthSelector, gridDensityTotalHeaderHeightSelector } from '../density/densitySelector';\nimport { gridFilterActiveItemsLookupSelector } from '../filter/gridFilterSelector';\nimport { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';\nimport { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';\nimport { useGridRootProps } from '../../utils/useGridRootProps';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';\nimport { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';\nimport { useGridVisibleRows } from '../../utils/useGridVisibleRows';\nimport { getRenderableIndexes } from '../virtualization/useGridVirtualScroller';\nimport { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';\nimport { isDeepEqual } from '../../../utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// TODO: add the possibility to switch this value if needed for customization\nconst MERGE_EMPTY_CELLS = true;\nconst GridColumnHeaderRow = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnHeaderRow',\n overridesResolver: (props, styles) => styles.columnHeaderRow\n})(() => ({\n display: 'flex'\n}));\n\nfunction isUIEvent(event) {\n return !!event.target;\n}\n\nexport const useGridColumnHeaders = props => {\n const {\n innerRef: innerRefProp,\n minColumnIndex = 0\n } = props;\n const [dragCol, setDragCol] = React.useState('');\n const [resizeCol, setResizeCol] = React.useState('');\n const apiRef = useGridApiContext();\n const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);\n const tabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);\n const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);\n const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);\n const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);\n const headerGroupingMaxDepth = useGridSelector(apiRef, gridDensityHeaderGroupingMaxDepthSelector);\n const totalHeaderHeight = useGridSelector(apiRef, gridDensityTotalHeaderHeightSelector);\n const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);\n const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);\n const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);\n const rootProps = useGridRootProps();\n const innerRef = React.useRef(null);\n const handleInnerRef = useForkRef(innerRefProp, innerRef);\n const [renderContext, setRenderContext] = React.useState(null);\n const prevRenderContext = React.useRef(renderContext);\n const prevScrollLeft = React.useRef(0);\n const currentPage = useGridVisibleRows(apiRef, rootProps);\n React.useEffect(() => {\n apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;\n }, [apiRef]); // memoize `getFirstColumnIndexToRender`, since it's called on scroll\n\n const getFirstColumnIndexToRenderRef = React.useRef(defaultMemoize(getFirstColumnIndexToRender, {\n equalityCheck: (a, b) => ['firstColumnIndex', 'minColumnIndex', 'columnBuffer'].every(key => a[key] === b[key])\n }));\n const updateInnerPosition = React.useCallback(nextRenderContext => {\n const [firstRowToRender, lastRowToRender] = getRenderableIndexes({\n firstIndex: nextRenderContext.firstRowIndex,\n lastIndex: nextRenderContext.lastRowIndex,\n minFirstIndex: 0,\n maxLastIndex: currentPage.rows.length,\n buffer: rootProps.rowBuffer\n });\n const firstColumnToRender = getFirstColumnIndexToRenderRef.current({\n firstColumnIndex: nextRenderContext.firstColumnIndex,\n minColumnIndex,\n columnBuffer: rootProps.columnBuffer,\n firstRowToRender,\n lastRowToRender,\n apiRef,\n visibleRows: currentPage.rows\n });\n const offset = firstColumnToRender > 0 ? prevScrollLeft.current - columnPositions[firstColumnToRender] : prevScrollLeft.current;\n innerRef.current.style.transform = `translate3d(${-offset}px, 0px, 0px)`;\n }, [columnPositions, minColumnIndex, rootProps.columnBuffer, apiRef, currentPage.rows, rootProps.rowBuffer]);\n React.useLayoutEffect(() => {\n if (renderContext) {\n updateInnerPosition(renderContext);\n }\n }, [renderContext, updateInnerPosition]);\n const handleScroll = React.useCallback(({\n left,\n renderContext: nextRenderContext = null\n }, event) => {\n var _prevRenderContext$cu, _prevRenderContext$cu2;\n\n if (!innerRef.current) {\n return;\n } // Ignore vertical scroll.\n // Excepts the first event which sets the previous render context.\n\n\n if (prevScrollLeft.current === left && ((_prevRenderContext$cu = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu.firstColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.firstColumnIndex) && ((_prevRenderContext$cu2 = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu2.lastColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.lastColumnIndex)) {\n return;\n }\n\n prevScrollLeft.current = left; // We can only update the position when we guarantee that the render context has been\n // rendered. This is achieved using ReactDOM.flushSync or when the context doesn't change.\n\n let canUpdateInnerPosition = false;\n\n if (nextRenderContext !== prevRenderContext.current || !prevRenderContext.current) {\n // ReactDOM.flushSync cannot be called on `scroll` events fired inside effects\n if (isUIEvent(event)) {\n // To prevent flickering, the inner position can only be updated after the new context has\n // been rendered. ReactDOM.flushSync ensures that the state changes will happen before\n // updating the position.\n ReactDOM.flushSync(() => {\n setRenderContext(nextRenderContext);\n });\n canUpdateInnerPosition = true;\n } else {\n setRenderContext(nextRenderContext);\n }\n\n prevRenderContext.current = nextRenderContext;\n } else {\n canUpdateInnerPosition = true;\n } // Pass directly the render context to avoid waiting for the next render\n\n\n if (nextRenderContext && canUpdateInnerPosition) {\n updateInnerPosition(nextRenderContext);\n }\n }, [updateInnerPosition]);\n const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);\n const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);\n const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);\n const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);\n useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);\n useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);\n useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);\n useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);\n useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll); // Helper for computation common between getColumnHeaders and getColumnGroupHeaders\n\n const getColumnsToRender = params => {\n const {\n renderContext: nextRenderContext = renderContext,\n minFirstColumn = minColumnIndex,\n maxLastColumn = visibleColumns.length\n } = params || {};\n\n if (!nextRenderContext) {\n return null;\n }\n\n const [firstRowToRender, lastRowToRender] = getRenderableIndexes({\n firstIndex: nextRenderContext.firstRowIndex,\n lastIndex: nextRenderContext.lastRowIndex,\n minFirstIndex: 0,\n maxLastIndex: currentPage.rows.length,\n buffer: rootProps.rowBuffer\n });\n const firstColumnToRender = getFirstColumnIndexToRenderRef.current({\n firstColumnIndex: nextRenderContext.firstColumnIndex,\n minColumnIndex: minFirstColumn,\n columnBuffer: rootProps.columnBuffer,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows: currentPage.rows\n });\n const lastColumnToRender = Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);\n const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);\n return {\n renderedColumns,\n firstColumnToRender,\n lastColumnToRender,\n minFirstColumn,\n maxLastColumn\n };\n };\n\n const getColumnHeaders = (params, other = {}) => {\n const columnsToRender = getColumnsToRender(params);\n\n if (columnsToRender == null) {\n return null;\n }\n\n const {\n renderedColumns,\n firstColumnToRender\n } = columnsToRender;\n const columns = [];\n\n for (let i = 0; i < renderedColumns.length; i += 1) {\n const column = renderedColumns[i];\n const columnIndex = firstColumnToRender + i;\n const isFirstColumn = columnIndex === 0;\n const hasTabbableElement = !(tabIndexState === null && cellTabIndexState === null);\n const tabIndex = tabIndexState !== null && tabIndexState.field === column.field || isFirstColumn && !hasTabbableElement ? 0 : -1;\n const hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === column.field;\n const open = columnMenuState.open && columnMenuState.field === column.field;\n columns.push( /*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[column.field], {\n columnMenuOpen: open,\n filterItemsCounter: filterColumnLookup[column.field] && filterColumnLookup[column.field].length,\n headerHeight: headerHeight,\n isDragging: column.field === dragCol,\n column: column,\n colIndex: columnIndex,\n isResizing: resizeCol === column.field,\n isLastColumn: columnIndex === visibleColumns.length - 1,\n extendRowFullWidth: !rootProps.disableExtendRowFullWidth,\n hasFocus: hasFocus,\n tabIndex: tabIndex\n }, other), column.field));\n }\n\n return /*#__PURE__*/_jsx(GridColumnHeaderRow, {\n role: \"row\",\n \"aria-rowindex\": headerGroupingMaxDepth + 1,\n ownerState: rootProps,\n children: columns\n });\n };\n\n const getParents = (path = [], depth) => path.slice(0, depth + 1);\n\n const getColumnGroupHeaders = params => {\n if (headerGroupingMaxDepth === 0) {\n return null;\n }\n\n const columnsToRender = getColumnsToRender(params);\n\n if (columnsToRender == null || columnsToRender.renderedColumns.length === 0) {\n return null;\n }\n\n const {\n renderedColumns,\n firstColumnToRender,\n lastColumnToRender,\n maxLastColumn\n } = columnsToRender;\n const columns = [];\n const headerToRender = [];\n\n for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {\n var _visibleColumns$first, _visibleColumns$first2, _visibleColumns$first3;\n\n // Initialize the header line with a grouping item containing all the columns on the left of the virtualization which are in the same group as the first group to render\n const initialHeader = [];\n let leftOverflow = 0;\n let columnIndex = firstColumnToRender - 1;\n const firstColumnToRenderGroup = (_visibleColumns$first = visibleColumns[firstColumnToRender]) == null ? void 0 : (_visibleColumns$first2 = _visibleColumns$first.groupPath) == null ? void 0 : _visibleColumns$first2[depth]; // The array of parent is used to manage empty grouping cell\n // When two empty grouping cell are next to each other, we merge them if the belong to the same group.\n\n const firstColumnToRenderGroupParents = getParents((_visibleColumns$first3 = visibleColumns[firstColumnToRender]) == null ? void 0 : _visibleColumns$first3.groupPath, depth);\n\n while (firstColumnToRenderGroup !== null && columnIndex >= minColumnIndex && (_visibleColumns$colum = visibleColumns[columnIndex]) != null && _visibleColumns$colum.groupPath && isDeepEqual(getParents((_visibleColumns$colum2 = visibleColumns[columnIndex]) == null ? void 0 : _visibleColumns$colum2.groupPath, depth), firstColumnToRenderGroupParents)) {\n var _visibleColumns$colum, _visibleColumns$colum2, _column$computedWidth;\n\n const column = visibleColumns[columnIndex];\n leftOverflow += (_column$computedWidth = column.computedWidth) != null ? _column$computedWidth : 0;\n\n if (initialHeader.length === 0) {\n var _column$computedWidth2;\n\n initialHeader.push({\n width: (_column$computedWidth2 = column.computedWidth) != null ? _column$computedWidth2 : 0,\n fields: [column.field],\n groupId: firstColumnToRenderGroup,\n groupParents: firstColumnToRenderGroupParents,\n colIndex: columnIndex\n });\n } else {\n var _column$computedWidth3;\n\n initialHeader[0].width += (_column$computedWidth3 = column.computedWidth) != null ? _column$computedWidth3 : 0;\n initialHeader[0].fields.push(column.field);\n initialHeader[0].colIndex = columnIndex;\n }\n\n columnIndex -= 1;\n }\n\n const depthInfo = renderedColumns.reduce((aggregated, column, i) => {\n var _column$computedWidth7;\n\n const lastItem = aggregated[aggregated.length - 1];\n\n if (column.groupPath && column.groupPath.length > depth) {\n var _column$computedWidth5;\n\n if (lastItem && lastItem.groupId === column.groupPath[depth]) {\n var _column$computedWidth4;\n\n // Merge with the previous columns\n return [...aggregated.slice(0, aggregated.length - 1), _extends({}, lastItem, {\n width: lastItem.width + ((_column$computedWidth4 = column.computedWidth) != null ? _column$computedWidth4 : 0),\n fields: [...lastItem.fields, column.field]\n })];\n } // Create a new grouping\n\n\n return [...aggregated, {\n groupId: column.groupPath[depth],\n groupParents: getParents(column.groupPath, depth),\n width: (_column$computedWidth5 = column.computedWidth) != null ? _column$computedWidth5 : 0,\n fields: [column.field],\n colIndex: firstColumnToRender + i\n }];\n }\n\n if (MERGE_EMPTY_CELLS && lastItem && lastItem.groupId === null && isDeepEqual(getParents(column.groupPath, depth), lastItem.groupParents)) {\n var _column$computedWidth6;\n\n // We merge with previous column\n return [...aggregated.slice(0, aggregated.length - 1), _extends({}, lastItem, {\n width: lastItem.width + ((_column$computedWidth6 = column.computedWidth) != null ? _column$computedWidth6 : 0),\n fields: [...lastItem.fields, column.field]\n })];\n } // We create new empty cell\n\n\n return [...aggregated, {\n groupId: null,\n groupParents: getParents(column.groupPath, depth),\n width: (_column$computedWidth7 = column.computedWidth) != null ? _column$computedWidth7 : 0,\n fields: [column.field],\n colIndex: firstColumnToRender + i\n }];\n }, initialHeader);\n columnIndex = lastColumnToRender;\n const lastColumnToRenderGroup = depthInfo[depthInfo.length - 1].groupId;\n\n while (lastColumnToRenderGroup !== null && columnIndex < maxLastColumn && (_visibleColumns$colum3 = visibleColumns[columnIndex]) != null && _visibleColumns$colum3.groupPath && ((_visibleColumns$colum4 = visibleColumns[columnIndex]) == null ? void 0 : (_visibleColumns$colum5 = _visibleColumns$colum4.groupPath) == null ? void 0 : _visibleColumns$colum5[depth]) === lastColumnToRenderGroup) {\n var _visibleColumns$colum3, _visibleColumns$colum4, _visibleColumns$colum5, _column$computedWidth8;\n\n const column = visibleColumns[columnIndex];\n depthInfo[depthInfo.length - 1].width += (_column$computedWidth8 = column.computedWidth) != null ? _column$computedWidth8 : 0;\n depthInfo[depthInfo.length - 1].fields.push(column.field);\n columnIndex += 1;\n }\n\n headerToRender.push({\n leftOverflow,\n elements: [...depthInfo]\n });\n }\n\n headerToRender.forEach((depthInfo, depthIndex) => {\n columns.push( /*#__PURE__*/_jsx(GridColumnHeaderRow, {\n style: {\n height: `${headerHeight}px`,\n transform: `translateX(-${depthInfo.leftOverflow}px)`\n },\n role: \"row\",\n \"aria-rowindex\": depthIndex + 1,\n ownerState: rootProps,\n children: depthInfo.elements.map(({\n groupId,\n width,\n fields,\n colIndex\n }, groupIndex) => {\n return /*#__PURE__*/_jsx(GridColumnGroupHeader, {\n groupId: groupId,\n width: width,\n fields: fields,\n colIndex: colIndex,\n depth: depthIndex,\n isLastColumn: colIndex === visibleColumns.length - fields.length,\n extendRowFullWidth: !rootProps.disableExtendRowFullWidth,\n maxDepth: headerToRender.length,\n height: headerHeight\n }, groupIndex);\n })\n }, depthIndex));\n });\n return columns;\n };\n\n const rootStyle = {\n minHeight: totalHeaderHeight,\n maxHeight: totalHeaderHeight,\n lineHeight: `${headerHeight}px`\n };\n return {\n renderContext,\n getColumnHeaders,\n getColumnGroupHeaders,\n isDragging: !!dragCol,\n getRootProps: (other = {}) => _extends({\n style: rootStyle\n }, other),\n getInnerProps: () => ({\n ref: handleInnerRef,\n role: 'rowgroup'\n })\n };\n};"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}