1 import { Media, MediaInsertType } from "../../../Media/Data";
2 import MediaManagerEditor from "../../../Media/Manager/Editor";
3 import * as Core from "../../../Core";
5 class AcpUiCodeMirrorMedia {
6 protected readonly element: HTMLElement;
8 constructor(elementId: string) {
9 this.element = document.getElementById(elementId) as HTMLElement;
11 const button = document.getElementById(`codemirror-${elementId}-media`)!;
12 button.classList.add(button.id);
14 new MediaManagerEditor({
15 buttonClass: button.id,
16 callbackInsert: (media, insertType, thumbnailSize) => this.insert(media, insertType, thumbnailSize),
20 protected insert(mediaList: Map<number, Media>, insertType: MediaInsertType, thumbnailSize: string): void {
22 case MediaInsertType.Separate: {
23 const content = Array.from(mediaList.values())
24 .map((item) => `{{ media="${item.mediaID}" size="${thumbnailSize}" }}`)
27 (this.element as any).codemirror.replaceSelection(content);
33 Core.enableLegacyInheritance(AcpUiCodeMirrorMedia);
35 export = AcpUiCodeMirrorMedia;