UNPKG

@testing-library/user-event

Version:
43 lines (40 loc) 1.44 kB
import '../click/isClickableInput.js'; import { createDataTransfer } from '../dataTransfer/DataTransfer.js'; import '../dataTransfer/Clipboard.js'; import '../edit/maxLength.js'; import '../edit/isEditable.js'; import '@testing-library/dom'; import { hasOwnSelection } from './selection.js'; import { getWindow } from '../misc/getWindow.js'; import '../keyDef/readNextDescriptor.js'; import '../misc/level.js'; import '../../options.js'; import '../../event/eventMap.js'; import '../../event/behavior/click.js'; import '../../event/behavior/cut.js'; import '../../event/behavior/keydown.js'; import '../../event/behavior/keypress.js'; import '../../event/behavior/keyup.js'; import '../../event/behavior/paste.js'; import { getUISelection } from '../../document/selection.js'; import { getUIValue } from '../../document/value.js'; function copySelection(target) { const data = hasOwnSelection(target) ? { 'text/plain': readSelectedValueFromInput(target) } : { 'text/plain': String(target.ownerDocument.getSelection()) }; const dt = createDataTransfer(getWindow(target)); for(const type in data){ if (data[type]) { dt.setData(type, data[type]); } } return dt; } function readSelectedValueFromInput(target) { const sel = getUISelection(target); const val = getUIValue(target); return val.substring(sel.startOffset, sel.endOffset); } export { copySelection };