UNPKG

jodit

Version:

Jodit is an awesome and useful wysiwyg editor with filebrowser

112 lines (111 loc) 3.86 kB
/*! * Jodit Editor (https://xdsoft.net/jodit/) * Released under MIT see LICENSE.txt in the project root for license information. * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net */ /** * @module types */ import type { CanPromise, IDictionary, IViewComponent } from "./types"; import type { IViewBased } from "./view"; import type { IAjax } from "./ajax"; interface IUploaderData { messages?: string[]; files: string[]; isImages?: boolean[]; path?: string; baseurl: string; newfilename?: string; } interface IUploaderAnswer { success: boolean; time: string; data: IUploaderData; } export type HandlerSuccess = (resp: IUploaderData) => void; export type HandlerError = (e: Error) => void; export type BuildDataResult = FormData | IDictionary<string> | Promise<FormData | IDictionary<string>> | string; export interface IUploaderOptions<T> { url: string | ((request: FormData | IDictionary<string> | string) => string); insertImageAsBase64URI: boolean; /** * List of extensions for images * @default ['jpg', 'png', 'jpeg', 'gif'] * @example * ```javascript * Jodit.make('#editor', { * uploader: { * insertImageAsBase64URI: true, * imagesExtensions: ['jpg', 'png', 'jpeg', 'gif', 'svg', 'webp'] * } * }); * ``` */ imagesExtensions: string[]; headers?: IDictionary<string> | null | ((this: IAjax<any>) => CanPromise<IDictionary<string> | null>); data: null | object; format: string; method: string; filesVariableName: (i: number) => string; /** * The method can be used to change the name of the uploaded file * This is the name the file will have when it is sent to the server * ```js * Jodit.make('#editor', { * uploader: { * url: 'some-connector.php', * processFileName: (key, file, name) => { * return [key, file, 'some-prefix_' + name]; * } * } * }); * ``` */ processFileName(this: T, key: string, file: File, name: string): [ string, File, string ]; /** * The method can be used to change the displayed name of the uploaded file * ```javascript * Jodit.make('#editor', { * uploader: { * url: 'https://sitename.net/jodit/connector/index.php?action=fileUpload', * getDisplayName: (_, name) => 'File:' + name * } * }); * ``` */ getDisplayName(this: T, baseurl: string, filename: string): string; pathVariableName: string; withCredentials: boolean; prepareData: (this: T, formData: FormData) => any; buildData?: (this: T, formData: any) => BuildDataResult; queryBuild?: (obj: string | IDictionary<string | object> | FormData, prefix?: string) => string | FormData; isSuccess: (this: T, resp: IUploaderAnswer) => boolean; getMessage: (this: T, resp: IUploaderAnswer) => string; process: (this: T, resp: IUploaderAnswer) => IUploaderData; error: (this: T, e: Error) => void; defaultHandlerSuccess: HandlerSuccess; defaultHandlerError: HandlerError; contentType: (this: T, requestData: any) => string | false; } export interface IUploader extends IViewComponent { readonly jodit: IViewBased; readonly j: this['jodit']; readonly options: IUploaderOptions<IUploader>; readonly o: this['options']; bind(form: HTMLElement, handlerSuccess?: HandlerSuccess, handlerError?: HandlerError): void; uploadRemoteImage(url: string, handlerSuccess?: HandlerSuccess, handlerError?: HandlerError): void; readonly path: string; readonly source: string; /** * It sets the path for uploading files */ setPath(path: string): this; /** * It sets the source for connector */ setSource(source: string): this; }