Merge pull request #5484 from vvlladd28/improvement/markdown/copy-text

[3.3.2] UI: Improvement copy text in markdown (didn't work in HTTP)
This commit is contained in:
Igor Kulikov 2021-11-03 16:38:42 +02:00 committed by GitHub
commit c783a2a6e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,6 +21,7 @@ import { DOCUMENT } from '@angular/common';
import { WINDOW } from '@core/services/window.service';
import { Tokenizer } from 'marked';
import * as marked from 'marked';
import { Clipboard } from '@angular/cdk/clipboard';
const copyCodeBlock = '{:copy-code}';
const codeStyleRegex = '^{:code-style="(.*)"}\n';
@ -47,6 +48,7 @@ export class MarkedOptionsService extends MarkedOptions {
private id = 1;
constructor(private translate: TranslateService,
private clipboardService: Clipboard,
@Inject(WINDOW) private readonly window: Window,
@Inject(DOCUMENT) private readonly document: Document) {
super();
@ -162,7 +164,7 @@ export class MarkedOptionsService extends MarkedOptions {
const copyWrapper = $('#codeWrapper' + id);
if (copyWrapper.hasClass('noChars')) {
const text = decodeURIComponent($('#copyCodeId' + id).text());
this.window.navigator.clipboard.writeText(text).then(() => {
if (this.clipboardService.copy(text)) {
import('tooltipster').then(
() => {
if (!copyWrapper.hasClass('tooltipstered')) {
@ -186,12 +188,11 @@ export class MarkedOptionsService extends MarkedOptions {
}
const tooltip = copyWrapper.tooltipster('instance');
tooltip.open();
}
);
});
}
}
}
}
interface CodeContext {
copyCode: boolean;