2 * @author Matthias Schmidt
3 * @copyright 2001-2021 WoltLab GmbH
4 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
5 * @module WoltLabSuite/Core/Media/Data
8 import MediaUpload from "./Upload";
9 import { FileElements, UploadOptions } from "../Upload/Data";
10 import MediaEditor from "./Editor";
11 import MediaManager from "./Manager/Base";
12 import { RedactorEditor } from "../Ui/Redactor/Editor";
13 import { I18nValues } from "../Language/Input";
15 export interface Media {
16 altText: I18nValues | string;
17 caption: I18nValues | string;
20 captionEnableHtml: number;
22 formattedFilesize: string;
23 languageID: number | null;
25 isMultilingual: number;
28 smallThumbnailLink: string;
29 smallThumbnailType: string;
30 tinyThumbnailLink: string;
31 tinyThumbnailType: string;
32 title: I18nValues | string;
35 export interface MediaManagerOptions {
38 minSearchLength: number;
41 export const enum MediaInsertType {
42 Separate = "separate",
45 export interface MediaManagerEditorOptions extends MediaManagerOptions {
47 callbackInsert: (media: Map<number, Media>, insertType: MediaInsertType, thumbnailSize: string) => void;
48 editor?: RedactorEditor;
51 export interface MediaManagerSelectOptions extends MediaManagerOptions {
55 export interface MediaEditorCallbackObject {
56 _editorClose?: () => void;
57 _editorSuccess?: (Media, number?) => void;
60 export interface MediaUploadSuccessEventData {
62 isMultiFileUpload: boolean;
68 export interface MediaUploadOptions extends UploadOptions {
69 elementTagSize: number;
70 mediaEditor?: MediaEditor;
71 mediaManager?: MediaManager;
74 export interface MediaListUploadOptions extends MediaUploadOptions {
78 export interface MediaUploadAjaxResponseData {
80 errors: MediaUploadError[];
85 export interface MediaUploadError {