@astsiry/media-manager-ui
Version:
Private media manager UI for internal CDN/FTP use
125 lines (124 loc) • 3.96 kB
TypeScript
export interface FolderNode {
files?: string[];
_hasContent?: boolean;
[folderName: string]: FolderNode | string[] | boolean | undefined;
}
export interface FolderTree {
[path: string]: FolderNode;
}
interface MediaManagerOptions {
containerId: string;
basePath?: string;
btnText?: string;
btnId?: string;
API_URL?: string;
uiText?: UiText;
}
interface UiText {
headerTitle?: string;
defaultLoadingText?: string;
noFolder?: string;
noFile?: string;
noFileSelected?: string;
noFileFound?: string;
noFileInFolder?: string;
dragAndDropText?: string;
upload?: string;
searchPlaceholder?: string;
loadingFolderStructure?: string;
newFolderTitle?: string;
loadingFolderCreation?: string;
notifFolderCreateSuccess?: string;
notifFolderCreateError?: string;
failed?: string;
delete?: string;
deleteConfirmationText?: string;
copied?: string;
uploadSuccess?: string;
uploadFailed?: string;
deleteSuccess?: string;
deleteFailed?: string;
loadingUpload?: string;
loadingDelete?: string;
newFolder?: string;
home?: string;
imgCopied?: string;
imgCopyBtnText?: string;
urlCopied?: string;
urlCopyBtnText?: string;
download?: string;
confirmBtnText?: string;
cancelBtnText?: string;
promptBtnText?: string;
cancelPropmtBtnText?: string;
}
export declare class MediaManager {
isReady: boolean;
searchTerm: string;
headerTitle: string;
cdnUrl: any;
API_URL: string;
openFolders: Set<unknown>;
container: HTMLElement | null;
basePath: string;
btnText: string;
btnId: string;
folderTree: FolderTree;
currentPath: string;
selectedFile: any;
modal: any;
backdrop: any;
folderCol: any;
thumbGrid: any;
previewCol: any;
uploadBtn: any;
uploadInput: any;
breadcrumbTrail: any;
toggleBtn: any;
closeBtn: any;
searchInput: any;
dropZone: any;
imageModal?: HTMLElement;
imageModalImg?: HTMLImageElement;
imageModalThumbs?: HTMLElement;
imageModalSkeleton?: HTMLElement;
modalFiles?: string[];
modalIndex?: number;
uiText: UiText;
constructor({ containerId, basePath, btnText, btnId, API_URL, uiText, }: MediaManagerOptions);
initCdnUrl(): Promise<void>;
_init(): Promise<void>;
getDefaultUIText(): UiText;
_renderStructure(): void;
_bindEvents(): void;
_toggleLoader(isShow?: boolean, msg?: string): void;
_expandToPath(path: string): void;
_createFolder(): Promise<void>;
_handleFilesUpload(files: FileList | File[]): Promise<void>;
_uploadFile(file: File): Promise<void>;
_ensureFolderPath(path: string): any;
_getFolderNode(path: string): any;
_addFile(path: string, filename: string): void;
_deleteFile(path: string, filename: string): void;
_getFiles(path: string): any;
_renderFolders(tree?: any): void;
_buildTree(node: FolderNode, path: string): HTMLUListElement;
_renderBreadcrumbs(): void;
_renderThumbnails(searchValue?: string): void;
_fetchFolderTree(): Promise<void>;
_fetchFolderContent(path: string): Promise<any>;
joinUrlParts(...parts: string[]): string;
_renderPreview(): void;
_copyToClipboard(text: string): void;
_renderImageViewerModal(): void;
_showImageModal(index: number): void;
_closeImageModal(): void;
_navigateImage(direction: any): void;
_updateImageModal(): void;
_isImage(file: string): boolean;
_getFileTypeIcon(filename: string): "bi-file-earmark" | "bi-file-earmark-pdf" | "bi-file-earmark-word" | "bi-file-earmark-excel" | "bi-file-earmark-zip" | "bi-gear" | "bi-file-earmark-play" | "bi-file-image";
_notify(message: string, type?: string): void;
_customConfirm(message: string, deleteConfirmation?: boolean): Promise<unknown>;
_customPrompt(message: string): Promise<unknown>;
}
export {};