@modern-kit/utils
Version:
1 lines • 1.96 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/clipboard/copyFallbackClipboardText/index.ts"],"sourcesContent":["/**\n * @description 클립보드에 텍스트를 복사하는 폴백 함수입니다.\n * `navigator.clipboard` API가 지원되지 않는 환경에서 사용할 수 있습니다.\n *\n * 텍스트 영역(`textarea`)을 생성하고, 해당 영역에 텍스트를 입력한 후 클립보드에 복사하는 방식으로 동작합니다.\n *\n * @param {string} value - 클립보드에 복사할 텍스트 값입니다.\n * @returns {string} 복사된 텍스트를 반환합니다.\n * @throws {Error} 클립보드에 텍스트를 복사하는 도중 에러가 발생할 경우 예외를 던집니다.\n *\n * @example\n * const copiedText = copyFallbackClipboardText('Hello, World!');\n * console.log(`Copied text: ${copiedText}`);\n */\nexport function copyFallbackClipboardText(value: string): string {\n const textArea = document.createElement('textarea');\n\n textArea.value = value;\n textArea.style.opacity = '0';\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n document.execCommand('copy');\n return value;\n } catch (err: any) {\n console.error(`Failed to copy to clipboard. message: ${err.message}`);\n throw err;\n } finally {\n document.body.removeChild(textArea);\n }\n}\n"],"names":[],"mappings":"AAcO,SAAS,0BAA0B,KAAA,EAAuB;AAC/D,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,UAAU,CAAA;AAElD,EAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,EAAA,QAAA,CAAS,MAAM,OAAA,GAAU,GAAA;AAEzB,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAClC,EAAA,QAAA,CAAS,KAAA,EAAM;AACf,EAAA,QAAA,CAAS,MAAA,EAAO;AAEhB,EAAA,IAAI;AACF,IAAA,QAAA,CAAS,YAAY,MAAM,CAAA;AAC3B,IAAA,OAAO,KAAA;AAAA,EACT,SAAS,GAAA,EAAU;AACjB,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,sCAAA,EAAyC,GAAA,CAAI,OAAO,CAAA,CAAE,CAAA;AACpE,IAAA,MAAM,GAAA;AAAA,EACR,CAAA,SAAE;AACA,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAAA,EACpC;AACF;;;;"}