UNPKG

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
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; }