{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridLogger, useGridApiMethod, useGridApiEventHandler, useGridSelector } from '../../utils';\nimport { gridPageSizeSelector } from './gridPaginationSelector';\nimport { gridDensityRowHeightSelector } from '../density';\nimport { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';\nimport { calculatePinnedRowsHeight } from '../rows/gridRowsUtils';\nexport const defaultPageSize = autoPageSize => autoPageSize ? 0 : 100;\nconst mergeStateWithPageSize = pageSize => state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n pageSize\n })\n});\n/**\n * @requires useGridDimensions (event) - can be after\n */\n\nexport const useGridPageSize = (apiRef, props) => {\n var _props$initialState2, _props$initialState2$;\n const logger = useGridLogger(apiRef, 'useGridPageSize');\n const rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);\n apiRef.current.unstable_registerControlState({\n stateId: 'pageSize',\n propModel: props.pageSize,\n propOnChange: props.onPageSizeChange,\n stateSelector: gridPageSizeSelector,\n changeEvent: 'pageSizeChange'\n });\n /**\n * API METHODS\n */\n\n const setPageSize = React.useCallback(pageSize => {\n if (pageSize === gridPageSizeSelector(apiRef)) {\n return;\n }\n logger.debug(`Setting page size to ${pageSize}`);\n apiRef.current.setState(mergeStateWithPageSize(pageSize));\n apiRef.current.forceUpdate();\n }, [apiRef, logger]);\n const pageSizeApi = {\n setPageSize\n };\n useGridApiMethod(apiRef, pageSizeApi, 'GridPageSizeApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n var _props$initialState, _props$initialState$p;\n const pageSizeToExport = gridPageSizeSelector(apiRef);\n const shouldExportPageSize =\n // Always export if the `exportOnlyDirtyModels` property is activated\n !context.exportOnlyDirtyModels ||\n // Always export if the page size is controlled\n props.pageSize != null ||\n // Always export if the page size has been initialized\n ((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.pageSize) != null ||\n // Export if the page size is not equal to the default value\n pageSizeToExport !== defaultPageSize(props.autoPageSize);\n if (!shouldExportPageSize) {\n return prevState;\n }\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n pageSize: pageSizeToExport\n })\n });\n }, [apiRef, props.pageSize, (_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.pagination) == null ? void 0 : _props$initialState2$.pageSize, props.autoPageSize]);\n /**\n * TODO: Add error if `prop.autoHeight = true`\n */\n\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n const pageSize = (_context$stateToResto = context.stateToRestore.pagination) == null ? void 0 : _context$stateToResto.pageSize;\n if (pageSize != null) {\n apiRef.current.setState(mergeStateWithPageSize(pageSize));\n }\n return params;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n /**\n * EVENTS\n */\n\n const handleUpdateAutoPageSize = React.useCallback(() => {\n const dimensions = apiRef.current.getRootDimensions();\n if (!props.autoPageSize || !dimensions) {\n return;\n }\n const pinnedRowsHeight = calculatePinnedRowsHeight(apiRef);\n const maximumPageSizeWithoutScrollBar = Math.floor((dimensions.viewportInnerSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom) / rowHeight);\n apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);\n }, [apiRef, props.autoPageSize, rowHeight]);\n useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.pageSize != null && !props.autoPageSize) {\n apiRef.current.setPageSize(props.pageSize);\n }\n }, [apiRef, props.autoPageSize, props.pageSize]);\n React.useEffect(() => {\n handleUpdateAutoPageSize();\n }, [handleUpdateAutoPageSize]);\n};","map":{"version":3,"names":["_extends","React","useGridLogger","useGridApiMethod","useGridApiEventHandler","useGridSelector","gridPageSizeSelector","gridDensityRowHeightSelector","useGridRegisterPipeProcessor","calculatePinnedRowsHeight","defaultPageSize","autoPageSize","mergeStateWithPageSize","pageSize","state","pagination","useGridPageSize","apiRef","props","_props$initialState2","_props$initialState2$","logger","rowHeight","current","unstable_registerControlState","stateId","propModel","propOnChange","onPageSizeChange","stateSelector","changeEvent","setPageSize","useCallback","debug","setState","forceUpdate","pageSizeApi","stateExportPreProcessing","prevState","context","_props$initialState","_props$initialState$p","pageSizeToExport","shouldExportPageSize","exportOnlyDirtyModels","initialState","stateRestorePreProcessing","params","_context$stateToResto","stateToRestore","handleUpdateAutoPageSize","dimensions","getRootDimensions","pinnedRowsHeight","maximumPageSizeWithoutScrollBar","Math","floor","viewportInnerSize","height","top","bottom","useEffect"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPageSize.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridLogger, useGridApiMethod, useGridApiEventHandler, useGridSelector } from '../../utils';\nimport { gridPageSizeSelector } from './gridPaginationSelector';\nimport { gridDensityRowHeightSelector } from '../density';\nimport { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';\nimport { calculatePinnedRowsHeight } from '../rows/gridRowsUtils';\nexport const defaultPageSize = autoPageSize => autoPageSize ? 0 : 100;\n\nconst mergeStateWithPageSize = pageSize => state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n pageSize\n })\n});\n/**\n * @requires useGridDimensions (event) - can be after\n */\n\n\nexport const useGridPageSize = (apiRef, props) => {\n var _props$initialState2, _props$initialState2$;\n\n const logger = useGridLogger(apiRef, 'useGridPageSize');\n const rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);\n apiRef.current.unstable_registerControlState({\n stateId: 'pageSize',\n propModel: props.pageSize,\n propOnChange: props.onPageSizeChange,\n stateSelector: gridPageSizeSelector,\n changeEvent: 'pageSizeChange'\n });\n /**\n * API METHODS\n */\n\n const setPageSize = React.useCallback(pageSize => {\n if (pageSize === gridPageSizeSelector(apiRef)) {\n return;\n }\n\n logger.debug(`Setting page size to ${pageSize}`);\n apiRef.current.setState(mergeStateWithPageSize(pageSize));\n apiRef.current.forceUpdate();\n }, [apiRef, logger]);\n const pageSizeApi = {\n setPageSize\n };\n useGridApiMethod(apiRef, pageSizeApi, 'GridPageSizeApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n var _props$initialState, _props$initialState$p;\n\n const pageSizeToExport = gridPageSizeSelector(apiRef);\n const shouldExportPageSize = // Always export if the `exportOnlyDirtyModels` property is activated\n !context.exportOnlyDirtyModels || // Always export if the page size is controlled\n props.pageSize != null || // Always export if the page size has been initialized\n ((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.pageSize) != null || // Export if the page size is not equal to the default value\n pageSizeToExport !== defaultPageSize(props.autoPageSize);\n\n if (!shouldExportPageSize) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n pageSize: pageSizeToExport\n })\n });\n }, [apiRef, props.pageSize, (_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.pagination) == null ? void 0 : _props$initialState2$.pageSize, props.autoPageSize]);\n /**\n * TODO: Add error if `prop.autoHeight = true`\n */\n\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n\n const pageSize = (_context$stateToResto = context.stateToRestore.pagination) == null ? void 0 : _context$stateToResto.pageSize;\n\n if (pageSize != null) {\n apiRef.current.setState(mergeStateWithPageSize(pageSize));\n }\n\n return params;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n /**\n * EVENTS\n */\n\n const handleUpdateAutoPageSize = React.useCallback(() => {\n const dimensions = apiRef.current.getRootDimensions();\n\n if (!props.autoPageSize || !dimensions) {\n return;\n }\n\n const pinnedRowsHeight = calculatePinnedRowsHeight(apiRef);\n const maximumPageSizeWithoutScrollBar = Math.floor((dimensions.viewportInnerSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom) / rowHeight);\n apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);\n }, [apiRef, props.autoPageSize, rowHeight]);\n useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.pageSize != null && !props.autoPageSize) {\n apiRef.current.setPageSize(props.pageSize);\n }\n }, [apiRef, props.autoPageSize, props.pageSize]);\n React.useEffect(() => {\n handleUpdateAutoPageSize();\n }, [handleUpdateAutoPageSize]);\n};"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}