| /*! |
| * @license |
| * Copyright 2020 The Go Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style |
| * license that can be found in the LICENSE file. |
| */ |
| export class CopyToClipboardController { |
| constructor(el) { |
| this._el = el; |
| this._data = el.dataset['toCopy'] ?? ''; |
| el.addEventListener('click', e => this.handleCopyClick(e)); |
| } |
| handleCopyClick(e) { |
| e.preventDefault(); |
| const TOOLTIP_SHOW_DURATION_MS = 1000; |
| if (!navigator.clipboard) { |
| this.showTooltipText('Unable to copy', TOOLTIP_SHOW_DURATION_MS); |
| return; |
| } |
| navigator.clipboard |
| .writeText(this._data) |
| .then(() => { |
| this.showTooltipText('Copied!', TOOLTIP_SHOW_DURATION_MS); |
| }) |
| .catch(() => { |
| this.showTooltipText('Unable to copy', TOOLTIP_SHOW_DURATION_MS); |
| }); |
| } |
| showTooltipText(text, durationMs) { |
| this._el.setAttribute('data-tooltip', text); |
| setTimeout(() => this._el.setAttribute('data-tooltip', ''), durationMs); |
| } |
| } |
| //# sourceMappingURL=clipboard.js.map |