agora-edu-core-lb
Version:
For publishing npm package agora-edu-core (Web & Electron). Get more information from https://docs.agora.io
311 lines (310 loc) • 10.5 kB
TypeScript
import { EduRoleTypeEnum, EduUser } from 'agora-rte-sdk';
import OSS from 'ali-oss';
import { ReactEventHandler } from 'react';
import { IframeBridge } from '@netless/iframe-bridge';
import { MemberState, Room, SceneDefinition, RoomPhase, CameraState } from 'white-web-sdk';
import { CourseWareItem } from '../api/declare';
import { MaterialDataResource } from '../services/upload-service';
import { EduScenarioAppStore as EduScenarioAppStore } from './index';
import { StorageCourseWareItem } from '../types';
import { BoardClient } from '../utilities/board-client';
import { OSSConfig } from '../utilities/kit';
import { ZoomController } from './zoom';
import { Resource } from '../context/type';
export interface ToolItem {
value: string;
label: any;
icon: any;
isActive?: boolean;
component?: React.FC<{
isActive: boolean;
onClick: ReactEventHandler<any>;
}>;
}
export declare type CustomizeGlobalState = {
materialList: CourseWareItem[];
dynamicTaskUuidList: any[];
roomScenes: GlobalRoomScene;
grantUsers: string[];
follow: boolean;
isFullScreen: boolean;
};
export declare type GlobalRoomScene = {
[resourceUuid: string]: {
contextPath: string;
index: number;
sceneName: string;
scenePath: string;
totalPage: string;
resourceName: string;
show: boolean;
};
};
export type { Resource };
export declare enum BoardPencilSize {
thin = 4,
small = 8,
normal = 12,
large = 18
}
export declare enum BoardFrontSizeType {
size12 = "12",
size14 = "14",
size18 = "18",
size24 = "24",
size26 = "26",
size36 = "36",
size48 = "48",
size72 = "72"
}
export declare const resolveFileInfo: (file: any) => {
fileName: string;
fileType: string;
};
export declare const demoOssConfig: OSSConfig;
export interface SceneItem {
file: {
name: string;
type: string;
};
path: string;
rootPath: string;
}
export declare enum DownloadStatus {
notCache = 0,
downloading = 1,
cached = 2,
failed = 3
}
export declare enum CustomRoomPhase {
Idle = "idle"
}
export declare const ApaasRoomPhase: {
Idle: CustomRoomPhase.Idle;
Connecting: RoomPhase.Connecting;
Connected: RoomPhase.Connected;
Reconnecting: RoomPhase.Reconnecting;
Disconnecting: RoomPhase.Disconnecting;
Disconnected: RoomPhase.Disconnected;
};
export declare class BoardStore extends ZoomController {
checkInResult: any;
setCheckInResult(result: any): void;
scenes: any[];
loading: boolean;
converting: boolean;
currentPage: number;
totalPage: number;
currentScene: any;
hasBoardPermission: number;
selector: string;
showFolder: boolean;
boardRegion: string;
boardConnectionState: string;
closeFolder(): void;
openFolder(): void;
showUpload: boolean;
showExtension: boolean;
activeFooterItem: string;
uuid: string;
roomToken: string;
sceneItems: SceneItem[];
activeScenePath: string;
ready: boolean;
follow: boolean;
grantUsers: any[];
permission: number;
menuTitle: string;
isFullScreen: boolean;
enableStatus: string | boolean;
downloading: boolean;
appStore: EduScenarioAppStore;
_boardClient?: BoardClient;
get boardClient(): BoardClient;
ossClient: OSS;
folder: string;
constructor(appStore: EduScenarioAppStore);
get room(): Room;
get localUser(): EduUser;
get activeSceneName(): string;
get localUserUuid(): string;
get boardPenIsActive(): boolean;
joinBoard(): Promise<void>;
leaveBoard(): Promise<void>;
init(info: {
boardId: string;
boardToken: string;
boardRegion: string;
}): Promise<void>;
loadScene(data: any[]): SceneDefinition[];
sceneList: any[];
controller: any;
_resourcesList: Resource[];
_boardItem: Resource;
get resourcesList(): Resource[];
changeSceneItem(resourceUuid: string): void;
updateBoardSceneItems({ scenes, resourceUuid, resourceName, page, taskUuid }: any, setScene: boolean): void;
findResourcePage(resourceName: string): number;
getResourcePath(str: string): string;
get activeIndex(): number;
currentPath: string;
get bizScreenShare(): boolean;
get isBoardScreenShare(): boolean;
get showBoardTool(): [boolean, boolean];
get canSharingScreen(): boolean;
get isShareScreen(): boolean;
removeScreenShareScene(): void;
closeMaterial(resourceUuid: string): Promise<void>;
autoFetchDynamicTask(): Promise<void>;
updatePageHistory(): void;
currentScenePath: string;
resourceUuid: string;
updateLocalResourceList(): void;
updateLocalSceneState(): void;
updateCourseWareList(): void;
courseWareList: any[];
findFirstPPT(): void;
fetchRoomScenes(): Promise<import("../api/declare").ConvertedFileList | undefined>;
join(info: {
role: EduRoleTypeEnum;
isWritable: boolean;
boardId: string;
boardToken: string;
disableDeviceInputs: boolean;
disableCameraTransform: boolean;
disableAutoResize: boolean;
}): Promise<void>;
pptAutoFullScreen(): void;
setGrantPermission(v: boolean): Promise<void>;
setGrantUsers(args: any[]): void;
aClassJoinBoard(params: any): Promise<void>;
get roleIsTeacher(): boolean;
get roleIsStudent(): boolean;
isTeacher(): boolean;
isStudent(): boolean;
resetBoardPath(): void;
resetBoardScenes(): void;
leave(): Promise<void>;
changeFooterMenu(itemName: string): void;
get currentSelector(): string;
lineSelector: string;
laserPoint: boolean;
get boardRoomIsAvailable(): boolean;
setLaserPoint(): void;
shape: string;
setTool(tool: string): void;
currentStrokeWidth: number;
changeStroke(value: any): void;
rgbToHexColor(r: number, g: number, b: number): string;
changeHexColor(colorHex: string): void;
currentActiveToolItem: string;
get currentColor(): string;
currentStroke: string;
getCurrentStroke(memberState: MemberState): number;
currentArrow: any;
getCurrentArrow(memberState: MemberState): any;
currentFontSize: BoardFrontSizeType;
changeFontSize(size: BoardFrontSizeType): void;
getCurrentFontSize(memberState: MemberState): BoardFrontSizeType;
updateScale(scale: number): void;
get loadingType(): string;
updatePen(value: any): void;
changePage(idx: number, force?: boolean): void;
getCurrentContextPath(): string;
setScenePath(path: string): void;
updateCameraState(cameraState: CameraState): void;
updateBoardState(globalState: CustomizeGlobalState): void;
updatePagination(): void;
notices: any[];
uploadPhase: string;
convertPhase: string;
isCancel: boolean;
uploadingPhase: string;
convertingPhase: string;
scale: number;
get zoomValue(): number;
online: boolean;
showColorPicker: boolean;
strokeColor: any;
_grantPermission?: boolean;
fileLoading: boolean;
uploadingProgress: number;
allTools: any[];
installTools(tools: any[]): void;
get _tools(): any[];
get tools(): any[];
reset(): void;
roomIsWritable(room: Room): boolean;
setWritable(v: boolean): Promise<void>;
grantUserPermission(userUuid: string): Promise<void>;
revokeUserPermission(userUuid: string): Promise<void>;
get userRole(): EduRoleTypeEnum;
get roomType(): number;
get boardService(): import("../services/edu-board-service").EduBoardService;
get hasPermission(): boolean;
checkUserPermission(userUuid: string): boolean;
grantBoardPermission(userUuid: string): Promise<void>;
revokeBoardPermission(userUuid: string): Promise<void>;
resizeObserver: ResizeObserver;
whiteBoardContainer?: HTMLElement;
mount(dom: any): void;
unmount(): void;
hideExtension(): void;
setZoomScale(operation: string): void;
zoomBoard(type: string): void;
setFullScreen(type: boolean): void;
preloading: boolean;
preloadingProgress: number;
get isLoading(): true | "preparing" | undefined;
get loadingStatus(): "" | "whiteboard.loading";
get globalState(): CustomizeGlobalState;
removeMaterialList(resourceUuids: string[]): Promise<void>;
putCourseResource(resourceUuid: string, currentPage?: number): Promise<void>;
setScreenShareScenePath(): void;
iframe: IframeBridge;
insertH5(url: string, resourceUuid: string, currentPage?: number): Promise<void>;
putImage(url: string): Promise<void>;
putAV(url: string, type: string, mimeType: string): Promise<void>;
putSceneByResourceUuid(uuid: string): Promise<void>;
getFileInQueryMaterial(fileName: string): Promise<import("../services/upload-service").UploadServiceResult>;
addMaterial(resourceRecord: CourseWareItem): void;
handleUpload(payload: any): Promise<void>;
cancelUpload(): Promise<void>;
clearScene(): void;
get isH5IFrame(): boolean;
get canSyncCameraState(): boolean;
scaleToFit(): void;
moveCamera(): void;
_extraResources: CourseWareItem[];
_resourcesMap: Map<string, CourseWareItem>;
resolveResource(item: any): any;
get extraResources(): MaterialDataResource[];
upsertResources(items: CourseWareItem[]): void;
get publicResources(): MaterialDataResource[];
get initCourseWare(): MaterialDataResource;
initCourseWareLoading: boolean;
initCourseWareProgress: number;
openInitCourseWare(): Promise<void>;
get internalResources(): CourseWareItem[];
_personalResources: CourseWareItem[];
get personalResources(): MaterialDataResource[];
get allResources(): MaterialDataResource[];
get totalProgress(): number;
progressMap: Record<string, number>;
destroy(): Promise<void>;
downloadList: StorageCourseWareItem[];
refreshState(): Promise<void>;
updateDownloadById(taskUuid: string, props: Partial<StorageCourseWareItem>): void;
internalDownload(taskUuid: string): Promise<void>;
startDownload(taskUuid: string): Promise<void>;
cancelDownload(taskUuid: string): Promise<void>;
deleteSingle(taskUuid: string): Promise<void>;
deleteAllCache(): Promise<void>;
downloadAll(): Promise<void>;
activeMap: Record<string, boolean>;
}
export declare type HandleUploadType = {
file: File;
resourceName: string;
onProgress: (evt: any) => any;
};