export default function copyTextToClipboard(text, {target = document.body} = {}) { 
 | 
    if (typeof text !== 'string') { 
 | 
        throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof text}\`.`); 
 | 
    } 
 | 
  
 | 
    const element = document.createElement('textarea'); 
 | 
    const previouslyFocusedElement = document.activeElement; 
 | 
  
 | 
    element.value = text; 
 | 
  
 | 
    // Prevent keyboard from showing on mobile 
 | 
    element.setAttribute('readonly', ''); 
 | 
  
 | 
    element.style.contain = 'strict'; 
 | 
    element.style.position = 'absolute'; 
 | 
    element.style.left = '-9999px'; 
 | 
    element.style.fontSize = '12pt'; // Prevent zooming on iOS 
 | 
  
 | 
    const selection = document.getSelection(); 
 | 
    const originalRange = selection.rangeCount > 0 && selection.getRangeAt(0); 
 | 
  
 | 
    target.append(element); 
 | 
    element.select(); 
 | 
  
 | 
    // Explicit selection workaround for iOS 
 | 
    element.selectionStart = 0; 
 | 
    element.selectionEnd = text.length; 
 | 
  
 | 
    let isSuccess = false; 
 | 
    try { 
 | 
        isSuccess = document.execCommand('copy'); 
 | 
    } catch {} 
 | 
  
 | 
    element.remove(); 
 | 
  
 | 
    if (originalRange) { 
 | 
        selection.removeAllRanges(); 
 | 
        selection.addRange(originalRange); 
 | 
    } 
 | 
  
 | 
    // Get the focus back on the previously focused element, if any 
 | 
    if (previouslyFocusedElement) { 
 | 
        previouslyFocusedElement.focus(); 
 | 
    } 
 | 
  
 | 
    return isSuccess; 
 | 
} 
 |