diff --git a/aio/src/app/shared/copier.service.ts b/aio/src/app/shared/copier.service.ts index 6b62ca7b3b..420d8ef683 100644 --- a/aio/src/app/shared/copier.service.ts +++ b/aio/src/app/shared/copier.service.ts @@ -5,6 +5,9 @@ * - https://github.com/zenorocha/clipboard.js/ * * Both released under MIT license - © Zeno Rocha + * + * It is also influenced by the Angular CDK `PendingCopy` class: + * https://github.com/angular/components/blob/master/src/cdk/clipboard/pending-copy.ts */ @@ -18,6 +21,8 @@ export class CopierService { * @return Whether the copy operation was successful. */ private copyTextArea(textArea: HTMLTextAreaElement): boolean { + const currentFocus = document.activeElement as HTMLOrSVGElement | null; + try { textArea.select(); textArea.setSelectionRange(0, textArea.value.length); @@ -25,6 +30,10 @@ export class CopierService { return document.execCommand('copy'); } catch { return false; + } finally { + // Calling `.select()` on the `