import { Inject, Injectable } from '../decorators' import FeedbackService from './feedback.service' @Injectable('clipboardService') export default class ClipboardService { constructor( @Inject('$sanitize') private $sanitize: ng.sanitize.ISanitizeService, @Inject('$timeout') private $timeout: ng.ITimeoutService, @Inject('feedbackService') private feedbackService: FeedbackService, @Inject('translateFactory') private translateFactory, ) { } writeToClipboard(text: string, successMessage?: string) { navigator.clipboard.writeText(text) .then(() => { this.$timeout(() => { if (successMessage) { this.feedbackService.show(`${ this.$sanitize(successMessage) }`, {type: 'success'}) } }) }) .catch(() => { this.$timeout(() => { this.feedbackService.show(this.translateFactory.instant('JSUI.COPY_NOT_SUPPORTED'), {type: 'danger'}) }) }) } }