UNPKG

rhino-editor

Version:

A custom element wrapped rich text editor

60 lines (59 loc) 2.83 kB
import { DirectUpload } from "@rails/activestorage"; import type { Blob, DirectUploadDelegate } from "@rails/activestorage"; import { AttachmentManager } from "./attachment-manager.js"; import { BaseEvent } from "./events/base-event.js"; export declare class AttachmentUploadStartEvent<T extends AttachmentUpload = AttachmentUpload> extends BaseEvent { attachmentUpload: T; static eventName: "rhino-direct-upload:start"; constructor(attachmentUpload: T, options?: EventInit | undefined); } export declare class AttachmentUploadProgressEvent<T extends AttachmentUpload = AttachmentUpload> extends BaseEvent { attachmentUpload: T; static eventName: "rhino-direct-upload:progress"; constructor(attachmentUpload: T, options?: EventInit | undefined); } export declare class AttachmentUploadErrorEvent<T extends AttachmentUpload = AttachmentUpload> extends BaseEvent { attachmentUpload: T; static eventName: "rhino-direct-upload:error"; constructor(attachmentUpload: T, options?: EventInit | undefined); } export declare class AttachmentUploadSucceedEvent<T extends AttachmentUpload = AttachmentUpload> extends BaseEvent { attachmentUpload: T; static eventName: "rhino-direct-upload:succeed"; constructor(attachmentUpload: T, options?: EventInit | undefined); } export declare class AttachmentUploadCompleteEvent<T extends AttachmentUpload = AttachmentUpload> extends BaseEvent { attachmentUpload: T; static eventName: "rhino-direct-upload:complete"; constructor(attachmentUpload: T, options?: EventInit | undefined); } declare global { interface GlobalEventHandlersEventMap { [AttachmentUploadStartEvent.eventName]: AttachmentUploadStartEvent; [AttachmentUploadProgressEvent.eventName]: AttachmentUploadProgressEvent; [AttachmentUploadErrorEvent.eventName]: AttachmentUploadErrorEvent; [AttachmentUploadSucceedEvent.eventName]: AttachmentUploadSucceedEvent; [AttachmentUploadCompleteEvent.eventName]: AttachmentUploadCompleteEvent; } } /** * An extension of DirectUpload. This is what handles uploading to remote sources * for attachments. */ export declare class AttachmentUpload implements DirectUploadDelegate { directUpload: DirectUpload; attachment: AttachmentManager; element: HTMLElement; progress: number; constructor(attachment: AttachmentManager, element: HTMLElement); start(): void; directUploadWillStoreFileWithXHR(xhr: XMLHttpRequest): void; handleError(error?: Error): void; directUploadDidComplete(error: Error | null, blob?: (Blob & { attachable_sgid?: string; }) | undefined): void; setUploadProgress(): void; createBlobUrl(signedId: string, filename: string): string; get directUploadUrl(): string; get blobUrlTemplate(): string | undefined; }