1 line
8.4 KiB
JSON
1 line
8.4 KiB
JSON
{"ast":null,"code":"import * as React from 'react';\nimport { useGridApiMethod, useGridNativeEventListener } from '../../utils';\nfunction writeToClipboardPolyfill(data) {\n const span = document.createElement('span');\n span.style.whiteSpace = 'pre';\n span.style.userSelect = 'all';\n span.style.opacity = '0px';\n span.textContent = data;\n document.body.appendChild(span);\n const range = document.createRange();\n range.selectNode(span);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n try {\n document.execCommand('copy');\n } finally {\n document.body.removeChild(span);\n }\n}\nfunction hasNativeSelection(element) {\n var _window$getSelection;\n if (((_window$getSelection = window.getSelection()) == null ? void 0 : _window$getSelection.toString()) !== '') {\n return true;\n }\n if (!element) {\n return false;\n }\n if ((element.selectionEnd || 0) - (element.selectionStart || 0) > 0) {\n return true;\n }\n return false;\n}\n/**\n * @requires useGridCsvExport (method)\n * @requires useGridSelection (method)\n */\n\nexport const useGridClipboard = apiRef => {\n const copySelectedRowsToClipboard = React.useCallback((includeHeaders = false) => {\n if (apiRef.current.getSelectedRows().size === 0) {\n return;\n }\n const data = apiRef.current.getDataAsCsv({\n includeHeaders,\n delimiter: '\\t'\n });\n if (navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(() => {\n writeToClipboardPolyfill(data);\n });\n } else {\n writeToClipboardPolyfill(data);\n }\n }, [apiRef]);\n const handleKeydown = React.useCallback(event => {\n const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey; // event.key === 'c' is not enough as alt+c can lead to ©, ç, or other characters on macOS.\n // event.code === 'KeyC' is not enough as event.code assume a QWERTY keyboard layout which would\n // be wrong with a Dvorak keyboard (as if pressing J).\n\n if (String.fromCharCode(event.keyCode) !== 'C' || !isModifierKeyPressed) {\n return;\n } // Do nothing if there's a native selection\n\n if (hasNativeSelection(event.target)) {\n return;\n }\n apiRef.current.unstable_copySelectedRowsToClipboard(event.altKey);\n }, [apiRef]);\n useGridNativeEventListener(apiRef, apiRef.current.rootElementRef, 'keydown', handleKeydown);\n const clipboardApi = {\n unstable_copySelectedRowsToClipboard: copySelectedRowsToClipboard\n };\n useGridApiMethod(apiRef, clipboardApi, 'GridClipboardApi');\n};","map":{"version":3,"names":["React","useGridApiMethod","useGridNativeEventListener","writeToClipboardPolyfill","data","span","document","createElement","style","whiteSpace","userSelect","opacity","textContent","body","appendChild","range","createRange","selectNode","selection","window","getSelection","removeAllRanges","addRange","execCommand","removeChild","hasNativeSelection","element","_window$getSelection","toString","selectionEnd","selectionStart","useGridClipboard","apiRef","copySelectedRowsToClipboard","useCallback","includeHeaders","current","getSelectedRows","size","getDataAsCsv","delimiter","navigator","clipboard","writeText","catch","handleKeydown","event","isModifierKeyPressed","ctrlKey","metaKey","altKey","String","fromCharCode","keyCode","target","unstable_copySelectedRowsToClipboard","rootElementRef","clipboardApi"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/clipboard/useGridClipboard.js"],"sourcesContent":["import * as React from 'react';\nimport { useGridApiMethod, useGridNativeEventListener } from '../../utils';\n\nfunction writeToClipboardPolyfill(data) {\n const span = document.createElement('span');\n span.style.whiteSpace = 'pre';\n span.style.userSelect = 'all';\n span.style.opacity = '0px';\n span.textContent = data;\n document.body.appendChild(span);\n const range = document.createRange();\n range.selectNode(span);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n\n try {\n document.execCommand('copy');\n } finally {\n document.body.removeChild(span);\n }\n}\n\nfunction hasNativeSelection(element) {\n var _window$getSelection;\n\n if (((_window$getSelection = window.getSelection()) == null ? void 0 : _window$getSelection.toString()) !== '') {\n return true;\n }\n\n if (!element) {\n return false;\n }\n\n if ((element.selectionEnd || 0) - (element.selectionStart || 0) > 0) {\n return true;\n }\n\n return false;\n}\n/**\n * @requires useGridCsvExport (method)\n * @requires useGridSelection (method)\n */\n\n\nexport const useGridClipboard = apiRef => {\n const copySelectedRowsToClipboard = React.useCallback((includeHeaders = false) => {\n if (apiRef.current.getSelectedRows().size === 0) {\n return;\n }\n\n const data = apiRef.current.getDataAsCsv({\n includeHeaders,\n delimiter: '\\t'\n });\n\n if (navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(() => {\n writeToClipboardPolyfill(data);\n });\n } else {\n writeToClipboardPolyfill(data);\n }\n }, [apiRef]);\n const handleKeydown = React.useCallback(event => {\n const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey; // event.key === 'c' is not enough as alt+c can lead to ©, ç, or other characters on macOS.\n // event.code === 'KeyC' is not enough as event.code assume a QWERTY keyboard layout which would\n // be wrong with a Dvorak keyboard (as if pressing J).\n\n if (String.fromCharCode(event.keyCode) !== 'C' || !isModifierKeyPressed) {\n return;\n } // Do nothing if there's a native selection\n\n\n if (hasNativeSelection(event.target)) {\n return;\n }\n\n apiRef.current.unstable_copySelectedRowsToClipboard(event.altKey);\n }, [apiRef]);\n useGridNativeEventListener(apiRef, apiRef.current.rootElementRef, 'keydown', handleKeydown);\n const clipboardApi = {\n unstable_copySelectedRowsToClipboard: copySelectedRowsToClipboard\n };\n useGridApiMethod(apiRef, clipboardApi, 'GridClipboardApi');\n};"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |