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

1 line
28 KiB
JSON

{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { ownerDocument } from '@mui/material/utils';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { isNavigationKey } from '../../../utils/keyboardUtils';\nimport { gridFocusCellSelector } from './gridFocusStateSelector';\nimport { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';\nimport { getVisibleRows } from '../../utils/useGridVisibleRows';\nimport { clamp } from '../../../utils/utils';\nexport const focusStateInitializer = state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n },\n tabIndex: {\n cell: null,\n columnHeader: null\n }\n});\n/**\n * @requires useGridParamsApi (method)\n * @requires useGridRows (method)\n * @requires useGridEditing (event)\n */\n\nexport const useGridFocus = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridFocus');\n const lastClickedCell = React.useRef(null);\n const publishCellFocusOut = React.useCallback((cell, event) => {\n if (cell) {\n // The row might have been deleted\n if (apiRef.current.getRow(cell.id)) {\n apiRef.current.publishEvent('cellFocusOut', apiRef.current.getCellParams(cell.id, cell.field), event);\n }\n }\n }, [apiRef]);\n const setCellFocus = React.useCallback((id, field) => {\n const focusedCell = gridFocusCellSelector(apiRef);\n if ((focusedCell == null ? void 0 : focusedCell.id) === id && (focusedCell == null ? void 0 : focusedCell.field) === field) {\n return;\n }\n apiRef.current.setState(state => {\n logger.debug(`Focusing on cell with id=${id} and field=${field}`);\n return _extends({}, state, {\n tabIndex: {\n cell: {\n id,\n field\n },\n columnHeader: null\n },\n focus: {\n cell: {\n id,\n field\n },\n columnHeader: null\n }\n });\n });\n apiRef.current.forceUpdate(); // The row might have been deleted\n\n if (!apiRef.current.getRow(id)) {\n return;\n }\n if (focusedCell) {\n // There's a focused cell but another cell was clicked\n // Publishes an event to notify that the focus was lost\n publishCellFocusOut(focusedCell, {});\n }\n apiRef.current.publishEvent('cellFocusIn', apiRef.current.getCellParams(id, field));\n }, [apiRef, logger, publishCellFocusOut]);\n const setColumnHeaderFocus = React.useCallback((field, event = {}) => {\n const cell = gridFocusCellSelector(apiRef);\n publishCellFocusOut(cell, event);\n apiRef.current.setState(state => {\n logger.debug(`Focusing on column header with colIndex=${field}`);\n return _extends({}, state, {\n tabIndex: {\n columnHeader: {\n field\n },\n cell: null\n },\n focus: {\n columnHeader: {\n field\n },\n cell: null\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, logger, publishCellFocusOut]);\n const moveFocusToRelativeCell = React.useCallback((id, field, direction) => {\n let columnIndexToFocus = apiRef.current.getColumnIndex(field);\n let rowIndexToFocus = apiRef.current.getRowIndexRelativeToVisibleRows(id);\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n if (direction === 'right') {\n columnIndexToFocus += 1;\n } else if (direction === 'left') {\n columnIndexToFocus -= 1;\n } else {\n rowIndexToFocus += 1;\n }\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n if (columnIndexToFocus >= visibleColumns.length) {\n // Go to next row if we are after the last column\n rowIndexToFocus += 1;\n if (rowIndexToFocus < currentPage.rows.length) {\n // Go to first column of the next row if there's one more row\n columnIndexToFocus = 0;\n }\n } else if (columnIndexToFocus < 0) {\n // Go to previous row if we are before the first column\n rowIndexToFocus -= 1;\n if (rowIndexToFocus >= 0) {\n // Go to last column of the previous if there's one more row\n columnIndexToFocus = visibleColumns.length - 1;\n }\n }\n rowIndexToFocus = clamp(rowIndexToFocus, 0, currentPage.rows.length - 1);\n const rowToFocus = currentPage.rows[rowIndexToFocus];\n const colSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowToFocus.id, columnIndexToFocus);\n if (colSpanInfo && colSpanInfo.spannedByColSpan) {\n if (direction === 'left' || direction === 'below') {\n columnIndexToFocus = colSpanInfo.leftVisibleCellIndex;\n } else if (direction === 'right') {\n columnIndexToFocus = colSpanInfo.rightVisibleCellIndex;\n }\n }\n columnIndexToFocus = clamp(columnIndexToFocus, 0, visibleColumns.length - 1);\n const columnToFocus = visibleColumns[columnIndexToFocus];\n apiRef.current.setCellFocus(rowToFocus.id, columnToFocus.field);\n }, [apiRef, props.pagination, props.paginationMode]);\n const handleCellDoubleClick = React.useCallback(({\n id,\n field\n }) => {\n apiRef.current.setCellFocus(id, field);\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // GRID_CELL_NAVIGATION_KEY_DOWN handles the focus on Enter, Tab and navigation keys\n if (event.key === 'Enter' || event.key === 'Tab' || isNavigationKey(event.key)) {\n return;\n }\n apiRef.current.setCellFocus(params.id, params.field);\n }, [apiRef]);\n const handleColumnHeaderFocus = React.useCallback(({\n field\n }, event) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n apiRef.current.setColumnHeaderFocus(field, event);\n }, [apiRef]);\n const handleBlur = React.useCallback(() => {\n logger.debug(`Clearing focus`);\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n }, [logger, apiRef]);\n const handleCellMouseDown = React.useCallback(params => {\n lastClickedCell.current = params;\n }, []);\n const handleDocumentClick = React.useCallback(event => {\n const cellParams = lastClickedCell.current;\n lastClickedCell.current = null;\n const focusedCell = gridFocusCellSelector(apiRef);\n if (!focusedCell) {\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n }\n return;\n }\n if ((cellParams == null ? void 0 : cellParams.id) === focusedCell.id && (cellParams == null ? void 0 : cellParams.field) === focusedCell.field) {\n return;\n }\n const cellElement = apiRef.current.getCellElement(focusedCell.id, focusedCell.field);\n if (cellElement != null && cellElement.contains(event.target)) {\n return;\n }\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n } else {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n apiRef.current.forceUpdate(); // There's a focused cell but another element (not a cell) was clicked\n // Publishes an event to notify that the focus was lost\n\n publishCellFocusOut(focusedCell, event);\n }\n }, [apiRef, publishCellFocusOut]);\n const handleCellModeChange = React.useCallback(params => {\n if (params.cellMode === 'view') {\n return;\n }\n const cell = gridFocusCellSelector(apiRef);\n if ((cell == null ? void 0 : cell.id) !== params.id || (cell == null ? void 0 : cell.field) !== params.field) {\n apiRef.current.setCellFocus(params.id, params.field);\n }\n }, [apiRef]);\n const handleRowSet = React.useCallback(() => {\n const cell = gridFocusCellSelector(apiRef); // If the focused cell is in a row which does not exist anymore, then remove the focus\n\n if (cell && !apiRef.current.getRow(cell.id)) {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n }\n }, [apiRef]);\n useGridApiMethod(apiRef, {\n setCellFocus,\n setColumnHeaderFocus,\n unstable_moveFocusToRelativeCell: moveFocusToRelativeCell\n }, 'GridFocusApi');\n React.useEffect(() => {\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n doc.addEventListener('click', handleDocumentClick);\n return () => {\n doc.removeEventListener('click', handleDocumentClick);\n };\n }, [apiRef, handleDocumentClick]);\n useGridApiEventHandler(apiRef, 'columnHeaderBlur', handleBlur);\n useGridApiEventHandler(apiRef, 'cellDoubleClick', handleCellDoubleClick);\n useGridApiEventHandler(apiRef, 'cellMouseDown', handleCellMouseDown);\n useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);\n useGridApiEventHandler(apiRef, 'cellModeChange', handleCellModeChange);\n useGridApiEventHandler(apiRef, 'columnHeaderFocus', handleColumnHeaderFocus);\n useGridApiEventHandler(apiRef, 'rowsSet', handleRowSet);\n};","map":{"version":3,"names":["_extends","React","ownerDocument","useGridApiMethod","useGridLogger","useGridApiEventHandler","isNavigationKey","gridFocusCellSelector","gridVisibleColumnDefinitionsSelector","getVisibleRows","clamp","focusStateInitializer","state","focus","cell","columnHeader","tabIndex","useGridFocus","apiRef","props","logger","lastClickedCell","useRef","publishCellFocusOut","useCallback","event","current","getRow","id","publishEvent","getCellParams","field","setCellFocus","focusedCell","setState","debug","forceUpdate","setColumnHeaderFocus","moveFocusToRelativeCell","direction","columnIndexToFocus","getColumnIndex","rowIndexToFocus","getRowIndexRelativeToVisibleRows","visibleColumns","currentPage","pagination","paginationMode","length","rows","rowToFocus","colSpanInfo","unstable_getCellColSpanInfo","spannedByColSpan","leftVisibleCellIndex","rightVisibleCellIndex","columnToFocus","handleCellDoubleClick","handleCellKeyDown","params","key","handleColumnHeaderFocus","target","currentTarget","handleBlur","handleCellMouseDown","handleDocumentClick","cellParams","cellElement","getCellElement","contains","handleCellModeChange","cellMode","handleRowSet","unstable_moveFocusToRelativeCell","useEffect","doc","rootElementRef","addEventListener","removeEventListener"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/focus/useGridFocus.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { ownerDocument } from '@mui/material/utils';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { isNavigationKey } from '../../../utils/keyboardUtils';\nimport { gridFocusCellSelector } from './gridFocusStateSelector';\nimport { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';\nimport { getVisibleRows } from '../../utils/useGridVisibleRows';\nimport { clamp } from '../../../utils/utils';\nexport const focusStateInitializer = state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n },\n tabIndex: {\n cell: null,\n columnHeader: null\n }\n});\n/**\n * @requires useGridParamsApi (method)\n * @requires useGridRows (method)\n * @requires useGridEditing (event)\n */\n\nexport const useGridFocus = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridFocus');\n const lastClickedCell = React.useRef(null);\n const publishCellFocusOut = React.useCallback((cell, event) => {\n if (cell) {\n // The row might have been deleted\n if (apiRef.current.getRow(cell.id)) {\n apiRef.current.publishEvent('cellFocusOut', apiRef.current.getCellParams(cell.id, cell.field), event);\n }\n }\n }, [apiRef]);\n const setCellFocus = React.useCallback((id, field) => {\n const focusedCell = gridFocusCellSelector(apiRef);\n\n if ((focusedCell == null ? void 0 : focusedCell.id) === id && (focusedCell == null ? void 0 : focusedCell.field) === field) {\n return;\n }\n\n apiRef.current.setState(state => {\n logger.debug(`Focusing on cell with id=${id} and field=${field}`);\n return _extends({}, state, {\n tabIndex: {\n cell: {\n id,\n field\n },\n columnHeader: null\n },\n focus: {\n cell: {\n id,\n field\n },\n columnHeader: null\n }\n });\n });\n apiRef.current.forceUpdate(); // The row might have been deleted\n\n if (!apiRef.current.getRow(id)) {\n return;\n }\n\n if (focusedCell) {\n // There's a focused cell but another cell was clicked\n // Publishes an event to notify that the focus was lost\n publishCellFocusOut(focusedCell, {});\n }\n\n apiRef.current.publishEvent('cellFocusIn', apiRef.current.getCellParams(id, field));\n }, [apiRef, logger, publishCellFocusOut]);\n const setColumnHeaderFocus = React.useCallback((field, event = {}) => {\n const cell = gridFocusCellSelector(apiRef);\n publishCellFocusOut(cell, event);\n apiRef.current.setState(state => {\n logger.debug(`Focusing on column header with colIndex=${field}`);\n return _extends({}, state, {\n tabIndex: {\n columnHeader: {\n field\n },\n cell: null\n },\n focus: {\n columnHeader: {\n field\n },\n cell: null\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, logger, publishCellFocusOut]);\n const moveFocusToRelativeCell = React.useCallback((id, field, direction) => {\n let columnIndexToFocus = apiRef.current.getColumnIndex(field);\n let rowIndexToFocus = apiRef.current.getRowIndexRelativeToVisibleRows(id);\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n\n if (direction === 'right') {\n columnIndexToFocus += 1;\n } else if (direction === 'left') {\n columnIndexToFocus -= 1;\n } else {\n rowIndexToFocus += 1;\n }\n\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n\n if (columnIndexToFocus >= visibleColumns.length) {\n // Go to next row if we are after the last column\n rowIndexToFocus += 1;\n\n if (rowIndexToFocus < currentPage.rows.length) {\n // Go to first column of the next row if there's one more row\n columnIndexToFocus = 0;\n }\n } else if (columnIndexToFocus < 0) {\n // Go to previous row if we are before the first column\n rowIndexToFocus -= 1;\n\n if (rowIndexToFocus >= 0) {\n // Go to last column of the previous if there's one more row\n columnIndexToFocus = visibleColumns.length - 1;\n }\n }\n\n rowIndexToFocus = clamp(rowIndexToFocus, 0, currentPage.rows.length - 1);\n const rowToFocus = currentPage.rows[rowIndexToFocus];\n const colSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowToFocus.id, columnIndexToFocus);\n\n if (colSpanInfo && colSpanInfo.spannedByColSpan) {\n if (direction === 'left' || direction === 'below') {\n columnIndexToFocus = colSpanInfo.leftVisibleCellIndex;\n } else if (direction === 'right') {\n columnIndexToFocus = colSpanInfo.rightVisibleCellIndex;\n }\n }\n\n columnIndexToFocus = clamp(columnIndexToFocus, 0, visibleColumns.length - 1);\n const columnToFocus = visibleColumns[columnIndexToFocus];\n apiRef.current.setCellFocus(rowToFocus.id, columnToFocus.field);\n }, [apiRef, props.pagination, props.paginationMode]);\n const handleCellDoubleClick = React.useCallback(({\n id,\n field\n }) => {\n apiRef.current.setCellFocus(id, field);\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // GRID_CELL_NAVIGATION_KEY_DOWN handles the focus on Enter, Tab and navigation keys\n if (event.key === 'Enter' || event.key === 'Tab' || isNavigationKey(event.key)) {\n return;\n }\n\n apiRef.current.setCellFocus(params.id, params.field);\n }, [apiRef]);\n const handleColumnHeaderFocus = React.useCallback(({\n field\n }, event) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n apiRef.current.setColumnHeaderFocus(field, event);\n }, [apiRef]);\n const handleBlur = React.useCallback(() => {\n logger.debug(`Clearing focus`);\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n }, [logger, apiRef]);\n const handleCellMouseDown = React.useCallback(params => {\n lastClickedCell.current = params;\n }, []);\n const handleDocumentClick = React.useCallback(event => {\n const cellParams = lastClickedCell.current;\n lastClickedCell.current = null;\n const focusedCell = gridFocusCellSelector(apiRef);\n\n if (!focusedCell) {\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n }\n\n return;\n }\n\n if ((cellParams == null ? void 0 : cellParams.id) === focusedCell.id && (cellParams == null ? void 0 : cellParams.field) === focusedCell.field) {\n return;\n }\n\n const cellElement = apiRef.current.getCellElement(focusedCell.id, focusedCell.field);\n\n if (cellElement != null && cellElement.contains(event.target)) {\n return;\n }\n\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n } else {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n apiRef.current.forceUpdate(); // There's a focused cell but another element (not a cell) was clicked\n // Publishes an event to notify that the focus was lost\n\n publishCellFocusOut(focusedCell, event);\n }\n }, [apiRef, publishCellFocusOut]);\n const handleCellModeChange = React.useCallback(params => {\n if (params.cellMode === 'view') {\n return;\n }\n\n const cell = gridFocusCellSelector(apiRef);\n\n if ((cell == null ? void 0 : cell.id) !== params.id || (cell == null ? void 0 : cell.field) !== params.field) {\n apiRef.current.setCellFocus(params.id, params.field);\n }\n }, [apiRef]);\n const handleRowSet = React.useCallback(() => {\n const cell = gridFocusCellSelector(apiRef); // If the focused cell is in a row which does not exist anymore, then remove the focus\n\n if (cell && !apiRef.current.getRow(cell.id)) {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n }\n }, [apiRef]);\n useGridApiMethod(apiRef, {\n setCellFocus,\n setColumnHeaderFocus,\n unstable_moveFocusToRelativeCell: moveFocusToRelativeCell\n }, 'GridFocusApi');\n React.useEffect(() => {\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n doc.addEventListener('click', handleDocumentClick);\n return () => {\n doc.removeEventListener('click', handleDocumentClick);\n };\n }, [apiRef, handleDocumentClick]);\n useGridApiEventHandler(apiRef, 'columnHeaderBlur', handleBlur);\n useGridApiEventHandler(apiRef, 'cellDoubleClick', handleCellDoubleClick);\n useGridApiEventHandler(apiRef, 'cellMouseDown', handleCellMouseDown);\n useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);\n useGridApiEventHandler(apiRef, 'cellModeChange', handleCellModeChange);\n useGridApiEventHandler(apiRef, 'columnHeaderFocus', handleColumnHeaderFocus);\n useGridApiEventHandler(apiRef, 'rowsSet', handleRowSet);\n};"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}