@netless/window-manager 0.3.22 → 0.3.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/constants.ts","../src/Register/storage.ts","../src/Register/loader.ts","../src/Register/index.ts","../src/Utils/Common.ts","../src/AppListener.ts","../src/Utils/error.ts","../src/AppContext.ts","../src/AttributesDelegate.ts","../src/Utils/log.ts","../src/Base/Context.ts","../src/Base/index.ts","../src/AppProxy.ts","../src/BoxManager.ts","../src/Utils/CameraStore.ts","../src/ViewManager.ts","../src/MainView.ts","../src/Utils/Reactive.ts","../src/ReconnectRefresher.ts","../src/AppManager.ts","../node_modules/svelte/internal/index.mjs","../src/Cursor/Cursor.svelte","../src/Cursor/icons.ts","../src/image/pencil-cursor.png","../src/image/selector-cursor.png","../src/image/eraser-cursor.png","../src/image/shape-cursor.svg","../src/image/text-cursor.svg","../src/Cursor/Cursor.ts","../src/Cursor/index.ts","../src/sdk.ts","../src/index.ts","../src/Utils/RoomHacker.ts"],"sourcesContent":["export enum Events {\n AppMove = \"AppMove\",\n AppFocus = \"AppFocus\",\n AppResize = \"AppResize\",\n AppBoxStateChange = \"AppBoxStateChange\",\n GetAttributes = \"GetAttributes\",\n UpdateWindowManagerWrapper = \"UpdateWindowManagerWrapper\",\n InitReplay = \"InitReplay\",\n WindowCreated = \"WindowCreated\",\n SetMainViewScenePath = \"SetMainViewScenePath\",\n SetMainViewSceneIndex = \"SetMainViewSceneIndex\",\n SwitchViewsToFreedom = \"SwitchViewsToFreedom\",\n}\n\nexport const MagixEventName = \"__WindowManger\";\n\nexport enum AppAttributes {\n Size = \"size\",\n Position = \"position\",\n SceneIndex = \"SceneIndex\",\n ZIndex = \"zIndex\",\n}\n\nexport enum AppEvents {\n setBoxSize = \"setBoxSize\",\n setBoxMinSize = \"setBoxMinSize\",\n destroy = \"destroy\",\n}\n\nexport enum AppStatus {\n StartCreate = \"StartCreate\",\n}\n\nexport enum CursorState {\n Leave = \"leave\",\n Normal = \"normal\",\n}\n\nexport const REQUIRE_VERSION = \"2.13.16\";\n\nexport const MIN_WIDTH = 340 / 720;\nexport const MIN_HEIGHT = 340 / 720;\n\nexport const SET_SCENEPATH_DELAY = 100; // 设置 scenePath 的延迟事件\n\nexport const DEFAULT_COLLECTOR_STYLE = { right: \"10px\", bottom: \"15px\", position: \"absolute\" };\n\nexport const DEFAULT_CONTAINER_RATIO = 9 / 16;\n","const DatabaseName = \"__WindowManagerAppCache\";\n\nlet db: IDBDatabase;\nlet store: IDBObjectStore;\n\nexport const initDb = async () => {\n db = await createDb();\n}\n\nexport const setItem = (key: string, val: any) => {\n if (!db) return;\n return addRecord(db, { kind: key, sourceCode: val })\n};\n\nexport const getItem = async (key: string): Promise<string | null> => {\n if (!db) return null;\n return await query(db, key);\n};\n\nexport const removeItem = (key: string) => {\n if (!db) return;\n return deleteRecord(db, key);\n};\n\nfunction createDb(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(DatabaseName, 2);\n request.onerror = (e) => {\n reject(e);\n }\n\n request.onupgradeneeded = (event: any) => {\n const db = event.target.result as IDBDatabase;\n if (!db.objectStoreNames.contains(\"apps\")) {\n store = db.createObjectStore(\"apps\", { keyPath: \"kind\" });\n store.createIndex(\"kind\", \"kind\", { unique: true });\n }\n }\n\n request.onsuccess = () => {\n const db = request.result;\n resolve(db);\n }\n })\n}\n\nfunction query<T>(db: IDBDatabase, val: string): Promise<T | null> {\n return new Promise((resolve, reject) => {\n const index = db.transaction([\"apps\"]).objectStore(\"apps\").index(\"kind\");\n const request = index.get(val);\n request.onerror = (e) => reject(e);\n request.onsuccess = () => {\n if (request.result) {\n resolve(request.result);\n } else {\n resolve(null);\n }\n }\n })\n}\n\nfunction addRecord(db: IDBDatabase, payload: any): Promise<void> {\n return new Promise((resolve, reject) => {\n const request = db.transaction([\"apps\"], \"readwrite\").objectStore(\"apps\").add(payload);\n request.onsuccess = () => resolve();\n request.onerror = () => reject();\n })\n}\n\nfunction deleteRecord(db: IDBDatabase, key: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const request = db.transaction([\"apps\"], \"readwrite\").objectStore(\"apps\").delete(key);\n request.onsuccess = () => resolve();\n request.onerror = () => reject();\n })\n}\n","import { getItem, setItem } from \"./storage\";\nimport type { NetlessApp } from \"../typings\";\n\nconst Prefix = \"NetlessApp\";\n\nconst TIMEOUT = 10000; // 10 秒超时\n\nexport const getScript = async (url: string): Promise<string> => {\n const item = await getItem(url);\n if (item) {\n return item;\n } else {\n const result = await fetchWithTimeout(url, { timeout: TIMEOUT });\n const text = await result.text();\n await setItem(url, text);\n return text;\n }\n};\n\nexport const executeScript = (text: string, appName: string): NetlessApp => {\n let result = Function(text + `;return ${appName}`)();\n if (typeof result === \"undefined\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n result = window[appName];\n }\n return result;\n};\n\nexport const loadApp = async (\n url: string,\n key: string,\n name?: string\n): Promise<NetlessApp | undefined> => {\n const appName = name || Prefix + key;\n const text = await getScript(url);\n try {\n return executeScript(text, appName);\n } catch (error: any) {\n if (error.message.includes(\"Can only have one anonymous define call per script file\")) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const define = window.define;\n if (\"function\" == typeof define && define.amd) {\n delete define.amd;\n }\n return executeScript(text, appName);\n }\n }\n};\n\nasync function fetchWithTimeout(resource: string, options: RequestInit & { timeout: number }) {\n const { timeout = 10000 } = options;\n\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n\n const response = await fetch(resource, {\n ...options,\n signal: controller.signal,\n headers: {\n \"content-type\": \"text/plain\",\n },\n });\n clearTimeout(id);\n\n return response;\n}\n","import Emittery from \"emittery\";\nimport type { NetlessApp, RegisterEvents, RegisterParams } from \"../typings\";\nimport { loadApp } from \"./loader\";\n\nclass AppRegister {\n public kindEmitters: Map<string, Emittery<RegisterEvents>> = new Map();\n public registered: Map<string, RegisterParams> = new Map();\n public appClassesCache: Map<string, Promise<NetlessApp>> = new Map();\n public appClasses: Map<string, () => Promise<NetlessApp>> = new Map();\n\n public async register(params: RegisterParams): Promise<void> {\n this.registered.set(params.kind, params);\n \n const srcOrAppOrFunction = params.src\n let downloadApp: () => Promise<NetlessApp>\n \n if (typeof srcOrAppOrFunction === \"string\") {\n downloadApp = async () => {\n const appClass = await loadApp(srcOrAppOrFunction, params.kind);\n if (appClass) {\n return appClass\n } else {\n throw new Error(`[WindowManager]: load remote script failed, ${srcOrAppOrFunction}`);\n }\n }\n } else if (typeof srcOrAppOrFunction === \"function\") {\n downloadApp = srcOrAppOrFunction\n } else {\n downloadApp = async () => srcOrAppOrFunction\n }\n\n this.appClasses.set(params.kind, async () => {\n let app = this.appClassesCache.get(params.kind)\n if (!app) {\n app = downloadApp()\n this.appClassesCache.set(params.kind, app)\n }\n return app\n });\n \n if (params.addHooks) {\n const emitter = this.createKindEmitter(params.kind);\n if (emitter) {\n params.addHooks(emitter);\n }\n }\n }\n\n public async notifyApp<T extends keyof RegisterEvents>(kind: string, event: T, payload: RegisterEvents[T]) {\n const emitter = this.kindEmitters.get(kind);\n await emitter?.emit(event, payload);\n }\n\n private createKindEmitter(kind: string) {\n if (!this.kindEmitters.has(kind)) {\n const emitter = new Emittery<RegisterEvents>();\n this.kindEmitters.set(kind, emitter);\n }\n return this.kindEmitters.get(kind);\n }\n}\n\nexport const appRegister = new AppRegister();\n","import { appRegister } from '../Register';\nimport { debounce } from 'lodash';\nimport { emitter } from '../index';\nimport { v4 } from 'uuid';\nimport type { PublicEvent } from \"../index\";\nimport type { Displayer, ViewVisionMode, Room, View } from \"white-web-sdk\";\nimport type Emittery from \"emittery\";\n\nexport const genAppId = async (kind: string) => {\n const impl = await appRegister.appClasses.get(kind)?.();\n if (impl && impl.config?.singleton) {\n return kind;\n }\n return `${kind}-${v4().replace(\"-\", \"\").slice(0, 8)}`;\n};\n\nexport const setViewFocusScenePath = (view: View, focusScenePath: string) => {\n if (view.focusScenePath !== focusScenePath) {\n view.focusScenePath = focusScenePath;\n }\n};\n\nexport const setScenePath = (room: Room | undefined, scenePath: string) => {\n if (room && room.isWritable) {\n if (room.state.sceneState.scenePath !== scenePath) {\n room.setScenePath(scenePath);\n }\n }\n}\n\nexport const setViewMode = (view: View, mode: ViewVisionMode) => {\n if (!(view as any).didRelease && view.mode !== mode) {\n view.mode = mode;\n }\n};\n\nexport const emitError = (error: Error) => {\n if (emitter.listenerCount(\"error\") > 0) {\n emitter.emit(\"error\", error);\n } else {\n console.log(\"[WindowManager]:\", error);\n }\n};\n\nexport const addEmitterOnceListener = (event: any, listener: any) => {\n emitter.once(event).then(listener);\n}\n\nexport const notifyMainViewModeChange = debounce(\n (callbacks: Emittery<PublicEvent>, mode: ViewVisionMode) => {\n callbacks.emit(\"mainViewModeChange\", mode);\n },\n 200\n);\n\nexport const makeValidScenePath = (displayer: Displayer, scenePath: string) => {\n const scenes = displayer.entireScenes()[scenePath];\n const firstSceneName = scenes[0].name;\n if (scenePath === \"/\") {\n return `/${firstSceneName}`;\n } else {\n return `${scenePath}/${firstSceneName}`;\n }\n};\n\nexport const isValidScenePath = (scenePath: string) => {\n return scenePath.startsWith(\"/\");\n}\n\nexport const ensureValidScenePath = (scenePath: string) => {\n if (scenePath.endsWith(\"/\")) {\n return scenePath.slice(0, -1);\n } else {\n return scenePath;\n }\n}\n\nexport const getVersionNumber = (version: string) => {\n const versionString = version.split(\".\").map(s => s.padStart(2, \"0\")).join(\"\");\n return parseInt(versionString);\n};\n\nexport const wait = (time: number) => new Promise((resolve) => setTimeout(resolve, time));\n","import { callbacks } from './index';\nimport { Events, MagixEventName } from './constants';\nimport type { Event } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { TeleBoxState } from \"@netless/telebox-insider\";\nimport { setViewFocusScenePath } from './Utils/Common';\n\nexport class AppListeners {\n private displayer = this.manager.displayer;\n private boxManager = this.manager.boxManager;\n\n constructor(private manager: AppManager) {}\n\n public addListeners() {\n this.displayer.addMagixEventListener(MagixEventName, this.mainMagixEventListener);\n }\n\n public removeListeners() {\n this.displayer.removeMagixEventListener(MagixEventName, this.mainMagixEventListener);\n }\n\n private mainMagixEventListener = (event: Event) => {\n if (event.authorId !== this.displayer.observerId) {\n const data = event.payload;\n switch (data.eventName) {\n case Events.AppMove: {\n this.appMoveHandler(data.payload);\n break;\n }\n case Events.AppResize: {\n this.appResizeHandler(data.payload);\n break;\n }\n case Events.SwitchViewsToFreedom: {\n this.switchViewsToFreedomHandler();\n break;\n }\n case Events.AppBoxStateChange: {\n this.boxStateChangeHandler(data.payload);\n break;\n }\n case Events.SetMainViewScenePath: {\n this.setMainViewScenePathHandler(data.payload);\n break;\n }\n default:\n break;\n }\n }\n };\n\n private appMoveHandler = (payload: any) => {\n this.boxManager.moveBox(payload);\n };\n\n private appResizeHandler = (payload: any) => {\n this.boxManager.resizeBox(Object.assign(payload, { skipUpdate: true }));\n this.manager.room?.refreshViewSize();\n };\n\n private switchViewsToFreedomHandler = () => {\n this.manager.viewManager.freedomAllViews();\n };\n\n private boxStateChangeHandler = (state: TeleBoxState) => {\n callbacks.emit(\"boxStateChange\", state);\n }\n\n private setMainViewScenePathHandler = ({ nextScenePath }: { nextScenePath: string }) => {\n setViewFocusScenePath(this.manager.mainView, nextScenePath);\n }\n}\n","export class AppCreateError extends Error {\n override message = \"[WindowManager]: app duplicate exists and cannot be created again\";\n}\n\nexport class AppNotRegisterError extends Error {\n constructor(kind: string) {\n super(`[WindowManager]: app ${kind} need register or provide src`);\n }\n}\n\nexport class AppManagerNotInitError extends Error {\n override message = \"[WindowManager]: AppManager must be initialized\";\n}\n\nexport class WhiteWebSDKInvalidError extends Error {\n constructor(version: string) {\n super(`[WindowManager]: white-web-sdk version must large than ${version}`);\n }\n}\n\nexport class ParamsInvalidError extends Error {\n override message = \"[WindowManager]: kind must be a valid string\";\n}\n\nexport class BoxNotCreatedError extends Error {\n override message = \"[WindowManager]: box need created\";\n}\n\nexport class InvalidScenePath extends Error {\n override message = `[WindowManager]: ScenePath should start with \"/\"`;\n}","import {\n autorun,\n listenDisposed,\n listenUpdated,\n reaction,\n unlistenDisposed,\n unlistenUpdated,\n toJS\n } from 'white-web-sdk';\nimport { BoxNotCreatedError } from './Utils/error';\nimport type { Room, SceneDefinition, View } from \"white-web-sdk\";\nimport type { ReadonlyTeleBox } from \"@netless/telebox-insider\";\nimport type Emittery from \"emittery\";\nimport type { BoxManager } from \"./BoxManager\";\nimport type { AppEmitterEvent } from \"./index\";\nimport type { AppManager } from \"./AppManager\";\nimport type { AppProxy } from \"./AppProxy\";\n\nexport class AppContext<TAttrs extends Record<string, any>, AppOptions = any> {\n public readonly emitter: Emittery<AppEmitterEvent<TAttrs>>;\n public readonly mobxUtils = {\n autorun,\n reaction,\n toJS\n };\n public readonly objectUtils = {\n listenUpdated,\n unlistenUpdated,\n listenDisposed,\n unlistenDisposed\n };\n private boxManager: BoxManager;\n private store = this.manager.store;\n public readonly isAddApp: boolean;\n public readonly isReplay = this.manager.isReplay;\n\n constructor(\n private manager: AppManager,\n public appId: string,\n private appProxy: AppProxy,\n private appOptions?: AppOptions | (() => AppOptions),\n ) {\n this.emitter = appProxy.appEmitter;\n this.boxManager = this.manager.boxManager;\n this.isAddApp = appProxy.isAddApp;\n }\n\n public getDisplayer() {\n return this.manager.displayer;\n }\n\n public getAttributes(): TAttrs | undefined {\n return this.appProxy.attributes;\n }\n\n public getScenes(): SceneDefinition[] | undefined {\n const appAttr = this.store.getAppAttributes(this.appId);\n if (appAttr?.isDynamicPPT) {\n const appProxy = this.manager.appProxies.get(this.appId);\n if (appProxy) {\n return appProxy.scenes;\n }\n } else {\n return appAttr?.options[\"scenes\"];\n }\n }\n\n public getView(): View | undefined {\n return this.appProxy.view;\n }\n\n public getInitScenePath() {\n return this.manager.getAppInitPath(this.appId);\n }\n\n public getIsWritable(): boolean {\n return this.manager.canOperate;\n }\n\n public getBox(): ReadonlyTeleBox {\n const box = this.boxManager.getBox(this.appId);\n if (box) {\n return box;\n } else {\n throw new BoxNotCreatedError();\n }\n }\n\n public getRoom(): Room | undefined {\n return this.manager.room;\n }\n\n public setAttributes(attributes: TAttrs) {\n this.manager.safeSetAttributes({ [this.appId]: attributes });\n }\n\n public updateAttributes(keys: string[], value: any) {\n if (this.manager.attributes[this.appId]) {\n this.manager.safeUpdateAttributes([this.appId, ...keys], value);\n }\n }\n\n public async setScenePath(scenePath: string): Promise<void> {\n if (!this.appProxy.box) return;\n this.appProxy.setFullPath(scenePath);\n this.appProxy.context.switchAppToWriter(this.appId);\n }\n\n public mountView(dom: HTMLDivElement): void {\n const view = this.getView();\n if (view) {\n view.divElement = dom;\n setTimeout(() => {\n // 渲染需要时间,延迟 refresh\n this.getRoom()?.refreshViewSize();\n }, 1000);\n }\n }\n\n public getAppOptions(): AppOptions | undefined {\n return typeof this.appOptions === 'function' ? (this.appOptions as () => AppOptions)() : this.appOptions\n }\n}\n","import { AppAttributes } from \"./constants\";\nimport { get, pick } from \"lodash\";\nimport { setViewFocusScenePath } from \"./Utils/Common\";\nimport type { AddAppParams, AppSyncAttributes } from \"./index\";\nimport type { Camera, Size } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { Cursor } from \"./Cursor/Cursor\";\n\nexport enum Fields {\n Apps = \"apps\",\n Focus = \"focus\",\n State = \"state\",\n BoxState = \"boxState\",\n MainViewCamera = \"mainViewCamera\",\n MainViewSize = \"mainViewSize\",\n Broadcaster = \"broadcaster\",\n Cursors = \"cursors\",\n Position = \"position\",\n CursorState = \"cursorState\",\n FullPath = \"fullPath\"\n}\n\nexport type Apps = {\n [key: string]: AppSyncAttributes;\n};\n\nexport type Position = {\n x: number;\n y: number;\n type: PositionType;\n id?: string;\n};\n\nexport type PositionType = \"main\" | \"app\";\n\nexport class AttributesDelegate {\n constructor(private manager: AppManager) {}\n\n public apps(): Apps {\n return get(this.manager.attributes, [Fields.Apps]);\n }\n\n public get focus(): string | undefined {\n return get(this.manager.attributes, [Fields.Focus]);\n }\n\n public getAppAttributes(id: string): AppSyncAttributes {\n return get(this.apps(), [id]);\n }\n\n public getAppState(id: string) {\n return get(this.apps(), [id, Fields.State]);\n }\n\n public getMaximized() {\n return get(this.manager.attributes, [\"maximized\"])\n }\n\n public setupAppAttributes(params: AddAppParams, id: string, isDynamicPPT: boolean) {\n const attributes = this.manager.attributes;\n if (!attributes.apps) {\n this.manager.safeSetAttributes({ apps: {} });\n }\n const attrNames = [\"scenePath\", \"title\"];\n if (!isDynamicPPT) {\n attrNames.push(\"scenes\");\n }\n const options = pick(params.options, attrNames);\n const attrs: AppSyncAttributes = { kind: params.kind, options, isDynamicPPT };\n if (typeof params.src === \"string\") {\n attrs.src = params.src;\n }\n this.manager.safeUpdateAttributes([Fields.Apps, id], attrs);\n this.manager.safeUpdateAttributes([Fields.Apps, id, Fields.State], {\n [AppAttributes.Size]: {},\n [AppAttributes.Position]: {},\n [AppAttributes.SceneIndex]: 0,\n [AppAttributes.ZIndex]: 100,\n });\n }\n\n public updateAppState(appId: string, stateName: AppAttributes, state: any) {\n if (get(this.manager.attributes, [Fields.Apps, appId, Fields.State])) {\n this.manager.safeUpdateAttributes([Fields.Apps, appId, Fields.State, stateName], state);\n }\n }\n\n public cleanAppAttributes(id: string) {\n this.manager.safeUpdateAttributes([Fields.Apps, id], undefined);\n this.manager.safeSetAttributes({ [id]: undefined });\n const focus = this.manager.attributes[Fields.Focus];\n if (focus === id) {\n this.cleanFocus();\n }\n }\n\n public cleanFocus() {\n this.manager.safeSetAttributes({ [Fields.Focus]: undefined });\n }\n\n public getAppSceneIndex(id: string) {\n return this.getAppState(id)?.[AppAttributes.SceneIndex];\n }\n\n public getAppScenePath(id: string) {\n return this.getAppAttributes(id)?.options?.scenePath;\n }\n\n public getMainViewScenePath() {\n return this.manager.attributes[\"_mainScenePath\"];\n }\n\n public getMainViewSceneIndex() {\n return this.manager.attributes[\"_mainSceneIndex\"];\n }\n\n public getBoxState() {\n return this.manager.attributes[Fields.BoxState];\n }\n\n public setMainViewScenePath(scenePath: string) {\n this.manager.safeSetAttributes({ _mainScenePath: scenePath });\n }\n\n public setMainViewSceneIndex(index: number) {\n this.manager.safeSetAttributes({ _mainSceneIndex: index });\n }\n\n public getMainViewCamera(): MainViewCamera {\n return get(this.manager.attributes, [Fields.MainViewCamera]);\n }\n\n public getMainViewSize(): MainViewSize {\n return get(this.manager.attributes, [Fields.MainViewSize]);\n }\n\n public setMainViewCamera(camera: Camera & { id: string } | undefined) {\n this.manager.safeSetAttributes({ [Fields.MainViewCamera]: { ...camera } });\n }\n\n public setMainViewSize(size: Size & { id: string } | undefined) {\n this.manager.safeSetAttributes({ [Fields.MainViewSize]: { ...size } });\n }\n\n public setAppFocus(appId: string, focus: boolean) {\n if (focus) {\n this.manager.safeSetAttributes({ [Fields.Focus]: appId });\n } else {\n this.manager.safeSetAttributes({ [Fields.Focus]: undefined });\n }\n }\n\n public updateCursor(uid: string, position: Position) {\n if (!get(this.manager.attributes, [Fields.Cursors])) {\n this.manager.safeUpdateAttributes([Fields.Cursors], {});\n }\n if (!get(this.manager.attributes, [Fields.Cursors, uid])) {\n this.manager.safeUpdateAttributes([Fields.Cursors, uid], {});\n }\n this.manager.safeUpdateAttributes([Fields.Cursors, uid, Fields.Position], position);\n }\n\n public updateCursorState(uid: string, cursorState: string | undefined) {\n if (!get(this.manager.attributes, [Fields.Cursors, uid])) {\n this.manager.safeUpdateAttributes([Fields.Cursors, uid], {});\n }\n this.manager.safeUpdateAttributes(\n [Fields.Cursors, uid, Fields.CursorState],\n cursorState\n );\n }\n\n public getCursorState(uid: string) {\n return get(this.manager.attributes, [Fields.Cursors, uid, Fields.CursorState]);\n }\n\n public cleanCursor(uid: string) {\n this.manager.safeUpdateAttributes([Fields.Cursors, uid], undefined);\n }\n\n // TODO 状态中保存一个 SceneName 优化性能\n public setMainViewFocusPath() {\n const scenePath = this.getMainViewScenePath();\n if (scenePath) {\n setViewFocusScenePath(this.manager.mainView, scenePath);\n }\n }\n}\n\nexport type MainViewSize = {\n id: string;\n width: number;\n height: number;\n}\n\nexport type MainViewCamera = {\n id: string;\n centerX: number;\n centerY: number;\n scale: number;\n}\n\nexport type Cursors = {\n [key: string]: Cursor;\n}\n","import { WindowManager } from \"../index\";\n\nexport const log = (...args: any[]): void => {\n if (WindowManager.debug) {\n console.log(`[WindowManager]:`, ...args);\n }\n};\n","import { emitter } from \"../index\";\nimport type { AppManager } from \"../AppManager\";\n\nexport class Context {\n public observerId: number;\n\n constructor(private manager: AppManager) {\n this.observerId = manager.displayer.observerId;\n\n emitter.on(\"observerIdChange\", id => {\n this.observerId = id;\n });\n };\n\n public get uid() {\n return this.manager.room?.uid || \"\";\n }\n\n public findMember = (memberId: number) => {\n const roomMembers = this.manager.room?.state.roomMembers;\n return roomMembers?.find(member => member.memberId === memberId);\n }\n\n public findMemberByUid = (uid: string) => {\n const roomMembers = this.manager.room?.state.roomMembers;\n return roomMembers?.find(member => member.payload?.uid === uid);\n }\n\n public updateManagerRect() {\n this.manager.boxManager.updateManagerRect();\n }\n\n public blurFocusBox() {\n this.manager.boxManager.blurAllBox();\n }\n\n public switchAppToWriter(id: string) {\n this.manager.viewManager.switchAppToWriter(id);\n }\n}\n\nlet context: Context;\n\nexport const createContext = (manager: AppManager) => {\n if (!context) {\n context = new Context(manager);\n }\n return context;\n};\n","import type { AppManager } from \"../AppManager\";\nimport { AttributesDelegate } from \"../AttributesDelegate\";\nimport { createContext } from \"./Context\";\n\nexport class Base {\n public store = new AttributesDelegate(this.manager);\n public context = createContext(this.manager);\n\n constructor(public manager: AppManager) {}\n}\n","import Emittery from \"emittery\";\nimport { AppAttributes, AppEvents, Events } from \"./constants\";\nimport { AppContext } from \"./AppContext\";\nimport { appRegister } from \"./Register\";\nimport { autorun, ViewVisionMode } from \"white-web-sdk\";\nimport { callbacks, emitter } from \"./index\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { get } from \"lodash\";\nimport { log } from \"./Utils/log\";\nimport {\n notifyMainViewModeChange,\n setScenePath,\n setViewFocusScenePath,\n setViewMode,\n} from \"./Utils/Common\";\nimport type {\n AppEmitterEvent,\n AppInitState,\n BaseInsertParams,\n setAppOptions,\n AppListenerKeys,\n} from \"./index\";\nimport type { SceneState, View, SceneDefinition } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { NetlessApp } from \"./typings\";\nimport type { ReadonlyTeleBox } from \"@netless/telebox-insider\";\nimport { Base } from \"./Base\";\n\nexport class AppProxy extends Base {\n public id: string;\n public scenePath?: string;\n public appEmitter: Emittery<AppEmitterEvent>;\n public scenes?: SceneDefinition[];\n\n private appListener: any;\n private boxManager = this.manager.boxManager;\n private appProxies = this.manager.appProxies;\n private viewManager = this.manager.viewManager;\n private cameraStore = this.manager.cameraStore;\n private kind: string;\n public isAddApp: boolean;\n private status: \"normal\" | \"destroyed\" = \"normal\";\n private stateKey: string;\n\n constructor(\n private params: BaseInsertParams,\n manager: AppManager,\n appId: string,\n isAddApp: boolean\n ) {\n super(manager);\n this.kind = params.kind;\n this.id = appId;\n this.stateKey = `${this.id}_state`;\n this.appProxies.set(this.id, this);\n this.appEmitter = new Emittery();\n this.appListener = this.makeAppEventListener(this.id);\n this.isAddApp = isAddApp;\n\n this.initScenes();\n\n if (this.params.options?.scenePath) {\n // 只有传入了 scenePath 的 App 才会创建 View\n this.createView();\n }\n }\n\n private initScenes() {\n const options = this.params.options;\n if (options) {\n this.scenePath = options.scenePath;\n if (this.appAttributes?.isDynamicPPT && this.scenePath) {\n this.scenes = this.manager.displayer.entireScenes()[this.scenePath];\n } else {\n this.scenes = options.scenes;\n }\n }\n }\n\n public get view(): View | undefined {\n return this.manager.viewManager.getView(this.id);\n }\n\n public get isWritable(): boolean {\n return this.manager.canOperate && !this.box?.readonly;\n }\n\n public get attributes() {\n return this.manager.attributes[this.id];\n }\n\n public get appAttributes() {\n return this.store.getAppAttributes(this.id);\n }\n\n public getFullScenePath(): string | undefined {\n if (this.scenePath) {\n return get(this.appAttributes, [Fields.FullPath], this.scenePath);\n }\n }\n\n public setFullPath(path: string) {\n this.manager.safeUpdateAttributes([\"apps\", this.id, Fields.FullPath], path);\n }\n\n public async baseInsertApp(\n skipUpdate = false,\n focus?: boolean\n ): Promise<{ appId: string; app: NetlessApp }> {\n const params = this.params;\n if (!params.kind) {\n throw new Error(\"[WindowManager]: kind require\");\n }\n const appImpl = await appRegister.appClasses.get(params.kind)?.();\n const appParams = appRegister.registered.get(params.kind);\n if (appImpl) {\n await this.setupApp(this.id, skipUpdate, appImpl, params.options, appParams?.appOptions);\n } else {\n throw new Error(`[WindowManager]: app load failed ${params.kind} ${params.src}`);\n }\n this.context.updateManagerRect();\n if (focus) {\n this.focusApp();\n }\n return {\n appId: this.id,\n app: appImpl,\n };\n }\n\n private focusApp() {\n this.focusBox();\n this.context.switchAppToWriter(this.id);\n this.store.setMainViewFocusPath();\n }\n\n public get box(): ReadonlyTeleBox | undefined {\n return this.boxManager.getBox(this.id);\n }\n\n public focusBox() {\n this.boxManager.focusBox({ appId: this.id });\n }\n\n private async setupApp(\n appId: string,\n skipUpdate: boolean,\n app: NetlessApp,\n options?: setAppOptions,\n appOptions?: any\n ) {\n log(\"setupApp\", appId, app, options);\n const context = new AppContext(this.manager, appId, this, appOptions);\n try {\n emitter.once(`${appId}${Events.WindowCreated}` as any).then(async () => {\n let boxInitState: AppInitState | undefined;\n if (!skipUpdate) {\n boxInitState = this.getAppInitState(appId);\n this.boxManager.updateBoxState(boxInitState);\n }\n this.appEmitter.onAny(this.appListener);\n this.appAttributesUpdateListener(appId);\n this.setViewFocusScenePath();\n setTimeout(async () => {\n // 延迟执行 setup, 防止初始化的属性没有更新成功\n const result = await app.setup(context);\n appRegister.notifyApp(app.kind, \"created\", { appId, result });\n this.afterSetupApp(boxInitState);\n this.fixMobileSize();\n }, 50);\n });\n this.boxManager.createBox({\n appId: appId,\n app,\n options,\n canOperate: this.manager.canOperate,\n smartPosition: this.isAddApp,\n });\n } catch (error: any) {\n console.error(error);\n throw new Error(`[WindowManager]: app setup error: ${error.message}`);\n }\n }\n\n // 兼容移动端创建时会出现 PPT 不适配的问题\n private fixMobileSize() {\n const box = this.boxManager.getBox(this.id);\n if (box) {\n this.boxManager.resizeBox({\n appId: this.id,\n width: box.intrinsicWidth + 0.001,\n height: box.intrinsicHeight + 0.001,\n skipUpdate: true,\n });\n }\n }\n\n private afterSetupApp(boxInitState: AppInitState | undefined): void {\n if (boxInitState) {\n if (boxInitState.focus && this.scenePath) {\n this.context.switchAppToWriter(this.id);\n }\n if (!boxInitState?.x || !boxInitState.y) {\n this.boxManager.setBoxInitState(this.id);\n }\n }\n }\n\n public onSeek(time: number) {\n this.appEmitter.emit(\"seek\", time);\n const boxInitState = this.getAppInitState(this.id);\n this.boxManager.updateBoxState(boxInitState);\n }\n\n public async onReconnected() {\n this.appEmitter.emit(\"reconnected\", undefined);\n const currentAppState = this.getAppInitState(this.id);\n await this.destroy(true, false, true);\n const params = this.params;\n const appProxy = new AppProxy(params, this.manager, this.id, this.isAddApp);\n await appProxy.baseInsertApp(true, this.store.focus === this.id);\n this.boxManager.updateBoxState(currentAppState);\n }\n\n public switchToWritable() {\n appRegister.notifyApp(this.kind, \"focus\", { appId: this.id });\n this.cameraStore.switchView(this.id, this.view, () => {\n if (this.view) {\n if (this.view.mode === ViewVisionMode.Writable) return;\n try {\n if (this.manager.mainView.mode === ViewVisionMode.Writable) {\n this.store.setMainViewFocusPath();\n notifyMainViewModeChange(callbacks, ViewVisionMode.Freedom);\n setViewMode(this.manager.mainView, ViewVisionMode.Freedom);\n }\n setViewMode(this.view, ViewVisionMode.Writable);\n } catch (error) {\n log(\"switch view failed\", error);\n }\n }\n });\n }\n\n public getAppInitState = (id: string) => {\n const attrs = this.store.getAppState(id);\n if (!attrs) return;\n const position = attrs?.[AppAttributes.Position];\n const focus = this.store.focus;\n const size = attrs?.[AppAttributes.Size];\n const sceneIndex = attrs?.[AppAttributes.SceneIndex];\n const maximized = this.attributes?.[\"maximized\"];\n const minimized = this.attributes?.[\"minimized\"];\n const zIndex = attrs?.zIndex;\n let payload = { maximized, minimized, zIndex } as AppInitState;\n if (position) {\n payload = { ...payload, id: id, x: position.x, y: position.y };\n }\n if (focus === id) {\n payload = { ...payload, focus: true };\n }\n if (size) {\n payload = { ...payload, width: size.width, height: size.height };\n }\n if (sceneIndex) {\n payload = { ...payload, sceneIndex };\n }\n return payload;\n };\n\n public emitAppSceneStateChange(sceneState: SceneState) {\n this.appEmitter.emit(\"sceneStateChange\", sceneState);\n }\n\n public emitAppIsWritableChange() {\n this.appEmitter.emit(\"writableChange\", this.isWritable);\n }\n\n private makeAppEventListener(appId: string) {\n return (eventName: AppListenerKeys, data: any) => {\n if (!this.manager.canOperate) return;\n switch (eventName) {\n case \"setBoxSize\": {\n this.boxManager.resizeBox({\n appId,\n width: data.width,\n height: data.height,\n skipUpdate: false,\n });\n break;\n }\n case \"setBoxMinSize\": {\n this.boxManager.setBoxMinSize({\n appId,\n minWidth: data.minwidth,\n minHeight: data.minheight,\n });\n break;\n }\n case \"setBoxTitle\": {\n this.boxManager.setBoxTitle({ appId, title: data.title });\n break;\n }\n case AppEvents.destroy: {\n if (this.status === \"destroyed\") return;\n this.destroy(true, false, true, data?.error);\n if (data?.error) {\n console.error(data?.error);\n }\n break;\n }\n case \"focus\": {\n this.boxManager.focusBox({ appId: this.id });\n emitter.emit(\"focus\", { appId: this.id });\n break;\n }\n default: {\n break;\n }\n }\n };\n }\n\n private appAttributesUpdateListener = (appId: string) => {\n this.manager.refresher?.add(appId, () => {\n return autorun(() => {\n const attrs = this.manager.attributes[appId];\n if (attrs) {\n this.appEmitter.emit(\"attributesUpdate\", attrs);\n }\n });\n });\n this.manager.refresher?.add(this.stateKey, () => {\n return autorun(() => {\n const appState = this.appAttributes?.state;\n if (appState?.zIndex > 0 && appState.zIndex !== this.box?.zIndex) {\n this.boxManager?.setZIndex(appId, appState.zIndex);\n }\n });\n });\n };\n\n public setScenePath(): void {\n if (!this.manager.canOperate) return;\n const fullScenePath = this.getFullScenePath();\n if (this.manager.room && fullScenePath && this.view) {\n setScenePath(this.manager.room, fullScenePath);\n }\n }\n\n public setViewFocusScenePath() {\n const fullPath = this.getFullScenePath();\n if (fullPath && this.view) {\n setViewFocusScenePath(this.view, fullPath);\n }\n }\n\n private async createView(): Promise<View> {\n const view = await this.viewManager.createView(this.id);\n this.cameraStore.register(this.id, view);\n this.setViewFocusScenePath();\n return view;\n }\n\n public async destroy(\n needCloseBox: boolean,\n cleanAttrs: boolean,\n skipUpdate: boolean,\n error?: Error\n ) {\n if (this.status === \"destroyed\") return;\n this.status = \"destroyed\";\n await appRegister.notifyApp(this.kind, \"destroy\", { appId: this.id });\n await this.appEmitter.emit(\"destroy\", { error });\n this.appEmitter.clearListeners();\n emitter.emit(`destroy-${this.id}` as any, { error });\n if (needCloseBox) {\n this.boxManager.closeBox(this.id, skipUpdate);\n }\n if (cleanAttrs) {\n this.store.cleanAppAttributes(this.id);\n }\n this.appProxies.delete(this.id);\n this.cameraStore.unregister(this.id, this.view);\n\n this.viewManager.destroyView(this.id);\n this.manager.appStatus.delete(this.id);\n this.manager.refresher?.remove(this.id);\n }\n\n public close(): Promise<void> {\n return this.destroy(true, true, false);\n }\n}\n","import { callbacks, emitter, WindowManager } from \"./index\";\nimport { debounce, maxBy } from \"lodash\";\nimport { AppAttributes, Events, MIN_HEIGHT, MIN_WIDTH } from \"./constants\";\nimport {\n TELE_BOX_MANAGER_EVENT,\n TELE_BOX_STATE,\n TeleBoxCollector,\n TeleBoxManager,\n} from \"@netless/telebox-insider\";\nimport type { AddAppOptions, AppInitState } from \"./index\";\nimport type {\n TeleBoxManagerUpdateConfig,\n TeleBoxManagerCreateConfig,\n ReadonlyTeleBox,\n TeleBoxManagerConfig,\n TeleBoxColorScheme,\n} from \"@netless/telebox-insider\";\nimport type Emittery from \"emittery\";\nimport type { AppManager } from \"./AppManager\";\nimport type { NetlessApp } from \"./typings\";\nimport type { View } from \"white-web-sdk\";\n\nexport { TELE_BOX_STATE };\n\nexport type CreateBoxParams = {\n appId: string;\n app: NetlessApp;\n view?: View;\n emitter?: Emittery;\n options?: AddAppOptions;\n canOperate?: boolean;\n smartPosition?: boolean;\n};\n\ntype AppId = { appId: string };\n\ntype MoveBoxParams = AppId & { x: number; y: number };\n\ntype ResizeBoxParams = AppId & { width: number; height: number; skipUpdate: boolean };\n\ntype SetBoxMinSizeParams = AppId & { minWidth: number; minHeight: number };\n\ntype SetBoxTitleParams = AppId & { title: string };\n\nexport type CreateTeleBoxManagerConfig = {\n collectorContainer?: HTMLElement;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n prefersColorScheme?: TeleBoxColorScheme;\n};\n\nexport class BoxManager {\n public teleBoxManager: TeleBoxManager;\n public appBoxMap: Map<string, string> = new Map();\n private mainView = this.manager.mainView;\n\n constructor(\n private manager: AppManager,\n createTeleBoxManagerConfig?: CreateTeleBoxManagerConfig\n ) {\n this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);\n this.teleBoxManager.events.on(TELE_BOX_MANAGER_EVENT.State, state => {\n if (state) {\n callbacks.emit(\"boxStateChange\", state);\n emitter.emit(\"boxStateChange\", state);\n }\n });\n this.teleBoxManager.events.on(\"minimized\", minimized => {\n this.manager.safeSetAttributes({ minimized });\n if (minimized) {\n this.manager.store.cleanFocus();\n this.blurAllBox();\n } else {\n if (this.teleBoxManager.topBox) {\n this.manager.store.setAppFocus(this.teleBoxManager.topBox.id, true);\n this.teleBoxManager.focusBox(this.teleBoxManager.topBox.id);\n }\n }\n });\n this.teleBoxManager.events.on(\"maximized\", maximized => {\n this.manager.safeSetAttributes({ maximized });\n });\n this.teleBoxManager.events.on(\"removed\", boxes => {\n boxes.forEach(box => {\n emitter.emit(\"close\", { appId: box.id });\n });\n });\n this.teleBoxManager.events.on(\n \"intrinsic_move\",\n debounce((box: ReadonlyTeleBox): void => {\n emitter.emit(\"move\", { appId: box.id, x: box.intrinsicX, y: box.intrinsicY });\n }, 50)\n );\n this.teleBoxManager.events.on(\n \"intrinsic_resize\",\n debounce((box: ReadonlyTeleBox): void => {\n emitter.emit(\"resize\", {\n appId: box.id,\n width: box.intrinsicWidth,\n height: box.intrinsicHeight,\n });\n }, 200)\n );\n this.teleBoxManager.events.on(\"focused\", box => {\n if (box) {\n if (this.manager.canOperate) {\n emitter.emit(\"focus\", { appId: box.id });\n } else {\n this.teleBoxManager.blurBox(box.id);\n }\n }\n });\n this.teleBoxManager.events.on(\"dark_mode\", darkMode => {\n callbacks.emit(\"darkModeChange\", darkMode);\n });\n this.teleBoxManager.events.on(\"prefers_color_scheme\", colorScheme => {\n callbacks.emit(\"prefersColorSchemeChange\", colorScheme);\n });\n this.teleBoxManager.events.on(\"z_index\", box => {\n this.manager.store.updateAppState(box.id, AppAttributes.ZIndex, box.zIndex);\n });\n }\n\n public get boxState() {\n return this.teleBoxManager.state;\n }\n\n public get maximized() {\n return this.teleBoxManager.maximized;\n }\n\n public get minimized() {\n return this.teleBoxManager.minimized;\n }\n\n public get darkMode() {\n return this.teleBoxManager.darkMode;\n }\n\n public get prefersColorScheme(): TeleBoxColorScheme {\n return this.teleBoxManager.prefersColorScheme;\n }\n\n public createBox(params: CreateBoxParams): void {\n if (!this.teleBoxManager) return;\n let { minwidth = MIN_WIDTH, minheight = MIN_HEIGHT } = params.app.config ?? {};\n const { width, height } = params.app.config ?? {};\n const title = params.options?.title || params.appId;\n const rect = this.teleBoxManager.containerRect;\n\n if (minwidth > 1) {\n minwidth = minwidth / rect.width;\n }\n\n if (minheight > 1) {\n minheight = minheight / rect.height;\n }\n\n const createBoxConfig: TeleBoxManagerCreateConfig = {\n title,\n minWidth: minwidth,\n minHeight: minheight,\n width,\n height,\n id: params.appId,\n };\n this.teleBoxManager.create(createBoxConfig, params.smartPosition);\n emitter.emit(`${params.appId}${Events.WindowCreated}` as any);\n }\n\n public setBoxInitState(appId: string): void {\n const box = this.teleBoxManager.queryOne({ id: appId });\n if (box) {\n if (box.state === TELE_BOX_STATE.Maximized) {\n emitter.emit(\"resize\", {\n appId: appId,\n x: box.x,\n y: box.y,\n width: box.intrinsicWidth,\n height: box.intrinsicHeight,\n });\n }\n }\n }\n\n public setupBoxManager(\n createTeleBoxManagerConfig?: CreateTeleBoxManagerConfig\n ): TeleBoxManager {\n const root = WindowManager.wrapper ? WindowManager.wrapper : document.body;\n const rect = root.getBoundingClientRect();\n const initManagerState: TeleBoxManagerConfig = {\n root: root,\n containerRect: {\n x: 0,\n y: 0,\n width: rect.width,\n height: rect.height,\n },\n fence: false,\n prefersColorScheme: createTeleBoxManagerConfig?.prefersColorScheme,\n };\n const container = createTeleBoxManagerConfig?.collectorContainer || WindowManager.wrapper;\n const teleBoxCollector = new TeleBoxCollector({\n styles: createTeleBoxManagerConfig?.collectorStyles,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n }).mount(container!);\n initManagerState.collector = teleBoxCollector;\n const manager = new TeleBoxManager(initManagerState);\n if (this.teleBoxManager) {\n this.teleBoxManager.destroy();\n }\n this.teleBoxManager = manager;\n return manager;\n }\n\n public getBox(appId: string): ReadonlyTeleBox | undefined {\n return this.teleBoxManager.queryOne({ id: appId });\n }\n\n public closeBox(appId: string, skipUpdate = false): ReadonlyTeleBox | undefined {\n return this.teleBoxManager.remove(appId, skipUpdate);\n }\n\n public boxIsFocus(appId: string): boolean | undefined {\n const box = this.getBox(appId);\n return box?.focus;\n }\n\n public getFocusBox(): ReadonlyTeleBox | undefined {\n const boxes = this.teleBoxManager.query({ focus: true });\n return boxes[0];\n }\n\n public getTopBox(): ReadonlyTeleBox | undefined {\n const boxes = this.teleBoxManager.query();\n return maxBy(boxes, \"zIndex\");\n }\n\n public updateBoxState(state?: AppInitState): void {\n if (!state) return;\n const box = this.getBox(state.id);\n if (box) {\n this.teleBoxManager.update(\n box.id,\n {\n x: state.x,\n y: state.y,\n width: state.width || 0.5,\n height: state.height || 0.5,\n zIndex: state.zIndex,\n },\n true\n );\n setTimeout(() => {\n if (state.focus) {\n this.teleBoxManager.focusBox(box.id, true)\n }\n if (state.maximized != null) {\n this.teleBoxManager.setMaximized(Boolean(state.maximized), true);\n }\n if (state.minimized != null) {\n this.teleBoxManager.setMinimized(Boolean(state.minimized), true);\n }\n }, 50);\n callbacks.emit(\"boxStateChange\", this.teleBoxManager.state);\n }\n }\n\n public updateManagerRect(): void {\n const rect = this.mainView.divElement?.getBoundingClientRect();\n if (rect && rect.width > 0 && rect.height > 0) {\n const containerRect = { x: 0, y: 0, width: rect.width, height: rect.height };\n this.teleBoxManager.setContainerRect(containerRect);\n this.manager.notifyContainerRectUpdate(this.teleBoxManager.containerRect);\n }\n }\n\n public moveBox({ appId, x, y }: MoveBoxParams): void {\n this.teleBoxManager.update(appId, { x, y }, true);\n }\n\n public focusBox({ appId }: AppId, skipUpdate = true): void {\n this.teleBoxManager.focusBox(appId, skipUpdate);\n }\n\n public resizeBox({ appId, width, height, skipUpdate }: ResizeBoxParams): void {\n this.teleBoxManager.update(appId, { width, height }, skipUpdate);\n }\n\n public setBoxMinSize(params: SetBoxMinSizeParams): void {\n this.teleBoxManager.update(\n params.appId,\n {\n minWidth: params.minWidth,\n minHeight: params.minHeight,\n },\n true\n );\n }\n\n public setBoxTitle(params: SetBoxTitleParams): void {\n this.teleBoxManager.update(params.appId, { title: params.title }, true);\n }\n\n public blurAllBox(): void {\n this.teleBoxManager.blurAll();\n }\n\n public updateAll(config: TeleBoxManagerUpdateConfig): void {\n this.teleBoxManager.updateAll(config);\n }\n\n public setMaximized(maximized: boolean) {\n this.teleBoxManager.setMaximized(maximized, true);\n }\n\n public setMinimized(minimized: boolean, skipUpdate = true) {\n this.teleBoxManager.setMinimized(minimized, skipUpdate);\n }\n\n public focusTopBox(): void {\n const boxes = this.teleBoxManager.query();\n if (boxes.length >= 1) {\n const box = this.getTopBox();\n if (box) {\n this.focusBox({ appId: box.id }, false);\n }\n }\n }\n\n public setReadonly(readonly: boolean) {\n this.teleBoxManager.setReadonly(readonly);\n }\n\n public setPrefersColorScheme(colorScheme: TeleBoxColorScheme) {\n this.teleBoxManager.setPrefersColorScheme(colorScheme);\n }\n\n public setZIndex(id: string, zIndex: number, skipUpdate = true) {\n this.teleBoxManager.update(id, { zIndex }, skipUpdate);\n }\n\n public destroy() {\n this.teleBoxManager.destroy();\n }\n}\n","import { AnimationMode } from \"white-web-sdk\";\nimport type { Camera, View } from \"white-web-sdk\";\n\nexport class CameraStore {\n private cameras: Map<string, Camera> = new Map();\n private listeners: Map<string, any> = new Map();\n\n public setCamera(id: string, camera: Camera) {\n this.cameras.set(id, camera);\n }\n\n public getCamera(id: string) {\n return this.cameras.get(id);\n }\n\n public deleteCamera(id: string) {\n this.cameras.delete(id);\n }\n\n public recoverCamera(id: string, view?: View) {\n const camera = this.cameras.get(id);\n if (camera && view) {\n view.moveCamera({\n ...camera,\n animationMode: AnimationMode.Immediately,\n });\n }\n }\n\n public register(id: string, view: View) {\n this.onListener(id, view);\n this.setCamera(id, view.camera);\n }\n\n public unregister(id: string, view?: View) {\n if (view) {\n this.offListener(id, view);\n }\n this.listeners.delete(id);\n this.deleteCamera(id);\n }\n\n private onListener = (id: string, view: View) => {\n view.callbacks.on(\"onCameraUpdated\", this.getOrCreateListener(id));\n };\n\n private offListener = (id: string, view: View) => {\n view.callbacks.off(\"onCameraUpdated\", this.getOrCreateListener(id));\n };\n\n public async switchView(id: string, view: View | undefined, callback: () => void) {\n if (view) {\n this.offListener(id, view);\n await callback();\n this.recoverCamera(id, view);\n this.onListener(id, view);\n }\n }\n\n private getOrCreateListener(id: string) {\n let listener = this.listeners.get(id);\n if (listener) {\n return listener;\n } else {\n listener = (camera: Camera) => {\n this.setCamera(id, camera);\n };\n this.listeners.set(id, listener);\n return listener;\n }\n }\n}\n","import { Base } from \"./Base\";\nimport { callbacks, WindowManager } from \"./index\";\nimport { reaction, ViewVisionMode } from \"white-web-sdk\";\nimport { SET_SCENEPATH_DELAY } from \"./constants\";\nimport { notifyMainViewModeChange, setScenePath, setViewMode } from \"./Utils/Common\";\nimport type { View, Displayer } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\n\nexport class ViewManager extends Base {\n private views: Map<string, View> = new Map();\n private timer?: number;\n private appTimer?: number;\n\n private mainViewProxy = this.manager.mainViewProxy;\n private displayer = this.manager.displayer;\n\n constructor(manager: AppManager) {\n super(manager);\n setTimeout(() => {\n // 延迟初始化 focus 的 reaction\n this.manager.refresher?.add(\"focus\", () => {\n return reaction(\n () => this.store.focus,\n focus => {\n if (focus) {\n this.switchAppToWriter(focus);\n } else {\n this.switchMainViewToWriter();\n this.context.blurFocusBox();\n }\n },\n { fireImmediately: true }\n );\n });\n }, 100);\n }\n\n public get currentScenePath(): string {\n return this.displayer.state.sceneState.scenePath;\n }\n\n public get mainView(): View {\n return this.mainViewProxy.view;\n }\n\n public createView(appId: string): View {\n const view = createView(this.displayer);\n setViewMode(view, ViewVisionMode.Freedom);\n this.views.set(appId, view);\n return view;\n }\n\n public destroyView(appId: string): void {\n const view = this.views.get(appId);\n if (view) {\n this.releaseView(view);\n this.views.delete(appId);\n }\n }\n\n private releaseView(view: View) {\n if (!(view as any).didRelease) {\n view.release();\n }\n }\n\n public getView(appId: string): View | undefined {\n return this.views.get(appId);\n }\n\n public switchMainViewToWriter(): Promise<boolean> | undefined {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n if (this.mainView.mode === ViewVisionMode.Writable) return;\n this.freedomAllViews();\n return new Promise((resolve, reject) => {\n this.timer = window.setTimeout(() => {\n try {\n const mainViewScenePath = this.store.getMainViewScenePath();\n if (mainViewScenePath) {\n this.freedomAllViews();\n setScenePath(this.manager.room, mainViewScenePath);\n this.mainViewProxy.switchViewModeToWriter();\n }\n resolve(true);\n } catch (error) {\n reject(error);\n }\n }, SET_SCENEPATH_DELAY);\n });\n }\n\n public freedomAllViews(): void {\n this.manager.appProxies.forEach(appProxy => {\n appProxy.setViewFocusScenePath();\n if (appProxy.view) {\n setViewMode(appProxy.view, ViewVisionMode.Freedom);\n }\n });\n if (this.mainView.mode === ViewVisionMode.Writable) {\n notifyMainViewModeChange(callbacks, ViewVisionMode.Freedom);\n setViewMode(this.mainView, ViewVisionMode.Freedom);\n }\n if (!this.mainView.focusScenePath) {\n this.store.setMainViewFocusPath();\n }\n }\n\n public switchAppToWriter(id: string): void {\n if (this.appTimer) {\n clearTimeout(this.appTimer);\n }\n this.freedomAllViews();\n // 为了同步端不闪烁, 需要给 room setScenePath 一个延迟\n this.appTimer = setTimeout(() => {\n const appProxy = this.manager.appProxies.get(id);\n if (appProxy) {\n if (this.manager.boxManager.minimized) return;\n appProxy.setScenePath();\n appProxy.switchToWritable();\n appProxy.focusBox();\n }\n }, SET_SCENEPATH_DELAY);\n }\n\n public destroy(): void {\n this.mainViewProxy.removeMainViewListener();\n if (WindowManager.wrapper) {\n WindowManager.wrapper.parentNode?.removeChild(WindowManager.wrapper);\n WindowManager.wrapper = undefined;\n }\n this.releaseView(this.mainView);\n }\n}\n\nexport const createView = (displayer: Displayer): View => {\n const view = displayer.views.createView();\n setDefaultCameraBound(view);\n return view;\n};\n\nexport const setDefaultCameraBound = (view: View) => {\n view.setCameraBound({\n maxContentMode: () => 10,\n minContentMode: () => 0.1,\n });\n};\n\nexport const setupWrapper = (\n root: HTMLElement\n): {\n playground: HTMLDivElement;\n wrapper: HTMLDivElement;\n sizer: HTMLDivElement;\n mainViewElement: HTMLDivElement;\n} => {\n const playground = document.createElement(\"div\");\n playground.className = \"netless-window-manager-playground\";\n\n const sizer = document.createElement(\"div\");\n sizer.className = \"netless-window-manager-sizer\";\n\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"netless-window-manager-wrapper\";\n\n const mainViewElement = document.createElement(\"div\");\n mainViewElement.className = \"netless-window-manager-main-view\";\n\n playground.appendChild(sizer);\n sizer.appendChild(wrapper);\n wrapper.appendChild(mainViewElement);\n root.appendChild(playground);\n WindowManager.wrapper = wrapper;\n\n return { playground, wrapper, sizer, mainViewElement };\n};\n","import { AnimationMode, reaction, ViewVisionMode } from \"white-web-sdk\";\nimport { Base } from \"./Base\";\nimport { callbacks, emitter } from \"./index\";\nimport { createView } from \"./ViewManager\";\nimport { debounce, isEmpty, isEqual } from \"lodash\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { notifyMainViewModeChange, setViewFocusScenePath, setViewMode } from \"./Utils/Common\";\nimport type { Camera, Size, View } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\n\nexport class MainViewProxy extends Base {\n private scale?: number;\n private cameraStore = this.manager.cameraStore;\n private started = false;\n private mainViewIsAddListener = false;\n private mainView: View;\n private viewId = \"mainView\";\n\n constructor(manager: AppManager) {\n super(manager);\n this.mainView = this.createMainView();\n this.moveCameraSizeByAttributes();\n this.cameraStore.register(this.viewId, this.mainView);\n emitter.once(\"mainViewMounted\").then(() => {\n setTimeout(() => {\n this.start();\n if (!this.mainViewCamera || !this.mainViewSize) {\n this.setCameraAndSize();\n }\n }, 200); // 等待 mainView 挂载完毕再进行监听,否则会触发不必要的 onSizeUpdated\n });\n emitter.on(\"playgroundSizeChange\", () => {\n this.sizeChangeHandler(this.mainViewSize);\n });\n }\n\n private get mainViewCamera() {\n return this.store.getMainViewCamera();\n }\n\n private get mainViewSize() {\n return this.store.getMainViewSize();\n }\n\n private moveCameraSizeByAttributes() {\n this.moveCameraToContian(this.mainViewSize);\n this.moveCamera(this.mainViewCamera);\n }\n\n public start() {\n if (this.started) return;\n this.sizeChangeHandler(this.mainViewSize);\n this.addCameraListener();\n this.manager.refresher?.add(Fields.MainViewCamera, this.cameraReaction);\n this.started = true;\n }\n\n public setCameraAndSize(): void {\n this.store.setMainViewCamera({ ...this.mainView.camera, id: this.context.uid });\n this.store.setMainViewSize({ ...this.mainView.size, id: this.context.uid });\n }\n\n private cameraReaction = () => {\n return reaction(\n () => this.mainViewCamera,\n camera => {\n if (camera && camera.id !== this.context.uid) {\n this.moveCameraToContian(this.mainViewSize);\n this.moveCamera(camera);\n }\n },\n {\n fireImmediately: true,\n }\n );\n };\n\n private sizeChangeHandler = debounce((size: Size) => {\n if (size) {\n this.moveCameraToContian(size);\n this.moveCamera(this.mainViewCamera);\n }\n }, 30);\n\n public get view(): View {\n return this.mainView;\n }\n\n public get cameraState() {\n return { ...this.view.camera, ...this.view.size };\n }\n\n public createMainView(): View {\n const mainView = createView(this.manager.displayer);\n const mainViewScenePath = this.store.getMainViewScenePath();\n if (mainViewScenePath) {\n setViewFocusScenePath(mainView, mainViewScenePath);\n }\n if (!this.store.focus) {\n this.switchViewModeToWriter();\n }\n return mainView;\n }\n\n private onCameraUpdatedByDevice = (camera: Camera) => {\n this.store.setMainViewCamera({ ...camera, id: this.context.uid });\n if (!isEqual(this.mainViewSize, {...this.mainView.size, id: this.context.uid})) {\n this.setMainViewSize(this.view.size);\n }\n };\n\n public addMainViewListener(): void {\n if (this.mainViewIsAddListener) return;\n if (this.view.divElement) {\n this.view.divElement.addEventListener(\"click\", this.mainViewClickListener);\n this.view.divElement.addEventListener(\"touchend\", this.mainViewClickListener);\n this.mainViewIsAddListener = true;\n }\n }\n\n public removeMainViewListener(): void {\n if (this.view.divElement) {\n this.view.divElement.removeEventListener(\"click\", this.mainViewClickListener);\n this.view.divElement.removeEventListener(\"touchend\", this.mainViewClickListener);\n }\n }\n\n private mainViewClickListener = () => {\n this.mainViewClickHandler();\n };\n\n public async mainViewClickHandler(): Promise<void> {\n if (!this.manager.canOperate) return;\n if (this.view.mode === ViewVisionMode.Writable) return;\n this.store.cleanFocus();\n this.context.blurFocusBox();\n }\n\n public setMainViewSize = debounce(size => {\n this.store.setMainViewSize({ ...size, id: this.context.uid });\n }, 50);\n\n private addCameraListener() {\n this.view.callbacks.on(\"onCameraUpdatedByDevice\", this.onCameraUpdatedByDevice);\n this.view.callbacks.on(\"onCameraUpdated\", this.onCameraOrSizeUpdated);\n this.view.callbacks.on(\"onSizeUpdated\", this.onCameraOrSizeUpdated);\n }\n\n private removeCameraListener() {\n this.view.callbacks.off(\"onCameraUpdatedByDevice\", this.onCameraUpdatedByDevice);\n this.view.callbacks.off(\"onCameraUpdated\", this.onCameraOrSizeUpdated);\n this.view.callbacks.off(\"onSizeUpdated\", this.onCameraOrSizeUpdated);\n }\n\n private onCameraOrSizeUpdated = () => {\n callbacks.emit(\"cameraStateChange\", this.cameraState);\n };\n\n public switchViewModeToWriter(): void {\n if (!this.manager.canOperate) return;\n if (this.view) {\n if (this.view.mode === ViewVisionMode.Writable) return;\n this.cameraStore.switchView(this.viewId, this.mainView, () => {\n notifyMainViewModeChange(callbacks, ViewVisionMode.Writable);\n setViewMode(this.view, ViewVisionMode.Writable);\n });\n }\n }\n\n public moveCameraToContian(size: Size): void {\n if (!isEmpty(size)) {\n this.view.moveCameraToContain({\n width: size.width,\n height: size.height,\n originX: -size.width / 2,\n originY: -size.height / 2,\n animationMode: AnimationMode.Immediately,\n });\n this.scale = this.view.camera.scale;\n }\n }\n\n public moveCamera(camera: Camera): void {\n if (!isEmpty(camera)) {\n if (isEqual(camera, this.view.camera)) return;\n const { centerX, centerY, scale } = camera;\n const needScale = scale * (this.scale || 1);\n this.view.moveCamera({\n centerX: centerX,\n centerY: centerY,\n scale: needScale,\n animationMode: AnimationMode.Immediately,\n });\n }\n }\n\n public stop() {\n this.removeCameraListener();\n this.manager.refresher?.remove(Fields.MainViewCamera);\n this.manager.refresher?.remove(Fields.MainViewSize);\n this.started = false;\n }\n\n public destroy() {\n this.stop();\n this.cameraStore.unregister(this.viewId, this.mainView);\n }\n}\n","import { listenUpdated, unlistenUpdated, reaction, UpdateEventKind } from \"white-web-sdk\";\nimport type { AkkoObjectUpdatedProperty , AkkoObjectUpdatedListener } from \"white-web-sdk\";\n\n// 兼容 13 和 14 版本 SDK\nexport const onObjectByEvent = (event: UpdateEventKind) => {\n return (object: any, func: () => void) => {\n if (object === undefined) return;\n if (listenUpdated) {\n const listener = (events: readonly AkkoObjectUpdatedProperty<any>[]) => {\n const kinds = events.map(e => e.kind);\n if (kinds.includes(event)) {\n func();\n }\n }\n listenUpdated(object, listener);\n func();\n return () => unlistenUpdated(object, listener);\n } else {\n return reaction(\n () => object,\n () => {\n func();\n }, {\n fireImmediately: true,\n }\n )\n }\n }\n}\n\nexport const safeListenPropsUpdated = <T>(\n getProps: () => T,\n callback: AkkoObjectUpdatedListener<T>\n ) => {\n let disposeListenUpdated: (() => void) | null = null;\n const disposeReaction = reaction(\n getProps,\n () => {\n if (disposeListenUpdated) {\n disposeListenUpdated();\n disposeListenUpdated = null;\n }\n const props = getProps();\n disposeListenUpdated = () => unlistenUpdated(props, callback);\n listenUpdated(props, callback);\n },\n { fireImmediately: true }\n );\n\n return () => {\n disposeListenUpdated?.();\n disposeReaction();\n };\n}\n\nexport const onObjectRemoved = onObjectByEvent(UpdateEventKind.Removed);\nexport const onObjectInserted = onObjectByEvent(UpdateEventKind.Inserted);\n","import { isFunction } from 'lodash';\nimport { RoomPhase } from 'white-web-sdk';\nimport type { Room } from \"white-web-sdk\";\nimport type { AppManager } from './AppManager';\nimport { log } from './Utils/log';\n\n// 白板重连之后会刷新所有的对象,导致 listener 失效, 所以这里在重连之后重新对所有对象进行监听\nexport class ReconnectRefresher {\n private phase?: RoomPhase;\n private room: Room | undefined;\n private reactors: Map<string, any> = new Map();\n private disposers: Map<string, any> = new Map();\n\n constructor(room: Room | undefined, private manager: AppManager) {\n this.room = room;\n this.phase = room?.phase;\n room?.callbacks.on(\"onPhaseChanged\", this.onPhaseChanged);\n }\n\n private onPhaseChanged = (phase: RoomPhase) => {\n if (phase === RoomPhase.Connected && this.phase === RoomPhase.Reconnecting) {\n this.onReconnected();\n }\n this.phase = phase;\n }\n\n private onReconnected = () => {\n log(\"onReconnected refresh reactors\");\n this.releaseDisposers();\n this.reactors.forEach((func, id) => {\n if (isFunction(func)) {\n this.disposers.set(id, func());\n }\n });\n this.manager.notifyReconnected();\n }\n\n private releaseDisposers() {\n this.disposers.forEach(disposer => {\n if (isFunction(disposer)) {\n disposer();\n }\n })\n this.disposers.clear();\n }\n\n public add(id: string, func: any) {\n if (isFunction(func)) {\n this.reactors.set(id, func);\n this.disposers.set(id, func());\n }\n }\n\n public remove(id: string) {\n if (this.reactors.has(id)) {\n this.reactors.delete(id);\n }\n const disposer = this.disposers.get(id);\n if (disposer) {\n if (isFunction(disposer)) {\n disposer();\n }\n this.disposers.delete(id);\n }\n }\n\n public destroy() {\n this.room?.callbacks.off(\"onPhaseChanged\", this.onPhaseChanged);\n this.releaseDisposers();\n }\n}\n","import pRetry from \"p-retry\";\nimport {\n AppAttributes,\n AppStatus,\n Events,\n MagixEventName\n } from \"./constants\";\nimport { AppListeners } from \"./AppListener\";\nimport { AppProxy } from \"./AppProxy\";\nimport { AttributesDelegate } from \"./AttributesDelegate\";\nimport {\n autorun,\n isPlayer,\n isRoom,\n ScenePathType,\n ViewVisionMode\n } from \"white-web-sdk\";\nimport { BoxManager } from \"./BoxManager\";\nimport { callbacks, emitter } from \"./index\";\nimport { CameraStore } from \"./Utils/CameraStore\";\nimport { genAppId, makeValidScenePath, setScenePath } from \"./Utils/Common\";\nimport { log } from \"./Utils/log\";\nimport { MainViewProxy } from \"./MainView\";\nimport { onObjectRemoved, safeListenPropsUpdated } from \"./Utils/Reactive\";\nimport { ReconnectRefresher } from \"./ReconnectRefresher\";\nimport { ViewManager } from \"./ViewManager\";\nimport type { Displayer, DisplayerState, Room } from \"white-web-sdk\";\nimport type { CreateTeleBoxManagerConfig } from \"./BoxManager\";\nimport type {\n AddAppParams,\n BaseInsertParams,\n WindowManager,\n TeleBoxRect,\n EmitterEvent,\n} from \"./index\";\nexport class AppManager {\n public displayer: Displayer;\n public boxManager: BoxManager;\n public cameraStore: CameraStore;\n public viewManager: ViewManager;\n public appProxies: Map<string, AppProxy> = new Map();\n public appStatus: Map<string, AppStatus> = new Map();\n public store = new AttributesDelegate(this);\n public mainViewProxy: MainViewProxy;\n public refresher?: ReconnectRefresher;\n public isReplay = this.windowManger.isReplay;\n\n private appListeners: AppListeners;\n\n constructor(public windowManger: WindowManager, options: CreateTeleBoxManagerConfig) {\n this.displayer = windowManger.displayer;\n this.cameraStore = new CameraStore();\n this.mainViewProxy = new MainViewProxy(this);\n this.viewManager = new ViewManager(this);\n this.boxManager = new BoxManager(this, options);\n this.appListeners = new AppListeners(this);\n this.displayer.callbacks.on(this.eventName, this.displayerStateListener);\n this.appListeners.addListeners();\n\n this.refresher = new ReconnectRefresher(this.room, this);\n\n emitter.once(\"onCreated\").then(() => this.onCreated());\n\n if (isPlayer(this.displayer)) {\n emitter.on(\"seek\", time => {\n this.appProxies.forEach(appProxy => {\n appProxy.onSeek(time);\n });\n this.attributesUpdateCallback(this.attributes.apps);\n this.onAppDelete(this.attributes.apps);\n });\n }\n }\n\n private async onCreated() {\n await this.attributesUpdateCallback(this.attributes.apps);\n this.boxManager.updateManagerRect();\n emitter.onAny(this.boxEventListener);\n this.refresher?.add(\"apps\", () => {\n return safeListenPropsUpdated(() => this.attributes.apps, () => {\n this.attributesUpdateCallback(this.attributes.apps);\n });\n });\n this.refresher?.add(\"appsClose\", () => {\n return onObjectRemoved(this.attributes.apps, () => {\n this.onAppDelete(this.attributes.apps);\n });\n });\n this.refresher?.add(\"maximized\", () => {\n return autorun(() => {\n const maximized = this.attributes.maximized;\n if (this.boxManager.maximized !== maximized) {\n this.boxManager.setMaximized(Boolean(maximized));\n }\n });\n });\n this.refresher?.add(\"minimized\", () => {\n return autorun(() => {\n const minimized = this.attributes.minimized;\n if (this.boxManager.minimized !== minimized) {\n if (minimized === true) {\n this.boxManager.blurAllBox();\n }\n setTimeout(() => {\n this.boxManager.setMinimized(Boolean(minimized));\n }, 0);\n }\n });\n });\n if (!this.attributes.apps || Object.keys(this.attributes.apps).length === 0) {\n const mainScenePath = this.store.getMainViewScenePath();\n if (!mainScenePath) return;\n const sceneState = this.displayer.state.sceneState;\n if (sceneState.scenePath !== mainScenePath) {\n setScenePath(this.room, mainScenePath);\n }\n }\n this.displayerWritableListener(!this.room?.isWritable);\n this.displayer.callbacks.on(\"onEnableWriteNowChanged\", this.displayerWritableListener);\n }\n\n /**\n * 插件更新 attributes 时的回调\n *\n * @param {*} attributes\n * @memberof WindowManager\n */\n public async attributesUpdateCallback(apps: any) {\n if (apps) {\n for (const id in apps) {\n if (!this.appProxies.has(id) && !this.appStatus.has(id)) {\n const app = apps[id];\n\n pRetry(async () => {\n this.appStatus.set(id, AppStatus.StartCreate);\n // 防御 appAttributes 有可能为 undefined 的情况,这里做一个重试\n const appAttributes = this.attributes[id];\n if (!appAttributes) {\n throw new Error(\"appAttributes is undefined\");\n }\n await this.baseInsertApp(\n {\n kind: app.kind,\n options: app.options,\n isDynamicPPT: app.isDynamicPPT,\n },\n id,\n false\n );\n this.focusByAttributes(apps);\n }, { retries: 3 }).catch(err => {\n console.warn(`[WindowManager]: Insert App Error`, err);\n this.appStatus.delete(id);\n });\n }\n }\n }\n }\n\n private onAppDelete = (apps: any) => {\n const ids = Object.keys(apps);\n this.appProxies.forEach((appProxy, id) => {\n if (!ids.includes(id)) {\n appProxy.destroy(true, false, true);\n }\n });\n };\n\n public bindMainView(divElement: HTMLDivElement, disableCameraTransform: boolean) {\n const mainView = this.mainViewProxy.view;\n mainView.disableCameraTransform = disableCameraTransform;\n mainView.divElement = divElement;\n if (!mainView.focusScenePath) {\n this.store.setMainViewFocusPath();\n }\n if (this.store.focus === undefined && mainView.mode !== ViewVisionMode.Writable) {\n this.viewManager.switchMainViewToWriter();\n }\n this.mainViewProxy.addMainViewListener();\n emitter.emit(\"mainViewMounted\");\n }\n\n public async addApp(params: AddAppParams, isDynamicPPT: boolean): Promise<string | undefined> {\n log(\"addApp\", params);\n const { appId, needFocus } = await this.beforeAddApp(params, isDynamicPPT);\n const appProxy = await this.baseInsertApp(params, appId, true, needFocus);\n this.afterAddApp(appProxy);\n return appProxy?.id;\n }\n\n private async beforeAddApp(params: AddAppParams, isDynamicPPT: boolean) {\n const appId = await genAppId(params.kind);\n this.appStatus.set(appId, AppStatus.StartCreate);\n const attrs = params.attributes ?? {};\n this.safeUpdateAttributes([appId], attrs);\n this.store.setupAppAttributes(params, appId, isDynamicPPT);\n const needFocus = !this.boxManager.minimized;\n if (needFocus) {\n this.store.setAppFocus(appId, true);\n }\n return { appId, needFocus };\n }\n\n private afterAddApp(appProxy: AppProxy | undefined) {\n if (appProxy && appProxy.box) {\n const box = appProxy.box;\n emitter.emit(\"move\", {\n appId: appProxy.id,\n x: box?.intrinsicX,\n y: box?.intrinsicY,\n });\n this.store.updateAppState(appProxy.id, AppAttributes.ZIndex, box.zIndex);\n }\n if (this.boxManager.minimized) {\n this.boxManager.setMinimized(false, false);\n }\n }\n\n public async closeApp(appId: string) {\n const appProxy = this.appProxies.get(appId);\n if (appProxy) {\n appProxy.destroy(true, true, false);\n }\n }\n\n private async baseInsertApp(\n params: BaseInsertParams,\n appId: string,\n isAddApp: boolean,\n focus?: boolean\n ) {\n if (this.appProxies.has(appId)) {\n console.warn(\"[WindowManager]: app duplicate exists and cannot be created again\");\n return;\n }\n const appProxy = new AppProxy(params, this, appId, isAddApp);\n if (appProxy) {\n await appProxy.baseInsertApp(focus);\n this.appStatus.delete(appId);\n return appProxy;\n } else {\n this.appStatus.delete(appId);\n throw new Error(\"[WindowManger]: initialize AppProxy failed\");\n }\n }\n\n private displayerStateListener = (state: Partial<DisplayerState>) => {\n const sceneState = state.sceneState;\n if (sceneState) {\n const scenePath = sceneState.scenePath;\n this.appProxies.forEach(appProxy => {\n if (appProxy.scenePath && scenePath.startsWith(appProxy.scenePath)) {\n appProxy.emitAppSceneStateChange(sceneState);\n appProxy.setFullPath(scenePath);\n }\n });\n }\n if (state.roomMembers) {\n this.windowManger.cursorManager?.setRoomMembers(state.roomMembers);\n this.windowManger.cursorManager?.cleanMemberAttributes(state.roomMembers);\n }\n this.appProxies.forEach(appProxy => {\n appProxy.appEmitter.emit(\"roomStateChange\", state);\n });\n emitter.emit(\"observerIdChange\", this.displayer.observerId);\n };\n\n private displayerWritableListener = (isReadonly: boolean) => {\n const isWritable = !isReadonly;\n const isManualWritable =\n this.windowManger.readonly === undefined || this.windowManger.readonly === false;\n if (this.windowManger.readonly === undefined) {\n this.boxManager.setReadonly(isReadonly);\n } else {\n this.boxManager.setReadonly(!(isWritable && isManualWritable));\n }\n this.appProxies.forEach(appProxy => {\n appProxy.emitAppIsWritableChange();\n });\n if (isWritable === true) {\n if (!this.store.focus) {\n this.mainViewProxy.switchViewModeToWriter();\n }\n this.mainView.disableCameraTransform = false;\n } else {\n this.mainView.disableCameraTransform = true;\n }\n };\n\n private get eventName() {\n return isRoom(this.displayer) ? \"onRoomStateChanged\" : \"onPlayerStateChanged\";\n }\n\n public get attributes() {\n return this.windowManger.attributes;\n }\n\n public get canOperate() {\n return this.windowManger.canOperate;\n }\n\n public get room() {\n return isRoom(this.displayer) ? (this.displayer as Room) : undefined;\n }\n\n public get mainView() {\n return this.mainViewProxy.view;\n }\n\n public get focusApp() {\n if (this.store.focus) {\n return this.appProxies.get(this.store.focus);\n }\n }\n\n public safeSetAttributes(attributes: any) {\n this.windowManger.safeSetAttributes(attributes);\n }\n\n public safeUpdateAttributes(keys: string[], value: any) {\n this.windowManger.safeUpdateAttributes(keys, value);\n }\n\n public async setMainViewScenePath(scenePath: string) {\n if (this.room) {\n const scenePathType = this.displayer.scenePathType(scenePath);\n if (scenePathType === ScenePathType.None) {\n throw new Error(`[WindowManager]: ${scenePath} not valid scene`);\n } else if (scenePathType === ScenePathType.Page) {\n await this._setMainViewScenePath(scenePath);\n } else if (scenePathType === ScenePathType.Dir) {\n const validScenePath = makeValidScenePath(this.displayer, scenePath);\n await this._setMainViewScenePath(validScenePath);\n }\n }\n }\n\n private async _setMainViewScenePath(scenePath: string) {\n this.safeSetAttributes({ _mainScenePath: scenePath });\n await this.viewManager.switchMainViewToWriter();\n setScenePath(this.room, scenePath);\n this.store.setMainViewFocusPath();\n this.dispatchInternalEvent(Events.SetMainViewScenePath, { nextScenePath: scenePath });\n }\n\n public async setMainViewSceneIndex(index: number) {\n if (this.room) {\n this.safeSetAttributes({ _mainSceneIndex: index });\n await this.viewManager.switchMainViewToWriter();\n this.room.setSceneIndex(index);\n const nextScenePath = this.room.state.sceneState.scenePath;\n this.store.setMainViewScenePath(nextScenePath);\n this.store.setMainViewFocusPath();\n this.dispatchInternalEvent(Events.SetMainViewScenePath, { nextScenePath });\n }\n }\n\n public getAppInitPath(appId: string): string | undefined {\n const attrs = this.store.getAppAttributes(appId);\n if (attrs) {\n return attrs?.options?.scenePath;\n }\n }\n\n public safeDispatchMagixEvent(event: string, payload: any) {\n if (this.canOperate) {\n (this.displayer as Room).dispatchMagixEvent(event, payload);\n }\n }\n\n private boxEventListener = (eventName: keyof EmitterEvent, payload: any) => {\n switch (eventName) {\n case \"move\": {\n this.dispatchInternalEvent(Events.AppMove, payload);\n this.store.updateAppState(payload.appId, AppAttributes.Position, {\n x: payload.x,\n y: payload.y,\n });\n break;\n }\n case \"focus\": {\n this.windowManger.safeSetAttributes({ focus: payload.appId });\n break;\n }\n case \"resize\": {\n if (payload.width && payload.height) {\n this.dispatchInternalEvent(Events.AppResize, payload);\n this.store.updateAppState(payload.appId, AppAttributes.Size, {\n width: payload.width,\n height: payload.height,\n });\n }\n break;\n }\n case \"close\": {\n const appProxy = this.appProxies.get(payload.appId);\n if (appProxy) {\n appProxy.destroy(false, true, payload.error);\n }\n break;\n }\n case \"boxStateChange\": {\n this.dispatchInternalEvent(Events.AppBoxStateChange, payload);\n break;\n }\n default:\n break;\n }\n };\n\n public focusByAttributes(apps: any) {\n if (apps && Object.keys(apps).length === this.boxManager.appBoxMap.size) {\n const focusAppId = this.store.focus;\n if (focusAppId) {\n this.boxManager.focusBox({ appId: focusAppId });\n }\n }\n }\n\n public async notifyReconnected() {\n const appProxies = Array.from(this.appProxies.values());\n const reconnected = appProxies.map(appProxy => {\n return appProxy.onReconnected();\n });\n await Promise.all(reconnected);\n }\n\n public notifyContainerRectUpdate(rect: TeleBoxRect) {\n this.appProxies.forEach(appProxy => {\n appProxy.appEmitter.emit(\"containerRectUpdate\", rect);\n });\n }\n\n public dispatchInternalEvent(event: Events, payload: any) {\n this.safeDispatchMagixEvent(MagixEventName, {\n eventName: event,\n payload: payload,\n });\n }\n\n public destroy() {\n this.displayer.callbacks.off(this.eventName, this.displayerStateListener);\n this.displayer.callbacks.off(\"onEnableWriteNowChanged\", this.displayerWritableListener);\n this.appListeners.removeListeners();\n emitter.offAny(this.boxEventListener);\n emitter.clearListeners();\n if (this.appProxies.size) {\n this.appProxies.forEach(appProxy => {\n appProxy.destroy(true, false, true);\n });\n }\n this.viewManager.destroy();\n this.boxManager.destroy();\n this.refresher?.destroy();\n this.mainViewProxy.destroy();\n callbacks.clearListeners();\n }\n}\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not <head>\n let children = target.childNodes;\n // If target is <head>, there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '&quot;',\n \"'\": '&#39;',\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : context || []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : options.context || []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.42.4' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","<script lang=\"ts\">\n import { isEmpty } from \"lodash\";\n\n export let cursorName: string;\n export let tagName: string;\n export let backgroundColor: string;\n export let appliance: string;\n export let x: number;\n export let y: number;\n export let src: string;\n export let visible: boolean;\n export let avatar: string;\n export let theme: string;\n export let color: string;\n export let cursorTagBackgroundColor: string;\n export let opacity: number;\n\n $: hasName = !isEmpty(cursorName);\n $: hasTagName = !isEmpty(tagName);\n $: hasAvatar = !isEmpty(avatar);\n $: display = visible ? \"initial\" : \"none\";\n\n const computedAvatarStyle = () => {\n return Object.entries({\n width: (hasName ? 19 : 28) + \"px\",\n height: (hasName ? 19 : 28) + \"px\",\n position: hasName ? \"initial\" : \"absolute\",\n \"border-color\": hasName ? \"white\" : backgroundColor,\n \"margin-right\": (hasName ? 4 : 0) + \"px\",\n })\n .map(([key, v]) => `${key}: ${v}`)\n .join(\";\");\n };\n</script>\n\n<div\n class=\"netless-window-manager-cursor-mid\"\n style=\"transform: translateX({x}px) translateY({y}px);display: {display}\"\n>\n <div class=\"netless-window-manager-cursor-name\">\n <div\n class={theme}\n style=\"background-color: {backgroundColor};color: {color};opacity: {opacity}\"\n >\n {#if hasAvatar}\n <img\n class=\"netless-window-manager-cursor-selector-avatar\"\n style={computedAvatarStyle()}\n src={avatar}\n alt=\"avatar\"\n />\n {/if}\n <span style=\"overflow: hidden;white-space: nowrap;text-overflow: ellipsis;max-width: 80px\">{cursorName}</span>\n {#if hasTagName}\n <span class=\"netless-window-manager-cursor-tag-name\" style=\"background-color: {cursorTagBackgroundColor}\">\n {tagName}\n </span>\n {/if}\n </div>\n </div>\n <div class=\"cursor-image-wrapper\">\n <img class=\"netless-window-manager-cursor-{appliance}-image\" {src} alt={appliance} />\n </div>\n</div>\n","import { ApplianceNames } from \"white-web-sdk\";\nimport pencil from \"../image/pencil-cursor.png\";\nimport selector from \"../image/selector-cursor.png\";\nimport eraser from \"../image/eraser-cursor.png\";\nimport shape from \"../image/shape-cursor.svg\";\nimport text from \"../image/text-cursor.svg\";\n\nexport const ApplianceMap: {\n [key: string]: string;\n} = {\n [ApplianceNames.pencil]: pencil,\n [ApplianceNames.selector]: selector,\n [ApplianceNames.eraser]: eraser,\n [ApplianceNames.shape]: shape,\n [ApplianceNames.text]: text,\n};\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","import App from './Cursor.svelte';\nimport pRetry from 'p-retry';\nimport { ApplianceMap } from './icons';\nimport { ApplianceNames, autorun } from 'white-web-sdk';\nimport { CursorState } from '../constants';\nimport { Fields } from '../AttributesDelegate';\nimport { get, omit } from 'lodash';\nimport type { Position } from '../AttributesDelegate';\nimport type { RoomMember } from \"white-web-sdk\";\nimport type { CursorManager } from \"./index\";\nimport type { SvelteComponent } from \"svelte\";\nimport { Base } from '../Base';\nimport type { AppManager } from '../AppManager';\n\nexport type Payload = {\n [key: string]: any\n}\n\n\nexport class Cursor extends Base {\n private member?: RoomMember;\n private disposer: any;\n private timer?: number;\n private component?: SvelteComponent;\n\n constructor(\n manager: AppManager,\n private cursors: any,\n private memberId: string,\n private cursorManager: CursorManager,\n private wrapper?: HTMLElement\n ) {\n super(manager);\n this.setMember();\n this.createCursor();\n pRetry(() => {\n this.disposer && this.disposer();\n if (!this.cursorPosition) {\n console.warn(`${memberId} not exist`);\n }\n this.startReaction();\n }, { retries: 3 });\n this.autoHidden();\n }\n\n private startReaction() {\n this.disposer = autorun(() => {\n const cursor = this.cursorPosition;\n const state = this.cursorState;\n if (!cursor) return;\n if (cursor.type === \"main\") {\n const rect = this.cursorManager.wrapperRect;\n if (this.component && rect) {\n this.autoHidden();\n this.moveCursor(cursor, rect, this.manager.mainView);\n }\n } else {\n const focusView = this.cursorManager.focusView;\n const viewRect = focusView?.divElement?.getBoundingClientRect();\n const viewCamera = focusView?.camera;\n if (focusView && viewRect && viewCamera && this.component) {\n this.autoHidden();\n this.moveCursor(cursor, viewRect, focusView);\n }\n }\n if (state && state === CursorState.Leave) {\n this.hide();\n }\n });\n }\n\n private moveCursor(cursor: Position, rect: DOMRect, view: any) {\n const { x, y } = cursor;\n const point = view?.screen.convertPointToScreen(x, y);\n if (point) {\n const translateX = point.x + rect.x - 2;\n const translateY = point.y + rect.y - 18;\n if (point.x < 0 || point.x > rect.width || point.y < 0 || point.y > rect.height) {\n this.component?.$set({ visible: false });\n } else {\n this.component?.$set({ visible: true, x: translateX, y: translateY });\n }\n }\n }\n\n public get memberApplianceName() {\n return this.member?.memberState?.currentApplianceName;\n }\n\n public get memberColor() {\n const rgb = this.member?.memberState?.strokeColor.join(\",\");\n return `rgb(${rgb})`;\n }\n\n private get payload(): Payload | undefined {\n return this.member?.payload;\n }\n\n public get memberCursorName() {\n return this.payload?.nickName || this.payload?.cursorName || this.memberId;\n }\n\n private get memberTheme() {\n if (this.payload?.theme) {\n return \"netless-window-manager-cursor-inner-mellow\";\n } else {\n return \"netless-window-manager-cursor-inner\";\n }\n }\n\n private get memberCursorTextColor() {\n return this.payload?.cursorTextColor || \"#FFFFFF\";\n }\n\n private get memberCursorTagBackgroundColor() {\n return this.payload?.cursorTagBackgroundColor || this.memberColor;\n }\n\n private get memberAvatar() {\n return this.payload?.avatar;\n }\n\n private get memberOpacity() {\n if (!this.memberCursorName && !this.memberAvatar) {\n return 0;\n } else {\n return 1;\n }\n }\n\n public get cursorState(): CursorState | undefined {\n return get(this.cursors, [this.memberId, Fields.CursorState]);\n }\n\n public get cursorPosition(): Position | undefined {\n return get(this.cursors, [this.memberId, Fields.Position]);\n }\n\n private autoHidden() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = window.setTimeout(() => {\n this.hide();\n this.store.updateCursorState(this.memberId, CursorState.Leave);\n }, 1000 * 10); // 10 秒钟自动隐藏\n }\n\n private async createCursor() {\n if (this.member && this.wrapper) {\n this.component = new App({\n target: document.documentElement,\n props: this.initProps(),\n });\n }\n }\n\n private initProps() {\n return {\n x: 0,\n y: 0,\n appliance: this.memberApplianceName,\n avatar: this.memberAvatar,\n src: this.getIcon(),\n visible: false,\n backgroundColor: this.memberColor,\n cursorName: this.memberCursorName,\n theme: this.memberTheme,\n color: this.memberCursorTextColor,\n cursorTagBackgroundColor: this.memberCursorTagBackgroundColor,\n opacity: this.memberOpacity,\n };\n }\n\n private getIcon() {\n if (this.member) {\n const applianceSrc = ApplianceMap[this.memberApplianceName || ApplianceNames.shape];\n return applianceSrc || ApplianceMap[ApplianceNames.shape];\n }\n }\n\n public setMember() {\n this.member = this.context.findMemberByUid(this.memberId);\n this.updateComponent();\n }\n\n private updateComponent() {\n this.component?.$set(omit(this.initProps(), [\"x\", \"y\"]));\n }\n\n public destroy() {\n this.disposer && this.disposer();\n if (this.component) {\n this.component.$destroy();\n }\n this.cursorManager.cursorInstances.delete(this.memberId);\n }\n\n public hide() {\n if (this.component) {\n this.component.$set({ visible: false });\n }\n }\n}\n","import { Base } from '../Base';\nimport { Cursor } from './Cursor';\nimport { CursorState } from '../constants';\nimport { compact, debounce, uniq } from 'lodash';\nimport { Fields } from '../AttributesDelegate';\nimport { onObjectInserted } from '../Utils/Reactive';\nimport { WindowManager } from '../index';\nimport type { PositionType } from \"../AttributesDelegate\";\nimport type { Point, RoomMember, View } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\n\nexport type EventType = {\n type: PositionType;\n id?: string;\n};\n\nexport type MoveCursorParams = {\n uid: string;\n x: number;\n y: number;\n}\nexport class CursorManager extends Base {\n public containerRect?: DOMRect;\n public wrapperRect?: DOMRect;\n public cursorInstances: Map<string, Cursor> = new Map();\n public roomMembers?: readonly RoomMember[];\n private mainViewElement?: HTMLDivElement;\n\n constructor(private appManager: AppManager) {\n super(appManager);\n this.roomMembers = this.appManager.room?.state.roomMembers;\n const wrapper = WindowManager.wrapper;\n if (wrapper) {\n wrapper.addEventListener(\"mousemove\", this.mouseMoveListener);\n wrapper.addEventListener(\"touchstart\", this.touchMoveListener);\n wrapper.addEventListener(\"touchmove\", this.touchMoveListener);\n wrapper.addEventListener(\"mouseleave\", this.mouseLeaveListener);\n wrapper.addEventListener(\"touchend\", this.mouseLeaveListener);\n this.initCursorAttributes();\n this.wrapperRect = wrapper.getBoundingClientRect();\n this.startReaction(wrapper);\n }\n }\n\n public setMainViewDivElement(div: HTMLDivElement) {\n this.mainViewElement = div;\n }\n\n private startReaction(wrapper: HTMLElement) {\n this.manager.refresher?.add(\"cursors\", () => {\n return onObjectInserted(this.cursors, () => {\n this.handleRoomMembersChange(wrapper);\n });\n })\n }\n\n private getUids = (members: readonly RoomMember[] | undefined) => {\n return compact(uniq(members?.map(member => member.payload?.uid)));\n }\n\n private handleRoomMembersChange = debounce((wrapper: HTMLElement) => {\n const uids = this.getUids(this.roomMembers);\n const cursors = Object.keys(this.cursors);\n if (uids?.length) {\n cursors.map(uid => {\n if (\n uids.includes(uid) &&\n !this.cursorInstances.has(uid)\n ) {\n if (uid === this.context.uid) {\n return;\n }\n const component = new Cursor(\n this.appManager,\n this.cursors,\n uid,\n this,\n wrapper\n );\n this.cursorInstances.set(uid, component);\n }\n })\n }\n }, 100);\n\n public get cursors() {\n return this.manager.attributes?.[Fields.Cursors];\n }\n\n public get boxState() {\n return this.store.getBoxState();\n }\n\n public get focusView() {\n return this.appManager.focusApp?.view;\n }\n\n private mouseMoveListener = debounce((event: MouseEvent) => {\n this.updateCursor(this.getType(event), event.clientX, event.clientY);\n }, 5);\n\n private touchMoveListener = debounce((event: TouchEvent) => {\n if (event.touches.length === 1) {\n const touchEvent = event.touches[0];\n this.updateCursor(this.getType(touchEvent), touchEvent.clientX, touchEvent.clientY);\n }\n }, 5);\n\n private updateCursor(event: EventType, clientX: number, clientY: number) {\n if (this.wrapperRect && this.manager.canOperate) {\n const view = event.type === \"main\" ? this.appManager.mainView : this.focusView;\n const point = this.getPoint(view, clientX, clientY);\n if (point) {\n this.setNormalCursorState();\n this.store.updateCursor(this.context.uid, {\n x: point.x,\n y: point.y,\n ...event,\n });\n }\n }\n }\n\n private getPoint = (view: View | undefined, clientX: number, clientY: number): Point | undefined => {\n const rect = view?.divElement?.getBoundingClientRect();\n if (rect) {\n const point = view?.convertToPointInWorld({\n x: clientX - rect.x,\n y: clientY - rect.y,\n });\n return point;\n }\n }\n\n /**\n * 因为窗口内框在不同分辨率下的大小不一样,所以这里通过来鼠标事件的 target 来判断是在主白板还是在 APP 中\n */\n private getType = (event: MouseEvent | Touch): EventType => {\n const target = event.target as HTMLElement;\n const focusApp = this.appManager.focusApp;\n switch (target.parentElement) {\n case this.mainViewElement: {\n return { type: \"main\" }; \n }\n case focusApp?.view?.divElement: {\n return { type: \"app\" };\n }\n default: {\n return { type: \"main\" };\n }\n }\n };\n\n private initCursorAttributes() {\n this.store.updateCursor(this.context.uid, {\n x: 0,\n y: 0,\n type: \"main\",\n });\n this.store.updateCursorState(this.context.uid, CursorState.Leave);\n }\n\n private setNormalCursorState() {\n const cursorState = this.store.getCursorState(this.context.uid);\n if (cursorState !== CursorState.Normal) {\n this.store.updateCursorState(this.context.uid, CursorState.Normal);\n }\n }\n\n private mouseLeaveListener = () => {\n this.hideCursor(this.context.uid);\n this.store.updateCursorState(this.context.uid, CursorState.Leave);\n };\n\n public updateContainerRect() {\n this.containerRect = WindowManager.container?.getBoundingClientRect();\n this.wrapperRect = WindowManager.wrapper?.getBoundingClientRect();\n }\n\n public setRoomMembers(members: readonly RoomMember[]) {\n this.roomMembers = members;\n this.cursorInstances.forEach(cursor => {\n cursor.setMember();\n });\n if (WindowManager.wrapper) {\n this.handleRoomMembersChange(WindowManager.wrapper);\n }\n }\n\n public deleteCursor(uid: string) {\n this.store.cleanCursor(uid);\n const cursor = this.cursorInstances.get(uid);\n if (cursor) {\n cursor.destroy();\n }\n }\n\n public hideCursor(uid: string) {\n const cursor = this.cursorInstances.get(uid);\n if (cursor) {\n cursor.hide();\n }\n }\n\n public cleanMemberAttributes(members: readonly RoomMember[]) {\n const uids = this.getUids(members);\n const needDeleteIds: string[] = [];\n const cursors = Object.keys(this.cursors);\n cursors.map(cursorId => {\n const index = uids.findIndex(id => id === cursorId);\n if (index === -1) {\n needDeleteIds.push(cursorId);\n }\n });\n needDeleteIds.forEach(uid => {\n this.deleteCursor(uid);\n });\n }\n\n public destroy() {\n const wrapper = WindowManager.wrapper;\n if (wrapper) {\n wrapper.removeEventListener(\"mousemove\", this.mouseMoveListener);\n wrapper.removeEventListener(\"touchstart\", this.touchMoveListener);\n wrapper.removeEventListener(\"touchmove\", this.touchMoveListener);\n wrapper.removeEventListener(\"mouseleave\", this.mouseLeaveListener);\n wrapper.removeEventListener(\"touchend\", this.mouseLeaveListener);\n }\n if (this.cursorInstances.size) {\n this.cursorInstances.forEach(cursor => cursor.destroy());\n this.cursorInstances.clear();\n }\n this.manager.refresher?.remove(\"cursors\");\n }\n}\n","import { isBoolean } from 'lodash';\nimport { WhiteWebSdk } from 'white-web-sdk';\nimport { WindowManager } from './index';\nimport type { MountParams } from \"./index\";\nimport type { WhiteWebSdkConfiguration, JoinRoomParams } from \"white-web-sdk\";\n\n\n\ntype WhiteWindowSDKConfiguration = Omit<WhiteWebSdkConfiguration, \"useMobXState\">\ntype WindowJoinRoomParams = {\n joinRoomParams: Omit<JoinRoomParams, \"useMultiViews\" | \"disableMagixEventDispatchLimit\">,\n mountParams: Omit<MountParams, \"room\">,\n}\n\nexport class WhiteWindowSDK {\n private sdk: WhiteWebSdk;\n\n constructor(params: WhiteWindowSDKConfiguration) {\n this.sdk = new WhiteWebSdk({ ...params, useMobXState: true });\n }\n\n public async mount(params: WindowJoinRoomParams): Promise<WindowManager> {\n const invisiblePlugins = params.joinRoomParams.invisiblePlugins || [];\n const room = await this.sdk.joinRoom({\n ...params.joinRoomParams,\n useMultiViews: true,\n invisiblePlugins: [...invisiblePlugins, WindowManager],\n disableMagixEventDispatchLimit: true,\n });\n const manager = await WindowManager.mount({\n room,\n ...params.mountParams\n });\n if (isBoolean(params.joinRoomParams.disableCameraTransform)) {\n manager.mainView.disableCameraTransform = params.joinRoomParams.disableCameraTransform;\n }\n return manager;\n }\n}\n","import AppDocsViewer from \"@netless/app-docs-viewer\";\nimport AppMediaPlayer, { setOptions } from \"@netless/app-media-player\";\nimport Emittery from \"emittery\";\nimport pRetry from \"p-retry\";\nimport { AppManager } from \"./AppManager\";\nimport { appRegister } from \"./Register\";\nimport { CursorManager } from \"./Cursor\";\nimport { DEFAULT_CONTAINER_RATIO, REQUIRE_VERSION } from \"./constants\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { initDb } from \"./Register/storage\";\nimport { isNull, isObject } from \"lodash\";\nimport { log } from \"./Utils/log\";\nimport { replaceRoomFunction } from \"./Utils/RoomHacker\";\nimport { ResizeObserver as ResizeObserverPolyfill } from \"@juggle/resize-observer\";\nimport { setupWrapper } from \"./ViewManager\";\nimport \"./style.css\";\nimport \"@netless/telebox-insider/dist/style.css\";\nimport {\n addEmitterOnceListener,\n ensureValidScenePath,\n getVersionNumber,\n isValidScenePath,\n wait,\n} from \"./Utils/Common\";\nimport type { TELE_BOX_STATE } from \"./BoxManager\";\nimport {\n AppCreateError,\n AppManagerNotInitError,\n InvalidScenePath,\n ParamsInvalidError,\n WhiteWebSDKInvalidError,\n} from \"./Utils/error\";\nimport type { Apps } from \"./AttributesDelegate\";\nimport {\n InvisiblePlugin,\n isPlayer,\n isRoom,\n RoomPhase,\n ViewMode,\n WhiteVersion,\n} from \"white-web-sdk\";\nimport type {\n Displayer,\n SceneDefinition,\n View,\n Room,\n InvisiblePluginContext,\n Camera,\n AnimationMode,\n CameraBound,\n Point,\n Rectangle,\n ViewVisionMode,\n CameraState,\n} from \"white-web-sdk\";\nimport type { AppListeners } from \"./AppListener\";\nimport type { NetlessApp, RegisterParams } from \"./typings\";\nimport type { TeleBoxColorScheme, TeleBoxState } from \"@netless/telebox-insider\";\nimport type { AppProxy } from \"./AppProxy\";\n\nconst ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;\n\nexport type WindowMangerAttributes = {\n modelValue?: string;\n boxState: TELE_BOX_STATE;\n maximized?: boolean;\n minimized?: boolean;\n [key: string]: any;\n};\n\nexport type apps = {\n [key: string]: NetlessApp;\n};\n\nexport type AddAppOptions = {\n scenePath?: string;\n title?: string;\n scenes?: SceneDefinition[];\n};\n\nexport type setAppOptions = AddAppOptions & { appOptions?: any };\n\nexport type AddAppParams = {\n kind: string;\n // app 地址(本地 app 不需要传)\n src?: string;\n // 窗口配置\n options?: AddAppOptions;\n // 初始化 attributes\n attributes?: any;\n};\n\nexport type BaseInsertParams = {\n kind: string;\n // app 地址(本地 app 不需要传)\n src?: string;\n // 窗口配置\n options?: AddAppOptions;\n // 初始化 attributes\n attributes?: any;\n isDynamicPPT?: boolean;\n};\n\nexport type AppSyncAttributes = {\n kind: string;\n src?: string;\n options: any;\n state?: any;\n isDynamicPPT?: boolean;\n fullPath?: string;\n};\n\nexport type AppInitState = {\n id: string;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n focus?: boolean;\n maximized?: boolean;\n minimized?: boolean;\n sceneIndex?: number;\n boxState?: TeleBoxState; // 兼容旧版 telebox\n zIndex?: number;\n};\n\nexport type EmitterEvent = {\n onCreated: undefined;\n InitReplay: AppInitState;\n move: { appId: string; x: number; y: number };\n focus: { appId: string };\n close: { appId: string };\n resize: { appId: string; width: number; height: number; x?: number; y?: number };\n error: Error;\n seek: number;\n mainViewMounted: undefined;\n observerIdChange: number;\n boxStateChange: string;\n playgroundSizeChange: DOMRect;\n};\n\nexport const emitter: Emittery<EmitterEvent> = new Emittery();\n\nexport type PublicEvent = {\n mainViewModeChange: ViewVisionMode;\n boxStateChange: `${TELE_BOX_STATE}`;\n darkModeChange: boolean;\n prefersColorSchemeChange: TeleBoxColorScheme;\n cameraStateChange: CameraState;\n};\n\nexport type MountParams = {\n room: Room;\n container: HTMLElement;\n /** 白板高宽比例, 默认为 9 / 16 */\n containerSizeRatio?: number;\n /** 显示 PS 透明背景,默认 true */\n chessboard?: boolean;\n collectorContainer?: HTMLElement;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n overwriteStyles?: string;\n cursor?: boolean;\n debug?: boolean;\n disableCameraTransform?: boolean;\n prefersColorScheme?: TeleBoxColorScheme;\n};\n\nexport const callbacks: Emittery<PublicEvent> = new Emittery();\n\nexport class WindowManager extends InvisiblePlugin<WindowMangerAttributes> {\n public static kind = \"WindowManager\";\n public static displayer: Displayer;\n public static wrapper?: HTMLElement;\n public static playground?: HTMLElement;\n public static container?: HTMLElement;\n public static debug = false;\n public static containerSizeRatio = DEFAULT_CONTAINER_RATIO;\n private static isCreated = false;\n\n public version = __APP_VERSION__;\n public dependencies = __APP_DEPENDENCIES__;\n\n public appListeners?: AppListeners;\n\n public readonly?: boolean;\n public emitter: Emittery<PublicEvent> = callbacks;\n public appManager?: AppManager;\n public cursorManager?: CursorManager;\n public viewMode = ViewMode.Broadcaster;\n public isReplay = isPlayer(this.displayer);\n\n constructor(context: InvisiblePluginContext) {\n super(context);\n (window as any).NETLESS_DEPS = __APP_DEPENDENCIES__;\n }\n\n /**\n * 挂载 WindowManager\n * @deprecated\n */\n public static async mount(\n room: Room,\n container: HTMLElement,\n collectorContainer?: HTMLElement,\n options?: {\n chessboard: boolean;\n containerSizeRatio: number;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n debug?: boolean;\n overwriteStyles?: string;\n }\n ): Promise<WindowManager>;\n\n public static async mount(params: MountParams): Promise<WindowManager>;\n\n public static async mount(\n params: MountParams | Room,\n container?: HTMLElement,\n collectorContainer?: HTMLElement,\n options?: {\n chessboard?: boolean;\n containerSizeRatio: number;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n debug?: boolean;\n overwriteStyles?: string;\n disableCameraTransform?: boolean;\n }\n ): Promise<WindowManager> {\n let room: Room;\n let containerSizeRatio: number | undefined;\n let collectorStyles: Partial<CSSStyleDeclaration> | undefined;\n let debug: boolean | undefined;\n let chessboard = true;\n let overwriteStyles: string | undefined;\n let cursor: boolean | undefined;\n let disableCameraTransform = false;\n let prefersColorScheme: TeleBoxColorScheme | undefined = \"light\";\n if (\"room\" in params) {\n room = params.room;\n container = params.container;\n collectorContainer = params.collectorContainer;\n containerSizeRatio = params.containerSizeRatio;\n collectorStyles = params.collectorStyles;\n debug = params.debug;\n if (params.chessboard != null) {\n chessboard = params.chessboard;\n }\n overwriteStyles = params.overwriteStyles;\n cursor = params.cursor;\n disableCameraTransform = Boolean(params?.disableCameraTransform);\n prefersColorScheme = params.prefersColorScheme;\n } else {\n room = params;\n containerSizeRatio = options?.containerSizeRatio;\n collectorStyles = options?.collectorStyles;\n debug = options?.debug;\n if (options?.chessboard != null) {\n chessboard = options.chessboard;\n }\n overwriteStyles = options?.overwriteStyles;\n }\n\n this.checkVersion();\n if (isRoom(room)) {\n if (room.phase !== RoomPhase.Connected) {\n throw new Error(\"[WindowManager]: Room only Connected can be mount\");\n }\n }\n if (!container) {\n throw new Error(\"[WindowManager]: Container must provide\");\n }\n if (WindowManager.isCreated) {\n throw new Error(\"[WindowManager]: Already created cannot be created again\");\n }\n let manager = await this.initManager(room);\n this.debug = Boolean(debug);\n if (this.debug) {\n setOptions({ verbose: true });\n }\n log(\"Already insert room\", manager);\n\n if (isRoom(this.displayer)) {\n if (!manager) {\n throw new Error(\"[WindowManager]: init InvisiblePlugin failed\");\n }\n } else {\n await pRetry(\n async count => {\n manager = await this.initManager(room);\n if (!manager) {\n log(`manager is empty. retrying ${count}`);\n throw new Error();\n }\n },\n { retries: 10 }\n );\n }\n\n if (containerSizeRatio) {\n WindowManager.containerSizeRatio = containerSizeRatio;\n }\n WindowManager.container = container;\n const { playground, wrapper, sizer, mainViewElement } = setupWrapper(container);\n WindowManager.playground = playground;\n if (chessboard) {\n sizer.classList.add(\"netless-window-manager-chess-sizer\");\n }\n if (overwriteStyles) {\n const style = document.createElement(\"style\");\n style.textContent = overwriteStyles;\n playground.appendChild(style);\n }\n await manager.ensureAttributes();\n manager.appManager = new AppManager(manager, {\n collectorContainer: collectorContainer,\n collectorStyles: collectorStyles,\n prefersColorScheme: prefersColorScheme,\n });\n manager.observePlaygroundSize(playground, sizer, wrapper);\n if (cursor) {\n manager.cursorManager = new CursorManager(manager.appManager);\n }\n manager.bindMainView(mainViewElement, disableCameraTransform);\n replaceRoomFunction(room, manager.appManager);\n emitter.emit(\"onCreated\");\n WindowManager.isCreated = true;\n try {\n await initDb();\n } catch (error) {\n console.warn(\"[WindowManager]: indexedDB open failed\");\n console.log(error);\n }\n return manager;\n }\n\n private static async initManager(room: Room): Promise<WindowManager> {\n let manager = room.getInvisiblePlugin(WindowManager.kind) as WindowManager;\n if (!manager) {\n if (isRoom(room)) {\n if (room.isWritable === false) {\n try {\n await room.setWritable(true);\n } catch (error) {\n throw new Error(\"[WindowManger]: room must be switched to be writable\");\n }\n manager = (await room.createInvisiblePlugin(\n WindowManager,\n {}\n )) as WindowManager;\n manager.ensureAttributes();\n await wait(500);\n await room.setWritable(false);\n } else {\n manager = (await room.createInvisiblePlugin(\n WindowManager,\n {}\n )) as WindowManager;\n }\n }\n }\n return manager;\n }\n\n /**\n * 注册插件\n */\n public static register<AppOptions = any, SetupResult = any, Attributes = any>(\n params: RegisterParams<AppOptions, SetupResult, Attributes>\n ): Promise<void> {\n return appRegister.register(params);\n }\n\n /**\n * 创建一个 app 至白板\n */\n public async addApp(params: AddAppParams): Promise<string | undefined> {\n if (this.appManager) {\n if (!params.kind || typeof params.kind !== \"string\") {\n throw new ParamsInvalidError();\n }\n const appImpl = await appRegister.appClasses.get(params.kind)?.();\n if (appImpl && appImpl.config?.singleton) {\n if (this.appManager.appProxies.has(params.kind)) {\n throw new AppCreateError();\n }\n }\n const isDynamicPPT = this.setupScenePath(params, this.appManager);\n if (isDynamicPPT === undefined) {\n return;\n }\n if (params?.options?.scenePath) {\n params.options.scenePath = ensureValidScenePath(params.options.scenePath);\n }\n const appId = await this.appManager.addApp(params, Boolean(isDynamicPPT));\n return appId;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n private setupScenePath(params: AddAppParams, appManager: AppManager): boolean | undefined {\n let isDynamicPPT = false;\n if (params.options) {\n const { scenePath, scenes } = params.options;\n if (scenePath) {\n if (!isValidScenePath(scenePath)) {\n throw new InvalidScenePath();\n }\n const apps = Object.keys(this.apps || {});\n for (const appId of apps) {\n const appScenePath = appManager.store.getAppScenePath(appId);\n if (appScenePath && appScenePath === scenePath) {\n console.warn(`[WindowManager]: ScenePath ${scenePath} Already opened`);\n return;\n }\n }\n }\n if (scenePath && scenes && scenes.length > 0) {\n if (this.isDynamicPPT(scenes)) {\n isDynamicPPT = true;\n if (!this.displayer.entireScenes()[scenePath]) {\n this.room?.putScenes(scenePath, scenes);\n }\n } else {\n if (!this.displayer.entireScenes()[scenePath]) {\n this.room?.putScenes(scenePath, [{ name: scenes[0].name }]);\n }\n }\n }\n if (scenePath && scenes === undefined) {\n this.room?.putScenes(scenePath, [{}]);\n }\n }\n return isDynamicPPT;\n }\n\n /**\n * 设置 mainView 的 ScenePath, 并且切换白板为可写状态\n */\n public async setMainViewScenePath(scenePath: string): Promise<void> {\n if (this.appManager) {\n await this.appManager.setMainViewScenePath(scenePath);\n }\n }\n\n /**\n * 设置 mainView 的 SceneIndex, 并且切换白板为可写状态\n */\n public async setMainViewSceneIndex(index: number): Promise<void> {\n if (this.appManager) {\n await this.appManager.setMainViewSceneIndex(index);\n }\n }\n\n /**\n * 返回 mainView 的 ScenePath\n */\n public getMainViewScenePath(): string {\n return this.appManager?.store.getMainViewScenePath();\n }\n\n /**\n * 返回 mainView 的 SceneIndex\n */\n public getMainViewSceneIndex(): number {\n return this.appManager?.store.getMainViewSceneIndex();\n }\n\n /**\n * 设置所有 app 的 readonly 模式\n */\n public setReadonly(readonly: boolean): void {\n if (this.room?.isWritable) {\n this.readonly = readonly;\n this.appManager?.boxManager.setReadonly(readonly);\n }\n }\n\n /**\n * 切换 mainView 为可写\n */\n public switchMainViewToWriter(): Promise<void> | undefined {\n return this.appManager?.mainViewProxy.mainViewClickHandler();\n }\n\n /**\n * app destroy 回调\n */\n public onAppDestroy(kind: string, listener: (error: Error) => void): void {\n addEmitterOnceListener(`destroy-${kind}`, listener);\n }\n\n /**\n * 设置 ViewMode\n */\n public setViewMode(mode: ViewMode): void {\n if (!this.canOperate) return;\n if (mode === ViewMode.Broadcaster) {\n this.appManager?.mainViewProxy.setCameraAndSize();\n this.appManager?.mainViewProxy.start();\n }\n if (mode === ViewMode.Freedom) {\n this.appManager?.mainViewProxy.stop();\n }\n this.viewMode = mode;\n }\n\n public get mainView(): View {\n if (this.appManager) {\n return this.appManager.mainViewProxy.view;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get camera(): Camera {\n if (this.appManager) {\n return this.appManager.mainViewProxy.view.camera;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get cameraState(): CameraState {\n if (this.appManager) {\n return this.appManager.mainViewProxy.cameraState;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get apps(): Apps | undefined {\n return this.appManager?.store.apps();\n }\n\n public get boxState(): TeleBoxState {\n if (this.appManager) {\n return this.appManager.boxManager.boxState;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get darkMode(): boolean {\n return Boolean(this.appManager?.boxManager.darkMode);\n }\n\n public get prefersColorScheme(): TeleBoxColorScheme {\n if (this.appManager) {\n return this.appManager.boxManager.prefersColorScheme;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n /**\n * 查询所有的 App\n */\n public queryAll(): AppProxy[] {\n return Array.from(this.appManager?.appProxies.values() || []);\n }\n\n /**\n * 查询单个 App\n */\n public queryOne(appId: string): AppProxy | undefined {\n return this.appManager?.appProxies.get(appId);\n }\n\n /**\n * 关闭 APP\n */\n public async closeApp(appId: string): Promise<void> {\n return this.appManager?.closeApp(appId);\n }\n\n public moveCamera(\n camera: Partial<Camera> & { animationMode?: AnimationMode | undefined }\n ): void {\n this.mainView.moveCamera(camera);\n }\n\n public moveCameraToContain(\n rectangle: Rectangle &\n Readonly<{\n animationMode?: AnimationMode;\n }>\n ): void {\n this.mainView.moveCameraToContain(rectangle);\n }\n\n public convertToPointInWorld(point: Point): Point {\n return this.mainView.convertToPointInWorld(point);\n }\n\n public setCameraBound(cameraBound: CameraBound): void {\n this.mainView.setCameraBound(cameraBound);\n }\n\n public override onDestroy(): void {\n this._destroy();\n }\n\n public override destroy(): void {\n this._destroy();\n }\n\n private _destroy() {\n this.containerResizeObserver?.disconnect();\n this.appManager?.destroy();\n this.cursorManager?.destroy();\n WindowManager.container = undefined;\n WindowManager.wrapper = undefined;\n WindowManager.isCreated = false;\n if (WindowManager.playground) {\n WindowManager.playground.parentNode?.removeChild(WindowManager.playground);\n }\n log(\"Destroyed\");\n }\n\n private bindMainView(divElement: HTMLDivElement, disableCameraTransform: boolean) {\n if (this.appManager) {\n this.appManager.bindMainView(divElement, disableCameraTransform);\n this.cursorManager?.setMainViewDivElement(divElement);\n }\n }\n\n public get canOperate(): boolean {\n if (isRoom(this.displayer)) {\n return (\n (this.displayer as Room).isWritable &&\n (this.displayer as Room).phase === RoomPhase.Connected\n );\n } else {\n return false;\n }\n }\n\n public get room(): Room {\n return this.displayer as Room;\n }\n\n public safeSetAttributes(attributes: any): void {\n if (this.canOperate) {\n this.setAttributes(attributes);\n }\n }\n\n public safeUpdateAttributes(keys: string[], value: any): void {\n if (this.canOperate) {\n this.updateAttributes(keys, value);\n }\n }\n\n public setPrefersColorScheme(scheme: TeleBoxColorScheme): void {\n this.appManager?.boxManager.setPrefersColorScheme(scheme);\n }\n\n private isDynamicPPT(scenes: SceneDefinition[]) {\n const sceneSrc = scenes[0]?.ppt?.src;\n return sceneSrc?.startsWith(\"pptx://\");\n }\n\n private static checkVersion() {\n const version = getVersionNumber(WhiteVersion);\n if (version < getVersionNumber(REQUIRE_VERSION)) {\n throw new WhiteWebSDKInvalidError(REQUIRE_VERSION);\n }\n }\n\n private async ensureAttributes() {\n if (isNull(this.attributes)) {\n await wait(50);\n }\n if (isObject(this.attributes)) {\n if (!this.attributes[Fields.Apps]) {\n this.safeSetAttributes({ [Fields.Apps]: {} });\n }\n if (!this.attributes[Fields.Cursors]) {\n this.safeSetAttributes({ [Fields.Cursors]: {} });\n }\n const sceneState = this.displayer.state.sceneState;\n if (!this.attributes[\"_mainScenePath\"]) {\n this.safeSetAttributes({ _mainScenePath: sceneState.scenePath });\n }\n if (!this.attributes[\"_mainSceneIndex\"]) {\n this.safeSetAttributes({ _mainSceneIndex: sceneState.index });\n }\n }\n }\n\n private containerResizeObserver?: ResizeObserver;\n\n private observePlaygroundSize(\n container: HTMLElement,\n sizer: HTMLElement,\n wrapper: HTMLDivElement\n ) {\n this.updateSizer(container.getBoundingClientRect(), sizer, wrapper);\n\n this.containerResizeObserver = new ResizeObserver(entries => {\n const containerRect = entries[0]?.contentRect;\n if (containerRect) {\n this.updateSizer(containerRect, sizer, wrapper);\n this.cursorManager?.updateContainerRect();\n this.appManager?.boxManager.updateManagerRect();\n emitter.emit(\"playgroundSizeChange\", containerRect);\n }\n });\n\n this.containerResizeObserver.observe(container);\n }\n\n private updateSizer(\n { width, height }: DOMRectReadOnly,\n sizer: HTMLElement,\n wrapper: HTMLDivElement\n ) {\n if (width && height) {\n if (height / width > WindowManager.containerSizeRatio) {\n height = width * WindowManager.containerSizeRatio;\n sizer.classList.toggle(\"netless-window-manager-sizer-horizontal\", true);\n } else {\n width = height / WindowManager.containerSizeRatio;\n sizer.classList.toggle(\"netless-window-manager-sizer-horizontal\", false);\n }\n wrapper.style.width = `${width}px`;\n wrapper.style.height = `${height}px`;\n }\n }\n}\n\nWindowManager.register({\n kind: AppDocsViewer.kind,\n src: AppDocsViewer,\n});\nWindowManager.register({\n kind: AppMediaPlayer.kind,\n src: AppMediaPlayer,\n});\n\nexport const BuiltinApps = {\n DocsViewer: AppDocsViewer.kind as string,\n MediaPlayer: AppMediaPlayer.kind as string,\n};\n\nexport * from \"./typings\";\n\nexport { WhiteWindowSDK } from \"./sdk\";\n","import { emitter } from '../index';\nimport { isPlayer } from 'white-web-sdk';\nimport type { Camera, Room , Player , PlayerSeekingResult } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\n\n// 修改多窗口状态下一些失效的方法实现到 manager 的 mainview 上, 降低迁移成本\nexport const replaceRoomFunction = (room: Room, manager: AppManager) => {\n if (isPlayer(room)) {\n const player = room as unknown as Player;\n const originSeek = player.seekToProgressTime;\n // eslint-disable-next-line no-inner-declarations\n async function newSeek(time: number): Promise<PlayerSeekingResult> {\n const seekResult = await originSeek.call(player, time);\n if (seekResult === \"success\") {\n emitter.emit(\"seek\", time);\n }\n return seekResult;\n }\n player.seekToProgressTime = newSeek;\n } else {\n const descriptor = Object.getOwnPropertyDescriptor(room, \"disableCameraTransform\");\n if (descriptor) return;\n Object.defineProperty(room, \"disableCameraTransform\", {\n get() {\n return manager.mainView.disableCameraTransform;\n },\n set(disable: boolean) {\n manager.mainView.disableCameraTransform = disable;\n },\n });\n\n room.moveCamera = (camera: Camera) => manager.mainView.moveCamera(camera);\n room.moveCameraToContain = (...args) => manager.mainView.moveCameraToContain(...args);\n room.convertToPointInWorld = (...args) => manager.mainView.convertToPointInWorld(...args);\n room.setCameraBound = (...args) => manager.mainView.setCameraBound(...args);\n room.scenePreview = (...args) => manager.mainView.scenePreview(...args);\n room.fillSceneSnapshot = (...args) => manager.mainView.fillSceneSnapshot(...args);\n room.generateScreenshot = (...args) => manager.mainView.generateScreenshot(...args);\n }\n\n};"],"names":["Events","Events2","AppAttributes","AppAttributes2","AppEvents","AppEvents2","AppStatus","CursorState","CursorState2","MIN_WIDTH","MIN_HEIGHT","db","store","initDb","async","Promise","resolve","reject","request","indexedDB","open","onerror","e","onupgradeneeded","event","db2","target","result","objectStoreNames","contains","createObjectStore","keyPath","createIndex","unique","onsuccess","setItem","key","val","payload","kind","sourceCode","transaction","objectStore","add","getItem","index","get","getScript","url","item","resource","options","timeout","controller","AbortController","id","setTimeout","abort","response","fetch","__spreadProps","signal","headers","fetchWithTimeout","text2","text","executeScript","appName","Function","window","appRegister","constructor","Map","params","registered","set","srcOrAppOrFunction","src","downloadApp","appClass","name","error","message","includes","define","amd","loadApp","Error","appClasses","app","this","appClassesCache","addHooks","emitter2","createKindEmitter","kindEmitters","emit","has","Emittery","setViewFocusScenePath","view","focusScenePath","setScenePath","room","scenePath","isWritable","state","sceneState","setViewMode","mode","didRelease","notifyMainViewModeChange","debounce","callbacks2","getVersionNumber","version","versionString","split","map","s","padStart","join","parseInt","wait","time","manager","displayer","boxManager","authorId","observerId","data","eventName","AppMove","appMoveHandler","AppResize","appResizeHandler","SwitchViewsToFreedom","switchViewsToFreedomHandler","AppBoxStateChange","boxStateChangeHandler","SetMainViewScenePath","setMainViewScenePathHandler","moveBox","resizeBox","Object","assign","skipUpdate","refreshViewSize","viewManager","freedomAllViews","nextScenePath","mainView","addListeners","addMagixEventListener","mainMagixEventListener","removeListeners","removeMagixEventListener","appId","appProxy","appOptions","autorun","reaction","toJS","listenUpdated","unlistenUpdated","listenDisposed","unlistenDisposed","isReplay","emitter","appEmitter","isAddApp","getDisplayer","getAttributes","attributes","getScenes","appAttr","getAppAttributes","isDynamicPPT","appProxies","scenes","getView","getInitScenePath","getAppInitPath","getIsWritable","canOperate","getBox","box","BoxNotCreatedError","getRoom","setAttributes","safeSetAttributes","updateAttributes","keys","value","safeUpdateAttributes","setFullPath","context","switchAppToWriter","mountView","dom","divElement","getAppOptions","Fields","Fields2","apps","Apps","Focus","getAppState","State","getMaximized","setupAppAttributes","attrNames","push","pick","attrs","Size","Position","SceneIndex","ZIndex","updateAppState","stateName","cleanAppAttributes","cleanFocus","getAppSceneIndex","getAppScenePath","getMainViewScenePath","getMainViewSceneIndex","getBoxState","BoxState","setMainViewScenePath","_mainScenePath","setMainViewSceneIndex","_mainSceneIndex","getMainViewCamera","MainViewCamera","getMainViewSize","MainViewSize","setMainViewCamera","camera","__spreadValues","setMainViewSize","size","setAppFocus","focus","updateCursor","uid","position","Cursors","updateCursorState","cursorState","getCursorState","cleanCursor","setMainViewFocusPath","log","args","WindowManager","debug","memberId","roomMembers","find","member","on","updateManagerRect","blurFocusBox","blurAllBox","AttributesDelegate","Context","createContext","Base","cameraStore","sceneIndex","maximized","minimized","zIndex","x","y","width","height","appId2","refresher","stateKey","appState","appAttributes","setZIndex","appListener","makeAppEventListener","initScenes","createView","entireScenes","readonly","getFullScenePath","FullPath","path","appImpl","appParams","setupApp","focusApp","focusBox","context2","AppContext","once","WindowCreated","then","boxInitState","getAppInitState","updateBoxState","onAny","appAttributesUpdateListener","setup","notifyApp","afterSetupApp","fixMobileSize","createBox","smartPosition","intrinsicWidth","intrinsicHeight","setBoxInitState","onSeek","currentAppState","destroy","AppProxy","baseInsertApp","switchToWritable","switchView","ViewVisionMode","Writable","callbacks","Freedom","emitAppSceneStateChange","emitAppIsWritableChange","setBoxMinSize","minWidth","minwidth","minHeight","minheight","setBoxTitle","title","status","fullScenePath","fullPath","register","needCloseBox","cleanAttrs","clearListeners","closeBox","delete","unregister","destroyView","appStatus","remove","close","createTeleBoxManagerConfig","teleBoxManager","setupBoxManager","events","TELE_BOX_MANAGER_EVENT","topBox","forEach","intrinsicX","intrinsicY","blurBox","darkMode","colorScheme","prefersColorScheme","config","rect","containerRect","createBoxConfig","create","queryOne","TELE_BOX_STATE","Maximized","root","wrapper","document","body","getBoundingClientRect","initManagerState","fence","container","collectorContainer","teleBoxCollector","TeleBoxCollector","styles","collectorStyles","mount","collector","TeleBoxManager","boxIsFocus","getFocusBox","query","getTopBox","boxes","maxBy","update","setMaximized","Boolean","setMinimized","setContainerRect","notifyContainerRectUpdate","blurAll","updateAll","focusTopBox","length","setReadonly","setPrefersColorScheme","getOrCreateListener","off","setCamera","cameras","getCamera","deleteCamera","recoverCamera","moveCamera","animationMode","AnimationMode","Immediately","onListener","offListener","listeners","callback","listener","mainViewProxy","switchMainViewToWriter","fireImmediately","views","releaseView","release","timer","mainViewScenePath","switchViewModeToWriter","appTimer","removeMainViewListener","parentNode","removeChild","setDefaultCameraBound","setCameraBound","maxContentMode","minContentMode","mainViewCamera","moveCameraToContian","mainViewSize","isEqual","mainViewClickHandler","cameraState","createMainView","moveCameraSizeByAttributes","viewId","start","setCameraAndSize","sizeChangeHandler","started","addCameraListener","cameraReaction","addMainViewListener","mainViewIsAddListener","addEventListener","mainViewClickListener","removeEventListener","onCameraUpdatedByDevice","onCameraOrSizeUpdated","removeCameraListener","isEmpty","moveCameraToContain","originX","originY","scale","centerX","centerY","needScale","stop","onObjectByEvent","object","func","onObjectRemoved","UpdateEventKind","Removed","onObjectInserted","Inserted","phase","RoomPhase","Connected","Reconnecting","onReconnected","releaseDisposers","reactors","isFunction","disposers","notifyReconnected","onPhaseChanged","disposer","clear","windowManger","ids","startsWith","cursorManager","setRoomMembers","cleanMemberAttributes","isReadonly","isManualWritable","disableCameraTransform","dispatchInternalEvent","CameraStore","MainViewProxy","ViewManager","BoxManager","appListeners","AppListeners","displayerStateListener","ReconnectRefresher","onCreated","isPlayer","attributesUpdateCallback","onAppDelete","boxEventListener","getProps","disposeListenUpdated","disposeReaction","props","safeListenPropsUpdated","mainScenePath","displayerWritableListener","StartCreate","focusByAttributes","retries","catch","warn","err","bindMainView","needFocus","beforeAddApp","afterAddApp","impl","singleton","v4","replace","slice","genAppId","isRoom","scenePathType","ScenePathType","None","Page","_setMainViewScenePath","Dir","validScenePath","firstSceneName","makeValidScenePath","setSceneIndex","safeDispatchMagixEvent","dispatchMagixEvent","appBoxMap","focusAppId","reconnected","Array","from","values","all","offAny","fn","fns","run","thing","a","b","src_url_equal_anchor","current_component","element_src","createElement","href","node","appendChild","anchor","insertBefore","createTextNode","attribute","removeAttribute","getAttribute","setAttribute","wholeText","important","style","setProperty","component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","flushing","seen_callbacks","Set","i","$$","pop","fragment","before_update","dirty","p","ctx","after_update","add_render_callback","outroing","flush","fill","instance2","create_fragment2","not_equal","append_styles","parent_component","noop","bound","blank_object","on_mount","on_destroy","on_disconnect","skip_bound","ready","ret","rest","hydrate","nodes","element2","childNodes","l","detach","c","intro","block","local","customElement","m","new_on_destroy","filter","is_function","cursorName","tagName","backgroundColor","appliance","visible","avatar","theme","color","cursorTagBackgroundColor","opacity","hasTagName","hasAvatar","display","entries","hasName","v","$destroy","detaching","d","$on","type","indexOf","splice","$set","$$props","obj","$$set","ApplianceMap","ApplianceNames","pencil","selector","eraser","shape","cursors","setMember","createCursor","cursorPosition","startReaction","autoHidden","cursor","wrapperRect","moveCursor","focusView","viewRect","viewCamera","Leave","hide","point","screen","convertPointToScreen","translateX","translateY","memberState","currentApplianceName","strokeColor","nickName","cursorTextColor","memberColor","memberCursorName","memberAvatar","App","documentElement","initProps","memberApplianceName","getIcon","memberTheme","memberCursorTextColor","memberCursorTagBackgroundColor","memberOpacity","findMemberByUid","updateComponent","omit","cursorInstances","appManager","members","compact","uniq","wrapper2","uids","getUids","Cursor","getType","clientX","clientY","touches","touchEvent","convertToPointInWorld","parentElement","mainViewElement","hideCursor","mouseMoveListener","touchMoveListener","mouseLeaveListener","initCursorAttributes","setMainViewDivElement","div","handleRoomMembersChange","getPoint","setNormalCursorState","Normal","updateContainerRect","deleteCursor","needDeleteIds","findIndex","cursorId","sdk","WhiteWebSdk","useMobXState","invisiblePlugins","joinRoomParams","joinRoom","useMultiViews","disableMagixEventDispatchLimit","mountParams","isBoolean","ResizeObserver","ResizeObserverPolyfill","InvisiblePlugin","ViewMode","Broadcaster","NETLESS_DEPS","containerSizeRatio","overwriteStyles","chessboard","checkVersion","_WindowManager","isCreated","initManager","verbose","pRetry","count","playground","sizer","className","setupWrapper","classList","style2","textContent","ensureAttributes","AppManager","observePlaygroundSize","CursorManager","player","originSeek","seekToProgressTime","seekResult","call","getOwnPropertyDescriptor","defineProperty","disable","scenePreview","fillSceneSnapshot","generateScreenshot","getInvisiblePlugin","setWritable","createInvisiblePlugin","ParamsInvalidError","AppCreateError","setupScenePath","endsWith","addApp","AppManagerNotInitError","isValidScenePath","InvalidScenePath","appScenePath","putScenes","onAppDestroy","viewMode","boxState","queryAll","closeApp","rectangle","cameraBound","onDestroy","_destroy","containerResizeObserver","disconnect","scheme","sceneSrc","ppt","WhiteVersion","WhiteWebSDKInvalidError","isNull","isObject","updateSizer","contentRect","observe","toggle","AppDocsViewer","AppMediaPlayer","BuiltinApps","DocsViewer","MediaPlayer"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../node_modules/@netless/app-docs-viewer/dist/main.es.js","../node_modules/object-assign/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/@netless/app-media-player/dist/main.es.js","../src/constants.ts","../src/Register/storage.ts","../src/Register/loader.ts","../src/Register/index.ts","../src/Utils/Common.ts","../src/AppListener.ts","../src/Utils/error.ts","../src/AppContext.ts","../src/AttributesDelegate.ts","../src/Utils/log.ts","../src/AppProxy.ts","../node_modules/@netless/telebox-insider/dist/telebox-insider.es.js","../src/BoxManager.ts","../src/Utils/CameraStore.ts","../src/ViewManager.ts","../src/MainView.ts","../src/Utils/Reactive.ts","../src/ReconnectRefresher.ts","../src/AppManager.ts","../node_modules/svelte/internal/index.mjs","../src/Cursor/Cursor.svelte","../src/Cursor/icons.ts","../src/image/pencil-cursor.png","../src/image/selector-cursor.png","../src/image/eraser-cursor.png","../src/image/shape-cursor.svg","../src/image/text-cursor.svg","../src/Cursor/Cursor.ts","../src/Cursor/index.ts","../src/sdk.ts","../src/index.ts","../src/Utils/RoomHacker.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar styles = \".netless-app-docs-viewer-content{position:relative;height:100%;overflow:hidden}.netless-app-docs-viewer-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-docs-viewer-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:rgba(237,237,240,.9);box-shadow:inset -1px 0 #0000001c;transition:transform .4s}.netless-app-docs-viewer-preview-active .netless-app-docs-viewer-preview-mask{display:block}.netless-app-docs-viewer-preview-active .netless-app-docs-viewer-preview{transform:translate(0)}.netless-app-docs-viewer-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:transparent;outline:none;border:7px solid transparent;border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-docs-viewer-preview-page:hover,.netless-app-docs-viewer-preview-page.netless-app-docs-viewer-preview-page-active{border-color:#444e601a}.netless-app-docs-viewer-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-docs-viewer-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-docs-viewer-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-docs-viewer-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-docs-viewer-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-docs-viewer-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-docs-viewer-footer-btn:hover{background:transparent!important}}.netless-app-docs-viewer-footer-btn>svg{width:100%;height:100%}.netless-app-docs-viewer-footer-btn>svg:nth-of-type(2){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-docs-viewer-footer-btn~.netless-app-docs-viewer-footer-btn{margin-left:15px}.netless-app-docs-viewer-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-docs-viewer-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-docs-viewer-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn:hover{background:transparent}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:active{background:transparent;box-shadow:none}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:disabled{color:inherit}.netless-app-docs-viewer-readonly.netless-app-docs-viewer-float-footer{display:none}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:active,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:focus,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-docs-viewer-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-docs-viewer-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-docs-viewer-preview{background:rgba(50,50,50,.9)}.netless-app-docs-viewer-static-scrollbar{position:absolute;top:0;right:0;z-index:2147483647;width:8px;min-height:30px;margin:0;padding:0;border:none;outline:none;border-radius:4px;background:rgba(68,78,96,.4);box-shadow:1px 1px 8px #ffffffb3;opacity:0;transition:background .4s,opacity .4s 3s,transform .2s;user-select:none}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging{background:rgba(68,78,96,.6);opacity:1;transition:background .4s,opacity .4s 3s!important}.netless-app-docs-viewer-static-scrollbar:hover,.netless-app-docs-viewer-static-scrollbar:focus{background:rgba(68,78,96,.5)}.netless-app-docs-viewer-static-scrollbar:active{background:rgba(68,78,96,.6)}.netless-app-docs-viewer-content:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-static-scrollbar{display:none}.netless-app-docs-viewer-static-pages:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.page-renderer-pages-container{position:relative;overflow:hidden}.page-renderer-page{position:absolute;top:0;left:0;background-position:center;background-size:cover;background-repeat:no-repeat}.page-renderer-pages-container.is-hwa .page-renderer-page{will-change:transform}.page-renderer-page-img{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-pages{overflow:hidden;position:relative;height:100%;user-select:none}.netless-app-docs-viewer-static-page{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-wb-view,.netless-app-docs-viewer-dynamic-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-docs-viewer-dynamic-wb-view .cursor-clicker .ppt-event-source{cursor:pointer}\\n\";\nconst copyProperty = (to, from, property, ignoreNonConfigurable) => {\n if (property === \"length\" || property === \"prototype\") {\n return;\n }\n if (property === \"arguments\" || property === \"caller\") {\n return;\n }\n const toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n return;\n }\n Object.defineProperty(to, property, fromDescriptor);\n};\nconst canCopyProperty = function(toDescriptor, fromDescriptor) {\n return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);\n};\nconst changePrototype = (to, from) => {\n const fromPrototype = Object.getPrototypeOf(from);\n if (fromPrototype === Object.getPrototypeOf(to)) {\n return;\n }\n Object.setPrototypeOf(to, fromPrototype);\n};\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\n${fromBody}`;\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, \"toString\");\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, \"name\");\nconst changeToString = (to, from, name) => {\n const withName = name === \"\" ? \"\" : `with ${name.trim()}() `;\n const newToString = wrappedToString.bind(null, withName, from.toString());\n Object.defineProperty(newToString, \"name\", toStringName);\n Object.defineProperty(to, \"toString\", __spreadProps(__spreadValues({}, toStringDescriptor), { value: newToString }));\n};\nconst mimicFn = (to, from, { ignoreNonConfigurable = false } = {}) => {\n const { name } = to;\n for (const property of Reflect.ownKeys(from)) {\n copyProperty(to, from, property, ignoreNonConfigurable);\n }\n changePrototype(to, from);\n changeToString(to, from, name);\n return to;\n};\nvar mimicFn_1 = mimicFn;\nconst debounceFn = (inputFunction, options = {}) => {\n if (typeof inputFunction !== \"function\") {\n throw new TypeError(`Expected the first argument to be a function, got \\`${typeof inputFunction}\\``);\n }\n const {\n wait = 0,\n maxWait = Number.Infinity,\n before = false,\n after = true\n } = options;\n if (!before && !after) {\n throw new Error(\"Both `before` and `after` are false, function wouldn't be called.\");\n }\n let timeout;\n let maxTimeout;\n let result;\n const debouncedFunction = function(...arguments_) {\n const context = this;\n const later = () => {\n timeout = void 0;\n if (maxTimeout) {\n clearTimeout(maxTimeout);\n maxTimeout = void 0;\n }\n if (after) {\n result = inputFunction.apply(context, arguments_);\n }\n };\n const maxLater = () => {\n maxTimeout = void 0;\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n if (after) {\n result = inputFunction.apply(context, arguments_);\n }\n };\n const shouldCallNow = before && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (maxWait > 0 && maxWait !== Number.Infinity && !maxTimeout) {\n maxTimeout = setTimeout(maxLater, maxWait);\n }\n if (shouldCallNow) {\n result = inputFunction.apply(context, arguments_);\n }\n return result;\n };\n mimicFn_1(debouncedFunction, inputFunction);\n debouncedFunction.cancel = () => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n if (maxTimeout) {\n clearTimeout(maxTimeout);\n maxTimeout = void 0;\n }\n };\n return debouncedFunction;\n};\nconst e = \"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", s = e.length, t = Array(20), r = () => {\n for (let r2 = 0; r2 < 20; r2++)\n t[r2] = e.charAt(Math.random() * s);\n return t.join(\"\");\n};\nclass o {\n constructor() {\n this.disposers = new Map();\n }\n add(e2, s2 = r()) {\n return this.flush(s2), this.disposers.set(s2, e2()), s2;\n }\n addDisposer(e2, s2 = r()) {\n return this.flush(s2), this.disposers.set(s2, e2), s2;\n }\n addEventListener(e2, s2, t2, o2, i = r()) {\n return this.add(() => (e2.addEventListener(s2, t2, o2), () => e2.removeEventListener(s2, t2, o2)), i), i;\n }\n setTimeout(e2, s2, t2 = r()) {\n return this.add(() => {\n const r2 = window.setTimeout(() => {\n this.remove(t2), e2();\n }, s2);\n return () => window.clearTimeout(r2);\n }, t2);\n }\n setInterval(e2, s2, t2 = r()) {\n return this.add(() => {\n const t3 = window.setInterval(e2, s2);\n return () => window.clearInterval(t3);\n }, t2);\n }\n remove(e2) {\n const s2 = this.disposers.get(e2);\n return this.disposers.delete(e2), s2;\n }\n flush(e2) {\n const s2 = this.remove(e2);\n if (s2)\n try {\n s2();\n } catch (t2) {\n console.error(t2);\n }\n }\n flushAll() {\n this.disposers.forEach((e2) => {\n try {\n e2();\n } catch (s2) {\n console.error(s2);\n }\n }), this.disposers.clear();\n }\n}\nfunction sidebarSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\");\n $svg.appendChild($path);\n return $svg;\n}\nfunction arrowLeftSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\");\n $svg.appendChild($path);\n return $svg;\n}\nfunction arrowRightSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\");\n $svg.appendChild($path);\n return $svg;\n}\nfunction playSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-play`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M418.158 257.419L174.663 413.33c-6.017 3.919-15.708 3.772-21.291-.29-2.791-2.018-4.295-4.483-4.295-7.084V94.109c0-5.65 6.883-10.289 15.271-10.289 4.298 0 8.391 1.307 11.181 3.332l242.629 155.484c6.016 3.917 6.451 10.292.649 14.491-.216.154-.432.154-.649.292zM170.621 391.288l223.116-141.301L170.71 107.753l-.089 283.535z\");\n $svg.appendChild($path);\n return $svg;\n}\nfunction pauseSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-pause`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M312.491 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261zM165.257 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261z\");\n $svg.appendChild($path);\n return $svg;\n}\nconst runningOnBrowser = typeof window !== \"undefined\";\nconst isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\nconst supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\nconst supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\nconst isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\nconst defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false\n};\nconst getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\nconst createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\nconst autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n createInstance(classObj, options);\n } else {\n for (let i = 0, optionsItem; optionsItem = options[i]; i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\nconst SRC = \"src\";\nconst SRCSET = \"srcset\";\nconst SIZES = \"sizes\";\nconst POSTER = \"poster\";\nconst ORIGINALS = \"llOriginalAttrs\";\nconst statusLoading = \"loading\";\nconst statusLoaded = \"loaded\";\nconst statusApplied = \"applied\";\nconst statusEntered = \"entered\";\nconst statusError = \"error\";\nconst statusNative = \"native\";\nconst dataPrefix = \"data-\";\nconst statusDataName = \"ll-status\";\nconst getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\nconst setData = (element, attribute, value) => {\n var attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nconst getStatus = (element) => getData(element, statusDataName);\nconst setStatus = (element, status) => setData(element, statusDataName, status);\nconst resetStatus = (element) => setStatus(element, null);\nconst hasEmptyStatus = (element) => getStatus(element) === null;\nconst hasStatusLoading = (element) => getStatus(element) === statusLoading;\nconst hasStatusError = (element) => getStatus(element) === statusError;\nconst hasStatusNative = (element) => getStatus(element) === statusNative;\nconst statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nconst hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\nconst safeCallback = (callback, arg1, arg2, arg3) => {\n if (!callback) {\n return;\n }\n if (arg3 !== void 0) {\n callback(arg1, arg2, arg3);\n return;\n }\n if (arg2 !== void 0) {\n callback(arg1, arg2);\n return;\n }\n callback(arg1);\n};\nconst addClass = (element, className) => {\n if (supportsClassList) {\n element.classList.add(className);\n return;\n }\n element.className += (element.className ? \" \" : \"\") + className;\n};\nconst removeClass = (element, className) => {\n if (supportsClassList) {\n element.classList.remove(className);\n return;\n }\n element.className = element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").replace(/^\\s+/, \"\").replace(/\\s+$/, \"\");\n};\nconst addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\nconst deleteTempImage = (element) => {\n delete element.llTempImage;\n};\nconst getTempImage = (element) => element.llTempImage;\nconst unobserve = (element, instance) => {\n if (!instance)\n return;\n const observer = instance._observer;\n if (!observer)\n return;\n observer.unobserve(element);\n};\nconst resetObserver = (observer) => {\n observer.disconnect();\n};\nconst unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered)\n unobserve(element, instance);\n};\nconst updateLoadingCount = (instance, delta) => {\n if (!instance)\n return;\n instance.loadingCount += delta;\n};\nconst decreaseToLoadCount = (instance) => {\n if (!instance)\n return;\n instance.toLoadCount -= 1;\n};\nconst setToLoadCount = (instance, value) => {\n if (!instance)\n return;\n instance.toLoadCount = value;\n};\nconst isSomethingLoading = (instance) => instance.loadingCount > 0;\nconst haveElementsToLoad = (instance) => instance.toLoadCount > 0;\nconst getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\nconst forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\nconst forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\nconst attrsSrc = [SRC];\nconst attrsSrcPoster = [SRC, POSTER];\nconst attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nconst hasOriginalAttrs = (element) => !!element[ORIGINALS];\nconst getOriginalAttrs = (element) => element[ORIGINALS];\nconst deleteOriginalAttrs = (element) => delete element[ORIGINALS];\nconst setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\nconst saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\nconst setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nconst restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\nconst restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\nconst manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n if (!instance)\n return;\n if (settings.unobserve_completed) {\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\nconst manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n if (!instance)\n return;\n updateLoadingCount(instance, 1);\n safeCallback(settings.callback_loading, element, instance);\n};\nconst setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\nconst setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\nconst setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\nconst setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\nconst setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\nconst setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue)\n return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\nconst setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\nconst setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo\n};\nconst setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\nconst setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\nconst elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\"];\nconst hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\nconst checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\nconst addEventListener = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\nconst removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\nconst hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\nconst addEventListeners = (element, loadHandler2, errorHandler2) => {\n if (!hasEventListeners(element))\n element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener(element, loadEventName, loadHandler2);\n addEventListener(element, \"error\", errorHandler2);\n};\nconst removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\nconst doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\nconst loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nconst errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nconst addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\nconst loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n};\nconst loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\nconst load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\nconst loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\nconst removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\nconst resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\nconst restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\nconst restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\nconst restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\nconst restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo\n};\nconst restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\nconst resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\nconst restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\nconst cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit)\n return;\n if (!hasStatusLoading(element))\n return;\n if (element.tagName !== \"IMG\")\n return;\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\nconst onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element);\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad)\n return;\n load(element, settings, instance);\n};\nconst onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element))\n return;\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\nconst tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\nconst shouldUseNative = (settings) => settings.use_native && \"loading\" in HTMLImageElement.prototype;\nconst loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\nconst isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\nconst getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\nconst intersectionHandler = (entries, settings, instance) => {\n entries.forEach((entry) => isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance));\n};\nconst observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\nconst updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\nconst setObserver = (settings, instance) => {\n if (!supportsIntersectionObserver || shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\nconst toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\nconst queryElements = (settings) => settings.container.querySelectorAll(settings.elements_selector);\nconst excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\nconst hasError = (element) => hasStatusError(element);\nconst filterErrorElements = (elements) => toArray(elements).filter(hasError);\nconst getElementsToLoad = (elements, settings) => excludeManagedElements(elements || queryElements(settings));\nconst retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\nconst setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.addEventListener(\"online\", () => {\n retryLazyLoad(settings, instance);\n });\n};\nconst LazyLoad = function(customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\nLazyLoad.prototype = {\n update: function(givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n if (isBot || !supportsIntersectionObserver) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n updateObserver(this._observer, elementsToLoad);\n },\n destroy: function() {\n if (this._observer) {\n this._observer.disconnect();\n }\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n delete this._observer;\n delete this._settings;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n loadAll: function(elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\nclass DocsViewer {\n constructor({ readonly, box, pages, onNewPageIndex, onPlay }) {\n this.pageIndex = 0;\n this.namespace = \"netless-app-docs-viewer\";\n this.isShowPreview = false;\n this.isSmallBox = false;\n this.sideEffect = new o();\n if (pages.length <= 0) {\n throw new Error(\"[DocsViewer] Empty pages.\");\n }\n this.readonly = readonly;\n this.box = box;\n this.pages = pages;\n this.onNewPageIndex = onNewPageIndex;\n this.onPlay = onPlay;\n this.render();\n }\n mount() {\n this.box.mountContent(this.$content);\n this.box.mountFooter(this.$footer);\n this.sideEffect.add(() => {\n const previewLazyLoad = new LazyLoad({\n container: this.$preview,\n elements_selector: `.${this.wrapClassName(\"preview-page>img\")}`\n });\n return () => previewLazyLoad.destroy();\n }, \"preview-lazyload\");\n }\n unmount() {\n this.$content.remove();\n this.$footer.remove();\n }\n setReadonly(readonly) {\n if (this.readonly !== readonly) {\n this.readonly = readonly;\n this.$content.classList.toggle(this.wrapClassName(\"readonly\"), readonly);\n this.$footer.classList.toggle(this.wrapClassName(\"readonly\"), readonly);\n this.$pageNumberInput.disabled = readonly;\n }\n }\n destroy() {\n this.sideEffect.flushAll();\n this.unmount();\n }\n setPageIndex(pageIndex) {\n if (!Number.isNaN(pageIndex)) {\n this.pageIndex = pageIndex;\n this.$pageNumberInput.value = String(pageIndex + 1);\n }\n }\n setSmallBox(isSmallBox) {\n if (this.isSmallBox !== isSmallBox) {\n this.isSmallBox = isSmallBox;\n this.$footer.classList.toggle(this.wrapClassName(\"float-footer\"), isSmallBox);\n }\n }\n render() {\n this.renderContent();\n this.renderFooter();\n return this.$content;\n }\n renderContent() {\n if (!this.$content) {\n const $content = document.createElement(\"div\");\n $content.className = this.wrapClassName(\"content\");\n this.$content = $content;\n if (this.readonly) {\n $content.classList.add(this.wrapClassName(\"readonly\"));\n }\n $content.appendChild(this.renderPreviewMask());\n $content.appendChild(this.renderPreview());\n }\n return this.$content;\n }\n renderPreview() {\n if (!this.$preview) {\n const $preview = document.createElement(\"div\");\n $preview.className = this.wrapClassName(\"preview\") + \" tele-fancy-scrollbar\";\n this.$preview = $preview;\n const pageClassName = this.wrapClassName(\"preview-page\");\n const pageNameClassName = this.wrapClassName(\"preview-page-name\");\n this.pages.forEach((page, i) => {\n var _a;\n const previewSRC = (_a = page.thumbnail) != null ? _a : page.src.startsWith(\"ppt\") ? void 0 : page.src;\n if (!previewSRC) {\n return;\n }\n const pageIndex = String(i);\n const $page = document.createElement(\"a\");\n $page.className = pageClassName + \" \" + this.wrapClassName(`preview-page-${i}`);\n $page.setAttribute(\"href\", \"#\");\n $page.dataset.pageIndex = pageIndex;\n const $name = document.createElement(\"span\");\n $name.className = pageNameClassName;\n $name.textContent = String(i + 1);\n $name.dataset.pageIndex = pageIndex;\n const $img = document.createElement(\"img\");\n $img.width = page.width;\n $img.height = page.height;\n $img.dataset.src = previewSRC;\n $img.dataset.pageIndex = pageIndex;\n $page.appendChild($img);\n $page.appendChild($name);\n $preview.appendChild($page);\n });\n this.sideEffect.addEventListener($preview, \"click\", (ev) => {\n var _a;\n if (this.readonly) {\n return;\n }\n const pageIndex = (_a = ev.target.dataset) == null ? void 0 : _a.pageIndex;\n if (pageIndex) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n this.onNewPageIndex(Number(pageIndex));\n this.togglePreview(false);\n }\n });\n }\n return this.$preview;\n }\n renderPreviewMask() {\n if (!this.$previewMask) {\n this.$previewMask = document.createElement(\"div\");\n this.$previewMask.className = this.wrapClassName(\"preview-mask\");\n this.sideEffect.addEventListener(this.$previewMask, \"click\", (ev) => {\n if (this.readonly) {\n return;\n }\n if (ev.target === this.$previewMask) {\n this.togglePreview(false);\n }\n });\n }\n return this.$previewMask;\n }\n renderFooter() {\n if (!this.$footer) {\n const $footer = document.createElement(\"div\");\n $footer.className = this.wrapClassName(\"footer\");\n this.$footer = $footer;\n if (this.readonly) {\n $footer.classList.add(this.wrapClassName(\"readonly\"));\n }\n if (this.isSmallBox) {\n $footer.classList.add(this.wrapClassName(\"float-footer\"));\n }\n if (this.pages.some((page) => page.thumbnail || !page.src.startsWith(\"ppt\"))) {\n const $btnSidebar = this.renderFooterBtn(\"btn-sidebar\", sidebarSVG(this.namespace));\n this.sideEffect.addEventListener($btnSidebar, \"click\", () => {\n if (this.readonly) {\n return;\n }\n this.togglePreview();\n });\n this.$footer.appendChild($btnSidebar);\n }\n const $pageJumps = document.createElement(\"div\");\n $pageJumps.className = this.wrapClassName(\"page-jumps\");\n const $btnPageBack = this.renderFooterBtn(\"btn-page-back\", arrowLeftSVG(this.namespace));\n this.sideEffect.addEventListener($btnPageBack, \"click\", () => {\n if (this.readonly) {\n return;\n }\n this.onNewPageIndex(this.pageIndex - 1);\n });\n $pageJumps.appendChild($btnPageBack);\n if (this.onPlay) {\n const $btnPlay = this.renderFooterBtn(\"btn-page-play\", playSVG(this.namespace), pauseSVG(this.namespace));\n const returnPlay = () => {\n this.sideEffect.setTimeout(() => {\n $btnPlay.classList.toggle(this.wrapClassName(\"footer-btn-playing\"), false);\n }, 500, \"returnPlay\");\n };\n this.sideEffect.addEventListener($btnPlay, \"click\", () => {\n if (this.readonly) {\n return;\n }\n $btnPlay.classList.toggle(this.wrapClassName(\"footer-btn-playing\"), true);\n if (this.onPlay) {\n this.onPlay();\n }\n returnPlay();\n });\n $pageJumps.appendChild($btnPlay);\n }\n const $btnPageNext = this.renderFooterBtn(\"btn-page-next\", arrowRightSVG(this.namespace));\n this.sideEffect.addEventListener($btnPageNext, \"click\", () => {\n if (this.readonly) {\n return;\n }\n this.onNewPageIndex(this.pageIndex + 1);\n });\n $pageJumps.appendChild($btnPageNext);\n const $pageNumber = document.createElement(\"div\");\n $pageNumber.className = this.wrapClassName(\"page-number\");\n const $pageNumberInput = document.createElement(\"input\");\n $pageNumberInput.className = this.wrapClassName(\"page-number-input\");\n $pageNumberInput.value = String(this.pageIndex + 1);\n if (this.readonly) {\n $pageNumberInput.disabled = true;\n }\n this.$pageNumberInput = $pageNumberInput;\n this.sideEffect.addEventListener($pageNumberInput, \"focus\", () => {\n $pageNumberInput.select();\n });\n this.sideEffect.addEventListener($pageNumberInput, \"change\", () => {\n if (this.readonly) {\n return;\n }\n if ($pageNumberInput.value) {\n this.onNewPageIndex(Number($pageNumberInput.value) - 1);\n }\n });\n const $totalPage = document.createElement(\"span\");\n $totalPage.textContent = \" / \" + this.pages.length;\n $pageNumber.appendChild($pageNumberInput);\n $pageNumber.appendChild($totalPage);\n this.$footer.appendChild($pageJumps);\n this.$footer.appendChild($pageNumber);\n }\n return this.$footer;\n }\n renderFooterBtn(className, $icon, $iconActive) {\n const $btn = document.createElement(\"button\");\n $btn.className = this.wrapClassName(\"footer-btn\") + \" \" + this.wrapClassName(className);\n $btn.appendChild($icon);\n if ($iconActive) {\n $btn.appendChild($iconActive);\n }\n return $btn;\n }\n togglePreview(isShowPreview) {\n this.isShowPreview = isShowPreview != null ? isShowPreview : !this.isShowPreview;\n this.$content.classList.toggle(this.wrapClassName(\"preview-active\"), this.isShowPreview);\n if (this.isShowPreview) {\n const $previewPage = this.$preview.querySelector(\".\" + this.wrapClassName(`preview-page-${this.pageIndex}`));\n if ($previewPage) {\n this.$preview.scrollTo({\n top: $previewPage.offsetTop - 16\n });\n }\n }\n }\n wrapClassName(className) {\n return `${this.namespace}-${className}`;\n }\n}\nfunction clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\nfunction flattenEvent(ev) {\n return ev.touches ? ev.touches[0] : ev;\n}\nfunction preventEvent(ev) {\n ev.stopPropagation();\n if (ev.cancelable) {\n ev.preventDefault();\n }\n}\nclass Stepper {\n constructor(config) {\n var _a, _b, _c;\n this.velocity = 0;\n this.paused = true;\n this._animationFrameID = null;\n this._loopTimestamp = 0;\n this.looper = (timestamp) => {\n if (this.paused) {\n return;\n }\n let frames = Math.floor((timestamp - this._loopTimestamp) / 1e3 * 60) + 1;\n this._loopTimestamp = timestamp;\n while (frames-- > 0) {\n this.stepper();\n }\n this.onStep(this.current, this);\n if (!this.paused && this.current !== this.target) {\n window.requestAnimationFrame(this.looper);\n }\n };\n this.current = (_a = config.start) != null ? _a : 0;\n this.target = this.current;\n this.stiffness = (_b = config.stiffness) != null ? _b : 170;\n this.damping = (_c = config.damping) != null ? _c : 26;\n this.onStep = config.onStep;\n }\n stepTo(target, start) {\n if (this.paused && start != null) {\n this.current = start;\n }\n this.paused = false;\n this.target = target;\n this.onStep(this.current, this);\n this._loopTimestamp = Date.now();\n window.requestAnimationFrame(this.looper);\n }\n pause() {\n this.paused = true;\n }\n destroy() {\n this.pause();\n }\n stepper() {\n const fSpring = -this.stiffness * (this.current - this.target);\n const fDamper = -this.damping * this.velocity;\n const newVelocity = this.velocity + (fSpring + fDamper) / 60;\n const newCurrent = this.current + newVelocity / 60;\n if (Math.abs(newVelocity - 0) < 0.01 && Math.abs(newCurrent - this.target) < 0.01) {\n this.current = this.target;\n this.velocity = 0;\n } else {\n this.current = newCurrent;\n this.velocity = newVelocity;\n }\n }\n}\nclass PageEl {\n constructor(index, page, scale) {\n this.scale = 1;\n this.lastVisit = Date.now();\n this.pageOffsetY = 0;\n this.visible = true;\n this.index = index;\n this.page = page;\n this.scale = scale;\n const $page = document.createElement(\"div\");\n $page.className = \"page-renderer-page\";\n $page.dataset.index = `${index}`;\n $page.style.width = `${page.width * scale}px`;\n $page.style.height = `${page.height * scale}px`;\n if (page.thumbnail) {\n $page.style.backgroundImage = `url(\"${page.thumbnail}\")`;\n }\n const $img = document.createElement(\"img\");\n $img.className = \"page-renderer-page-img\";\n $img.width = page.width;\n $img.height = page.height;\n $img.src = page.src;\n $page.appendChild($img);\n this.$page = $page;\n }\n translateY(pageOffsetY) {\n if (Math.abs(pageOffsetY - this.pageOffsetY) >= 1e-3) {\n this.pageOffsetY = pageOffsetY;\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this.$page.style.transform = `translateY(${pageOffsetY * this.scale}px)`;\n });\n } else {\n this.$page.style.transform = `translateY(${pageOffsetY * this.scale}px)`;\n }\n }\n }\n setScale(scale) {\n if (Math.abs(scale - this.scale) >= 1e-3) {\n this.scale = scale;\n this.$page.style.width = `${this.page.width * this.scale}px`;\n this.$page.style.height = `${this.page.height * this.scale}px`;\n this.$page.style.transform = `translateY(${this.pageOffsetY * this.scale}px)`;\n }\n }\n setVisible(visible) {\n if (visible !== this.visible) {\n this.visible = visible;\n this.$page.style.opacity = visible ? \"1\" : \"0\";\n }\n }\n}\nconst schedule = window.requestIdleCallback || ((handler) => window.setTimeout(handler, 5e3));\nconst cancelSchedule = window.cancelIdleCallback || window.clearTimeout;\nclass PageElManager {\n constructor(pages, scale) {\n this.pages = pages;\n this.scale = scale;\n this.els = new Map();\n this.maxElCount = 200;\n this.gcTimer = null;\n this.gc = () => {\n this.gcTimer = null;\n if (this.els.size > this.maxElCount) {\n const sortedEls = [...this.els.values()].sort((x, y) => y.lastVisit - x.lastVisit);\n for (let i = Math.floor(this.maxElCount / 4); i < sortedEls.length; i++) {\n this.els.delete(sortedEls[i].index);\n }\n }\n };\n }\n getEl(index) {\n let el = this.els.get(index);\n if (!el) {\n el = new PageEl(index, this.pages[index], this.scale);\n this.els.set(index, el);\n }\n el.lastVisit = Date.now();\n if (this.els.size > this.maxElCount && this.gcTimer === null) {\n this.gcTimer = schedule(this.gc);\n }\n return el;\n }\n setScale(scale) {\n if (scale !== this.scale) {\n this.scale = scale;\n this.els.forEach((pageEl) => pageEl.setScale(scale));\n }\n }\n destroy() {\n this.els.clear();\n if (this.gcTimer !== null) {\n cancelSchedule(this.gcTimer);\n this.gcTimer = null;\n }\n }\n}\nclass PageRenderer {\n constructor(config) {\n this._hwaTimeout = NaN;\n this._turnOffHWA = () => {\n window.clearTimeout(this._hwaTimeout);\n this._hwaTimeout = NaN;\n this.$pages.classList.toggle(\"is-hwa\", false);\n };\n this.pagesScrollTop = config.pagesScrollTop || 0;\n this.containerWidth = config.containerWidth || 1;\n this.containerHeight = config.containerHeight || 1;\n this.pages = config.pages.map((page) => {\n if (page.thumbnail) {\n return page;\n }\n try {\n const url = new URL(page.src);\n url.searchParams.set(\"x-oss-process\", \"image/resize,l_50\");\n return __spreadProps(__spreadValues({}, page), { thumbnail: url.toString() });\n } catch (e2) {\n console.error(e2);\n return page;\n }\n });\n const pagesIntrinsicYs = Array(this.pages.length);\n let pagesMinHeight = Infinity;\n let pagesIntrinsicWidth = 0;\n this.pagesIntrinsicHeight = this.pages.reduce((pageY, page, i) => {\n pagesIntrinsicYs[i] = pageY;\n if (page.width > pagesIntrinsicWidth) {\n pagesIntrinsicWidth = page.width;\n }\n if (page.height <= pagesMinHeight) {\n pagesMinHeight = page.height;\n }\n return pageY + page.height;\n }, 0);\n this.pagesIntrinsicWidth = pagesIntrinsicWidth;\n this.pagesMinHeight = pagesMinHeight;\n this.pagesIntrinsicYs = pagesIntrinsicYs;\n this.scale = this._calcScale();\n this.threshold = this._calcThreshold();\n this.onPageIndexChanged = config.onPageIndexChanged;\n this.pageScrollIndex = 0;\n if (this.pagesScrollTop !== 0) {\n this.pageScrollIndex = this.findScrollPageIndex();\n if (this.onPageIndexChanged && this.pageScrollIndex > 0) {\n this.onPageIndexChanged(this.pageScrollIndex);\n }\n }\n this.pageElManager = new PageElManager(this.pages, this.scale);\n this.$pages = this.renderPages();\n }\n setContainerSize(width, height) {\n if (width > 0 && height > 0) {\n if (width !== this.containerWidth || height !== this.containerHeight) {\n this.containerWidth = width;\n this.containerHeight = height;\n this.$pages.style.width = `${this.containerWidth}px`;\n this.$pages.style.height = `${this.containerHeight}px`;\n this.scale = this._calcScale();\n this.threshold = this._calcThreshold();\n this.pageElManager.setScale(this.scale);\n if (this.$pages.parentElement) {\n this.pagesScrollTo(this.pagesScrollTop, true);\n }\n }\n }\n }\n renderPages() {\n const $pages = document.createElement(\"div\");\n $pages.className = \"page-renderer-pages-container\";\n $pages.style.width = `${this.containerWidth}px`;\n $pages.style.height = `${this.containerHeight}px`;\n return $pages;\n }\n pagesScrollTo(pagesScrollTop, force) {\n pagesScrollTop = clamp(pagesScrollTop, 0, this.pagesIntrinsicHeight - this.containerHeight / this.scale);\n if (force || Math.abs(pagesScrollTop - this.pagesScrollTop) >= 1e-3) {\n this._turnOnHWA();\n this.pagesScrollTop = pagesScrollTop;\n const pageScrollIndex = this.findScrollPageIndex();\n const startIndex = Math.max(pageScrollIndex - this.threshold, 0);\n const endIndex = Math.min(pageScrollIndex + this.threshold, this.pages.length - 1);\n for (let i = 0; i < this.$pages.children.length; i++) {\n const $page = this.$pages.children[i];\n const index = Number($page.dataset.index);\n if (!(index >= startIndex && index <= endIndex)) {\n $page.remove();\n i--;\n }\n }\n for (let i = startIndex; i <= endIndex; i++) {\n const pageEl = this.pageElManager.getEl(i);\n if (pageEl.$page.parentElement !== this.$pages) {\n this.$pages.appendChild(pageEl.$page);\n }\n pageEl.translateY(this.pagesIntrinsicYs[i] - this.pagesScrollTop);\n }\n if (pageScrollIndex !== this.pageScrollIndex) {\n this.pageScrollIndex = pageScrollIndex;\n if (this.onPageIndexChanged) {\n this.onPageIndexChanged(pageScrollIndex);\n }\n }\n }\n }\n findScrollPageIndex() {\n for (let i = 0; i < this.pagesIntrinsicYs.length; i++) {\n if (this.pagesIntrinsicYs[i] + this.pages[i].height - this.pagesScrollTop >= 1e-3) {\n return i;\n }\n }\n return this.pagesIntrinsicYs.length - 1;\n }\n mount($parent) {\n $parent.appendChild(this.$pages);\n this.pagesScrollTo(this.pagesScrollTop, true);\n }\n unmount() {\n this.$pages.remove();\n }\n destroy() {\n this.unmount();\n this.onPageIndexChanged = void 0;\n this.pageElManager.destroy();\n if (this._hwaTimeout) {\n window.clearTimeout(this._hwaTimeout);\n this._hwaTimeout = NaN;\n }\n }\n _calcScale() {\n return this.containerWidth / this.pagesIntrinsicWidth || 1;\n }\n _calcThreshold() {\n return clamp(Math.ceil(this.containerHeight / this.scale / this.pagesMinHeight / 2), 1, this.pages.length);\n }\n _turnOnHWA() {\n if (this._hwaTimeout) {\n window.clearTimeout(this._hwaTimeout);\n } else {\n this.$pages.classList.toggle(\"is-hwa\", true);\n }\n this._hwaTimeout = window.setTimeout(this._turnOffHWA, 1e3);\n }\n}\nconst SCROLLBAR_DEFAULT_MIN_HEIGHT = 30;\nclass ScrollBar {\n constructor(config) {\n this.sideEffect = new o();\n this.pagesScrollTop = config.pagesScrollTop || 0;\n this.containerWidth = config.containerWidth || 1;\n this.containerHeight = config.containerHeight || 1;\n this.pagesWidth = config.pagesWidth || 1;\n this.pagesHeight = config.pagesHeight || 1;\n this.scale = this._calcScale();\n this.scrollbarMinHeight = config.scrollbarMinHeight || SCROLLBAR_DEFAULT_MIN_HEIGHT;\n this.scrollbarHeight = this._calcScrollbarHeight();\n this.readonly = config.readonly;\n this.wrapClassName = config.wrapClassName;\n this.onDragScroll = config.onDragScroll;\n this.$scrollbar = this.renderScrollbar();\n }\n mount($parent) {\n $parent.appendChild(this.$scrollbar);\n this.pagesScrollTo(this.pagesScrollTop, true);\n }\n unmount() {\n this.$scrollbar.remove();\n }\n setReadonly(readonly) {\n this.readonly = readonly;\n }\n setContainerSize(width, height) {\n if (width > 0 && height > 0) {\n if (width !== this.containerWidth || height !== this.containerHeight) {\n this.containerWidth = width;\n this.containerHeight = height;\n this.scale = this._calcScale();\n this._updateScrollbarHeight();\n if (this.$scrollbar.parentElement) {\n this.pagesScrollTo(this.pagesScrollTop, true);\n }\n }\n }\n }\n pagesScrollTo(pagesScrollTop, force) {\n pagesScrollTop = clamp(pagesScrollTop, 0, this.pagesHeight - this.containerHeight / this.scale);\n if (force || Math.abs(pagesScrollTop - this.pagesScrollTop) >= 1e-3) {\n this.pagesScrollTop = pagesScrollTop;\n const elScrollTop = this.pagesScrollTop * this.scale;\n const elPagesHeight = this.pagesHeight * this.scale;\n const translateY = elScrollTop / (elPagesHeight - this.containerHeight) * (this.containerHeight - this.scrollbarHeight);\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this.$scrollbar.style.transform = `translateY(${translateY}px)`;\n });\n } else {\n this.$scrollbar.style.transform = `translateY(${translateY}px)`;\n }\n }\n }\n destroy() {\n this.unmount();\n this.onDragScroll = void 0;\n this.sideEffect.flushAll();\n }\n renderScrollbar() {\n const $scrollbar = document.createElement(\"button\");\n $scrollbar.className = this.wrapClassName(\"scrollbar\");\n $scrollbar.style.minHeight = `${this.scrollbarMinHeight}px`;\n $scrollbar.style.height = `${this.scrollbarHeight}px`;\n const trackStart = (ev) => {\n if (this.readonly) {\n return;\n }\n if (ev.button != null && ev.button !== 0) {\n return;\n }\n preventEvent(ev);\n const draggingClassName = this.wrapClassName(\"scrollbar-dragging\");\n $scrollbar.classList.toggle(draggingClassName, true);\n const startTop = this.pagesScrollTop;\n const { clientY: startY } = flattenEvent(ev);\n const tracking = (ev2) => {\n if (this.readonly) {\n return;\n }\n const { clientY } = flattenEvent(ev2);\n const offsetY = (clientY - startY) / this.scale;\n if (Math.abs(offsetY) > 0 && this.onDragScroll) {\n this.onDragScroll(startTop + offsetY * (this.pagesHeight * this.scale / this.containerHeight));\n }\n };\n const trackEnd = () => {\n $scrollbar.classList.toggle(draggingClassName, false);\n window.removeEventListener(\"mousemove\", tracking, true);\n window.removeEventListener(\"touchmove\", tracking, true);\n window.removeEventListener(\"mouseup\", trackEnd, true);\n window.removeEventListener(\"touchend\", trackEnd, true);\n window.removeEventListener(\"touchcancel\", trackEnd, true);\n };\n window.addEventListener(\"mousemove\", tracking, true);\n window.addEventListener(\"touchmove\", tracking, true);\n window.addEventListener(\"mouseup\", trackEnd, true);\n window.addEventListener(\"touchend\", trackEnd, true);\n window.addEventListener(\"touchcancel\", trackEnd, true);\n };\n this.sideEffect.addEventListener($scrollbar, \"mousedown\", trackStart);\n this.sideEffect.addEventListener($scrollbar, \"touchstart\", trackStart);\n return $scrollbar;\n }\n _calcScale() {\n return this.containerWidth / this.pagesWidth || 1;\n }\n _calcScrollbarHeight() {\n return clamp(this.containerHeight / (this.pagesHeight * this.scale) * this.containerHeight, this.scrollbarMinHeight, this.containerHeight);\n }\n _updateScrollbarHeight() {\n const newHeight = this._calcScrollbarHeight();\n if (Math.abs(newHeight - this.scrollbarHeight) > 1e-3) {\n this.scrollbarHeight = newHeight;\n this.$scrollbar.style.height = `${newHeight}px`;\n }\n }\n}\nconst RATIO_BASE_CONTAINER_HEIGHT = 640;\nclass StaticDocsViewer {\n constructor({\n whiteboardView,\n readonly,\n box,\n pages,\n pageScrollTop = 0,\n mountWhiteboard,\n onUserScroll\n }) {\n this.sideEffect = new o();\n this.userScrolling = false;\n this.onNewPageIndex = (index) => {\n this.scrollToPage(index);\n };\n this.whiteboardView = whiteboardView;\n this.readonly = readonly;\n this.box = box;\n this.pages = pages;\n this.mountWhiteboard = mountWhiteboard;\n this._onUserScroll = onUserScroll;\n const debouncedOnUserScroll = this.debounce(() => {\n this.userScrolling = false;\n if (this._onUserScroll) {\n this._onUserScroll(this.pageRenderer.pagesScrollTop);\n }\n }, { wait: 80 }, \"debounce-updateUserScroll\");\n this.updateUserScroll = () => {\n this.userScrolling = true;\n debouncedOnUserScroll();\n };\n this.viewer = new DocsViewer({\n readonly,\n box,\n pages,\n onNewPageIndex: this.onNewPageIndex\n });\n const { width: containerWidth, height: containerHeight } = this.whiteboardView.size;\n this.pageRenderer = new PageRenderer({\n pagesScrollTop: pageScrollTop,\n pages: this.pages,\n containerWidth,\n containerHeight,\n onPageIndexChanged: this.viewer.setPageIndex.bind(this.viewer)\n });\n this.scrollbar = new ScrollBar({\n pagesScrollTop: this.pageRenderer.pagesScrollTop,\n containerWidth,\n containerHeight,\n pagesWidth: this.pageRenderer.pagesIntrinsicWidth,\n pagesHeight: this.pageRenderer.pagesIntrinsicHeight,\n readonly: this.readonly,\n wrapClassName: this.wrapClassName.bind(this),\n onDragScroll: (pageScrollTop2) => {\n this.pageScrollTo(pageScrollTop2);\n this.updateUserScroll();\n }\n });\n this.pageScrollStepper = new Stepper({\n start: this.pageRenderer.pagesScrollTop,\n onStep: (pageScrollTop2) => {\n this.pageScrollTo(pageScrollTop2);\n }\n });\n this.render();\n }\n mount() {\n this.viewer.mount();\n this.setupScrollListener();\n this.sideEffect.add(() => {\n const handler = this.renderRatioHeight.bind(this);\n this.box.events.on(\"visual_resize\", handler);\n return () => this.box.events.off(\"visual_resize\", handler);\n });\n this.sideEffect.setTimeout(() => {\n if (!this.userScrolling) {\n this.pageScrollTo(this.pageRenderer.pagesScrollTop);\n }\n }, 100);\n return this;\n }\n unmount() {\n this.viewer.unmount();\n return this;\n }\n setReadonly(readonly) {\n if (this.readonly !== readonly) {\n this.readonly = readonly;\n this.viewer.setReadonly(readonly);\n this.scrollbar.setReadonly(readonly);\n }\n }\n destroy() {\n this.sideEffect.flushAll();\n this.pageScrollStepper.destroy();\n this._onUserScroll = void 0;\n this.unmount();\n this.viewer.destroy();\n this.pageRenderer.destroy();\n this.scrollbar.destroy();\n }\n syncPageScrollTop(pageScrollTop) {\n if (!this.userScrolling && pageScrollTop >= 0 && Math.abs(this.pageRenderer.pagesScrollTop - pageScrollTop) > 0.01) {\n this.pageScrollStepper.stepTo(pageScrollTop, this.pageRenderer.pagesScrollTop);\n }\n }\n render() {\n this.pageRenderer.mount(this.viewer.$content);\n this.viewer.$content.appendChild(this.renderWhiteboardView());\n this.scrollbar.mount(this.viewer.$content);\n this.renderRatioHeight();\n }\n renderRatioHeight() {\n const boxHeight = this.box.absoluteHeight;\n const isSmallBox = boxHeight <= RATIO_BASE_CONTAINER_HEIGHT;\n this.viewer.setSmallBox(isSmallBox);\n if (isSmallBox) {\n const titleBarSupposedHeight = 26 / RATIO_BASE_CONTAINER_HEIGHT;\n const titleBarActualHeight = 26 / boxHeight;\n const footerSupposedHeight = 26 / RATIO_BASE_CONTAINER_HEIGHT;\n const footerActualHeight = 0;\n const emptySpace = Math.max((titleBarSupposedHeight + footerSupposedHeight - (titleBarActualHeight + footerActualHeight)) / 2, 0);\n if (this.box.$titleBar) {\n const titleBarHeight = titleBarActualHeight + emptySpace;\n this.box.$titleBar.style.height = `${titleBarHeight * 100}%`;\n }\n if (this.box.$footer) {\n const footerHeight = footerActualHeight + emptySpace;\n this.box.$footer.style.height = `${footerHeight * 100}%`;\n }\n } else {\n if (this.box.$titleBar) {\n const titleBarHeight = Math.max(26 / RATIO_BASE_CONTAINER_HEIGHT, 26 / boxHeight);\n this.box.$titleBar.style.height = `${titleBarHeight * 100}%`;\n }\n if (this.box.$footer) {\n const footerHeight = Math.max(26 / RATIO_BASE_CONTAINER_HEIGHT, 26 / boxHeight);\n this.box.$footer.style.height = `${footerHeight * 100}%`;\n }\n }\n }\n renderWhiteboardView() {\n if (!this.$whiteboardView) {\n this.$whiteboardView = document.createElement(\"div\");\n this.$whiteboardView.className = this.wrapClassName(\"wb-view\");\n this.mountWhiteboard(this.$whiteboardView);\n this.sideEffect.addEventListener(this.$whiteboardView, \"wheel\", (ev) => {\n preventEvent(ev);\n if (!this.readonly) {\n this.pageScrollTo(this.pageRenderer.pagesScrollTop + ev.deltaY);\n this.updateUserScroll();\n }\n }, { passive: false, capture: true });\n this.sideEffect.addEventListener(this.$whiteboardView, \"touchmove\", (ev) => {\n if (this.readonly || ev.touches.length <= 1) {\n return;\n }\n this.updateUserScroll();\n }, { passive: true, capture: true });\n }\n return this.$whiteboardView;\n }\n scrollTopPageToEl(pageScrollTop) {\n return pageScrollTop * this.pageRenderer.scale;\n }\n scrollTopElToPage(elScrollTop) {\n return elScrollTop / this.pageRenderer.scale;\n }\n elScrollTo(elScrollTop) {\n this.pageScrollTo(this.scrollTopElToPage(elScrollTop));\n }\n pageScrollTo(pageScrollTop) {\n const halfWbHeight = this.scrollTopElToPage(this.whiteboardView.size.height / 2);\n this.whiteboardView.moveCamera({\n centerY: clamp(pageScrollTop + halfWbHeight, halfWbHeight, this.pageRenderer.pagesIntrinsicHeight - halfWbHeight),\n animationMode: \"immediately\"\n });\n }\n scrollToPage(index) {\n if (!this.readonly && !Number.isNaN(index)) {\n const offsetY = this.pageRenderer.pagesIntrinsicYs[index];\n if (offsetY >= 0) {\n this.pageScrollTo(offsetY + 5 / this.pageRenderer.scale);\n this.updateUserScroll();\n }\n }\n }\n setupScrollListener() {\n this.sideEffect.add(() => {\n const handleCameraUpdate = (camera) => {\n const { width: wbWidth, height: wbHeight } = this.whiteboardView.size;\n if (wbWidth <= 0 || wbHeight <= 0) {\n return;\n }\n const pagesScrollTop = camera.centerY - this.pageRenderer.containerHeight / this.pageRenderer.scale / 2;\n this.pageRenderer.pagesScrollTo(pagesScrollTop);\n this.scrollbar.pagesScrollTo(pagesScrollTop);\n };\n this.whiteboardView.callbacks.on(\"onCameraUpdated\", handleCameraUpdate);\n return () => this.whiteboardView.callbacks.off(\"onCameraUpdated\", handleCameraUpdate);\n });\n this.sideEffect.add(() => {\n const handleSizeUpdate = ({ width: wbWidth, height: wbHeight }) => {\n if (wbWidth <= 0 || wbHeight <= 0) {\n return;\n }\n this.pageRenderer.setContainerSize(wbWidth, wbHeight);\n this.scrollbar.setContainerSize(wbWidth, wbHeight);\n const { pagesIntrinsicWidth, pagesIntrinsicHeight } = this.pageRenderer;\n this.whiteboardView.moveCameraToContain({\n originX: 0,\n originY: this.pageRenderer.pagesScrollTop,\n width: pagesIntrinsicWidth,\n height: wbHeight / this.pageRenderer.scale,\n animationMode: \"immediately\"\n });\n this.whiteboardView.setCameraBound({\n damping: 1,\n maxContentMode: () => this.pageRenderer.scale,\n minContentMode: () => this.pageRenderer.scale,\n centerX: pagesIntrinsicWidth / 2,\n centerY: pagesIntrinsicHeight / 2,\n width: pagesIntrinsicWidth,\n height: pagesIntrinsicHeight\n });\n };\n this.whiteboardView.callbacks.on(\"onSizeUpdated\", handleSizeUpdate);\n return () => {\n this.whiteboardView.callbacks.off(\"onSizeUpdated\", handleSizeUpdate);\n };\n }, \"whiteboard-size-update\");\n this.sideEffect.addEventListener(window, \"keyup\", (ev) => {\n if (this.readonly || !this.box.focus || this.box.minimized) {\n return;\n }\n let newPageScrollTop = null;\n switch (ev.key) {\n case \"PageDown\": {\n newPageScrollTop = this.pageRenderer.pagesScrollTop + this.pageRenderer.containerHeight / this.pageRenderer.scale;\n break;\n }\n case \"PageUp\": {\n newPageScrollTop = this.pageRenderer.pagesScrollTop - this.pageRenderer.containerHeight / this.pageRenderer.scale;\n break;\n }\n case \"ArrowDown\": {\n newPageScrollTop = this.pageRenderer.pagesScrollTop + this.pageRenderer.containerHeight / 4 / this.pageRenderer.scale;\n break;\n }\n case \"ArrowUp\": {\n newPageScrollTop = this.pageRenderer.pagesScrollTop - this.pageRenderer.containerHeight / 4 / this.pageRenderer.scale;\n break;\n }\n }\n if (newPageScrollTop !== null) {\n if (this._onUserScroll) {\n this._onUserScroll(newPageScrollTop);\n } else {\n this.pageScrollTo(newPageScrollTop);\n this.updateUserScroll();\n }\n }\n }, { capture: true });\n }\n debounce(fn, options, disposerID) {\n const dFn = debounceFn(fn, options);\n this.sideEffect.addDisposer(() => dFn.cancel(), disposerID);\n return dFn;\n }\n wrapClassName(className) {\n return \"netless-app-docs-viewer-static-\" + className;\n }\n}\nclass DynamicDocsViewer {\n constructor({ context, whiteboardView, box, pages }) {\n this.sideEffect = new o();\n this.onPlayPPT = () => {\n const room = this.context.getRoom();\n if (room) {\n room.pptNextStep();\n }\n };\n this._scaleDocsToFitImpl = () => {\n const page = this.pages[this.getPageIndex()];\n if (page) {\n this.whiteboardView.moveCameraToContain({\n originX: -page.width / 2,\n originY: -page.height / 2,\n width: page.width,\n height: page.height,\n animationMode: \"immediately\"\n });\n }\n };\n this._scaleDocsToFitDebounced = () => {\n this.sideEffect.setTimeout(this._scaleDocsToFitImpl, 1e3, \"_scaleDocsToFitDebounced\");\n };\n this.scaleDocsToFit = () => {\n this._scaleDocsToFitImpl();\n this._scaleDocsToFitDebounced();\n };\n this.onNewPageIndex = (index) => {\n this.jumpToPage(index, true);\n };\n this.context = context;\n this.whiteboardView = whiteboardView;\n this.box = box;\n this.pages = pages;\n this.displayer = context.getDisplayer();\n this.viewer = new DocsViewer({\n readonly: !context.getIsWritable(),\n box,\n pages,\n onNewPageIndex: this.onNewPageIndex,\n onPlay: this.onPlayPPT\n });\n this.render();\n this.sideEffect.add(() => {\n const handler = (isWritable) => {\n this.viewer.setReadonly(!isWritable);\n };\n this.context.emitter.on(\"writableChange\", handler);\n return () => this.context.emitter.off(\"writableChange\", handler);\n });\n this.sideEffect.add(() => {\n const handler = (sceneState) => {\n this.jumpToPage(sceneState.index);\n };\n this.context.emitter.on(\"sceneStateChange\", handler);\n return () => this.context.emitter.off(\"sceneStateChange\", handler);\n });\n }\n mount() {\n this.viewer.mount();\n const pageIndex = this.getPageIndex();\n if (pageIndex !== 0) {\n this.jumpToPage(pageIndex);\n }\n this.scaleDocsToFit();\n this.sideEffect.add(() => {\n this.whiteboardView.callbacks.on(\"onSizeUpdated\", this.scaleDocsToFit);\n return () => {\n this.whiteboardView.callbacks.off(\"onSizeUpdated\", this.scaleDocsToFit);\n };\n });\n return this;\n }\n unmount() {\n this.viewer.unmount();\n return this;\n }\n destroy() {\n this.sideEffect.flushAll();\n this.unmount();\n this.viewer.destroy();\n }\n getPageIndex() {\n return this.displayer.state.sceneState.index;\n }\n jumpToPage(index, reset) {\n var _a, _b;\n index = clamp(index, 0, this.pages.length - 1);\n if (index !== this.getPageIndex()) {\n if (this.context.getIsWritable()) {\n const initScenePath = this.context.getInitScenePath();\n const scene = (_b = (_a = this.context.getScenes()) == null ? void 0 : _a[index]) == null ? void 0 : _b.name;\n if (initScenePath && scene) {\n this.context.setScenePath(`${initScenePath}/${scene}`);\n }\n this.scaleDocsToFit();\n }\n }\n if (index !== this.viewer.pageIndex) {\n this.viewer.setPageIndex(index);\n }\n if (reset) {\n const room = this.context.getRoom();\n if (room) {\n const pptState = room.state.globalState.__pptState;\n room.setGlobalState({\n __pptState: pptState && {\n uuid: pptState.uuid,\n pageIndex: index,\n disableAutoPlay: pptState.disableAutoPlay\n }\n });\n }\n }\n }\n render() {\n this.viewer.$content.appendChild(this.renderMask());\n this.viewer.$content.appendChild(this.renderWhiteboardView());\n this.sideEffect.addEventListener(window, \"keydown\", (ev) => {\n var _a;\n if (this.box.focus) {\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\": {\n this.jumpToPage(this.getPageIndex() - 1, true);\n break;\n }\n case \"ArrowRight\":\n case \"ArrowDown\": {\n (_a = this.context.getRoom()) == null ? void 0 : _a.pptNextStep();\n break;\n }\n }\n }\n });\n }\n renderMask() {\n if (!this.$mask) {\n const $mask = document.createElement(\"div\");\n $mask.className = this.wrapClassName(\"mask\");\n this.$mask = $mask;\n const $back = document.createElement(\"button\");\n $back.className = this.wrapClassName(\"back\");\n const $next = document.createElement(\"button\");\n $next.className = this.wrapClassName(\"next\");\n }\n return this.$mask;\n }\n renderWhiteboardView() {\n if (!this.$whiteboardView) {\n this.$whiteboardView = document.createElement(\"div\");\n this.$whiteboardView.className = this.wrapClassName(\"wb-view\");\n this.sideEffect.addEventListener(this.$whiteboardView, \"click\", (ev) => {\n var _a;\n const room = this.context.getRoom();\n if (room && room.state.memberState.currentApplianceName === \"clicker\") {\n for (let el = ev.target; el; el = el.parentElement) {\n if ((_a = el.classList) == null ? void 0 : _a.contains(\"ppt-event-source\")) {\n return;\n }\n }\n room.pptNextStep();\n }\n });\n this.context.mountView(this.$whiteboardView);\n }\n return this.$whiteboardView;\n }\n wrapClassName(className) {\n return \"netless-app-docs-viewer-dynamic-\" + className;\n }\n}\nconst kind = \"DocsViewer\";\nconst NetlessAppDocsViewer = {\n kind,\n setup(context) {\n const box = context.getBox();\n const scenes = context.getScenes();\n if (!scenes) {\n throw new Error(\"[Docs Viewer]: scenes not found.\");\n }\n const whiteboardView = context.getView();\n if (!whiteboardView) {\n throw new Error(\"[Docs Viewer]: no whiteboard view.\");\n }\n const pages = scenes.map(({ ppt }) => ppt ? {\n width: ppt.width,\n height: ppt.height,\n src: ppt.src,\n thumbnail: ppt.previewURL\n } : null).filter((page) => Boolean(page));\n if (pages.length <= 0) {\n throw new Error(\"[Docs Viewer]: empty scenes.\");\n }\n box.mountStyles(styles);\n if (pages[0].src.startsWith(\"ppt\")) {\n setupDynamicDocsViewer(context, whiteboardView, box, pages);\n } else {\n setupStaticDocsViewer(context, whiteboardView, box, pages);\n }\n }\n};\nfunction setupStaticDocsViewer(context, whiteboardView, box, pages) {\n var _a;\n whiteboardView.disableCameraTransform = !context.getIsWritable();\n const docsViewer = new StaticDocsViewer({\n whiteboardView,\n readonly: !context.getIsWritable(),\n box,\n pages,\n pageScrollTop: (_a = context.getAttributes()) == null ? void 0 : _a.pageScrollTop,\n mountWhiteboard: context.mountView.bind(context),\n onUserScroll: (pageScrollTop) => {\n var _a2;\n if (((_a2 = context.getAttributes()) == null ? void 0 : _a2.pageScrollTop) !== pageScrollTop && !box.readonly) {\n context.updateAttributes([\"pageScrollTop\"], pageScrollTop);\n }\n }\n }).mount();\n context.emitter.on(\"attributesUpdate\", (attributes) => {\n if (attributes) {\n if (attributes.pageScrollTop != null) {\n docsViewer.syncPageScrollTop(attributes.pageScrollTop);\n }\n }\n });\n context.emitter.on(\"writableChange\", (isWritable) => {\n docsViewer.setReadonly(!isWritable);\n whiteboardView.disableCameraTransform = !isWritable;\n });\n}\nfunction setupDynamicDocsViewer(context, whiteboardView, box, pages) {\n whiteboardView.disableCameraTransform = true;\n const docsViewer = new DynamicDocsViewer({\n context,\n whiteboardView,\n box,\n pages\n }).mount();\n context.mountView(docsViewer.$whiteboardView);\n if (context.isAddApp) {\n whiteboardView.callbacks.once(\"onSizeUpdated\", ({ width: contentWidth, height: contentHeight }) => {\n if (pages.length > 0 && box.state !== \"maximized\") {\n const { width: pageWidth, height: pageHeight } = pages[0];\n const preferHeight = pageHeight / pageWidth * contentWidth;\n const diff = preferHeight - contentHeight;\n if (diff !== 0 && context.getIsWritable()) {\n context.emitter.emit(\"setBoxSize\", {\n width: box.width,\n height: box.height + diff / box.containerRect.height\n });\n }\n }\n });\n }\n}\nexport { NetlessAppDocsViewer as default };\n//# sourceMappingURL=main.es.js.map\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.14.0\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.14.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,n=(t,i,s)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[i]=s,a=(e,t)=>{for(var i in t||(t={}))r.call(t,i)&&n(e,i,t[i]);if(s)for(var i of s(t))o.call(t,i)&&n(e,i,t[i]);return e};import l,{Component as c}from\"react\";import u from\"react-dom\";import p from\"video.js\";const h=\"0.1.0-alpha.5\",d={src:\"\",currentTime:0,hostTime:0,muted:!1,paused:!0,volume:1},m={currentTimeMaxError:1,syncInterval:1e3,retryInterval:15e3,verbose:!1,log:console.log.bind(console)};let g=m;function v(e){g=a(a({},m),e)}function A(e,t){if(e.paused)return e.currentTime;const i=function(e){if(e.player)return e.player.beginTimestamp+e.player.progressTime;if(e.room)return e.room.calibrationTimestamp}(t);return i?e.currentTime+(i-e.hostTime)/1e3:e.currentTime}const f=navigator.userAgent.includes(\"Safari\"),y=[\".aac\",\".mid\",\".midi\",\".mp3\",\".ogg\",\".oga\",\".wav\",\".weba\"];var b=\"object\"==typeof global&&global&&global.Object===Object&&global,I=\"object\"==typeof self&&self&&self.Object===Object&&self,C=b||I||Function(\"return this\")(),E=C.Symbol,k=Object.prototype,T=k.hasOwnProperty,S=k.toString,P=E?E.toStringTag:void 0;var j=Object.prototype.toString;var B=E?E.toStringTag:void 0;function x(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":B&&B in Object(e)?function(e){var t=T.call(e,P),i=e[P];try{e[P]=void 0;var s=!0}catch(o){}var r=S.call(e);return s&&(t?e[P]=i:delete e[P]),r}(e):function(e){return j.call(e)}(e)}var w=/\\s/;var H=/^\\s+/;function Q(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&w.test(e.charAt(t)););return t}(e)+1).replace(H,\"\"):e}function M(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}var L=/^[-+]0x[0-9a-f]+$/i,N=/^0b[01]+$/i,W=/^0o[0-7]+$/i,V=parseInt;function O(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return null!=e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==x(e)}(e))return NaN;if(M(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=M(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=Q(e);var i=N.test(e);return i||W.test(e)?V(e.slice(2),i?2:8):L.test(e)?NaN:+e}var z=function(){return C.Date.now()},Z=Math.max,D=Math.min;function R(e,t,i){var s,r,o,n,a,l,c=0,u=!1,p=!1,h=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function d(t){var i=s,o=r;return s=r=void 0,c=t,n=e.apply(o,i)}function m(e){return c=e,a=setTimeout(v,t),u?d(e):n}function g(e){var i=e-l;return void 0===l||i>=t||i<0||p&&e-c>=o}function v(){var e=z();if(g(e))return A(e);a=setTimeout(v,function(e){var i=t-(e-l);return p?D(i,o-(e-c)):i}(e))}function A(e){return a=void 0,h&&s?d(e):(s=r=void 0,n)}function f(){var e=z(),i=g(e);if(s=arguments,r=this,l=e,i){if(void 0===a)return m(l);if(p)return clearTimeout(a),a=setTimeout(v,t),d(l)}return void 0===a&&(a=setTimeout(v,t)),n}return t=O(t)||0,M(i)&&(u=!!i.leading,o=(p=\"maxWait\"in i)?Z(O(i.maxWait)||0,t):o,h=\"trailing\"in i?!!i.trailing:h),f.cancel=function(){void 0!==a&&clearTimeout(a),c=0,s=l=r=a=void 0},f.flush=function(){return void 0===a?n:A(z())},f}class U extends c{constructor(e){super(e),this.seeking=!1,this.mobileSeeking=!1,this.track=null,this.hoverTime=null,this.offset=0,this.secondsPrefix=\"00:00:\",this.minutesPrefix=\"00:\",this.seekPause=!1,this.handleTouchSeeking=e=>{let t=0;for(let i=0;i<e.changedTouches.length;i++)t=e.changedTouches[i].pageX;t=t<0?0:t,this.mobileSeeking&&this.changeCurrentTimePosition(t)},this.handleSeeking=e=>{this.seeking&&this.changeCurrentTimePosition(e.pageX)},this.setTrackWidthState=()=>{this.track&&this.setState({trackWidth:this.track.offsetWidth})},this.handleTrackHover=(e,t)=>{if(this.track){const i=this.props.scale||1;let s;s=e?0:(t.pageX-this.track.getBoundingClientRect().left)/i,this.setState({seekHoverPosition:s,trackWidth:this.track.offsetWidth})}},this.mouseSeekingHandler=e=>{this.setSeeking(!1,e),this.onMouseUp()},this.setSeeking=(e,t)=>{t.preventDefault(),this.handleSeeking(t),this.seeking=e,this.setState({seekHoverPosition:e?this.state.seekHoverPosition:0})},this.mobileTouchSeekingHandler=()=>{this.setMobileSeeking(!1)},this.setMobileSeeking=e=>{this.mobileSeeking=e,this.setState({seekHoverPosition:e?this.state.seekHoverPosition:0})},this.renderBufferProgress=()=>{if(this.props.buffered){const e=a(a({},this.getPositionStyle(this.props.buffered)),this.props.bufferColor&&{backgroundColor:this.props.bufferColor});return l.createElement(\"div\",{className:\"buffered\",style:e})}return null},this.renderProgress=()=>{const e=a(a({},this.getPositionStyle(this.props.current)),this.props.sliderColor&&{backgroundColor:this.props.sliderColor});return l.createElement(\"div\",{className:\"connect\",style:e})},this.renderHoverProgress=()=>{const e=a(a({},this.getSeekHoverPosition()),this.props.sliderHoverColor&&{backgroundColor:this.props.sliderHoverColor});return l.createElement(\"div\",{className:\"seek-hover\",style:e})},this.renderThumb=()=>l.createElement(\"div\",{className:this.isThumbActive()?\"thumb active\":\"thumb\",style:this.getThumbHandlerPosition()},l.createElement(\"div\",{style:{backgroundColor:this.props.thumbColor},className:\"handler\"})),this.onMouseDown=e=>{var t,i;this.props.pause&&!this.props.paused&&(this.props.pause(),this.seekPause=!0),this.setSeeking(!0,e),null==(i=(t=this.props).onSeekStart)||i.call(t)},this.onMouseUp=()=>{var e,t;this.props.play&&this.seekPause&&(this.props.play(),this.seekPause=!1),null==(t=(e=this.props).onSeekEnd)||t.call(e)},this.props.secondsPrefix&&(this.secondsPrefix=this.props.secondsPrefix),this.props.minutesPrefix&&(this.minutesPrefix=this.props.minutesPrefix),this.state={ready:!1,trackWidth:0,seekHoverPosition:0}}componentDidMount(){this.setTrackWidthState(),window.addEventListener(\"resize\",this.setTrackWidthState),window.addEventListener(\"mousemove\",this.handleSeeking),window.addEventListener(\"mouseup\",this.mouseSeekingHandler),window.addEventListener(\"touchmove\",this.handleTouchSeeking),window.addEventListener(\"touchend\",this.mobileTouchSeekingHandler)}componentWillUnmount(){window.removeEventListener(\"resize\",this.setTrackWidthState),window.removeEventListener(\"mousemove\",this.handleSeeking),window.removeEventListener(\"mouseup\",this.mouseSeekingHandler),window.removeEventListener(\"touchmove\",this.handleTouchSeeking),window.removeEventListener(\"touchend\",this.mobileTouchSeekingHandler)}changeCurrentTimePosition(e){if(this.track){const t=this.props.scale||1;let i=(e-this.track.getBoundingClientRect().left)/t;i=Math.min(this.state.trackWidth,Math.max(0,i)),this.setState({seekHoverPosition:i});const s=+(i/this.state.trackWidth*this.props.total).toFixed(0);this.props.onChange(s)}}getPositionStyle(e){return{transform:`scaleX(${100*e/this.props.total/100})`}}getThumbHandlerPosition(){return{transform:`translateX(${this.state.trackWidth/(this.props.total/this.props.current)}px)`}}getSeekHoverPosition(){return{transform:`scaleX(${100*this.state.seekHoverPosition/this.state.trackWidth/100})`}}getHoverTimePosition(){let e=0;return this.hoverTime&&(e=this.state.seekHoverPosition-this.hoverTime.offsetWidth/2,this.props.limitTimeTooltipBySides&&(e<0?e=0:e+this.hoverTime.offsetWidth>this.state.trackWidth&&(e=this.state.trackWidth-this.hoverTime.offsetWidth))),{transform:`translateX(${e}px)`}}secondsToTime(e){e=Math.round(e+this.offset);const t=Math.floor(e/3600),i=e%3600,s=Math.floor(i/60),r=Math.ceil(i%60);return{hh:t.toString(),mm:s<10?\"0\"+s:s.toString(),ss:r<10?\"0\"+r:r.toString()}}getHoverTime(){const e=100*this.state.seekHoverPosition/this.state.trackWidth,t=Math.floor(+e*(this.props.total/100)),i=this.secondsToTime(t);return this.props.total+this.offset<60?this.secondsPrefix+i.ss:this.props.total+this.offset<3600?this.minutesPrefix+i.mm+\":\"+i.ss:i.hh+\":\"+i.mm+\":\"+i.ss}isThumbActive(){return this.state.seekHoverPosition>0||this.seeking}drawHoverTime(){return this.props.hideHoverTime?null:l.createElement(\"div\",{className:this.isThumbActive()?\"hover-time active\":\"hover-time\",style:this.getHoverTimePosition(),ref:e=>this.hoverTime=e},this.getHoverTime())}render(){return l.createElement(\"div\",{className:\"seek-slider\"},l.createElement(\"div\",{className:\"track\",ref:e=>this.track=e,onMouseMove:e=>this.handleTrackHover(!1,e),onMouseLeave:e=>this.handleTrackHover(!0,e),onMouseDown:this.onMouseDown,onTouchStart:e=>{this.setMobileSeeking(!0),this.onMouseDown(e)},onMouseUp:this.onMouseUp,onTouchEnd:this.onMouseUp},l.createElement(\"div\",{className:\"main\"},this.renderBufferProgress(),this.renderHoverProgress(),this.renderProgress())),this.drawHoverTime(),this.renderThumb())}}class X extends c{constructor(e){super(e),this.stageVolume=0,this.updateVolumeTimer=0,this.onVolumeSeeking=!1,this.onClickOperationButton=()=>{const{paused:e}=this.props;e?this.props.play():this.props.pause()},this.operationButton=()=>{const{paused:e}=this.props;return e?l.createElement(\"img\",{src:\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1tZGkiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1LjE0djE0bDExLTdsLTExLTd6IiBmaWxsPSIjZmZmIj48L3BhdGg+PC9zdmc+Cg==\"}):l.createElement(\"img\",{src:\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1tZGkiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTQgMTloNFY1aC00TTYgMTloNFY1SDZ2MTR6IiBmaWxsPSIjZmZmIj48L3BhdGg+PC9zdmc+Cg==\"})},this.operationVolumeButton=()=>this.props.volume>.9?l.createElement(\"img\",{src:\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1tZGkiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTQgMy4yM3YyLjA2YzIuODkuODYgNSAzLjU0IDUgNi43MXMtMi4xMSA1Ljg0LTUgNi43djIuMDdjNC0uOTEgNy00LjQ5IDctOC43N2MwLTQuMjgtMy03Ljg2LTctOC43N00xNi41IDEyYzAtMS43Ny0xLTMuMjktMi41LTQuMDNWMTZjMS41LS43MSAyLjUtMi4yNCAyLjUtNE0zIDl2Nmg0bDUgNVY0TDcgOUgzeiIgZmlsbD0iI2ZmZiI+PC9wYXRoPjwvc3ZnPgo=\"}):0===this.props.volume?l.createElement(\"img\",{src:\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1tZGkiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNyA5djZoNGw1IDVWNGwtNSA1SDd6IiBmaWxsPSIjZmZmIj48L3BhdGg+PC9zdmc+Cg==\"}):l.createElement(\"img\",{src:\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1tZGkiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNSA5djZoNGw1IDVWNEw5IDltOS41IDNjMC0xLjc3LTEtMy4yOS0yLjUtNC4wM1YxNmMxLjUtLjcxIDIuNS0yLjI0IDIuNS00eiIgZmlsbD0iI2ZmZiI+PC9wYXRoPjwvc3ZnPgo=\"}),this.handleClickVolume=()=>{0===this.props.volume?0!==this.stageVolume?this.props.setVolume(this.stageVolume):this.props.setVolume(1):(this.stageVolume=this.props.volume,this.props.setVolume(0))},this.onChange=e=>{this.setState({currentTime:e}),e&&this.changeTime(e)},this.changeTime=R((e=>{this.props.setCurrentTime(e)}),50),this.onVolumeChange=e=>{this.changeVolume(e),this.setState({seekVolume:e/100})},this.changeVolume=R((e=>{this.props.setVolume(e/100)}),50),this.onVolumeSeekStart=()=>{this.onVolumeSeeking=!0},this.onVolumeSeekEnd=R((()=>{this.onVolumeSeeking=!1}),500),this.onProgressSeekStart=()=>this.setState({isPlayerSeeking:!0}),this.onProgressSeekEnd=R((()=>{this.setState({isPlayerSeeking:!1})}),500),this.state={isPlayerSeeking:!1,isVolumeHover:!1,seekVolume:1,visible:!0,currentTime:0},this.stageVolume=e.volume}componentDidMount(){this.updateVolumeTimer=setInterval((()=>{this.onVolumeSeeking||this.setState({seekVolume:this.props.volume}),this.state.isPlayerSeeking||this.setState({currentTime:this.props.currentTime})}),100)}componentWillUnmount(){this.updateVolumeTimer&&clearInterval(this.updateVolumeTimer)}render(){const{duration:e,currentTime:t}=this.props;return l.createElement(\"div\",{className:\"player-controller\",style:{opacity:this.props.visible?\"1\":\"0\"}},l.createElement(\"div\",{className:\"player-controller-progress\"},l.createElement(U,{total:e,current:this.state.currentTime,onChange:this.onChange,buffered:this.props.buffered,bufferColor:\"rgba(255,255,255,0.3)\",hideHoverTime:!0,limitTimeTooltipBySides:!0,onSeekStart:this.onProgressSeekStart,onSeekEnd:this.onProgressSeekEnd,play:this.props.play,pause:this.props.pause,paused:this.props.paused,scale:this.props.scale})),l.createElement(\"div\",{className:\"player-controller-actions\"},l.createElement(\"div\",{className:\"player-controller-actions-left\"},l.createElement(\"div\",{onClick:this.onClickOperationButton,className:\"player-controller-play\"},this.operationButton()),l.createElement(\"div\",{className:\"player-volume-box\",onMouseEnter:()=>this.setState({isVolumeHover:!0}),onMouseLeave:()=>this.setState({isVolumeHover:!1})},l.createElement(\"div\",{onClick:this.handleClickVolume,className:\"player-volume\"},this.operationVolumeButton()),l.createElement(\"div\",{className:\"player-volume-slider\"},l.createElement(U,{total:100,current:100*this.state.seekVolume,onChange:this.onVolumeChange,onSeekStart:this.onVolumeSeekStart,onSeekEnd:this.onVolumeSeekEnd,scale:this.props.scale,limitTimeTooltipBySides:!0,hideHoverTime:!0})))),l.createElement(\"div\",{className:\"player-mid-box-time\"},F(Math.floor(t/1e3)),\" /\",\" \",F(Math.floor(e/1e3)))))}}function F(e){const t=e%60,i=(e-t)/60;if(i>=60){const e=i%60;return`${G((i-e)/60)}:${G(e)}:${G(t)}`}return`${G(i)}:${G(t)}`}function G(e){return e<=9?`0${e}`:`${e}`}class Y extends c{constructor(){super(...arguments),this.putAttributes=e=>{const{context:t}=this.props,i=t.getAttributes()||{};for(const s in e)i[s]!==e[s]&&t.updateAttributes([s],e[s])}}render(){const{context:e}=this.props,t=e.getRoom(),i=t?void 0:e.getDisplayer(),s=this.putAttributes;return l.createElement(J,{room:t,player:i,context:e,plugin:{putAttributes:s}})}}class J extends c{constructor(e){super(e),this.alertMask=null,this.container=l.createRef(),this.controllerHiddenTimer=0,this.syncPlayerTimer=0,this.retryCount=0,this.decreaseRetryTimer=0,this.noSoundSyncCount=0,this.showController=()=>{this.setState({controllerVisible:!0}),this.debounceHidingController()},this.play=()=>{var e;const t=null==(e=this.props.room)?void 0:e.calibrationTimestamp;this.debug(\">>> play\",{paused:!1,hostTime:t}),this.isEnabled()&&this.props.plugin.putAttributes({paused:!1,hostTime:t})},this.pause=()=>{const e=A(this.getAttributes(),this.props);this.debug(\">>> pause\",{paused:!0,currentTime:e}),this.isEnabled()&&this.props.plugin.putAttributes({paused:!0,currentTime:e})},this.setVolume=e=>{this.debug(\">>> volume\",{volume:e}),this.isEnabled()&&this.props.plugin.putAttributes({volume:e}),this.isEnabled()&&this.props.plugin.putAttributes({volume:e,muted:0===e})},this.setCurrentTime=e=>{var t;const i=null==(t=this.props.room)?void 0:t.calibrationTimestamp;this.debug(\">>> seek\",{currentTime:e/1e3,hostTime:i}),this.isEnabled()&&this.props.plugin.putAttributes({currentTime:e/1e3,hostTime:i})},this.resetPlayer=()=>{var e;null==(e=this.player)||e.autoplay(!1),this.state.NoSound||(this.debug(\">>> ended\",{paused:!0,currentTime:0}),this.isEnabled()&&this.props.plugin.putAttributes({paused:!0,currentTime:0}))},this.syncPlayerWithAttributes=()=>{var e;const t=this.getAttributes();if(!t)return;const i=this.player;if(!i)return;if(this.state.NoSound&&(this.noSoundSyncCount+=1)%8!=0)return;i.paused()!==t.paused&&(this.debug(\"<<< paused -> %o\",t.paused),t.paused?i.pause():null==(e=i.play())||e.catch(this.catchPlayFail)),i.muted()!==t.muted&&(this.debug(\"<<< muted -> %o\",t.muted),i.muted(t.muted)),i.volume()!==t.volume&&(this.debug(\"<<< volume -> %o\",t.volume),i.volume(t.volume));const s=A(t,this.props);let r=g.currentTimeMaxError;this.state.NoSound&&(r*=3),s>i.duration()?this.resetPlayer():Math.abs(i.currentTime()-s)>r&&(this.debug(\"<<< currentTime -> %o\",s),i.currentTime(s))},this.debounceHidingController=()=>{this.controllerHiddenTimer&&(clearTimeout(this.controllerHiddenTimer),this.controllerHiddenTimer=0),this.controllerHiddenTimer=setTimeout((()=>{this.setState({controllerVisible:!1}),this.controllerHiddenTimer=0}),3e3)},this.decreaseRetryCount=()=>{this.player&&this.retryCount>0&&(this.retryCount=this.retryCount-1)},this.catchPlayFail=e=>{var t,i;const s=String(e);if(f&&s.includes(\"NotAllowedError\")||s.includes(\"interact\"))null==(t=this.player)||t.autoplay(\"any\"),this.setState({NoSound:!0});else{const t=null==(i=this.player)?void 0:i.error();t&&(this.retryCount<=3?(this.initPlayer(),this.retryCount=this.retryCount+1):(this.debug(\"catch videojs media error\",t),this.setState({MediaError:!0}))),this.debug(\"catch error\",e)}},this.fixPlayFail=()=>{this.debug(\"try to fix play state\"),this.setState({NoSound:!1});const{muted:e,volume:t}=this.getAttributes();this.player&&(this.player.muted(e),this.player.volume(t))},this.initPlayer=async()=>{var e;null==(e=this.player)||e.dispose(),this.player=void 0,this.debug(\"creating elements ...\");const{type:t,src:i,poster:s}=this.getAttributes(),r=document.createElement(\"div\");r.setAttribute(\"data-vjs-player\",\"\");const o=document.createElement(\"video\");o.className=\"video-js\",s&&(o.poster=s),o.setAttribute(\"playsInline\",\"\"),o.setAttribute(\"webkit-playsinline\",\"\");const n=document.createElement(\"source\");new URL(i).pathname.endsWith(\".m3u8\")?n.type=\"application/x-mpegURL\":o.src=i,n.src=i,t&&(n.type=t),o.appendChild(n),r.appendChild(o),this.container.current.appendChild(r),await new Promise((e=>(window.requestAnimationFrame||window.setTimeout)(e))),this.debug(\"initializing videojs() ...\");const a=p(o);this.player=a,window.player=a,a.one(\"loadedmetadata\",this.gracefullyUpdate),a.on(\"ready\",(()=>{var e;null==(e=g.onPlayer)||e.call(g,a),a.on(\"timeupdate\",this.gracefullyUpdate),a.on(\"volumechange\",this.gracefullyUpdate),a.on(\"seeked\",this.gracefullyUpdate),a.on(\"play\",this.gracefullyUpdate),a.on(\"pause\",this.gracefullyUpdate),a.on(\"ended\",this.resetPlayer)})),a.on(\"error\",this.catchPlayFail),this.setState({MediaError:!1})},this.gracefullyUpdate=()=>this.setState({updater:!this.state.updater}),this.setupAlert=e=>{e&&(e.addEventListener(\"touchstart\",this.fixPlayFail),e.addEventListener(\"click\",this.fixPlayFail)),this.alertMask=e},this.setupReload=e=>{e&&(e.addEventListener(\"touchstart\",this.initPlayer),e.addEventListener(\"click\",this.initPlayer))},this.state={NoSound:!1,MediaError:!1,updater:!1,controllerVisible:!1},e.room&&function(e){if(!e.calibrationTimestamp)throw new Error(\"@netless/app-media-player@0.1.0-alpha.5 requires white-web-sdk@^2.13.8 to work properly.\")}(e.room)}getAttributes(){const{context:e}=this.props;let s=e.getAttributes();if(s){if(s=a(a({},d),s),this.player){let e=A(s,this.props),o=this.player.duration();!s.paused&&e>o&&(r=a({},s),s=t(r,i({currentTime:0,paused:!0})),this.resetPlayer())}var r;return s}}isShowingPoster(){const e=this.getAttributes();return!(null==e?void 0:e.src)||y.some((t=>e.src.endsWith(t)))}render(){var e,t;if(!this.props.room&&!this.props.player)return null;const i=this.getAttributes();if(!i)return null;const s=1e3*((null==(e=this.player)?void 0:e.duration())||1e3),r=(null==(t=this.player)?void 0:t.bufferedPercent())||0;return l.createElement(\"div\",{className:this.isEnabled()?\"vjs-p\":\"vjs-p disabled\",onMouseEnter:this.showController,onMouseMove:this.showController},l.createElement(\"div\",{className:\"video-js-plugin-player\",ref:this.container}),this.isShowingPoster()&&l.createElement(\"div\",{className:\"video-js-plugin-poster\"},i.poster&&l.createElement(\"img\",{src:i.poster,alt:\"\",draggable:!1})),l.createElement(X,{duration:s,volume:i.volume,setVolume:this.setVolume,paused:i.paused,play:this.play,pause:this.pause,currentTime:1e3*A(i,this.props),setCurrentTime:this.setCurrentTime,buffered:s*r,visible:!0}),this.state.NoSound&&l.createElement(\"div\",{ref:this.setupAlert,className:\"videojs-plugin-muted-alert\"}),this.state.MediaError&&l.createElement(\"div\",{className:\"videojs-plugin-recovery-mode\"},l.createElement(\"button\",{ref:this.setupReload},\"Reload Player\")))}debug(e,...t){g.verbose&&g.log(`[MediaPlayer] ${e}`,...t)}componentDidMount(){this.debug(\"app version =\",\"0.1.0-alpha.5\"),this.debug(\"video.js version =\",p.VERSION),this.initPlayer(),this.props.context.emitter.on(\"attributesUpdate\",this.syncPlayerWithAttributes),this.syncPlayerTimer=setInterval(this.syncPlayerWithAttributes,g.syncInterval),this.decreaseRetryTimer=setInterval(this.decreaseRetryCount,g.retryInterval)}componentWillUnmount(){var e;this.debug(\"unmount\"),this.props.context.emitter.off(\"attributesUpdate\",this.syncPlayerWithAttributes),null==(e=this.player)||e.dispose(),clearInterval(this.syncPlayerTimer),clearInterval(this.decreaseRetryTimer)}isEnabled(){return this.props.context.getIsWritable()}}const K={kind:\"MediaPlayer\",setup(e){let t=e.getAttributes();if(!t||!t.src)return e.emitter.emit(\"destroy\",{error:new Error(\"[MediaPlayer]: Missing 'attributes'.'src'.\")});t=a(a({},d),t);const i=e.getBox();i.mountStyles('.vjs-p{display:flex;flex-grow:1}.vjs-p *{pointer-events:auto}.vjs-p.disabled *{pointer-events:none}.vjs-p .video-js-plugin-poster{position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(data:image/png;base64,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);background-repeat:repeat-x;background-position:0 50%;display:flex;align-items:center;justify-content:center}.vjs-p .video-js-plugin-poster img{box-shadow:0 0 5px 10px #0006}.vjs-p .player-controller,.vjs-p .videojs-plugin-muted-alert{pointer-events:auto}.vjs-p.disabled .videojs-plugin-close-icon,.vjs-p.disabled .player-controller{pointer-events:none}.vjs-p .video-js-plugin-player{position:absolute;top:0;left:0;right:0;bottom:0}.video-js,[data-vjs-player]{width:100%;height:100%}.vjs-p .videojs-plugin-muted-alert{pointer-events:auto;cursor:pointer;position:absolute;top:0;left:0;right:0;bottom:0;z-index:43}.vjs-p .videojs-plugin-muted-alert:before{pointer-events:auto;cursor:pointer;position:absolute;top:0;left:0;right:0;bottom:0;z-index:43;content:\"\\\\f104\";background:rgba(0,0,0,.3);font-family:VideoJS;font-size:2em;display:flex;align-items:center;justify-content:center;color:#fff}.vjs-p .videojs-plugin-recovery-mode{pointer-events:auto;cursor:pointer;position:absolute;top:0;left:0;right:0;bottom:0;z-index:44}.vjs-p .videojs-plugin-recovery-mode button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vjs-p .seek-slider{position:relative;width:100%}.vjs-p .seek-slider:focus{outline:none}.vjs-p .seek-slider .track{padding:10px 0;cursor:pointer;outline:none}.vjs-p .seek-slider .track:focus{border:0;outline:none}.vjs-p .seek-slider .track .main{width:100%;height:3px;background-color:#ffffff4d;border-radius:30px;position:absolute;left:0;top:8.5px;transition:transform .4s;outline:none}.vjs-p .seek-slider .track .main:focus{border:0;outline:none}.vjs-p .seek-slider .track .main .buffered{position:absolute;background-color:#ffffff4d;width:100%;height:100%;transform:scaleX(.8);z-index:2;transform-origin:0 0}.vjs-p .seek-slider .track .main .seek-hover{position:absolute;background-color:#ffffff80;width:100%;height:100%;z-index:1;transform:scaleX(.6);transform-origin:0 0;opacity:0;transition:opacity .4s}.vjs-p .seek-slider .track .main .connect{position:absolute;background-color:#fff;width:100%;height:100%;z-index:3;left:0;transform:scaleX(.13);transform-origin:0 0}.vjs-p .seek-slider .track.active .main{transform:scaleY(2)}.vjs-p .seek-slider .thumb{pointer-events:none;position:absolute;width:12px;height:12px;left:-6px;top:4px;z-index:4;transform:translate(100px)}.vjs-p .seek-slider .thumb .handler{border-radius:100%;width:100%;height:100%;background-color:#fff;opacity:0;transform:scale(.4);cursor:pointer;transition:transform .2s;pointer-events:none}.vjs-p .seek-slider .thumb.active .handler{opacity:1;transform:scale(1)}.vjs-p .seek-slider .hover-time{position:absolute;background-color:#0000004d;line-height:18px;font-size:16px;color:#ddd;top:-25px;left:0;padding:5px 10px;border-radius:5px;box-shadow:0 0 5px #0000004d;opacity:0;transform:translate(150px);pointer-events:none}.vjs-p .seek-slider .hover-time.active{opacity:1}.vjs-p .seek-slider:hover .track .main .seek-hover{opacity:1}.vjs-p .player-controller{position:absolute;z-index:100;bottom:0px;left:0;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:stretch;height:64px;background-image:linear-gradient(0deg,#000,transparent);transition:opacity .2s;color:#fff}.vjs-p .player-menu-box{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:40px}.vjs-p .player-menu-cell{width:100%;text-align:center;font-size:12px;color:#7a7b7c}.vjs-p .player-multiple-play{width:64px;height:120px}.vjs-p .player-controller-actions-left{display:flex;justify-content:center;align-items:center;flex-shrink:0}.vjs-p .player-right-box{font-size:14px;color:#7a7b7c;cursor:pointer;margin-right:12px}.vjs-p .player-controller-actions{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-left:8px;padding-right:8px;margin-top:2px}.vjs-p .player-mid-box-time{font-size:9px;display:flex;justify-content:center;align-items:center;color:#fff;flex-shrink:0;margin-right:8px;font-family:monospace}.vjs-p .player-controller-play{display:flex;align-items:center;justify-content:center;cursor:pointer;padding-right:4px}.vjs-p .player-controller-progress{width:calc(100% - 28px);margin-left:14px;display:flex;align-items:center;justify-content:center;margin-top:8px}.vjs-p .player-volume{display:flex;align-items:center;justify-content:center;cursor:pointer;margin-right:16px;margin-left:8px}.vjs-p .player-volume-slider{width:60px;margin-right:12px;display:flex;align-items:center}.vjs-p .player-volume-box{display:flex;flex-direction:row}.netless-app-media-player-container{display:flex;position:relative;height:100%}\\n');const s=document.createElement(\"div\");s.classList.add(\"netless-app-media-player-container\"),u.render(l.createElement(Y,{context:e}),s),i.mountContent(s),e.emitter.on(\"destroy\",(()=>{console.log(\"[MediaPlayer]: destroy\"),u.unmountComponentAtNode(s)}))}};export{h as Version,K as default,v as setOptions};\n//# sourceMappingURL=main.es.js.map\n","export enum Events {\n AppMove = \"AppMove\",\n AppFocus = \"AppFocus\",\n AppResize = \"AppResize\",\n AppBoxStateChange = \"AppBoxStateChange\",\n GetAttributes = \"GetAttributes\",\n UpdateWindowManagerWrapper = \"UpdateWindowManagerWrapper\",\n InitReplay = \"InitReplay\",\n WindowCreated = \"WindowCreated\",\n SetMainViewScenePath = \"SetMainViewScenePath\",\n SetMainViewSceneIndex = \"SetMainViewSceneIndex\",\n SwitchViewsToFreedom = \"SwitchViewsToFreedom\",\n CursorMove = \"CursorMove\",\n}\n\nexport const MagixEventName = \"__WindowManger\";\n\nexport enum AppAttributes {\n Size = \"size\",\n Position = \"position\",\n SceneIndex = \"SceneIndex\",\n ZIndex = \"zIndex\",\n}\n\nexport enum AppEvents {\n setBoxSize = \"setBoxSize\",\n setBoxMinSize = \"setBoxMinSize\",\n destroy = \"destroy\",\n}\n\nexport enum AppStatus {\n StartCreate = \"StartCreate\",\n}\n\nexport enum CursorState {\n Leave = \"leave\",\n Normal = \"normal\",\n}\n\nexport const REQUIRE_VERSION = \"2.13.16\";\n\nexport const MIN_WIDTH = 340 / 720;\nexport const MIN_HEIGHT = 340 / 720;\n\nexport const SET_SCENEPATH_DELAY = 100; // 设置 scenePath 的延迟事件\n\nexport const DEFAULT_COLLECTOR_STYLE = { right: \"10px\", bottom: \"15px\", position: \"absolute\" };\n\nexport const DEFAULT_CONTAINER_RATIO = 9 / 16;\n","const DatabaseName = \"__WindowManagerAppCache\";\n\nlet db: IDBDatabase;\nlet store: IDBObjectStore;\n\nexport const initDb = async () => {\n db = await createDb();\n}\n\nexport const setItem = (key: string, val: any) => {\n if (!db) return;\n return addRecord(db, { kind: key, sourceCode: val })\n};\n\nexport const getItem = async (key: string): Promise<string | null> => {\n if (!db) return null;\n return await query(db, key);\n};\n\nexport const removeItem = (key: string) => {\n if (!db) return;\n return deleteRecord(db, key);\n};\n\nfunction createDb(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(DatabaseName, 2);\n request.onerror = (e) => {\n reject(e);\n }\n\n request.onupgradeneeded = (event: any) => {\n const db = event.target.result as IDBDatabase;\n if (!db.objectStoreNames.contains(\"apps\")) {\n store = db.createObjectStore(\"apps\", { keyPath: \"kind\" });\n store.createIndex(\"kind\", \"kind\", { unique: true });\n }\n }\n\n request.onsuccess = () => {\n const db = request.result;\n resolve(db);\n }\n })\n}\n\nfunction query<T>(db: IDBDatabase, val: string): Promise<T | null> {\n return new Promise((resolve, reject) => {\n const index = db.transaction([\"apps\"]).objectStore(\"apps\").index(\"kind\");\n const request = index.get(val);\n request.onerror = (e) => reject(e);\n request.onsuccess = () => {\n if (request.result) {\n resolve(request.result);\n } else {\n resolve(null);\n }\n }\n })\n}\n\nfunction addRecord(db: IDBDatabase, payload: any): Promise<void> {\n return new Promise((resolve, reject) => {\n const request = db.transaction([\"apps\"], \"readwrite\").objectStore(\"apps\").add(payload);\n request.onsuccess = () => resolve();\n request.onerror = () => reject();\n })\n}\n\nfunction deleteRecord(db: IDBDatabase, key: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const request = db.transaction([\"apps\"], \"readwrite\").objectStore(\"apps\").delete(key);\n request.onsuccess = () => resolve();\n request.onerror = () => reject();\n })\n}\n","import { getItem, setItem } from \"./storage\";\nimport type { NetlessApp } from \"../typings\";\n\nconst Prefix = \"NetlessApp\";\n\nconst TIMEOUT = 10000; // 10 秒超时\n\nexport const getScript = async (url: string): Promise<string> => {\n const item = await getItem(url);\n if (item) {\n return item;\n } else {\n const result = await fetchWithTimeout(url, { timeout: TIMEOUT });\n const text = await result.text();\n await setItem(url, text);\n return text;\n }\n};\n\nexport const executeScript = (text: string, appName: string): NetlessApp => {\n let result = Function(text + `;return ${appName}`)();\n if (typeof result === \"undefined\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n result = window[appName];\n }\n return result;\n};\n\nexport const loadApp = async (\n url: string,\n key: string,\n name?: string\n): Promise<NetlessApp | undefined> => {\n const appName = name || Prefix + key;\n const text = await getScript(url);\n try {\n return executeScript(text, appName);\n } catch (error: any) {\n if (error.message.includes(\"Can only have one anonymous define call per script file\")) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const define = window.define;\n if (\"function\" == typeof define && define.amd) {\n delete define.amd;\n }\n return executeScript(text, appName);\n }\n }\n};\n\nasync function fetchWithTimeout(resource: string, options: RequestInit & { timeout: number }) {\n const { timeout = 10000 } = options;\n\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n\n const response = await fetch(resource, {\n ...options,\n signal: controller.signal,\n headers: {\n \"content-type\": \"text/plain\",\n },\n });\n clearTimeout(id);\n\n return response;\n}\n","import Emittery from \"emittery\";\nimport type { NetlessApp, RegisterEvents, RegisterParams } from \"../typings\";\nimport { loadApp } from \"./loader\";\n\nclass AppRegister {\n public kindEmitters: Map<string, Emittery<RegisterEvents>> = new Map();\n public registered: Map<string, RegisterParams> = new Map();\n public appClassesCache: Map<string, Promise<NetlessApp>> = new Map();\n public appClasses: Map<string, () => Promise<NetlessApp>> = new Map();\n\n public async register(params: RegisterParams): Promise<void> {\n this.registered.set(params.kind, params);\n \n const srcOrAppOrFunction = params.src\n let downloadApp: () => Promise<NetlessApp>\n \n if (typeof srcOrAppOrFunction === \"string\") {\n downloadApp = async () => {\n const appClass = await loadApp(srcOrAppOrFunction, params.kind);\n if (appClass) {\n return appClass\n } else {\n throw new Error(`[WindowManager]: load remote script failed, ${srcOrAppOrFunction}`);\n }\n }\n } else if (typeof srcOrAppOrFunction === \"function\") {\n downloadApp = srcOrAppOrFunction\n } else {\n downloadApp = async () => srcOrAppOrFunction\n }\n\n this.appClasses.set(params.kind, async () => {\n let app = this.appClassesCache.get(params.kind)\n if (!app) {\n app = downloadApp()\n this.appClassesCache.set(params.kind, app)\n }\n return app\n });\n \n if (params.addHooks) {\n const emitter = this.createKindEmitter(params.kind);\n if (emitter) {\n params.addHooks(emitter);\n }\n }\n }\n\n public async notifyApp<T extends keyof RegisterEvents>(kind: string, event: T, payload: RegisterEvents[T]) {\n const emitter = this.kindEmitters.get(kind);\n await emitter?.emit(event, payload);\n }\n\n private createKindEmitter(kind: string) {\n if (!this.kindEmitters.has(kind)) {\n const emitter = new Emittery<RegisterEvents>();\n this.kindEmitters.set(kind, emitter);\n }\n return this.kindEmitters.get(kind);\n }\n}\n\nexport const appRegister = new AppRegister();\n","import { appRegister } from '../Register';\nimport { debounce } from 'lodash';\nimport { emitter } from '../index';\nimport { v4 } from 'uuid';\nimport type { PublicEvent } from \"../index\";\nimport type { Displayer, ViewVisionMode, Room, View } from \"white-web-sdk\";\nimport type Emittery from \"emittery\";\n\nexport const genAppId = async (kind: string) => {\n const impl = await appRegister.appClasses.get(kind)?.();\n if (impl && impl.config?.singleton) {\n return kind;\n }\n return `${kind}-${v4().replace(\"-\", \"\").slice(0, 8)}`;\n};\n\nexport const setViewFocusScenePath = (view: View, focusScenePath: string) => {\n if (view.focusScenePath !== focusScenePath) {\n view.focusScenePath = focusScenePath;\n }\n};\n\nexport const setScenePath = (room: Room | undefined, scenePath: string) => {\n if (room && room.isWritable) {\n if (room.state.sceneState.scenePath !== scenePath) {\n room.setScenePath(scenePath);\n }\n }\n}\n\nexport const setViewMode = (view: View, mode: ViewVisionMode) => {\n if (!(view as any).didRelease && view.mode !== mode) {\n view.mode = mode;\n }\n};\n\nexport const emitError = (error: Error) => {\n if (emitter.listenerCount(\"error\") > 0) {\n emitter.emit(\"error\", error);\n } else {\n console.log(\"[WindowManager]:\", error);\n }\n};\n\nexport const addEmitterOnceListener = (event: any, listener: any) => {\n emitter.once(event).then(listener);\n}\n\nexport const notifyMainViewModeChange = debounce(\n (callbacks: Emittery<PublicEvent>, mode: ViewVisionMode) => {\n callbacks.emit(\"mainViewModeChange\", mode);\n },\n 200\n);\n\nexport const makeValidScenePath = (displayer: Displayer, scenePath: string) => {\n const scenes = displayer.entireScenes()[scenePath];\n const firstSceneName = scenes[0].name;\n if (scenePath === \"/\") {\n return `/${firstSceneName}`;\n } else {\n return `${scenePath}/${firstSceneName}`;\n }\n};\n\nexport const isValidScenePath = (scenePath: string) => {\n return scenePath.startsWith(\"/\");\n}\n\nexport const ensureValidScenePath = (scenePath: string) => {\n if (scenePath.endsWith(\"/\")) {\n return scenePath.slice(0, -1);\n } else {\n return scenePath;\n }\n}\n\nexport const getVersionNumber = (version: string) => {\n const versionString = version.split(\".\").map(s => s.padStart(2, \"0\")).join(\"\");\n return parseInt(versionString);\n};\n\nexport const wait = (time: number) => new Promise((resolve) => setTimeout(resolve, time));\n","import { callbacks, emitter } from './index';\nimport { Events, MagixEventName } from './constants';\nimport type { Event } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { TeleBoxState } from \"@netless/telebox-insider\";\nimport { setViewFocusScenePath } from './Utils/Common';\n\nexport class AppListeners {\n private displayer = this.manager.displayer;\n private boxManager = this.manager.boxManager;\n\n constructor(private manager: AppManager) {}\n\n public addListeners() {\n this.displayer.addMagixEventListener(MagixEventName, this.mainMagixEventListener);\n }\n\n public removeListeners() {\n this.displayer.removeMagixEventListener(MagixEventName, this.mainMagixEventListener);\n }\n\n private mainMagixEventListener = (event: Event) => {\n if (event.authorId !== this.displayer.observerId) {\n const data = event.payload;\n switch (data.eventName) {\n case Events.AppMove: {\n this.appMoveHandler(data.payload);\n break;\n }\n case Events.AppResize: {\n this.appResizeHandler(data.payload);\n break;\n }\n case Events.SwitchViewsToFreedom: {\n this.switchViewsToFreedomHandler();\n break;\n }\n case Events.AppBoxStateChange: {\n this.boxStateChangeHandler(data.payload);\n break;\n }\n case Events.SetMainViewScenePath: {\n this.setMainViewScenePathHandler(data.payload);\n break;\n }\n case Events.CursorMove: {\n this.cursorMoveHandler(data.payload);\n break;\n }\n default:\n break;\n }\n }\n };\n\n private appMoveHandler = (payload: any) => {\n this.boxManager.moveBox(payload);\n };\n\n private appResizeHandler = (payload: any) => {\n this.boxManager.resizeBox(Object.assign(payload, { skipUpdate: true }));\n this.manager.room?.refreshViewSize();\n };\n\n private switchViewsToFreedomHandler = () => {\n this.manager.viewManager.freedomAllViews();\n };\n\n private boxStateChangeHandler = (state: TeleBoxState) => {\n callbacks.emit(\"boxStateChange\", state);\n }\n\n private setMainViewScenePathHandler = ({ nextScenePath }: { nextScenePath: string }) => {\n setViewFocusScenePath(this.manager.mainView, nextScenePath);\n }\n\n private cursorMoveHandler = (payload: any) => {\n emitter.emit(\"cursorMove\", payload);\n }\n}\n","export class AppCreateError extends Error {\n override message = \"[WindowManager]: app duplicate exists and cannot be created again\";\n}\n\nexport class AppNotRegisterError extends Error {\n constructor(kind: string) {\n super(`[WindowManager]: app ${kind} need register or provide src`);\n }\n}\n\nexport class AppManagerNotInitError extends Error {\n override message = \"[WindowManager]: AppManager must be initialized\";\n}\n\nexport class WhiteWebSDKInvalidError extends Error {\n constructor(version: string) {\n super(`[WindowManager]: white-web-sdk version must large than ${version}`);\n }\n}\n\nexport class ParamsInvalidError extends Error {\n override message = \"[WindowManager]: kind must be a valid string\";\n}\n\nexport class BoxNotCreatedError extends Error {\n override message = \"[WindowManager]: box need created\";\n}\n\nexport class InvalidScenePath extends Error {\n override message = `[WindowManager]: ScenePath should start with \"/\"`;\n}","import {\n autorun,\n listenDisposed,\n listenUpdated,\n reaction,\n unlistenDisposed,\n unlistenUpdated,\n toJS\n } from 'white-web-sdk';\nimport { BoxNotCreatedError } from './Utils/error';\nimport type { Room, SceneDefinition, View } from \"white-web-sdk\";\nimport type { ReadonlyTeleBox } from \"@netless/telebox-insider\";\nimport type Emittery from \"emittery\";\nimport type { BoxManager } from \"./BoxManager\";\nimport type { AppEmitterEvent } from \"./index\";\nimport type { AppManager } from \"./AppManager\";\nimport type { AppProxy } from \"./AppProxy\";\n\nexport class AppContext<TAttrs extends Record<string, any>, AppOptions = any> {\n public readonly emitter: Emittery<AppEmitterEvent<TAttrs>>;\n public readonly mobxUtils = {\n autorun,\n reaction,\n toJS\n };\n public readonly objectUtils = {\n listenUpdated,\n unlistenUpdated,\n listenDisposed,\n unlistenDisposed\n };\n private boxManager: BoxManager;\n private store = this.manager.store;\n public readonly isAddApp: boolean;\n public readonly isReplay = this.manager.isReplay;\n\n constructor(\n private manager: AppManager,\n public appId: string,\n private appProxy: AppProxy,\n private appOptions?: AppOptions | (() => AppOptions),\n ) {\n this.emitter = appProxy.appEmitter;\n this.boxManager = this.manager.boxManager;\n this.isAddApp = appProxy.isAddApp;\n }\n\n public getDisplayer() {\n return this.manager.displayer;\n }\n\n public getAttributes(): TAttrs | undefined {\n return this.appProxy.attributes;\n }\n\n public getScenes(): SceneDefinition[] | undefined {\n const appAttr = this.store.getAppAttributes(this.appId);\n if (appAttr?.isDynamicPPT) {\n const appProxy = this.manager.appProxies.get(this.appId);\n if (appProxy) {\n return appProxy.scenes;\n }\n } else {\n return appAttr?.options[\"scenes\"];\n }\n }\n\n public getView(): View | undefined {\n return this.appProxy.view;\n }\n\n public getInitScenePath() {\n return this.manager.getAppInitPath(this.appId);\n }\n\n public getIsWritable(): boolean {\n return this.manager.canOperate;\n }\n\n public getBox(): ReadonlyTeleBox {\n const box = this.boxManager.getBox(this.appId);\n if (box) {\n return box;\n } else {\n throw new BoxNotCreatedError();\n }\n }\n\n public getRoom(): Room | undefined {\n return this.manager.room;\n }\n\n public setAttributes(attributes: TAttrs) {\n this.manager.safeSetAttributes({ [this.appId]: attributes });\n }\n\n public updateAttributes(keys: string[], value: any) {\n if (this.manager.attributes[this.appId]) {\n this.manager.safeUpdateAttributes([this.appId, ...keys], value);\n }\n }\n\n public async setScenePath(scenePath: string): Promise<void> {\n if (!this.appProxy.box) return;\n this.appProxy.setFullPath(scenePath);\n this.manager.viewManager.switchAppToWriter(this.appId);\n }\n\n public mountView(dom: HTMLDivElement): void {\n const view = this.getView();\n if (view) {\n view.divElement = dom;\n setTimeout(() => {\n // 渲染需要时间,延迟 refresh\n this.getRoom()?.refreshViewSize();\n }, 1000);\n }\n }\n\n public getAppOptions(): AppOptions | undefined {\n return typeof this.appOptions === 'function' ? (this.appOptions as () => AppOptions)() : this.appOptions\n }\n}\n","import { AppAttributes } from \"./constants\";\nimport { get, pick } from \"lodash\";\nimport { setViewFocusScenePath } from \"./Utils/Common\";\nimport type { AddAppParams, AppSyncAttributes } from \"./index\";\nimport type { Camera, Size } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { Cursor } from \"./Cursor/Cursor\";\n\nexport enum Fields {\n Apps = \"apps\",\n Focus = \"focus\",\n State = \"state\",\n BoxState = \"boxState\",\n MainViewCamera = \"mainViewCamera\",\n MainViewSize = \"mainViewSize\",\n Broadcaster = \"broadcaster\",\n Cursors = \"cursors\",\n Position = \"position\",\n CursorState = \"cursorState\",\n FullPath = \"fullPath\"\n}\n\nexport type Apps = {\n [key: string]: AppSyncAttributes;\n};\n\nexport type Position = {\n x: number;\n y: number;\n type: PositionType;\n id?: string;\n};\n\nexport type PositionType = \"main\" | \"app\";\n\nexport class AttributesDelegate {\n constructor(private manager: AppManager) {}\n\n public apps(): Apps {\n return get(this.manager.attributes, [Fields.Apps]);\n }\n\n public get focus(): string | undefined {\n return get(this.manager.attributes, [Fields.Focus]);\n }\n\n public getAppAttributes(id: string): AppSyncAttributes {\n return get(this.apps(), [id]);\n }\n\n public getAppState(id: string) {\n return get(this.apps(), [id, Fields.State]);\n }\n\n public getMaximized() {\n return get(this.manager.attributes, [\"maximized\"])\n }\n\n public setupAppAttributes(params: AddAppParams, id: string, isDynamicPPT: boolean) {\n const attributes = this.manager.attributes;\n if (!attributes.apps) {\n this.manager.safeSetAttributes({ apps: {} });\n }\n const attrNames = [\"scenePath\", \"title\"];\n if (!isDynamicPPT) {\n attrNames.push(\"scenes\");\n }\n const options = pick(params.options, attrNames);\n const attrs: AppSyncAttributes = { kind: params.kind, options, isDynamicPPT };\n if (typeof params.src === \"string\") {\n attrs.src = params.src;\n }\n this.manager.safeUpdateAttributes([Fields.Apps, id], attrs);\n this.manager.safeUpdateAttributes([Fields.Apps, id, Fields.State], {\n [AppAttributes.Size]: {},\n [AppAttributes.Position]: {},\n [AppAttributes.SceneIndex]: 0,\n [AppAttributes.ZIndex]: 100,\n });\n }\n\n public updateAppState(appId: string, stateName: AppAttributes, state: any) {\n if (get(this.manager.attributes, [Fields.Apps, appId, Fields.State])) {\n this.manager.safeUpdateAttributes([Fields.Apps, appId, Fields.State, stateName], state);\n }\n }\n\n public cleanAppAttributes(id: string) {\n this.manager.safeUpdateAttributes([Fields.Apps, id], undefined);\n this.manager.safeSetAttributes({ [id]: undefined });\n const focus = this.manager.attributes[Fields.Focus];\n if (focus === id) {\n this.cleanFocus();\n }\n }\n\n public cleanFocus() {\n this.manager.safeSetAttributes({ [Fields.Focus]: undefined });\n }\n\n public getAppSceneIndex(id: string) {\n return this.getAppState(id)?.[AppAttributes.SceneIndex];\n }\n\n public getAppScenePath(id: string) {\n return this.getAppAttributes(id)?.options?.scenePath;\n }\n\n public getMainViewScenePath() {\n return this.manager.attributes[\"_mainScenePath\"];\n }\n\n public getMainViewSceneIndex() {\n return this.manager.attributes[\"_mainSceneIndex\"];\n }\n\n public getBoxState() {\n return this.manager.attributes[Fields.BoxState];\n }\n\n public setMainViewScenePath(scenePath: string) {\n this.manager.safeSetAttributes({ _mainScenePath: scenePath });\n }\n\n public setMainViewSceneIndex(index: number) {\n this.manager.safeSetAttributes({ _mainSceneIndex: index });\n }\n\n public getMainViewCamera(): MainViewCamera {\n return get(this.manager.attributes, [Fields.MainViewCamera]);\n }\n\n public getMainViewSize(): MainViewSize {\n return get(this.manager.attributes, [Fields.MainViewSize]);\n }\n\n public setMainViewCamera(camera: Camera & { id: string } | undefined) {\n this.manager.safeSetAttributes({ [Fields.MainViewCamera]: { ...camera } });\n }\n\n public setMainViewSize(size: Size & { id: string } | undefined) {\n this.manager.safeSetAttributes({ [Fields.MainViewSize]: { ...size } });\n }\n\n public setAppFocus(appId: string, focus: boolean) {\n if (focus) {\n this.manager.safeSetAttributes({ [Fields.Focus]: appId });\n } else {\n this.manager.safeSetAttributes({ [Fields.Focus]: undefined });\n }\n }\n\n // TODO 状态中保存一个 SceneName 优化性能\n public setMainViewFocusPath() {\n const scenePath = this.getMainViewScenePath();\n if (scenePath) {\n setViewFocusScenePath(this.manager.mainView, scenePath);\n }\n }\n}\n\nexport type MainViewSize = {\n id: string;\n width: number;\n height: number;\n}\n\nexport type MainViewCamera = {\n id: string;\n centerX: number;\n centerY: number;\n scale: number;\n}\n\nexport type Cursors = {\n [key: string]: Cursor;\n}\n","import { WindowManager } from \"../index\";\n\nexport const log = (...args: any[]): void => {\n if (WindowManager.debug) {\n console.log(`[WindowManager]:`, ...args);\n }\n};\n","import Emittery from \"emittery\";\nimport { AppAttributes, AppEvents, Events } from \"./constants\";\nimport { AppContext } from \"./AppContext\";\nimport { appRegister } from \"./Register\";\nimport { autorun, ViewVisionMode } from \"white-web-sdk\";\nimport { callbacks, emitter } from \"./index\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { get } from \"lodash\";\nimport { log } from \"./Utils/log\";\nimport {\n notifyMainViewModeChange,\n setScenePath,\n setViewFocusScenePath,\n setViewMode,\n} from \"./Utils/Common\";\nimport type {\n AppEmitterEvent,\n AppInitState,\n BaseInsertParams,\n setAppOptions,\n AppListenerKeys,\n} from \"./index\";\nimport type { SceneState, View, SceneDefinition } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { NetlessApp } from \"./typings\";\nimport type { ReadonlyTeleBox } from \"@netless/telebox-insider\";\n\nexport class AppProxy {\n public id: string;\n public scenePath?: string;\n public appEmitter: Emittery<AppEmitterEvent>;\n public scenes?: SceneDefinition[];\n\n private appListener: any;\n private boxManager = this.manager.boxManager;\n private appProxies = this.manager.appProxies;\n private viewManager = this.manager.viewManager;\n private cameraStore = this.manager.cameraStore;\n private store = this.manager.store;\n private kind: string;\n public isAddApp: boolean;\n private status: \"normal\" | \"destroyed\" = \"normal\";\n private stateKey: string;\n\n constructor(\n private params: BaseInsertParams,\n private manager: AppManager,\n appId: string,\n isAddApp: boolean\n ) {\n this.kind = params.kind;\n this.id = appId;\n this.stateKey = `${this.id}_state`;\n this.appProxies.set(this.id, this);\n this.appEmitter = new Emittery();\n this.appListener = this.makeAppEventListener(this.id);\n this.isAddApp = isAddApp;\n\n this.initScenes();\n\n if (this.params.options?.scenePath) {\n // 只有传入了 scenePath 的 App 才会创建 View\n this.createView();\n }\n }\n\n private initScenes() {\n const options = this.params.options;\n if (options) {\n this.scenePath = options.scenePath;\n if (this.appAttributes?.isDynamicPPT && this.scenePath) {\n this.scenes = this.manager.displayer.entireScenes()[this.scenePath];\n } else {\n this.scenes = options.scenes;\n }\n }\n }\n\n public get view(): View | undefined {\n return this.manager.viewManager.getView(this.id);\n }\n\n public get isWritable(): boolean {\n return this.manager.canOperate && !this.box?.readonly;\n }\n\n public get attributes() {\n return this.manager.attributes[this.id];\n }\n\n public get appAttributes() {\n return this.store.getAppAttributes(this.id);\n }\n\n public getFullScenePath(): string | undefined {\n if (this.scenePath) {\n return get(this.appAttributes, [Fields.FullPath], this.scenePath);\n }\n }\n\n public setFullPath(path: string) {\n this.manager.safeUpdateAttributes([\"apps\", this.id, Fields.FullPath], path);\n }\n\n public async baseInsertApp(\n skipUpdate = false,\n focus?: boolean\n ): Promise<{ appId: string; app: NetlessApp }> {\n const params = this.params;\n if (!params.kind) {\n throw new Error(\"[WindowManager]: kind require\");\n }\n const appImpl = await appRegister.appClasses.get(params.kind)?.();\n const appParams = appRegister.registered.get(params.kind);\n if (appImpl) {\n await this.setupApp(this.id, skipUpdate, appImpl, params.options, appParams?.appOptions);\n } else {\n throw new Error(`[WindowManager]: app load failed ${params.kind} ${params.src}`);\n }\n this.boxManager.updateManagerRect();\n if (focus) {\n this.focusApp();\n }\n return {\n appId: this.id,\n app: appImpl,\n };\n }\n\n private focusApp() {\n this.focusBox();\n this.viewManager.switchAppToWriter(this.id);\n this.store.setMainViewFocusPath();\n }\n\n public get box(): ReadonlyTeleBox | undefined {\n return this.boxManager.getBox(this.id);\n }\n\n public focusBox() {\n this.boxManager.focusBox({ appId: this.id });\n }\n\n private async setupApp(\n appId: string,\n skipUpdate: boolean,\n app: NetlessApp,\n options?: setAppOptions,\n appOptions?: any\n ) {\n log(\"setupApp\", appId, app, options);\n const context = new AppContext(this.manager, appId, this, appOptions);\n try {\n emitter.once(`${appId}${Events.WindowCreated}` as any).then(async () => {\n let boxInitState: AppInitState | undefined;\n if (!skipUpdate) {\n boxInitState = this.getAppInitState(appId);\n this.boxManager.updateBoxState(boxInitState);\n }\n this.appEmitter.onAny(this.appListener);\n this.appAttributesUpdateListener(appId);\n this.setViewFocusScenePath();\n setTimeout(async () => {\n // 延迟执行 setup, 防止初始化的属性没有更新成功\n const result = await app.setup(context);\n appRegister.notifyApp(app.kind, \"created\", { appId, result });\n this.afterSetupApp(boxInitState);\n this.fixMobileSize();\n }, 50);\n });\n this.boxManager.createBox({\n appId: appId,\n app,\n options,\n canOperate: this.manager.canOperate,\n smartPosition: this.isAddApp,\n });\n if (this.isAddApp && this.box) {\n this.store.updateAppState(appId, AppAttributes.ZIndex, this.box.zIndex);\n }\n } catch (error: any) {\n console.error(error);\n throw new Error(`[WindowManager]: app setup error: ${error.message}`);\n }\n }\n\n // 兼容移动端创建时会出现 PPT 不适配的问题\n private fixMobileSize() {\n const box = this.boxManager.getBox(this.id);\n if (box) {\n this.boxManager.resizeBox({\n appId: this.id,\n width: box.intrinsicWidth + 0.001,\n height: box.intrinsicHeight + 0.001,\n skipUpdate: true,\n });\n }\n }\n\n private afterSetupApp(boxInitState: AppInitState | undefined): void {\n if (boxInitState) {\n if (boxInitState.focus && this.scenePath) {\n this.viewManager.switchAppToWriter(this.id);\n }\n if (!boxInitState?.x || !boxInitState.y) {\n this.boxManager.setBoxInitState(this.id);\n }\n }\n }\n\n public onSeek(time: number) {\n this.appEmitter.emit(\"seek\", time);\n const boxInitState = this.getAppInitState(this.id);\n this.boxManager.updateBoxState(boxInitState);\n }\n\n public async onReconnected() {\n this.appEmitter.emit(\"reconnected\", undefined);\n const currentAppState = this.getAppInitState(this.id);\n await this.destroy(true, false, true);\n const params = this.params;\n const appProxy = new AppProxy(params, this.manager, this.id, this.isAddApp);\n await appProxy.baseInsertApp(true, this.store.focus === this.id);\n this.boxManager.updateBoxState(currentAppState);\n }\n\n public switchToWritable() {\n appRegister.notifyApp(this.kind, \"focus\", { appId: this.id });\n this.cameraStore.switchView(this.id, this.view, () => {\n if (this.view) {\n if (this.view.mode === ViewVisionMode.Writable) return;\n try {\n if (this.manager.mainView.mode === ViewVisionMode.Writable) {\n this.store.setMainViewFocusPath();\n notifyMainViewModeChange(callbacks, ViewVisionMode.Freedom);\n setViewMode(this.manager.mainView, ViewVisionMode.Freedom);\n }\n setViewMode(this.view, ViewVisionMode.Writable);\n } catch (error) {\n log(\"switch view failed\", error);\n }\n }\n });\n }\n\n public getAppInitState = (id: string) => {\n const attrs = this.store.getAppState(id);\n if (!attrs) return;\n const position = attrs?.[AppAttributes.Position];\n const focus = this.store.focus;\n const size = attrs?.[AppAttributes.Size];\n const sceneIndex = attrs?.[AppAttributes.SceneIndex];\n const maximized = this.attributes?.[\"maximized\"];\n const minimized = this.attributes?.[\"minimized\"];\n const zIndex = attrs?.zIndex;\n let payload = { maximized, minimized, zIndex } as AppInitState;\n if (position) {\n payload = { ...payload, id: id, x: position.x, y: position.y };\n }\n if (focus === id) {\n payload = { ...payload, focus: true };\n }\n if (size) {\n payload = { ...payload, width: size.width, height: size.height };\n }\n if (sceneIndex) {\n payload = { ...payload, sceneIndex };\n }\n return payload;\n };\n\n public emitAppSceneStateChange(sceneState: SceneState) {\n this.appEmitter.emit(\"sceneStateChange\", sceneState);\n }\n\n public emitAppIsWritableChange() {\n this.appEmitter.emit(\"writableChange\", this.isWritable);\n }\n\n private makeAppEventListener(appId: string) {\n return (eventName: AppListenerKeys, data: any) => {\n if (!this.manager.canOperate) return;\n switch (eventName) {\n case \"setBoxSize\": {\n this.boxManager.resizeBox({\n appId,\n width: data.width,\n height: data.height,\n skipUpdate: false,\n });\n break;\n }\n case \"setBoxMinSize\": {\n this.boxManager.setBoxMinSize({\n appId,\n minWidth: data.minwidth,\n minHeight: data.minheight,\n });\n break;\n }\n case \"setBoxTitle\": {\n this.boxManager.setBoxTitle({ appId, title: data.title });\n break;\n }\n case AppEvents.destroy: {\n if (this.status === \"destroyed\") return;\n this.destroy(true, false, true, data?.error);\n if (data?.error) {\n console.error(data?.error);\n }\n break;\n }\n case \"focus\": {\n this.boxManager.focusBox({ appId: this.id });\n emitter.emit(\"focus\", { appId: this.id });\n break;\n }\n default: {\n break;\n }\n }\n };\n }\n\n private appAttributesUpdateListener = (appId: string) => {\n this.manager.refresher?.add(appId, () => {\n return autorun(() => {\n const attrs = this.manager.attributes[appId];\n if (attrs) {\n this.appEmitter.emit(\"attributesUpdate\", attrs);\n }\n });\n });\n this.manager.refresher?.add(this.stateKey, () => {\n return autorun(() => {\n const appState = this.appAttributes?.state;\n if (appState?.zIndex > 0 && appState.zIndex !== this.box?.zIndex) {\n this.boxManager?.setZIndex(appId, appState.zIndex);\n }\n });\n });\n };\n\n public setScenePath(): void {\n if (!this.manager.canOperate) return;\n const fullScenePath = this.getFullScenePath();\n if (this.manager.room && fullScenePath && this.view) {\n setScenePath(this.manager.room, fullScenePath);\n }\n }\n\n public setViewFocusScenePath() {\n const fullPath = this.getFullScenePath();\n if (fullPath && this.view) {\n setViewFocusScenePath(this.view, fullPath);\n }\n }\n\n private async createView(): Promise<View> {\n const view = await this.viewManager.createView(this.id);\n this.cameraStore.register(this.id, view);\n this.setViewFocusScenePath();\n return view;\n }\n\n public async destroy(\n needCloseBox: boolean,\n cleanAttrs: boolean,\n skipUpdate: boolean,\n error?: Error\n ) {\n if (this.status === \"destroyed\") return;\n this.status = \"destroyed\";\n await appRegister.notifyApp(this.kind, \"destroy\", { appId: this.id });\n await this.appEmitter.emit(\"destroy\", { error });\n this.appEmitter.clearListeners();\n emitter.emit(`destroy-${this.id}` as any, { error });\n if (needCloseBox) {\n this.boxManager.closeBox(this.id, skipUpdate);\n }\n if (cleanAttrs) {\n this.store.cleanAppAttributes(this.id);\n }\n this.appProxies.delete(this.id);\n this.cameraStore.unregister(this.id, this.view);\n\n this.viewManager.destroyView(this.id);\n this.manager.appStatus.delete(this.id);\n this.manager.refresher?.remove(this.id);\n }\n\n public close(): Promise<void> {\n return this.destroy(true, true, false);\n }\n}\n","var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,o=(t,i,s)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[i]=s,a=(e,t)=>{for(var i in t||(t={}))r.call(t,i)&&o(e,i,t[i]);if(s)for(var i of s(t))n.call(t,i)&&o(e,i,t[i]);return e},l=(e,s)=>t(e,i(s));import h,{useRef as c,useEffect as d,useState as u}from\"react\";var m={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,i=\"~\";function s(){}function r(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function n(e,t,s,n,o){if(\"function\"!=typeof s)throw new TypeError(\"The listener must be a function\");var a=new r(s,n||e,o),l=i?i+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new s:delete e._events[t]}function a(){this._events=new s,this._eventsCount=0}Object.create&&(s.prototype=Object.create(null),(new s).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,s,r=[];if(0===this._eventsCount)return r;for(s in e=this._events)t.call(e,s)&&r.push(i?s.slice(1):s);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},a.prototype.listeners=function(e){var t=i?i+e:e,s=this._events[t];if(!s)return[];if(s.fn)return[s.fn];for(var r=0,n=s.length,o=new Array(n);r<n;r++)o[r]=s[r].fn;return o},a.prototype.listenerCount=function(e){var t=i?i+e:e,s=this._events[t];return s?s.fn?1:s.length:0},a.prototype.emit=function(e,t,s,r,n,o){var a=i?i+e:e;if(!this._events[a])return!1;var l,h,c=this._events[a],d=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,s),!0;case 4:return c.fn.call(c.context,t,s,r),!0;case 5:return c.fn.call(c.context,t,s,r,n),!0;case 6:return c.fn.call(c.context,t,s,r,n,o),!0}for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var u,m=c.length;for(h=0;h<m;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),d){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,s);break;case 4:c[h].fn.call(c[h].context,t,s,r);break;default:if(!l)for(u=1,l=new Array(d-1);u<d;u++)l[u-1]=arguments[u];c[h].fn.apply(c[h].context,l)}}return!0},a.prototype.on=function(e,t,i){return n(this,e,t,i,!1)},a.prototype.once=function(e,t,i){return n(this,e,t,i,!0)},a.prototype.removeListener=function(e,t,s,r){var n=i?i+e:e;if(!this._events[n])return this;if(!t)return o(this,n),this;var a=this._events[n];if(a.fn)a.fn!==t||r&&!a.once||s&&a.context!==s||o(this,n);else{for(var l=0,h=[],c=a.length;l<c;l++)(a[l].fn!==t||r&&!a[l].once||s&&a[l].context!==s)&&h.push(a[l]);h.length?this._events[n]=1===h.length?h[0]:h:o(this,n)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&o(this,t)):(this._events=new s,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,e.exports=a}(m);var f=m.exports,v=function(){return(v=Object.assign||function(e){for(var t,i=1,s=arguments.length;i<s;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function p(e,t){var i={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(i[s]=e[s]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(s=Object.getOwnPropertySymbols(e);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(i[s[r]]=e[s[r]])}return i}var g=0,b=\"undefined\"!=typeof window&&void 0!==window.requestAnimationFrame?function(e){return window.requestAnimationFrame(e)}:function(e){var t=Date.now(),i=Math.max(0,16.7-(t-g));g=t+i,setTimeout((function(){return e(g)}),i)},x=1/60*1e3,y=!0,w=!1,$=!1,C={delta:0,timestamp:0},B=[\"read\",\"update\",\"preRender\",\"render\",\"postRender\"],z=function(e){return w=e},_=B.reduce((function(e,t){var i,s,r,n,o,a,l,h,c;return e[t]=(i=z,s=[],r=[],n=0,o=!1,a=0,l=new WeakSet,h=new WeakSet,c={cancel:function(e){var t=r.indexOf(e);l.add(e),-1!==t&&r.splice(t,1)},process:function(e){var t,d;if(o=!0,s=(t=[r,s])[0],(r=t[1]).length=0,n=s.length)for(a=0;a<n;a++)(d=s[a])(e),!0!==h.has(d)||l.has(d)||(c.schedule(d),i(!0));o=!1},schedule:function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=!1);var a=i&&o,c=a?s:r;l.delete(e),t&&h.add(e),-1===c.indexOf(e)&&(c.push(e),a&&(n=s.length))}}),e}),{}),M=B.reduce((function(e,t){var i=_[t];return e[t]=function(e,t,s){return void 0===t&&(t=!1),void 0===s&&(s=!1),w||S(),i.schedule(e,t,s),e},e}),{}),E=function(e){return _[e].process(C)},k=function(e){w=!1,C.delta=y?x:Math.max(Math.min(e-C.timestamp,40),1),y||(x=C.delta),C.timestamp=e,$=!0,B.forEach(E),$=!1,w&&(y=!1,b(k))},S=function(){w=!0,y=!0,$||b(k)},R=function(){return(R=Object.assign||function(e){for(var t,i=1,s=arguments.length;i<s;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},N=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},T=function(e){return e%1?Number(e.toFixed(5)):e},L=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i,I={test:function(e){return\"number\"==typeof e},parse:parseFloat,transform:function(e){return e}},O=R(R({},I),{transform:N(0,1)}),D=R(R({},I),{default:1}),A=function(e){return{test:function(t){return\"string\"==typeof t&&t.endsWith(e)&&1===t.split(\" \").length},parse:parseFloat,transform:function(t){return\"\"+t+e}}},V=A(\"deg\"),H=A(\"%\"),W=A(\"px\"),j=R(R({},H),{parse:function(e){return H.parse(e)/100},transform:function(e){return H.transform(100*e)}}),P=N(0,255),Y=function(e){return void 0!==e.red},X=function(e){return void 0!==e.hue};var F=function(e){return function(t){if(\"string\"!=typeof t)return t;for(var i={},s=function(e){return e.substring(e.indexOf(\"(\")+1,e.lastIndexOf(\")\"))}(t).replace(/(,|\\/)/g,\" \").split(/ \\s*/),r=0;r<4;r++)i[e[r]]=void 0!==s[r]?parseFloat(s[r]):1;return i}},Z=R(R({},I),{transform:function(e){return Math.round(P(e))}});function q(e,t){return e.startsWith(t)&&L.test(e)}var G,U={test:function(e){return\"string\"==typeof e?q(e,\"rgb\"):Y(e)},parse:F([\"red\",\"green\",\"blue\",\"alpha\"]),transform:function(e){var t=e.red,i=e.green,s=e.blue,r=e.alpha,n=void 0===r?1:r;return function(e){var t=e.red,i=e.green,s=e.blue,r=e.alpha;return\"rgba(\"+t+\", \"+i+\", \"+s+\", \"+(void 0===r?1:r)+\")\"}({red:Z.transform(t),green:Z.transform(i),blue:Z.transform(s),alpha:T(O.transform(n))})}},J={test:function(e){return\"string\"==typeof e?q(e,\"hsl\"):X(e)},parse:F([\"hue\",\"saturation\",\"lightness\",\"alpha\"]),transform:function(e){var t=e.hue,i=e.saturation,s=e.lightness,r=e.alpha,n=void 0===r?1:r;return function(e){var t=e.hue,i=e.saturation,s=e.lightness,r=e.alpha;return\"hsla(\"+t+\", \"+i+\", \"+s+\", \"+(void 0===r?1:r)+\")\"}({hue:Math.round(t),saturation:H.transform(T(i)),lightness:H.transform(T(s)),alpha:T(O.transform(n))})}},Q=R(R({},U),{test:function(e){return\"string\"==typeof e&&q(e,\"#\")},parse:function(e){var t=\"\",i=\"\",s=\"\";return e.length>4?(t=e.substr(1,2),i=e.substr(3,2),s=e.substr(5,2)):(t=e.substr(1,1),i=e.substr(2,1),s=e.substr(3,1),t+=t,i+=i,s+=s),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),K={test:function(e){return\"string\"==typeof e&&L.test(e)||Y(e)||X(e)},parse:function(e){return U.test(e)?U.parse(e):J.test(e)?J.parse(e):Q.test(e)?Q.parse(e):e},transform:function(e){return Y(e)?U.transform(e):X(e)?J.transform(e):e}},ee=function(e){var t=e.onRead,i=e.onRender,s=e.uncachedValues,r=void 0===s?new Set:s,n=e.useCache,o=void 0===n||n;return function(e){void 0===e&&(e={});var s=p(e,[]),n={},a=[],l=!1;function h(e,t){e.startsWith(\"--\")&&(s.hasCSSVariable=!0);var i=n[e];n[e]=t,n[e]!==i&&(-1===a.indexOf(e)&&a.push(e),l||(l=!0,M.render(c.render)))}var c={get:function(e,i){return void 0===i&&(i=!1),!i&&o&&!r.has(e)&&void 0!==n[e]?n[e]:t(e,s)},set:function(e,t){if(\"string\"==typeof e)h(e,t);else for(var i in e)h(i,e[i]);return this},render:function(e){return void 0===e&&(e=!1),(l||!0===e)&&(i(n,s,a),l=!1,a.length=0),this}};return c}},te=/([a-z])([A-Z])/g,ie=function(e){return e.replace(te,\"$1-$2\").toLowerCase()},se=new Map,re=new Map,ne=[\"Webkit\",\"Moz\",\"O\",\"ms\",\"\"],oe=ne.length,ae=\"undefined\"!=typeof document,le=function(e,t){return re.set(e,ie(t))},he=function(e,t){void 0===t&&(t=!1);var i=t?re:se;return i.has(e)||(ae?function(e){G=G||document.createElement(\"div\");for(var t=0;t<oe;t++){var i=ne[t],s=\"\"===i,r=s?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in G.style||s){if(s&&\"clipPath\"===e&&re.has(e))return;se.set(e,r),le(e,(s?\"\":\"-\")+ie(r))}}}(e):function(e){le(e,e)}(e)),i.get(e)||e},ce=[\"\",\"X\",\"Y\",\"Z\"],de=[\"translate\",\"scale\",\"rotate\",\"skew\",\"transformPerspective\"].reduce((function(e,t){return ce.reduce((function(e,i){return e.push(t+i),e}),e)}),[\"x\",\"y\",\"z\"]),ue=de.reduce((function(e,t){return e[t]=!0,e}),{});function me(e){return!0===ue[e]}function fe(e,t){return de.indexOf(e)-de.indexOf(t)}var ve=new Set([\"originX\",\"originY\",\"originZ\"]);function pe(e){return ve.has(e)}var ge=v(v({},I),{transform:Math.round}),be={color:K,backgroundColor:K,outlineColor:K,fill:K,stroke:K,borderColor:K,borderTopColor:K,borderRightColor:K,borderBottomColor:K,borderLeftColor:K,borderWidth:W,borderTopWidth:W,borderRightWidth:W,borderBottomWidth:W,borderLeftWidth:W,borderRadius:W,radius:W,borderTopLeftRadius:W,borderTopRightRadius:W,borderBottomRightRadius:W,borderBottomLeftRadius:W,width:W,maxWidth:W,height:W,maxHeight:W,size:W,top:W,right:W,bottom:W,left:W,padding:W,paddingTop:W,paddingRight:W,paddingBottom:W,paddingLeft:W,margin:W,marginTop:W,marginRight:W,marginBottom:W,marginLeft:W,rotate:V,rotateX:V,rotateY:V,rotateZ:V,scale:D,scaleX:D,scaleY:D,scaleZ:D,skew:V,skewX:V,skewY:V,distance:W,translateX:W,translateY:W,translateZ:W,x:W,y:W,z:W,perspective:W,opacity:O,originX:j,originY:j,originZ:W,zIndex:ge,fillOpacity:O,strokeOpacity:O,numOctaves:ge},xe=function(e){return be[e]},ye=function(e,t){return t&&\"number\"==typeof e?t.transform(e):e},we=new Set([\"scrollLeft\",\"scrollTop\"]),$e=new Set([\"scrollLeft\",\"scrollTop\",\"transform\"]),Ce={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};function Be(e){return\"function\"==typeof e}function ze(e,t,i,s,r,n,o,a){void 0===t&&(t=!0),void 0===i&&(i={}),void 0===s&&(s={}),void 0===r&&(r={}),void 0===n&&(n=[]),void 0===o&&(o=!1),void 0===a&&(a=!0);var l=!0,h=!1,c=!1;for(var d in e){var u=e[d],m=xe(d),f=ye(u,m);me(d)?(h=!0,s[d]=f,n.push(d),l&&(m.default&&u!==m.default||!m.default&&0!==u)&&(l=!1)):pe(d)?(r[d]=f,c=!0):$e.has(d)&&Be(f)||(i[he(d,o)]=f)}return(h||\"function\"==typeof e.transform)&&(i.transform=function(e,t,i,s,r,n){void 0===n&&(n=!0);var o=\"\",a=!1;i.sort(fe);for(var l=i.length,h=0;h<l;h++){var c=i[h];o+=(Ce[c]||c)+\"(\"+t[c]+\") \",a=\"z\"===c||a}return!a&&r?o+=\"translateZ(0)\":o=o.trim(),Be(e.transform)?o=e.transform(t,s?\"\":o):n&&s&&(o=\"none\"),o}(e,s,n,l,t,a)),c&&(i.transformOrigin=(r.originX||\"50%\")+\" \"+(r.originY||\"50%\")+\" \"+(r.originZ||0)),i}function _e(e){var t=void 0===e?{}:e,i=t.enableHardwareAcceleration,s=void 0===i||i,r=t.isDashCase,n=void 0===r||r,o=t.allowTransformNone,a=void 0===o||o,l={},h={},c={},d=[];return function(e){return d.length=0,ze(e,s,l,h,c,d,n,a),l}}var Me=ee({onRead:function(e,t){var i=t.element,s=t.preparseOutput,r=xe(e);if(me(e))return r&&r.default||0;if(we.has(e))return i[e];var n=window.getComputedStyle(i,null).getPropertyValue(he(e,!0))||0;return s&&r&&r.test(n)&&r.parse?r.parse(n):n},onRender:function(e,t,i){var s=t.element,r=t.buildStyles,n=t.hasCSSVariable;if(Object.assign(s.style,r(e)),n)for(var o=i.length,a=0;a<o;a++){var l=i[a];l.startsWith(\"--\")&&s.style.setProperty(l,e[l])}-1!==i.indexOf(\"scrollLeft\")&&(s.scrollLeft=e.scrollLeft),-1!==i.indexOf(\"scrollTop\")&&(s.scrollTop=e.scrollTop)},uncachedValues:we});var Ee=new Set([\"baseFrequency\",\"diffuseConstant\",\"kernelMatrix\",\"kernelUnitLength\",\"keySplines\",\"keyTimes\",\"limitingConeAngle\",\"markerHeight\",\"markerWidth\",\"numOctaves\",\"targetX\",\"targetY\",\"surfaceScale\",\"specularConstant\",\"specularExponent\",\"stdDeviation\",\"tableValues\"]),ke=function(e,t){return W.transform(e*t)},Se={x:0,y:0,width:0,height:0};function Re(e,t,i){return\"string\"==typeof e?e:W.transform(t+i*e)}var Ne={enableHardwareAcceleration:!1,isDashCase:!1};function Te(e,t,i,s,r,n){void 0===t&&(t=Se),void 0===s&&(s=_e(Ne)),void 0===r&&(r={style:{}}),void 0===n&&(n=!0);var o=e.attrX,a=e.attrY,l=e.originX,h=e.originY,c=e.pathLength,d=e.pathSpacing,u=void 0===d?1:d,m=e.pathOffset,f=void 0===m?0:m,v=s(p(e,[\"attrX\",\"attrY\",\"originX\",\"originY\",\"pathLength\",\"pathSpacing\",\"pathOffset\"]));for(var g in v){if(\"transform\"===g)r.style.transform=v[g];else r[n&&!Ee.has(g)?ie(g):g]=v[g]}return(void 0!==l||void 0!==h||v.transform)&&(r.style.transformOrigin=function(e,t,i){return Re(t,e.x,e.width)+\" \"+Re(i,e.y,e.height)}(t,void 0!==l?l:.5,void 0!==h?h:.5)),void 0!==o&&(r.x=o),void 0!==a&&(r.y=a),void 0!==i&&void 0!==c&&(r[n?\"stroke-dashoffset\":\"strokeDashoffset\"]=ke(-f,i),r[n?\"stroke-dasharray\":\"strokeDasharray\"]=ke(c,i)+\" \"+ke(u,i)),r}function Le(e,t,i){void 0===i&&(i=!0);var s={style:{}},r=_e(Ne);return function(n){return Te(n,e,t,r,s,i)}}var Ie=ee({onRead:function(e,t){var i=t.element;if(me(e=Ee.has(e)?e:ie(e))){var s=xe(e);return s&&s.default||0}return i.getAttribute(e)},onRender:function(e,t){var i=t.element,s=(0,t.buildAttrs)(e);for(var r in s)\"style\"===r?Object.assign(i.style,s.style):i.setAttribute(r,s[r])}}),Oe=ee({useCache:!1,onRead:function(e){return\"scrollTop\"===e?window.pageYOffset:window.pageXOffset},onRender:function(e){var t=e.scrollTop,i=void 0===t?0:t,s=e.scrollLeft,r=void 0===s?0:s;return window.scrollTo(r,i)}}),De=new WeakMap,Ae=function(e,t){var i,s,r,n;return e===window?i=Oe(e):!function(e){return e instanceof HTMLElement||\"function\"==typeof e.click}(e)?function(e){return e instanceof SVGElement||\"ownerSVGElement\"in e}(e)&&(r=function(e){try{return function(e){return\"function\"==typeof e.getBBox?e.getBBox():e.getBoundingClientRect()}(e)}catch(t){return{x:0,y:0,width:0,height:0}}}(s=e),n=function(e){return\"path\"===e.tagName}(s)&&s.getTotalLength?s.getTotalLength():void 0,i=Ie({element:s,buildAttrs:Le(r,n)})):i=function(e,t){void 0===t&&(t={});var i=t.enableHardwareAcceleration,s=t.allowTransformNone,r=p(t,[\"enableHardwareAcceleration\",\"allowTransformNone\"]);return Me(v({element:e,buildStyles:_e({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},r))}(e,t),De.set(e,i),i};function Ve(e,t){return function(e,t){return De.has(e)?De.get(e):Ae(e,t)}(\"string\"==typeof e?document.querySelector(e):e,t)}var He=function(e,t,i,s){var r=i?i.call(s,e,t):void 0;if(void 0!==r)return!!r;if(e===t)return!0;if(\"object\"!=typeof e||!e||\"object\"!=typeof t||!t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(t),l=0;l<n.length;l++){var h=n[l];if(!a(h))return!1;var c=e[h],d=t[h];if(!1===(r=i?i.call(s,c,d,h):void 0)||void 0===r&&c!==d)return!1}return!0};const We=\"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",je=We.length,Pe=Array(20),Ye=()=>{for(let e=0;e<20;e++)Pe[e]=We.charAt(Math.random()*je);return Pe.join(\"\")};class Xe{constructor(){this.disposers=new Map}add(e,t=Ye()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=Ye()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,s,r=Ye()){return this.add((()=>(e.addEventListener(t,i,s),()=>e.removeEventListener(t,i,s))),r),r}setTimeout(e,t,i=Ye()){return this.add((()=>{const s=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(s)}),i)}setInterval(e,t,i=Ye()){return this.add((()=>{const i=window.setInterval(e,t);return()=>window.clearInterval(i)}),i)}remove(e){const t=this.disposers.get(e);return this.disposers.delete(e),t}flush(e){const t=this.remove(e);if(t)try{t()}catch(i){console.error(i)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(t){console.error(t)}})),this.disposers.clear()}}var Fe=Object.defineProperty,Ze=(\"undefined\"!=typeof require&&require,(e,t,i)=>{return n=i,(r=\"symbol\"!=typeof t?t+\"\":t)in(s=e)?Fe(s,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[r]=n,i;var s,r,n});class qe{constructor(e,t){Ze(this,\"_value\"),Ze(this,\"_beforeDestroys\"),Ze(this,\"_subscribers\"),this._value=e,t&&(this.compare=t)}get value(){return this._value}setValue(e,t){if(!this.compare(e,this._value)){const i=this._value;this._value=e,this._subscribers&&this._subscribers.forEach((s=>s(e,i,t)))}}reaction(e){return this._subscribers||(this._subscribers=new Set),this._subscribers.add(e),()=>{this._subscribers&&this._subscribers.delete(e)}}subscribe(e,t){const i=this.reaction(e);return e(this._value,void 0,t),i}derive(e,t,i){const s=new qe(e(this.value,void 0,i),t),r=this.reaction(((t,i,r)=>{s.setValue(e(t,i,r))}));return s.addBeforeDestroy(r),s}destroy(){this._beforeDestroys&&(this._beforeDestroys.forEach((e=>e())),this._beforeDestroys.clear()),this._subscribers&&this._subscribers.clear()}addBeforeDestroy(e){return this._beforeDestroys||(this._beforeDestroys=new Set),this._beforeDestroys.add(e),()=>{this._beforeDestroys&&this._beforeDestroys.delete(e)}}compare(e,t){return e===t}}function Ge(e,t){Object.keys(t).forEach((i=>{!function(e,t,i){var s;Object.defineProperties(e,{[t]:{get:()=>i.value},[`_${t}$`]:{value:i},[`set${s=t,s[0].toUpperCase()+s.slice(1)}`]:{value:(e,t)=>i.setValue(e,t)}})}(e,i,t[i])}))}function Ue(e){const t=t=>{const i=e.addDisposer((()=>{t.destroy()}));return t.addBeforeDestroy((()=>{e.remove(i)})),t};return{bindSideEffect:t,combine:(e,i,s,r)=>t(function(e,t,i,s){let r=e.map((e=>e.value));const n=new qe(t(r,void 0,s),i);return e.forEach(((e,i)=>{const s=e.reaction(((e,s,o)=>{const a=r.slice();a[i]=e;const l=r;r=a,n.setValue(t(a,l,o),o)}));n.addBeforeDestroy(s)})),n}(e,i,s,r)),createVal:(e,i)=>t(new qe(e,i))}}var Je,Qe,Ke,et,tt,it,st,rt,nt,ot;(Qe=Je||(Je={})).Light=\"light\",Qe.Dark=\"dark\",Qe.Auto=\"auto\",(et=Ke||(Ke={})).Normal=\"normal\",et.Minimized=\"minimized\",et.Maximized=\"maximized\",(it=tt||(tt={})).DarkMode=\"dark_mode\",it.PrefersColorScheme=\"prefers_color_scheme\",it.Close=\"close\",it.Focus=\"focus\",it.Blur=\"blur\",it.Move=\"move\",it.Resize=\"resize\",it.IntrinsicMove=\"intrinsic_move\",it.IntrinsicResize=\"intrinsic_resize\",it.VisualResize=\"visual_resize\",it.ZIndex=\"z_index\",it.State=\"state\",it.Minimized=\"minimized\",it.Maximized=\"maximized\",it.Readonly=\"readonly\",it.Destroyed=\"destroyed\",(rt=st||(st={})).Close=\"close\",rt.Maximize=\"maximize\",rt.Minimize=\"minimize\",(ot=nt||(nt={})).North=\"n\",ot.South=\"s\",ot.West=\"w\",ot.East=\"e\",ot.NorthWest=\"nw\",ot.NorthEast=\"ne\",ot.SouthEast=\"se\",ot.SouthWest=\"sw\";const at=\"dh\";function lt(e,t,i){return Math.min(Math.max(e,t),i)}function ht(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function ct(e){return e.touches?e.touches[0]:e}function dt(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}let ut=1;function mt(){return\"New Box \"+ut++}function ft(e){return Boolean(e)}function vt(e){return!e}class pt{constructor({readonly:e=!1,title:t,buttons:i,onEvent:s,onDragStart:r,namespace:n=\"telebox\",state:o=Ke.Normal}={}){this.$btns=[],this.sideEffect=new Xe,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=e=>{var t;if(this.readonly)return;if(0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;ht(e);const i=Date.now();i-this.lastTitleBarClick.timestamp<=500?Math.abs(e.clientX-this.lastTitleBarClick.clientX)<=3&&Math.abs(e.clientY-this.lastTitleBarClick.clientY)<=3&&this.onEvent&&this.onEvent({type:st.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick.timestamp=i,this.lastTitleBarClick.clientX=e.clientX,this.lastTitleBarClick.clientY=e.clientY},this.lastTitleBarTouch={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarTouch=e=>{var t;if(this.readonly)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;ht(e);const i=Date.now(),{clientX:s=this.lastTitleBarTouch.clientX+100,clientY:r=this.lastTitleBarTouch.clientY+100}=e.touches[0]||{};i-this.lastTitleBarTouch.timestamp<=500?Math.abs(s-this.lastTitleBarTouch.clientX)<=3&&Math.abs(r-this.lastTitleBarTouch.clientY)<=3&&this.onEvent&&this.onEvent({type:st.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarTouch.timestamp=i,this.lastTitleBarTouch.clientX=s,this.lastTitleBarTouch.clientY=r},this.readonly=e,this.onEvent=s,this.onDragStart=r,this.namespace=n,this.title=t,this.state=o,this.buttons=i||[{type:st.Minimize,iconClassName:this.wrapClassName(\"titlebar-icon-minimize\")},{type:st.Maximize,iconClassName:this.wrapClassName(\"titlebar-icon-maximize\"),isActive:e=>e===Ke.Maximized},{type:st.Close,iconClassName:this.wrapClassName(\"titlebar-icon-close\")}],this.$dragArea=this.renderDragArea()}setTitle(e){this.title=e,this.$title&&(this.$title.textContent=e,this.$title.title=e)}setState(e){this.state!==e&&(this.state=e,this.buttons.forEach(((t,i)=>{t.isActive&&this.$btns[i].classList.toggle(\"is-active\",t.isActive(e))})))}setReadonly(e){this.readonly!==e&&(this.readonly=e)}render(){if(!this.$titleBar){this.$titleBar=document.createElement(\"div\"),this.$titleBar.className=this.wrapClassName(\"titlebar\");const e=document.createElement(\"div\");e.className=this.wrapClassName(\"title-area\"),e.dataset.teleBoxHandle=\"dh\",this.$title=document.createElement(\"h1\"),this.$title.className=this.wrapClassName(\"title\"),this.$title.dataset.teleBoxHandle=\"dh\",this.title&&(this.$title.textContent=this.title,this.$title.title=this.title),e.appendChild(this.$title),e.appendChild(this.$dragArea);const t=document.createElement(\"div\");t.className=this.wrapClassName(\"titlebar-btns\"),this.buttons.forEach((({iconClassName:e,isActive:i},s)=>{const r=String(s),n=document.createElement(\"button\");n.className=`${this.wrapClassName(\"titlebar-btn\")} ${e}`,n.dataset.teleTitleBarBtnIndex=r,n.dataset.teleTitleBarNoDblClick=\"true\",i&&n.classList.toggle(\"is-active\",i(this.state)),this.$btns.push(n),t.appendChild(n)})),this.sideEffect.addEventListener(t,\"click\",(e=>{var t;if(this.readonly)return;const i=e.target,s=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){ht(e);const t=this.buttons[s];this.onEvent&&this.onEvent({type:t.type,value:t.value})}})),this.$titleBar.appendChild(e),this.$titleBar.appendChild(t)}return this.$titleBar}renderDragArea(){const e=document.createElement(\"div\");return e.className=this.wrapClassName(\"drag-area\"),e.dataset.teleBoxHandle=\"dh\",this.sideEffect.addEventListener(e,\"mousedown\",this.handleTitleBarClick),this.sideEffect.addEventListener(e,\"touchstart\",this.handleTitleBarTouch,{passive:!0}),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.$title=void 0,this.$btns.length=0,this.onDragStart=void 0,this.onEvent=void 0)}}class gt{constructor({id:e=dt(),title:t=mt(),prefersColorScheme:i=Je.Light,darkMode:s,visible:r=!0,width:n=.5,height:o=.5,minWidth:a=0,minHeight:l=0,x:h=.1,y:c=.1,minimized:d=!1,maximized:u=!1,readonly:m=!1,resizable:v=!0,draggable:p=!0,fence:g=!0,fixRatio:b=!1,focus:x=!1,zIndex:y=100,namespace:w=\"telebox\",titleBar:$,content:C,footer:B,styles:z,containerRect:_={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:M}={}){this._renderSideEffect=new Xe,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new Xe,this._valSideEffectBinder=Ue(this._sideEffect);const{combine:E,createVal:k}=this._valSideEffectBinder;this.id=e,this.namespace=w,this.events=new f,this._delegateEvents=new f;const S=k(i);S.reaction(((e,t,i)=>{i||this.events.emit(tt.PrefersColorScheme,e)}));const R=k(Boolean(s));null==s&&S.subscribe(((e,t,i)=>{this._sideEffect.add((()=>{if(\"auto\"===e){const e=window.matchMedia(\"(prefers-color-scheme: dark)\");if(e){R.setValue(e.matches,i);const t=e=>{R.setValue(e.matches,i)};return e.addListener(t),()=>e.removeListener(t)}return bt}return R.setValue(\"dark\"===e,i),bt}),\"prefers-color-scheme\")})),R.reaction(((e,t,i)=>{i||this.events.emit(tt.DarkMode,e)}));const N=k(_,He),T=k(M,He),L=k(t),I=k(r);I.reaction(((e,t,i)=>{i||e||this.events.emit(tt.Close)}));const O=k(m);O.reaction(((e,t,i)=>{i||this.events.emit(tt.Readonly,e)}));const D=k(v),A=k(p),V=k(g),H=k(b),W=k(y);W.reaction(((e,t,i)=>{i||this.events.emit(tt.ZIndex,e)}));const j=k(x);j.reaction(((e,t,i)=>{i||this.events.emit(e?tt.Focus:tt.Blur)}));const P=k(d);P.reaction(((e,t,i)=>{i||this.events.emit(tt.Minimized,e)}));const Y=k(u);Y.reaction(((e,t,i)=>{i||this.events.emit(tt.Maximized,e)}));const X=E([P,Y],(([e,t])=>e?Ke.Minimized:t?Ke.Maximized:Ke.Normal));X.reaction(((e,t,i)=>{i||this.events.emit(tt.State,e)}));const F=k({width:lt(a,0,1),height:lt(l,0,1)},He),Z=k({width:lt(n,F.value.width,1),height:lt(o,F.value.height,1)},He);F.reaction(((e,t,i)=>{Z.setValue({width:lt(n,e.width,1),height:lt(o,e.height,1)},i)})),Z.reaction(((e,t,i)=>{i||this.events.emit(tt.IntrinsicResize,e)}));const q=E([Z,Y],(([e,t])=>t?{width:1,height:1}:e),He);q.reaction(((e,t,i)=>{i||this.events.emit(tt.Resize,e)}));const G=E([q,P,N,T],(([e,t,i,s])=>t&&s?{width:s.width/e.width/i.width,height:s.height/e.height/i.height}:e),He);G.reaction(((e,t,i)=>{i||this.events.emit(tt.VisualResize,e)}));const U=k({x:lt(h,0,1),y:lt(c,0,1)},He);U.reaction(((e,t,i)=>{i||this.events.emit(tt.IntrinsicMove,e)}));const J=E([U,Z,N,T,P,Y],(([e,t,i,s,r,n])=>r&&s?n?{x:(s.x+s.width/2)/i.width-.5,y:(s.y+s.height/2)/i.height-.5}:{x:(s.x+s.width/2)/i.width-t.width/2,y:(s.y+s.height/2)/i.height-t.height/2}:n?{x:0,y:0}:e),He);J.reaction(((e,t,i)=>{i||this.events.emit(tt.Move,e)})),this.titleBar=$||new pt({readonly:O.value,title:L.value,namespace:this.namespace,onDragStart:e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},onEvent:e=>{if(this._delegateEvents.listeners.length>0)this._delegateEvents.emit(e.type);else switch(e.type){case st.Maximize:Y.setValue(!Y.value);break;case st.Minimize:P.setValue(!0);break;case st.Close:I.setValue(!1);break;default:console.error(\"Unsupported titleBar event:\",e)}}}),O.reaction((e=>{this.titleBar.setReadonly(e)}));const Q=k(C),K=k(B),ee=k(z);Ge(this,{prefersColorScheme:S,darkMode:R,containerRect:N,collectorRect:T,title:L,visible:I,readonly:O,resizable:D,draggable:A,fence:V,fixRatio:H,focus:j,zIndex:W,minimized:P,maximized:Y,$userContent:Q,$userFooter:K,$userStyles:ee}),this._state$=X,this._minSize$=F,this._size$=q,this._intrinsicSize$=Z,this._visualSize$=G,this._coord$=J,this._intrinsicCoord$=U,this.fixRatio&&this.transform(J.value.x,J.value.y,q.value.width,q.value.height,!0),this.$box=this.render()}get darkMode(){return this._darkMode$.value}get state(){return this._state$.value}setState(e,t=!1){switch(e){case Ke.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case Ke.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,t=!1){return this._minSize$.setValue({width:e,height:this.minHeight},t),this}setMinHeight(e,t=!1){return this._minSize$.setValue({width:this.minWidth,height:e},t),this}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}resize(e,t,i=!1){return this._intrinsicSize$.setValue({width:e,height:t},i),this}get width(){return this._size$.value.width}get height(){return this._size$.value.height}get absoluteWidth(){return this.width*this.containerRect.width}get absoluteHeight(){return this.height*this.containerRect.height}get visualWidth(){return this._visualSize$.value.width}get visualHeight(){return this._visualSize$.value.height}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}move(e,t,i=!1){return this._intrinsicCoord$.setValue({x:e,y:t},i),this}get x(){return this._coord$.value.x}get y(){return this._coord$.value.y}transform(e,t,i,s,r=!1){if(this.fixRatio){const e=this.intrinsicHeight/this.intrinsicWidth*i;t!==this.intrinsicY&&(t-=e-s),s=e}return t<0&&(t=0,s>this.intrinsicHeight&&(s=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?e:this.intrinsicX,y:s>=this.minHeight?t:this.intrinsicY},r),this._intrinsicSize$.setValue({width:lt(i,this.minWidth,1),height:lt(s,this.minHeight,1)},r),this}mount(e){return e.appendChild(this.render()),this}unmount(){return this.$box&&this.$box.remove(),this}mountContent(e){return this.set$userContent(e),this}unmountContent(){return this.set$userContent(void 0),this}mountFooter(e){return this.set$userFooter(e),this}unmountFooter(){return this.set$userFooter(void 0),this}getUserStyles(){return this.$userStyles}mountStyles(e){let t;return\"string\"==typeof e?(t=document.createElement(\"style\"),t.textContent=e):t=e,this.set$userStyles(t),this}unmountStyles(){return this.set$userStyles(void 0),this}render(e){if(e){if(e===this.$box)return this.$box;this.$box=e}else{if(this.$box)return this.$box;this.$box=document.createElement(\"div\")}this._renderSideEffect.flushAll(),this.$box.classList.add(this.wrapClassName(\"box\"));const t=(e,t,i,s=ft)=>this._renderSideEffect.add((()=>{const r=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(r,s(t))}))}));t(this.$box,this._readonly$,\"readonly\"),t(this.$box,this._draggable$,\"no-drag\",vt),t(this.$box,this._resizable$,\"no-resize\",vt),t(this.$box,this._focus$,\"blur\",vt),t(this.$box,this._darkMode$,\"color-scheme-dark\"),t(this.$box,this._darkMode$,\"color-scheme-light\",vt),this._renderSideEffect.add((()=>{const e=this.wrapClassName(\"minimized\"),t=this.wrapClassName(\"maximized\"),i=\"box-maximized-timer\";return this._state$.subscribe((s=>{this.$box.classList.toggle(e,s===Ke.Minimized),s===Ke.Maximized?(this._renderSideEffect.flush(i),this.$box.classList.toggle(t,!0)):this._renderSideEffect.setTimeout((()=>{this.$box.classList.toggle(t,!1)}),0,i)}))})),this._renderSideEffect.add((()=>this._visible$.subscribe((e=>{this.$box.style.display=e?\"block\":\"none\"})))),this._renderSideEffect.add((()=>this._zIndex$.subscribe((e=>{this.$box.style.zIndex=String(e)}))));const i=Ve(this.$box);this.$box.dataset.teleBoxID=this.id,this.$box.style.width=this.absoluteWidth+\"px\",this.$box.style.height=this.absoluteHeight+\"px\";const s=this.x*this.containerRect.width+this.containerRect.x,r=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${s-10}px,${r-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([e,t,i,s,r])=>{const n=t.width*s.width,o=t.height*s.height;return{width:n,height:o,x:e.x*s.width,y:e.y*s.height,scaleX:i&&r?r.width/n:1,scaleY:i&&r?r.height/o:1}}),He).subscribe((e=>{i.set(e)})),i.set({x:s,y:r});const n=document.createElement(\"div\");n.className=this.wrapClassName(\"box-main\"),this.$box.appendChild(n);const o=document.createElement(\"div\");o.className=this.wrapClassName(\"titlebar-wrap\"),o.appendChild(this.titleBar.render()),this.$titleBar=o;const a=document.createElement(\"div\");a.className=this.wrapClassName(\"content-wrap\");const l=document.createElement(\"div\");l.className=this.wrapClassName(\"content\")+\" tele-fancy-scrollbar\",this.$content=l,this._renderSideEffect.add((()=>{let e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&a.appendChild(t)}))})),this._renderSideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),a.appendChild(l);const h=document.createElement(\"div\");return h.className=this.wrapClassName(\"footer-wrap\"),this.$footer=h,this._renderSideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&h.appendChild(t)}))})),n.appendChild(o),n.appendChild(a),n.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement(\"div\");e.className=this.wrapClassName(\"resize-handles\"),Object.values(nt).forEach((t=>{const i=document.createElement(\"div\");i.className=this.wrapClassName(t)+\" \"+this.wrapClassName(\"resize-handle\"),i.dataset.teleBoxHandle=t,e.appendChild(i)})),this.$box.appendChild(e);const t=\"handle-tracking-listener\",i=this.wrapClassName(\"transforming\");let s,r,n=0,o=0,a=0,l=0,h=0,c=0;const d=e=>{if(this.state!==Ke.Normal)return;ht(e);let{pageX:t,pageY:i}=ct(e);i<0&&(i=0);const s=(t-h)/this.containerRect.width,d=(i-c)/this.containerRect.height;switch(r){case nt.North:this.transform(this.x,o+d,this.width,l-d);break;case nt.South:this.transform(this.x,this.y,this.width,l+d);break;case nt.West:this.transform(n+s,this.y,a-s,this.height);break;case nt.East:this.transform(this.x,this.y,a+s,this.height);break;case nt.NorthWest:this.transform(n+s,o+d,a-s,l-d);break;case nt.NorthEast:this.transform(this.x,o+d,a+s,l-d);break;case nt.SouthEast:this.transform(this.x,this.y,a+s,l+d);break;case nt.SouthWest:this.transform(n+s,this.y,a-s,l+d);break;default:if(this.fence)this.move(lt(n+s,0,1-this.width),lt(o+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move(lt(n+s,e-this.width,1-e),lt(o+d,0,1-t))}}},u=e=>{r=void 0,s&&(ht(e),this.$box.classList.toggle(i,!1),this._sideEffect.flush(t),s.remove())},m=e=>{var m;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(!this.draggable||r||this.state!==Ke.Normal)return;const f=e.target;if(null==(m=f.dataset)?void 0:m.teleBoxHandle){ht(e),n=this.x,o=this.y,a=this.width,l=this.height,({pageX:h,pageY:c}=ct(e)),r=f.dataset.teleBoxHandle,s||(s=document.createElement(\"div\"));const m=r?this.wrapClassName(`cursor-${r}`):\"\";s.className=this.wrapClassName(\"track-mask\"+(m?` ${m}`:\"\")),this.$box.appendChild(s),this.$box.classList.add(i),this._sideEffect.add((()=>(window.addEventListener(\"mousemove\",d),window.addEventListener(\"touchmove\",d,{passive:!1}),window.addEventListener(\"mouseup\",u),window.addEventListener(\"touchend\",u,{passive:!1}),window.addEventListener(\"touchcancel\",u,{passive:!1}),()=>{window.removeEventListener(\"mousemove\",d),window.removeEventListener(\"touchmove\",d),window.removeEventListener(\"mouseup\",u),window.removeEventListener(\"touchend\",u),window.removeEventListener(\"touchcancel\",u)})),t)}};this._handleTrackStart=m,this._sideEffect.addEventListener(e,\"mousedown\",m,{},\"box-resizeHandles-mousedown\"),this._sideEffect.addEventListener(e,\"touchstart\",m,{passive:!1},\"box-resizeHandles-touchstart\")}destroy(){this.$box.remove(),this.events.emit(tt.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}function bt(){}const xt=(e,t)=>{const i=c(!0);d((()=>{if(!i.current)return e();i.current=!1}),t)},yt=e=>{const[t]=u((()=>new gt(e)));return xt((()=>{null!=e.prefersColorScheme&&t.setPrefersColorScheme(e.prefersColorScheme)}),[t,e.prefersColorScheme]),xt((()=>{null!=e.minWidth&&t.setMinWidth(e.minWidth)}),[t,e.minWidth]),xt((()=>{null!=e.minHeight&&t.setMinHeight(e.minHeight)}),[t,e.minHeight]),xt((()=>{var i,s;t.resize(null!=(i=e.width)?i:t.width,null!=(s=e.height)?s:t.height,!0)}),[t,e.width,e.height]),xt((()=>{var i,s;t.move(null!=(i=e.x)?i:t.x,null!=(s=e.y)?s:t.y,!0)}),[t,e.x,e.y]),xt((()=>{null!=e.title&&t.setTitle(e.title)}),[t,e.title]),xt((()=>{null!=e.visible&&t.setVisible(e.visible)}),[t,e.visible]),xt((()=>{null!=e.minimized&&t.setMinimized(e.minimized,!0)}),[t,e.minimized]),xt((()=>{null!=e.maximized&&t.setMaximized(e.maximized,!0)}),[t,e.maximized]),xt((()=>{null!=e.state&&t.setState(e.state,!0)}),[t,e.state]),xt((()=>{null!=e.draggable&&t.setDraggable(e.draggable)}),[t,e.draggable]),xt((()=>{null!=e.resizable&&t.setResizable(e.resizable)}),[t,e.resizable]),xt((()=>{null!=e.fence&&t.setFence(e.fence)}),[t,e.fence]),xt((()=>{null!=e.containerRect&&t.setContainerRect(e.containerRect)}),[t,e.containerRect]),xt((()=>{null!=e.fixRatio&&t.setFixRatio(e.fixRatio)}),[t,e.fixRatio]),d((()=>{if(e.onResize)return t.events.on(tt.Resize,e.onResize),()=>{t.events.off(tt.Resize,e.onResize)}}),[t,e.onResize]),d((()=>{if(e.onMove)return t.events.on(tt.Move,e.onMove),()=>{t.events.off(tt.Move,e.onMove)}}),[t,e.onMove]),d((()=>{if(e.onClose)return t.events.on(tt.Close,e.onClose),()=>{t.events.off(tt.Close,e.onClose)}}),[t,e.onClose]),d((()=>{if(e.onFocus)return t.events.on(tt.Focus,e.onFocus),()=>{t.events.off(tt.Focus,e.onFocus)}}),[t,e.onFocus]),d((()=>{if(e.onBlur)return t.events.on(tt.Blur,e.onBlur),()=>{t.events.off(tt.Blur,e.onBlur)}}),[t,e.onBlur]),d((()=>{if(e.onStateChanged)return t.events.on(tt.State,e.onStateChanged),()=>{t.events.off(tt.State,e.onStateChanged)}}),[t,e.onStateChanged]),h.createElement(\"div\",{ref:e=>e&&t.render(e),className:t.wrapClassName(\"box\")})};var wt,$t;class Ct{constructor({visible:e=!0,readonly:t=!1,darkMode:i=!1,namespace:s=\"telebox\",styles:r={},onClick:n}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=e,this._readonly=t,this._darkMode=i,this.namespace=s,this.styles=r,this.onClick=n}get visible(){return this._visible}get readonly(){return this._readonly}get darkMode(){return this._darkMode}mount(e){return e.appendChild(this.render()),this}unmount(){return this.$collector&&this.$collector.remove(),this}setVisible(e){return this._visible!==e&&(this._visible=e,this.$collector&&this.$collector.classList.toggle(this.wrapClassName(\"collector-visible\"),e)),this}setReadonly(e){return this._readonly!==e&&(this._readonly=e,this.$collector&&this.$collector.classList.toggle(this.wrapClassName(\"collector-readonly\"),e)),this}setDarkMode(e){return this._darkMode!==e&&(this._darkMode=e,this.$collector&&(this.$collector.classList.toggle(this.wrapClassName(\"color-scheme-dark\"),e),this.$collector.classList.toggle(this.wrapClassName(\"color-scheme-light\"),!e))),this}setStyles(e){if(Object.assign(this.styles,e),this.$collector){const t=this.$collector;Object.keys(e).forEach((i=>{const s=e[i];null!=s&&(t.style[i]=s)}))}return this}render(){return this.$collector||(this.$collector=document.createElement(\"button\"),this.$collector.className=this.wrapClassName(\"collector\"),this.$collector.style.backgroundImage=\"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K')\",this.$collector.addEventListener(\"click\",this.handleCollectorClick),this._visible&&this.$collector.classList.add(this.wrapClassName(\"collector-visible\")),this._readonly&&this.$collector.classList.add(this.wrapClassName(\"collector-readonly\")),this.$collector.classList.add(this.wrapClassName(this._darkMode?\"color-scheme-dark\":\"color-scheme-light\")),this.setStyles(this.styles)),this.$collector}destroy(){this.$collector&&(this.$collector.removeEventListener(\"click\",this.handleCollectorClick),this.$collector.remove(),this.$collector=void 0),this.onClick=void 0}wrapClassName(e){return`${this.namespace}-${e}`}}($t=wt||(wt={})).Focused=\"focused\",$t.Blurred=\"blurred\",$t.Created=\"created\",$t.Removed=\"removed\",$t.State=\"state\",$t.Maximized=\"maximized\",$t.Minimized=\"minimized\",$t.Move=\"move\",$t.Resize=\"resize\",$t.IntrinsicMove=\"intrinsic_move\",$t.IntrinsicResize=\"intrinsic_resize\",$t.VisualResize=\"visual_resize\",$t.ZIndex=\"z_index\",$t.PrefersColorScheme=\"prefers_color_scheme\",$t.DarkMode=\"dark_mode\";class Bt extends pt{constructor(e){super(e),this.boxes=e.boxes,this.focusedBox=e.focusedBox,this.containerRect=e.containerRect,this.darkMode=e.darkMode}focusBox(e){var t;if(!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state===Ke.Maximized){const{children:i}=this.$titles.firstElementChild;for(let s=i.length-1;s>=0;s-=1){const r=i[s],n=null==(t=r.dataset)?void 0:t.teleBoxID;n&&(e&&n===e.id?r.classList.toggle(this.wrapClassName(\"titles-tab-focus\"),!0):this.focusedBox&&n===this.focusedBox.id&&r.classList.toggle(this.wrapClassName(\"titles-tab-focus\"),!1))}}this.focusedBox=e}}setContainerRect(e){if(this.containerRect=e,this.$titleBar){const{x:t,y:i,width:s}=e;this.$titleBar.style.transform=`translate(${t}px, ${i}px)`,this.$titleBar.style.width=s+\"px\"}}setBoxes(e){this.boxes=e,this.updateTitles()}setState(e){super.setState(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName(\"max-titlebar-maximized\"),e===Ke.Maximized),this.updateTitles()}setReadonly(e){super.setReadonly(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName(\"readonly\"),this.readonly)}setDarkMode(e){e!==this.darkMode&&(this.darkMode=e,this.$titleBar&&(this.$titleBar.classList.toggle(this.wrapClassName(\"color-scheme-dark\"),e),this.$titleBar.classList.toggle(this.wrapClassName(\"color-scheme-light\"),!e)))}render(){var e;const t=super.render();(null==(e=t.firstElementChild)?void 0:e.nextElementSibling)&&t.insertBefore(this.$dragArea,t.firstElementChild.nextElementSibling);const{x:i,y:s,width:r}=this.containerRect;return t.style.transform=`translate(${i}px, ${s}px)`,t.style.width=r+\"px\",t.classList.add(this.wrapClassName(\"max-titlebar\")),t.classList.toggle(this.wrapClassName(\"max-titlebar-maximized\"),this.state===Ke.Maximized),t.classList.toggle(this.wrapClassName(\"readonly\"),this.readonly),t.classList.add(this.wrapClassName(this.darkMode?\"color-scheme-dark\":\"color-scheme-light\")),this.updateTitles(),t}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===Ke.Maximized&&(1===this.boxes.length?this.$title&&(this.$title.textContent=this.boxes[0].title,this.$titleBar.replaceChild(this.$title,this.$titleBar.firstElementChild)):this.$titleBar.replaceChild(this.renderTitles(),this.$titleBar.firstElementChild))}renderTitles(){this.$titles=document.createElement(\"div\"),this.$titles.className=this.wrapClassName(\"titles\"),this.$titles.addEventListener(\"wheel\",(e=>{e.currentTarget.scrollBy({left:e.deltaY>0?250:-250,behavior:\"smooth\"})}),{passive:!1});const e=document.createElement(\"div\");return e.className=this.wrapClassName(\"titles-content\"),this.$titles.appendChild(e),this.boxes.forEach((t=>{const i=document.createElement(\"button\");i.className=this.wrapClassName(\"titles-tab\"),i.textContent=t.title,i.dataset.teleBoxID=t.id,i.dataset.teleTitleBarNoDblClick=\"true\",this.focusedBox&&t.id===this.focusedBox.id&&i.classList.add(this.wrapClassName(\"titles-tab-focus\")),e.appendChild(i)})),this.$titles}}class zt{constructor({root:e=document.body,prefersColorScheme:t=Je.Light,minimized:i=!1,maximized:s=!1,fence:r=!0,containerRect:n={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:o,namespace:a=\"telebox\",readonly:l=!1}={}){this.events=new f,this._sideEffect=new Xe;const{combine:h,createVal:c}=Ue(this._sideEffect);this.root=e,this.namespace=a,this.boxes$=c([]),this.topBox$=this.boxes$.derive((e=>{if(e.length>0){return e.reduce(((e,t)=>e.zIndex>t.zIndex?e:t))}}));const d=window.matchMedia(\"(prefers-color-scheme: dark)\"),u=c(!1);d&&(u.setValue(d.matches),this._sideEffect.add((()=>{const e=e=>{u.setValue(e.matches)};return d.addListener(e),()=>d.removeListener(e)})));const m=c(t);m.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setPrefersColorScheme(e,i))),i||this.events.emit(wt.PrefersColorScheme,e)})),this._darkMode$=h([u,m],(([e,t])=>\"auto\"===t?e:\"dark\"===t)),this._darkMode$.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setDarkMode(e,i))),i||this.events.emit(wt.DarkMode,e)}));const v=c(l);v.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setReadonly(e,i)))}));const p=c(i),g=c(s);g.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setMaximized(e,i))),i||this.events.emit(wt.Maximized,e)}));const b=h([p,g],(([e,t])=>e?Ke.Minimized:t?Ke.Maximized:Ke.Normal));b.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(wt.State,e)}));const x=c(r);x.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const y=c(n,He);y.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setContainerRect(e,i))),this.maxTitleBar.setContainerRect(e)}));const w=c(null===o?null:o||new Ct({visible:i,readonly:l,namespace:a}).mount(e));w.subscribe((e=>{e&&(e.setVisible(p.value),e.setReadonly(v.value),e.setDarkMode(this._darkMode$.value),this._sideEffect.add((()=>(e.onClick=()=>{v.value||p.setValue(!1)},()=>e.destroy())),\"collect-onClick\"))})),v.subscribe((e=>{var t;return null==(t=w.value)?void 0:t.setReadonly(e)})),this._darkMode$.subscribe((e=>{var t;null==(t=w.value)||t.setDarkMode(e)}));const $=()=>{var e;if(null==(e=w.value)?void 0:e.$collector){const{x:e,y:t,width:i,height:s}=w.value.$collector.getBoundingClientRect(),r=this.root.getBoundingClientRect();return{x:e-r.x,y:t-r.y,width:i,height:s}}},C=c(p.value?$():void 0);C.subscribe(((e,t,i)=>{this.boxes.forEach((t=>{t.setCollectorRect(e,i)}))})),p.subscribe(((e,t,i)=>{var s,r;null==(s=w.value)||s.setVisible(e),e&&(null==(r=w.value)?void 0:r.$collector)&&C.setValue($()),this.boxes.forEach((t=>t.setMinimized(e,i))),i||this.events.emit(wt.Minimized,e)}));const B=this.wrapClassName(\"titlebar-icon-close\"),z=e=>{var t;if(v.value)return;const i=e.target;if(i.tagName)for(let s=i;s;s=s.parentElement){if(s.classList&&s.classList.contains(B))return;const e=null==(t=s.dataset)?void 0:t.teleBoxID;if(e){const t=this.getBox(e);if(t)return this.focusBox(t),void this.makeBoxTop(t)}}};this._sideEffect.addEventListener(window,\"mousedown\",z,!0),this._sideEffect.addEventListener(window,\"touchstart\",z,!0),this.maxTitleBar=new Bt({darkMode:this.darkMode,readonly:v.value,namespace:this.namespace,state:b.value,boxes:this.boxes$.value,containerRect:y.value,onEvent:e=>{switch(e.type){case st.Maximize:g.setValue(!g.value);break;case st.Minimize:p.setValue(!0);break;case tt.Close:this.removeTopBox(),this.focusTopBox()}}}),v.subscribe((e=>this.maxTitleBar.setReadonly(e))),this._darkMode$.subscribe((e=>{this.maxTitleBar.setDarkMode(e)})),this.boxes$.reaction((e=>{this.maxTitleBar.setBoxes(e)}));Ge(this,{prefersColorScheme:m,containerRect:y,collector:w,collectorRect:C,readonly:v,fence:x,minimized:p,maximized:g}),this._state$=b,this.root.appendChild(this.maxTitleBar.render())}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}get darkMode(){return this._darkMode$.value}get state(){return this._state$.value}setState(e,t=!1){switch(e){case Ke.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case Ke.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e={},t=!0){const i=new gt(l(a({zIndex:this.topBox?this.topBox.zIndex+1:100},t?this.smartPosition(e):e),{darkMode:this.darkMode,prefersColorScheme:this.prefersColorScheme,maximized:this.maximized,minimized:this.minimized,fence:this.fence,namespace:this.namespace,containerRect:this.containerRect,readonly:this.readonly,collectorRect:this.collectorRect}));return i.mount(this.root),i.focus&&(this.focusBox(i),t&&this.makeBoxTop(i)),this.boxes$.setValue([...this.boxes,i]),i._delegateEvents.on(st.Maximize,(()=>{this.setMaximized(!this.maximized)})),i._delegateEvents.on(st.Minimize,(()=>{this.setMinimized(!0)})),i._delegateEvents.on(st.Close,(()=>{this.remove(i),this.focusTopBox()})),i._coord$.reaction(((e,t,s)=>{s||this.events.emit(wt.Move,i)})),i._size$.reaction(((e,t,s)=>{s||this.events.emit(wt.Resize,i)})),i._intrinsicCoord$.reaction(((e,t,s)=>{s||this.events.emit(wt.IntrinsicMove,i)})),i._intrinsicSize$.reaction(((e,t,s)=>{s||this.events.emit(wt.IntrinsicResize,i)})),i._visualSize$.reaction(((e,t,s)=>{s||this.events.emit(wt.VisualResize,i)})),i._zIndex$.reaction(((e,t,s)=>{this.topBox&&i.zIndex>this.topBox.zIndex&&this.topBox$.setValue(i),s||this.events.emit(wt.ZIndex,i)})),this.events.emit(wt.Created,i),i}query(e){return e?this.boxes.filter(this.teleBoxMatcher(e)):[...this.boxes]}queryOne(e){return e?this.boxes.find(this.teleBoxMatcher(e)):this.boxes[0]}update(e,t,i=!1){const s=this.boxes.find((t=>t.id===e));if(s)return this.updateBox(s,t,i)}updateAll(e,t=!1){this.boxes.forEach((i=>{this.updateBox(i,e,t)}))}remove(e,t=!1){const i=this.getBoxIndex(e);if(i>=0){const e=this.boxes.slice(),s=e.splice(i,1);return this.boxes$.setValue(e),s.forEach((e=>e.destroy())),t||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(wt.Removed,s)),s[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const t=this.boxes$.value;return this.boxes$.setValue([]),t.forEach((e=>e.destroy())),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(wt.Removed,t)),t}destroy(e=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this.removeAll(e),Object.keys(this).forEach((e=>{const t=this[e];t instanceof qe&&t.destroy()}))}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,t=!1){const i=this.getBox(e);i&&(this.boxes.forEach((e=>{if(i===e){let e=!1;i.focus||(e=!0,i.setFocus(!0,t)),e&&!t&&this.events.emit(wt.Focused,i)}else e.focus&&this.blurBox(e,t)})),this.maxTitleBar.focusBox(i))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,t=!1){const i=this.getBox(e);i&&(i.focus&&(i.setFocus(!1,t),t||this.events.emit(wt.Blurred,i)),this.maxTitleBar.focusedBox===i&&this.maxTitleBar.focusBox())}blurAll(e=!1){this.boxes.forEach((t=>{t.focus&&(t.setFocus(!1,e),e||this.events.emit(wt.Blurred,t))})),this.maxTitleBar.focusedBox&&this.maxTitleBar.focusBox()}teleBoxMatcher(e){const t=Object.keys(e);return i=>t.every((t=>e[t]===i[t]))}updateBox(e,t,i=!1){null==t.x&&null==t.y||e.move(null==t.x?e.intrinsicX:t.x,null==t.y?e.intrinsicY:t.y,i),null==t.width&&null==t.height||e.resize(null==t.width?e.intrinsicWidth:t.width,null==t.height?e.intrinsicHeight:t.height,i),null!=t.title&&(e.setTitle(t.title),this.maxTitleBar.updateTitles()),null!=t.visible&&e.setVisible(t.visible,i),null!=t.minHeight&&e.setMinHeight(t.minHeight,i),null!=t.minWidth&&e.setMinWidth(t.minWidth,i),null!=t.resizable&&e.setResizable(t.resizable,i),null!=t.draggable&&e.setDraggable(t.draggable,i),null!=t.fixRatio&&e.setFixRatio(t.fixRatio,i),null!=t.zIndex&&e.setZIndex(t.zIndex,i),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer)}smartPosition(e={}){let{x:t,y:i}=e;const{width:s=.5,height:r=.5}=e;if(null==t){let e=20;this.topBox&&(e=this.topBox.intrinsicX*this.containerRect.width+20,e>this.containerRect.width-s*this.containerRect.width&&(e=20)),t=e/this.containerRect.width}if(null==i){let e=20;this.topBox&&(e=this.topBox.intrinsicY*this.containerRect.height+20,e>this.containerRect.height-r*this.containerRect.height&&(e=20)),i=e/this.containerRect.height}return l(a({},e),{x:t,y:i,width:s,height:r})}makeBoxTop(e,t=!1){this.topBox&&e!==this.topBox&&(e.setZIndex(this.topBox.zIndex+1,t),this.topBox$.setValue(e))}getBoxIndex(e){return\"string\"==typeof e?this.boxes.findIndex((t=>t.id===e)):this.boxes.findIndex((t=>t===e))}getBox(e){return\"string\"==typeof e?this.boxes.find((t=>t.id===e)):e}}export{pt as DefaultTitleBar,Je as TELE_BOX_COLOR_SCHEME,st as TELE_BOX_DELEGATE_EVENT,tt as TELE_BOX_EVENT,wt as TELE_BOX_MANAGER_EVENT,nt as TELE_BOX_RESIZE_HANDLE,Ke as TELE_BOX_STATE,gt as TeleBox,Ct as TeleBoxCollector,at as TeleBoxDragHandleType,zt as TeleBoxManager,yt as TeleBoxReact};\n//# sourceMappingURL=telebox-insider.es.js.map\n","import { AppAttributes, Events, MIN_HEIGHT, MIN_WIDTH } from \"./constants\";\nimport { callbacks, emitter, WindowManager } from \"./index\";\nimport { debounce } from \"lodash\";\nimport { TELE_BOX_STATE, TeleBoxCollector, TeleBoxManager } from \"@netless/telebox-insider\";\nimport type { AddAppOptions, AppInitState } from \"./index\";\nimport type {\n TeleBoxManagerUpdateConfig,\n TeleBoxManagerCreateConfig,\n ReadonlyTeleBox,\n TeleBoxManagerConfig,\n TeleBoxColorScheme,\n} from \"@netless/telebox-insider\";\nimport type Emittery from \"emittery\";\nimport type { AppManager } from \"./AppManager\";\nimport type { NetlessApp } from \"./typings\";\nimport type { View } from \"white-web-sdk\";\n\nexport { TELE_BOX_STATE };\n\nexport type CreateBoxParams = {\n appId: string;\n app: NetlessApp;\n view?: View;\n emitter?: Emittery;\n options?: AddAppOptions;\n canOperate?: boolean;\n smartPosition?: boolean;\n};\n\ntype AppId = { appId: string };\n\ntype MoveBoxParams = AppId & { x: number; y: number };\n\ntype ResizeBoxParams = AppId & { width: number; height: number; skipUpdate: boolean };\n\ntype SetBoxMinSizeParams = AppId & { minWidth: number; minHeight: number };\n\ntype SetBoxTitleParams = AppId & { title: string };\n\nexport type CreateTeleBoxManagerConfig = {\n collectorContainer?: HTMLElement;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n prefersColorScheme?: TeleBoxColorScheme;\n};\n\nexport class BoxManager {\n public teleBoxManager: TeleBoxManager;\n public appBoxMap: Map<string, string> = new Map();\n private mainView = this.manager.mainView;\n\n constructor(\n private manager: AppManager,\n createTeleBoxManagerConfig?: CreateTeleBoxManagerConfig\n ) {\n this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);\n\n // 使用 _xxx$.reaction 订阅修改的值, 不管有没有 skipUpdate, 修改值都会触发回调\n this.teleBoxManager._state$.reaction(state => {\n callbacks.emit(\"boxStateChange\", state);\n emitter.emit(\"boxStateChange\", state);\n });\n\n this.teleBoxManager._darkMode$.reaction(darkMode => {\n callbacks.emit(\"darkModeChange\", darkMode);\n });\n this.teleBoxManager._prefersColorScheme$.reaction(colorScheme => {\n callbacks.emit(\"prefersColorSchemeChange\", colorScheme);\n });\n\n // events.on 的值则会根据 skipUpdate 来决定是否触发回调\n this.teleBoxManager.events.on(\"minimized\", minimized => {\n this.manager.safeSetAttributes({ minimized });\n if (minimized) {\n this.manager.store.cleanFocus();\n this.blurAllBox();\n } else {\n if (this.teleBoxManager.topBox) {\n this.manager.store.setAppFocus(this.teleBoxManager.topBox.id, true);\n this.teleBoxManager.focusBox(this.teleBoxManager.topBox.id);\n }\n }\n });\n this.teleBoxManager.events.on(\"maximized\", maximized => {\n this.manager.safeSetAttributes({ maximized });\n });\n this.teleBoxManager.events.on(\"removed\", boxes => {\n boxes.forEach(box => {\n emitter.emit(\"close\", { appId: box.id });\n });\n });\n this.teleBoxManager.events.on(\n \"intrinsic_move\",\n debounce((box: ReadonlyTeleBox): void => {\n emitter.emit(\"move\", { appId: box.id, x: box.intrinsicX, y: box.intrinsicY });\n }, 50)\n );\n this.teleBoxManager.events.on(\n \"intrinsic_resize\",\n debounce((box: ReadonlyTeleBox): void => {\n emitter.emit(\"resize\", {\n appId: box.id,\n width: box.intrinsicWidth,\n height: box.intrinsicHeight,\n });\n }, 200)\n );\n this.teleBoxManager.events.on(\"focused\", box => {\n if (box) {\n if (this.manager.canOperate) {\n emitter.emit(\"focus\", { appId: box.id });\n } else {\n this.teleBoxManager.blurBox(box.id);\n }\n }\n });\n this.teleBoxManager.events.on(\"z_index\", box => {\n this.manager.store.updateAppState(box.id, AppAttributes.ZIndex, box.zIndex);\n });\n }\n\n public get boxState() {\n return this.teleBoxManager.state;\n }\n\n public get maximized() {\n return this.teleBoxManager.maximized;\n }\n\n public get minimized() {\n return this.teleBoxManager.minimized;\n }\n\n public get darkMode() {\n return this.teleBoxManager.darkMode;\n }\n\n public get prefersColorScheme(): TeleBoxColorScheme {\n return this.teleBoxManager.prefersColorScheme;\n }\n\n public createBox(params: CreateBoxParams): void {\n if (!this.teleBoxManager) return;\n let { minwidth = MIN_WIDTH, minheight = MIN_HEIGHT } = params.app.config ?? {};\n const { width, height } = params.app.config ?? {};\n const title = params.options?.title || params.appId;\n const rect = this.teleBoxManager.containerRect;\n\n if (minwidth > 1) {\n minwidth = minwidth / rect.width;\n }\n\n if (minheight > 1) {\n minheight = minheight / rect.height;\n }\n\n const createBoxConfig: TeleBoxManagerCreateConfig = {\n title,\n minWidth: minwidth,\n minHeight: minheight,\n width,\n height,\n id: params.appId,\n };\n this.teleBoxManager.create(createBoxConfig, params.smartPosition);\n emitter.emit(`${params.appId}${Events.WindowCreated}` as any);\n }\n\n public setBoxInitState(appId: string): void {\n const box = this.teleBoxManager.queryOne({ id: appId });\n if (box) {\n if (box.state === TELE_BOX_STATE.Maximized) {\n emitter.emit(\"resize\", {\n appId: appId,\n x: box.x,\n y: box.y,\n width: box.intrinsicWidth,\n height: box.intrinsicHeight,\n });\n }\n }\n }\n\n public setupBoxManager(\n createTeleBoxManagerConfig?: CreateTeleBoxManagerConfig\n ): TeleBoxManager {\n const root = WindowManager.wrapper ? WindowManager.wrapper : document.body;\n const rect = root.getBoundingClientRect();\n const initManagerState: TeleBoxManagerConfig = {\n root: root,\n containerRect: {\n x: 0,\n y: 0,\n width: rect.width,\n height: rect.height,\n },\n fence: false,\n prefersColorScheme: createTeleBoxManagerConfig?.prefersColorScheme,\n };\n const container = createTeleBoxManagerConfig?.collectorContainer || WindowManager.wrapper;\n const teleBoxCollector = new TeleBoxCollector({\n styles: createTeleBoxManagerConfig?.collectorStyles,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n }).mount(container!);\n initManagerState.collector = teleBoxCollector;\n const manager = new TeleBoxManager(initManagerState);\n if (this.teleBoxManager) {\n this.teleBoxManager.destroy();\n }\n this.teleBoxManager = manager;\n return manager;\n }\n\n public getBox(appId: string): ReadonlyTeleBox | undefined {\n return this.teleBoxManager.queryOne({ id: appId });\n }\n\n public closeBox(appId: string, skipUpdate = false): ReadonlyTeleBox | undefined {\n return this.teleBoxManager.remove(appId, skipUpdate);\n }\n\n public boxIsFocus(appId: string): boolean | undefined {\n const box = this.getBox(appId);\n return box?.focus;\n }\n\n public getFocusBox(): ReadonlyTeleBox | undefined {\n const boxes = this.teleBoxManager.query({ focus: true });\n return boxes[0];\n }\n\n public getTopBox(): ReadonlyTeleBox | undefined {\n return this.teleBoxManager.topBox;\n }\n\n public updateBoxState(state?: AppInitState): void {\n if (!state) return;\n const box = this.getBox(state.id);\n if (box) {\n this.teleBoxManager.update(\n box.id,\n {\n x: state.x,\n y: state.y,\n width: state.width || 0.5,\n height: state.height || 0.5,\n zIndex: state.zIndex,\n },\n true\n );\n setTimeout(() => {\n if (state.focus) {\n this.teleBoxManager.focusBox(box.id, true);\n }\n if (state.maximized != null) {\n this.teleBoxManager.setMaximized(Boolean(state.maximized), true);\n }\n if (state.minimized != null) {\n this.teleBoxManager.setMinimized(Boolean(state.minimized), true);\n }\n }, 50);\n callbacks.emit(\"boxStateChange\", this.teleBoxManager.state);\n }\n }\n\n public updateManagerRect(): void {\n const rect = this.mainView.divElement?.getBoundingClientRect();\n if (rect && rect.width > 0 && rect.height > 0) {\n const containerRect = { x: 0, y: 0, width: rect.width, height: rect.height };\n this.teleBoxManager.setContainerRect(containerRect);\n this.manager.notifyContainerRectUpdate(this.teleBoxManager.containerRect);\n }\n }\n\n public moveBox({ appId, x, y }: MoveBoxParams): void {\n this.teleBoxManager.update(appId, { x, y }, true);\n }\n\n public focusBox({ appId }: AppId, skipUpdate = true): void {\n this.teleBoxManager.focusBox(appId, skipUpdate);\n }\n\n public resizeBox({ appId, width, height, skipUpdate }: ResizeBoxParams): void {\n this.teleBoxManager.update(appId, { width, height }, skipUpdate);\n }\n\n public setBoxMinSize(params: SetBoxMinSizeParams): void {\n this.teleBoxManager.update(\n params.appId,\n {\n minWidth: params.minWidth,\n minHeight: params.minHeight,\n },\n true\n );\n }\n\n public setBoxTitle(params: SetBoxTitleParams): void {\n this.teleBoxManager.update(params.appId, { title: params.title }, true);\n }\n\n public blurAllBox(): void {\n this.teleBoxManager.blurAll();\n }\n\n public updateAll(config: TeleBoxManagerUpdateConfig): void {\n this.teleBoxManager.updateAll(config);\n }\n\n public setMaximized(maximized: boolean, skipUpdate = true): void {\n this.teleBoxManager.setMaximized(maximized, skipUpdate);\n }\n\n public setMinimized(minimized: boolean, skipUpdate = true) {\n this.teleBoxManager.setMinimized(minimized, skipUpdate);\n }\n\n public focusTopBox(): void {\n const boxes = this.teleBoxManager.query();\n if (boxes.length >= 1) {\n const box = this.getTopBox();\n if (box) {\n this.focusBox({ appId: box.id }, false);\n }\n }\n }\n\n public setReadonly(readonly: boolean) {\n this.teleBoxManager.setReadonly(readonly);\n }\n\n public setPrefersColorScheme(colorScheme: TeleBoxColorScheme) {\n this.teleBoxManager.setPrefersColorScheme(colorScheme);\n }\n\n public setZIndex(id: string, zIndex: number, skipUpdate = true) {\n this.teleBoxManager.update(id, { zIndex }, skipUpdate);\n }\n\n public destroy() {\n this.teleBoxManager.destroy();\n }\n}\n","import { AnimationMode } from \"white-web-sdk\";\nimport type { Camera, View } from \"white-web-sdk\";\n\nexport class CameraStore {\n private cameras: Map<string, Camera> = new Map();\n private listeners: Map<string, any> = new Map();\n\n public setCamera(id: string, camera: Camera) {\n this.cameras.set(id, camera);\n }\n\n public getCamera(id: string) {\n return this.cameras.get(id);\n }\n\n public deleteCamera(id: string) {\n this.cameras.delete(id);\n }\n\n public recoverCamera(id: string, view?: View) {\n const camera = this.cameras.get(id);\n if (camera && view) {\n view.moveCamera({\n ...camera,\n animationMode: AnimationMode.Immediately,\n });\n }\n }\n\n public register(id: string, view: View) {\n this.onListener(id, view);\n this.setCamera(id, view.camera);\n }\n\n public unregister(id: string, view?: View) {\n if (view) {\n this.offListener(id, view);\n }\n this.listeners.delete(id);\n this.deleteCamera(id);\n }\n\n private onListener = (id: string, view: View) => {\n view.callbacks.on(\"onCameraUpdated\", this.getOrCreateListener(id));\n };\n\n private offListener = (id: string, view: View) => {\n view.callbacks.off(\"onCameraUpdated\", this.getOrCreateListener(id));\n };\n\n public async switchView(id: string, view: View | undefined, callback: () => void) {\n if (view) {\n this.offListener(id, view);\n await callback();\n this.recoverCamera(id, view);\n this.onListener(id, view);\n }\n }\n\n private getOrCreateListener(id: string) {\n let listener = this.listeners.get(id);\n if (listener) {\n return listener;\n } else {\n listener = (camera: Camera) => {\n this.setCamera(id, camera);\n };\n this.listeners.set(id, listener);\n return listener;\n }\n }\n}\n","import { callbacks, WindowManager } from \"./index\";\nimport { reaction, ViewVisionMode } from \"white-web-sdk\";\nimport { SET_SCENEPATH_DELAY } from \"./constants\";\nimport { notifyMainViewModeChange, setScenePath, setViewMode } from \"./Utils/Common\";\nimport type { View, Displayer } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\n\nexport class ViewManager {\n private views: Map<string, View> = new Map();\n private timer?: number;\n private appTimer?: number;\n\n private mainViewProxy = this.manager.mainViewProxy;\n private displayer = this.manager.displayer;\n private store = this.manager.store;\n\n constructor(private manager: AppManager) {\n setTimeout(() => {\n // 延迟初始化 focus 的 reaction\n this.manager.refresher?.add(\"focus\", () => {\n return reaction(\n () => this.store.focus,\n focus => {\n if (focus) {\n this.switchAppToWriter(focus);\n } else {\n this.switchMainViewToWriter();\n this.manager.boxManager.blurAllBox();\n }\n },\n { fireImmediately: true }\n );\n });\n }, 100);\n }\n\n public get currentScenePath(): string {\n return this.displayer.state.sceneState.scenePath;\n }\n\n public get mainView(): View {\n return this.mainViewProxy.view;\n }\n\n public createView(appId: string): View {\n const view = createView(this.displayer);\n setViewMode(view, ViewVisionMode.Freedom);\n this.views.set(appId, view);\n return view;\n }\n\n public destroyView(appId: string): void {\n const view = this.views.get(appId);\n if (view) {\n this.releaseView(view);\n this.views.delete(appId);\n }\n }\n\n private releaseView(view: View) {\n if (!(view as any).didRelease) {\n view.release();\n }\n }\n\n public getView(appId: string): View | undefined {\n return this.views.get(appId);\n }\n\n public switchMainViewToWriter(): Promise<boolean> | undefined {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n if (this.mainView.mode === ViewVisionMode.Writable) return;\n this.freedomAllViews();\n return new Promise((resolve, reject) => {\n this.timer = window.setTimeout(() => {\n try {\n const mainViewScenePath = this.store.getMainViewScenePath();\n if (mainViewScenePath) {\n this.freedomAllViews();\n setScenePath(this.manager.room, mainViewScenePath);\n this.mainViewProxy.switchViewModeToWriter();\n }\n resolve(true);\n } catch (error) {\n reject(error);\n }\n }, SET_SCENEPATH_DELAY);\n });\n }\n\n public freedomAllViews(): void {\n this.manager.appProxies.forEach(appProxy => {\n appProxy.setViewFocusScenePath();\n if (appProxy.view) {\n setViewMode(appProxy.view, ViewVisionMode.Freedom);\n }\n });\n if (this.mainView.mode === ViewVisionMode.Writable) {\n notifyMainViewModeChange(callbacks, ViewVisionMode.Freedom);\n setViewMode(this.mainView, ViewVisionMode.Freedom);\n }\n if (!this.mainView.focusScenePath) {\n this.store.setMainViewFocusPath();\n }\n }\n\n public switchAppToWriter(id: string): void {\n if (this.appTimer) {\n clearTimeout(this.appTimer);\n }\n this.freedomAllViews();\n // 为了同步端不闪烁, 需要给 room setScenePath 一个延迟\n this.appTimer = setTimeout(() => {\n const appProxy = this.manager.appProxies.get(id);\n if (appProxy) {\n if (this.manager.boxManager.minimized) return;\n appProxy.setScenePath();\n appProxy.switchToWritable();\n appProxy.focusBox();\n }\n }, SET_SCENEPATH_DELAY);\n }\n\n public destroy(): void {\n this.mainViewProxy.removeMainViewListener();\n if (WindowManager.wrapper) {\n WindowManager.wrapper.parentNode?.removeChild(WindowManager.wrapper);\n WindowManager.wrapper = undefined;\n }\n this.releaseView(this.mainView);\n }\n}\n\nexport const createView = (displayer: Displayer): View => {\n const view = displayer.views.createView();\n setDefaultCameraBound(view);\n return view;\n};\n\nexport const setDefaultCameraBound = (view: View) => {\n view.setCameraBound({\n maxContentMode: () => 10,\n minContentMode: () => 0.1,\n });\n};\n\nexport const setupWrapper = (\n root: HTMLElement\n): {\n playground: HTMLDivElement;\n wrapper: HTMLDivElement;\n sizer: HTMLDivElement;\n mainViewElement: HTMLDivElement;\n} => {\n const playground = document.createElement(\"div\");\n playground.className = \"netless-window-manager-playground\";\n\n const sizer = document.createElement(\"div\");\n sizer.className = \"netless-window-manager-sizer\";\n\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"netless-window-manager-wrapper\";\n\n const mainViewElement = document.createElement(\"div\");\n mainViewElement.className = \"netless-window-manager-main-view\";\n\n playground.appendChild(sizer);\n sizer.appendChild(wrapper);\n wrapper.appendChild(mainViewElement);\n root.appendChild(playground);\n WindowManager.wrapper = wrapper;\n\n return { playground, wrapper, sizer, mainViewElement };\n};\n","import { AnimationMode, reaction, ViewVisionMode } from \"white-web-sdk\";\nimport { callbacks, emitter } from \"./index\";\nimport { createView } from \"./ViewManager\";\nimport { debounce, isEmpty, isEqual } from \"lodash\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { notifyMainViewModeChange, setViewFocusScenePath, setViewMode } from \"./Utils/Common\";\nimport type { Camera, Size, View } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\n\nexport class MainViewProxy {\n private scale?: number;\n private cameraStore = this.manager.cameraStore;\n private store = this.manager.store;\n private started = false;\n private mainViewIsAddListener = false;\n private mainView: View;\n private viewId = \"mainView\";\n\n constructor(private manager: AppManager) {\n this.mainView = this.createMainView();\n this.moveCameraSizeByAttributes();\n this.cameraStore.register(this.viewId, this.mainView);\n emitter.once(\"mainViewMounted\").then(() => {\n setTimeout(() => {\n this.start();\n if (!this.mainViewCamera || !this.mainViewSize) {\n this.setCameraAndSize();\n }\n }, 200); // 等待 mainView 挂载完毕再进行监听,否则会触发不必要的 onSizeUpdated\n });\n emitter.on(\"playgroundSizeChange\", () => {\n this.sizeChangeHandler(this.mainViewSize);\n });\n }\n\n private get mainViewCamera() {\n return this.store.getMainViewCamera();\n }\n\n private get mainViewSize() {\n return this.store.getMainViewSize();\n }\n\n private moveCameraSizeByAttributes() {\n this.moveCameraToContian(this.mainViewSize);\n this.moveCamera(this.mainViewCamera);\n }\n\n public start() {\n if (this.started) return;\n this.sizeChangeHandler(this.mainViewSize);\n this.addCameraListener();\n this.manager.refresher?.add(Fields.MainViewCamera, this.cameraReaction);\n this.started = true;\n }\n\n public setCameraAndSize(): void {\n this.store.setMainViewCamera({ ...this.mainView.camera, id: this.manager.uid });\n this.store.setMainViewSize({ ...this.mainView.size, id: this.manager.uid });\n }\n\n private cameraReaction = () => {\n return reaction(\n () => this.mainViewCamera,\n camera => {\n if (camera && camera.id !== this.manager.uid) {\n this.moveCameraToContian(this.mainViewSize);\n this.moveCamera(camera);\n }\n },\n {\n fireImmediately: true,\n }\n );\n };\n\n private sizeChangeHandler = debounce((size: Size) => {\n if (size) {\n this.moveCameraToContian(size);\n this.moveCamera(this.mainViewCamera);\n }\n }, 30);\n\n public get view(): View {\n return this.mainView;\n }\n\n public get cameraState() {\n return { ...this.view.camera, ...this.view.size };\n }\n\n public createMainView(): View {\n const mainView = createView(this.manager.displayer);\n const mainViewScenePath = this.store.getMainViewScenePath();\n if (mainViewScenePath) {\n setViewFocusScenePath(mainView, mainViewScenePath);\n }\n if (!this.store.focus) {\n this.switchViewModeToWriter();\n }\n return mainView;\n }\n\n private onCameraUpdatedByDevice = (camera: Camera) => {\n this.store.setMainViewCamera({ ...camera, id: this.manager.uid });\n if (!isEqual(this.mainViewSize, { ...this.mainView.size, id: this.manager.uid })) {\n this.setMainViewSize(this.view.size);\n }\n };\n\n public addMainViewListener(): void {\n if (this.mainViewIsAddListener) return;\n if (this.view.divElement) {\n this.view.divElement.addEventListener(\"click\", this.mainViewClickListener);\n this.view.divElement.addEventListener(\"touchend\", this.mainViewClickListener);\n this.mainViewIsAddListener = true;\n }\n }\n\n public removeMainViewListener(): void {\n if (this.view.divElement) {\n this.view.divElement.removeEventListener(\"click\", this.mainViewClickListener);\n this.view.divElement.removeEventListener(\"touchend\", this.mainViewClickListener);\n }\n }\n\n private mainViewClickListener = () => {\n this.mainViewClickHandler();\n };\n\n public async mainViewClickHandler(): Promise<void> {\n if (!this.manager.canOperate) return;\n if (this.view.mode === ViewVisionMode.Writable) return;\n this.store.cleanFocus();\n this.manager.boxManager.blurAllBox();\n }\n\n public setMainViewSize = debounce(size => {\n this.store.setMainViewSize({ ...size, id: this.manager.uid });\n }, 50);\n\n private addCameraListener() {\n this.view.callbacks.on(\"onCameraUpdatedByDevice\", this.onCameraUpdatedByDevice);\n this.view.callbacks.on(\"onCameraUpdated\", this.onCameraOrSizeUpdated);\n this.view.callbacks.on(\"onSizeUpdated\", this.onCameraOrSizeUpdated);\n }\n\n private removeCameraListener() {\n this.view.callbacks.off(\"onCameraUpdatedByDevice\", this.onCameraUpdatedByDevice);\n this.view.callbacks.off(\"onCameraUpdated\", this.onCameraOrSizeUpdated);\n this.view.callbacks.off(\"onSizeUpdated\", this.onCameraOrSizeUpdated);\n }\n\n private onCameraOrSizeUpdated = () => {\n callbacks.emit(\"cameraStateChange\", this.cameraState);\n };\n\n public switchViewModeToWriter(): void {\n if (!this.manager.canOperate) return;\n if (this.view) {\n if (this.view.mode === ViewVisionMode.Writable) return;\n this.cameraStore.switchView(this.viewId, this.mainView, () => {\n notifyMainViewModeChange(callbacks, ViewVisionMode.Writable);\n setViewMode(this.view, ViewVisionMode.Writable);\n });\n }\n }\n\n public moveCameraToContian(size: Size): void {\n if (!isEmpty(size)) {\n this.view.moveCameraToContain({\n width: size.width,\n height: size.height,\n originX: -size.width / 2,\n originY: -size.height / 2,\n animationMode: AnimationMode.Immediately,\n });\n this.scale = this.view.camera.scale;\n }\n }\n\n public moveCamera(camera: Camera): void {\n if (!isEmpty(camera)) {\n if (isEqual(camera, this.view.camera)) return;\n const { centerX, centerY, scale } = camera;\n const needScale = scale * (this.scale || 1);\n this.view.moveCamera({\n centerX: centerX,\n centerY: centerY,\n scale: needScale,\n animationMode: AnimationMode.Immediately,\n });\n }\n }\n\n public stop() {\n this.removeCameraListener();\n this.manager.refresher?.remove(Fields.MainViewCamera);\n this.manager.refresher?.remove(Fields.MainViewSize);\n this.started = false;\n }\n\n public destroy() {\n this.stop();\n this.cameraStore.unregister(this.viewId, this.mainView);\n }\n}\n","import { listenUpdated, unlistenUpdated, reaction, UpdateEventKind } from \"white-web-sdk\";\nimport type { AkkoObjectUpdatedProperty , AkkoObjectUpdatedListener } from \"white-web-sdk\";\n\n// 兼容 13 和 14 版本 SDK\nexport const onObjectByEvent = (event: UpdateEventKind) => {\n return (object: any, func: () => void) => {\n if (object === undefined) return;\n if (listenUpdated) {\n const listener = (events: readonly AkkoObjectUpdatedProperty<any>[]) => {\n const kinds = events.map(e => e.kind);\n if (kinds.includes(event)) {\n func();\n }\n }\n listenUpdated(object, listener);\n func();\n return () => unlistenUpdated(object, listener);\n } else {\n return reaction(\n () => object,\n () => {\n func();\n }, {\n fireImmediately: true,\n }\n )\n }\n }\n}\n\nexport const safeListenPropsUpdated = <T>(\n getProps: () => T,\n callback: AkkoObjectUpdatedListener<T>\n ) => {\n let disposeListenUpdated: (() => void) | null = null;\n const disposeReaction = reaction(\n getProps,\n () => {\n if (disposeListenUpdated) {\n disposeListenUpdated();\n disposeListenUpdated = null;\n }\n const props = getProps();\n disposeListenUpdated = () => unlistenUpdated(props, callback);\n listenUpdated(props, callback);\n },\n { fireImmediately: true }\n );\n\n return () => {\n disposeListenUpdated?.();\n disposeReaction();\n };\n}\n\nexport const onObjectRemoved = onObjectByEvent(UpdateEventKind.Removed);\nexport const onObjectInserted = onObjectByEvent(UpdateEventKind.Inserted);\n","import { isFunction } from 'lodash';\nimport { RoomPhase } from 'white-web-sdk';\nimport type { Room } from \"white-web-sdk\";\nimport type { AppManager } from './AppManager';\nimport { log } from './Utils/log';\n\n// 白板重连之后会刷新所有的对象,导致 listener 失效, 所以这里在重连之后重新对所有对象进行监听\nexport class ReconnectRefresher {\n private phase?: RoomPhase;\n private room: Room | undefined;\n private reactors: Map<string, any> = new Map();\n private disposers: Map<string, any> = new Map();\n\n constructor(room: Room | undefined, private manager: AppManager) {\n this.room = room;\n this.phase = room?.phase;\n room?.callbacks.on(\"onPhaseChanged\", this.onPhaseChanged);\n }\n\n private onPhaseChanged = (phase: RoomPhase) => {\n if (phase === RoomPhase.Connected && this.phase === RoomPhase.Reconnecting) {\n this.onReconnected();\n }\n this.phase = phase;\n }\n\n private onReconnected = () => {\n log(\"onReconnected refresh reactors\");\n this.releaseDisposers();\n this.reactors.forEach((func, id) => {\n if (isFunction(func)) {\n this.disposers.set(id, func());\n }\n });\n this.manager.notifyReconnected();\n }\n\n private releaseDisposers() {\n this.disposers.forEach(disposer => {\n if (isFunction(disposer)) {\n disposer();\n }\n })\n this.disposers.clear();\n }\n\n public add(id: string, func: any) {\n if (isFunction(func)) {\n this.reactors.set(id, func);\n this.disposers.set(id, func());\n }\n }\n\n public remove(id: string) {\n if (this.reactors.has(id)) {\n this.reactors.delete(id);\n }\n const disposer = this.disposers.get(id);\n if (disposer) {\n if (isFunction(disposer)) {\n disposer();\n }\n this.disposers.delete(id);\n }\n }\n\n public destroy() {\n this.room?.callbacks.off(\"onPhaseChanged\", this.onPhaseChanged);\n this.releaseDisposers();\n }\n}\n","import pRetry from \"p-retry\";\nimport {\n AppAttributes,\n AppStatus,\n Events,\n MagixEventName\n } from \"./constants\";\nimport { AppListeners } from \"./AppListener\";\nimport { AppProxy } from \"./AppProxy\";\nimport { AttributesDelegate } from \"./AttributesDelegate\";\nimport {\n autorun,\n isPlayer,\n isRoom,\n ScenePathType,\n ViewVisionMode\n } from \"white-web-sdk\";\nimport { BoxManager } from \"./BoxManager\";\nimport { callbacks, emitter } from \"./index\";\nimport { CameraStore } from \"./Utils/CameraStore\";\nimport { genAppId, makeValidScenePath, setScenePath } from \"./Utils/Common\";\nimport { log } from \"./Utils/log\";\nimport { MainViewProxy } from \"./MainView\";\nimport { onObjectRemoved, safeListenPropsUpdated } from \"./Utils/Reactive\";\nimport { ReconnectRefresher } from \"./ReconnectRefresher\";\nimport { ViewManager } from \"./ViewManager\";\nimport type { Displayer, DisplayerState, Room } from \"white-web-sdk\";\nimport type { CreateTeleBoxManagerConfig } from \"./BoxManager\";\nimport type {\n AddAppParams,\n BaseInsertParams,\n WindowManager,\n TeleBoxRect,\n EmitterEvent,\n} from \"./index\";\nexport class AppManager {\n public displayer: Displayer;\n public boxManager: BoxManager;\n public cameraStore: CameraStore;\n public viewManager: ViewManager;\n public appProxies: Map<string, AppProxy> = new Map();\n public appStatus: Map<string, AppStatus> = new Map();\n public store = new AttributesDelegate(this);\n public mainViewProxy: MainViewProxy;\n public refresher?: ReconnectRefresher;\n public isReplay = this.windowManger.isReplay;\n\n private appListeners: AppListeners;\n\n constructor(public windowManger: WindowManager, options: CreateTeleBoxManagerConfig) {\n this.displayer = windowManger.displayer;\n this.cameraStore = new CameraStore();\n this.mainViewProxy = new MainViewProxy(this);\n this.viewManager = new ViewManager(this);\n this.boxManager = new BoxManager(this, options);\n this.appListeners = new AppListeners(this);\n this.displayer.callbacks.on(this.eventName, this.displayerStateListener);\n this.appListeners.addListeners();\n\n this.refresher = new ReconnectRefresher(this.room, this);\n\n emitter.once(\"onCreated\").then(() => this.onCreated());\n\n if (isPlayer(this.displayer)) {\n emitter.on(\"seek\", time => {\n this.appProxies.forEach(appProxy => {\n appProxy.onSeek(time);\n });\n this.attributesUpdateCallback(this.attributes.apps);\n this.onAppDelete(this.attributes.apps);\n });\n }\n }\n\n private async onCreated() {\n await this.attributesUpdateCallback(this.attributes.apps);\n this.boxManager.updateManagerRect();\n emitter.onAny(this.boxEventListener);\n this.refresher?.add(\"apps\", () => {\n return safeListenPropsUpdated(() => this.attributes.apps, () => {\n this.attributesUpdateCallback(this.attributes.apps);\n });\n });\n this.refresher?.add(\"appsClose\", () => {\n return onObjectRemoved(this.attributes.apps, () => {\n this.onAppDelete(this.attributes.apps);\n });\n });\n this.refresher?.add(\"maximized\", () => {\n return autorun(() => {\n const maximized = this.attributes.maximized;\n if (this.boxManager.maximized !== maximized) {\n this.boxManager.setMaximized(Boolean(maximized));\n }\n });\n });\n this.refresher?.add(\"minimized\", () => {\n return autorun(() => {\n const minimized = this.attributes.minimized;\n if (this.boxManager.minimized !== minimized) {\n if (minimized === true) {\n this.boxManager.blurAllBox();\n }\n setTimeout(() => {\n this.boxManager.setMinimized(Boolean(minimized));\n }, 0);\n }\n });\n });\n if (!this.attributes.apps || Object.keys(this.attributes.apps).length === 0) {\n const mainScenePath = this.store.getMainViewScenePath();\n if (!mainScenePath) return;\n const sceneState = this.displayer.state.sceneState;\n if (sceneState.scenePath !== mainScenePath) {\n setScenePath(this.room, mainScenePath);\n }\n }\n this.displayerWritableListener(!this.room?.isWritable);\n this.displayer.callbacks.on(\"onEnableWriteNowChanged\", this.displayerWritableListener);\n }\n\n /**\n * 插件更新 attributes 时的回调\n *\n * @param {*} attributes\n * @memberof WindowManager\n */\n public async attributesUpdateCallback(apps: any) {\n if (apps) {\n for (const id in apps) {\n if (!this.appProxies.has(id) && !this.appStatus.has(id)) {\n const app = apps[id];\n\n pRetry(async () => {\n this.appStatus.set(id, AppStatus.StartCreate);\n // 防御 appAttributes 有可能为 undefined 的情况,这里做一个重试\n const appAttributes = this.attributes[id];\n if (!appAttributes) {\n throw new Error(\"appAttributes is undefined\");\n }\n await this.baseInsertApp(\n {\n kind: app.kind,\n options: app.options,\n isDynamicPPT: app.isDynamicPPT,\n },\n id,\n false\n );\n this.focusByAttributes(apps);\n }, { retries: 3 }).catch(err => {\n console.warn(`[WindowManager]: Insert App Error`, err);\n this.appStatus.delete(id);\n });\n }\n }\n }\n }\n\n private onAppDelete = (apps: any) => {\n const ids = Object.keys(apps);\n this.appProxies.forEach((appProxy, id) => {\n if (!ids.includes(id)) {\n appProxy.destroy(true, false, true);\n }\n });\n };\n\n public bindMainView(divElement: HTMLDivElement, disableCameraTransform: boolean) {\n const mainView = this.mainViewProxy.view;\n mainView.disableCameraTransform = disableCameraTransform;\n mainView.divElement = divElement;\n if (!mainView.focusScenePath) {\n this.store.setMainViewFocusPath();\n }\n if (this.store.focus === undefined && mainView.mode !== ViewVisionMode.Writable) {\n this.viewManager.switchMainViewToWriter();\n }\n this.mainViewProxy.addMainViewListener();\n emitter.emit(\"mainViewMounted\");\n }\n\n public async addApp(params: AddAppParams, isDynamicPPT: boolean): Promise<string | undefined> {\n log(\"addApp\", params);\n const { appId, needFocus } = await this.beforeAddApp(params, isDynamicPPT);\n const appProxy = await this.baseInsertApp(params, appId, true, needFocus);\n this.afterAddApp(appProxy);\n return appProxy?.id;\n }\n\n private async beforeAddApp(params: AddAppParams, isDynamicPPT: boolean) {\n const appId = await genAppId(params.kind);\n this.appStatus.set(appId, AppStatus.StartCreate);\n const attrs = params.attributes ?? {};\n this.safeUpdateAttributes([appId], attrs);\n this.store.setupAppAttributes(params, appId, isDynamicPPT);\n const needFocus = !this.boxManager.minimized;\n if (needFocus) {\n this.store.setAppFocus(appId, true);\n }\n return { appId, needFocus };\n }\n\n private afterAddApp(appProxy: AppProxy | undefined) {\n if (appProxy && appProxy.box) {\n const box = appProxy.box;\n emitter.emit(\"move\", {\n appId: appProxy.id,\n x: box?.intrinsicX,\n y: box?.intrinsicY,\n });\n this.store.updateAppState(appProxy.id, AppAttributes.ZIndex, box.zIndex);\n }\n if (this.boxManager.minimized) {\n this.boxManager.setMinimized(false, false);\n }\n }\n\n public async closeApp(appId: string) {\n const appProxy = this.appProxies.get(appId);\n if (appProxy) {\n appProxy.destroy(true, true, false);\n }\n }\n\n private async baseInsertApp(\n params: BaseInsertParams,\n appId: string,\n isAddApp: boolean,\n focus?: boolean\n ) {\n if (this.appProxies.has(appId)) {\n console.warn(\"[WindowManager]: app duplicate exists and cannot be created again\");\n return;\n }\n const appProxy = new AppProxy(params, this, appId, isAddApp);\n if (appProxy) {\n await appProxy.baseInsertApp(focus);\n this.appStatus.delete(appId);\n return appProxy;\n } else {\n this.appStatus.delete(appId);\n throw new Error(\"[WindowManger]: initialize AppProxy failed\");\n }\n }\n\n private displayerStateListener = (state: Partial<DisplayerState>) => {\n const sceneState = state.sceneState;\n if (sceneState) {\n const scenePath = sceneState.scenePath;\n this.appProxies.forEach(appProxy => {\n if (appProxy.scenePath && scenePath.startsWith(appProxy.scenePath)) {\n appProxy.emitAppSceneStateChange(sceneState);\n appProxy.setFullPath(scenePath);\n }\n });\n }\n\n this.appProxies.forEach(appProxy => {\n appProxy.appEmitter.emit(\"roomStateChange\", state);\n });\n emitter.emit(\"observerIdChange\", this.displayer.observerId);\n };\n\n private displayerWritableListener = (isReadonly: boolean) => {\n const isWritable = !isReadonly;\n const isManualWritable =\n this.windowManger.readonly === undefined || this.windowManger.readonly === false;\n if (this.windowManger.readonly === undefined) {\n this.boxManager.setReadonly(isReadonly);\n } else {\n this.boxManager.setReadonly(!(isWritable && isManualWritable));\n }\n this.appProxies.forEach(appProxy => {\n appProxy.emitAppIsWritableChange();\n });\n if (isWritable === true) {\n if (!this.store.focus) {\n this.mainViewProxy.switchViewModeToWriter();\n }\n this.mainView.disableCameraTransform = false;\n } else {\n this.mainView.disableCameraTransform = true;\n }\n };\n\n private get eventName() {\n return isRoom(this.displayer) ? \"onRoomStateChanged\" : \"onPlayerStateChanged\";\n }\n\n public get attributes() {\n return this.windowManger.attributes;\n }\n\n public get canOperate() {\n return this.windowManger.canOperate;\n }\n\n public get room() {\n return isRoom(this.displayer) ? (this.displayer as Room) : undefined;\n }\n\n public get mainView() {\n return this.mainViewProxy.view;\n }\n\n public get focusApp() {\n if (this.store.focus) {\n return this.appProxies.get(this.store.focus);\n }\n }\n\n public get uid() {\n return this.room?.uid || \"\";\n }\n\n public findMemberByUid = (uid: string) => {\n const roomMembers = this.room?.state.roomMembers;\n return roomMembers?.find(member => member.payload?.uid === uid);\n }\n\n public safeSetAttributes(attributes: any) {\n this.windowManger.safeSetAttributes(attributes);\n }\n\n public safeUpdateAttributes(keys: string[], value: any) {\n this.windowManger.safeUpdateAttributes(keys, value);\n }\n\n public async setMainViewScenePath(scenePath: string) {\n if (this.room) {\n const scenePathType = this.displayer.scenePathType(scenePath);\n if (scenePathType === ScenePathType.None) {\n throw new Error(`[WindowManager]: ${scenePath} not valid scene`);\n } else if (scenePathType === ScenePathType.Page) {\n await this._setMainViewScenePath(scenePath);\n } else if (scenePathType === ScenePathType.Dir) {\n const validScenePath = makeValidScenePath(this.displayer, scenePath);\n await this._setMainViewScenePath(validScenePath);\n }\n }\n }\n\n private async _setMainViewScenePath(scenePath: string) {\n this.safeSetAttributes({ _mainScenePath: scenePath });\n await this.viewManager.switchMainViewToWriter();\n setScenePath(this.room, scenePath);\n this.store.setMainViewFocusPath();\n this.dispatchInternalEvent(Events.SetMainViewScenePath, { nextScenePath: scenePath });\n }\n\n public async setMainViewSceneIndex(index: number) {\n if (this.room) {\n this.safeSetAttributes({ _mainSceneIndex: index });\n await this.viewManager.switchMainViewToWriter();\n this.room.setSceneIndex(index);\n const nextScenePath = this.room.state.sceneState.scenePath;\n this.store.setMainViewScenePath(nextScenePath);\n this.store.setMainViewFocusPath();\n this.dispatchInternalEvent(Events.SetMainViewScenePath, { nextScenePath });\n }\n }\n\n public getAppInitPath(appId: string): string | undefined {\n const attrs = this.store.getAppAttributes(appId);\n if (attrs) {\n return attrs?.options?.scenePath;\n }\n }\n\n public safeDispatchMagixEvent(event: string, payload: any) {\n if (this.canOperate) {\n (this.displayer as Room).dispatchMagixEvent(event, payload);\n }\n }\n\n private boxEventListener = (eventName: keyof EmitterEvent, payload: any) => {\n switch (eventName) {\n case \"move\": {\n this.dispatchInternalEvent(Events.AppMove, payload);\n this.store.updateAppState(payload.appId, AppAttributes.Position, {\n x: payload.x,\n y: payload.y,\n });\n break;\n }\n case \"focus\": {\n this.windowManger.safeSetAttributes({ focus: payload.appId });\n break;\n }\n case \"resize\": {\n if (payload.width && payload.height) {\n this.dispatchInternalEvent(Events.AppResize, payload);\n this.store.updateAppState(payload.appId, AppAttributes.Size, {\n width: payload.width,\n height: payload.height,\n });\n }\n break;\n }\n case \"close\": {\n const appProxy = this.appProxies.get(payload.appId);\n if (appProxy) {\n appProxy.destroy(false, true, payload.error);\n }\n break;\n }\n case \"boxStateChange\": {\n this.dispatchInternalEvent(Events.AppBoxStateChange, payload);\n break;\n }\n default:\n break;\n }\n };\n\n public focusByAttributes(apps: any) {\n if (apps && Object.keys(apps).length === this.boxManager.appBoxMap.size) {\n const focusAppId = this.store.focus;\n if (focusAppId) {\n this.boxManager.focusBox({ appId: focusAppId });\n }\n }\n }\n\n public async notifyReconnected() {\n const appProxies = Array.from(this.appProxies.values());\n const reconnected = appProxies.map(appProxy => {\n return appProxy.onReconnected();\n });\n await Promise.all(reconnected);\n emitter.emit(\"onReconnected\");\n }\n\n public notifyContainerRectUpdate(rect: TeleBoxRect) {\n this.appProxies.forEach(appProxy => {\n appProxy.appEmitter.emit(\"containerRectUpdate\", rect);\n });\n }\n\n public dispatchInternalEvent(event: Events, payload: any) {\n this.safeDispatchMagixEvent(MagixEventName, {\n eventName: event,\n payload: payload,\n });\n }\n\n public destroy() {\n this.displayer.callbacks.off(this.eventName, this.displayerStateListener);\n this.displayer.callbacks.off(\"onEnableWriteNowChanged\", this.displayerWritableListener);\n this.appListeners.removeListeners();\n emitter.offAny(this.boxEventListener);\n emitter.clearListeners();\n if (this.appProxies.size) {\n this.appProxies.forEach(appProxy => {\n appProxy.destroy(true, false, true);\n });\n }\n this.viewManager.destroy();\n this.boxManager.destroy();\n this.refresher?.destroy();\n this.mainViewProxy.destroy();\n callbacks.clearListeners();\n }\n}\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not <head>\n let children = target.childNodes;\n // If target is <head>, there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '&quot;',\n \"'\": '&#39;',\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : context || []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : options.context || []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.42.4' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","<script lang=\"ts\">\n import { isEmpty } from \"lodash\";\n\n export let cursorName: string;\n export let tagName: string;\n export let backgroundColor: string;\n export let appliance: string;\n export let x: number;\n export let y: number;\n export let src: string;\n export let visible: boolean;\n export let avatar: string;\n export let theme: string;\n export let color: string;\n export let cursorTagBackgroundColor: string;\n export let opacity: number;\n\n $: hasName = !isEmpty(cursorName);\n $: hasTagName = !isEmpty(tagName);\n $: hasAvatar = !isEmpty(avatar);\n $: display = visible ? \"initial\" : \"none\";\n\n const computedAvatarStyle = () => {\n return Object.entries({\n width: (hasName ? 19 : 28) + \"px\",\n height: (hasName ? 19 : 28) + \"px\",\n position: hasName ? \"initial\" : \"absolute\",\n \"border-color\": hasName ? \"white\" : backgroundColor,\n \"margin-right\": (hasName ? 4 : 0) + \"px\",\n })\n .map(([key, v]) => `${key}: ${v}`)\n .join(\";\");\n };\n</script>\n\n<div\n class=\"netless-window-manager-cursor-mid\"\n style=\"transform: translateX({x}px) translateY({y}px);display: {display}\"\n>\n <div class=\"netless-window-manager-cursor-name\">\n <div\n class={theme}\n style=\"background-color: {backgroundColor};color: {color};opacity: {opacity}\"\n >\n {#if hasAvatar}\n <img\n class=\"netless-window-manager-cursor-selector-avatar\"\n style={computedAvatarStyle()}\n src={avatar}\n alt=\"avatar\"\n />\n {/if}\n <span style=\"overflow: hidden;white-space: nowrap;text-overflow: ellipsis;max-width: 80px\">{cursorName}</span>\n {#if hasTagName}\n <span class=\"netless-window-manager-cursor-tag-name\" style=\"background-color: {cursorTagBackgroundColor}\">\n {tagName}\n </span>\n {/if}\n </div>\n </div>\n <div class=\"cursor-image-wrapper\">\n <img class=\"netless-window-manager-cursor-{appliance}-image\" {src} alt={appliance} />\n </div>\n</div>\n","import { ApplianceNames } from \"white-web-sdk\";\nimport pencil from \"../image/pencil-cursor.png\";\nimport selector from \"../image/selector-cursor.png\";\nimport eraser from \"../image/eraser-cursor.png\";\nimport shape from \"../image/shape-cursor.svg\";\nimport text from \"../image/text-cursor.svg\";\n\nexport const ApplianceMap: {\n [key: string]: string;\n} = {\n [ApplianceNames.pencil]: pencil,\n [ApplianceNames.selector]: selector,\n [ApplianceNames.eraser]: eraser,\n [ApplianceNames.shape]: shape,\n [ApplianceNames.text]: text,\n};\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","import App from \"./Cursor.svelte\";\nimport { ApplianceMap } from \"./icons\";\nimport { ApplianceNames } from \"white-web-sdk\";\nimport { omit } from \"lodash\";\nimport type { Position } from \"../AttributesDelegate\";\nimport type { RoomMember } from \"white-web-sdk\";\nimport type { CursorManager } from \"./index\";\nimport type { SvelteComponent } from \"svelte\";\nimport type { AppManager } from \"../AppManager\";\n\nexport type Payload = {\n [key: string]: any;\n};\n\nexport class Cursor {\n private member?: RoomMember;\n private timer?: number;\n private component?: SvelteComponent;\n\n constructor(\n private manager: AppManager,\n private memberId: string,\n private cursorManager: CursorManager,\n private wrapper?: HTMLElement\n ) {\n this.setMember();\n this.createCursor();\n this.autoHidden();\n }\n\n public move = (position: Position) => {\n if (position.type === \"main\") {\n const rect = this.cursorManager.wrapperRect;\n if (this.component && rect) {\n this.autoHidden();\n this.moveCursor(position, rect, this.manager.mainView);\n }\n } else {\n const focusView = this.cursorManager.focusView;\n const viewRect = focusView?.divElement?.getBoundingClientRect();\n const viewCamera = focusView?.camera;\n if (focusView && viewRect && viewCamera && this.component) {\n this.autoHidden();\n this.moveCursor(position, viewRect, focusView);\n }\n }\n };\n\n public leave = () => {\n this.hide();\n };\n\n private moveCursor(cursor: Position, rect: DOMRect, view: any) {\n const { x, y } = cursor;\n const point = view?.screen.convertPointToScreen(x, y);\n if (point) {\n const translateX = point.x + rect.x - 2;\n const translateY = point.y + rect.y - 18;\n if (point.x < 0 || point.x > rect.width || point.y < 0 || point.y > rect.height) {\n this.component?.$set({ visible: false });\n } else {\n this.component?.$set({ visible: true, x: translateX, y: translateY });\n }\n }\n }\n\n public get memberApplianceName() {\n return this.member?.memberState?.currentApplianceName;\n }\n\n public get memberColor() {\n const rgb = this.member?.memberState?.strokeColor.join(\",\");\n return `rgb(${rgb})`;\n }\n\n private get payload(): Payload | undefined {\n return this.member?.payload;\n }\n\n public get memberCursorName() {\n return this.payload?.nickName || this.payload?.cursorName || this.memberId;\n }\n\n private get memberTheme() {\n if (this.payload?.theme) {\n return \"netless-window-manager-cursor-inner-mellow\";\n } else {\n return \"netless-window-manager-cursor-inner\";\n }\n }\n\n private get memberCursorTextColor() {\n return this.payload?.cursorTextColor || \"#FFFFFF\";\n }\n\n private get memberCursorTagBackgroundColor() {\n return this.payload?.cursorTagBackgroundColor || this.memberColor;\n }\n\n private get memberAvatar() {\n return this.payload?.avatar;\n }\n\n private get memberOpacity() {\n if (!this.memberCursorName && !this.memberAvatar) {\n return 0;\n } else {\n return 1;\n }\n }\n\n private autoHidden() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = window.setTimeout(() => {\n this.hide();\n }, 1000 * 10); // 10 秒钟自动隐藏\n }\n\n private async createCursor() {\n if (this.member && this.wrapper) {\n this.component = new App({\n target: document.documentElement,\n props: this.initProps(),\n });\n }\n }\n\n private initProps() {\n return {\n x: 0,\n y: 0,\n appliance: this.memberApplianceName,\n avatar: this.memberAvatar,\n src: this.getIcon(),\n visible: false,\n backgroundColor: this.memberColor,\n cursorName: this.memberCursorName,\n theme: this.memberTheme,\n color: this.memberCursorTextColor,\n cursorTagBackgroundColor: this.memberCursorTagBackgroundColor,\n opacity: this.memberOpacity,\n };\n }\n\n private getIcon() {\n if (this.member) {\n const applianceSrc = ApplianceMap[this.memberApplianceName || ApplianceNames.shape];\n return applianceSrc || ApplianceMap[ApplianceNames.shape];\n }\n }\n\n public setMember() {\n this.member = this.manager.findMemberByUid(this.memberId);\n this.updateComponent();\n }\n\n private updateComponent() {\n this.component?.$set(omit(this.initProps(), [\"x\", \"y\"]));\n }\n\n public destroy() {\n if (this.component) {\n this.component.$destroy();\n }\n this.cursorManager.cursorInstances.delete(this.memberId);\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n public hide() {\n if (this.component) {\n this.component.$set({ visible: false });\n this.destroy();\n }\n }\n}\n","import { Cursor } from \"./Cursor\";\nimport { CursorState, Events } from \"../constants\";\nimport { emitter, WindowManager } from \"../index\";\nimport { throttle } from \"lodash\";\nimport type { CursorMovePayload } from \"../index\";\nimport type { PositionType } from \"../AttributesDelegate\";\nimport type { Point, RoomMember, View } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\n\nexport type EventType = {\n type: PositionType;\n id?: string;\n};\n\nexport type MoveCursorParams = {\n uid: string;\n x: number;\n y: number;\n};\nexport class CursorManager {\n public containerRect?: DOMRect;\n public wrapperRect?: DOMRect;\n public cursorInstances: Map<string, Cursor> = new Map();\n public roomMembers?: readonly RoomMember[];\n private mainViewElement?: HTMLDivElement;\n private store = this.manager.store;\n\n constructor(private manager: AppManager) {\n this.roomMembers = this.manager.room?.state.roomMembers;\n const wrapper = WindowManager.wrapper;\n if (wrapper) {\n wrapper.addEventListener(\"pointerenter\", this.mouseMoveListener);\n wrapper.addEventListener(\"pointermove\", this.mouseMoveListener);\n wrapper.addEventListener(\"pointerleave\", this.mouseLeaveListener);\n this.wrapperRect = wrapper.getBoundingClientRect();\n }\n emitter.on(\"cursorMove\", payload => {\n let cursorInstance = this.cursorInstances.get(payload.uid);\n if (!cursorInstance) {\n cursorInstance = new Cursor(this.manager, payload.uid, this, wrapper);\n this.cursorInstances.set(payload.uid, cursorInstance);\n }\n if (payload.state === CursorState.Leave) {\n cursorInstance.leave();\n } else {\n cursorInstance.move(payload.position);\n }\n });\n }\n\n public setMainViewDivElement(div: HTMLDivElement) {\n this.mainViewElement = div;\n }\n\n public get boxState() {\n return this.store.getBoxState();\n }\n\n public get focusView() {\n return this.manager.focusApp?.view;\n }\n\n private mouseMoveListener = throttle((event: MouseEvent) => {\n this.updateCursor(this.getType(event), event.clientX, event.clientY);\n }, 16);\n\n private updateCursor(event: EventType, clientX: number, clientY: number) {\n if (this.wrapperRect && this.manager.canOperate) {\n const view = event.type === \"main\" ? this.manager.mainView : this.focusView;\n const point = this.getPoint(view, clientX, clientY);\n if (point) {\n this.manager.dispatchInternalEvent(Events.CursorMove, {\n uid: this.manager.uid,\n position: {\n x: point.x,\n y: point.y,\n type: event.type,\n },\n } as CursorMovePayload);\n }\n }\n }\n\n private getPoint = (\n view: View | undefined,\n clientX: number,\n clientY: number\n ): Point | undefined => {\n const rect = view?.divElement?.getBoundingClientRect();\n if (rect) {\n const point = view?.convertToPointInWorld({\n x: clientX - rect.x,\n y: clientY - rect.y,\n });\n return point;\n }\n };\n\n /**\n * 因为窗口内框在不同分辨率下的大小不一样,所以这里通过来鼠标事件的 target 来判断是在主白板还是在 APP 中\n */\n private getType = (event: MouseEvent | Touch): EventType => {\n const target = event.target as HTMLElement;\n const focusApp = this.manager.focusApp;\n switch (target.parentElement) {\n case this.mainViewElement: {\n return { type: \"main\" };\n }\n case focusApp?.view?.divElement: {\n return { type: \"app\" };\n }\n default: {\n return { type: \"main\" };\n }\n }\n };\n\n private mouseLeaveListener = () => {\n this.hideCursor(this.manager.uid);\n this.manager.dispatchInternalEvent(Events.CursorMove, {\n uid: this.manager.uid,\n state: CursorState.Leave,\n } as CursorMovePayload);\n };\n\n public updateContainerRect() {\n this.containerRect = WindowManager.container?.getBoundingClientRect();\n this.wrapperRect = WindowManager.wrapper?.getBoundingClientRect();\n }\n\n public deleteCursor(uid: string) {\n const cursor = this.cursorInstances.get(uid);\n if (cursor) {\n cursor.destroy();\n }\n }\n\n public hideCursor(uid: string) {\n const cursor = this.cursorInstances.get(uid);\n if (cursor) {\n cursor.hide();\n }\n }\n\n public destroy() {\n const wrapper = WindowManager.wrapper;\n if (wrapper) {\n wrapper.removeEventListener(\"pointerenter\", this.mouseMoveListener);\n wrapper.removeEventListener(\"pointermove\", this.mouseMoveListener);\n wrapper.removeEventListener(\"pointerleave\", this.mouseLeaveListener);\n }\n if (this.cursorInstances.size) {\n this.cursorInstances.forEach(cursor => cursor.destroy());\n this.cursorInstances.clear();\n }\n this.manager.refresher?.remove(\"cursors\");\n }\n}\n","import { isBoolean } from 'lodash';\nimport { WhiteWebSdk } from 'white-web-sdk';\nimport { WindowManager } from './index';\nimport type { MountParams } from \"./index\";\nimport type { WhiteWebSdkConfiguration, JoinRoomParams } from \"white-web-sdk\";\n\n\n\ntype WhiteWindowSDKConfiguration = Omit<WhiteWebSdkConfiguration, \"useMobXState\">\ntype WindowJoinRoomParams = {\n joinRoomParams: Omit<JoinRoomParams, \"useMultiViews\" | \"disableMagixEventDispatchLimit\">,\n mountParams: Omit<MountParams, \"room\">,\n}\n\nexport class WhiteWindowSDK {\n private sdk: WhiteWebSdk;\n\n constructor(params: WhiteWindowSDKConfiguration) {\n this.sdk = new WhiteWebSdk({ ...params, useMobXState: true });\n }\n\n public async mount(params: WindowJoinRoomParams): Promise<WindowManager> {\n const invisiblePlugins = params.joinRoomParams.invisiblePlugins || [];\n const room = await this.sdk.joinRoom({\n ...params.joinRoomParams,\n useMultiViews: true,\n invisiblePlugins: [...invisiblePlugins, WindowManager],\n disableMagixEventDispatchLimit: true,\n });\n const manager = await WindowManager.mount({\n room,\n ...params.mountParams\n });\n if (isBoolean(params.joinRoomParams.disableCameraTransform)) {\n manager.mainView.disableCameraTransform = params.joinRoomParams.disableCameraTransform;\n }\n return manager;\n }\n}\n","import AppDocsViewer from \"@netless/app-docs-viewer\";\nimport AppMediaPlayer, { setOptions } from \"@netless/app-media-player\";\nimport Emittery from \"emittery\";\nimport pRetry from \"p-retry\";\nimport { AppManager } from \"./AppManager\";\nimport { appRegister } from \"./Register\";\nimport { CursorManager } from \"./Cursor\";\nimport { DEFAULT_CONTAINER_RATIO, REQUIRE_VERSION } from \"./constants\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { initDb } from \"./Register/storage\";\nimport { isNull, isObject } from \"lodash\";\nimport { log } from \"./Utils/log\";\nimport { replaceRoomFunction } from \"./Utils/RoomHacker\";\nimport { ResizeObserver as ResizeObserverPolyfill } from \"@juggle/resize-observer\";\nimport { setupWrapper } from \"./ViewManager\";\nimport \"./style.css\";\nimport \"@netless/telebox-insider/dist/style.css\";\nimport {\n addEmitterOnceListener,\n ensureValidScenePath,\n getVersionNumber,\n isValidScenePath,\n wait,\n} from \"./Utils/Common\";\nimport type { TELE_BOX_STATE } from \"./BoxManager\";\nimport {\n AppCreateError,\n AppManagerNotInitError,\n InvalidScenePath,\n ParamsInvalidError,\n WhiteWebSDKInvalidError,\n} from \"./Utils/error\";\nimport type { Apps, Position } from \"./AttributesDelegate\";\nimport {\n InvisiblePlugin,\n isPlayer,\n isRoom,\n RoomPhase,\n ViewMode,\n WhiteVersion,\n} from \"white-web-sdk\";\nimport type {\n Displayer,\n SceneDefinition,\n View,\n Room,\n InvisiblePluginContext,\n Camera,\n AnimationMode,\n CameraBound,\n Point,\n Rectangle,\n ViewVisionMode,\n CameraState,\n} from \"white-web-sdk\";\nimport type { AppListeners } from \"./AppListener\";\nimport type { NetlessApp, RegisterParams } from \"./typings\";\nimport type { TeleBoxColorScheme, TeleBoxState } from \"@netless/telebox-insider\";\nimport type { AppProxy } from \"./AppProxy\";\n\nconst ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;\n\nexport type WindowMangerAttributes = {\n modelValue?: string;\n boxState: TELE_BOX_STATE;\n maximized?: boolean;\n minimized?: boolean;\n [key: string]: any;\n};\n\nexport type apps = {\n [key: string]: NetlessApp;\n};\n\nexport type AddAppOptions = {\n scenePath?: string;\n title?: string;\n scenes?: SceneDefinition[];\n};\n\nexport type setAppOptions = AddAppOptions & { appOptions?: any };\n\nexport type AddAppParams = {\n kind: string;\n // app 地址(本地 app 不需要传)\n src?: string;\n // 窗口配置\n options?: AddAppOptions;\n // 初始化 attributes\n attributes?: any;\n};\n\nexport type BaseInsertParams = {\n kind: string;\n // app 地址(本地 app 不需要传)\n src?: string;\n // 窗口配置\n options?: AddAppOptions;\n // 初始化 attributes\n attributes?: any;\n isDynamicPPT?: boolean;\n};\n\nexport type AppSyncAttributes = {\n kind: string;\n src?: string;\n options: any;\n state?: any;\n isDynamicPPT?: boolean;\n fullPath?: string;\n};\n\nexport type AppInitState = {\n id: string;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n focus?: boolean;\n maximized?: boolean;\n minimized?: boolean;\n sceneIndex?: number;\n boxState?: TeleBoxState; // 兼容旧版 telebox\n zIndex?: number;\n};\n\nexport type CursorMovePayload = { uid: string; state?: \"leave\"; position: Position };\n\nexport type EmitterEvent = {\n onCreated: undefined;\n InitReplay: AppInitState;\n move: { appId: string; x: number; y: number };\n focus: { appId: string };\n close: { appId: string };\n resize: { appId: string; width: number; height: number; x?: number; y?: number };\n error: Error;\n seek: number;\n mainViewMounted: undefined;\n observerIdChange: number;\n boxStateChange: string;\n playgroundSizeChange: DOMRect;\n onReconnected: undefined;\n cursorMove: CursorMovePayload;\n};\n\nexport const emitter: Emittery<EmitterEvent> = new Emittery();\n\nexport type PublicEvent = {\n mainViewModeChange: ViewVisionMode;\n boxStateChange: `${TELE_BOX_STATE}`;\n darkModeChange: boolean;\n prefersColorSchemeChange: TeleBoxColorScheme;\n cameraStateChange: CameraState;\n};\n\nexport type MountParams = {\n room: Room;\n container: HTMLElement;\n /** 白板高宽比例, 默认为 9 / 16 */\n containerSizeRatio?: number;\n /** 显示 PS 透明背景,默认 true */\n chessboard?: boolean;\n collectorContainer?: HTMLElement;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n overwriteStyles?: string;\n cursor?: boolean;\n debug?: boolean;\n disableCameraTransform?: boolean;\n prefersColorScheme?: TeleBoxColorScheme;\n};\n\nexport const callbacks: Emittery<PublicEvent> = new Emittery();\n\nexport class WindowManager extends InvisiblePlugin<WindowMangerAttributes> {\n public static kind = \"WindowManager\";\n public static displayer: Displayer;\n public static wrapper?: HTMLElement;\n public static playground?: HTMLElement;\n public static container?: HTMLElement;\n public static debug = false;\n public static containerSizeRatio = DEFAULT_CONTAINER_RATIO;\n private static isCreated = false;\n\n public version = __APP_VERSION__;\n public dependencies = __APP_DEPENDENCIES__;\n\n public appListeners?: AppListeners;\n\n public readonly?: boolean;\n public emitter: Emittery<PublicEvent> = callbacks;\n public appManager?: AppManager;\n public cursorManager?: CursorManager;\n public viewMode = ViewMode.Broadcaster;\n public isReplay = isPlayer(this.displayer);\n\n constructor(context: InvisiblePluginContext) {\n super(context);\n (window as any).NETLESS_DEPS = __APP_DEPENDENCIES__;\n }\n\n /**\n * 挂载 WindowManager\n * @deprecated\n */\n public static async mount(\n room: Room,\n container: HTMLElement,\n collectorContainer?: HTMLElement,\n options?: {\n chessboard: boolean;\n containerSizeRatio: number;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n debug?: boolean;\n overwriteStyles?: string;\n }\n ): Promise<WindowManager>;\n\n public static async mount(params: MountParams): Promise<WindowManager>;\n\n public static async mount(\n params: MountParams | Room,\n container?: HTMLElement,\n collectorContainer?: HTMLElement,\n options?: {\n chessboard?: boolean;\n containerSizeRatio: number;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n debug?: boolean;\n overwriteStyles?: string;\n disableCameraTransform?: boolean;\n }\n ): Promise<WindowManager> {\n let room: Room;\n let containerSizeRatio: number | undefined;\n let collectorStyles: Partial<CSSStyleDeclaration> | undefined;\n let debug: boolean | undefined;\n let chessboard = true;\n let overwriteStyles: string | undefined;\n let cursor: boolean | undefined;\n let disableCameraTransform = false;\n let prefersColorScheme: TeleBoxColorScheme | undefined = \"light\";\n if (\"room\" in params) {\n room = params.room;\n container = params.container;\n collectorContainer = params.collectorContainer;\n containerSizeRatio = params.containerSizeRatio;\n collectorStyles = params.collectorStyles;\n debug = params.debug;\n if (params.chessboard != null) {\n chessboard = params.chessboard;\n }\n overwriteStyles = params.overwriteStyles;\n cursor = params.cursor;\n disableCameraTransform = Boolean(params?.disableCameraTransform);\n prefersColorScheme = params.prefersColorScheme;\n } else {\n room = params;\n containerSizeRatio = options?.containerSizeRatio;\n collectorStyles = options?.collectorStyles;\n debug = options?.debug;\n if (options?.chessboard != null) {\n chessboard = options.chessboard;\n }\n overwriteStyles = options?.overwriteStyles;\n }\n\n this.checkVersion();\n if (isRoom(room)) {\n if (room.phase !== RoomPhase.Connected) {\n throw new Error(\"[WindowManager]: Room only Connected can be mount\");\n }\n }\n if (!container) {\n throw new Error(\"[WindowManager]: Container must provide\");\n }\n if (WindowManager.isCreated) {\n throw new Error(\"[WindowManager]: Already created cannot be created again\");\n }\n WindowManager.isCreated = true;\n try {\n let manager = await this.initManager(room);\n this.debug = Boolean(debug);\n if (this.debug) {\n setOptions({ verbose: true });\n }\n log(\"Already insert room\", manager);\n\n if (isRoom(this.displayer)) {\n if (!manager) {\n throw new Error(\"[WindowManager]: init InvisiblePlugin failed\");\n }\n } else {\n await pRetry(\n async count => {\n manager = await this.initManager(room);\n if (!manager) {\n log(`manager is empty. retrying ${count}`);\n throw new Error();\n }\n },\n { retries: 10 }\n );\n }\n\n if (containerSizeRatio) {\n WindowManager.containerSizeRatio = containerSizeRatio;\n }\n WindowManager.container = container;\n const { playground, wrapper, sizer, mainViewElement } = setupWrapper(container);\n WindowManager.playground = playground;\n if (chessboard) {\n sizer.classList.add(\"netless-window-manager-chess-sizer\");\n }\n if (overwriteStyles) {\n const style = document.createElement(\"style\");\n style.textContent = overwriteStyles;\n playground.appendChild(style);\n }\n await manager.ensureAttributes();\n manager.appManager = new AppManager(manager, {\n collectorContainer: collectorContainer,\n collectorStyles: collectorStyles,\n prefersColorScheme: prefersColorScheme,\n });\n manager.observePlaygroundSize(playground, sizer, wrapper);\n if (cursor) {\n manager.cursorManager = new CursorManager(manager.appManager);\n }\n manager.bindMainView(mainViewElement, disableCameraTransform);\n replaceRoomFunction(room, manager.appManager);\n emitter.emit(\"onCreated\");\n try {\n await initDb();\n } catch (error) {\n console.warn(\"[WindowManager]: indexedDB open failed\");\n console.log(error);\n }\n return manager;\n } catch (error) {\n WindowManager.isCreated = false;\n throw error;\n }\n }\n\n private static async initManager(room: Room): Promise<WindowManager> {\n let manager = room.getInvisiblePlugin(WindowManager.kind) as WindowManager;\n if (!manager) {\n if (isRoom(room)) {\n if (room.isWritable === false) {\n try {\n await room.setWritable(true);\n } catch (error) {\n throw new Error(\"[WindowManger]: room must be switched to be writable\");\n }\n manager = (await room.createInvisiblePlugin(\n WindowManager,\n {}\n )) as WindowManager;\n manager.ensureAttributes();\n await wait(500);\n await room.setWritable(false);\n } else {\n manager = (await room.createInvisiblePlugin(\n WindowManager,\n {}\n )) as WindowManager;\n }\n }\n }\n return manager;\n }\n\n /**\n * 注册插件\n */\n public static register<AppOptions = any, SetupResult = any, Attributes = any>(\n params: RegisterParams<AppOptions, SetupResult, Attributes>\n ): Promise<void> {\n return appRegister.register(params);\n }\n\n /**\n * 创建一个 app 至白板\n */\n public async addApp(params: AddAppParams): Promise<string | undefined> {\n if (this.appManager) {\n if (!params.kind || typeof params.kind !== \"string\") {\n throw new ParamsInvalidError();\n }\n const appImpl = await appRegister.appClasses.get(params.kind)?.();\n if (appImpl && appImpl.config?.singleton) {\n if (this.appManager.appProxies.has(params.kind)) {\n throw new AppCreateError();\n }\n }\n const isDynamicPPT = this.setupScenePath(params, this.appManager);\n if (isDynamicPPT === undefined) {\n return;\n }\n if (params?.options?.scenePath) {\n params.options.scenePath = ensureValidScenePath(params.options.scenePath);\n }\n const appId = await this.appManager.addApp(params, Boolean(isDynamicPPT));\n return appId;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n private setupScenePath(params: AddAppParams, appManager: AppManager): boolean | undefined {\n let isDynamicPPT = false;\n if (params.options) {\n const { scenePath, scenes } = params.options;\n if (scenePath) {\n if (!isValidScenePath(scenePath)) {\n throw new InvalidScenePath();\n }\n const apps = Object.keys(this.apps || {});\n for (const appId of apps) {\n const appScenePath = appManager.store.getAppScenePath(appId);\n if (appScenePath && appScenePath === scenePath) {\n console.warn(`[WindowManager]: ScenePath ${scenePath} Already opened`);\n return;\n }\n }\n }\n if (scenePath && scenes && scenes.length > 0) {\n if (this.isDynamicPPT(scenes)) {\n isDynamicPPT = true;\n if (!this.displayer.entireScenes()[scenePath]) {\n this.room?.putScenes(scenePath, scenes);\n }\n } else {\n if (!this.displayer.entireScenes()[scenePath]) {\n this.room?.putScenes(scenePath, [{ name: scenes[0].name }]);\n }\n }\n }\n if (scenePath && scenes === undefined) {\n this.room?.putScenes(scenePath, [{}]);\n }\n }\n return isDynamicPPT;\n }\n\n /**\n * 设置 mainView 的 ScenePath, 并且切换白板为可写状态\n */\n public async setMainViewScenePath(scenePath: string): Promise<void> {\n if (this.appManager) {\n await this.appManager.setMainViewScenePath(scenePath);\n }\n }\n\n /**\n * 设置 mainView 的 SceneIndex, 并且切换白板为可写状态\n */\n public async setMainViewSceneIndex(index: number): Promise<void> {\n if (this.appManager) {\n await this.appManager.setMainViewSceneIndex(index);\n }\n }\n\n /**\n * 返回 mainView 的 ScenePath\n */\n public getMainViewScenePath(): string {\n return this.appManager?.store.getMainViewScenePath();\n }\n\n /**\n * 返回 mainView 的 SceneIndex\n */\n public getMainViewSceneIndex(): number {\n return this.appManager?.store.getMainViewSceneIndex();\n }\n\n /**\n * 设置所有 app 的 readonly 模式\n */\n public setReadonly(readonly: boolean): void {\n if (this.room?.isWritable) {\n this.readonly = readonly;\n this.appManager?.boxManager.setReadonly(readonly);\n }\n }\n\n /**\n * 切换 mainView 为可写\n */\n public switchMainViewToWriter(): Promise<void> | undefined {\n return this.appManager?.mainViewProxy.mainViewClickHandler();\n }\n\n /**\n * app destroy 回调\n */\n public onAppDestroy(kind: string, listener: (error: Error) => void): void {\n addEmitterOnceListener(`destroy-${kind}`, listener);\n }\n\n public setBoxState(boxState: TeleBoxState): void {\n if (!this.canOperate) return;\n switch (boxState) {\n case \"normal\":\n this.setMaximized(false);\n this.setMinimized(false);\n break;\n case \"maximized\":\n this.setMaximized(true);\n this.setMinimized(false);\n break;\n case \"minimized\":\n this.setMinimized(true);\n break;\n default:\n break;\n }\n }\n\n public setMaximized(maximized: boolean): void {\n if (!this.canOperate) return;\n this.appManager?.boxManager.setMaximized(maximized, false);\n }\n\n public setMinimized(minimized: boolean): void {\n if (!this.canOperate) return;\n this.appManager?.boxManager.setMinimized(minimized, false);\n }\n\n /**\n * 设置 ViewMode\n */\n public setViewMode(mode: ViewMode): void {\n if (!this.canOperate) return;\n if (mode === ViewMode.Broadcaster) {\n this.appManager?.mainViewProxy.setCameraAndSize();\n this.appManager?.mainViewProxy.start();\n }\n if (mode === ViewMode.Freedom) {\n this.appManager?.mainViewProxy.stop();\n }\n this.viewMode = mode;\n }\n\n public get mainView(): View {\n if (this.appManager) {\n return this.appManager.mainViewProxy.view;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get camera(): Camera {\n if (this.appManager) {\n return this.appManager.mainViewProxy.view.camera;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get cameraState(): CameraState {\n if (this.appManager) {\n return this.appManager.mainViewProxy.cameraState;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get apps(): Apps | undefined {\n return this.appManager?.store.apps();\n }\n\n public get boxState(): TeleBoxState {\n if (this.appManager) {\n return this.appManager.boxManager.boxState;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n public get darkMode(): boolean {\n return Boolean(this.appManager?.boxManager.darkMode);\n }\n\n public get prefersColorScheme(): TeleBoxColorScheme {\n if (this.appManager) {\n return this.appManager.boxManager.prefersColorScheme;\n } else {\n throw new AppManagerNotInitError();\n }\n }\n\n /**\n * 查询所有的 App\n */\n public queryAll(): AppProxy[] {\n return Array.from(this.appManager?.appProxies.values() || []);\n }\n\n /**\n * 查询单个 App\n */\n public queryOne(appId: string): AppProxy | undefined {\n return this.appManager?.appProxies.get(appId);\n }\n\n /**\n * 关闭 APP\n */\n public async closeApp(appId: string): Promise<void> {\n return this.appManager?.closeApp(appId);\n }\n\n public moveCamera(\n camera: Partial<Camera> & { animationMode?: AnimationMode | undefined }\n ): void {\n this.mainView.moveCamera(camera);\n }\n\n public moveCameraToContain(\n rectangle: Rectangle &\n Readonly<{\n animationMode?: AnimationMode;\n }>\n ): void {\n this.mainView.moveCameraToContain(rectangle);\n }\n\n public convertToPointInWorld(point: Point): Point {\n return this.mainView.convertToPointInWorld(point);\n }\n\n public setCameraBound(cameraBound: CameraBound): void {\n this.mainView.setCameraBound(cameraBound);\n }\n\n public override onDestroy(): void {\n this._destroy();\n }\n\n public override destroy(): void {\n this._destroy();\n }\n\n private _destroy() {\n this.containerResizeObserver?.disconnect();\n this.appManager?.destroy();\n this.cursorManager?.destroy();\n WindowManager.container = undefined;\n WindowManager.wrapper = undefined;\n WindowManager.isCreated = false;\n if (WindowManager.playground) {\n WindowManager.playground.parentNode?.removeChild(WindowManager.playground);\n }\n log(\"Destroyed\");\n }\n\n private bindMainView(divElement: HTMLDivElement, disableCameraTransform: boolean) {\n if (this.appManager) {\n this.appManager.bindMainView(divElement, disableCameraTransform);\n this.cursorManager?.setMainViewDivElement(divElement);\n }\n }\n\n public get canOperate(): boolean {\n if (isRoom(this.displayer)) {\n return (\n (this.displayer as Room).isWritable &&\n (this.displayer as Room).phase === RoomPhase.Connected\n );\n } else {\n return false;\n }\n }\n\n public get room(): Room {\n return this.displayer as Room;\n }\n\n public safeSetAttributes(attributes: any): void {\n if (this.canOperate) {\n this.setAttributes(attributes);\n }\n }\n\n public safeUpdateAttributes(keys: string[], value: any): void {\n if (this.canOperate) {\n this.updateAttributes(keys, value);\n }\n }\n\n public setPrefersColorScheme(scheme: TeleBoxColorScheme): void {\n this.appManager?.boxManager.setPrefersColorScheme(scheme);\n }\n\n private isDynamicPPT(scenes: SceneDefinition[]) {\n const sceneSrc = scenes[0]?.ppt?.src;\n return sceneSrc?.startsWith(\"pptx://\");\n }\n\n private static checkVersion() {\n const version = getVersionNumber(WhiteVersion);\n if (version < getVersionNumber(REQUIRE_VERSION)) {\n throw new WhiteWebSDKInvalidError(REQUIRE_VERSION);\n }\n }\n\n private async ensureAttributes() {\n if (isNull(this.attributes)) {\n await wait(50);\n }\n if (isObject(this.attributes)) {\n if (!this.attributes[Fields.Apps]) {\n this.safeSetAttributes({ [Fields.Apps]: {} });\n }\n if (!this.attributes[Fields.Cursors]) {\n this.safeSetAttributes({ [Fields.Cursors]: {} });\n }\n const sceneState = this.displayer.state.sceneState;\n if (!this.attributes[\"_mainScenePath\"]) {\n this.safeSetAttributes({ _mainScenePath: sceneState.scenePath });\n }\n if (!this.attributes[\"_mainSceneIndex\"]) {\n this.safeSetAttributes({ _mainSceneIndex: sceneState.index });\n }\n }\n }\n\n private containerResizeObserver?: ResizeObserver;\n\n private observePlaygroundSize(\n container: HTMLElement,\n sizer: HTMLElement,\n wrapper: HTMLDivElement\n ) {\n this.updateSizer(container.getBoundingClientRect(), sizer, wrapper);\n\n this.containerResizeObserver = new ResizeObserver(entries => {\n const containerRect = entries[0]?.contentRect;\n if (containerRect) {\n this.updateSizer(containerRect, sizer, wrapper);\n this.cursorManager?.updateContainerRect();\n this.appManager?.boxManager.updateManagerRect();\n emitter.emit(\"playgroundSizeChange\", containerRect);\n }\n });\n\n this.containerResizeObserver.observe(container);\n }\n\n private updateSizer(\n { width, height }: DOMRectReadOnly,\n sizer: HTMLElement,\n wrapper: HTMLDivElement\n ) {\n if (width && height) {\n if (height / width > WindowManager.containerSizeRatio) {\n height = width * WindowManager.containerSizeRatio;\n sizer.classList.toggle(\"netless-window-manager-sizer-horizontal\", true);\n } else {\n width = height / WindowManager.containerSizeRatio;\n sizer.classList.toggle(\"netless-window-manager-sizer-horizontal\", false);\n }\n wrapper.style.width = `${width}px`;\n wrapper.style.height = `${height}px`;\n }\n }\n}\n\nWindowManager.register({\n kind: AppDocsViewer.kind,\n src: AppDocsViewer,\n});\nWindowManager.register({\n kind: AppMediaPlayer.kind,\n src: AppMediaPlayer,\n});\n\nexport const BuiltinApps = {\n DocsViewer: AppDocsViewer.kind as string,\n MediaPlayer: AppMediaPlayer.kind as string,\n};\n\nexport * from \"./typings\";\n\nexport { WhiteWindowSDK } from \"./sdk\";\n","import { emitter } from '../index';\nimport { isPlayer } from 'white-web-sdk';\nimport type { Camera, Room , Player , PlayerSeekingResult } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\n\n// 修改多窗口状态下一些失效的方法实现到 manager 的 mainview 上, 降低迁移成本\nexport const replaceRoomFunction = (room: Room, manager: AppManager) => {\n if (isPlayer(room)) {\n const player = room as unknown as Player;\n const originSeek = player.seekToProgressTime;\n // eslint-disable-next-line no-inner-declarations\n async function newSeek(time: number): Promise<PlayerSeekingResult> {\n const seekResult = await originSeek.call(player, time);\n if (seekResult === \"success\") {\n emitter.emit(\"seek\", time);\n }\n return seekResult;\n }\n player.seekToProgressTime = newSeek;\n } else {\n const descriptor = Object.getOwnPropertyDescriptor(room, \"disableCameraTransform\");\n if (descriptor) return;\n Object.defineProperty(room, \"disableCameraTransform\", {\n get() {\n return manager.mainView.disableCameraTransform;\n },\n set(disable: boolean) {\n manager.mainView.disableCameraTransform = disable;\n },\n });\n\n room.moveCamera = (camera: Camera) => manager.mainView.moveCamera(camera);\n room.moveCameraToContain = (...args) => manager.mainView.moveCameraToContain(...args);\n room.convertToPointInWorld = (...args) => manager.mainView.convertToPointInWorld(...args);\n room.setCameraBound = (...args) => manager.mainView.setCameraBound(...args);\n room.scenePreview = (...args) => manager.mainView.scenePreview(...args);\n room.fillSceneSnapshot = (...args) => manager.mainView.fillSceneSnapshot(...args);\n room.generateScreenshot = (...args) => manager.mainView.generateScreenshot(...args);\n }\n\n};"],"names":["__defProp2","Object","defineProperty","__defProps2","defineProperties","__getOwnPropDescs2","getOwnPropertyDescriptors","__getOwnPropSymbols2","getOwnPropertySymbols","__hasOwnProp2","prototype","hasOwnProperty","__propIsEnum2","propertyIsEnumerable","__defNormalProp2","obj","key","value","enumerable","configurable","writable","__spreadValues2","a2","b2","prop","call","__spreadProps2","copyProperty","to","from","property","ignoreNonConfigurable","toDescriptor","getOwnPropertyDescriptor","fromDescriptor","canCopyProperty","wrappedToString","withName","fromBody","toStringDescriptor","Function","toStringName","toString","mimicFn_1","name","Reflect","ownKeys","fromPrototype","getPrototypeOf","setPrototypeOf","trim","newToString","bind","debounceFn","inputFunction","options","TypeError","wait","maxWait","Number","Infinity","before","after","Error","timeout","maxTimeout","result","debouncedFunction","arguments_","context","this","maxLater","apply","shouldCallNow","setTimeout","wait2","cancel","e","s","length","t","Array","r","r2","charAt","Math","random","join","constructor","disposers","Map","add","e2","s2","flush","set","addDisposer","addEventListener","t2","o2","i2","removeEventListener","window","remove","clearTimeout","setInterval","t3","clearInterval","get","delete","error","flushAll","forEach","clear","runningOnBrowser","isBot","navigator","test","userAgent","supportsIntersectionObserver","supportsClassList","document","createElement","isHiDpi","devicePixelRatio","defaultSettings","elements_selector","container","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_poster","class_applied","class_loading","class_loaded","class_error","class_entered","class_exited","unobserve_completed","unobserve_entered","cancel_on_exit","callback_enter","callback_exit","callback_applied","callback_loading","callback_loaded","callback_error","callback_finish","callback_cancel","use_native","getExtendedSettings","customSettings","assign","createInstance","classObj","event","eventString","instance2","CustomEvent","detail","instance","err","createEvent","initCustomEvent","dispatchEvent","SRC","ORIGINALS","getData","element2","attribute","getAttribute","getStatus","setStatus","status","attrName","setAttribute","removeAttribute","setData","resetStatus","hasEmptyStatus","hasStatusNative","statusesAfterLoading","safeCallback","callback","arg1","arg2","arg3","addClass","className","classList","removeClass","replace","RegExp","getTempImage","llTempImage","unobserve","observer","_observer","updateLoadingCount","delta","loadingCount","setToLoadCount","toLoadCount","getSourceTags","parentTag","sourceTags","childTag","children","tagName","push","forEachPictureSource","fn","parent","parentNode","forEachVideoSource","attrsSrc","attrsSrcPoster","attrsSrcSrcsetSizes","hasOriginalAttrs","getOriginalAttrs","deleteOriginalAttrs","setOriginalsObject","attributes","originals","restoreOriginalAttrs","manageLoading","settings","setAttributeIfValue","setImageAttributes","setMultiBackground","bg1xValue","bgHiDpiValue","bgDataValue","style","backgroundImage","setSourcesFunctions","IMG","imgEl","sourceTag","IFRAME","iframe","VIDEO","videoEl","sourceEl","load","elementsWithLoadEvent","checkFinish","isSomethingLoading","haveElementsToLoad","eventName","handler","llEvLisnrs","hasEventListeners","removeEventListeners","eventListeners","doneHandler","addOneShotEventListeners","elementToListenTo","loadHandler2","errorHandler2","loadEventName","goingNative","loadBackground","loadRegular","setSourcesFunction","indexOf","hasLoadEvent","loadNative","removeImageAttributes","restoreImg","restoreFunctions","iframeEl","restoreAttributes","restoreFunction","restore","cancelLoading","entry","hasStatusLoading","onEnter","dontLoad","hadStartedLoading","tagsWithNativeLazy","shouldUseNative","HTMLImageElement","intersectionHandler","entries","isIntersecting","intersectionRatio","target","onExit","setObserver","IntersectionObserver","root","rootMargin","getObserverSettings","toArray","nodeSet","slice","queryElements","querySelectorAll","hasError","hasStatusError","getElementsToLoad","elements","filter","excludeManagedElements","retryLazyLoad","update","LazyLoad","_settings","givenNodeset","elementsToLoad","elementsToObserve","disconnect","observe","loadAll","destroy","restoreAll","optionsItem","lazyLoadOptions","readonly","box","pages","onNewPageIndex","onPlay","pageIndex","namespace","isShowPreview","isSmallBox","sideEffect","o","render","mount","mountContent","$content","mountFooter","$footer","previewLazyLoad","$preview","wrapClassName","unmount","setReadonly","toggle","$pageNumberInput","disabled","setPageIndex","isNaN","String","setSmallBox","renderContent","renderFooter","appendChild","renderPreviewMask","renderPreview","pageClassName","pageNameClassName","page","_a","previewSRC","thumbnail","src","startsWith","$page","dataset","$name","textContent","$img","width","height","ev","preventDefault","stopPropagation","stopImmediatePropagation","togglePreview","$previewMask","some","$btnSidebar","renderFooterBtn","NS","$svg","createElementNS","$path","sidebarSVG","$pageJumps","$btnPageBack","arrowLeftSVG","$btnPlay","playSVG","pauseSVG","returnPlay","$btnPageNext","arrowRightSVG","$pageNumber","select","$totalPage","$icon","$iconActive","$btn","$previewPage","querySelector","scrollTo","top","offsetTop","min","max","touches","cancelable","config","_b","_c","velocity","paused","_animationFrameID","_loopTimestamp","looper","timestamp","frames","floor","stepper","onStep","current","requestAnimationFrame","start","stiffness","damping","stepTo","Date","now","pause","fSpring","fDamper","newVelocity","newCurrent","abs","index","scale","lastVisit","pageOffsetY","visible","translateY","transform","setScale","setVisible","opacity","schedule","requestIdleCallback","cancelSchedule","cancelIdleCallback","els","maxElCount","gcTimer","gc","size","sortedEls","values","sort","x2","y2","getEl","el","PageEl","pageEl","_hwaTimeout","NaN","_turnOffHWA","$pages","pagesScrollTop","containerWidth","containerHeight","map","url","URL","searchParams","pagesIntrinsicYs","pagesMinHeight","pagesIntrinsicWidth","pagesIntrinsicHeight","reduce","pageY","_calcScale","_calcThreshold","onPageIndexChanged","pageScrollIndex","findScrollPageIndex","pageElManager","PageElManager","renderPages","setContainerSize","parentElement","pagesScrollTo","force","clamp","_turnOnHWA","startIndex","endIndex","$parent","ceil","pagesWidth","pagesHeight","scrollbarMinHeight","scrollbarHeight","_calcScrollbarHeight","onDragScroll","$scrollbar","renderScrollbar","_updateScrollbarHeight","minHeight","trackStart","button","draggingClassName","startTop","clientY","startY","flattenEvent","tracking","ev2","offsetY","trackEnd","newHeight","whiteboardView","pageScrollTop","mountWhiteboard","onUserScroll","userScrolling","scrollToPage","_onUserScroll","debouncedOnUserScroll","debounce","pageRenderer","updateUserScroll","viewer","DocsViewer","PageRenderer","scrollbar","ScrollBar","pageScrollTop2","pageScrollTo","pageScrollStepper","Stepper","setupScrollListener","renderRatioHeight","events","on","off","syncPageScrollTop","renderWhiteboardView","boxHeight","absoluteHeight","titleBarSupposedHeight","titleBarActualHeight","footerSupposedHeight","footerActualHeight","emptySpace","$titleBar","titleBarHeight","footerHeight","$whiteboardView","deltaY","passive","capture","scrollTopPageToEl","scrollTopElToPage","elScrollTop","elScrollTo","halfWbHeight","moveCamera","centerY","animationMode","handleCameraUpdate","camera","wbWidth","wbHeight","callbacks","handleSizeUpdate","moveCameraToContain","originX","originY","setCameraBound","maxContentMode","minContentMode","centerX","focus","minimized","newPageScrollTop","disposerID","dFn","onPlayPPT","room","getRoom","pptNextStep","_scaleDocsToFitImpl","getPageIndex","_scaleDocsToFitDebounced","scaleDocsToFit","jumpToPage","displayer","getDisplayer","getIsWritable","isWritable","emitter","sceneState","state","reset","initScenePath","getInitScenePath","scene","getScenes","setScenePath","pptState","globalState","__pptState","setGlobalState","uuid","disableAutoPlay","renderMask","$mask","memberState","currentApplianceName","contains","mountView","NetlessAppDocsViewer","kind","setup","getBox","scenes","getView","ppt","previewURL","Boolean","mountStyles","disableCameraTransform","docsViewer","DynamicDocsViewer","isAddApp","once","contentWidth","contentHeight","pageWidth","pageHeight","diff","emit","containerRect","StaticDocsViewer","getAttributes","_a2","updateAttributes","propIsEnumerable","val","objectAssign","test1","getOwnPropertyNames","test2","fromCharCode","n2","test3","split","letter","keys","source","symbols","toObject","arguments","l","require$$0","n","Symbol","for","p","q","u","v","w","x","y","z","A","B","iterator","c","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","props","refs","updater","F","isReactComponent","setState","C","forceUpdate","G","I","H","isPureReactComponent","J","K","L","ref","__self","__source","d2","g2","k2","f2","h2","m2","defaultProps","$$typeof","type","_owner","P","Q","pop","keyPrefix","func","count","U","isArray","T","next","done","a3","escape","X","N","aa","R","Y","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","W","V","only","O","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","M","_ctor","_status","_result","compare","Z","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","l2","MessageChannel","p2","q2","exports","unstable_now","u2","w2","performance","z2","console","A2","cancelAnimationFrame","B2","C2","D2","E2","F2","G2","H2","I2","port2","port1","onmessage","postMessage","K2","v2","sortIndex","id","N2","O2","P2","Q2","R2","S2","T2","U2","L2","startTime","expirationTime","J2","X2","W2","priorityLevel","M2","Z2","delay","Y2","require$$1","require$$2","onError","da","ea","fa","ha","ia","la","ma","na","currentTarget","pa","qa","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","dependencies","wa","ra","ya","za","Aa","Ba","stateNode","Ia","Fa","Ja","Ka","Ea","La","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","toLowerCase","Ua","toUpperCase","Va","xlinkHref","Wa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","Sa","Ra","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","displayName","pb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","nodeName","_valueTracker","sb","getValue","setValue","stopTracking","tb","checked","defaultChecked","defaultValue","_wrapperState","initialChecked","rb","initialValue","controlled","Xa","Db","ownerDocument","activeElement","Children","Fb","selected","defaultSelected","dangerouslySetInnerHTML","Mb","Nb","Pb","Qb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","Tb","animationend","Sb","animationiteration","animationstart","transitionend","Ub","Vb","animation","transition","Xb","Wb","Yb","Zb","$b","ac","bc","WeakMap","alternate","effectTag","memoizedState","dehydrated","dc","child","fc","sibling","concat","kc","_dispatchListeners","_dispatchInstances","isPropagationStopped","oa","isPersistent","release","ic","lc","srcElement","correspondingUseElement","pc","topLevelType","nativeEvent","targetInst","ancestors","eventSystemFlags","containerInfo","tc","nc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","blockedOn","pointerId","Kc","Nc","ec","unstable_runWithPriority","priority","hydrate","Rc","shift","Qc","Sc","unstable_scheduleCallback","unstable_NormalPriority","Tc","b3","Uc","Wc","Yc","Zc","$c","bubbled","captured","eventPriority","ad","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Ha","Mc","Oc","rc","sc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","setProperty","substring","nd","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","is","qd","cc","body","ud","node","offset","nextSibling","wd","compareDocumentPosition","td","HTMLIFrameElement","contentWindow","location","href","contentEditable","Dd","Ed","autoFocus","__html","Hd","Id","previousSibling","data","Ld","Md","Nd","Od","Kd","Sd","dispatchConfig","_targetInst","Rd","Vd","Ud","Yd","Zd","$d","Interface","isDefaultPrevented","defaultPrevented","returnValue","be","ce","eventPool","destructor","getPooled","ee","fe","cancelBubble","persist","eventPhase","bubbles","timeStamp","isTrusted","extend","de","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","ie$1","keyCode","se","ve","qe","locale","ae","re","Xd","which","te","ctrlKey","altKey","metaKey","char","ue","we","color","date","datetime","email","month","number","password","range","search","tel","text","time","week","ye","change","Ae","Be","yb","Pd","Fe","detachEvent","He","De","ze","Ce","attachEvent","Ge","oc","Me","_isInputEventSupported","Ee","xe","Le","Je","Ie","Ke","Ne","view","Oe","Alt","Control","Meta","Shift","getModifierState","Pe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","pageX","shiftKey","Qe","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","cf","df","ef","ff","gf","hf","yd","selectionStart","end","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","bf","kf","onSelect","jf","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","of","repeat","sf","dataTransfer","tf","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","Qd","xa","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","getChildContext","__reactInternalMemoizedMergedChildContext","Ff","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","bg","fg","gg","jg","kg","lg","mg","childExpirationTime","firstContext","observedBits","responders","tg","updateQueue","baseState","baseQueue","shared","pending","effects","suspenseConfig","payload","vg","ca","Dg","Eg","Component","Jg","_reactInternalFiber","Gg","wg","Hg","shouldComponentUpdate","contextType","sg","Cf","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","zg","componentDidMount","Og","_stringRef","c2","d3","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Pg","Ug","implementation","Vg","f3","Wg","nb","e3","h3","k3","l3","g3","m3","D3","Qg","Xg","Rg","Yg","Zg","$g","ah","bh","documentElement","Ob","ch","memoizedProps","revealOrder","responder","jh","kh","lh","mh","ph","qh","rh","sh","O$2","queue","P$2","uh","lastRenderedReducer","action","eagerReducer","eagerState","Bg","Ag","lastRenderedState","dispatch","th","vh","zh","create","deps","Ah","nh","Ch","Dh","Hh","ag","readContext","useDebugValue","useResponder","useDeferredValue","useTransition","Kh","Eh","yh","Jh","ih","Nh","Lh","Fh","Ih","Gh","Mh","wh","Bh","xh","Oh","Ph","Qh","Sh","pendingProps","Th","Jd","Vh","Gd","Yh","rg","oh","$h","bi","ci","di","Lg","Ng","Mg","Kg","ig","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","Hf","getDerivedStateFromError","pendingContext","Ef","ni","pi","qi","ii","retryTime","fallback","unstable_avoidThisFallback","Uh","isBackwards","rendering","renderingStartTime","last","tail","tailExpiration","tailMode","ki","hh","Df","eh","Wh","wasMultiple","multiple","rd","onClick","onclick","sd","pd","zb","Gb","Ib","md","Rb","Hb","createTextNode","ti","ui","S","vi","wi","T$2","yi","og","ri","gh","stack","qb","Bi","WeakSet","Set","__reactInternalSnapshotBeforeUpdate","Cg","Fd","Vc","Li","componentWillUnmount","Di","Ni","Oi","Qi","Ri","insertBefore","_reactRootContainer","Ki","Bb","Ti","display","Vi","then","Wi","element","Zi","componentDidCatch","aj","Ci","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","Yi","qj","rj","sj","tj","uj","vj","wj","hg","timeoutMs","xj","yj","xi","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","eg","zj","dg","Bj","Cj","Ej","Fj","X$2","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","pingCache","Oj","Ai","Xi","ub","$i","Pj","Xc","Qj","si","U$2","zi","Sj","firstSuspendedTime","xd","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Y$2","Mi","vd","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","scrollTop","Ji","vb","Uj","Gi","cg","Vj","Ii","hidden","Gf","ji","mi","Fg","default","Xj","fi","Zh","ai","Xh","fh","ei","dh","xg","qg","unstable_observedBits","Zj","pendingChildren","dk","ak","Jc","_internalRoot","ck","hasAttribute","fk","hk","gk","jk","ek","JSON","stringify","form","Mj","Ga","Dj","lk","Events","Wd","Da","mc","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","hc","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","version","rendererPackageName","kk","ik","checkDCE","i","a","d","currentTime","hostTime","muted","volume","m","currentTimeMaxError","syncInterval","retryInterval","verbose","log","g","player","beginTimestamp","progressTime","calibrationTimestamp","f","includes","b","global","self","k","toStringTag","j","parseInt","e4","x$1","i3","o3","leading","trailing","seeking","mobileSeeking","hoverTime","secondsPrefix","minutesPrefix","seekPause","handleTouchSeeking","changeCurrentTimePosition","handleSeeking","setTrackWidthState","trackWidth","offsetWidth","handleTrackHover","getBoundingClientRect","seekHoverPosition","mouseSeekingHandler","setSeeking","onMouseUp","mobileTouchSeekingHandler","setMobileSeeking","renderBufferProgress","buffered","getPositionStyle","bufferColor","backgroundColor","renderProgress","sliderColor","renderHoverProgress","getSeekHoverPosition","sliderHoverColor","renderThumb","isThumbActive","getThumbHandlerPosition","thumbColor","onMouseDown","onSeekStart","play","onSeekEnd","ready","total","toFixed","onChange","getHoverTimePosition","limitTimeTooltipBySides","secondsToTime","round","mm","ss","getHoverTime","drawHoverTime","hideHoverTime","onMouseMove","onMouseLeave","onTouchStart","onTouchEnd","stageVolume","updateVolumeTimer","onVolumeSeeking","onClickOperationButton","operationButton","operationVolumeButton","handleClickVolume","setVolume","changeTime","setCurrentTime","onVolumeChange","changeVolume","seekVolume","onVolumeSeekStart","onVolumeSeekEnd","onProgressSeekStart","isPlayerSeeking","onProgressSeekEnd","isVolumeHover","duration","onMouseEnter","putAttributes","plugin","alertMask","createRef","controllerHiddenTimer","syncPlayerTimer","retryCount","decreaseRetryTimer","noSoundSyncCount","showController","controllerVisible","debounceHidingController","debug","isEnabled","resetPlayer","autoplay","NoSound","syncPlayerWithAttributes","catch","catchPlayFail","decreaseRetryCount","initPlayer","MediaError","fixPlayFail","async","dispose","poster","pathname","endsWith","Promise","one","gracefullyUpdate","onPlayer","setupAlert","setupReload","isShowingPoster","bufferedPercent","alt","draggable","VERSION","unmountComponentAtNode","Events2","AppAttributes","AppAttributes2","AppEvents","AppEvents2","AppStatus","CursorState","CursorState2","MIN_WIDTH","MIN_HEIGHT","store","initDb","resolve","reject","request","indexedDB","open","onerror","onupgradeneeded","db2","objectStoreNames","createObjectStore","keyPath","createIndex","unique","onsuccess","setItem","sourceCode","transaction","objectStore","getItem","getScript","item","resource","controller","AbortController","id2","abort","response","fetch","__spreadProps","signal","headers","fetchWithTimeout","text2","executeScript","appName","appRegister","params","registered","srcOrAppOrFunction","downloadApp","appClass","message","define","amd","loadApp","appClasses","app","appClassesCache","addHooks","emitter2","createKindEmitter","kind2","kindEmitters","Emittery","setViewFocusScenePath","focusScenePath","scenePath","setViewMode","didRelease","notifyMainViewModeChange","callbacks2","getVersionNumber","versionString","padStart","manager","boxManager","authorId","observerId","AppMove","appMoveHandler","AppResize","appResizeHandler","SwitchViewsToFreedom","switchViewsToFreedomHandler","AppBoxStateChange","boxStateChangeHandler","SetMainViewScenePath","setMainViewScenePathHandler","CursorMove","cursorMoveHandler","moveBox","resizeBox","skipUpdate","refreshViewSize","viewManager","freedomAllViews","nextScenePath","mainView","addListeners","addMagixEventListener","mainMagixEventListener","removeListeners","removeMagixEventListener","appId","appProxy","appOptions","autorun","reaction","toJS","listenUpdated","unlistenUpdated","listenDisposed","unlistenDisposed","isReplay","appEmitter","appAttr","getAppAttributes","isDynamicPPT","appProxies","getAppInitPath","canOperate","BoxNotCreatedError","setAttributes","safeSetAttributes","safeUpdateAttributes","setFullPath","switchAppToWriter","dom","divElement","getAppOptions","Fields","Fields2","apps","Focus","getAppState","State","getMaximized","setupAppAttributes","attrNames","pick","attrs","Size","Position","SceneIndex","ZIndex","updateAppState","stateName","cleanAppAttributes","cleanFocus","getAppSceneIndex","getAppScenePath","getMainViewScenePath","getMainViewSceneIndex","getBoxState","BoxState","setMainViewScenePath","_mainScenePath","setMainViewSceneIndex","_mainSceneIndex","getMainViewCamera","MainViewCamera","getMainViewSize","MainViewSize","setMainViewCamera","__spreadValues","setMainViewSize","setAppFocus","setMainViewFocusPath","args","WindowManager","cameraStore","position","sceneIndex","maximized","appId2","refresher","stateKey","appState","appAttributes","setZIndex","appListener","makeAppEventListener","initScenes","createView","entireScenes","getFullScenePath","FullPath","path","appImpl","appParams","setupApp","updateManagerRect","focusApp","focusBox","AppContext","WindowCreated","boxInitState","getAppInitState","updateBoxState","onAny","appAttributesUpdateListener","notifyApp","afterSetupApp","fixMobileSize","createBox","smartPosition","intrinsicWidth","intrinsicHeight","setBoxInitState","onSeek","currentAppState","AppProxy","baseInsertApp","switchToWritable","switchView","ViewVisionMode","Writable","Freedom","emitAppSceneStateChange","emitAppIsWritableChange","setBoxMinSize","minWidth","minwidth","minheight","setBoxTitle","title","fullScenePath","fullPath","register","needCloseBox","cleanAttrs","clearListeners","closeBox","unregister","destroyView","appStatus","close","s3","n3","_events","_eventsCount","__proto__","eventNames","r3","listeners","listenerCount","removeListener","removeAllListeners","addListener","prefixed","EventEmitter","$","_","splice","process","parse","parseFloat","red","hue","lastIndexOf","green","blue","alpha","saturation","lightness","substr","onRead","onRender","uncachedValues","useCache","hasCSSVariable","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","right","bottom","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateZ","perspective","originZ","numOctaves","enableHardwareAcceleration","isDashCase","allowTransformNone","transformOrigin","preparseOutput","getComputedStyle","getPropertyValue","buildStyles","_e","attrX","attrY","pathLength","pathSpacing","pathOffset","buildAttrs","pageYOffset","pageXOffset","HTMLElement","click","SVGElement","getBBox","getTotalLength","et","tt","it","st","rt","nt","ot","Ze","require","_value","_subscribers","subscribe","derive","addBeforeDestroy","_beforeDestroys","t4","bindSideEffect","combine","e5","i4","s4","e6","s5","createVal","Light","Dark","Auto","Normal","Minimized","Maximized","DarkMode","PrefersColorScheme","Close","Blur","Move","Resize","IntrinsicMove","IntrinsicResize","VisualResize","Readonly","Destroyed","Maximize","Minimize","North","South","West","East","NorthWest","NorthEast","SouthEast","SouthWest","ut","onEvent","onDragStart","$btns","lastTitleBarClick","handleTitleBarClick","teleTitleBarNoDblClick","lastTitleBarTouch","handleTitleBarTouch","iconClassName","isActive","$dragArea","renderDragArea","setTitle","$title","teleBoxHandle","teleTitleBarBtnIndex","dragHandle","dt","mt","prefersColorScheme","darkMode","resizable","fence","fixRatio","titleBar","$2","content","footer","styles","_2","innerWidth","innerHeight","collectorRect","_renderSideEffect","handleTrackStart","_handleTrackStart","_sideEffect","_valSideEffectBinder","_delegateEvents","matchMedia","matches","bt","V2","j2","lt","pt","ee2","$userContent","$userFooter","$userStyles","_state$","_minSize$","_size$","_intrinsicSize$","_visualSize$","_coord$","_intrinsicCoord$","$box","_darkMode$","setMinimized","setMaximized","setMinWidth","setMinHeight","resize","move","intrinsicY","intrinsicX","set$userContent","unmountContent","set$userFooter","unmountFooter","getUserStyles","set$userStyles","unmountStyles","ft","_readonly$","_draggable$","vt","_resizable$","_focus$","_visible$","_zIndex$","teleBoxID","absoluteWidth","_minimized$","_containerRect$","_collectorRect$","_$userStyles$","_$userContent$","_$userFooter$","_renderResizeHandlers","ct","m4","wt","$t","handleCollectorClick","_readonly","_visible","_darkMode","$collector","setDarkMode","setStyles","Focused","Blurred","Created","Removed","boxes","focusedBox","$titles","firstElementChild","setContainerRect","setBoxes","updateTitles","super","nextElementSibling","replaceChild","renderTitles","scrollBy","behavior","collector","boxes$","topBox$","setPrefersColorScheme","maxTitleBar","setFence","Ct","setCollectorRect","makeBoxTop","Bt","removeTopBox","focusTopBox","gt","topBox","query","teleBoxMatcher","queryOne","find","updateBox","updateAll","getBoxIndex","removeAll","setFocus","blurBox","blurAll","every","setResizable","setDraggable","setFixRatio","findIndex","createTeleBoxManagerConfig","teleBoxManager","setupBoxManager","_prefersColorScheme$","colorScheme","blurAllBox","rect","createBoxConfig","TELE_BOX_STATE","wrapper","initManagerState","collectorContainer","teleBoxCollector","TeleBoxCollector","collectorStyles","TeleBoxManager","boxIsFocus","getFocusBox","getTopBox","notifyContainerRectUpdate","getOrCreateListener","setCamera","cameras","getCamera","deleteCamera","recoverCamera","AnimationMode","Immediately","onListener","offListener","listener","mainViewProxy","switchMainViewToWriter","fireImmediately","views","releaseView","timer","mainViewScenePath","switchViewModeToWriter","appTimer","removeMainViewListener","setDefaultCameraBound","mainViewCamera","uid","moveCameraToContian","mainViewSize","isEqual","mainViewClickHandler","cameraState","createMainView","moveCameraSizeByAttributes","viewId","setCameraAndSize","sizeChangeHandler","started","addCameraListener","cameraReaction","addMainViewListener","mainViewIsAddListener","mainViewClickListener","onCameraUpdatedByDevice","onCameraOrSizeUpdated","removeCameraListener","isEmpty","needScale","stop","onObjectByEvent","object","onObjectRemoved","UpdateEventKind","Inserted","phase","RoomPhase","Connected","Reconnecting","onReconnected","releaseDisposers","reactors","isFunction","notifyReconnected","onPhaseChanged","disposer","windowManger","AttributesDelegate","ids","isReadonly","isManualWritable","roomMembers","dispatchInternalEvent","CameraStore","MainViewProxy","ViewManager","BoxManager","appListeners","AppListeners","displayerStateListener","ReconnectRefresher","onCreated","isPlayer","attributesUpdateCallback","onAppDelete","boxEventListener","getProps","disposeListenUpdated","disposeReaction","safeListenPropsUpdated","mainScenePath","displayerWritableListener","StartCreate","focusByAttributes","retries","warn","bindMainView","needFocus","beforeAddApp","afterAddApp","impl","singleton","v4","genAppId","isRoom","scenePathType","ScenePathType","None","Page","_setMainViewScenePath","Dir","validScenePath","firstSceneName","makeValidScenePath","setSceneIndex","safeDispatchMagixEvent","dispatchMagixEvent","appBoxMap","focusAppId","reconnected","all","offAny","fns","run","thing","src_url_equal_anchor","current_component","element_src","anchor","wholeText","important","component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","flushing","seen_callbacks","$$","fragment","before_update","dirty","ctx","after_update","add_render_callback","outroing","create_fragment2","not_equal","append_styles","parent_component","noop","bound","blank_object","on_mount","on_destroy","on_disconnect","skip_bound","ret","rest","nodes","childNodes","detach","intro","block","local","customElement","new_on_destroy","is_function","cursorName","appliance","avatar","theme","cursorTagBackgroundColor","hasTagName","hasAvatar","hasName","$destroy","detaching","$on","$set","$$props","$$set","ApplianceMap","ApplianceNames","pencil","selector","eraser","shape","memberId","cursorManager","wrapperRect","autoHidden","moveCursor","focusView","viewRect","viewCamera","hide","setMember","createCursor","cursor","point","screen","convertPointToScreen","member","strokeColor","nickName","cursorTextColor","memberColor","memberCursorName","memberAvatar","App","initProps","memberApplianceName","getIcon","memberTheme","memberCursorTextColor","memberCursorTagBackgroundColor","memberOpacity","findMemberByUid","updateComponent","omit","cursorInstances","throttle","updateCursor","getType","convertToPointInWorld","mainViewElement","hideCursor","Leave","mouseMoveListener","mouseLeaveListener","cursorInstance","Cursor","leave","setMainViewDivElement","div","getPoint","updateContainerRect","deleteCursor","sdk","WhiteWebSdk","useMobXState","invisiblePlugins","joinRoomParams","joinRoom","useMultiViews","disableMagixEventDispatchLimit","mountParams","isBoolean","ResizeObserver","ResizeObserverPolyfill","InvisiblePlugin","ViewMode","Broadcaster","NETLESS_DEPS","containerSizeRatio","overwriteStyles","chessboard","checkVersion","_WindowManager","isCreated","initManager","pRetry","playground","sizer","setupWrapper","style2","ensureAttributes","appManager","AppManager","observePlaygroundSize","CursorManager","originSeek","seekToProgressTime","seekResult","disable","scenePreview","fillSceneSnapshot","generateScreenshot","getInvisiblePlugin","setWritable","createInvisiblePlugin","ParamsInvalidError","AppCreateError","setupScenePath","addApp","AppManagerNotInitError","isValidScenePath","InvalidScenePath","appScenePath","putScenes","onAppDestroy","setBoxState","boxState","viewMode","queryAll","closeApp","rectangle","cameraBound","onDestroy","_destroy","containerResizeObserver","scheme","sceneSrc","WhiteVersion","WhiteWebSDKInvalidError","isNull","isObject","Cursors","updateSizer","contentRect","AppDocsViewer","AppMediaPlayer","BuiltinApps","MediaPlayer"],"mappings":"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"}