UNPKG

copay-crown

Version:

A Secure Crown Wallet

62 lines (55 loc) 1.6 kB
import { Directive, Inject } from '@angular/core'; import { DOCUMENT } from "@angular/platform-browser"; import { Clipboard } from '@ionic-native/clipboard'; import { ToastController } from 'ionic-angular'; import { Logger } from '../../providers/logger/logger'; import { PlatformProvider } from '../../providers/platform/platform'; @Directive({ selector: '[copy-to-clipboard]', // Attribute selector inputs: ['value: copy-to-clipboard'], host: { '(click)': 'copy()' } }) export class CopyToClipboard { public value: string; private dom: Document; private isCordova: boolean; private isNW: boolean; constructor( @Inject(DOCUMENT) dom: Document, public toastCtrl: ToastController, public clipboard: Clipboard, public platform: PlatformProvider, public logger: Logger ) { this.logger.info('CopyToClipboardDirective initialized.'); this.isCordova = this.platform.isCordova; this.isNW = this.platform.isNW; this.dom = dom; } private copyBrowser() { let textarea = this.dom.createElement('textarea'); this.dom.body.appendChild(textarea); textarea.value = this.value; textarea.select(); this.dom.execCommand('copy'); } public copy() { if (!this.value) { return; } if (this.isCordova) { this.clipboard.copy(this.value); } else if (this.isNW) { // TODO: Node-webkit won't be supported } else { this.copyBrowser(); } let showSuccess = this.toastCtrl.create({ message: 'Copied to clipboard', duration: 1000, }); showSuccess.present(); } }