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

1 line
46 KiB
JSON

{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { DEFAULT_GRID_COL_TYPE_KEY, getGridDefaultColumnTypes } from '../../../colDef';\nimport { gridColumnsSelector, gridColumnVisibilityModelSelector } from './gridColumnsSelector';\nimport { clamp } from '../../../utils/utils';\nexport const COLUMNS_DIMENSION_PROPERTIES = ['maxWidth', 'minWidth', 'width', 'flex'];\nexport const computeColumnTypes = (customColumnTypes = {}) => {\n const mergedColumnTypes = _extends({}, getGridDefaultColumnTypes());\n Object.entries(customColumnTypes).forEach(([colType, colTypeDef]) => {\n if (mergedColumnTypes[colType]) {\n mergedColumnTypes[colType] = _extends({}, mergedColumnTypes[colType], colTypeDef);\n } else {\n mergedColumnTypes[colType] = _extends({}, mergedColumnTypes[colTypeDef.extendType || DEFAULT_GRID_COL_TYPE_KEY], colTypeDef);\n }\n });\n return mergedColumnTypes;\n};\n/**\n * Computes width for flex columns.\n * Based on CSS Flexbox specification:\n * https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n */\n\nexport function computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n}) {\n const flexColumnsLookup = {\n all: {},\n frozenFields: [],\n freeze: field => {\n const value = flexColumnsLookup.all[field];\n if (value && value.frozen !== true) {\n flexColumnsLookup.all[field].frozen = true;\n flexColumnsLookup.frozenFields.push(field);\n }\n }\n }; // Step 5 of https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n\n function loopOverFlexItems() {\n // 5a: If all the flex items on the line are frozen, free space has been distributed.\n if (flexColumnsLookup.frozenFields.length === flexColumns.length) {\n return;\n }\n const violationsLookup = {\n min: {},\n max: {}\n };\n let remainingFreeSpace = initialFreeSpace;\n let flexUnits = totalFlexUnits;\n let totalViolation = 0; // 5b: Calculate the remaining free space\n\n flexColumnsLookup.frozenFields.forEach(field => {\n remainingFreeSpace -= flexColumnsLookup.all[field].computedWidth;\n flexUnits -= flexColumnsLookup.all[field].flex;\n });\n for (let i = 0; i < flexColumns.length; i += 1) {\n const column = flexColumns[i];\n if (flexColumnsLookup.all[column.field] && flexColumnsLookup.all[column.field].frozen === true) {\n // eslint-disable-next-line no-continue\n continue;\n } // 5c: Distribute remaining free space proportional to the flex factors\n\n const widthPerFlexUnit = remainingFreeSpace / flexUnits;\n let computedWidth = widthPerFlexUnit * column.flex; // 5d: Fix min/max violations\n\n if (computedWidth < column.minWidth) {\n totalViolation += column.minWidth - computedWidth;\n computedWidth = column.minWidth;\n violationsLookup.min[column.field] = true;\n } else if (computedWidth > column.maxWidth) {\n totalViolation += column.maxWidth - computedWidth;\n computedWidth = column.maxWidth;\n violationsLookup.max[column.field] = true;\n }\n flexColumnsLookup.all[column.field] = {\n frozen: false,\n computedWidth,\n flex: column.flex\n };\n } // 5e: Freeze over-flexed items\n\n if (totalViolation < 0) {\n // Freeze all the items with max violations\n Object.keys(violationsLookup.max).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else if (totalViolation > 0) {\n // Freeze all the items with min violations\n Object.keys(violationsLookup.min).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else {\n // Freeze all items\n flexColumns.forEach(({\n field\n }) => {\n flexColumnsLookup.freeze(field);\n });\n } // 5f: Return to the start of this loop\n\n loopOverFlexItems();\n }\n loopOverFlexItems();\n return flexColumnsLookup.all;\n}\n/**\n * Compute the `computedWidth` (ie: the width the column should have during rendering) based on the `width` / `flex` / `minWidth` / `maxWidth` properties of `GridColDef`.\n * The columns already have been merged with there `type` default values for `minWidth`, `maxWidth` and `width`, thus the `!` for those properties below.\n * TODO: Unit test this function in depth and only keep basic cases for the whole grid testing.\n * TODO: Improve the `GridColDef` typing to reflect the fact that `minWidth` / `maxWidth` and `width` can't be null after the merge with the `type` default values.\n */\n\nexport const hydrateColumnsWidth = (rawState, viewportInnerWidth) => {\n const columnsLookup = {};\n let totalFlexUnits = 0;\n let widthAllocatedBeforeFlex = 0;\n const flexColumns = []; // For the non-flex columns, compute their width\n // For the flex columns, compute there minimum width and how much width must be allocated during the flex allocation\n\n rawState.all.forEach(columnField => {\n const newColumn = _extends({}, rawState.lookup[columnField]);\n if (rawState.columnVisibilityModel[columnField] === false) {\n newColumn.computedWidth = 0;\n } else {\n let computedWidth;\n if (newColumn.flex && newColumn.flex > 0) {\n totalFlexUnits += newColumn.flex;\n computedWidth = 0;\n flexColumns.push(newColumn);\n } else {\n computedWidth = clamp(newColumn.width, newColumn.minWidth, newColumn.maxWidth);\n }\n widthAllocatedBeforeFlex += computedWidth;\n newColumn.computedWidth = computedWidth;\n }\n columnsLookup[columnField] = newColumn;\n });\n const initialFreeSpace = Math.max(viewportInnerWidth - widthAllocatedBeforeFlex, 0); // Allocate the remaining space to the flex columns\n\n if (totalFlexUnits > 0 && viewportInnerWidth > 0) {\n const computedColumnWidths = computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n });\n Object.keys(computedColumnWidths).forEach(field => {\n columnsLookup[field].computedWidth = computedColumnWidths[field].computedWidth;\n });\n }\n return _extends({}, rawState, {\n lookup: columnsLookup\n });\n};\nlet columnTypeWarnedOnce = false;\n/**\n * Apply the order and the dimensions of the initial state.\n * The columns not registered in `orderedFields` will be placed after the imported columns.\n */\n\nexport const applyInitialState = (columnsState, initialState) => {\n if (!initialState) {\n return columnsState;\n }\n const {\n orderedFields = [],\n dimensions = {}\n } = initialState;\n const columnsWithUpdatedDimensions = Object.keys(dimensions);\n if (columnsWithUpdatedDimensions.length === 0 && orderedFields.length === 0) {\n return columnsState;\n }\n const orderedFieldsLookup = {};\n const cleanOrderedFields = [];\n for (let i = 0; i < orderedFields.length; i += 1) {\n const field = orderedFields[i]; // Ignores the fields in the initialState that matches no field on the current column state\n\n if (columnsState.lookup[field]) {\n orderedFieldsLookup[field] = true;\n cleanOrderedFields.push(field);\n }\n }\n const newOrderedFields = cleanOrderedFields.length === 0 ? columnsState.all : [...cleanOrderedFields, ...columnsState.all.filter(field => !orderedFieldsLookup[field])];\n const newColumnLookup = _extends({}, columnsState.lookup);\n for (let i = 0; i < columnsWithUpdatedDimensions.length; i += 1) {\n const field = columnsWithUpdatedDimensions[i];\n const newColDef = _extends({}, newColumnLookup[field], {\n hasBeenResized: true\n });\n Object.entries(dimensions[field]).forEach(([key, value]) => {\n newColDef[key] = value === -1 ? Infinity : value;\n });\n newColumnLookup[field] = newColDef;\n }\n const newColumnsState = {\n all: newOrderedFields,\n lookup: newColumnLookup\n };\n return newColumnsState;\n};\n/**\n * @deprecated Should have been internal only, you can inline the logic.\n */\n\nexport const getGridColDef = (columnTypes, type) => {\n if (!type) {\n return columnTypes[DEFAULT_GRID_COL_TYPE_KEY];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!columnTypeWarnedOnce && !columnTypes[type]) {\n console.warn([`MUI: The column type \"${type}\" you are using is not supported.`, `Column type \"string\" is being used instead.`].join('\\n'));\n columnTypeWarnedOnce = true;\n }\n }\n if (!columnTypes[type]) {\n return columnTypes[DEFAULT_GRID_COL_TYPE_KEY];\n }\n return columnTypes[type];\n};\nexport const createColumnsState = ({\n apiRef,\n columnsToUpsert,\n initialState,\n columnTypes,\n currentColumnVisibilityModel = gridColumnVisibilityModelSelector(apiRef),\n shouldRegenColumnVisibilityModelFromColumns,\n keepOnlyColumnsToUpsert = false\n}) => {\n var _apiRef$current$getRo, _apiRef$current$getRo2, _apiRef$current, _apiRef$current$getRo3;\n const isInsideStateInitializer = !apiRef.current.state.columns;\n let columnsStateWithoutColumnVisibilityModel;\n if (isInsideStateInitializer) {\n columnsStateWithoutColumnVisibilityModel = {\n all: [],\n lookup: {}\n };\n } else {\n const currentState = gridColumnsSelector(apiRef.current.state);\n columnsStateWithoutColumnVisibilityModel = {\n all: keepOnlyColumnsToUpsert ? [] : [...currentState.all],\n lookup: _extends({}, currentState.lookup) // Will be cleaned later if keepOnlyColumnsToUpsert=true\n };\n }\n let columnsToKeep = {};\n if (keepOnlyColumnsToUpsert && !isInsideStateInitializer) {\n columnsToKeep = Object.keys(columnsStateWithoutColumnVisibilityModel.lookup).reduce((acc, key) => _extends({}, acc, {\n [key]: false\n }), {});\n }\n const columnsToUpsertLookup = {};\n columnsToUpsert.forEach(newColumn => {\n const {\n field\n } = newColumn;\n columnsToUpsertLookup[field] = true;\n columnsToKeep[field] = true;\n let existingState = columnsStateWithoutColumnVisibilityModel.lookup[field];\n if (existingState == null) {\n // New Column\n existingState = _extends({}, getGridColDef(columnTypes, newColumn.type), {\n // TODO v6: Inline `getGridColDef`\n field,\n hasBeenResized: false\n });\n columnsStateWithoutColumnVisibilityModel.all.push(field);\n } else if (keepOnlyColumnsToUpsert) {\n columnsStateWithoutColumnVisibilityModel.all.push(field);\n }\n let hasBeenResized = existingState.hasBeenResized;\n COLUMNS_DIMENSION_PROPERTIES.forEach(key => {\n if (newColumn[key] !== undefined) {\n hasBeenResized = true;\n if (newColumn[key] === -1) {\n newColumn[key] = Infinity;\n }\n }\n });\n columnsStateWithoutColumnVisibilityModel.lookup[field] = _extends({}, existingState, {\n hide: newColumn.hide == null ? false : newColumn.hide\n }, newColumn, {\n hasBeenResized\n });\n });\n if (keepOnlyColumnsToUpsert && !isInsideStateInitializer) {\n Object.keys(columnsStateWithoutColumnVisibilityModel.lookup).forEach(field => {\n if (!columnsToKeep[field]) {\n delete columnsStateWithoutColumnVisibilityModel.lookup[field];\n }\n });\n }\n const columnsLookupBeforePreProcessing = _extends({}, columnsStateWithoutColumnVisibilityModel.lookup);\n const columnsStateWithPreProcessing = apiRef.current.unstable_applyPipeProcessors('hydrateColumns', columnsStateWithoutColumnVisibilityModel); // TODO v6: remove the sync between the columns `hide` option and the model.\n\n let columnVisibilityModel = {};\n if (shouldRegenColumnVisibilityModelFromColumns) {\n let hasModelChanged = false;\n const newColumnVisibilityModel = _extends({}, currentColumnVisibilityModel);\n if (isInsideStateInitializer) {\n columnsStateWithPreProcessing.all.forEach(field => {\n newColumnVisibilityModel[field] = !columnsStateWithoutColumnVisibilityModel.lookup[field].hide;\n });\n } else if (keepOnlyColumnsToUpsert) {\n // At this point, `keepOnlyColumnsToUpsert` has a new meaning: keep the columns\n // passed via `columnToUpsert` + columns added by the pre-processors. We do the following\n // cleanup because a given column may have been removed from the `columns` prop but it still\n // exists in the state.\n Object.keys(newColumnVisibilityModel).forEach(field => {\n if (!columnsStateWithPreProcessing.lookup[field]) {\n delete newColumnVisibilityModel[field];\n hasModelChanged = true;\n }\n });\n }\n columnsStateWithPreProcessing.all.forEach(field => {\n // If neither the `columnsToUpsert` nor the pre-processors updated the column,\n // Then we don't want to update the visibility status of the column in the model.\n if (!columnsToUpsertLookup[field] && columnsLookupBeforePreProcessing[field] === columnsStateWithPreProcessing.lookup[field]) {\n return;\n } // We always assume that a column not in the model is visible by default. However, there's an\n // edge case where the column is not in the model but it also doesn't exist in the `columns`\n // prop, meaning that the column is being added. In that case, we assume that the column was\n // not visible before for it be added to the model.\n\n let isVisibleBefore = currentColumnVisibilityModel[field];\n if (isVisibleBefore === undefined) {\n if (isInsideStateInitializer) {\n isVisibleBefore = true;\n } else {\n const currentState = gridColumnsSelector(apiRef.current.state);\n isVisibleBefore = !!currentState.lookup[field];\n }\n }\n const isVisibleAfter = !columnsStateWithPreProcessing.lookup[field].hide;\n if (isVisibleAfter !== isVisibleBefore) {\n hasModelChanged = true;\n newColumnVisibilityModel[field] = isVisibleAfter;\n }\n });\n if (hasModelChanged || isInsideStateInitializer) {\n columnVisibilityModel = newColumnVisibilityModel;\n } else {\n columnVisibilityModel = currentColumnVisibilityModel;\n }\n } else {\n columnVisibilityModel = currentColumnVisibilityModel;\n }\n const columnsStateWithPortableColumns = applyInitialState(columnsStateWithPreProcessing, initialState);\n const columnsState = _extends({}, columnsStateWithPortableColumns, {\n columnVisibilityModel\n });\n return hydrateColumnsWidth(columnsState, (_apiRef$current$getRo = (_apiRef$current$getRo2 = (_apiRef$current = apiRef.current).getRootDimensions) == null ? void 0 : (_apiRef$current$getRo3 = _apiRef$current$getRo2.call(_apiRef$current)) == null ? void 0 : _apiRef$current$getRo3.viewportInnerSize.width) != null ? _apiRef$current$getRo : 0);\n};\nexport const mergeColumnsState = columnsState => state => _extends({}, state, {\n columns: columnsState\n});\nexport function getFirstNonSpannedColumnToRender({\n firstColumnToRender,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows\n}) {\n let firstNonSpannedColumnToRender = firstColumnToRender;\n for (let i = firstRowToRender; i < lastRowToRender; i += 1) {\n const row = visibleRows[i];\n if (row) {\n const rowId = visibleRows[i].id;\n const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, firstColumnToRender);\n if (cellColSpanInfo && cellColSpanInfo.spannedByColSpan) {\n firstNonSpannedColumnToRender = cellColSpanInfo.leftVisibleCellIndex;\n }\n }\n }\n return firstNonSpannedColumnToRender;\n}\nexport function getFirstColumnIndexToRender({\n firstColumnIndex,\n minColumnIndex,\n columnBuffer,\n firstRowToRender,\n lastRowToRender,\n apiRef,\n visibleRows\n}) {\n const initialFirstColumnToRender = Math.max(firstColumnIndex - columnBuffer, minColumnIndex);\n const firstColumnToRender = getFirstNonSpannedColumnToRender({\n firstColumnToRender: initialFirstColumnToRender,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows\n });\n return firstColumnToRender;\n}","map":{"version":3,"names":["_extends","DEFAULT_GRID_COL_TYPE_KEY","getGridDefaultColumnTypes","gridColumnsSelector","gridColumnVisibilityModelSelector","clamp","COLUMNS_DIMENSION_PROPERTIES","computeColumnTypes","customColumnTypes","mergedColumnTypes","Object","entries","forEach","colType","colTypeDef","extendType","computeFlexColumnsWidth","initialFreeSpace","totalFlexUnits","flexColumns","flexColumnsLookup","all","frozenFields","freeze","field","value","frozen","push","loopOverFlexItems","length","violationsLookup","min","max","remainingFreeSpace","flexUnits","totalViolation","computedWidth","flex","i","column","widthPerFlexUnit","minWidth","maxWidth","keys","hydrateColumnsWidth","rawState","viewportInnerWidth","columnsLookup","widthAllocatedBeforeFlex","columnField","newColumn","lookup","columnVisibilityModel","width","Math","computedColumnWidths","columnTypeWarnedOnce","applyInitialState","columnsState","initialState","orderedFields","dimensions","columnsWithUpdatedDimensions","orderedFieldsLookup","cleanOrderedFields","newOrderedFields","filter","newColumnLookup","newColDef","hasBeenResized","key","Infinity","newColumnsState","getGridColDef","columnTypes","type","process","env","NODE_ENV","console","warn","join","createColumnsState","apiRef","columnsToUpsert","currentColumnVisibilityModel","shouldRegenColumnVisibilityModelFromColumns","keepOnlyColumnsToUpsert","_apiRef$current$getRo","_apiRef$current$getRo2","_apiRef$current","_apiRef$current$getRo3","isInsideStateInitializer","current","state","columns","columnsStateWithoutColumnVisibilityModel","currentState","columnsToKeep","reduce","acc","columnsToUpsertLookup","existingState","undefined","hide","columnsLookupBeforePreProcessing","columnsStateWithPreProcessing","unstable_applyPipeProcessors","hasModelChanged","newColumnVisibilityModel","isVisibleBefore","isVisibleAfter","columnsStateWithPortableColumns","getRootDimensions","call","viewportInnerSize","mergeColumnsState","getFirstNonSpannedColumnToRender","firstColumnToRender","firstRowToRender","lastRowToRender","visibleRows","firstNonSpannedColumnToRender","row","rowId","id","cellColSpanInfo","unstable_getCellColSpanInfo","spannedByColSpan","leftVisibleCellIndex","getFirstColumnIndexToRender","firstColumnIndex","minColumnIndex","columnBuffer","initialFirstColumnToRender"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/columns/gridColumnsUtils.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { DEFAULT_GRID_COL_TYPE_KEY, getGridDefaultColumnTypes } from '../../../colDef';\nimport { gridColumnsSelector, gridColumnVisibilityModelSelector } from './gridColumnsSelector';\nimport { clamp } from '../../../utils/utils';\nexport const COLUMNS_DIMENSION_PROPERTIES = ['maxWidth', 'minWidth', 'width', 'flex'];\nexport const computeColumnTypes = (customColumnTypes = {}) => {\n const mergedColumnTypes = _extends({}, getGridDefaultColumnTypes());\n\n Object.entries(customColumnTypes).forEach(([colType, colTypeDef]) => {\n if (mergedColumnTypes[colType]) {\n mergedColumnTypes[colType] = _extends({}, mergedColumnTypes[colType], colTypeDef);\n } else {\n mergedColumnTypes[colType] = _extends({}, mergedColumnTypes[colTypeDef.extendType || DEFAULT_GRID_COL_TYPE_KEY], colTypeDef);\n }\n });\n return mergedColumnTypes;\n};\n/**\n * Computes width for flex columns.\n * Based on CSS Flexbox specification:\n * https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n */\n\nexport function computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n}) {\n const flexColumnsLookup = {\n all: {},\n frozenFields: [],\n freeze: field => {\n const value = flexColumnsLookup.all[field];\n\n if (value && value.frozen !== true) {\n flexColumnsLookup.all[field].frozen = true;\n flexColumnsLookup.frozenFields.push(field);\n }\n }\n }; // Step 5 of https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n\n function loopOverFlexItems() {\n // 5a: If all the flex items on the line are frozen, free space has been distributed.\n if (flexColumnsLookup.frozenFields.length === flexColumns.length) {\n return;\n }\n\n const violationsLookup = {\n min: {},\n max: {}\n };\n let remainingFreeSpace = initialFreeSpace;\n let flexUnits = totalFlexUnits;\n let totalViolation = 0; // 5b: Calculate the remaining free space\n\n flexColumnsLookup.frozenFields.forEach(field => {\n remainingFreeSpace -= flexColumnsLookup.all[field].computedWidth;\n flexUnits -= flexColumnsLookup.all[field].flex;\n });\n\n for (let i = 0; i < flexColumns.length; i += 1) {\n const column = flexColumns[i];\n\n if (flexColumnsLookup.all[column.field] && flexColumnsLookup.all[column.field].frozen === true) {\n // eslint-disable-next-line no-continue\n continue;\n } // 5c: Distribute remaining free space proportional to the flex factors\n\n\n const widthPerFlexUnit = remainingFreeSpace / flexUnits;\n let computedWidth = widthPerFlexUnit * column.flex; // 5d: Fix min/max violations\n\n if (computedWidth < column.minWidth) {\n totalViolation += column.minWidth - computedWidth;\n computedWidth = column.minWidth;\n violationsLookup.min[column.field] = true;\n } else if (computedWidth > column.maxWidth) {\n totalViolation += column.maxWidth - computedWidth;\n computedWidth = column.maxWidth;\n violationsLookup.max[column.field] = true;\n }\n\n flexColumnsLookup.all[column.field] = {\n frozen: false,\n computedWidth,\n flex: column.flex\n };\n } // 5e: Freeze over-flexed items\n\n\n if (totalViolation < 0) {\n // Freeze all the items with max violations\n Object.keys(violationsLookup.max).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else if (totalViolation > 0) {\n // Freeze all the items with min violations\n Object.keys(violationsLookup.min).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else {\n // Freeze all items\n flexColumns.forEach(({\n field\n }) => {\n flexColumnsLookup.freeze(field);\n });\n } // 5f: Return to the start of this loop\n\n\n loopOverFlexItems();\n }\n\n loopOverFlexItems();\n return flexColumnsLookup.all;\n}\n/**\n * Compute the `computedWidth` (ie: the width the column should have during rendering) based on the `width` / `flex` / `minWidth` / `maxWidth` properties of `GridColDef`.\n * The columns already have been merged with there `type` default values for `minWidth`, `maxWidth` and `width`, thus the `!` for those properties below.\n * TODO: Unit test this function in depth and only keep basic cases for the whole grid testing.\n * TODO: Improve the `GridColDef` typing to reflect the fact that `minWidth` / `maxWidth` and `width` can't be null after the merge with the `type` default values.\n */\n\nexport const hydrateColumnsWidth = (rawState, viewportInnerWidth) => {\n const columnsLookup = {};\n let totalFlexUnits = 0;\n let widthAllocatedBeforeFlex = 0;\n const flexColumns = []; // For the non-flex columns, compute their width\n // For the flex columns, compute there minimum width and how much width must be allocated during the flex allocation\n\n rawState.all.forEach(columnField => {\n const newColumn = _extends({}, rawState.lookup[columnField]);\n\n if (rawState.columnVisibilityModel[columnField] === false) {\n newColumn.computedWidth = 0;\n } else {\n let computedWidth;\n\n if (newColumn.flex && newColumn.flex > 0) {\n totalFlexUnits += newColumn.flex;\n computedWidth = 0;\n flexColumns.push(newColumn);\n } else {\n computedWidth = clamp(newColumn.width, newColumn.minWidth, newColumn.maxWidth);\n }\n\n widthAllocatedBeforeFlex += computedWidth;\n newColumn.computedWidth = computedWidth;\n }\n\n columnsLookup[columnField] = newColumn;\n });\n const initialFreeSpace = Math.max(viewportInnerWidth - widthAllocatedBeforeFlex, 0); // Allocate the remaining space to the flex columns\n\n if (totalFlexUnits > 0 && viewportInnerWidth > 0) {\n const computedColumnWidths = computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n });\n Object.keys(computedColumnWidths).forEach(field => {\n columnsLookup[field].computedWidth = computedColumnWidths[field].computedWidth;\n });\n }\n\n return _extends({}, rawState, {\n lookup: columnsLookup\n });\n};\nlet columnTypeWarnedOnce = false;\n/**\n * Apply the order and the dimensions of the initial state.\n * The columns not registered in `orderedFields` will be placed after the imported columns.\n */\n\nexport const applyInitialState = (columnsState, initialState) => {\n if (!initialState) {\n return columnsState;\n }\n\n const {\n orderedFields = [],\n dimensions = {}\n } = initialState;\n const columnsWithUpdatedDimensions = Object.keys(dimensions);\n\n if (columnsWithUpdatedDimensions.length === 0 && orderedFields.length === 0) {\n return columnsState;\n }\n\n const orderedFieldsLookup = {};\n const cleanOrderedFields = [];\n\n for (let i = 0; i < orderedFields.length; i += 1) {\n const field = orderedFields[i]; // Ignores the fields in the initialState that matches no field on the current column state\n\n if (columnsState.lookup[field]) {\n orderedFieldsLookup[field] = true;\n cleanOrderedFields.push(field);\n }\n }\n\n const newOrderedFields = cleanOrderedFields.length === 0 ? columnsState.all : [...cleanOrderedFields, ...columnsState.all.filter(field => !orderedFieldsLookup[field])];\n\n const newColumnLookup = _extends({}, columnsState.lookup);\n\n for (let i = 0; i < columnsWithUpdatedDimensions.length; i += 1) {\n const field = columnsWithUpdatedDimensions[i];\n\n const newColDef = _extends({}, newColumnLookup[field], {\n hasBeenResized: true\n });\n\n Object.entries(dimensions[field]).forEach(([key, value]) => {\n newColDef[key] = value === -1 ? Infinity : value;\n });\n newColumnLookup[field] = newColDef;\n }\n\n const newColumnsState = {\n all: newOrderedFields,\n lookup: newColumnLookup\n };\n return newColumnsState;\n};\n/**\n * @deprecated Should have been internal only, you can inline the logic.\n */\n\nexport const getGridColDef = (columnTypes, type) => {\n if (!type) {\n return columnTypes[DEFAULT_GRID_COL_TYPE_KEY];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!columnTypeWarnedOnce && !columnTypes[type]) {\n console.warn([`MUI: The column type \"${type}\" you are using is not supported.`, `Column type \"string\" is being used instead.`].join('\\n'));\n columnTypeWarnedOnce = true;\n }\n }\n\n if (!columnTypes[type]) {\n return columnTypes[DEFAULT_GRID_COL_TYPE_KEY];\n }\n\n return columnTypes[type];\n};\nexport const createColumnsState = ({\n apiRef,\n columnsToUpsert,\n initialState,\n columnTypes,\n currentColumnVisibilityModel = gridColumnVisibilityModelSelector(apiRef),\n shouldRegenColumnVisibilityModelFromColumns,\n keepOnlyColumnsToUpsert = false\n}) => {\n var _apiRef$current$getRo, _apiRef$current$getRo2, _apiRef$current, _apiRef$current$getRo3;\n\n const isInsideStateInitializer = !apiRef.current.state.columns;\n let columnsStateWithoutColumnVisibilityModel;\n\n if (isInsideStateInitializer) {\n columnsStateWithoutColumnVisibilityModel = {\n all: [],\n lookup: {}\n };\n } else {\n const currentState = gridColumnsSelector(apiRef.current.state);\n columnsStateWithoutColumnVisibilityModel = {\n all: keepOnlyColumnsToUpsert ? [] : [...currentState.all],\n lookup: _extends({}, currentState.lookup) // Will be cleaned later if keepOnlyColumnsToUpsert=true\n\n };\n }\n\n let columnsToKeep = {};\n\n if (keepOnlyColumnsToUpsert && !isInsideStateInitializer) {\n columnsToKeep = Object.keys(columnsStateWithoutColumnVisibilityModel.lookup).reduce((acc, key) => _extends({}, acc, {\n [key]: false\n }), {});\n }\n\n const columnsToUpsertLookup = {};\n columnsToUpsert.forEach(newColumn => {\n const {\n field\n } = newColumn;\n columnsToUpsertLookup[field] = true;\n columnsToKeep[field] = true;\n let existingState = columnsStateWithoutColumnVisibilityModel.lookup[field];\n\n if (existingState == null) {\n // New Column\n existingState = _extends({}, getGridColDef(columnTypes, newColumn.type), {\n // TODO v6: Inline `getGridColDef`\n field,\n hasBeenResized: false\n });\n columnsStateWithoutColumnVisibilityModel.all.push(field);\n } else if (keepOnlyColumnsToUpsert) {\n columnsStateWithoutColumnVisibilityModel.all.push(field);\n }\n\n let hasBeenResized = existingState.hasBeenResized;\n COLUMNS_DIMENSION_PROPERTIES.forEach(key => {\n if (newColumn[key] !== undefined) {\n hasBeenResized = true;\n\n if (newColumn[key] === -1) {\n newColumn[key] = Infinity;\n }\n }\n });\n columnsStateWithoutColumnVisibilityModel.lookup[field] = _extends({}, existingState, {\n hide: newColumn.hide == null ? false : newColumn.hide\n }, newColumn, {\n hasBeenResized\n });\n });\n\n if (keepOnlyColumnsToUpsert && !isInsideStateInitializer) {\n Object.keys(columnsStateWithoutColumnVisibilityModel.lookup).forEach(field => {\n if (!columnsToKeep[field]) {\n delete columnsStateWithoutColumnVisibilityModel.lookup[field];\n }\n });\n }\n\n const columnsLookupBeforePreProcessing = _extends({}, columnsStateWithoutColumnVisibilityModel.lookup);\n\n const columnsStateWithPreProcessing = apiRef.current.unstable_applyPipeProcessors('hydrateColumns', columnsStateWithoutColumnVisibilityModel); // TODO v6: remove the sync between the columns `hide` option and the model.\n\n let columnVisibilityModel = {};\n\n if (shouldRegenColumnVisibilityModelFromColumns) {\n let hasModelChanged = false;\n\n const newColumnVisibilityModel = _extends({}, currentColumnVisibilityModel);\n\n if (isInsideStateInitializer) {\n columnsStateWithPreProcessing.all.forEach(field => {\n newColumnVisibilityModel[field] = !columnsStateWithoutColumnVisibilityModel.lookup[field].hide;\n });\n } else if (keepOnlyColumnsToUpsert) {\n // At this point, `keepOnlyColumnsToUpsert` has a new meaning: keep the columns\n // passed via `columnToUpsert` + columns added by the pre-processors. We do the following\n // cleanup because a given column may have been removed from the `columns` prop but it still\n // exists in the state.\n Object.keys(newColumnVisibilityModel).forEach(field => {\n if (!columnsStateWithPreProcessing.lookup[field]) {\n delete newColumnVisibilityModel[field];\n hasModelChanged = true;\n }\n });\n }\n\n columnsStateWithPreProcessing.all.forEach(field => {\n // If neither the `columnsToUpsert` nor the pre-processors updated the column,\n // Then we don't want to update the visibility status of the column in the model.\n if (!columnsToUpsertLookup[field] && columnsLookupBeforePreProcessing[field] === columnsStateWithPreProcessing.lookup[field]) {\n return;\n } // We always assume that a column not in the model is visible by default. However, there's an\n // edge case where the column is not in the model but it also doesn't exist in the `columns`\n // prop, meaning that the column is being added. In that case, we assume that the column was\n // not visible before for it be added to the model.\n\n\n let isVisibleBefore = currentColumnVisibilityModel[field];\n\n if (isVisibleBefore === undefined) {\n if (isInsideStateInitializer) {\n isVisibleBefore = true;\n } else {\n const currentState = gridColumnsSelector(apiRef.current.state);\n isVisibleBefore = !!currentState.lookup[field];\n }\n }\n\n const isVisibleAfter = !columnsStateWithPreProcessing.lookup[field].hide;\n\n if (isVisibleAfter !== isVisibleBefore) {\n hasModelChanged = true;\n newColumnVisibilityModel[field] = isVisibleAfter;\n }\n });\n\n if (hasModelChanged || isInsideStateInitializer) {\n columnVisibilityModel = newColumnVisibilityModel;\n } else {\n columnVisibilityModel = currentColumnVisibilityModel;\n }\n } else {\n columnVisibilityModel = currentColumnVisibilityModel;\n }\n\n const columnsStateWithPortableColumns = applyInitialState(columnsStateWithPreProcessing, initialState);\n\n const columnsState = _extends({}, columnsStateWithPortableColumns, {\n columnVisibilityModel\n });\n\n return hydrateColumnsWidth(columnsState, (_apiRef$current$getRo = (_apiRef$current$getRo2 = (_apiRef$current = apiRef.current).getRootDimensions) == null ? void 0 : (_apiRef$current$getRo3 = _apiRef$current$getRo2.call(_apiRef$current)) == null ? void 0 : _apiRef$current$getRo3.viewportInnerSize.width) != null ? _apiRef$current$getRo : 0);\n};\nexport const mergeColumnsState = columnsState => state => _extends({}, state, {\n columns: columnsState\n});\nexport function getFirstNonSpannedColumnToRender({\n firstColumnToRender,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows\n}) {\n let firstNonSpannedColumnToRender = firstColumnToRender;\n\n for (let i = firstRowToRender; i < lastRowToRender; i += 1) {\n const row = visibleRows[i];\n\n if (row) {\n const rowId = visibleRows[i].id;\n const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, firstColumnToRender);\n\n if (cellColSpanInfo && cellColSpanInfo.spannedByColSpan) {\n firstNonSpannedColumnToRender = cellColSpanInfo.leftVisibleCellIndex;\n }\n }\n }\n\n return firstNonSpannedColumnToRender;\n}\nexport function getFirstColumnIndexToRender({\n firstColumnIndex,\n minColumnIndex,\n columnBuffer,\n firstRowToRender,\n lastRowToRender,\n apiRef,\n visibleRows\n}) {\n const initialFirstColumnToRender = Math.max(firstColumnIndex - columnBuffer, minColumnIndex);\n const firstColumnToRender = getFirstNonSpannedColumnToRender({\n firstColumnToRender: initialFirstColumnToRender,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows\n });\n return firstColumnToRender;\n}"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}