agora-classroom-sdk
Version:
For publishing npm package agora-classroom-sdk (Web & Electron). Get more information from https://docs.agora.io
179 lines (178 loc) • 4.86 kB
TypeScript
import { IUploadOnlineCoursewareData } from '@classroom/infra/capabilities/containers/cloud-driver/person-resource';
import { CloudDrivePagingOption, CloudDriveResource, CloudDriveResourceUploadStatus } from 'agora-edu-core';
import { SvgIconEnum } from '@classroom/ui-kit';
import { EduUIStoreBase } from '../base';
export declare enum FileTypeSvgColor {
ppt = "#F6B081",
word = "#96CBE1",
excel = "#A6DDBF",
pdf = "#A3C3DE",
video = "#A8ABE9",
audio = "#6C82D1",
txt = "#8597FF",
image = "#95E2E7"
}
export interface UploadItem {
resourceUuid: string;
iconType?: string;
fileName?: string;
fileSize?: string;
currentProgress?: number;
status: CloudDriveResourceUploadStatus;
}
export declare class CloudUIStore extends EduUIStoreBase {
readonly pageSize: number;
personalResourceUuidByPage: Map<number, string[]>;
personalResourcesTotalNum: number;
private _disposers;
private _isUploading;
onInstall(): void;
/**
* 根据类型返回扩展名
* @param name
* @returns
*/
fileNameToType(name: string): SvgIconEnum.ALF | SvgIconEnum.AUDIO | SvgIconEnum.EXCEL | SvgIconEnum.H5 | SvgIconEnum.IMAGE | SvgIconEnum.PDF | SvgIconEnum.PPT | SvgIconEnum.UNKNOWN | SvgIconEnum.VIDEO | SvgIconEnum.WORD;
/**
* 文件大小信息格式化
* @param fileByteSize
* @param decimalPoint
* @returns
*/
formatFileSize(fileByteSize: number, decimalPoint?: number): string;
/**
* 刷新资源列表
*/
reloadPersonalResources(): Promise<void>;
/**
* 查询个人资源列表
* @param options
* @returns
*/
fetchPersonalResources(options: CloudDrivePagingOption): Promise<{
list: never[];
total: number;
} | undefined>;
/**
*
* @param files
*/
validateFiles(files: File[]): boolean;
/**
* 上传文件至个人资源
* @param file
* @returns
*/
uploadPersonalResource(files: File[]): Promise<void>;
addOnlineCourseware({ resourceName, url }: IUploadOnlineCoursewareData): Promise<void>;
/**
* 打开课件
*/
private _tryOpenCourseware;
/**
* 打开课件
* @param resource
*/
openResource(resource: CloudDriveResource): Promise<void>;
/**
* 公共资源
* @returns
*/
get publicResources(): Map<string, CloudDriveResource>;
showUploadModal: boolean;
showUploadToast: boolean;
/**
* 上传状态
*/
uploadState: 'uploading' | 'success' | 'error' | 'idle';
/**
* 云盘上传modal最小化显示
*/
showUploadMinimize: boolean;
/**
* 检索公共资源课件字符串
*/
searchPublicResourcesKeyword: string;
/**
* 检索个人资源课件字符串
*/
searchPersonalResourcesKeyword: string;
/**
* 个人资源左侧选项框状态
*/
personalResourcesCheckSet: Set<string>;
/**
* 个人资源页码
*/
currentPersonalResPage: number;
/**
* 个人资源全选
*/
isPersonalResSelectedAll: boolean;
/**
* 云盘资源列表
*/
get personalResources(): Map<string, CloudDriveResource>;
/**
* 云盘资源列表(左侧选择框使用)
* @returns
*/
get personalResourcesList(): {
resource: CloudDriveResource;
checked: boolean;
}[];
/**
* 是否有选中资源文件
* @returns
*/
get hasSelectedPersonalRes(): boolean;
/**
* 资源上传进度
* @returns
*/
get uploadingProgresses(): UploadItem[];
/**
* 勾选资源文件
* @param resourceUuid
* @param val
*/
setPersonalResourceSelected: (resourceUuid: string, val: boolean) => void;
/**
* 资源列表全选
* @param val
*/
setAllPersonalResourceSelected: (val: boolean) => void;
/**
* 设置资源列表页码
* @param num
*/
setPersonalResCurrentPage: (num: number) => void;
/**
* 设置上传状态
* @param uploadState
*/
setUploadState: (uploadState: 'uploading' | 'success' | 'error') => void;
setShowUploadModal: (v: boolean) => void;
setShowUploadToast: (v: boolean) => void;
/**
* 设置云盘上传modal最小化
* @param v
*/
setShowUploadMinimize: (v: boolean) => void;
/**
* 删除个人资源
* @returns
*/
removePersonalResources: (singleFileUuid?: string | undefined) => Promise<void>;
/**
* 设置检索公共资源字符串
* @param keyword
*/
setSearchPublicResourcesKeyword(keyword: string): void;
/**
* 设置检索个人资源字符串
* @param keyword
*/
setSearchPersonalResourcesKeyword(keyword: string): void;
onDestroy(): void;
}