@netless/window-manager 1.0.0-canary.9 → 1.0.1

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.
Files changed (132) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +90 -64
  3. package/README.zh-cn.md +224 -0
  4. package/dist/index.d.ts +1133 -40
  5. package/dist/index.js +62 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/{index.es.js → index.mjs} +7954 -5445
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/style.css +1 -1
  10. package/docs/advanced.md +55 -55
  11. package/docs/api.md +126 -113
  12. package/docs/app-context.md +248 -209
  13. package/docs/basic.md +25 -26
  14. package/docs/camera.md +21 -21
  15. package/docs/cn/advanced.md +137 -0
  16. package/docs/cn/api.md +311 -0
  17. package/docs/cn/app-context.md +369 -0
  18. package/docs/cn/basic.md +64 -0
  19. package/docs/cn/camera.md +53 -0
  20. package/docs/cn/concept.md +9 -0
  21. package/docs/cn/custom-max-bar.md +31 -0
  22. package/docs/cn/develop-app.md +94 -0
  23. package/docs/cn/export-pdf.md +48 -0
  24. package/docs/cn/migrate.md +60 -0
  25. package/docs/cn/replay.md +40 -0
  26. package/docs/concept.md +6 -5
  27. package/docs/custom-max-bar.md +31 -0
  28. package/docs/develop-app.md +22 -19
  29. package/docs/export-pdf.md +48 -0
  30. package/docs/migrate.md +25 -27
  31. package/docs/quickstart.md +50 -0
  32. package/docs/replay.md +20 -20
  33. package/package.json +32 -22
  34. package/src/App/AppContext.ts +105 -73
  35. package/src/App/AppPageStateImpl.ts +6 -25
  36. package/src/App/AppProxy.ts +41 -166
  37. package/src/App/MagixEvent/index.ts +38 -38
  38. package/src/App/Storage/StorageEvent.ts +13 -13
  39. package/src/App/Storage/index.ts +269 -245
  40. package/src/App/Storage/typings.ts +4 -2
  41. package/src/App/Storage/utils.ts +3 -3
  42. package/src/App/index.ts +0 -1
  43. package/src/AppListener.ts +8 -8
  44. package/src/AppManager.ts +88 -77
  45. package/src/AttributesDelegate.ts +42 -22
  46. package/src/BoxEmitter.ts +12 -6
  47. package/src/BoxManager.ts +128 -108
  48. package/src/ContainerResizeObserver.ts +75 -0
  49. package/src/Cursor/Cursor.svelte +16 -5
  50. package/src/Cursor/Cursor.svelte.d.ts +21 -0
  51. package/src/Cursor/Cursor.ts +77 -13
  52. package/src/Cursor/icons.ts +6 -0
  53. package/src/Cursor/icons2.ts +66 -0
  54. package/src/Cursor/index.ts +127 -26
  55. package/src/Helper.ts +94 -14
  56. package/src/InternalEmitter.ts +2 -7
  57. package/src/Page/index.ts +1 -1
  58. package/src/PageState.ts +6 -5
  59. package/src/ReconnectRefresher.ts +9 -4
  60. package/src/RedoUndo.ts +3 -3
  61. package/src/Register/index.ts +22 -17
  62. package/src/Register/loader.ts +26 -22
  63. package/src/Register/storage.ts +13 -13
  64. package/src/Utils/Common.ts +18 -14
  65. package/src/Utils/Reactive.ts +26 -25
  66. package/src/Utils/RoomHacker.ts +4 -4
  67. package/src/Utils/error.ts +0 -1
  68. package/src/View/IframeBridge.ts +680 -0
  69. package/src/View/MainView.ts +127 -53
  70. package/src/callback.ts +21 -1
  71. package/src/constants.ts +0 -2
  72. package/src/image/pencil-eraser-1.svg +3 -0
  73. package/src/image/pencil-eraser-2.svg +3 -0
  74. package/src/image/pencil-eraser-3.svg +3 -0
  75. package/src/index.ts +220 -83
  76. package/src/style.css +27 -10
  77. package/src/typings.ts +20 -10
  78. package/.prettierignore +0 -7
  79. package/.prettierrc.json +0 -9
  80. package/CHANGELOG.md +0 -196
  81. package/__mocks__/white-web-sdk.ts +0 -50
  82. package/dist/App/AppContext.d.ts +0 -76
  83. package/dist/App/AppPageStateImpl.d.ts +0 -21
  84. package/dist/App/AppProxy.d.ts +0 -86
  85. package/dist/App/AppViewSync.d.ts +0 -11
  86. package/dist/App/MagixEvent/index.d.ts +0 -29
  87. package/dist/App/Storage/StorageEvent.d.ts +0 -8
  88. package/dist/App/Storage/index.d.ts +0 -39
  89. package/dist/App/Storage/typings.d.ts +0 -22
  90. package/dist/App/Storage/utils.d.ts +0 -5
  91. package/dist/App/WhiteboardView.d.ts +0 -22
  92. package/dist/App/index.d.ts +0 -3
  93. package/dist/AppListener.d.ts +0 -21
  94. package/dist/AppManager.d.ts +0 -107
  95. package/dist/AttributesDelegate.d.ts +0 -80
  96. package/dist/BoxEmitter.d.ts +0 -34
  97. package/dist/BoxManager.d.ts +0 -99
  98. package/dist/BuiltinApps.d.ts +0 -5
  99. package/dist/Cursor/Cursor.d.ts +0 -39
  100. package/dist/Cursor/icons.d.ts +0 -3
  101. package/dist/Cursor/index.d.ts +0 -46
  102. package/dist/Helper.d.ts +0 -17
  103. package/dist/InternalEmitter.d.ts +0 -39
  104. package/dist/Page/PageController.d.ts +0 -21
  105. package/dist/Page/index.d.ts +0 -3
  106. package/dist/PageState.d.ts +0 -9
  107. package/dist/ReconnectRefresher.d.ts +0 -24
  108. package/dist/RedoUndo.d.ts +0 -18
  109. package/dist/Register/index.d.ts +0 -28
  110. package/dist/Register/loader.d.ts +0 -4
  111. package/dist/Register/storage.d.ts +0 -8
  112. package/dist/Utils/AppCreateQueue.d.ts +0 -15
  113. package/dist/Utils/Common.d.ts +0 -23
  114. package/dist/Utils/Reactive.d.ts +0 -6
  115. package/dist/Utils/RoomHacker.d.ts +0 -3
  116. package/dist/Utils/error.d.ts +0 -27
  117. package/dist/Utils/log.d.ts +0 -1
  118. package/dist/View/CameraSynchronizer.d.ts +0 -16
  119. package/dist/View/MainView.d.ts +0 -47
  120. package/dist/View/ViewManager.d.ts +0 -13
  121. package/dist/callback.d.ts +0 -24
  122. package/dist/constants.d.ts +0 -49
  123. package/dist/index.cjs.js +0 -46
  124. package/dist/index.umd.js +0 -46
  125. package/dist/typings.d.ts +0 -82
  126. package/jest.config.js +0 -27
  127. package/pnpm-lock.yaml +0 -6302
  128. package/src/App/AppViewSync.ts +0 -68
  129. package/src/App/WhiteboardView.ts +0 -83
  130. package/src/View/CameraSynchronizer.ts +0 -56
  131. package/vite.config.js +0 -51
  132. /package/docs/{qickstart.md → cn/quickstart.md} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/callback.ts","../src/Utils/AppCreateQueue.ts","../src/InternalEmitter.ts","../src/Register/storage.ts","../src/Register/loader.ts","../src/Register/index.ts","../src/Utils/Common.ts","../src/AppListener.ts","../src/Utils/error.ts","../node_modules/.pnpm/side-effect-manager@0.1.5/node_modules/side-effect-manager/dist/side-effect-manager.es.js","../src/Utils/Reactive.ts","../src/App/Storage/StorageEvent.ts","../src/App/Storage/utils.ts","../src/App/Storage/index.ts","../src/App/AppContext.ts","../src/App/AppPageStateImpl.ts","../src/AttributesDelegate.ts","../src/Utils/log.ts","../src/Page/index.ts","../src/BoxEmitter.ts","../src/App/AppProxy.ts","../src/View/ViewManager.ts","../src/View/MainView.ts","../src/RedoUndo.ts","../src/AppManager.ts","../src/Helper.ts","../src/ContainerResizeObserver.ts","../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../node_modules/.pnpm/react@16.14.0/node_modules/react/cjs/react.production.min.js","../node_modules/.pnpm/react@16.14.0/node_modules/react/index.js","../node_modules/.pnpm/@netless+telebox-insider@0.2.28/node_modules/@netless/telebox-insider/dist/telebox-insider.es.js","../src/BoxManager.ts","../node_modules/.pnpm/svelte@3.46.4/node_modules/svelte/internal/index.mjs","../src/Cursor/Cursor.svelte","../src/Cursor/icons2.ts","../src/Cursor/Cursor.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/image/laser-pointer-cursor.svg","../src/image/pencil-eraser-1.svg","../src/image/pencil-eraser-2.svg","../src/image/pencil-eraser-3.svg","../src/Cursor/icons.ts","../src/Cursor/index.ts","../src/PageState.ts","../src/ReconnectRefresher.ts","../src/Utils/RoomHacker.ts","../node_modules/.pnpm/@netless+app-docs-viewer@0.2.18_jspdf@2.5.1/node_modules/@netless/app-docs-viewer/dist/main.es.js","../node_modules/.pnpm/scheduler@0.19.1/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/.pnpm/scheduler@0.19.1/node_modules/scheduler/index.js","../node_modules/.pnpm/react-dom@16.14.0_react@16.14.0/node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/.pnpm/react-dom@16.14.0_react@16.14.0/node_modules/react-dom/index.js","../node_modules/.pnpm/@netless+app-media-player@0.1.3/node_modules/@netless/app-media-player/dist/main.es.js","../src/BuiltinApps.ts","../src/View/IframeBridge.ts","../src/index.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 SetAppFocusIndex = \"SetAppFocusIndex\",\n SwitchViewsToFreedom = \"SwitchViewsToFreedom\",\n MoveCamera = \"MoveCamera\",\n MoveCameraToContain = \"MoveCameraToContain\",\n CursorMove = \"CursorMove\",\n RootDirRemoved = \"RootDirRemoved\",\n Refresh = \"Refresh\",\n InitMainViewCamera = \"InitMainViewCamera\",\n}\n\nexport const MagixEventName = \"__WindowManger\";\nexport const EnsureReconnectEvent = \"__WindowMangerEnsureReconnected__\";\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.16.1\";\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_CONTAINER_RATIO = 9 / 16;\n\nexport const ROOT_DIR = \"/\";\nexport const INIT_DIR = \"/init\";\n\nexport const SETUP_APP_DELAY = 50;\n","import Emittery from \"emittery\";\nimport type { TeleBoxColorScheme, TELE_BOX_STATE } from \"@netless/telebox-insider\";\nimport type { CameraState, SceneState, View, ViewVisionMode } from \"white-web-sdk\";\nimport type { LoadAppEvent } from \"./Register\";\nimport type { PageState } from \"./Page\";\nimport type {\n BoxClosePayload,\n BoxFocusPayload,\n BoxMovePayload,\n BoxResizePayload,\n BoxStateChangePayload,\n} from \"./BoxEmitter\";\nimport type { AppPayload } from \"./typings\";\n\nexport type PublicEvent = {\n mainViewModeChange: ViewVisionMode;\n boxStateChange: `${TELE_BOX_STATE}`;\n darkModeChange: boolean;\n prefersColorSchemeChange: TeleBoxColorScheme;\n cameraStateChange: CameraState;\n mainViewScenePathChange: string;\n mainViewSceneIndexChange: number;\n focusedChange: string | undefined;\n mainViewScenesLengthChange: number;\n canRedoStepsChange: number;\n canUndoStepsChange: number;\n loadApp: LoadAppEvent;\n ready: undefined; // 所有 APP 创建完毕时触发\n sceneStateChange: SceneState;\n pageStateChange: PageState;\n fullscreenChange: boolean;\n appsChange: string[]; // APP 列表变化时触发\n onBoxMove: BoxMovePayload;\n onBoxResize: BoxResizePayload;\n onBoxFocus: BoxFocusPayload;\n onBoxClose: BoxClosePayload;\n onBoxStateChange: BoxStateChangePayload;\n onMainViewMounted: View;\n onMainViewRebind: View;\n onAppViewMounted: AppPayload;\n onAppSetup: string;\n onAppScenePathChange: AppPayload;\n};\n\nexport type CallbacksType = Emittery<PublicEvent>;\nexport const callbacks: CallbacksType = new Emittery();\n","import { callbacks } from \"../callback\";\nimport { SETUP_APP_DELAY } from \"../constants\";\n\nexport type Invoker<T = any> = () => Promise<T | undefined>;\n\nexport class AppCreateQueue {\n private list: Invoker[] = [];\n private currentInvoker: Invoker | undefined;\n private timer: number | undefined;\n public isEmit = false;\n\n private initInterval() {\n return setInterval(() => {\n this.invoke();\n }, 50);\n }\n\n public push<T>(item: Invoker<T>) {\n this.list.push(item);\n this.invoke();\n if (this.timer === undefined && this.list.length > 0) {\n this.timer = this.initInterval();\n }\n }\n\n public invoke() {\n if (this.list.length === 0) {\n return;\n }\n if (this.currentInvoker !== undefined) {\n return;\n }\n\n const item = this.list.shift();\n if (item) {\n this.currentInvoker = item;\n item()\n .then(() => {\n this.invoked();\n })\n .catch(error => {\n console.error(`[WindowManager]: create app error: ${error.message}`);\n this.invoked();\n });\n }\n }\n\n private invoked = () => {\n this.currentInvoker = undefined;\n if (this.list.length === 0) {\n this.clear();\n this.emitReady();\n }\n };\n\n private clear = () => {\n clearInterval(this.timer);\n this.timer = undefined;\n };\n\n public emitReady() {\n if (!this.isEmit) {\n setTimeout(() => {\n callbacks.emit(\"ready\");\n }, SETUP_APP_DELAY);\n }\n this.isEmit = true;\n }\n\n public empty() {\n this.list = [];\n this.clear();\n }\n\n public destroy() {\n if (this.timer) {\n this.clear();\n }\n }\n}\n","import Emittery from \"emittery\";\nimport type { AppInitState, CursorMovePayload } from \"./index\";\n\nexport type RemoveSceneParams = {\n scenePath: string;\n index?: number;\n};\n\nexport type EmitterEvent = {\n onCreated: undefined;\n InitReplay: AppInitState;\n error: Error;\n seekStart: undefined;\n seek: number;\n mainViewMounted: undefined;\n observerIdChange: number;\n boxStateChange: string;\n playgroundSizeChange: DOMRect;\n startReconnect: undefined;\n onReconnected: undefined;\n removeScenes: RemoveSceneParams;\n cursorMove: CursorMovePayload;\n updateManagerRect: undefined;\n focusedChange: { focused: string | undefined; prev: string | undefined };\n rootDirRemoved: undefined; // 根目录整个被删除\n rootDirSceneRemoved: string; // 根目录下的场景被删除\n setReadonly: boolean;\n changePageState: undefined;\n writableChange: boolean;\n containerSizeRatioUpdate: number;\n};\n\nexport type EmitterType = Emittery<EmitterEvent>;\nexport const internalEmitter: EmitterType = new Emittery();\n","const DatabaseName = \"__WindowManagerAppCache\";\n\nlet db: IDBDatabase;\nlet store: IDBObjectStore;\n\nexport type Item = {\n kind: string;\n sourceCode: string;\n};\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<Item | 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 { callbacks } from \"../callback\";\nimport { getItem, setItem } from \"./storage\";\nimport type { NetlessApp } from \"../typings\";\n\nconst Prefix = \"NetlessApp\";\n\nconst TIMEOUT = 10000; // 下载 script 10 秒超时\n\nexport const getScript = async (url: string): Promise<string> => {\n const item = await getItem(url);\n if (item) {\n return item.sourceCode;\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 + `\\n;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 (url: string, key: string, name?: string): Promise<NetlessApp> => {\n const appName = name || Prefix + key;\n callbacks.emit(\"loadApp\", { kind: key, status: \"start\" });\n\n let text: string;\n try {\n text = await getScript(url);\n if (!text || text.length === 0) {\n callbacks.emit(\"loadApp\", { kind: key, status: \"failed\", reason: \"script is empty.\" });\n throw new Error(\"[WindowManager]: script is empty.\");\n }\n } catch (error) {\n callbacks.emit(\"loadApp\", { kind: key, status: \"failed\", reason: error.message });\n throw error;\n }\n return getResult(text, appName, key);\n};\n\nconst getResult = (text: string, appName: string, key: string): NetlessApp => {\n try {\n const result = executeScript(text, appName);\n callbacks.emit(\"loadApp\", { kind: key, status: \"success\" });\n return result;\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 const result = executeScript(text, appName);\n callbacks.emit(\"loadApp\", { kind: key, status: \"success\" });\n return result;\n }\n callbacks.emit(\"loadApp\", { kind: key, status: \"failed\", reason: error.message });\n throw error;\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 { loadApp } from \"./loader\";\nimport type { NetlessApp, RegisterEvents, RegisterParams } from \"../typings\";\n\nexport type LoadAppEvent = {\n kind: string;\n status: \"start\" | \"success\" | \"failed\";\n reason?: string;\n};\n\nexport type SyncRegisterAppPayload = { kind: string; src: string; name: string | undefined };\nexport type SyncRegisterApp = (payload: SyncRegisterAppPayload) => void;\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 private syncRegisterApp: SyncRegisterApp | null = null;\n\n public setSyncRegisterApp(fn: SyncRegisterApp) {\n this.syncRegisterApp = fn;\n }\n\n public onSyncRegisterAppChange = (payload: SyncRegisterAppPayload) => {\n this.register({ kind: payload.kind, src: payload.src });\n };\n\n public async register(params: RegisterParams): Promise<void> {\n this.appClassesCache.delete(params.kind);\n this.registered.set(params.kind, params);\n\n const paramSrc = params.src;\n let downloadApp: () => Promise<NetlessApp>;\n\n if (typeof paramSrc === \"string\") {\n downloadApp = async () => {\n const result = (await loadApp(paramSrc, params.kind, params.name)) as any;\n if (result.__esModule) {\n return result.default;\n }\n return result;\n };\n if (this.syncRegisterApp) {\n this.syncRegisterApp({ kind: params.kind, src: paramSrc, name: params.name });\n }\n }\n if (typeof paramSrc === \"function\") {\n downloadApp = async () => {\n let appClass = (await paramSrc()) as any;\n if (appClass) {\n if (appClass.__esModule || appClass.default) {\n appClass = appClass.default;\n }\n return appClass;\n } else {\n throw new Error(`[WindowManager]: load remote script failed, ${paramSrc}`);\n }\n };\n }\n if (typeof paramSrc === \"object\") {\n downloadApp = async () => paramSrc;\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 unregister(kind: string) {\n this.appClasses.delete(kind);\n this.appClassesCache.delete(kind);\n this.registered.delete(kind);\n const kindEmitter = this.kindEmitters.get(kind);\n if (kindEmitter) {\n kindEmitter.clearListeners();\n this.kindEmitters.delete(kind);\n }\n }\n\n public async notifyApp<T extends keyof RegisterEvents>(\n kind: string,\n event: T,\n payload: RegisterEvents[T]\n ) {\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 { internalEmitter } from \"../InternalEmitter\";\nimport { ROOT_DIR } from \"../constants\";\nimport { ScenePathType } from \"white-web-sdk\";\nimport { v4 } from \"uuid\";\nimport type { PublicEvent } from \"../callback\";\nimport type { Displayer, ViewVisionMode, Room, View, SceneDefinition } 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 return view;\n }\n};\n\nexport const setViewSceneIndex = (view: View, index: number) => {\n if (view.focusSceneIndex !== index) {\n view.focusSceneIndex = index;\n return view;\n }\n};\n\nexport const setScenePath = (room: Room | undefined, scenePath: string) => {\n if (room && room.isWritable) {\n if (room.state.sceneState.scenePath !== scenePath) {\n const nextScenePath = scenePath === \"/\" ? \"\" : scenePath;\n room.setScenePath(nextScenePath);\n }\n }\n};\n\nexport const getScenePath = (\n room: Room | undefined,\n dir: string | undefined,\n index: number\n): string | undefined => {\n if (room && dir) {\n const scenes = entireScenes(room);\n const scene = scenes[dir]?.[index];\n if (scene) {\n return `${dir}/${scene.name}`;\n }\n }\n};\n\nexport const removeScenes = (room: Room | undefined, scenePath: string, index?: number) => {\n if (room) {\n const type = room.scenePathType(scenePath);\n if (type !== ScenePathType.None) {\n (room.removeScenes as any)(scenePath, index);\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 (internalEmitter.listenerCount(\"error\") > 0) {\n internalEmitter.emit(\"error\", error);\n } else {\n console.log(\"[WindowManager]:\", error);\n }\n};\n\nexport const addEmitterOnceListener = (event: any, listener: any) => {\n internalEmitter.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, index = 0) => {\n const scenes = entireScenes(displayer)[scenePath];\n if (!scenes) return;\n const scene = scenes[index];\n if (!scene) return;\n const firstSceneName = scene.name;\n if (scenePath === ROOT_DIR) {\n return `/${firstSceneName}`;\n } else {\n return `${scenePath}/${firstSceneName}`;\n }\n};\n\nexport const entireScenes = (displayer: Displayer) => {\n return displayer.entireScenes();\n};\n\nexport const putScenes = (\n room: Room | undefined,\n path: string,\n scenes: SceneDefinition[],\n index?: number\n) => {\n for (let i = 0; i < scenes.length; ++i) {\n if (scenes[i].name?.includes(\"/\")) {\n throw new Error(\"scenes name can not have '/'\");\n }\n }\n return room?.putScenes(path, scenes, index);\n};\n\nexport const isValidScenePath = (scenePath: string) => {\n return scenePath.startsWith(\"/\");\n};\n\nexport const parseSceneDir = (scenePath: string) => {\n const sceneList = scenePath.split(\"/\");\n sceneList.pop();\n let sceneDir = sceneList.join(\"/\");\n // \"/page1\" 的 dir 为 \"/\"\n if (sceneDir === \"\") {\n sceneDir = \"/\";\n }\n return sceneDir;\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\n .split(\".\")\n .map(s => s.padStart(2, \"0\"))\n .join(\"\");\n return parseInt(versionString);\n};\n\nexport const wait = (time: number) => new Promise(resolve => setTimeout(resolve, time));\n\n// rootDirPage: /page1 || / page2\n// notRootDirPage: /dir1/page1 || /dir1/page2\nexport const isRootDirPage = (scenePath: string) => {\n const delimiterCount = scenePath.split(\"\").reduce((prev, cur) => {\n if (cur === ROOT_DIR) {\n prev += 1;\n }\n return prev;\n }, 0);\n return delimiterCount === 1;\n};\n","import { callbacks } from \"./callback\";\nimport { internalEmitter } from \"./InternalEmitter\";\nimport { Events, MagixEventName } from \"./constants\";\nimport { isEqual, omit } from \"lodash\";\nimport { setViewFocusScenePath } from \"./Utils/Common\";\nimport type { AnimationMode, Camera, Event } from \"white-web-sdk\";\nimport type { AppManager } from \"./AppManager\";\nimport type { TeleBoxState } from \"@netless/telebox-insider\";\n\ntype SetAppFocusIndex = {\n type: \"main\" | \"app\";\n appID?: string;\n index: number;\n};\n\nexport class AppListeners {\n private displayer = this.manager.displayer;\n\n constructor(private manager: AppManager) {}\n\n private get boxManager() {\n return this.manager.boxManager;\n }\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.AppBoxStateChange: {\n this.boxStateChangeHandler(data.payload);\n break;\n }\n case Events.SetMainViewScenePath: {\n this.setMainViewScenePathHandler(data.payload);\n break;\n }\n case Events.MoveCamera: {\n this.moveCameraHandler(data.payload);\n break;\n }\n case Events.MoveCameraToContain: {\n this.moveCameraToContainHandler(data.payload);\n break;\n }\n case Events.CursorMove: {\n this.cursorMoveHandler(data.payload);\n break;\n }\n case Events.RootDirRemoved: {\n this.rootDirRemovedHandler();\n break;\n }\n case Events.Refresh: {\n this.refreshHandler();\n break;\n }\n case Events.InitMainViewCamera: {\n this.initMainViewCameraHandler();\n break;\n }\n case Events.SetAppFocusIndex: {\n this.setAppFocusViewIndexHandler(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 boxStateChangeHandler = (state: TeleBoxState) => {\n callbacks.emit(\"boxStateChange\", state);\n };\n\n private setMainViewScenePathHandler = ({ nextScenePath }: { nextScenePath: string }) => {\n setViewFocusScenePath(this.manager.mainView, nextScenePath);\n callbacks.emit(\"mainViewScenePathChange\", nextScenePath);\n };\n\n private moveCameraHandler = (\n payload: Camera & { animationMode?: AnimationMode | undefined }\n ) => {\n if (isEqual(omit(payload, [\"animationMode\"]), { ...this.manager.mainView.camera })) return;\n this.manager.mainView.moveCamera(payload);\n };\n\n private moveCameraToContainHandler = (payload: any) => {\n this.manager.mainView.moveCameraToContain(payload);\n };\n\n private cursorMoveHandler = (payload: any) => {\n internalEmitter.emit(\"cursorMove\", payload);\n };\n\n private rootDirRemovedHandler = () => {\n this.manager.createRootDirScenesCallback();\n this.manager.mainViewProxy.rebind();\n internalEmitter.emit(\"rootDirRemoved\");\n };\n\n private refreshHandler = () => {\n this.manager.windowManger._refresh();\n };\n\n private initMainViewCameraHandler = () => {\n this.manager.mainViewProxy.addCameraReaction();\n };\n\n private setAppFocusViewIndexHandler = (payload: SetAppFocusIndex) => {\n if (payload.type === \"main\") {\n this.manager.setSceneIndexWithoutSync(payload.index);\n } else if (payload.type === \"app\" && payload.appID) {\n const app = this.manager.appProxies.get(payload.appID);\n if (app) {\n app.setSceneIndexWithoutSync(payload.index);\n }\n }\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}\n\nexport class BoxManagerNotFoundError extends Error {\n override message = \"[WindowManager]: boxManager not found\";\n}\n\nexport class BindContainerRoomPhaseInvalidError extends Error {\n override message = \"[WindowManager]: room phase only Connected can be bindContainer\";\n}\n","const e=\"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",s=e.length,t=Array(20),r=()=>{for(let r=0;r<20;r++)t[r]=e.charAt(Math.random()*s);return t.join(\"\")};class o{constructor(){this.disposers=new Map}add(e,s=r()){return this.flush(s),this.disposers.set(s,e()),s}addDisposer(e,s=r()){return this.flush(s),this.disposers.set(s,e),s}addEventListener(e,s,t,o,i=r()){return this.add((()=>(e.addEventListener(s,t,o),()=>e.removeEventListener(s,t,o))),i),i}setTimeout(e,s,t=r()){return this.add((()=>{const r=window.setTimeout((()=>{this.remove(t),e()}),s);return()=>window.clearTimeout(r)}),t)}setInterval(e,s,t=r()){return this.add((()=>{const t=window.setInterval(e,s);return()=>window.clearInterval(t)}),t)}remove(e){const s=this.disposers.get(e);return this.disposers.delete(e),s}flush(e){const s=this.remove(e);if(s)try{s()}catch(t){console.error(t)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(s){console.error(s)}})),this.disposers.clear()}}export{o as SideEffectManager,r as genUID};\n//# sourceMappingURL=side-effect-manager.es.js.map\n","import { listenUpdated, unlistenUpdated, reaction, UpdateEventKind } from \"white-web-sdk\";\nimport type { AkkoObjectUpdatedProperty, AkkoObjectUpdatedListener } from \"white-web-sdk\";\nimport { isObject } from \"lodash\";\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 {\n fireImmediately: true,\n }\n );\n }\n };\n};\n\nexport const safeListenPropsUpdated = <T>(\n getProps: () => T,\n callback: AkkoObjectUpdatedListener<T>,\n onDestroyed?: (props: unknown) => void\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 if (isObject(props)) {\n disposeListenUpdated = () => unlistenUpdated(props, callback);\n listenUpdated(props, callback);\n } else {\n onDestroyed?.(props);\n }\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","export type StorageEventListener<T> = (event: T) => void;\n\nexport class StorageEvent<TMessage> {\n listeners = new Set<StorageEventListener<TMessage>>();\n\n get length(): number {\n return this.listeners.size;\n }\n\n dispatch(message: TMessage): void {\n this.listeners.forEach(callback => callback(message));\n }\n\n addListener(listener: StorageEventListener<TMessage>): void {\n this.listeners.add(listener);\n }\n\n removeListener(listener: StorageEventListener<TMessage>): void {\n this.listeners.delete(listener);\n }\n}\n","import { has } from \"lodash\";\nimport { genUID } from \"side-effect-manager\";\nimport type { AutoRefValue, ExtractRawValue, RefValue } from \"./typings\";\n\nexport const plainObjectKeys = Object.keys as <T>(o: T) => Array<Extract<keyof T, string>>;\n\nexport function isRef<TValue = unknown>(e: unknown): e is RefValue<TValue> {\n return Boolean(has(e, \"__isRef\"));\n}\n\nexport function makeRef<TValue>(v: TValue): RefValue<TValue> {\n return { k: genUID(), v, __isRef: true };\n}\n\nexport function makeAutoRef<TValue>(v: TValue): AutoRefValue<TValue> {\n return isRef<ExtractRawValue<TValue>>(v) ? v : makeRef(v as ExtractRawValue<TValue>);\n}\n","import type { AkkoObjectUpdatedProperty } from \"white-web-sdk\";\nimport type { AppContext } from \"../AppContext\";\nimport type {\n Diff,\n MaybeRefValue,\n RefValue,\n StorageStateChangedEvent,\n StorageStateChangedListener,\n StorageStateChangedListenerDisposer,\n} from \"./typings\";\n\nimport { get, has, isObject, mapValues, noop, size } from \"lodash\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { safeListenPropsUpdated } from \"../../Utils/Reactive\";\nimport { StorageEvent } from \"./StorageEvent\";\nimport { isRef, makeRef, plainObjectKeys } from \"./utils\";\n\nexport * from \"./typings\";\n\nexport const STORAGE_NS = \"_WM-STORAGE_\";\n\nexport class Storage<TState extends Record<string, any> = any> implements Storage<TState> {\n readonly id: string | null;\n\n private readonly _context: AppContext;\n private readonly _sideEffect = new SideEffectManager();\n private _state: TState;\n private _destroyed = false;\n\n private _refMap = new WeakMap<any, RefValue>();\n\n /**\n * `setState` alters local state immediately before sending to server. This will cache the old value for onStateChanged diffing.\n */\n private _lastValue = new Map<string | number | symbol, TState[Extract<keyof TState, string>]>();\n\n constructor(context: AppContext, id?: string, defaultState?: TState) {\n if (defaultState && !isObject(defaultState)) {\n throw new Error(`Default state for Storage ${id} is not an object.`);\n }\n\n this._context = context;\n this.id = id || null;\n\n this._state = {} as TState;\n const rawState = this._getRawState(this._state);\n\n if (this._context.getIsWritable()) {\n if (this.id === null) {\n if (context.isAddApp && defaultState) {\n this.setState(defaultState);\n }\n } else {\n if (rawState === this._state || !isObject(rawState)) {\n if (!get(this._context.getAttributes(), [STORAGE_NS])) {\n this._context.updateAttributes([STORAGE_NS], {});\n }\n this._context.updateAttributes([STORAGE_NS, this.id], this._state);\n if (defaultState) {\n this.setState(defaultState);\n }\n }\n }\n }\n\n // strip mobx\n plainObjectKeys(rawState).forEach(key => {\n if (this.id === null && key === STORAGE_NS) {\n return;\n }\n try {\n const rawValue = isObject(rawState[key])\n ? JSON.parse(JSON.stringify(rawState[key]))\n : rawState[key];\n if (isRef<TState[Extract<keyof TState, string>]>(rawValue)) {\n this._state[key] = rawValue.v;\n if (isObject(rawValue.v)) {\n this._refMap.set(rawValue.v, rawValue);\n }\n } else {\n this._state[key] = rawValue;\n }\n } catch (e) {\n console.error(e);\n }\n });\n\n this._sideEffect.addDisposer(\n safeListenPropsUpdated(\n () =>\n this.id === null\n ? context.getAttributes()\n : get(context.getAttributes(), [STORAGE_NS, this.id]),\n this._updateProperties.bind(this),\n this.destroy.bind(this)\n )\n );\n }\n\n get state(): Readonly<TState> {\n if (this._destroyed) {\n console.warn(`Accessing state on destroyed Storage \"${this.id}\"`);\n }\n return this._state;\n }\n\n readonly onStateChanged = new StorageEvent<StorageStateChangedEvent<TState>>();\n\n addStateChangedListener(\n handler: StorageStateChangedListener<TState>\n ): StorageStateChangedListenerDisposer {\n this.onStateChanged.addListener(handler);\n return () => this.onStateChanged.removeListener(handler);\n }\n\n ensureState(state: Partial<TState>): void {\n return this.setState(\n plainObjectKeys(state).reduce((payload, key) => {\n if (!has(this._state, key)) {\n payload[key] = state[key];\n }\n return payload;\n }, {} as Partial<TState>)\n );\n }\n\n setState(state: Partial<TState>): void {\n if (this._destroyed) {\n console.error(new Error(`Cannot call setState on destroyed Storage \"${this.id}\".`));\n return;\n }\n\n if (!this._context.getIsWritable()) {\n console.error(\n new Error(`Cannot setState on Storage \"${this.id}\" without writable access`),\n state\n );\n return;\n }\n\n const keys = plainObjectKeys(state);\n if (keys.length > 0) {\n keys.forEach(key => {\n const value = state[key];\n if (value === this._state[key]) {\n return;\n }\n\n if (value === void 0) {\n this._lastValue.set(key, this._state[key]);\n delete this._state[key];\n this._setRawState(key, value);\n } else {\n this._lastValue.set(key, this._state[key]);\n this._state[key] = value as TState[Extract<keyof TState, string>];\n\n let payload: MaybeRefValue<typeof value> = value;\n if (isObject(value)) {\n let refValue = this._refMap.get(value);\n if (!refValue) {\n refValue = makeRef(value);\n this._refMap.set(value, refValue);\n }\n payload = refValue;\n }\n\n this._setRawState(key, payload);\n }\n });\n }\n }\n\n /**\n * Empty storage data.\n */\n emptyStorage(): void {\n if (size(this._state) <= 0) {\n return;\n }\n\n if (this._destroyed) {\n console.error(new Error(`Cannot empty destroyed Storage \"${this.id}\".`));\n return;\n }\n\n if (!this._context.getIsWritable()) {\n console.error(new Error(`Cannot empty Storage \"${this.id}\" without writable access.`));\n return;\n }\n\n this.setState(mapValues(this._state, noop as () => undefined));\n }\n\n /**\n * Delete storage index with all of its data and destroy the Storage instance.\n */\n deleteStorage(): void {\n if (this.id === null) {\n throw new Error(`Cannot delete main Storage`);\n }\n\n if (!this._context.getIsWritable()) {\n console.error(new Error(`Cannot delete Storage \"${this.id}\" without writable access.`));\n return;\n }\n\n this.destroy();\n\n this._context.updateAttributes([STORAGE_NS, this.id], void 0);\n }\n\n get destroyed(): boolean {\n return this._destroyed;\n }\n\n /**\n * Destroy the Storage instance. The data will be kept.\n */\n destroy() {\n this._destroyed = true;\n this._sideEffect.flushAll();\n }\n\n private _getRawState(): TState | undefined;\n private _getRawState(defaultValue: TState): TState;\n private _getRawState(defaultValue?: TState): TState | undefined {\n if (this.id === null) {\n return this._context.getAttributes() ?? defaultValue;\n } else {\n return get(this._context.getAttributes(), [STORAGE_NS, this.id], defaultValue);\n }\n }\n\n private _setRawState(key: string, value: any): void {\n if (this.id === null) {\n if (key === STORAGE_NS) {\n throw new Error(`Cannot set attribute internal filed \"${STORAGE_NS}\"`);\n }\n return this._context.updateAttributes([key], value);\n } else {\n return this._context.updateAttributes([STORAGE_NS, this.id, key], value);\n }\n }\n\n private _updateProperties(\n actions: ReadonlyArray<AkkoObjectUpdatedProperty<TState, string>>\n ): void {\n if (this._destroyed) {\n console.error(\n new Error(`Cannot call _updateProperties on destroyed Storage \"${this.id}\".`)\n );\n return;\n }\n\n if (actions.length > 0) {\n const diffs: Diff<TState> = {};\n\n for (let i = 0; i < actions.length; i++) {\n try {\n const action = actions[i];\n const key = action.key as Extract<keyof TState, string>;\n\n if (this.id === null && key === STORAGE_NS) {\n continue;\n }\n\n const value = isObject(action.value)\n ? JSON.parse(JSON.stringify(action.value))\n : action.value;\n let oldValue: TState[Extract<keyof TState, string>] | undefined;\n if (this._lastValue.has(key)) {\n oldValue = this._lastValue.get(key);\n this._lastValue.delete(key);\n }\n\n switch (action.kind) {\n case 2: {\n // Removed\n if (has(this._state, key)) {\n oldValue = this._state[key];\n delete this._state[key];\n }\n diffs[key] = { oldValue };\n break;\n }\n default: {\n let newValue = value;\n\n if (isRef<TState[Extract<keyof TState, string>]>(value)) {\n const { k, v } = value;\n const curValue = this._state[key];\n if (isObject(curValue) && this._refMap.get(curValue)?.k === k) {\n newValue = curValue;\n } else {\n newValue = v;\n if (isObject(v)) {\n this._refMap.set(v, value);\n }\n }\n }\n\n if (newValue !== this._state[key]) {\n oldValue = this._state[key];\n this._state[key] = newValue;\n }\n\n diffs[key] = { newValue, oldValue };\n break;\n }\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n this.onStateChanged.dispatch(diffs);\n }\n }\n}\n","import { BoxNotCreatedError } from \"../Utils/error\";\nimport { putScenes } from \"../Utils/Common\";\nimport { Storage } from \"./Storage\";\nimport {\n autorun,\n listenDisposed,\n listenUpdated,\n reaction,\n unlistenDisposed,\n unlistenUpdated,\n toJS,\n} from \"white-web-sdk\";\nimport type {\n Room,\n SceneDefinition,\n View,\n EventListener as WhiteEventListener,\n} 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\";\nimport type {\n MagixEventAddListener,\n MagixEventDispatcher,\n MagixEventRemoveListener,\n} from \"./MagixEvent\";\nimport type { AddPageParams, PageController, PageState } from \"../Page\";\nimport { internalEmitter } from \"../InternalEmitter\";\nimport { callbacks } from \"../callback\";\n\nexport class AppContext<TAttributes extends {} = any, TMagixEventPayloads = any, TAppOptions = any>\n implements PageController\n{\n public readonly emitter: Emittery<AppEmitterEvent<TAttributes>>;\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\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 private boxManager: BoxManager,\n public appId: string,\n private appProxy: AppProxy,\n private appOptions?: TAppOptions | (() => TAppOptions)\n ) {\n this.emitter = appProxy.appEmitter;\n this.isAddApp = appProxy.isAddApp;\n }\n\n public getDisplayer = () => {\n return this.manager.displayer;\n };\n\n /** @deprecated Use context.storage.state instead. */\n public getAttributes = (): TAttributes | 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 return this.appProxy.scenes;\n } else {\n return appAttr?.options[\"scenes\"];\n }\n };\n\n public getView = (): View | undefined => {\n return this.appProxy.view;\n };\n\n public mountView = (dom: HTMLElement): void => {\n const view = this.getView();\n if (view) {\n view.divElement = dom as HTMLDivElement;\n setTimeout(() => {\n // 渲染需要时间,延迟 refresh\n this.getRoom()?.refreshViewSize();\n callbacks.emit(\"onAppViewMounted\", { appId: this.appId, view });\n }, 1000);\n }\n };\n\n public getInitScenePath = () => {\n return this.manager.getAppInitPath(this.appId);\n };\n\n /** Get App writable status. */\n public getIsWritable = (): boolean => {\n return this.manager.canOperate;\n };\n\n /** Get the App Window UI box. */\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 /** @deprecated Use context.storage.setState instead. */\n public setAttributes = (attributes: TAttributes) => {\n this.manager.safeSetAttributes({ [this.appId]: attributes });\n };\n\n /** @deprecated Use context.storage.setState instead. */\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 setScenePath = async (scenePath: string): Promise<void> => {\n if (!this.appProxy.box) return;\n this.appProxy.setFullPath(scenePath);\n // 兼容 15 版本 SDK 的切页\n this.getRoom()?.setScenePath(scenePath);\n };\n\n /** Get the local App options. */\n public getAppOptions = (): TAppOptions | undefined => {\n return typeof this.appOptions === \"function\"\n ? (this.appOptions as () => TAppOptions)()\n : this.appOptions;\n };\n\n private _storage?: Storage<TAttributes>;\n\n /** Main Storage for attributes. */\n public get storage(): Storage<TAttributes> {\n if (!this._storage) {\n this._storage = new Storage(this);\n }\n return this._storage;\n }\n\n /**\n * Create separated storages for flexible state management.\n * @param storeId Namespace for the storage. Storages of the same namespace share the same data.\n * @param defaultState Default state for initial storage creation.\n * @returns\n */\n public createStorage = <TState extends {}>(\n storeId: string,\n defaultState?: TState\n ): Storage<TState> => {\n const storage = new Storage(this, storeId, defaultState);\n this.emitter.on(\"destroy\", () => {\n storage.destroy();\n });\n return storage;\n };\n\n /** Dispatch events to other clients (and self). */\n public dispatchMagixEvent: MagixEventDispatcher<TMagixEventPayloads> = (...args) => {\n // can't dispatch events on replay mode\n const appScopeEvent = `${this.appId}:${args[0]}`;\n return this.manager.room?.dispatchMagixEvent(appScopeEvent, args[1]);\n };\n\n /** Listen to events from others clients (and self messages). */\n public addMagixEventListener: MagixEventAddListener<TMagixEventPayloads> = (\n event,\n handler,\n options\n ) => {\n const appScopeEvent = `${this.appId}:${event}`;\n this.manager.displayer.addMagixEventListener(\n appScopeEvent,\n handler as WhiteEventListener,\n options\n );\n return () =>\n this.manager.displayer.removeMagixEventListener(\n appScopeEvent,\n handler as WhiteEventListener\n );\n };\n\n /** Remove a Magix event listener. */\n public removeMagixEventListener = this.manager.displayer.removeMagixEventListener.bind(\n this.manager.displayer\n ) as MagixEventRemoveListener<TMagixEventPayloads>;\n\n /** PageController */\n public nextPage = async (): Promise<boolean> => {\n const nextIndex = this.pageState.index + 1;\n if (nextIndex > this.pageState.length - 1) {\n console.warn(\"[WindowManager] nextPage: index out of range\");\n return false;\n }\n this.appProxy.setSceneIndex(nextIndex);\n return true;\n };\n\n public jumpPage = async (index: number): Promise<boolean> => {\n if (!(0 <= index && index < this.pageState.length)) {\n console.warn(\"[WindowManager] nextPage: index out of range\");\n return false;\n }\n this.appProxy.setSceneIndex(index);\n return true;\n };\n\n public prevPage = async (): Promise<boolean> => {\n const nextIndex = this.pageState.index - 1;\n if (nextIndex < 0) {\n console.warn(\"[WindowManager] prevPage: index out of range\");\n return false;\n }\n this.appProxy.setSceneIndex(nextIndex);\n return true;\n };\n\n public addPage = async (params?: AddPageParams) => {\n const after = params?.after;\n const scene = params?.scene;\n const scenePath = this.appProxy.scenePath;\n if (!scenePath) return;\n if (after) {\n const nextIndex = this.pageState.index + 1;\n putScenes(this.manager.room, scenePath, [scene || {}], nextIndex);\n } else {\n putScenes(this.manager.room, scenePath, [scene || {}]);\n }\n };\n\n public removePage = async (index?: number): Promise<boolean> => {\n const needRemoveIndex = index === undefined ? this.pageState.index : index;\n if (this.pageState.length === 1) {\n console.warn(`[WindowManager]: can not remove the last page`);\n return false;\n }\n if (needRemoveIndex < 0 || needRemoveIndex >= this.pageState.length) {\n console.warn(`[WindowManager]: page index ${index} out of range`);\n return false;\n }\n return this.appProxy.removeSceneByIndex(needRemoveIndex);\n };\n\n public get pageState(): PageState {\n return this.appProxy.pageState;\n }\n\n public get kind(): string {\n return this.appProxy.kind;\n }\n\n /** Dispatch a local event to `manager.onAppEvent()`. */\n public dispatchAppEvent(type: string, value?: any): void {\n internalEmitter.emit(`custom-${this.kind}` as any, {\n kind: this.kind,\n appId: this.appId,\n type,\n value,\n });\n }\n}\n","import type { Displayer, ScenesCallbacksNode, View } from \"white-web-sdk\";\nimport type { PageState } from \"../Page\";\n\nexport type AppPageStateParams = {\n displayer: Displayer;\n scenePath: string | undefined;\n view: View | undefined;\n notifyPageStateChange: () => void;\n};\n\nexport class AppPageStateImpl {\n private sceneNode: ScenesCallbacksNode | null = null;\n\n constructor(private params: AppPageStateParams) {\n const { displayer, scenePath } = this.params;\n if (scenePath) {\n this.sceneNode = displayer.createScenesCallback(scenePath, {\n onAddScene: this.onSceneChange,\n onRemoveScene: this.onSceneChange,\n });\n }\n }\n\n private onSceneChange = (node: ScenesCallbacksNode) => {\n this.sceneNode = node;\n this.params.notifyPageStateChange();\n };\n\n public getFullPath(index: number) {\n const scenes = this.sceneNode?.scenes;\n if (this.params.scenePath && scenes) {\n const name = scenes[index];\n if (name) {\n return `${this.params.scenePath}/${name}`;\n }\n }\n }\n\n public toObject(): PageState {\n return {\n index: this.params.view?.focusSceneIndex || 0,\n length: this.sceneNode?.scenes.length || 0,\n };\n }\n\n public destroy() {\n this.sceneNode?.dispose();\n }\n}\n","import { AppAttributes } from \"./constants\";\nimport { get, isObject, pick } from \"lodash\";\nimport { setViewFocusScenePath } from \"./Utils/Common\";\nimport type { AddAppParams, AppSyncAttributes } from \"./index\";\nimport type { Camera, Size, View } from \"white-web-sdk\";\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 Registered = \"registered\",\n IframeBridge = \"iframeBridge\",\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 type StoreContext = {\n getAttributes: () => any;\n safeUpdateAttributes: (keys: string[], value: any) => void;\n safeSetAttributes: (attributes: any) => void;\n};\n\nexport type ICamera = Camera & { id: string };\n\nexport type ISize = Size & { id: string };\n\nexport class AttributesDelegate {\n constructor(private context: StoreContext) {}\n\n public setContext(context: StoreContext) {\n this.context = context;\n }\n\n public get attributes() {\n return this.context.getAttributes();\n }\n\n public apps(): Apps {\n return get(this.attributes, [Fields.Apps]);\n }\n\n public get focus(): string | undefined {\n return get(this.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.attributes, [\"maximized\"]);\n }\n\n public getMinimized() {\n return get(this.attributes, [\"minimized\"]);\n }\n\n public setupAppAttributes(params: AddAppParams, id: string, isDynamicPPT: boolean) {\n const attributes = this.attributes;\n if (!attributes.apps) {\n this.context.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 attrs.createdAt = Date.now();\n this.context.safeUpdateAttributes([Fields.Apps, id], attrs);\n this.context.safeUpdateAttributes([Fields.Apps, id, Fields.State], {\n [AppAttributes.Size]: {},\n [AppAttributes.Position]: {},\n [AppAttributes.SceneIndex]: 0,\n });\n }\n\n public updateAppState(appId: string, stateName: AppAttributes, state: any) {\n if (get(this.attributes, [Fields.Apps, appId, Fields.State])) {\n this.context.safeUpdateAttributes([Fields.Apps, appId, Fields.State, stateName], state);\n }\n }\n\n public cleanAppAttributes(id: string) {\n this.context.safeUpdateAttributes([Fields.Apps, id], undefined);\n this.context.safeSetAttributes({ [id]: undefined });\n const focus = this.attributes[Fields.Focus];\n if (focus === id) {\n this.cleanFocus();\n }\n }\n\n public cleanFocus() {\n this.context.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(): string | undefined {\n return this.attributes[\"_mainScenePath\"];\n }\n\n public getMainViewSceneIndex() {\n return this.attributes[\"_mainSceneIndex\"];\n }\n\n public getBoxState() {\n return this.attributes[Fields.BoxState];\n }\n\n public setMainViewScenePath(scenePath: string) {\n this.context.safeSetAttributes({ _mainScenePath: scenePath });\n }\n\n public setMainViewSceneIndex(index: number) {\n this.context.safeSetAttributes({ _mainSceneIndex: index });\n }\n\n public getMainViewCamera(): MainViewCamera {\n return get(this.attributes, [Fields.MainViewCamera]);\n }\n\n public getMainViewSize(): MainViewSize {\n return get(this.attributes, [Fields.MainViewSize]);\n }\n\n public setMainViewCamera(camera: ICamera) {\n this.context.safeSetAttributes({ [Fields.MainViewCamera]: { ...camera } });\n }\n\n public setMainViewSize(size: ISize) {\n if (size.width === 0 || size.height === 0) return;\n this.context.safeSetAttributes({ [Fields.MainViewSize]: { ...size } });\n }\n\n public setMainViewCameraAndSize(camera: ICamera, size: ISize) {\n if (size.width === 0 || size.height === 0) return;\n this.context.safeSetAttributes({\n [Fields.MainViewCamera]: { ...camera },\n [Fields.MainViewSize]: { ...size },\n });\n }\n\n public setAppFocus = (appId: string, focus: boolean) => {\n if (focus) {\n this.context.safeSetAttributes({ [Fields.Focus]: appId });\n } else {\n this.context.safeSetAttributes({ [Fields.Focus]: undefined });\n }\n };\n\n public updateCursor(uid: string, position: Position) {\n if (!get(this.attributes, [Fields.Cursors])) {\n this.context.safeUpdateAttributes([Fields.Cursors], {});\n }\n if (!get(this.attributes, [Fields.Cursors, uid])) {\n this.context.safeUpdateAttributes([Fields.Cursors, uid], {});\n }\n this.context.safeUpdateAttributes([Fields.Cursors, uid, Fields.Position], position);\n }\n\n public updateCursorState(uid: string, cursorState: string | undefined) {\n if (!get(this.attributes, [Fields.Cursors, uid])) {\n this.context.safeUpdateAttributes([Fields.Cursors, uid], {});\n }\n this.context.safeUpdateAttributes([Fields.Cursors, uid, Fields.CursorState], cursorState);\n }\n\n public getCursorState(uid: string) {\n return get(this.attributes, [Fields.Cursors, uid, Fields.CursorState]);\n }\n\n public cleanCursor(uid: string) {\n this.context.safeUpdateAttributes([Fields.Cursors, uid], undefined);\n }\n\n // TODO 状态中保存一个 SceneName 优化性能\n public setMainViewFocusPath(mainView: View) {\n const scenePath = this.getMainViewScenePath();\n if (scenePath) {\n setViewFocusScenePath(mainView, scenePath);\n }\n }\n\n public getIframeBridge() {\n return get(this.attributes, [Fields.IframeBridge]);\n }\n\n public setIframeBridge(data: any) {\n if (isObject(data)) {\n const oldState = this.getIframeBridge();\n for (const key in data) {\n const value = (data as any)[key];\n if (oldState[key] !== value) {\n this.context.safeUpdateAttributes([Fields.IframeBridge, key], value);\n }\n }\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\nexport const store = new AttributesDelegate({\n getAttributes: () => {\n throw new Error(\"getAttributes not implemented\");\n },\n safeSetAttributes: () => {\n throw new Error(\"safeSetAttributes not implemented\");\n },\n safeUpdateAttributes: () => {\n throw new Error(\"safeUpdateAttributes not implemented\");\n },\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 type { PageState } from \"./PageController\";\n\nexport * from \"./PageController\";\n\nexport const calculateNextIndex = (index: number, pageState: PageState) => {\n let nextIndex = 0;\n const maxIndex = pageState.length - 1;\n if (index === pageState.index) {\n if (index === maxIndex) {\n nextIndex = index - 1;\n } else {\n nextIndex = pageState.index + 1;\n }\n } else {\n nextIndex = pageState.index;\n }\n return nextIndex;\n};\n","import type { TELE_BOX_STATE } from \"@netless/telebox-insider\";\nimport Emittery from \"emittery\";\n\nexport type BoxMovePayload = { appId: string; x: number; y: number };\nexport type BoxFocusPayload = { appId: string };\nexport type BoxResizePayload = {\n appId: string;\n width: number;\n height: number;\n x?: number;\n y?: number;\n};\nexport type BoxClosePayload = { appId: string; error?: Error };\nexport type BoxStateChangePayload = { appId: string; state: TELE_BOX_STATE };\n\nexport type BoxEvent = {\n move: BoxMovePayload;\n focus: BoxFocusPayload;\n resize: BoxResizePayload;\n close: BoxClosePayload;\n boxStateChange: BoxStateChangePayload;\n};\n\nexport type BoxEmitterType = Emittery<BoxEvent>;\nexport const boxEmitter: BoxEmitterType = new Emittery();\n","import Emittery from \"emittery\";\nimport { AppAttributes, AppEvents, Events, SETUP_APP_DELAY } from \"../constants\";\nimport { AppContext } from \"./AppContext\";\nimport { AppPageStateImpl } from \"./AppPageStateImpl\";\nimport { appRegister } from \"../Register\";\nimport { autorun } from \"white-web-sdk\";\nimport { BoxManagerNotFoundError } from \"../Utils/error\";\nimport { debounce, get } from \"lodash\";\nimport { internalEmitter } from \"../InternalEmitter\";\nimport { Fields } from \"../AttributesDelegate\";\nimport { log } from \"../Utils/log\";\nimport {\n entireScenes,\n getScenePath,\n removeScenes,\n setScenePath,\n setViewFocusScenePath,\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 type { PageRemoveService, PageState } from \"../Page\";\nimport { calculateNextIndex } from \"../Page\";\nimport { boxEmitter } from \"../BoxEmitter\";\nimport { callbacks } from \"../callback\";\n\nexport type AppEmitter = Emittery<AppEmitterEvent>;\n\nexport class AppProxy implements PageRemoveService {\n public kind: string;\n public id: string;\n public scenePath?: string;\n public appEmitter: AppEmitter;\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 store = this.manager.store;\n\n public isAddApp: boolean;\n private status: \"normal\" | \"destroyed\" = \"normal\";\n private stateKey: string;\n private _pageState: AppPageStateImpl;\n private _prevFullPath: string | undefined;\n\n public appResult?: NetlessApp<any>;\n public appContext?: AppContext<any, any>;\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 this._pageState = new AppPageStateImpl({\n displayer: this.manager.displayer,\n scenePath: this.scenePath,\n view: this.view,\n notifyPageStateChange: this.notifyPageStateChange,\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 = entireScenes(this.manager.displayer)[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 viewIndex(): number | undefined {\n return this.view?.focusSceneIndex;\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.getFullScenePathFromScenes();\n }\n }\n\n private getFullScenePathFromScenes() {\n const sceneIndex = get(this.appAttributes, [\"state\", \"SceneIndex\"], 0);\n const fullPath = getScenePath(this.manager.room, this.scenePath, sceneIndex);\n if (fullPath) {\n this.setFullPath(fullPath);\n }\n return fullPath;\n }\n\n public setFullPath(path: string) {\n this.manager.safeUpdateAttributes([\"apps\", this.id, Fields.FullPath], path);\n }\n\n public async baseInsertApp(skipUpdate = false): 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(\n this.id,\n skipUpdate,\n appImpl,\n params.options,\n appParams?.appOptions\n );\n } else {\n throw new Error(`[WindowManager]: app load failed ${params.kind} ${params.src}`);\n }\n internalEmitter.emit(\"updateManagerRect\");\n return {\n appId: this.id,\n app: appImpl,\n };\n }\n\n public get box(): ReadonlyTeleBox | undefined {\n return this.boxManager?.getBox(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 if (!this.boxManager) {\n throw new BoxManagerNotFoundError();\n }\n const context = new AppContext(this.manager, this.boxManager, appId, this, appOptions);\n this.appContext = context;\n try {\n internalEmitter.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 console.log(\"setup app\", app);\n const result = await app.setup(context);\n this.appResult = result;\n appRegister.notifyApp(this.kind, \"created\", { appId, result });\n this.afterSetupApp(boxInitState);\n this.fixMobileSize();\n callbacks.emit(\"onAppSetup\", appId);\n }, SETUP_APP_DELAY);\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 this.store.updateAppState(appId, AppAttributes.Size, {\n width: this.box.intrinsicWidth,\n height: this.box.intrinsicHeight,\n });\n this.boxManager.focusBox({ appId }, false);\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?.x || !boxInitState.y) {\n this.boxManager?.setBoxInitState(this.id);\n }\n }\n }\n\n public async onSeek(time: number) {\n this.appEmitter.emit(\"seek\", time).catch(err => {\n console.log(`[WindowManager]: emit seek error: ${err.message}`);\n });\n const boxInitState = this.getAppInitState(this.id);\n this.boxManager?.updateBoxState(boxInitState);\n }\n\n public async onReconnected() {\n const isExist = Boolean(this.manager.attributes.apps[this.id]);\n if (!isExist) {\n await this.destroy(true, false, true);\n return;\n }\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);\n this.boxManager?.updateBoxState(currentAppState);\n }\n\n public async onRemoveScene(scenePath: string) {\n if (this.scenePath && scenePath.startsWith(this.scenePath + \"/\")) {\n let nextIndex = this.pageState.index;\n let fullPath = this._pageState.getFullPath(nextIndex);\n if (!fullPath) {\n nextIndex = 0;\n fullPath = this._pageState.getFullPath(nextIndex);\n }\n if (fullPath) {\n this.setFullPath(fullPath);\n }\n this.setViewFocusScenePath();\n if (this.view) {\n this.view.focusSceneIndex = nextIndex;\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 boxEmitter.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 this.boxManager?.focusBox({ appId });\n }\n });\n });\n this.manager.refresher.add(`${appId}-fullPath`, () => {\n return autorun(() => {\n const fullPath = this.appAttributes?.fullPath;\n this.setFocusScenePathHandler(fullPath);\n if (this._prevFullPath !== fullPath) {\n this.notifyPageStateChange();\n this._prevFullPath = fullPath;\n }\n });\n });\n };\n\n private setFocusScenePathHandler = debounce((fullPath: string | undefined) => {\n if (this.view && fullPath && fullPath !== this.view?.focusScenePath) {\n setViewFocusScenePath(this.view, fullPath);\n callbacks.emit(\"onAppScenePathChange\", { appId: this.id, view: this.view });\n }\n }, 50);\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 return fullPath;\n }\n\n private async createView(): Promise<View> {\n const view = await this.viewManager.createView(this.id);\n this.setViewFocusScenePath();\n return view;\n }\n\n public notifyPageStateChange = debounce(() => {\n this.appEmitter.emit(\"pageStateChange\", this.pageState);\n }, 50);\n\n public get pageState(): PageState {\n return this._pageState.toObject();\n }\n\n // PageRemoveService\n public async removeSceneByIndex(index: number) {\n const scenePath = this._pageState.getFullPath(index);\n if (scenePath) {\n const nextIndex = calculateNextIndex(index, this.pageState);\n // 只修改 focus path 不修改 FullPath\n this.setSceneIndexWithoutSync(nextIndex);\n this.manager.dispatchInternalEvent(Events.SetAppFocusIndex, {\n type: \"app\",\n appID: this.id,\n index: nextIndex,\n });\n // 手动添加一个延迟, 让 app 切换场景后再删除以避免闪烁\n setTimeout(() => {\n removeScenes(this.manager.room, scenePath, index);\n }, 100);\n return true;\n } else {\n return false;\n }\n }\n\n public setSceneIndexWithoutSync(index: number) {\n if (this.view) {\n this.view.focusSceneIndex = index;\n }\n }\n // PageRemoveService end\n\n public setSceneIndex(index: number) {\n if (this.view) {\n this.view.focusSceneIndex = index;\n const fullPath = this._pageState.getFullPath(index);\n if (fullPath) {\n this.setFullPath(fullPath);\n }\n }\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 try {\n await appRegister.notifyApp(this.kind, \"destroy\", { appId: this.id });\n await this.appEmitter.emit(\"destroy\", { error });\n } catch (error) {\n console.error(\"[WindowManager]: notifyApp error\", error.message, error.stack);\n }\n this.appEmitter.clearListeners();\n internalEmitter.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 if (this.scenePath) {\n removeScenes(this.manager.room, this.scenePath);\n }\n }\n this.appProxies.delete(this.id);\n this._pageState.destroy();\n\n this.viewManager.destroyView(this.id);\n this.manager.appStatus.delete(this.id);\n this.manager.refresher.remove(this.id);\n this.manager.refresher.remove(this.stateKey);\n this.manager.refresher.remove(`${this.id}-fullPath`);\n this._prevFullPath = undefined;\n }\n\n public close(): Promise<void> {\n return this.destroy(true, true, false);\n }\n}\n","import type { View, Displayer } from \"white-web-sdk\";\n\nexport class ViewManager {\n public views: Map<string, View> = new Map();\n\n constructor(private displayer: Displayer) {}\n\n public createView(id: string): View {\n const view = createView(this.displayer);\n this.views.set(id, view);\n return view;\n }\n\n public getView(id: string): View | undefined {\n return this.views.get(id);\n }\n\n public destroyView(id: string): void {\n const view = this.views.get(id);\n if (view) {\n try {\n view.release();\n } catch {\n // ignore\n }\n this.views.delete(id);\n }\n }\n\n public setViewScenePath(id: string, scenePath: string): void {\n const view = this.views.get(id);\n if (view) {\n view.focusScenePath = scenePath;\n }\n }\n\n public destroy() {\n this.views.forEach(view => {\n try {\n view.release();\n } catch {\n // ignore\n }\n });\n this.views.clear();\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","import { AnimationMode, reaction, ViewMode } from \"white-web-sdk\";\nimport { callbacks } from \"../callback\";\nimport { createView } from \"./ViewManager\";\nimport { debounce, get, isEmpty, isEqual } from \"lodash\";\nimport { internalEmitter } from \"../InternalEmitter\";\nimport { Fields } from \"../AttributesDelegate\";\nimport { setViewFocusScenePath } from \"../Utils/Common\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport type { Camera, Room, Size, View } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\nimport { Events } from \"../constants\";\n\nexport class MainViewProxy {\n /** Refresh the view's camera in an interval of 1.5s. */\n public polling = false;\n\n private scale?: number;\n private started = false;\n private mainViewIsAddListener = false;\n private mainView: View;\n private store = this.manager.store;\n private viewMode = this.manager.windowManger.viewMode;\n\n private sideEffectManager = new SideEffectManager();\n\n constructor(private manager: AppManager) {\n this.mainView = this.createMainView();\n this.moveCameraSizeByAttributes();\n internalEmitter.once(\"mainViewMounted\").then(() => {\n this.addMainViewListener();\n this.start();\n this.ensureCameraAndSize();\n this.startListenWritableChange();\n });\n const playgroundSizeChangeListener = () => {\n this.sizeChangeHandler(this.mainViewSize);\n };\n this.sideEffectManager.add(() => {\n return internalEmitter.on(\"playgroundSizeChange\", playgroundSizeChangeListener);\n });\n this.sideEffectManager.add(() => {\n return internalEmitter.on(\"containerSizeRatioUpdate\", this.onUpdateContainerSizeRatio);\n });\n this.sideEffectManager.add(() => {\n return internalEmitter.on(\"startReconnect\", () => {\n if (!this.didRelease) {\n this.mainView.release();\n }\n });\n });\n this.sideEffectManager.setInterval(this.syncCamera, 1500);\n }\n\n // Guard function when the camera is not synced\n private syncCamera = () => {\n if (!this.polling || this.viewMode !== ViewMode.Broadcaster) return;\n const { mainViewCamera } = this;\n if (mainViewCamera && mainViewCamera.id !== this.manager.uid) {\n this.moveCameraSizeByAttributes();\n }\n };\n\n private startListenWritableChange = () => {\n this.sideEffectManager.add(() => {\n return internalEmitter.on(\"writableChange\", isWritable => {\n if (isWritable) {\n this.ensureCameraAndSize();\n }\n if (this.manager.room) this.syncMainView(this.manager.room);\n });\n });\n };\n\n public ensureCameraAndSize() {\n if (this.viewMode !== ViewMode.Broadcaster) return;\n if (!this.mainViewCamera || !this.mainViewSize) {\n this.manager.dispatchInternalEvent(Events.InitMainViewCamera);\n this.setCameraAndSize();\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 get didRelease(): boolean {\n return get(this.view, [\"didRelease\"]);\n }\n\n private moveCameraSizeByAttributes() {\n this.moveCameraToContian(this.mainViewSize);\n this.moveCamera(this.mainViewCamera);\n }\n\n public start() {\n this.sizeChangeHandler(this.mainViewSize);\n if (this.started) return;\n this.addCameraListener();\n this.addCameraReaction();\n if (this.manager.room) this.syncMainView(this.manager.room);\n this.started = true;\n }\n\n public addCameraReaction = () => {\n this.manager.refresher.add(Fields.MainViewCamera, this.cameraReaction);\n };\n\n public setCameraAndSize(): void {\n const camera = { ...this.mainView.camera, id: this.manager.uid };\n const size = { ...this.mainView.size, id: this.manager.uid };\n this.store.setMainViewCameraAndSize(camera, size);\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 { fireImmediately: true }\n );\n };\n\n public sizeChangeHandler = debounce((size: Size) => {\n if (size) {\n this.moveCameraToContian(size);\n this.moveCamera(this.mainViewCamera);\n }\n this.ensureMainViewSize();\n }, 30);\n\n public onUpdateContainerSizeRatio = () => {\n const size = this.store.getMainViewSize();\n this.sizeChangeHandler(size);\n };\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 return mainView;\n }\n\n public onReconnect(): void {\n if (this.didRelease) {\n this.rebind();\n } else {\n const mainViewScenePath = this.store.getMainViewScenePath();\n this.setFocusScenePath(mainViewScenePath);\n }\n }\n\n public setFocusScenePath(path: string | undefined) {\n if (path) {\n return setViewFocusScenePath(this.view, path);\n }\n }\n\n public rebind(): void {\n const divElement = this.mainView.divElement;\n const disableCameraTransform = this.mainView.disableCameraTransform;\n this.stop();\n if (!this.didRelease) {\n this.mainView.release();\n }\n this.removeMainViewListener();\n this.mainView = this.createMainView();\n this.mainView.disableCameraTransform = disableCameraTransform;\n this.mainView.divElement = divElement;\n this.addMainViewListener();\n this.start();\n callbacks.emit(\"onMainViewRebind\", this.mainView);\n }\n\n private onCameraUpdatedByDevice = (camera: Camera) => {\n if (this.viewMode === ViewMode.Follower) return;\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 this.mainViewIsAddListener = false;\n }\n\n private mainViewClickListener = () => {\n this.mainViewClickHandler();\n };\n\n public async mainViewClickHandler(): Promise<void> {\n if (!this.manager.canOperate) return;\n this.store.cleanFocus();\n this.manager.boxManager?.blurAllBox();\n }\n\n public setMainViewSize = debounce((size: 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 _syncMainViewTimer = 0;\n private onCameraOrSizeUpdated = () => {\n callbacks.emit(\"cameraStateChange\", this.cameraState);\n // sdk >= 2.16.43 的 syncMainView() 可以写入当前 main view 的 camera, 以修复复制粘贴元素的位置\n // 注意到这个操作会发送信令,应当避免频繁调用\n if (this.manager.room && (this.manager.room as any).syncMainView) {\n clearTimeout(this._syncMainViewTimer);\n this._syncMainViewTimer = setTimeout(this.syncMainView, 100, this.manager.room);\n }\n this.ensureMainViewSize();\n };\n\n private ensureMainViewSize() {\n if (\n (!this.mainViewSize ||\n this.mainViewSize.width === 0 ||\n this.mainViewSize.height === 0) &&\n this.mainView.size.width > 0 &&\n this.mainView.size.height > 0\n ) {\n this.setMainViewSize(this.mainView.size);\n }\n }\n\n private syncMainView = (room: Room) => {\n if (room.isWritable) {\n room.syncMainView(this.mainView);\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 setViewMode = (mode: ViewMode) => {\n this.viewMode = mode;\n };\n\n public destroy() {\n this.removeMainViewListener();\n this.stop();\n this.sideEffectManager.flushAll();\n }\n}\n","import { callbacks } from \"./callback\";\nimport { internalEmitter } from \"./InternalEmitter\";\nimport type { View } from \"white-web-sdk\";\nimport type { AppProxy } from \"./App\";\n\nexport type RedoUndoContext = {\n mainView: () => View;\n focus: () => string | undefined;\n getAppProxy: (id: string) => AppProxy | undefined;\n};\n\nexport class RedoUndo {\n constructor(private context: RedoUndoContext) {\n internalEmitter.on(\"focusedChange\", changed => {\n this.disposePrevFocusViewRedoUndoListeners(changed.prev);\n setTimeout(() => {\n this.addRedoUndoListeners(changed.focused);\n }, 0);\n });\n internalEmitter.on(\"rootDirRemoved\", () => {\n this.disposePrevFocusViewRedoUndoListeners(context.focus());\n this.addRedoUndoListeners(context.focus());\n });\n this.addRedoUndoListeners(context.focus());\n }\n\n private addRedoUndoListeners = (focused: string | undefined) => {\n if (focused === undefined) {\n this.addViewCallbacks(\n this.context.mainView(),\n this.onCanRedoStepsUpdate,\n this.onCanUndoStepsUpdate\n );\n } else {\n const focusApp = this.context.getAppProxy(focused);\n if (focusApp && focusApp.view) {\n this.addViewCallbacks(\n focusApp.view,\n this.onCanRedoStepsUpdate,\n this.onCanUndoStepsUpdate\n );\n }\n }\n };\n\n private addViewCallbacks = (\n view: View,\n redoListener: (steps: number) => void,\n undoListener: (steps: number) => void\n ) => {\n redoListener(view.canRedoSteps);\n undoListener(view.canUndoSteps);\n view.callbacks.on(\"onCanRedoStepsUpdate\", redoListener);\n view.callbacks.on(\"onCanUndoStepsUpdate\", undoListener);\n };\n\n private disposeViewCallbacks = (view: View) => {\n view.callbacks.off(\"onCanRedoStepsUpdate\", this.onCanRedoStepsUpdate);\n view.callbacks.off(\"onCanUndoStepsUpdate\", this.onCanUndoStepsUpdate);\n };\n\n private onCanRedoStepsUpdate = (steps: number) => {\n callbacks.emit(\"canRedoStepsChange\", steps);\n };\n\n private onCanUndoStepsUpdate = (steps: number) => {\n callbacks.emit(\"canUndoStepsChange\", steps);\n };\n\n private disposePrevFocusViewRedoUndoListeners = (prevFocused: string | undefined) => {\n let view: View | undefined = undefined;\n if (prevFocused === undefined) {\n view = this.context.mainView();\n } else {\n const appProxy = this.context.getAppProxy(prevFocused);\n if (appProxy && appProxy.view) {\n view = appProxy.view;\n }\n }\n if (view) {\n this.disposeViewCallbacks(view);\n }\n };\n\n public destroy() {\n this.disposePrevFocusViewRedoUndoListeners(this.context.focus());\n }\n}\n","import { AppAttributes, AppStatus, Events, INIT_DIR, MagixEventName, ROOT_DIR } from \"./constants\";\nimport { AppCreateQueue } from \"./Utils/AppCreateQueue\";\nimport { AppListeners } from \"./AppListener\";\nimport { AppProxy } from \"./App\";\nimport { appRegister } from \"./Register\";\nimport { autorun, isPlayer, isRoom, ScenePathType } from \"white-web-sdk\";\nimport { boxEmitter } from \"./BoxEmitter\";\nimport { calculateNextIndex } from \"./Page\";\nimport { callbacks } from \"./callback\";\nimport { debounce, get, isInteger, orderBy } from \"lodash\";\nimport { internalEmitter } from \"./InternalEmitter\";\nimport { Fields, store } from \"./AttributesDelegate\";\nimport { log } from \"./Utils/log\";\nimport { MainViewProxy } from \"./View/MainView\";\nimport { onObjectRemoved, safeListenPropsUpdated } from \"./Utils/Reactive\";\nimport { reconnectRefresher, WindowManager } from \"./index\";\nimport { RedoUndo } from \"./RedoUndo\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { ViewManager } from \"./View/ViewManager\";\nimport type { SyncRegisterAppPayload } from \"./Register\";\nimport type { RemoveSceneParams } from \"./InternalEmitter\";\nimport {\n entireScenes,\n genAppId,\n isRootDirPage,\n makeValidScenePath,\n parseSceneDir,\n removeScenes,\n setScenePath,\n setViewFocusScenePath,\n} from \"./Utils/Common\";\nimport type { ReconnectRefresher } from \"./ReconnectRefresher\";\nimport type { BoxManager } from \"./BoxManager\";\nimport type {\n Displayer,\n Room,\n ScenesCallbacksNode,\n SceneState,\n RoomState,\n MemberState,\n} from \"white-web-sdk\";\nimport type { AddAppParams, BaseInsertParams, TeleBoxRect } from \"./index\";\nimport type {\n BoxClosePayload,\n BoxFocusPayload,\n BoxMovePayload,\n BoxResizePayload,\n BoxStateChangePayload,\n} from \"./BoxEmitter\";\n\nexport class AppManager {\n public displayer: Displayer;\n public viewManager: ViewManager;\n public appProxies: Map<string, AppProxy> = new Map();\n public appStatus: Map<string, AppStatus> = new Map();\n public store = store;\n public mainViewProxy: MainViewProxy;\n public refresher: ReconnectRefresher;\n public isReplay = this.windowManger.isReplay;\n public mainViewScenesLength = 0;\n\n private appListeners: AppListeners;\n public boxManager?: BoxManager;\n\n private _prevSceneIndex: number | undefined;\n private _prevFocused: string | undefined;\n private callbacksNode: ScenesCallbacksNode | null = null;\n private appCreateQueue = new AppCreateQueue();\n\n private sideEffectManager = new SideEffectManager();\n\n public sceneState: SceneState | null = null;\n\n public rootDirRemoving = false;\n\n constructor(public windowManger: WindowManager) {\n this.displayer = windowManger.displayer;\n this.store.setContext({\n getAttributes: () => this.attributes,\n safeSetAttributes: attributes => this.safeSetAttributes(attributes),\n safeUpdateAttributes: (keys, val) => this.safeUpdateAttributes(keys, val),\n });\n\n this.mainViewProxy = new MainViewProxy(this);\n this.viewManager = new ViewManager(this.displayer);\n this.appListeners = new AppListeners(this);\n this.displayer.callbacks.on(this.eventName, this.displayerStateListener);\n this.appListeners.addListeners();\n\n this.refresher = reconnectRefresher;\n this.refresher.setRoom(this.room);\n this.refresher.setContext({ emitter: internalEmitter });\n\n this.sideEffectManager.addDisposer(() => {\n this.appCreateQueue.destroy();\n this.mainViewProxy.destroy();\n this.refresher.destroy();\n this.viewManager.destroy();\n this.boxManager?.destroy();\n this.callbacksNode?.dispose();\n });\n\n internalEmitter.once(\"onCreated\").then(() => this.onCreated());\n internalEmitter.on(\"onReconnected\", () => this.onReconnected());\n\n if (isPlayer(this.displayer)) {\n internalEmitter.on(\"seekStart\", this.onPlayerSeekStart);\n internalEmitter.on(\"seek\", this.onPlayerSeekDone);\n }\n\n internalEmitter.on(\"removeScenes\", this.onRemoveScenes);\n internalEmitter.on(\"setReadonly\", this.onReadonlyChanged);\n\n this.createRootDirScenesCallback();\n\n appRegister.setSyncRegisterApp(payload => {\n this.safeUpdateAttributes([Fields.Registered, payload.kind], payload);\n });\n }\n\n public getMemberState(): MemberState {\n return this.room?.state.memberState || ({ strokeColor: [0, 0, 0] } as MemberState);\n }\n\n private onRemoveScenes = async (params: RemoveSceneParams) => {\n const { scenePath } = params;\n // 如果移除根目录就把 scenePath 设置为初始值\n if (scenePath === ROOT_DIR) {\n await this.onRootDirRemoved();\n this.dispatchInternalEvent(Events.RootDirRemoved);\n return;\n }\n if (isRootDirPage(scenePath)) {\n let nextIndex = this.mainView.focusSceneIndex || 0;\n let sceneName = this.callbacksNode?.scenes[nextIndex];\n if (!sceneName) {\n nextIndex = 0;\n sceneName = this.callbacksNode?.scenes[nextIndex];\n }\n if (sceneName) {\n this.setMainViewScenePath(`${ROOT_DIR}${sceneName}`);\n }\n await this.setMainViewSceneIndex(nextIndex);\n } else {\n this.appProxies.forEach(app => {\n app.onRemoveScene(scenePath);\n });\n }\n };\n\n /**\n * 根目录被删除时所有的 scene 都会被删除.\n * 所以需要关掉所有开启了 view 的 app\n */\n public async onRootDirRemoved(needClose = true) {\n this.setMainViewScenePath(INIT_DIR);\n this.createRootDirScenesCallback();\n\n for (const [id, appProxy] of this.appProxies.entries()) {\n if (appProxy.view) {\n await this.closeApp(id, needClose);\n }\n }\n // 删除了根目录的 scenes 之后 mainview 需要重新绑定, 否则主白板会不能渲染\n this.mainViewProxy.rebind();\n internalEmitter.emit(\"rootDirRemoved\");\n this.updateRootDirRemoving(false);\n }\n\n private onReadonlyChanged = () => {\n this.appProxies.forEach(appProxy => {\n appProxy.emitAppIsWritableChange();\n });\n };\n\n private onPlayerSeekStart = async () => {\n await this.closeAll();\n };\n\n private onPlayerSeekDone = async (time: number) => {\n await this.attributesUpdateCallback(this.attributes.apps);\n this.appProxies.forEach(appProxy => {\n appProxy.onSeek(time);\n });\n };\n\n public createRootDirScenesCallback = () => {\n let isRecreate = false;\n if (this.callbacksNode) {\n this.callbacksNode.dispose();\n isRecreate = true;\n }\n this.callbacksNode = this.displayer.createScenesCallback(ROOT_DIR, {\n onAddScene: this.onSceneChange,\n onRemoveScene: async (node, name) => {\n await this.onSceneChange(node);\n internalEmitter.emit(\"rootDirSceneRemoved\", name);\n },\n });\n if (this.callbacksNode) {\n this.updateSceneState(this.callbacksNode);\n this.mainViewScenesLength = this.callbacksNode.scenes.length;\n if (isRecreate) {\n this.emitMainViewScenesChange(this.callbacksNode.scenes.length);\n }\n }\n };\n\n public removeSceneByIndex = async (index: number) => {\n const nextIndex = calculateNextIndex(index, this.windowManger.pageState);\n this.setSceneIndexWithoutSync(nextIndex);\n this.dispatchInternalEvent(Events.SetAppFocusIndex, { type: \"main\", index: nextIndex });\n const scene = this.callbacksNode?.scenes[index];\n setTimeout(() => {\n if (scene) {\n removeScenes(this.room, `${ROOT_DIR}${scene}`, index);\n }\n }, 100);\n return new Promise<boolean>((resolve, reject) => {\n internalEmitter\n .once(\"rootDirSceneRemoved\")\n .then(name => {\n if (name === scene) {\n resolve(true);\n }\n })\n .catch(e => {\n console.log(`[WindowManager]: removePage error: ${e}`);\n reject(false);\n });\n });\n };\n\n public setSceneIndexWithoutSync = (index: number) => {\n const sceneName = this.callbacksNode?.scenes[index];\n if (sceneName) {\n this.mainViewProxy.setFocusScenePath(`${ROOT_DIR}${sceneName}`);\n }\n };\n\n private onSceneChange = (node: ScenesCallbacksNode) => {\n this.mainViewScenesLength = node.scenes.length;\n this.updateSceneState(node);\n return this.emitMainViewScenesChange(this.mainViewScenesLength);\n };\n\n private emitMainViewScenesChange = (length: number) => {\n return Promise.all([\n callbacks.emit(\"mainViewScenesLengthChange\", length),\n internalEmitter.emit(\"changePageState\"),\n ]);\n };\n\n private updateSceneState = (node: ScenesCallbacksNode) => {\n const currentIndex = this.store.getMainViewSceneIndex() || 0;\n let sceneName = node.scenes[currentIndex];\n if (!sceneName) {\n sceneName = node.scenes[this.mainView.focusSceneIndex || 0];\n }\n this.sceneState = {\n scenePath: `${ROOT_DIR}${sceneName}`,\n contextPath: node.path,\n index: currentIndex,\n scenes: node.scenes.map(scene => {\n return {\n name: scene,\n };\n }),\n sceneName: sceneName,\n };\n callbacks.emit(\"sceneStateChange\", this.sceneState);\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 polling() {\n return this.mainViewProxy.polling;\n }\n\n public set polling(b: boolean) {\n this.mainViewProxy.polling = b;\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 getMainViewSceneDir() {\n const scenePath = this.store.getMainViewScenePath();\n if (scenePath) {\n return parseSceneDir(scenePath);\n } else {\n throw new Error(\"[WindowManager]: mainViewSceneDir not found\");\n }\n }\n\n private async onCreated() {\n await this.attributesUpdateCallback(this.attributes.apps);\n internalEmitter.emit(\"updateManagerRect\");\n boxEmitter.on(\"move\", this.onBoxMove);\n boxEmitter.on(\"resize\", this.onBoxResize);\n boxEmitter.on(\"focus\", this.onBoxFocus);\n boxEmitter.on(\"close\", this.onBoxClose);\n boxEmitter.on(\"boxStateChange\", this.onBoxStateChange);\n\n this.addAppsChangeListener();\n this.addAppCloseListener();\n this.refresher.add(\"maximized\", () => {\n return autorun(() => {\n const maximized = this.attributes.maximized;\n this.boxManager?.setMaximized(Boolean(maximized));\n });\n });\n this.refresher.add(\"minimized\", () => {\n return autorun(() => {\n const minimized = this.attributes.minimized;\n this.onMinimized(minimized);\n });\n });\n this.refresher.add(\"mainViewIndex\", () => {\n return autorun(() => {\n const mainSceneIndex = get(this.attributes, \"_mainSceneIndex\");\n this.onMainViewIndexChange(mainSceneIndex);\n });\n });\n this.refresher.add(\"focusedChange\", () => {\n return autorun(() => {\n const focused = get(this.attributes, \"focus\");\n this.onFocusChange(focused);\n });\n });\n this.refresher.add(\"registeredChange\", () => {\n return autorun(() => {\n const registered = get(this.attributes, Fields.Registered);\n this.onRegisteredChange(registered);\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 this.resetScenePath(mainScenePath);\n }\n this.displayerWritableListener(!this.room?.isWritable);\n this.displayer.callbacks.on(\"onEnableWriteNowChanged\", this.displayerWritableListener);\n this._prevFocused = this.attributes.focus;\n\n this.sideEffectManager.add(() => {\n const redoUndo = new RedoUndo({\n mainView: () => this.mainViewProxy.view,\n focus: () => this.attributes.focus,\n getAppProxy: id => this.appProxies.get(id),\n });\n return () => redoUndo.destroy();\n });\n }\n\n private onBoxMove = (payload: BoxMovePayload) => {\n this.dispatchInternalEvent(Events.AppMove, payload);\n this.store.updateAppState(payload.appId, AppAttributes.Position, {\n x: payload.x,\n y: payload.y,\n });\n callbacks.emit(\"onBoxMove\", payload);\n };\n\n private onBoxResize = (payload: BoxResizePayload) => {\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 callbacks.emit(\"onBoxResize\", payload);\n }\n };\n\n private onBoxFocus = (payload: BoxFocusPayload) => {\n this.windowManger.safeSetAttributes({ focus: payload.appId });\n callbacks.emit(\"onBoxFocus\", payload);\n };\n\n private onBoxClose = (payload: BoxClosePayload) => {\n const appProxy = this.appProxies.get(payload.appId);\n if (appProxy) {\n appProxy.destroy(false, true, true, payload.error);\n }\n callbacks.emit(\"onBoxClose\", payload);\n };\n\n private onBoxStateChange = (payload: BoxStateChangePayload) => {\n this.dispatchInternalEvent(Events.AppBoxStateChange, payload);\n callbacks.emit(\"onBoxStateChange\", payload);\n };\n\n public addAppsChangeListener = () => {\n this.refresher.add(\"apps\", () => {\n return safeListenPropsUpdated(\n () => this.attributes.apps,\n () => {\n this.attributesUpdateCallback(this.attributes.apps);\n }\n );\n });\n };\n\n public addAppCloseListener = () => {\n this.refresher.add(\"appsClose\", () => {\n return onObjectRemoved(this.attributes.apps, () => {\n this.onAppDelete(this.attributes.apps);\n });\n });\n };\n\n private onMainViewIndexChange = (index: number) => {\n if (index !== undefined && this._prevSceneIndex !== index) {\n callbacks.emit(\"mainViewSceneIndexChange\", index);\n internalEmitter.emit(\"changePageState\");\n if (this.callbacksNode) {\n this.updateSceneState(this.callbacksNode);\n }\n this._prevSceneIndex = index;\n }\n };\n\n private onFocusChange = (focused: string | undefined) => {\n if (this._prevFocused !== focused) {\n callbacks.emit(\"focusedChange\", focused);\n internalEmitter.emit(\"focusedChange\", { focused, prev: this._prevFocused });\n this._prevFocused = focused;\n if (focused !== undefined) {\n this.boxManager?.focusBox({ appId: focused });\n // 确保 focus 修改的时候, appProxy 已经创建\n setTimeout(() => {\n const appProxy = this.appProxies.get(focused);\n if (appProxy) {\n appRegister.notifyApp(appProxy.kind, \"focus\", { appId: focused });\n }\n }, 0);\n }\n }\n };\n\n public attributesUpdateCallback = debounce(\n (apps: any) => this._attributesUpdateCallback(apps),\n 100\n );\n\n private _appIds: string[] = [];\n public notifyAppsChange(appIds: string[]): void {\n if (\n this._appIds.length !== appIds.length ||\n !this._appIds.every(id => appIds.includes(id))\n ) {\n this._appIds = appIds;\n callbacks.emit(\"appsChange\", appIds);\n }\n }\n\n /**\n * 插件更新 attributes 时的回调\n *\n * @param {*} attributes\n * @memberof WindowManager\n */\n public async _attributesUpdateCallback(apps: any) {\n if (apps && WindowManager.container) {\n const appIds = Object.keys(apps);\n if (appIds.length === 0) {\n this.appCreateQueue.emitReady();\n }\n const appsWithCreatedAt = orderBy(\n appIds.map(appId => {\n return {\n id: appId,\n createdAt: apps[appId].createdAt,\n };\n }),\n \"createdAt\",\n \"asc\"\n );\n const orderedAppIds = appsWithCreatedAt.map(({ id }) => id);\n this.notifyAppsChange(orderedAppIds);\n for (const id of orderedAppIds) {\n if (!this.appProxies.has(id) && !this.appStatus.has(id)) {\n const app = apps[id];\n try {\n const appAttributes = this.attributes[id];\n if (!appAttributes) {\n throw new Error(\"appAttributes is undefined\");\n }\n this.appCreateQueue.push<AppProxy>(() => {\n this.appStatus.set(id, AppStatus.StartCreate);\n return this.baseInsertApp(\n {\n kind: app.kind,\n options: app.options,\n isDynamicPPT: app.isDynamicPPT,\n },\n id,\n false\n );\n });\n this.focusByAttributes(apps);\n } catch (error) {\n console.warn(`[WindowManager]: Insert App Error`, error);\n }\n }\n }\n }\n }\n\n private onRegisteredChange = (registered: Record<string, SyncRegisterAppPayload>) => {\n if (!registered) return;\n Object.entries(registered).forEach(([kind, payload]) => {\n if (!appRegister.appClasses.has(kind)) {\n appRegister.register({\n kind,\n src: payload.src,\n name: payload.name,\n });\n }\n });\n };\n\n private onMinimized = (minimized: boolean | undefined) => {\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 public refresh() {\n this.attributesUpdateCallback(this.attributes.apps);\n }\n\n public setBoxManager(boxManager: BoxManager) {\n this.boxManager = boxManager;\n }\n\n public resetMaximized() {\n this.boxManager?.setMaximized(Boolean(this.store.getMaximized()));\n }\n\n public resetMinimized() {\n this.boxManager?.setMinimized(Boolean(this.store.getMinimized()));\n }\n\n private onAppDelete = async (apps: any) => {\n const ids = Object.keys(apps);\n for (const [id, appProxy] of this.appProxies.entries()) {\n if (!ids.includes(id)) {\n await appProxy.destroy(true, false, true);\n }\n }\n };\n\n private closeAll = async () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const [_, appProxy] of this.appProxies.entries()) {\n await appProxy.destroy(true, false, true);\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.setMainViewFocusPath();\n }\n internalEmitter.emit(\"mainViewMounted\");\n callbacks.emit(\"onMainViewMounted\", mainView);\n }\n\n public setMainViewFocusPath(scenePath?: string) {\n const focusScenePath = scenePath || this.store.getMainViewScenePath();\n if (focusScenePath) {\n setViewFocusScenePath(this.mainView, focusScenePath);\n return this.mainView?.focusScenePath === focusScenePath;\n }\n }\n\n private resetScenePath(scenePath: string) {\n const sceneState = this.displayer.state.sceneState;\n if (sceneState.scenePath !== scenePath) {\n setScenePath(this.room, scenePath);\n }\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 boxEmitter.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, needClose = true) {\n const appProxy = this.appProxies.get(appId);\n if (appProxy) {\n appProxy.destroy(true, needClose, 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<RoomState>) => {\n this.appProxies.forEach(appProxy => {\n appProxy.appEmitter.emit(\"roomStateChange\", state);\n });\n internalEmitter.emit(\"observerIdChange\", this.displayer.observerId);\n };\n\n public 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 internalEmitter.emit(\"writableChange\", isWritable);\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 const sceneDir = parseSceneDir(scenePath);\n if (sceneDir !== ROOT_DIR) {\n throw new Error(`[WindowManager]: main view scenePath must in root dir \"/\"`);\n }\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 if (validScenePath) {\n await this._setMainViewScenePath(validScenePath);\n }\n }\n }\n }\n\n private async _setMainViewScenePath(scenePath: string) {\n const success = this.setMainViewFocusPath(scenePath);\n if (success) {\n this.safeSetAttributes({ _mainScenePath: scenePath });\n this.store.setMainViewFocusPath(this.mainView);\n this.updateSceneIndex();\n this.dispatchSetMainViewScenePath(scenePath);\n }\n }\n\n private updateSceneIndex = () => {\n const scenePath = this.store.getMainViewScenePath() as string;\n const sceneDir = parseSceneDir(scenePath);\n const scenes = entireScenes(this.displayer)[sceneDir];\n if (scenes.length) {\n // \"/ppt3/1\" -> \"1\"\n const pageName = scenePath.replace(sceneDir, \"\").replace(\"/\", \"\");\n const index = scenes.findIndex(scene => scene.name === pageName);\n if (isInteger(index) && index >= 0) {\n this.safeSetAttributes({ _mainSceneIndex: index });\n }\n }\n };\n\n public async setMainViewSceneIndex(index: number) {\n if (this.room) {\n if (this.store.getMainViewSceneIndex() === index) return;\n const sceneName = this.callbacksNode?.scenes[index];\n const scenePath = `${ROOT_DIR}${sceneName}`;\n if (sceneName) {\n const success = this.setMainViewFocusPath(scenePath);\n if (success) {\n this.store.setMainViewScenePath(scenePath);\n this.store.setMainViewSceneIndex(index);\n this.dispatchSetMainViewScenePath(scenePath);\n }\n } else {\n throw new Error(`[WindowManager]: ${index} not valid index`);\n }\n }\n }\n\n private dispatchSetMainViewScenePath(scenePath: string): void {\n this.dispatchInternalEvent(Events.SetMainViewScenePath, { nextScenePath: scenePath });\n callbacks.emit(\"mainViewScenePathChange\", scenePath);\n // 兼容 15 的 SDK, 需要 room 的当前 ScenePath\n setScenePath(this.room, scenePath);\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 public focusByAttributes(apps: any) {\n if (apps && Object.keys(apps).length === this.boxManager?.boxSize) {\n const focusAppId = this.store.focus;\n if (focusAppId) {\n this.boxManager.focusBox({ appId: focusAppId });\n }\n }\n }\n\n public async onReconnected() {\n this.attributesUpdateCallback(this.attributes.apps);\n const appProxies = Array.from(this.appProxies.values());\n const reconnected = appProxies.map(appProxy => {\n return appProxy.onReconnected();\n });\n this.mainViewProxy.onReconnect();\n await Promise.all(reconnected);\n if (this.callbacksNode) {\n this.onSceneChange(this.callbacksNode);\n }\n }\n\n public notifyContainerRectUpdate(rect: TeleBoxRect) {\n this.appProxies.forEach(appProxy => {\n appProxy.appEmitter.emit(\"containerRectUpdate\", rect);\n });\n }\n\n public updateRootDirRemoving = (removing: boolean) => {\n this.rootDirRemoving = removing;\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 boxEmitter.clearListeners();\n internalEmitter.clearListeners();\n if (this.appProxies.size) {\n this.appProxies.forEach(appProxy => {\n appProxy.destroy(true, false, true);\n });\n }\n callbacks.clearListeners();\n this.sideEffectManager.flushAll();\n this._prevFocused = undefined;\n this._prevSceneIndex = undefined;\n }\n}\n","import pRetry from \"p-retry\";\nimport type { Room, RoomMember } from \"white-web-sdk\";\nimport { WhiteVersion } from \"white-web-sdk\";\nimport { REQUIRE_VERSION } from \"./constants\";\nimport { WindowManager } from \"./index\";\nimport { getVersionNumber } from \"./Utils/Common\";\nimport { WhiteWebSDKInvalidError } from \"./Utils/error\";\nimport { log } from \"./Utils/log\";\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\nexport const checkVersion = () => {\n const version = getVersionNumber(WhiteVersion);\n if (version < getVersionNumber(REQUIRE_VERSION)) {\n throw new WhiteWebSDKInvalidError(REQUIRE_VERSION);\n }\n};\n\nexport const findMemberByUid = (room: Room | undefined, uid: string) => {\n const roomMembers = room?.state.roomMembers || [];\n let maxMemberId = -1; // 第一个进入房间的用户 memberId 是 0\n let result: RoomMember | undefined = undefined;\n for (const member of roomMembers) {\n if (member.payload?.uid === uid && maxMemberId < member.memberId) {\n maxMemberId = member.memberId;\n result = member;\n }\n }\n return result;\n};\n\nexport const createInvisiblePlugin = async (room: Room): Promise<WindowManager> => {\n let manager = room.getInvisiblePlugin(WindowManager.kind) as WindowManager;\n if (manager) return manager;\n\n let resolve!: (manager: WindowManager) => void;\n const promise = new Promise<WindowManager>(r => {\n // @ts-expect-error Set private property.\n WindowManager._resolve = resolve = r;\n });\n\n let wasReadonly = false;\n const canOperate = isRoomTokenWritable(room);\n if (!room.isWritable && canOperate) {\n wasReadonly = true;\n await pRetry(\n async count => {\n log(`switching to writable (x${count})`);\n await room.setWritable(true);\n },\n { retries: 10, maxTimeout: 5000 }\n );\n }\n if (room.isWritable) {\n log(\"creating InvisiblePlugin...\");\n room.createInvisiblePlugin(WindowManager, {}).catch(console.warn);\n } else {\n if (canOperate) console.warn(\"[WindowManager]: failed to switch to writable\");\n console.warn(\"[WindowManager]: waiting for others to create the plugin...\");\n }\n\n const timeout = setTimeout(() => {\n console.warn(\"[WindowManager]: no one called createInvisiblePlugin() after 20 seconds\");\n }, 20_000);\n\n const abort = setTimeout(() => {\n throw new Error(\"[WindowManager]: no one called createInvisiblePlugin() after 60 seconds\");\n }, 60_000);\n\n const interval = setInterval(() => {\n manager = room.getInvisiblePlugin(WindowManager.kind) as WindowManager;\n if (manager) {\n clearTimeout(abort);\n clearTimeout(timeout);\n clearInterval(interval);\n resolve(manager);\n if (wasReadonly && room.isWritable) {\n setTimeout(() => room.setWritable(false).catch(console.warn), 500);\n }\n }\n }, 200);\n\n return promise;\n};\n\nconst isRoomTokenWritable = (room: Room) => {\n try {\n const str = atob(room.roomToken.slice(\"NETLESSROOM_\".length));\n const index = str.indexOf(\"&role=\");\n const role = +str[index + \"&role=\".length];\n return role < 2;\n } catch (error) {\n console.error(error);\n return false;\n }\n};\n","import { ResizeObserver as ResizeObserverPolyfill } from \"@juggle/resize-observer\";\nimport { isFunction } from \"lodash\";\nimport { WindowManager } from \"./index\";\nimport type { EmitterType } from \"./InternalEmitter\";\nimport type { UnsubscribeFn } from \"emittery\";\n\nconst ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;\n\nexport class ContainerResizeObserver {\n private containerResizeObserver?: ResizeObserver;\n private disposer?: UnsubscribeFn;\n\n constructor(private emitter: EmitterType) {}\n\n public static create(\n container: HTMLElement,\n sizer: HTMLElement,\n wrapper: HTMLDivElement,\n emitter: EmitterType\n ) {\n const containerResizeObserver = new ContainerResizeObserver(emitter);\n containerResizeObserver.observePlaygroundSize(container, sizer, wrapper);\n return containerResizeObserver;\n }\n\n public 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.emitter.emit(\"playgroundSizeChange\", containerRect);\n }\n });\n\n this.disposer = this.emitter.on(\"containerSizeRatioUpdate\", () => {\n const containerRect = container.getBoundingClientRect();\n this.updateSizer(containerRect, sizer, wrapper);\n this.emitter.emit(\"playgroundSizeChange\", containerRect);\n });\n\n this.containerResizeObserver.observe(container);\n }\n\n public 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 public disconnect() {\n this.containerResizeObserver?.disconnect();\n if (isFunction(this.disposer)) {\n this.disposer();\n this.disposer = undefined;\n }\n }\n}\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","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));\nimport React, { useRef, useEffect, useState } from \"react\";\nvar fancyScrollbar = \".tele-fancy-scrollbar {\\n overscroll-behavior: contain;\\n overflow: auto;\\n overflow-y: scroll;\\n overflow-y: overlay;\\n -webkit-overflow-scrolling: touch;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n scrollbar-width: auto;\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar {\\n height: 8px;\\n width: 8px;\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar-track {\\n background-color: transparent;\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar-thumb {\\n background-color: rgba(68, 78, 96, 0.1);\\n background-color: transparent;\\n border-radius: 4px;\\n transition: background-color 0.4s;\\n}\\n.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb {\\n background-color: rgba(68, 78, 96, 0.1);\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover {\\n background-color: rgba(68, 78, 96, 0.2);\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active {\\n background-color: rgba(68, 78, 96, 0.2);\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical {\\n min-height: 50px;\\n}\\n.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal {\\n min-width: 50px;\\n}\";\nvar style$3 = '.telebox-box {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 100;\\n transition: width 0.4s cubic-bezier(0.4, 0.9, 0.71, 1.02), height 0.4s cubic-bezier(0.55, 0.82, 0.63, 0.95), opacity 0.6s cubic-bezier(0.7, 0, 0.84, 0), transform 0.4s ease;\\n}\\n\\n.telebox-box-main {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n background: #f9f9fc;\\n box-shadow: 0px 4px 10px 0px rgba(47, 65, 146, 0.15);\\n border-radius: 6px;\\n border: 1px solid #e3e3ec;\\n}\\n\\n.telebox-titlebar-wrap {\\n flex-shrink: 0;\\n position: relative;\\n z-index: 1;\\n}\\n\\n.telebox-content-wrap {\\n flex: 1;\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.telebox-content {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n}\\n\\n.telebox-footer-wrap {\\n flex-shrink: 0;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.telebox-footer-wrap::before {\\n content: \"\";\\n display: block;\\n flex: 1;\\n}\\n\\n.telebox-resize-handle {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n position: absolute;\\n z-index: 2147483647;\\n}\\n\\n.telebox-n {\\n width: 100%;\\n height: 5px;\\n left: 0;\\n top: -5px;\\n cursor: n-resize;\\n}\\n\\n.telebox-s {\\n width: 100%;\\n height: 5px;\\n left: 0;\\n bottom: -5px;\\n cursor: s-resize;\\n}\\n\\n.telebox-w {\\n width: 5px;\\n height: 100%;\\n left: -5px;\\n top: 0;\\n cursor: w-resize;\\n}\\n\\n.telebox-e {\\n width: 5px;\\n height: 100%;\\n right: -5px;\\n top: 0;\\n cursor: e-resize;\\n}\\n\\n.telebox-nw {\\n width: 15px;\\n height: 15px;\\n top: -5px;\\n left: -5px;\\n cursor: nw-resize;\\n}\\n\\n.telebox-ne {\\n width: 15px;\\n height: 15px;\\n top: -5px;\\n right: -5px;\\n cursor: ne-resize;\\n}\\n\\n.telebox-se {\\n width: 15px;\\n height: 15px;\\n bottom: -5px;\\n right: -5px;\\n cursor: se-resize;\\n}\\n\\n.telebox-sw {\\n width: 15px;\\n height: 15px;\\n bottom: -5px;\\n left: -5px;\\n cursor: sw-resize;\\n}\\n\\n.telebox-track-mask {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 2147483647;\\n width: 100%;\\n height: 100%;\\n background: rgba(0, 0, 0, 0.0001);\\n cursor: move;\\n}\\n\\n.telebox-cursor-n {\\n cursor: n-resize;\\n}\\n\\n.telebox-cursor-s {\\n cursor: s-resize;\\n}\\n\\n.telebox-cursor-w {\\n cursor: w-resize;\\n}\\n\\n.telebox-cursor-e {\\n cursor: e-resize;\\n}\\n\\n.telebox-cursor-nw {\\n cursor: nw-resize;\\n}\\n\\n.telebox-cursor-ne {\\n cursor: ne-resize;\\n}\\n\\n.telebox-cursor-se {\\n cursor: se-resize;\\n}\\n\\n.telebox-cursor-sw {\\n cursor: sw-resize;\\n}\\n\\n.telebox-maximized .telebox-resize-handles,\\n.telebox-no-resize .telebox-resize-handles {\\n display: none;\\n}\\n\\n.telebox-maximized {\\n box-shadow: none;\\n transition: none;\\n}\\n\\n.telebox-minimized {\\n transition: width 0.05s cubic-bezier(0.4, 0.9, 0.71, 1.02), height 0.05s cubic-bezier(0.55, 0.82, 0.63, 0.95), opacity 0.6s cubic-bezier(0.7, 0, 0.84, 0), transform 0.6s ease;\\n opacity: 0;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n.telebox-transforming {\\n will-change: transform;\\n transition: opacity 0.6s cubic-bezier(0.7, 0, 0.84, 0);\\n}\\n\\n.telebox-readonly .telebox-resize-handle {\\n cursor: initial !important;\\n pointer-events: none !important;\\n}\\n\\n.telebox-color-scheme-dark {\\n color-scheme: dark;\\n}\\n\\n.telebox-color-scheme-dark .telebox-box-main {\\n color: #e9e9e9;\\n background: #212126;\\n border-color: #43434d;\\n}';\nvar eventemitter3 = { exports: {} };\n(function(module) {\n var has = Object.prototype.hasOwnProperty, prefix = \"~\";\n function Events() {\n }\n if (Object.create) {\n Events.prototype = Object.create(null);\n if (!new Events().__proto__)\n prefix = false;\n }\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n }\n function addListener(emitter, event, fn, context, once) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The listener must be a function\");\n }\n var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;\n if (!emitter._events[evt])\n emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn)\n emitter._events[evt].push(listener);\n else\n emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\n }\n function clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0)\n emitter._events = new Events();\n else\n delete emitter._events[evt];\n }\n function EventEmitter2() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n EventEmitter2.prototype.eventNames = function eventNames() {\n var names = [], events, name;\n if (this._eventsCount === 0)\n return names;\n for (name in events = this._events) {\n if (has.call(events, name))\n names.push(prefix ? name.slice(1) : name);\n }\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n return names;\n };\n EventEmitter2.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event, handlers = this._events[evt];\n if (!handlers)\n return [];\n if (handlers.fn)\n return [handlers.fn];\n for (var i2 = 0, l = handlers.length, ee = new Array(l); i2 < l; i2++) {\n ee[i2] = handlers[i2].fn;\n }\n return ee;\n };\n EventEmitter2.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event, listeners = this._events[evt];\n if (!listeners)\n return 0;\n if (listeners.fn)\n return 1;\n return listeners.length;\n };\n EventEmitter2.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt])\n return false;\n var listeners = this._events[evt], len = arguments.length, args, i2;\n if (listeners.fn) {\n if (listeners.once)\n this.removeListener(event, listeners.fn, void 0, true);\n switch (len) {\n case 1:\n return listeners.fn.call(listeners.context), true;\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n for (i2 = 1, args = new Array(len - 1); i2 < len; i2++) {\n args[i2 - 1] = arguments[i2];\n }\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length, j;\n for (i2 = 0; i2 < length; i2++) {\n if (listeners[i2].once)\n this.removeListener(event, listeners[i2].fn, void 0, true);\n switch (len) {\n case 1:\n listeners[i2].fn.call(listeners[i2].context);\n break;\n case 2:\n listeners[i2].fn.call(listeners[i2].context, a1);\n break;\n case 3:\n listeners[i2].fn.call(listeners[i2].context, a1, a2);\n break;\n case 4:\n listeners[i2].fn.call(listeners[i2].context, a1, a2, a3);\n break;\n default:\n if (!args)\n for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i2].fn.apply(listeners[i2].context, args);\n }\n }\n }\n return true;\n };\n EventEmitter2.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n };\n EventEmitter2.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n };\n EventEmitter2.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt])\n return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n var listeners = this._events[evt];\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i2 = 0, events = [], length = listeners.length; i2 < length; i2++) {\n if (listeners[i2].fn !== fn || once && !listeners[i2].once || context && listeners[i2].context !== context) {\n events.push(listeners[i2]);\n }\n }\n if (events.length)\n this._events[evt] = events.length === 1 ? events[0] : events;\n else\n clearEvent(this, evt);\n }\n return this;\n };\n EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt])\n clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n return this;\n };\n EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;\n EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;\n EventEmitter2.prefixed = prefix;\n EventEmitter2.EventEmitter = EventEmitter2;\n {\n module.exports = EventEmitter2;\n }\n})(eventemitter3);\nvar EventEmitter = eventemitter3.exports;\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***************************************************************************** */\nvar __assign$1 = function() {\n __assign$1 = Object.assign || function __assign2(t2) {\n for (var s2, i2 = 1, n = arguments.length; i2 < n; i2++) {\n s2 = arguments[i2];\n for (var p in s2)\n if (Object.prototype.hasOwnProperty.call(s2, p))\n t2[p] = s2[p];\n }\n return t2;\n };\n return __assign$1.apply(this, arguments);\n};\nfunction __rest(s2, e2) {\n var t2 = {};\n for (var p in s2)\n if (Object.prototype.hasOwnProperty.call(s2, p) && e2.indexOf(p) < 0)\n t2[p] = s2[p];\n if (s2 != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i2 = 0, p = Object.getOwnPropertySymbols(s2); i2 < p.length; i2++) {\n if (e2.indexOf(p[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p[i2]))\n t2[p[i2]] = s2[p[i2]];\n }\n return t2;\n}\nvar prevTime = 0;\nvar onNextFrame = typeof window !== \"undefined\" && window.requestAnimationFrame !== void 0 ? function(callback) {\n return window.requestAnimationFrame(callback);\n} : function(callback) {\n var timestamp = Date.now();\n var timeToCall = Math.max(0, 16.7 - (timestamp - prevTime));\n prevTime = timestamp + timeToCall;\n setTimeout(function() {\n return callback(prevTime);\n }, timeToCall);\n};\nvar createStep = function(setRunNextFrame) {\n var processToRun = [];\n var processToRunNextFrame = [];\n var numThisFrame = 0;\n var isProcessing2 = false;\n var i2 = 0;\n var cancelled = new WeakSet();\n var toKeepAlive = new WeakSet();\n var renderStep = {\n cancel: function(process) {\n var indexOfCallback = processToRunNextFrame.indexOf(process);\n cancelled.add(process);\n if (indexOfCallback !== -1) {\n processToRunNextFrame.splice(indexOfCallback, 1);\n }\n },\n process: function(frame2) {\n var _a;\n isProcessing2 = true;\n _a = [processToRunNextFrame, processToRun], processToRun = _a[0], processToRunNextFrame = _a[1];\n processToRunNextFrame.length = 0;\n numThisFrame = processToRun.length;\n if (numThisFrame) {\n var process_1;\n for (i2 = 0; i2 < numThisFrame; i2++) {\n process_1 = processToRun[i2];\n process_1(frame2);\n if (toKeepAlive.has(process_1) === true && !cancelled.has(process_1)) {\n renderStep.schedule(process_1);\n setRunNextFrame(true);\n }\n }\n }\n isProcessing2 = false;\n },\n schedule: function(process, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n if (immediate === void 0) {\n immediate = false;\n }\n var addToCurrentBuffer = immediate && isProcessing2;\n var buffer = addToCurrentBuffer ? processToRun : processToRunNextFrame;\n cancelled.delete(process);\n if (keepAlive)\n toKeepAlive.add(process);\n if (buffer.indexOf(process) === -1) {\n buffer.push(process);\n if (addToCurrentBuffer)\n numThisFrame = processToRun.length;\n }\n }\n };\n return renderStep;\n};\nvar maxElapsed = 40;\nvar defaultElapsed = 1 / 60 * 1e3;\nvar useDefaultElapsed = true;\nvar willRunNextFrame = false;\nvar isProcessing = false;\nvar frame = {\n delta: 0,\n timestamp: 0\n};\nvar stepsOrder = [\"read\", \"update\", \"preRender\", \"render\", \"postRender\"];\nvar setWillRunNextFrame = function(willRun) {\n return willRunNextFrame = willRun;\n};\nvar steps = /* @__PURE__ */ stepsOrder.reduce(function(acc, key) {\n acc[key] = createStep(setWillRunNextFrame);\n return acc;\n}, {});\nvar sync = /* @__PURE__ */ stepsOrder.reduce(function(acc, key) {\n var step = steps[key];\n acc[key] = function(process, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n if (immediate === void 0) {\n immediate = false;\n }\n if (!willRunNextFrame)\n startLoop();\n step.schedule(process, keepAlive, immediate);\n return process;\n };\n return acc;\n}, {});\nvar processStep = function(stepId) {\n return steps[stepId].process(frame);\n};\nvar processFrame = function(timestamp) {\n willRunNextFrame = false;\n frame.delta = useDefaultElapsed ? defaultElapsed : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n if (!useDefaultElapsed)\n defaultElapsed = frame.delta;\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (willRunNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nvar startLoop = function() {\n willRunNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\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***************************************************************************** */\nvar __assign = function() {\n __assign = Object.assign || function __assign2(t2) {\n for (var s2, i2 = 1, n = arguments.length; i2 < n; i2++) {\n s2 = arguments[i2];\n for (var p in s2)\n if (Object.prototype.hasOwnProperty.call(s2, p))\n t2[p] = s2[p];\n }\n return t2;\n };\n return __assign.apply(this, arguments);\n};\nvar clamp$1 = function(min, max) {\n return function(v) {\n return Math.max(Math.min(v, max), min);\n };\n};\nvar sanitize = function(v) {\n return v % 1 ? Number(v.toFixed(5)) : v;\n};\nvar singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\nvar number = {\n test: function(v) {\n return typeof v === \"number\";\n },\n parse: parseFloat,\n transform: function(v) {\n return v;\n }\n};\nvar alpha = __assign(__assign({}, number), { transform: clamp$1(0, 1) });\nvar scale = __assign(__assign({}, number), { default: 1 });\nvar createUnitType = function(unit) {\n return {\n test: function(v) {\n return typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1;\n },\n parse: parseFloat,\n transform: function(v) {\n return \"\" + v + unit;\n }\n };\n};\nvar degrees = createUnitType(\"deg\");\nvar percent = createUnitType(\"%\");\nvar px = createUnitType(\"px\");\nvar progressPercentage = __assign(__assign({}, percent), { parse: function(v) {\n return percent.parse(v) / 100;\n}, transform: function(v) {\n return percent.transform(v * 100);\n} });\nvar getValueFromFunctionString = function(value) {\n return value.substring(value.indexOf(\"(\") + 1, value.lastIndexOf(\")\"));\n};\nvar clampRgbUnit = clamp$1(0, 255);\nvar isRgba = function(v) {\n return v.red !== void 0;\n};\nvar isHsla = function(v) {\n return v.hue !== void 0;\n};\nfunction getValuesAsArray(value) {\n return getValueFromFunctionString(value).replace(/(,|\\/)/g, \" \").split(/ \\s*/);\n}\nvar splitColorValues = function(terms) {\n return function(v) {\n if (typeof v !== \"string\")\n return v;\n var values = {};\n var valuesArray = getValuesAsArray(v);\n for (var i2 = 0; i2 < 4; i2++) {\n values[terms[i2]] = valuesArray[i2] !== void 0 ? parseFloat(valuesArray[i2]) : 1;\n }\n return values;\n };\n};\nvar rgbaTemplate = function(_a) {\n var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha2 = _b === void 0 ? 1 : _b;\n return \"rgba(\" + red + \", \" + green + \", \" + blue + \", \" + alpha2 + \")\";\n};\nvar hslaTemplate = function(_a) {\n var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha2 = _b === void 0 ? 1 : _b;\n return \"hsla(\" + hue + \", \" + saturation + \", \" + lightness + \", \" + alpha2 + \")\";\n};\nvar rgbUnit = __assign(__assign({}, number), { transform: function(v) {\n return Math.round(clampRgbUnit(v));\n} });\nfunction isColorString(color2, colorType) {\n return color2.startsWith(colorType) && singleColorRegex.test(color2);\n}\nvar rgba = {\n test: function(v) {\n return typeof v === \"string\" ? isColorString(v, \"rgb\") : isRgba(v);\n },\n parse: splitColorValues([\"red\", \"green\", \"blue\", \"alpha\"]),\n transform: function(_a) {\n var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\n return rgbaTemplate({\n red: rgbUnit.transform(red),\n green: rgbUnit.transform(green),\n blue: rgbUnit.transform(blue),\n alpha: sanitize(alpha.transform(alpha$1))\n });\n }\n};\nvar hsla = {\n test: function(v) {\n return typeof v === \"string\" ? isColorString(v, \"hsl\") : isHsla(v);\n },\n parse: splitColorValues([\"hue\", \"saturation\", \"lightness\", \"alpha\"]),\n transform: function(_a) {\n var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\n return hslaTemplate({\n hue: Math.round(hue),\n saturation: percent.transform(sanitize(saturation)),\n lightness: percent.transform(sanitize(lightness)),\n alpha: sanitize(alpha.transform(alpha$1))\n });\n }\n};\nvar hex = __assign(__assign({}, rgba), { test: function(v) {\n return typeof v === \"string\" && isColorString(v, \"#\");\n}, parse: function(v) {\n var r2 = \"\";\n var g = \"\";\n var b = \"\";\n if (v.length > 4) {\n r2 = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n } else {\n r2 = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n r2 += r2;\n g += g;\n b += b;\n }\n return {\n red: parseInt(r2, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: 1\n };\n} });\nvar color = {\n test: function(v) {\n return typeof v === \"string\" && singleColorRegex.test(v) || isRgba(v) || isHsla(v);\n },\n parse: function(v) {\n if (rgba.test(v)) {\n return rgba.parse(v);\n } else if (hsla.test(v)) {\n return hsla.parse(v);\n } else if (hex.test(v)) {\n return hex.parse(v);\n }\n return v;\n },\n transform: function(v) {\n if (isRgba(v)) {\n return rgba.transform(v);\n } else if (isHsla(v)) {\n return hsla.transform(v);\n }\n return v;\n }\n};\nvar createStyler = function(_a) {\n var onRead2 = _a.onRead, onRender2 = _a.onRender, _b = _a.uncachedValues, uncachedValues = _b === void 0 ? new Set() : _b, _c = _a.useCache, useCache = _c === void 0 ? true : _c;\n return function(_a2) {\n if (_a2 === void 0) {\n _a2 = {};\n }\n var props = __rest(_a2, []);\n var state = {};\n var changedValues = [];\n var hasChanged = false;\n function setValue(key, value) {\n if (key.startsWith(\"--\")) {\n props.hasCSSVariable = true;\n }\n var currentValue = state[key];\n state[key] = value;\n if (state[key] === currentValue)\n return;\n if (changedValues.indexOf(key) === -1) {\n changedValues.push(key);\n }\n if (!hasChanged) {\n hasChanged = true;\n sync.render(styler.render);\n }\n }\n var styler = {\n get: function(key, forceRead) {\n if (forceRead === void 0) {\n forceRead = false;\n }\n var useCached = !forceRead && useCache && !uncachedValues.has(key) && state[key] !== void 0;\n return useCached ? state[key] : onRead2(key, props);\n },\n set: function(values, value) {\n if (typeof values === \"string\") {\n setValue(values, value);\n } else {\n for (var key in values) {\n setValue(key, values[key]);\n }\n }\n return this;\n },\n render: function(forceRender) {\n if (forceRender === void 0) {\n forceRender = false;\n }\n if (hasChanged || forceRender === true) {\n onRender2(state, props, changedValues);\n hasChanged = false;\n changedValues.length = 0;\n }\n return this;\n }\n };\n return styler;\n };\n};\nvar CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\nvar camelToDash = function(str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\nvar camelCache = /* @__PURE__ */ new Map();\nvar dashCache = /* @__PURE__ */ new Map();\nvar prefixes = [\"Webkit\", \"Moz\", \"O\", \"ms\", \"\"];\nvar numPrefixes = prefixes.length;\nvar isBrowser = typeof document !== \"undefined\";\nvar testElement;\nvar setDashPrefix = function(key, prefixed) {\n return dashCache.set(key, camelToDash(prefixed));\n};\nvar testPrefix = function(key) {\n testElement = testElement || document.createElement(\"div\");\n for (var i2 = 0; i2 < numPrefixes; i2++) {\n var prefix = prefixes[i2];\n var noPrefix = prefix === \"\";\n var prefixedPropertyName = noPrefix ? key : prefix + key.charAt(0).toUpperCase() + key.slice(1);\n if (prefixedPropertyName in testElement.style || noPrefix) {\n if (noPrefix && key === \"clipPath\" && dashCache.has(key)) {\n return;\n }\n camelCache.set(key, prefixedPropertyName);\n setDashPrefix(key, \"\" + (noPrefix ? \"\" : \"-\") + camelToDash(prefixedPropertyName));\n }\n }\n};\nvar setServerProperty = function(key) {\n return setDashPrefix(key, key);\n};\nvar prefixer = function(key, asDashCase) {\n if (asDashCase === void 0) {\n asDashCase = false;\n }\n var cache2 = asDashCase ? dashCache : camelCache;\n if (!cache2.has(key)) {\n isBrowser ? testPrefix(key) : setServerProperty(key);\n }\n return cache2.get(key) || key;\n};\nvar axes = [\"\", \"X\", \"Y\", \"Z\"];\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\", \"transformPerspective\"];\nvar transformProps = /* @__PURE__ */ order.reduce(function(acc, key) {\n return axes.reduce(function(axesAcc, axesKey) {\n axesAcc.push(key + axesKey);\n return axesAcc;\n }, acc);\n}, [\"x\", \"y\", \"z\"]);\nvar transformPropDictionary = /* @__PURE__ */ transformProps.reduce(function(dict, key) {\n dict[key] = true;\n return dict;\n}, {});\nfunction isTransformProp(key) {\n return transformPropDictionary[key] === true;\n}\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\nvar transformOriginProps = /* @__PURE__ */ new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\nvar int = /* @__PURE__ */ __assign$1(/* @__PURE__ */ __assign$1({}, number), { transform: Math.round });\nvar valueTypes = {\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n zIndex: int,\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int\n};\nvar getValueType = function(key) {\n return valueTypes[key];\n};\nvar getValueAsType = function(value, type) {\n return type && typeof value === \"number\" ? type.transform(value) : value;\n};\nvar SCROLL_LEFT = \"scrollLeft\";\nvar SCROLL_TOP = \"scrollTop\";\nvar scrollKeys = /* @__PURE__ */ new Set([SCROLL_LEFT, SCROLL_TOP]);\nvar blacklist = /* @__PURE__ */ new Set([SCROLL_LEFT, SCROLL_TOP, \"transform\"]);\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\"\n};\nfunction isCustomTemplate(v) {\n return typeof v === \"function\";\n}\nfunction buildTransform(state, transform, transformKeys, transformIsDefault, enableHardwareAcceleration, allowTransformNone) {\n if (allowTransformNone === void 0) {\n allowTransformNone = true;\n }\n var transformString = \"\";\n var transformHasZ = false;\n transformKeys.sort(sortTransformProps);\n var numTransformKeys = transformKeys.length;\n for (var i2 = 0; i2 < numTransformKeys; i2++) {\n var key = transformKeys[i2];\n transformString += (translateAlias[key] || key) + \"(\" + transform[key] + \") \";\n transformHasZ = key === \"z\" ? true : transformHasZ;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n } else {\n transformString = transformString.trim();\n }\n if (isCustomTemplate(state.transform)) {\n transformString = state.transform(transform, transformIsDefault ? \"\" : transformString);\n } else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\nfunction buildStyleProperty(state, enableHardwareAcceleration, styles, transform, transformOrigin, transformKeys, isDashCase, allowTransformNone) {\n if (enableHardwareAcceleration === void 0) {\n enableHardwareAcceleration = true;\n }\n if (styles === void 0) {\n styles = {};\n }\n if (transform === void 0) {\n transform = {};\n }\n if (transformOrigin === void 0) {\n transformOrigin = {};\n }\n if (transformKeys === void 0) {\n transformKeys = [];\n }\n if (isDashCase === void 0) {\n isDashCase = false;\n }\n if (allowTransformNone === void 0) {\n allowTransformNone = true;\n }\n var transformIsDefault = true;\n var hasTransform = false;\n var hasTransformOrigin = false;\n for (var key in state) {\n var value = state[key];\n var valueType = getValueType(key);\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n if (transformIsDefault) {\n if (valueType.default && value !== valueType.default || !valueType.default && value !== 0) {\n transformIsDefault = false;\n }\n }\n } else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType;\n hasTransformOrigin = true;\n } else if (!blacklist.has(key) || !isCustomTemplate(valueAsType)) {\n styles[prefixer(key, isDashCase)] = valueAsType;\n }\n }\n if (hasTransform || typeof state.transform === \"function\") {\n styles.transform = buildTransform(state, transform, transformKeys, transformIsDefault, enableHardwareAcceleration, allowTransformNone);\n }\n if (hasTransformOrigin) {\n styles.transformOrigin = (transformOrigin.originX || \"50%\") + \" \" + (transformOrigin.originY || \"50%\") + \" \" + (transformOrigin.originZ || 0);\n }\n return styles;\n}\nfunction createStyleBuilder(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.isDashCase, isDashCase = _d === void 0 ? true : _d, _e = _b.allowTransformNone, allowTransformNone = _e === void 0 ? true : _e;\n var styles = {};\n var transform = {};\n var transformOrigin = {};\n var transformKeys = [];\n return function(state) {\n transformKeys.length = 0;\n buildStyleProperty(state, enableHardwareAcceleration, styles, transform, transformOrigin, transformKeys, isDashCase, allowTransformNone);\n return styles;\n };\n}\nfunction onRead(key, options) {\n var element = options.element, preparseOutput = options.preparseOutput;\n var defaultValueType = getValueType(key);\n if (isTransformProp(key)) {\n return defaultValueType ? defaultValueType.default || 0 : 0;\n } else if (scrollKeys.has(key)) {\n return element[key];\n } else {\n var domValue = window.getComputedStyle(element, null).getPropertyValue(prefixer(key, true)) || 0;\n return preparseOutput && defaultValueType && defaultValueType.test(domValue) && defaultValueType.parse ? defaultValueType.parse(domValue) : domValue;\n }\n}\nfunction onRender(state, _a, changedValues) {\n var element = _a.element, buildStyles = _a.buildStyles, hasCSSVariable = _a.hasCSSVariable;\n Object.assign(element.style, buildStyles(state));\n if (hasCSSVariable) {\n var numChangedValues = changedValues.length;\n for (var i2 = 0; i2 < numChangedValues; i2++) {\n var key = changedValues[i2];\n if (key.startsWith(\"--\")) {\n element.style.setProperty(key, state[key]);\n }\n }\n }\n if (changedValues.indexOf(SCROLL_LEFT) !== -1) {\n element[SCROLL_LEFT] = state[SCROLL_LEFT];\n }\n if (changedValues.indexOf(SCROLL_TOP) !== -1) {\n element[SCROLL_TOP] = state[SCROLL_TOP];\n }\n}\nvar cssStyler = /* @__PURE__ */ createStyler({\n onRead,\n onRender,\n uncachedValues: scrollKeys\n});\nfunction createCssStyler(element, _a) {\n if (_a === void 0) {\n _a = {};\n }\n var enableHardwareAcceleration = _a.enableHardwareAcceleration, allowTransformNone = _a.allowTransformNone, props = __rest(_a, [\"enableHardwareAcceleration\", \"allowTransformNone\"]);\n return cssStyler(__assign$1({ element, buildStyles: createStyleBuilder({\n enableHardwareAcceleration,\n allowTransformNone\n }), preparseOutput: true }, props));\n}\nvar camelCaseAttributes = /* @__PURE__ */ new Set([\"baseFrequency\", \"diffuseConstant\", \"kernelMatrix\", \"kernelUnitLength\", \"keySplines\", \"keyTimes\", \"limitingConeAngle\", \"markerHeight\", \"markerWidth\", \"numOctaves\", \"targetX\", \"targetY\", \"surfaceScale\", \"specularConstant\", \"specularExponent\", \"stdDeviation\", \"tableValues\"]);\nvar defaultOrigin = 0.5;\nvar svgAttrsTemplate = function() {\n return {\n style: {}\n };\n};\nvar progressToPixels = function(progress, length) {\n return px.transform(progress * length);\n};\nvar unmeasured = { x: 0, y: 0, width: 0, height: 0 };\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\" ? origin : px.transform(offset + size * origin);\n}\nfunction calculateSVGTransformOrigin(dimensions, originX, originY) {\n return calcOrigin(originX, dimensions.x, dimensions.width) + \" \" + calcOrigin(originY, dimensions.y, dimensions.height);\n}\nvar svgStyleConfig = {\n enableHardwareAcceleration: false,\n isDashCase: false\n};\nfunction buildSVGAttrs(_a, dimensions, totalPathLength, cssBuilder, attrs, isDashCase) {\n if (dimensions === void 0) {\n dimensions = unmeasured;\n }\n if (cssBuilder === void 0) {\n cssBuilder = createStyleBuilder(svgStyleConfig);\n }\n if (attrs === void 0) {\n attrs = svgAttrsTemplate();\n }\n if (isDashCase === void 0) {\n isDashCase = true;\n }\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, state = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n var style2 = cssBuilder(state);\n for (var key in style2) {\n if (key === \"transform\") {\n attrs.style.transform = style2[key];\n } else {\n var attrKey = isDashCase && !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n attrs[attrKey] = style2[key];\n }\n }\n if (originX !== void 0 || originY !== void 0 || style2.transform) {\n attrs.style.transformOrigin = calculateSVGTransformOrigin(dimensions, originX !== void 0 ? originX : defaultOrigin, originY !== void 0 ? originY : defaultOrigin);\n }\n if (attrX !== void 0)\n attrs.x = attrX;\n if (attrY !== void 0)\n attrs.y = attrY;\n if (totalPathLength !== void 0 && pathLength !== void 0) {\n attrs[isDashCase ? \"stroke-dashoffset\" : \"strokeDashoffset\"] = progressToPixels(-pathOffset, totalPathLength);\n attrs[isDashCase ? \"stroke-dasharray\" : \"strokeDasharray\"] = progressToPixels(pathLength, totalPathLength) + \" \" + progressToPixels(pathSpacing, totalPathLength);\n }\n return attrs;\n}\nfunction createAttrBuilder(dimensions, totalPathLength, isDashCase) {\n if (isDashCase === void 0) {\n isDashCase = true;\n }\n var attrs = svgAttrsTemplate();\n var cssBuilder = createStyleBuilder(svgStyleConfig);\n return function(state) {\n return buildSVGAttrs(state, dimensions, totalPathLength, cssBuilder, attrs, isDashCase);\n };\n}\nvar getDimensions = function(element) {\n return typeof element.getBBox === \"function\" ? element.getBBox() : element.getBoundingClientRect();\n};\nvar getSVGElementDimensions = function(element) {\n try {\n return getDimensions(element);\n } catch (e2) {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n};\nvar isPath = function(element) {\n return element.tagName === \"path\";\n};\nvar svgStyler = /* @__PURE__ */ createStyler({\n onRead: function(key, _a) {\n var element = _a.element;\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n if (!isTransformProp(key)) {\n return element.getAttribute(key);\n } else {\n var valueType = getValueType(key);\n return valueType ? valueType.default || 0 : 0;\n }\n },\n onRender: function(state, _a) {\n var element = _a.element, buildAttrs = _a.buildAttrs;\n var attrs = buildAttrs(state);\n for (var key in attrs) {\n if (key === \"style\") {\n Object.assign(element.style, attrs.style);\n } else {\n element.setAttribute(key, attrs[key]);\n }\n }\n }\n});\nvar svg = function(element) {\n var dimensions = getSVGElementDimensions(element);\n var pathLength = isPath(element) && element.getTotalLength ? element.getTotalLength() : void 0;\n return svgStyler({\n element,\n buildAttrs: createAttrBuilder(dimensions, pathLength)\n });\n};\nvar viewport = /* @__PURE__ */ createStyler({\n useCache: false,\n onRead: function(key) {\n return key === \"scrollTop\" ? window.pageYOffset : window.pageXOffset;\n },\n onRender: function(_a) {\n var _b = _a.scrollTop, scrollTop = _b === void 0 ? 0 : _b, _c = _a.scrollLeft, scrollLeft = _c === void 0 ? 0 : _c;\n return window.scrollTo(scrollLeft, scrollTop);\n }\n});\nvar cache = /* @__PURE__ */ new WeakMap();\nvar isHTMLElement = function(node) {\n return node instanceof HTMLElement || typeof node.click === \"function\";\n};\nvar isSVGElement = function(node) {\n return node instanceof SVGElement || \"ownerSVGElement\" in node;\n};\nvar createDOMStyler = function(node, props) {\n var styler;\n if (node === window) {\n styler = viewport(node);\n } else if (isHTMLElement(node)) {\n styler = createCssStyler(node, props);\n } else if (isSVGElement(node)) {\n styler = svg(node);\n }\n cache.set(node, styler);\n return styler;\n};\nvar getStyler = function(node, props) {\n return cache.has(node) ? cache.get(node) : createDOMStyler(node, props);\n};\nfunction index(nodeOrSelector, props) {\n var node = typeof nodeOrSelector === \"string\" ? document.querySelector(nodeOrSelector) : nodeOrSelector;\n return getStyler(node, props);\n}\nvar shallowequal = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (ret !== void 0) {\n return !!ret;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n};\nconst e$1 = \"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", s$1 = e$1.length, t$1 = Array(20), r$1 = () => {\n for (let r2 = 0; r2 < 20; r2++)\n t$1[r2] = e$1.charAt(Math.random() * s$1);\n return t$1.join(\"\");\n};\nclass o {\n constructor() {\n this.disposers = new Map();\n }\n add(e2, s2 = r$1()) {\n return this.flush(s2), this.disposers.set(s2, e2()), s2;\n }\n addDisposer(e2, s2 = r$1()) {\n return this.flush(s2), this.disposers.set(s2, e2), s2;\n }\n addEventListener(e2, s2, t2, o2, i2 = r$1()) {\n return this.add(() => (e2.addEventListener(s2, t2, o2), () => e2.removeEventListener(s2, t2, o2)), i2), i2;\n }\n setTimeout(e2, s2, t2 = r$1()) {\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$1()) {\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}\nvar e = Object.defineProperty, s = (typeof require != \"undefined\" && require, (s2, r2, t2) => (((s3, r3, t3) => {\n r3 in s3 ? e(s3, r3, { enumerable: true, configurable: true, writable: true, value: t3 }) : s3[r3] = t3;\n})(s2, typeof r2 != \"symbol\" ? r2 + \"\" : r2, t2), t2));\nclass r {\n constructor(e2, r2) {\n s(this, \"_value\"), s(this, \"_beforeDestroys\"), s(this, \"_subscribers\"), this._value = e2, r2 && (this.compare = r2);\n }\n get value() {\n return this._value;\n }\n setValue(e2, s2) {\n if (!this.compare(e2, this._value)) {\n const r2 = this._value;\n this._value = e2, this._subscribers && this._subscribers.forEach((t2) => t2(e2, r2, s2));\n }\n }\n reaction(e2) {\n return this._subscribers || (this._subscribers = new Set()), this._subscribers.add(e2), () => {\n this._subscribers && this._subscribers.delete(e2);\n };\n }\n subscribe(e2, s2) {\n const r2 = this.reaction(e2);\n return e2(this._value, void 0, s2), r2;\n }\n derive(e2, s2, t2) {\n const i2 = new r(e2(this.value, void 0, t2), s2), o2 = this.reaction((s3, r2, t3) => {\n i2.setValue(e2(s3, r2, t3));\n });\n return i2.addBeforeDestroy(o2), i2;\n }\n destroy() {\n this._beforeDestroys && (this._beforeDestroys.forEach((e2) => e2()), this._beforeDestroys.clear()), this._subscribers && this._subscribers.clear();\n }\n addBeforeDestroy(e2) {\n return this._beforeDestroys || (this._beforeDestroys = new Set()), this._beforeDestroys.add(e2), () => {\n this._beforeDestroys && this._beforeDestroys.delete(e2);\n };\n }\n compare(e2, s2) {\n return e2 === s2;\n }\n}\nfunction t(e2, s2, t2, i2) {\n let o2 = e2.map((e3) => e3.value);\n const u2 = new r(s2(o2, void 0, i2), t2);\n return e2.forEach((e3, r2) => {\n const t3 = e3.reaction((e4, t4, i3) => {\n const c2 = o2.slice();\n c2[r2] = e4;\n const n = o2;\n o2 = c2, u2.setValue(s2(c2, n, i3), i3);\n });\n u2.addBeforeDestroy(t3);\n }), u2;\n}\nfunction i(e2, s2) {\n Object.keys(s2).forEach((r2) => {\n u(e2, r2, s2[r2]);\n });\n}\nfunction u(e2, s2, r2) {\n var t2;\n return Object.defineProperties(e2, { [s2]: { get: () => r2.value }, [`_${s2}$`]: { value: r2 }, [`set${t2 = s2, t2[0].toUpperCase() + t2.slice(1)}`]: { value: (e3, s3) => r2.setValue(e3, s3) } }), e2;\n}\nfunction c(e2) {\n const s2 = (s3) => {\n const r2 = e2.addDisposer(() => {\n s3.destroy();\n });\n return s3.addBeforeDestroy(() => {\n e2.remove(r2);\n }), s3;\n };\n return { bindSideEffect: s2, combine: (e3, r2, i2, o2) => s2(t(e3, r2, i2, o2)), createVal: (e3, t2) => s2(new r(e3, t2)) };\n}\nvar style$2 = '.telebox-titlebar {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n box-sizing: border-box;\\n height: 26px;\\n display: flex;\\n align-items: center;\\n background: #fff;\\n user-select: none;\\n border-bottom: 1px solid #eeeef7;\\n touch-action: manipulation;\\n}\\n\\n.telebox-title-area {\\n padding-left: 16px;\\n overflow: hidden;\\n position: relative;\\n height: 100%;\\n flex: 1;\\n display: flex;\\n align-items: center;\\n}\\n\\n.telebox-title {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n overflow: hidden;\\n margin: 0;\\n padding: 0;\\n font-size: 14px;\\n font-weight: 400;\\n font-family: PingFangSC-Regular, PingFang SC;\\n white-space: nowrap;\\n word-break: keep-all;\\n text-overflow: ellipsis;\\n color: #191919;\\n}\\n\\n.telebox-drag-area {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n margin: auto;\\n z-index: 10;\\n}\\n\\n.telebox-titlebar-btns {\\n position: absolute;\\n right: 16px;\\n white-space: nowrap;\\n word-break: keep-all;\\n margin-left: auto;\\n font-size: 0;\\n z-index: 10;\\n}\\n\\n.telebox-titlebar-btn {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n width: 22px;\\n height: 22px;\\n padding: 0;\\n outline: none;\\n border: none;\\n background: transparent;\\n cursor: pointer;\\n}\\n\\n.telebox-titlebar-btn ~ .telebox-titlebar-btn {\\n margin-left: 10px;\\n}\\n\\n.telebox-titlebar-btn-icon {\\n width: 22px;\\n height: 22px;\\n}\\n\\n.telebox-readonly .telebox-titlebar-btn {\\n cursor: not-allowed;\\n}\\n\\n.telebox-titlebar-icon-minimize {\\n background: center/cover no-repeat url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=\");\\n}\\n\\n.telebox-titlebar-icon-maximize {\\n background: center/cover no-repeat url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==\");\\n}\\n\\n.telebox-titlebar-icon-maximize.is-active {\\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K\");\\n}\\n\\n.telebox-titlebar-icon-close {\\n background: center/cover no-repeat url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=\");\\n}\\n\\n.telebox-color-scheme-dark {\\n color-scheme: dark;\\n}\\n\\n.telebox-color-scheme-dark .telebox-title {\\n color: #e9e9e9;\\n}\\n\\n.telebox-color-scheme-dark .telebox-titlebar {\\n color: #e9e9e9;\\n background: #43434d;\\n border-bottom: none;\\n}';\nvar TELE_BOX_COLOR_SCHEME;\n(function(TELE_BOX_COLOR_SCHEME2) {\n TELE_BOX_COLOR_SCHEME2[\"Light\"] = \"light\";\n TELE_BOX_COLOR_SCHEME2[\"Dark\"] = \"dark\";\n TELE_BOX_COLOR_SCHEME2[\"Auto\"] = \"auto\";\n})(TELE_BOX_COLOR_SCHEME || (TELE_BOX_COLOR_SCHEME = {}));\nvar TELE_BOX_STATE;\n(function(TELE_BOX_STATE2) {\n TELE_BOX_STATE2[\"Normal\"] = \"normal\";\n TELE_BOX_STATE2[\"Minimized\"] = \"minimized\";\n TELE_BOX_STATE2[\"Maximized\"] = \"maximized\";\n})(TELE_BOX_STATE || (TELE_BOX_STATE = {}));\nvar TELE_BOX_EVENT;\n(function(TELE_BOX_EVENT2) {\n TELE_BOX_EVENT2[\"DarkMode\"] = \"dark_mode\";\n TELE_BOX_EVENT2[\"PrefersColorScheme\"] = \"prefers_color_scheme\";\n TELE_BOX_EVENT2[\"Close\"] = \"close\";\n TELE_BOX_EVENT2[\"Focus\"] = \"focus\";\n TELE_BOX_EVENT2[\"Blur\"] = \"blur\";\n TELE_BOX_EVENT2[\"Move\"] = \"move\";\n TELE_BOX_EVENT2[\"Resize\"] = \"resize\";\n TELE_BOX_EVENT2[\"IntrinsicMove\"] = \"intrinsic_move\";\n TELE_BOX_EVENT2[\"IntrinsicResize\"] = \"intrinsic_resize\";\n TELE_BOX_EVENT2[\"VisualResize\"] = \"visual_resize\";\n TELE_BOX_EVENT2[\"ZIndex\"] = \"z_index\";\n TELE_BOX_EVENT2[\"State\"] = \"state\";\n TELE_BOX_EVENT2[\"Minimized\"] = \"minimized\";\n TELE_BOX_EVENT2[\"Maximized\"] = \"maximized\";\n TELE_BOX_EVENT2[\"Readonly\"] = \"readonly\";\n TELE_BOX_EVENT2[\"Destroyed\"] = \"destroyed\";\n})(TELE_BOX_EVENT || (TELE_BOX_EVENT = {}));\nvar TELE_BOX_DELEGATE_EVENT;\n(function(TELE_BOX_DELEGATE_EVENT2) {\n TELE_BOX_DELEGATE_EVENT2[\"Close\"] = \"close\";\n TELE_BOX_DELEGATE_EVENT2[\"Maximize\"] = \"maximize\";\n TELE_BOX_DELEGATE_EVENT2[\"Minimize\"] = \"minimize\";\n})(TELE_BOX_DELEGATE_EVENT || (TELE_BOX_DELEGATE_EVENT = {}));\nvar TELE_BOX_RESIZE_HANDLE;\n(function(TELE_BOX_RESIZE_HANDLE2) {\n TELE_BOX_RESIZE_HANDLE2[\"North\"] = \"n\";\n TELE_BOX_RESIZE_HANDLE2[\"South\"] = \"s\";\n TELE_BOX_RESIZE_HANDLE2[\"West\"] = \"w\";\n TELE_BOX_RESIZE_HANDLE2[\"East\"] = \"e\";\n TELE_BOX_RESIZE_HANDLE2[\"NorthWest\"] = \"nw\";\n TELE_BOX_RESIZE_HANDLE2[\"NorthEast\"] = \"ne\";\n TELE_BOX_RESIZE_HANDLE2[\"SouthEast\"] = \"se\";\n TELE_BOX_RESIZE_HANDLE2[\"SouthWest\"] = \"sw\";\n})(TELE_BOX_RESIZE_HANDLE || (TELE_BOX_RESIZE_HANDLE = {}));\nconst TeleBoxDragHandleType = \"dh\";\nfunction clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\nfunction preventEvent(ev) {\n ev.stopPropagation();\n if (ev.cancelable) {\n ev.preventDefault();\n }\n}\nfunction flattenEvent(ev) {\n return ev.touches ? ev.touches[0] : ev;\n}\nfunction genUniqueKey() {\n return Date.now().toString().slice(6) + Math.random().toString().slice(2, 8);\n}\nlet defaultBoxCount = 1;\nfunction getBoxDefaultName() {\n return `New Box ${defaultBoxCount++}`;\n}\nfunction isTruthy(value) {\n return Boolean(value);\n}\nfunction isFalsy(value) {\n return !value;\n}\nclass DefaultTitleBar {\n constructor({\n readonly = false,\n title,\n buttons,\n onEvent,\n onDragStart,\n namespace = \"telebox\",\n state = TELE_BOX_STATE.Normal\n } = {}) {\n this.$btns = [];\n this.sideEffect = new o();\n this.lastTitleBarClick = {\n timestamp: 0,\n clientX: -100,\n clientY: -100\n };\n this.handleTitleBarClick = (ev) => {\n var _a;\n if (this.readonly) {\n return;\n }\n if (ev.button !== 0) {\n return;\n }\n if ((_a = ev.target.dataset) == null ? void 0 : _a.teleTitleBarNoDblClick) {\n return;\n }\n preventEvent(ev);\n const now = Date.now();\n if (now - this.lastTitleBarClick.timestamp <= 500) {\n if (Math.abs(ev.clientX - this.lastTitleBarClick.clientX) <= 5 && Math.abs(ev.clientY - this.lastTitleBarClick.clientY) <= 5) {\n if (this.onEvent) {\n this.onEvent({ type: TELE_BOX_DELEGATE_EVENT.Maximize });\n }\n }\n } else if (this.onDragStart) {\n this.onDragStart(ev);\n }\n this.lastTitleBarClick.timestamp = now;\n this.lastTitleBarClick.clientX = ev.clientX;\n this.lastTitleBarClick.clientY = ev.clientY;\n };\n this.lastTitleBarTouch = {\n timestamp: 0,\n clientX: -100,\n clientY: -100\n };\n this.handleTitleBarTouch = (ev) => {\n var _a;\n if (this.readonly) {\n return;\n }\n if ((_a = ev.target.dataset) == null ? void 0 : _a.teleTitleBarNoDblClick) {\n return;\n }\n preventEvent(ev);\n const now = Date.now();\n const {\n clientX = this.lastTitleBarTouch.clientX + 100,\n clientY = this.lastTitleBarTouch.clientY + 100\n } = ev.touches[0] || {};\n if (now - this.lastTitleBarTouch.timestamp <= 500) {\n if (Math.abs(clientX - this.lastTitleBarTouch.clientX) <= 10 && Math.abs(clientY - this.lastTitleBarTouch.clientY) <= 10) {\n if (this.onEvent) {\n this.onEvent({ type: TELE_BOX_DELEGATE_EVENT.Maximize });\n }\n }\n } else if (this.onDragStart) {\n this.onDragStart(ev);\n }\n this.lastTitleBarTouch.timestamp = now;\n this.lastTitleBarTouch.clientX = clientX;\n this.lastTitleBarTouch.clientY = clientY;\n };\n this.readonly = readonly;\n this.onEvent = onEvent;\n this.onDragStart = onDragStart;\n this.namespace = namespace;\n this.title = title;\n this.state = state;\n this.buttons = buttons || [\n {\n type: TELE_BOX_DELEGATE_EVENT.Minimize,\n iconClassName: this.wrapClassName(\"titlebar-icon-minimize\")\n },\n {\n type: TELE_BOX_DELEGATE_EVENT.Maximize,\n iconClassName: this.wrapClassName(\"titlebar-icon-maximize\"),\n isActive: (state2) => state2 === TELE_BOX_STATE.Maximized\n },\n {\n type: TELE_BOX_DELEGATE_EVENT.Close,\n iconClassName: this.wrapClassName(\"titlebar-icon-close\")\n }\n ];\n this.$dragArea = this.renderDragArea();\n }\n setTitle(title) {\n this.title = title;\n if (this.$title) {\n this.$title.textContent = title;\n this.$title.title = title;\n }\n }\n setState(state) {\n if (this.state !== state) {\n this.state = state;\n this.buttons.forEach((btn, i2) => {\n if (btn.isActive) {\n this.$btns[i2].classList.toggle(\"is-active\", btn.isActive(state));\n }\n });\n }\n }\n setReadonly(readonly) {\n if (this.readonly !== readonly) {\n this.readonly = readonly;\n }\n }\n render() {\n if (!this.$titleBar) {\n this.$titleBar = document.createElement(\"div\");\n this.$titleBar.className = this.wrapClassName(\"titlebar\");\n const $titleArea = document.createElement(\"div\");\n $titleArea.className = this.wrapClassName(\"title-area\");\n $titleArea.dataset.teleBoxHandle = TeleBoxDragHandleType;\n this.$title = document.createElement(\"h1\");\n this.$title.className = this.wrapClassName(\"title\");\n this.$title.dataset.teleBoxHandle = TeleBoxDragHandleType;\n if (this.title) {\n this.$title.textContent = this.title;\n this.$title.title = this.title;\n }\n $titleArea.appendChild(this.$title);\n $titleArea.appendChild(this.$dragArea);\n const $buttonsContainer = document.createElement(\"div\");\n $buttonsContainer.className = this.wrapClassName(\"titlebar-btns\");\n this.buttons.forEach(({ iconClassName, isActive }, i2) => {\n const teleTitleBarBtnIndex = String(i2);\n const $btn = document.createElement(\"button\");\n $btn.className = `${this.wrapClassName(\"titlebar-btn\")} ${iconClassName}`;\n $btn.dataset.teleTitleBarBtnIndex = teleTitleBarBtnIndex;\n $btn.dataset.teleTitleBarNoDblClick = \"true\";\n if (isActive) {\n $btn.classList.toggle(\"is-active\", isActive(this.state));\n }\n this.$btns.push($btn);\n $buttonsContainer.appendChild($btn);\n });\n this.sideEffect.addEventListener($buttonsContainer, \"click\", (ev) => {\n var _a;\n if (this.readonly) {\n return;\n }\n const target = ev.target;\n const teleTitleBarBtnIndex = Number((_a = target.dataset) == null ? void 0 : _a.teleTitleBarBtnIndex);\n if (!Number.isNaN(teleTitleBarBtnIndex) && teleTitleBarBtnIndex < this.buttons.length) {\n preventEvent(ev);\n const btn = this.buttons[teleTitleBarBtnIndex];\n if (this.onEvent) {\n this.onEvent({\n type: btn.type,\n value: btn.value\n });\n }\n }\n });\n this.$titleBar.appendChild($titleArea);\n this.$titleBar.appendChild($buttonsContainer);\n }\n return this.$titleBar;\n }\n renderDragArea() {\n const $dragArea = document.createElement(\"div\");\n $dragArea.className = this.wrapClassName(\"drag-area\");\n $dragArea.dataset.teleBoxHandle = TeleBoxDragHandleType;\n this.sideEffect.addEventListener($dragArea, \"mousedown\", this.handleTitleBarClick);\n this.sideEffect.addEventListener($dragArea, \"touchstart\", this.handleTitleBarTouch, { passive: true });\n return $dragArea;\n }\n dragHandle() {\n return this.$titleBar;\n }\n wrapClassName(className) {\n return `${this.namespace}-${className}`;\n }\n destroy() {\n this.sideEffect.flushAll();\n if (this.$titleBar) {\n this.$titleBar = void 0;\n this.$title = void 0;\n this.$btns.length = 0;\n this.onDragStart = void 0;\n this.onEvent = void 0;\n }\n }\n}\nclass TeleBox {\n constructor({\n id = genUniqueKey(),\n title = getBoxDefaultName(),\n prefersColorScheme = TELE_BOX_COLOR_SCHEME.Light,\n darkMode,\n visible = true,\n width = 0.5,\n height = 0.5,\n minWidth = 0,\n minHeight = 0,\n x = 0.1,\n y = 0.1,\n minimized = false,\n maximized = false,\n readonly = false,\n resizable = true,\n draggable = true,\n fence = true,\n fixRatio = false,\n focus = false,\n zIndex = 100,\n namespace = \"telebox\",\n titleBar,\n content,\n footer,\n styles,\n containerRect = {\n x: 0,\n y: 0,\n width: window.innerWidth,\n height: window.innerHeight\n },\n collectorRect\n } = {}) {\n this._renderSideEffect = new o();\n this.handleTrackStart = (ev) => {\n var _a;\n return (_a = this._handleTrackStart) == null ? void 0 : _a.call(this, ev);\n };\n this._sideEffect = new o();\n this._valSideEffectBinder = c(this._sideEffect);\n const { combine, createVal } = this._valSideEffectBinder;\n this.id = id;\n this.namespace = namespace;\n this.events = new EventEmitter();\n this._delegateEvents = new EventEmitter();\n const prefersColorScheme$ = createVal(prefersColorScheme);\n prefersColorScheme$.reaction((prefersColorScheme2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.PrefersColorScheme, prefersColorScheme2);\n }\n });\n const darkMode$ = createVal(Boolean(darkMode));\n if (darkMode == null) {\n prefersColorScheme$.subscribe((prefersColorScheme2, _, skipUpdate) => {\n this._sideEffect.add(() => {\n if (prefersColorScheme2 === \"auto\") {\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n if (prefersDark) {\n darkMode$.setValue(prefersDark.matches, skipUpdate);\n const handler = (evt) => {\n darkMode$.setValue(evt.matches, skipUpdate);\n };\n prefersDark.addListener(handler);\n return () => prefersDark.removeListener(handler);\n } else {\n return noop;\n }\n } else {\n darkMode$.setValue(prefersColorScheme2 === \"dark\", skipUpdate);\n return noop;\n }\n }, \"prefers-color-scheme\");\n });\n }\n darkMode$.reaction((darkMode2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.DarkMode, darkMode2);\n }\n });\n const containerRect$ = createVal(containerRect, shallowequal);\n const collectorRect$ = createVal(collectorRect, shallowequal);\n const title$ = createVal(title);\n const visible$ = createVal(visible);\n visible$.reaction((visible2, _, skipUpdate) => {\n if (!skipUpdate && !visible2) {\n this.events.emit(TELE_BOX_EVENT.Close);\n }\n });\n const readonly$ = createVal(readonly);\n readonly$.reaction((readonly2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.Readonly, readonly2);\n }\n });\n const resizable$ = createVal(resizable);\n const draggable$ = createVal(draggable);\n const fence$ = createVal(fence);\n const fixRatio$ = createVal(fixRatio);\n const zIndex$ = createVal(zIndex);\n zIndex$.reaction((zIndex2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.ZIndex, zIndex2);\n }\n });\n const focus$ = createVal(focus);\n focus$.reaction((focus2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(focus2 ? TELE_BOX_EVENT.Focus : TELE_BOX_EVENT.Blur);\n }\n });\n const minimized$ = createVal(minimized);\n minimized$.reaction((minimized2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.Minimized, minimized2);\n }\n });\n const maximized$ = createVal(maximized);\n maximized$.reaction((maximized2, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.Maximized, maximized2);\n }\n });\n const state$ = combine([minimized$, maximized$], ([minimized2, maximized2]) => minimized2 ? TELE_BOX_STATE.Minimized : maximized2 ? TELE_BOX_STATE.Maximized : TELE_BOX_STATE.Normal);\n state$.reaction((state, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.State, state);\n }\n });\n const minSize$ = createVal({\n width: clamp(minWidth, 0, 1),\n height: clamp(minHeight, 0, 1)\n }, shallowequal);\n const intrinsicSize$ = createVal({\n width: clamp(width, minSize$.value.width, 1),\n height: clamp(height, minSize$.value.height, 1)\n }, shallowequal);\n minSize$.reaction((minSize, _, skipUpdate) => {\n intrinsicSize$.setValue({\n width: clamp(width, minSize.width, 1),\n height: clamp(height, minSize.height, 1)\n }, skipUpdate);\n });\n intrinsicSize$.reaction((size, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.IntrinsicResize, size);\n }\n });\n const size$ = combine([intrinsicSize$, maximized$], ([intrinsicSize, maximized2]) => {\n if (maximized2) {\n return { width: 1, height: 1 };\n }\n return intrinsicSize;\n }, shallowequal);\n size$.reaction((size, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.Resize, size);\n }\n });\n const visualSize$ = combine([size$, minimized$, containerRect$, collectorRect$], ([size, minimized2, containerRect2, collectorRect2]) => {\n if (minimized2 && collectorRect2) {\n return {\n width: collectorRect2.width / size.width / containerRect2.width,\n height: collectorRect2.height / size.height / containerRect2.height\n };\n }\n return size;\n }, shallowequal);\n visualSize$.reaction((size, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.VisualResize, size);\n }\n });\n const intrinsicCoord$ = createVal({ x: clamp(x, 0, 1), y: clamp(y, 0, 1) }, shallowequal);\n intrinsicCoord$.reaction((coord, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.IntrinsicMove, coord);\n }\n });\n const coord$ = combine([\n intrinsicCoord$,\n intrinsicSize$,\n containerRect$,\n collectorRect$,\n minimized$,\n maximized$\n ], ([\n intrinsicCoord,\n intrinsicSize,\n containerRect2,\n collectorRect2,\n minimized2,\n maximized2\n ]) => {\n if (minimized2 && collectorRect2) {\n if (maximized2) {\n return {\n x: (collectorRect2.x + collectorRect2.width / 2) / containerRect2.width - 1 / 2,\n y: (collectorRect2.y + collectorRect2.height / 2) / containerRect2.height - 1 / 2\n };\n }\n return {\n x: (collectorRect2.x + collectorRect2.width / 2) / containerRect2.width - intrinsicSize.width / 2,\n y: (collectorRect2.y + collectorRect2.height / 2) / containerRect2.height - intrinsicSize.height / 2\n };\n }\n if (maximized2) {\n return { x: 0, y: 0 };\n }\n return intrinsicCoord;\n }, shallowequal);\n coord$.reaction((coord, _, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_EVENT.Move, coord);\n }\n });\n this.titleBar = titleBar || new DefaultTitleBar({\n readonly: readonly$.value,\n title: title$.value,\n namespace: this.namespace,\n onDragStart: (event) => {\n var _a;\n return (_a = this._handleTrackStart) == null ? void 0 : _a.call(this, event);\n },\n onEvent: (event) => {\n if (this._delegateEvents.listeners.length > 0) {\n this._delegateEvents.emit(event.type);\n } else {\n switch (event.type) {\n case TELE_BOX_DELEGATE_EVENT.Maximize: {\n maximized$.setValue(!maximized$.value);\n break;\n }\n case TELE_BOX_DELEGATE_EVENT.Minimize: {\n minimized$.setValue(true);\n break;\n }\n case TELE_BOX_DELEGATE_EVENT.Close: {\n visible$.setValue(false);\n break;\n }\n default: {\n console.error(\"Unsupported titleBar event:\", event);\n break;\n }\n }\n }\n }\n });\n readonly$.reaction((readonly2) => {\n this.titleBar.setReadonly(readonly2);\n });\n const $userContent$ = createVal(content);\n const $userFooter$ = createVal(footer);\n const $userStyles$ = createVal(styles);\n const valConfig = {\n prefersColorScheme: prefersColorScheme$,\n darkMode: darkMode$,\n containerRect: containerRect$,\n collectorRect: collectorRect$,\n title: title$,\n visible: visible$,\n readonly: readonly$,\n resizable: resizable$,\n draggable: draggable$,\n fence: fence$,\n fixRatio: fixRatio$,\n focus: focus$,\n zIndex: zIndex$,\n minimized: minimized$,\n maximized: maximized$,\n $userContent: $userContent$,\n $userFooter: $userFooter$,\n $userStyles: $userStyles$\n };\n i(this, valConfig);\n this._state$ = state$;\n this._minSize$ = minSize$;\n this._size$ = size$;\n this._intrinsicSize$ = intrinsicSize$;\n this._visualSize$ = visualSize$;\n this._coord$ = coord$;\n this._intrinsicCoord$ = intrinsicCoord$;\n if (this.fixRatio) {\n this.transform(coord$.value.x, coord$.value.y, size$.value.width, size$.value.height, true);\n }\n this.$box = this.render();\n }\n get darkMode() {\n return this._darkMode$.value;\n }\n get state() {\n return this._state$.value;\n }\n setState(state, skipUpdate = false) {\n switch (state) {\n case TELE_BOX_STATE.Maximized: {\n this.setMinimized(false, skipUpdate);\n this.setMaximized(true, skipUpdate);\n break;\n }\n case TELE_BOX_STATE.Minimized: {\n this.setMinimized(true, skipUpdate);\n this.setMaximized(false, skipUpdate);\n break;\n }\n default: {\n this.setMinimized(false, skipUpdate);\n this.setMaximized(false, skipUpdate);\n break;\n }\n }\n return this;\n }\n get minWidth() {\n return this._minSize$.value.width;\n }\n get minHeight() {\n return this._minSize$.value.height;\n }\n setMinWidth(minWidth, skipUpdate = false) {\n this._minSize$.setValue({ width: minWidth, height: this.minHeight }, skipUpdate);\n return this;\n }\n setMinHeight(minHeight, skipUpdate = false) {\n this._minSize$.setValue({ width: this.minWidth, height: minHeight }, skipUpdate);\n return this;\n }\n get intrinsicWidth() {\n return this._intrinsicSize$.value.width;\n }\n get intrinsicHeight() {\n return this._intrinsicSize$.value.height;\n }\n resize(width, height, skipUpdate = false) {\n this._intrinsicSize$.setValue({ width, height }, skipUpdate);\n return this;\n }\n get width() {\n return this._size$.value.width;\n }\n get height() {\n return this._size$.value.height;\n }\n get absoluteWidth() {\n return this.width * this.containerRect.width;\n }\n get absoluteHeight() {\n return this.height * this.containerRect.height;\n }\n get visualWidth() {\n return this._visualSize$.value.width;\n }\n get visualHeight() {\n return this._visualSize$.value.height;\n }\n get intrinsicX() {\n return this._intrinsicCoord$.value.x;\n }\n get intrinsicY() {\n return this._intrinsicCoord$.value.y;\n }\n move(x, y, skipUpdate = false) {\n this._intrinsicCoord$.setValue({ x, y }, skipUpdate);\n return this;\n }\n get x() {\n return this._coord$.value.x;\n }\n get y() {\n return this._coord$.value.y;\n }\n transform(x, y, width, height, skipUpdate = false) {\n if (this.fixRatio) {\n const newHeight = this.intrinsicHeight / this.intrinsicWidth * width;\n if (y !== this.intrinsicY) {\n y -= newHeight - height;\n }\n height = newHeight;\n }\n if (y < 0) {\n y = 0;\n if (height > this.intrinsicHeight) {\n height = this.intrinsicHeight;\n }\n }\n this._intrinsicCoord$.setValue({\n x: width >= this.minWidth ? x : this.intrinsicX,\n y: height >= this.minHeight ? y : this.intrinsicY\n }, skipUpdate);\n this._intrinsicSize$.setValue({\n width: clamp(width, this.minWidth, 1),\n height: clamp(height, this.minHeight, 1)\n }, skipUpdate);\n return this;\n }\n mount(container) {\n container.appendChild(this.render());\n return this;\n }\n unmount() {\n if (this.$box) {\n this.$box.remove();\n }\n return this;\n }\n mountContent(content) {\n this.set$userContent(content);\n return this;\n }\n unmountContent() {\n this.set$userContent(void 0);\n return this;\n }\n mountFooter(footer) {\n this.set$userFooter(footer);\n return this;\n }\n unmountFooter() {\n this.set$userFooter(void 0);\n return this;\n }\n getUserStyles() {\n return this.$userStyles;\n }\n mountStyles(styles) {\n let $styles;\n if (typeof styles === \"string\") {\n $styles = document.createElement(\"style\");\n $styles.textContent = styles;\n } else {\n $styles = styles;\n }\n this.set$userStyles($styles);\n return this;\n }\n unmountStyles() {\n this.set$userStyles(void 0);\n return this;\n }\n render(root) {\n if (root) {\n if (root === this.$box) {\n return this.$box;\n } else {\n this.$box = root;\n }\n } else {\n if (this.$box) {\n return this.$box;\n } else {\n this.$box = document.createElement(\"div\");\n }\n }\n this._renderSideEffect.flushAll();\n this.$box.classList.add(this.wrapClassName(\"box\"));\n const bindClassName = (el, val, className, predicate = isTruthy) => {\n return this._renderSideEffect.add(() => {\n const wrappedClassName = this.wrapClassName(className);\n return val.subscribe((value) => {\n el.classList.toggle(wrappedClassName, predicate(value));\n });\n });\n };\n bindClassName(this.$box, this._readonly$, \"readonly\");\n bindClassName(this.$box, this._draggable$, \"no-drag\", isFalsy);\n bindClassName(this.$box, this._resizable$, \"no-resize\", isFalsy);\n bindClassName(this.$box, this._focus$, \"blur\", isFalsy);\n bindClassName(this.$box, this._darkMode$, \"color-scheme-dark\");\n bindClassName(this.$box, this._darkMode$, \"color-scheme-light\", isFalsy);\n this._renderSideEffect.add(() => {\n const minimizedClassName = this.wrapClassName(\"minimized\");\n const maximizedClassName = this.wrapClassName(\"maximized\");\n const MAXIMIZED_TIMER_ID = \"box-maximized-timer\";\n return this._state$.subscribe((state) => {\n this.$box.classList.toggle(minimizedClassName, state === TELE_BOX_STATE.Minimized);\n if (state === TELE_BOX_STATE.Maximized) {\n this._renderSideEffect.flush(MAXIMIZED_TIMER_ID);\n this.$box.classList.toggle(maximizedClassName, true);\n } else {\n this._renderSideEffect.setTimeout(() => {\n this.$box.classList.toggle(maximizedClassName, false);\n }, 0, MAXIMIZED_TIMER_ID);\n }\n });\n });\n this._renderSideEffect.add(() => this._visible$.subscribe((visible) => {\n this.$box.style.display = visible ? \"block\" : \"none\";\n }));\n this._renderSideEffect.add(() => this._zIndex$.subscribe((zIndex) => {\n this.$box.style.zIndex = String(zIndex);\n }));\n const boxStyler = index(this.$box);\n this.$box.dataset.teleBoxID = this.id;\n this.$box.style.width = this.absoluteWidth + \"px\";\n this.$box.style.height = this.absoluteHeight + \"px\";\n const translateX = this.x * this.containerRect.width + this.containerRect.x;\n const translateY = this.y * this.containerRect.height + this.containerRect.y;\n this.$box.style.transform = `translate(${translateX - 10}px,${translateY - 10}px)`;\n this._valSideEffectBinder.combine([\n this._coord$,\n this._size$,\n this._minimized$,\n this._containerRect$,\n this._collectorRect$\n ], ([coord, size, minimized, containerRect, collectorRect]) => {\n const absoluteWidth = size.width * containerRect.width;\n const absoluteHeight = size.height * containerRect.height;\n return {\n width: absoluteWidth + (minimized && collectorRect ? 1 : 0),\n height: absoluteHeight + (minimized && collectorRect ? 1 : 0),\n x: coord.x * containerRect.width,\n y: coord.y * containerRect.height,\n scaleX: minimized && collectorRect ? collectorRect.width / absoluteWidth : 1,\n scaleY: minimized && collectorRect ? collectorRect.height / absoluteHeight : 1\n };\n }, shallowequal).subscribe((styles) => {\n boxStyler.set(styles);\n });\n boxStyler.set({ x: translateX, y: translateY });\n const $boxMain = document.createElement(\"div\");\n $boxMain.className = this.wrapClassName(\"box-main\");\n this.$box.appendChild($boxMain);\n const $titleBar = document.createElement(\"div\");\n $titleBar.className = this.wrapClassName(\"titlebar-wrap\");\n $titleBar.appendChild(this.titleBar.render());\n this.$titleBar = $titleBar;\n const $contentWrap = document.createElement(\"div\");\n $contentWrap.className = this.wrapClassName(\"content-wrap\");\n const $content = document.createElement(\"div\");\n $content.className = this.wrapClassName(\"content\") + \" tele-fancy-scrollbar\";\n this.$content = $content;\n this._renderSideEffect.add(() => {\n let last$userStyles;\n return this._$userStyles$.subscribe(($userStyles) => {\n if (last$userStyles) {\n last$userStyles.remove();\n }\n last$userStyles = $userStyles;\n if ($userStyles) {\n $contentWrap.appendChild($userStyles);\n }\n });\n });\n this._renderSideEffect.add(() => {\n let last$userContent;\n return this._$userContent$.subscribe(($userContent) => {\n if (last$userContent) {\n last$userContent.remove();\n }\n last$userContent = $userContent;\n if ($userContent) {\n $content.appendChild($userContent);\n }\n });\n });\n $contentWrap.appendChild($content);\n const $footer = document.createElement(\"div\");\n $footer.className = this.wrapClassName(\"footer-wrap\");\n this.$footer = $footer;\n this._renderSideEffect.add(() => {\n let last$userFooter;\n return this._$userFooter$.subscribe(($userFooter) => {\n if (last$userFooter) {\n last$userFooter.remove();\n }\n last$userFooter = $userFooter;\n if ($userFooter) {\n $footer.appendChild($userFooter);\n }\n });\n });\n $boxMain.appendChild($titleBar);\n $boxMain.appendChild($contentWrap);\n $boxMain.appendChild($footer);\n this._renderResizeHandlers();\n return this.$box;\n }\n _renderResizeHandlers() {\n const $resizeHandles = document.createElement(\"div\");\n $resizeHandles.className = this.wrapClassName(\"resize-handles\");\n Object.values(TELE_BOX_RESIZE_HANDLE).forEach((handleType) => {\n const $handle = document.createElement(\"div\");\n $handle.className = this.wrapClassName(handleType) + \" \" + this.wrapClassName(\"resize-handle\");\n $handle.dataset.teleBoxHandle = handleType;\n $resizeHandles.appendChild($handle);\n });\n this.$box.appendChild($resizeHandles);\n const TRACKING_DISPOSER_ID = \"handle-tracking-listener\";\n const transformingClassName = this.wrapClassName(\"transforming\");\n let $trackMask;\n let trackStartX = 0;\n let trackStartY = 0;\n let trackStartWidth = 0;\n let trackStartHeight = 0;\n let trackStartPageX = 0;\n let trackStartPageY = 0;\n let trackingHandle;\n const handleTracking = (ev) => {\n if (this.state !== TELE_BOX_STATE.Normal) {\n return;\n }\n preventEvent(ev);\n let { pageX, pageY } = flattenEvent(ev);\n if (pageY < 0) {\n pageY = 0;\n }\n const offsetX = (pageX - trackStartPageX) / this.containerRect.width;\n const offsetY = (pageY - trackStartPageY) / this.containerRect.height;\n switch (trackingHandle) {\n case TELE_BOX_RESIZE_HANDLE.North: {\n this.transform(this.x, trackStartY + offsetY, this.width, trackStartHeight - offsetY);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.South: {\n this.transform(this.x, this.y, this.width, trackStartHeight + offsetY);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.West: {\n this.transform(trackStartX + offsetX, this.y, trackStartWidth - offsetX, this.height);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.East: {\n this.transform(this.x, this.y, trackStartWidth + offsetX, this.height);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.NorthWest: {\n this.transform(trackStartX + offsetX, trackStartY + offsetY, trackStartWidth - offsetX, trackStartHeight - offsetY);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.NorthEast: {\n this.transform(this.x, trackStartY + offsetY, trackStartWidth + offsetX, trackStartHeight - offsetY);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.SouthEast: {\n this.transform(this.x, this.y, trackStartWidth + offsetX, trackStartHeight + offsetY);\n break;\n }\n case TELE_BOX_RESIZE_HANDLE.SouthWest: {\n this.transform(trackStartX + offsetX, this.y, trackStartWidth - offsetX, trackStartHeight + offsetY);\n break;\n }\n default: {\n if (this.fence) {\n this.move(clamp(trackStartX + offsetX, 0, 1 - this.width), clamp(trackStartY + offsetY, 0, 1 - this.height));\n } else {\n const xOverflowOffset = 20 / this.containerRect.width;\n const yOverflowOffset = 20 / this.containerRect.height;\n this.move(clamp(trackStartX + offsetX, xOverflowOffset - this.width, 1 - xOverflowOffset), clamp(trackStartY + offsetY, 0, 1 - yOverflowOffset));\n }\n break;\n }\n }\n };\n const handleTrackEnd = (ev) => {\n trackingHandle = void 0;\n if (!$trackMask) {\n return;\n }\n preventEvent(ev);\n this.$box.classList.toggle(transformingClassName, false);\n this._sideEffect.flush(TRACKING_DISPOSER_ID);\n $trackMask.remove();\n };\n const handleTrackStart = (ev) => {\n var _a;\n if (this.readonly) {\n return;\n }\n if (ev.button != null && ev.button !== 0) {\n return;\n }\n if (!this.draggable || trackingHandle || this.state !== TELE_BOX_STATE.Normal) {\n return;\n }\n const target = ev.target;\n if ((_a = target.dataset) == null ? void 0 : _a.teleBoxHandle) {\n preventEvent(ev);\n trackStartX = this.x;\n trackStartY = this.y;\n trackStartWidth = this.width;\n trackStartHeight = this.height;\n ({ pageX: trackStartPageX, pageY: trackStartPageY } = flattenEvent(ev));\n trackingHandle = target.dataset.teleBoxHandle;\n if (!$trackMask) {\n $trackMask = document.createElement(\"div\");\n }\n const cursor = trackingHandle ? this.wrapClassName(`cursor-${trackingHandle}`) : \"\";\n $trackMask.className = this.wrapClassName(`track-mask${cursor ? ` ${cursor}` : \"\"}`);\n this.$box.appendChild($trackMask);\n this.$box.classList.add(transformingClassName);\n this._sideEffect.add(() => {\n window.addEventListener(\"mousemove\", handleTracking);\n window.addEventListener(\"touchmove\", handleTracking, {\n passive: false\n });\n window.addEventListener(\"mouseup\", handleTrackEnd);\n window.addEventListener(\"touchend\", handleTrackEnd, {\n passive: false\n });\n window.addEventListener(\"touchcancel\", handleTrackEnd, {\n passive: false\n });\n return () => {\n window.removeEventListener(\"mousemove\", handleTracking);\n window.removeEventListener(\"touchmove\", handleTracking);\n window.removeEventListener(\"mouseup\", handleTrackEnd);\n window.removeEventListener(\"touchend\", handleTrackEnd);\n window.removeEventListener(\"touchcancel\", handleTrackEnd);\n };\n }, TRACKING_DISPOSER_ID);\n }\n };\n this._handleTrackStart = handleTrackStart;\n this._sideEffect.addEventListener($resizeHandles, \"mousedown\", handleTrackStart, {}, \"box-resizeHandles-mousedown\");\n this._sideEffect.addEventListener($resizeHandles, \"touchstart\", handleTrackStart, { passive: false }, \"box-resizeHandles-touchstart\");\n }\n destroy() {\n this.$box.remove();\n this.events.emit(TELE_BOX_EVENT.Destroyed);\n this._sideEffect.flushAll();\n this._renderSideEffect.flushAll();\n this.events.removeAllListeners();\n this._delegateEvents.removeAllListeners();\n }\n wrapClassName(className) {\n return `${this.namespace}-${className}`;\n }\n}\nfunction noop() {\n return;\n}\nconst useUpdateEffect = (effect, deps) => {\n const isFirst = useRef(true);\n useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n return effect();\n }, deps);\n};\nconst TeleBoxReact = (props) => {\n const [teleBox] = useState(() => new TeleBox(props));\n useUpdateEffect(() => {\n if (props.prefersColorScheme != null) {\n teleBox.setPrefersColorScheme(props.prefersColorScheme);\n }\n }, [teleBox, props.prefersColorScheme]);\n useUpdateEffect(() => {\n if (props.minWidth != null) {\n teleBox.setMinWidth(props.minWidth);\n }\n }, [teleBox, props.minWidth]);\n useUpdateEffect(() => {\n if (props.minHeight != null) {\n teleBox.setMinHeight(props.minHeight);\n }\n }, [teleBox, props.minHeight]);\n useUpdateEffect(() => {\n var _a, _b;\n teleBox.resize((_a = props.width) != null ? _a : teleBox.width, (_b = props.height) != null ? _b : teleBox.height, true);\n }, [teleBox, props.width, props.height]);\n useUpdateEffect(() => {\n var _a, _b;\n teleBox.move((_a = props.x) != null ? _a : teleBox.x, (_b = props.y) != null ? _b : teleBox.y, true);\n }, [teleBox, props.x, props.y]);\n useUpdateEffect(() => {\n if (props.title != null) {\n teleBox.setTitle(props.title);\n }\n }, [teleBox, props.title]);\n useUpdateEffect(() => {\n if (props.visible != null) {\n teleBox.setVisible(props.visible);\n }\n }, [teleBox, props.visible]);\n useUpdateEffect(() => {\n if (props.minimized != null) {\n teleBox.setMinimized(props.minimized, true);\n }\n }, [teleBox, props.minimized]);\n useUpdateEffect(() => {\n if (props.maximized != null) {\n teleBox.setMaximized(props.maximized, true);\n }\n }, [teleBox, props.maximized]);\n useUpdateEffect(() => {\n if (props.state != null) {\n teleBox.setState(props.state, true);\n }\n }, [teleBox, props.state]);\n useUpdateEffect(() => {\n if (props.draggable != null) {\n teleBox.setDraggable(props.draggable);\n }\n }, [teleBox, props.draggable]);\n useUpdateEffect(() => {\n if (props.resizable != null) {\n teleBox.setResizable(props.resizable);\n }\n }, [teleBox, props.resizable]);\n useUpdateEffect(() => {\n if (props.fence != null) {\n teleBox.setFence(props.fence);\n }\n }, [teleBox, props.fence]);\n useUpdateEffect(() => {\n if (props.containerRect != null) {\n teleBox.setContainerRect(props.containerRect);\n }\n }, [teleBox, props.containerRect]);\n useUpdateEffect(() => {\n if (props.fixRatio != null) {\n teleBox.setFixRatio(props.fixRatio);\n }\n }, [teleBox, props.fixRatio]);\n useEffect(() => {\n if (props.onResize) {\n teleBox.events.on(TELE_BOX_EVENT.Resize, props.onResize);\n return () => {\n teleBox.events.off(TELE_BOX_EVENT.Resize, props.onResize);\n };\n }\n return;\n }, [teleBox, props.onResize]);\n useEffect(() => {\n if (props.onMove) {\n teleBox.events.on(TELE_BOX_EVENT.Move, props.onMove);\n return () => {\n teleBox.events.off(TELE_BOX_EVENT.Move, props.onMove);\n };\n }\n return;\n }, [teleBox, props.onMove]);\n useEffect(() => {\n if (props.onClose) {\n teleBox.events.on(TELE_BOX_EVENT.Close, props.onClose);\n return () => {\n teleBox.events.off(TELE_BOX_EVENT.Close, props.onClose);\n };\n }\n return;\n }, [teleBox, props.onClose]);\n useEffect(() => {\n if (props.onFocus) {\n teleBox.events.on(TELE_BOX_EVENT.Focus, props.onFocus);\n return () => {\n teleBox.events.off(TELE_BOX_EVENT.Focus, props.onFocus);\n };\n }\n return;\n }, [teleBox, props.onFocus]);\n useEffect(() => {\n if (props.onBlur) {\n teleBox.events.on(TELE_BOX_EVENT.Blur, props.onBlur);\n return () => {\n teleBox.events.off(TELE_BOX_EVENT.Blur, props.onBlur);\n };\n }\n return;\n }, [teleBox, props.onBlur]);\n useEffect(() => {\n if (props.onStateChanged) {\n teleBox.events.on(TELE_BOX_EVENT.State, props.onStateChanged);\n return () => {\n teleBox.events.off(TELE_BOX_EVENT.State, props.onStateChanged);\n };\n }\n return;\n }, [teleBox, props.onStateChanged]);\n return /* @__PURE__ */ React.createElement(\"div\", {\n ref: (node) => node && teleBox.render(node),\n className: teleBox.wrapClassName(\"box\")\n });\n};\nvar style$1 = \".telebox-collector {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n visibility: hidden;\\n display: block;\\n position: absolute;\\n z-index: 200;\\n width: 40px;\\n height: 40px;\\n margin: 0;\\n padding: 0;\\n border: none;\\n outline: none;\\n font-size: 0;\\n border-radius: 50%;\\n background: #fff;\\n box-shadow: 0px 2px 6px 0px rgba(47, 65, 146, 0.15);\\n cursor: pointer;\\n user-select: none;\\n pointer-events: none;\\n background-repeat: no-repeat;\\n background-size: 18px 16px;\\n background-position: center;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.telebox-collector-visible {\\n visibility: visible;\\n pointer-events: initial;\\n}\\n\\n.telebox-collector-readonly {\\n cursor: not-allowed;\\n}\\n\\n.telebox-color-scheme-dark {\\n color-scheme: dark;\\n}\\n\\n.telebox-color-scheme-dark.telebox-collector {\\n background-color: #43434d;\\n}\";\nvar collectorSVG = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K\";\nclass TeleBoxCollector {\n constructor({\n visible = true,\n readonly = false,\n darkMode = false,\n namespace = \"telebox\",\n styles = {},\n onClick\n } = {}) {\n this.handleCollectorClick = () => {\n if (!this._readonly && this.onClick) {\n this.onClick();\n }\n };\n this._visible = visible;\n this._readonly = readonly;\n this._darkMode = darkMode;\n this.namespace = namespace;\n this.styles = styles;\n this.onClick = onClick;\n }\n get visible() {\n return this._visible;\n }\n get readonly() {\n return this._readonly;\n }\n get darkMode() {\n return this._darkMode;\n }\n mount(root) {\n root.appendChild(this.render());\n return this;\n }\n unmount() {\n if (this.$collector) {\n this.$collector.remove();\n }\n return this;\n }\n setVisible(visible) {\n if (this._visible !== visible) {\n this._visible = visible;\n if (this.$collector) {\n this.$collector.classList.toggle(this.wrapClassName(\"collector-visible\"), visible);\n }\n }\n return this;\n }\n setReadonly(readonly) {\n if (this._readonly !== readonly) {\n this._readonly = readonly;\n if (this.$collector) {\n this.$collector.classList.toggle(this.wrapClassName(\"collector-readonly\"), readonly);\n }\n }\n return this;\n }\n setDarkMode(darkMode) {\n if (this._darkMode !== darkMode) {\n this._darkMode = darkMode;\n if (this.$collector) {\n this.$collector.classList.toggle(this.wrapClassName(\"color-scheme-dark\"), darkMode);\n this.$collector.classList.toggle(this.wrapClassName(\"color-scheme-light\"), !darkMode);\n }\n }\n return this;\n }\n setStyles(styles) {\n Object.assign(this.styles, styles);\n if (this.$collector) {\n const $collector = this.$collector;\n Object.keys(styles).forEach((key) => {\n const value = styles[key];\n if (value != null) {\n $collector.style[key] = value;\n }\n });\n }\n return this;\n }\n render() {\n if (!this.$collector) {\n this.$collector = document.createElement(\"button\");\n this.$collector.className = this.wrapClassName(\"collector\");\n this.$collector.style.backgroundImage = `url('${collectorSVG}')`;\n this.$collector.addEventListener(\"click\", this.handleCollectorClick);\n if (this._visible) {\n this.$collector.classList.add(this.wrapClassName(\"collector-visible\"));\n }\n if (this._readonly) {\n this.$collector.classList.add(this.wrapClassName(\"collector-readonly\"));\n }\n this.$collector.classList.add(this.wrapClassName(this._darkMode ? \"color-scheme-dark\" : \"color-scheme-light\"));\n this.setStyles(this.styles);\n }\n return this.$collector;\n }\n destroy() {\n if (this.$collector) {\n this.$collector.removeEventListener(\"click\", this.handleCollectorClick);\n this.$collector.remove();\n this.$collector = void 0;\n }\n this.onClick = void 0;\n }\n wrapClassName(className) {\n return `${this.namespace}-${className}`;\n }\n}\nvar TELE_BOX_MANAGER_EVENT;\n(function(TELE_BOX_MANAGER_EVENT2) {\n TELE_BOX_MANAGER_EVENT2[\"Focused\"] = \"focused\";\n TELE_BOX_MANAGER_EVENT2[\"Blurred\"] = \"blurred\";\n TELE_BOX_MANAGER_EVENT2[\"Created\"] = \"created\";\n TELE_BOX_MANAGER_EVENT2[\"Removed\"] = \"removed\";\n TELE_BOX_MANAGER_EVENT2[\"State\"] = \"state\";\n TELE_BOX_MANAGER_EVENT2[\"Maximized\"] = \"maximized\";\n TELE_BOX_MANAGER_EVENT2[\"Minimized\"] = \"minimized\";\n TELE_BOX_MANAGER_EVENT2[\"Move\"] = \"move\";\n TELE_BOX_MANAGER_EVENT2[\"Resize\"] = \"resize\";\n TELE_BOX_MANAGER_EVENT2[\"IntrinsicMove\"] = \"intrinsic_move\";\n TELE_BOX_MANAGER_EVENT2[\"IntrinsicResize\"] = \"intrinsic_resize\";\n TELE_BOX_MANAGER_EVENT2[\"VisualResize\"] = \"visual_resize\";\n TELE_BOX_MANAGER_EVENT2[\"ZIndex\"] = \"z_index\";\n TELE_BOX_MANAGER_EVENT2[\"PrefersColorScheme\"] = \"prefers_color_scheme\";\n TELE_BOX_MANAGER_EVENT2[\"DarkMode\"] = \"dark_mode\";\n})(TELE_BOX_MANAGER_EVENT || (TELE_BOX_MANAGER_EVENT = {}));\nvar style = \".telebox-max-titlebar {\\n user-select: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n display: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 50000;\\n}\\n.telebox-max-titlebar .telebox-title {\\n display: none;\\n}\\n.telebox-max-titlebar.telebox-max-titlebar-single-title .telebox-titles {\\n display: none;\\n}\\n.telebox-max-titlebar.telebox-max-titlebar-single-title .telebox-title {\\n display: block;\\n}\\n.telebox-max-titlebar-maximized {\\n display: flex;\\n}\\n.telebox-titles {\\n height: 100%;\\n margin: 0;\\n overflow-y: hidden;\\n overflow-x: scroll;\\n overflow-x: overlay;\\n -webkit-overflow-scrolling: touch;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n scrollbar-width: auto;\\n}\\n.telebox-titles::-webkit-scrollbar {\\n height: 8px;\\n width: 8px;\\n}\\n.telebox-titles::-webkit-scrollbar-track {\\n background-color: transparent;\\n}\\n.telebox-titles::-webkit-scrollbar-thumb {\\n background-color: rgba(238, 238, 247, 0.8);\\n background-color: transparent;\\n border-radius: 4px;\\n transition: background-color 0.4s;\\n}\\n.telebox-titles:hover::-webkit-scrollbar-thumb {\\n background-color: rgba(238, 238, 247, 0.8);\\n}\\n.telebox-titles::-webkit-scrollbar-thumb:hover {\\n background-color: #eeeef7;\\n}\\n.telebox-titles::-webkit-scrollbar-thumb:active {\\n background-color: #eeeef7;\\n}\\n.telebox-titles::-webkit-scrollbar-thumb:vertical {\\n min-height: 50px;\\n}\\n.telebox-titles::-webkit-scrollbar-thumb:horizontal {\\n min-width: 50px;\\n}\\n.telebox-titles-content {\\n height: 100%;\\n display: flex;\\n flex-wrap: nowrap;\\n align-items: center;\\n padding: 0;\\n}\\n.telebox-titles-tab {\\n height: 100%;\\n overflow: hidden;\\n max-width: 182px;\\n min-width: 50px;\\n padding: 0 26px 0 16px;\\n outline: none;\\n font-size: 13px;\\n font-family: PingFangSC-Regular, PingFang SC;\\n font-weight: 400;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n word-break: keep-all;\\n border: none;\\n border-right: 1px solid #e5e5f0;\\n color: #7b88a0;\\n background: transparent;\\n cursor: pointer;\\n user-select: none;\\n}\\n.telebox-titles-tab-focus {\\n color: #357bf6;\\n}\\n.telebox-readonly .telebox-titles-tab {\\n cursor: not-allowed;\\n}\\n.telebox-color-scheme-dark {\\n color-scheme: dark;\\n}\\n.telebox-color-scheme-dark.telebox-titlebar {\\n color: #e9e9e9;\\n background: #43434d;\\n border-bottom: none;\\n}\\n.telebox-color-scheme-dark .telebox-titles-tab {\\n border-right-color: #7b88a0;\\n}\\n.telebox-color-scheme-dark .telebox-title {\\n color: #e9e9e9;\\n}\";\nclass MaxTitleBar extends DefaultTitleBar {\n constructor(config) {\n super(config);\n this.boxes = config.boxes;\n this.focusedBox = config.focusedBox;\n this.containerRect = config.containerRect;\n this.darkMode = config.darkMode;\n }\n focusBox(box) {\n var _a;\n if (this.focusedBox && this.focusedBox === box) {\n return;\n }\n if (this.$titles && this.state === TELE_BOX_STATE.Maximized) {\n const { children } = this.$titles.firstElementChild;\n for (let i2 = children.length - 1; i2 >= 0; i2 -= 1) {\n const $tab = children[i2];\n const id = (_a = $tab.dataset) == null ? void 0 : _a.teleBoxID;\n if (id) {\n if (box && id === box.id) {\n $tab.classList.toggle(this.wrapClassName(\"titles-tab-focus\"), true);\n } else if (this.focusedBox && id === this.focusedBox.id) {\n $tab.classList.toggle(this.wrapClassName(\"titles-tab-focus\"), false);\n }\n }\n }\n }\n this.focusedBox = box;\n }\n setContainerRect(rect) {\n this.containerRect = rect;\n if (this.$titleBar) {\n const { x, y, width } = rect;\n this.$titleBar.style.transform = `translate(${x}px, ${y}px)`;\n this.$titleBar.style.width = width + \"px\";\n }\n }\n setBoxes(boxes) {\n this.boxes = boxes;\n this.updateTitles();\n }\n setState(state) {\n super.setState(state);\n if (this.$titleBar) {\n this.$titleBar.classList.toggle(this.wrapClassName(\"max-titlebar-maximized\"), state === TELE_BOX_STATE.Maximized);\n }\n this.updateTitles();\n }\n setReadonly(readonly) {\n super.setReadonly(readonly);\n if (this.$titleBar) {\n this.$titleBar.classList.toggle(this.wrapClassName(\"readonly\"), this.readonly);\n }\n }\n setDarkMode(darkMode) {\n if (darkMode !== this.darkMode) {\n this.darkMode = darkMode;\n if (this.$titleBar) {\n this.$titleBar.classList.toggle(this.wrapClassName(\"color-scheme-dark\"), darkMode);\n this.$titleBar.classList.toggle(this.wrapClassName(\"color-scheme-light\"), !darkMode);\n }\n }\n }\n render() {\n const $titleBar = super.render();\n const { x, y, width } = this.containerRect;\n $titleBar.style.transform = `translate(${x}px, ${y}px)`;\n $titleBar.style.width = width + \"px\";\n $titleBar.classList.add(this.wrapClassName(\"max-titlebar\"));\n $titleBar.classList.toggle(this.wrapClassName(\"max-titlebar-maximized\"), this.state === TELE_BOX_STATE.Maximized);\n $titleBar.classList.toggle(this.wrapClassName(\"readonly\"), this.readonly);\n $titleBar.classList.add(this.wrapClassName(this.darkMode ? \"color-scheme-dark\" : \"color-scheme-light\"));\n const $titlesArea = document.createElement(\"div\");\n $titlesArea.classList.add(this.wrapClassName(\"titles-area\"));\n $titleBar.insertBefore($titlesArea, $titleBar.firstElementChild);\n this.updateTitles();\n return $titleBar;\n }\n destroy() {\n super.destroy();\n this.$titles = void 0;\n this.boxes.length = 0;\n this.focusedBox = void 0;\n }\n updateTitles() {\n if (this.$titleBar && this.state === TELE_BOX_STATE.Maximized) {\n this.$titleBar.classList.toggle(this.wrapClassName(\"max-titlebar-single-title\"), this.boxes.length === 1);\n if (this.boxes.length === 1) {\n this.setTitle(this.boxes[0].title);\n } else {\n this.$titleBar.replaceChild(this.renderTitles(), this.$titleBar.firstElementChild);\n }\n }\n }\n renderTitles() {\n this.$titles = document.createElement(\"div\");\n this.$titles.className = this.wrapClassName(\"titles\");\n this.$titles.addEventListener(\"wheel\", (ev) => {\n ev.currentTarget.scrollBy({\n left: ev.deltaY > 0 ? 250 : -250,\n behavior: \"smooth\"\n });\n }, { passive: false });\n const $content = document.createElement(\"div\");\n $content.className = this.wrapClassName(\"titles-content\");\n this.$titles.appendChild($content);\n this.boxes.forEach((box) => {\n const $tab = document.createElement(\"button\");\n $tab.className = this.wrapClassName(\"titles-tab\");\n $tab.textContent = box.title;\n $tab.dataset.teleBoxID = box.id;\n $tab.dataset.teleTitleBarNoDblClick = \"true\";\n if (this.focusedBox && box.id === this.focusedBox.id) {\n $tab.classList.add(this.wrapClassName(\"titles-tab-focus\"));\n }\n $content.appendChild($tab);\n });\n return this.$titles;\n }\n}\nclass TeleBoxManager {\n constructor({\n root = document.body,\n prefersColorScheme = TELE_BOX_COLOR_SCHEME.Light,\n minimized = false,\n maximized = false,\n fence = true,\n containerRect = {\n x: 0,\n y: 0,\n width: window.innerWidth,\n height: window.innerHeight\n },\n collector,\n namespace = \"telebox\",\n readonly = false\n } = {}) {\n this.events = new EventEmitter();\n this._sideEffect = new o();\n const { combine, createVal } = c(this._sideEffect);\n this.root = root;\n this.namespace = namespace;\n this.boxes$ = createVal([]);\n this.topBox$ = this.boxes$.derive((boxes) => {\n if (boxes.length > 0) {\n const topBox = boxes.reduce((topBox2, box) => topBox2.zIndex > box.zIndex ? topBox2 : box);\n return topBox;\n }\n return;\n });\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const prefersDark$ = createVal(false);\n if (prefersDark) {\n prefersDark$.setValue(prefersDark.matches);\n this._sideEffect.add(() => {\n const handler = (evt) => {\n prefersDark$.setValue(evt.matches);\n };\n prefersDark.addListener(handler);\n return () => prefersDark.removeListener(handler);\n });\n }\n const prefersColorScheme$ = createVal(prefersColorScheme);\n prefersColorScheme$.reaction((prefersColorScheme2, _, skipUpdate) => {\n this.boxes.forEach((box) => box.setPrefersColorScheme(prefersColorScheme2, skipUpdate));\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.PrefersColorScheme, prefersColorScheme2);\n }\n });\n this._darkMode$ = combine([prefersDark$, prefersColorScheme$], ([prefersDark2, prefersColorScheme2]) => prefersColorScheme2 === \"auto\" ? prefersDark2 : prefersColorScheme2 === \"dark\");\n this._darkMode$.reaction((darkMode, _, skipUpdate) => {\n this.boxes.forEach((box) => box.setDarkMode(darkMode, skipUpdate));\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.DarkMode, darkMode);\n }\n });\n const readonly$ = createVal(readonly);\n readonly$.reaction((readonly2, _, skipUpdate) => {\n this.boxes.forEach((box) => box.setReadonly(readonly2, skipUpdate));\n });\n const minimized$ = createVal(minimized);\n const maximized$ = createVal(maximized);\n maximized$.reaction((maximized2, _, skipUpdate) => {\n this.boxes.forEach((box) => box.setMaximized(maximized2, skipUpdate));\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Maximized, maximized2);\n }\n });\n const state$ = combine([minimized$, maximized$], ([minimized2, maximized2]) => minimized2 ? TELE_BOX_STATE.Minimized : maximized2 ? TELE_BOX_STATE.Maximized : TELE_BOX_STATE.Normal);\n state$.reaction((state, _, skipUpdate) => {\n this.maxTitleBar.setState(state);\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.State, state);\n }\n });\n const fence$ = createVal(fence);\n fence$.subscribe((fence2, _, skipUpdate) => {\n this.boxes.forEach((box) => box.setFence(fence2, skipUpdate));\n });\n const containerRect$ = createVal(containerRect, shallowequal);\n containerRect$.reaction((containerRect2, _, skipUpdate) => {\n this.boxes.forEach((box) => box.setContainerRect(containerRect2, skipUpdate));\n this.maxTitleBar.setContainerRect(containerRect2);\n });\n const collector$ = createVal(collector === null ? null : collector || new TeleBoxCollector({\n visible: minimized,\n readonly,\n namespace\n }).mount(root));\n collector$.subscribe((collector2) => {\n if (collector2) {\n collector2.setVisible(minimized$.value);\n collector2.setReadonly(readonly$.value);\n collector2.setDarkMode(this._darkMode$.value);\n this._sideEffect.add(() => {\n collector2.onClick = () => {\n if (!readonly$.value) {\n minimized$.setValue(false);\n }\n };\n return () => collector2.destroy();\n }, \"collect-onClick\");\n }\n });\n readonly$.subscribe((readonly2) => {\n var _a;\n return (_a = collector$.value) == null ? void 0 : _a.setReadonly(readonly2);\n });\n this._darkMode$.subscribe((darkMode) => {\n var _a;\n (_a = collector$.value) == null ? void 0 : _a.setDarkMode(darkMode);\n });\n const calcCollectorRect = () => {\n var _a;\n if ((_a = collector$.value) == null ? void 0 : _a.$collector) {\n const { x, y, width, height } = collector$.value.$collector.getBoundingClientRect();\n const rootRect = this.root.getBoundingClientRect();\n return {\n x: x - rootRect.x,\n y: y - rootRect.y,\n width,\n height\n };\n }\n return;\n };\n const collectorRect$ = createVal(minimized$.value ? calcCollectorRect() : void 0);\n collectorRect$.subscribe((collectorRect, _, skipUpdate) => {\n this.boxes.forEach((box) => {\n box.setCollectorRect(collectorRect, skipUpdate);\n });\n });\n minimized$.subscribe((minimized2, _, skipUpdate) => {\n var _a, _b;\n (_a = collector$.value) == null ? void 0 : _a.setVisible(minimized2);\n if (minimized2) {\n if ((_b = collector$.value) == null ? void 0 : _b.$collector) {\n collectorRect$.setValue(calcCollectorRect());\n }\n }\n this.boxes.forEach((box) => box.setMinimized(minimized2, skipUpdate));\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Minimized, minimized2);\n }\n });\n const closeBtnClassName = this.wrapClassName(\"titlebar-icon-close\");\n const checkFocusBox = (ev) => {\n var _a;\n if (readonly$.value) {\n return;\n }\n const target = ev.target;\n if (!target.tagName) {\n return;\n }\n for (let el = target; el; el = el.parentElement) {\n if (el.classList && el.classList.contains(closeBtnClassName)) {\n return;\n }\n const id = (_a = el.dataset) == null ? void 0 : _a.teleBoxID;\n if (id) {\n const box = this.getBox(id);\n if (box) {\n this.focusBox(box);\n this.makeBoxTop(box);\n return;\n }\n }\n }\n };\n this._sideEffect.addEventListener(window, \"mousedown\", checkFocusBox, true);\n this._sideEffect.addEventListener(window, \"touchstart\", checkFocusBox, true);\n this.maxTitleBar = new MaxTitleBar({\n darkMode: this.darkMode,\n readonly: readonly$.value,\n namespace: this.namespace,\n state: state$.value,\n boxes: this.boxes$.value,\n containerRect: containerRect$.value,\n onEvent: (event) => {\n switch (event.type) {\n case TELE_BOX_DELEGATE_EVENT.Maximize: {\n maximized$.setValue(!maximized$.value);\n break;\n }\n case TELE_BOX_DELEGATE_EVENT.Minimize: {\n minimized$.setValue(true);\n break;\n }\n case TELE_BOX_EVENT.Close: {\n this.removeTopBox();\n this.focusTopBox();\n break;\n }\n }\n }\n });\n readonly$.subscribe((readonly2) => this.maxTitleBar.setReadonly(readonly2));\n this._darkMode$.subscribe((darkMode) => {\n this.maxTitleBar.setDarkMode(darkMode);\n });\n this.boxes$.reaction((boxes) => {\n this.maxTitleBar.setBoxes(boxes);\n });\n const valConfig = {\n prefersColorScheme: prefersColorScheme$,\n containerRect: containerRect$,\n collector: collector$,\n collectorRect: collectorRect$,\n readonly: readonly$,\n fence: fence$,\n minimized: minimized$,\n maximized: maximized$\n };\n i(this, valConfig);\n this._state$ = state$;\n this.root.appendChild(this.maxTitleBar.render());\n }\n get boxes() {\n return this.boxes$.value;\n }\n get topBox() {\n return this.topBox$.value;\n }\n get darkMode() {\n return this._darkMode$.value;\n }\n get state() {\n return this._state$.value;\n }\n setState(state, skipUpdate = false) {\n switch (state) {\n case TELE_BOX_STATE.Maximized: {\n this.setMinimized(false, skipUpdate);\n this.setMaximized(true, skipUpdate);\n break;\n }\n case TELE_BOX_STATE.Minimized: {\n this.setMinimized(true, skipUpdate);\n this.setMaximized(false, skipUpdate);\n break;\n }\n default: {\n this.setMinimized(false, skipUpdate);\n this.setMaximized(false, skipUpdate);\n break;\n }\n }\n return this;\n }\n create(config = {}, smartPosition = true) {\n const box = new TeleBox(__spreadProps(__spreadValues({\n zIndex: this.topBox ? this.topBox.zIndex + 1 : 100\n }, smartPosition ? this.smartPosition(config) : config), {\n darkMode: this.darkMode,\n prefersColorScheme: this.prefersColorScheme,\n maximized: this.maximized,\n minimized: this.minimized,\n fence: this.fence,\n namespace: this.namespace,\n containerRect: this.containerRect,\n readonly: this.readonly,\n collectorRect: this.collectorRect\n }));\n box.mount(this.root);\n if (box.focus) {\n this.focusBox(box);\n if (smartPosition) {\n this.makeBoxTop(box);\n }\n }\n this.boxes$.setValue([...this.boxes, box]);\n box._delegateEvents.on(TELE_BOX_DELEGATE_EVENT.Maximize, () => {\n this.setMaximized(!this.maximized);\n });\n box._delegateEvents.on(TELE_BOX_DELEGATE_EVENT.Minimize, () => {\n this.setMinimized(true);\n });\n box._delegateEvents.on(TELE_BOX_DELEGATE_EVENT.Close, () => {\n this.remove(box);\n this.focusTopBox();\n });\n box._coord$.reaction((_, __, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Move, box);\n }\n });\n box._size$.reaction((_, __, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Resize, box);\n }\n });\n box._intrinsicCoord$.reaction((_, __, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.IntrinsicMove, box);\n }\n });\n box._intrinsicSize$.reaction((_, __, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.IntrinsicResize, box);\n }\n });\n box._visualSize$.reaction((_, __, skipUpdate) => {\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.VisualResize, box);\n }\n });\n box._zIndex$.reaction((_, __, skipUpdate) => {\n if (this.boxes.length > 0) {\n const topBox = this.boxes.reduce((topBox2, box2) => topBox2.zIndex > box2.zIndex ? topBox2 : box2);\n this.topBox$.setValue(topBox);\n }\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.ZIndex, box);\n }\n });\n this.events.emit(TELE_BOX_MANAGER_EVENT.Created, box);\n return box;\n }\n query(config) {\n return config ? this.boxes.filter(this.teleBoxMatcher(config)) : [...this.boxes];\n }\n queryOne(config) {\n return config ? this.boxes.find(this.teleBoxMatcher(config)) : this.boxes[0];\n }\n update(boxID, config, skipUpdate = false) {\n const box = this.boxes.find((box2) => box2.id === boxID);\n if (box) {\n return this.updateBox(box, config, skipUpdate);\n }\n }\n updateAll(config, skipUpdate = false) {\n this.boxes.forEach((box) => {\n this.updateBox(box, config, skipUpdate);\n });\n }\n remove(boxOrID, skipUpdate = false) {\n const index2 = this.getBoxIndex(boxOrID);\n if (index2 >= 0) {\n const boxes = this.boxes.slice();\n const deletedBoxes = boxes.splice(index2, 1);\n this.boxes$.setValue(boxes);\n deletedBoxes.forEach((box) => box.destroy());\n if (!skipUpdate) {\n if (this.boxes.length <= 0) {\n this.setMaximized(false);\n this.setMinimized(false);\n }\n this.events.emit(TELE_BOX_MANAGER_EVENT.Removed, deletedBoxes);\n }\n return deletedBoxes[0];\n }\n return;\n }\n removeTopBox() {\n if (this.topBox) {\n return this.remove(this.topBox);\n }\n return;\n }\n removeAll(skipUpdate = false) {\n const deletedBoxes = this.boxes$.value;\n this.boxes$.setValue([]);\n deletedBoxes.forEach((box) => box.destroy());\n if (!skipUpdate) {\n if (this.boxes.length <= 0) {\n this.setMaximized(false);\n this.setMinimized(false);\n }\n this.events.emit(TELE_BOX_MANAGER_EVENT.Removed, deletedBoxes);\n }\n return deletedBoxes;\n }\n destroy(skipUpdate = false) {\n this.events.removeAllListeners();\n this._sideEffect.flushAll();\n this.removeAll(skipUpdate);\n Object.keys(this).forEach((key) => {\n const value = this[key];\n if (value instanceof r) {\n value.destroy();\n }\n });\n }\n wrapClassName(className) {\n return `${this.namespace}-${className}`;\n }\n focusBox(boxOrID, skipUpdate = false) {\n const targetBox = this.getBox(boxOrID);\n if (targetBox) {\n this.boxes.forEach((box) => {\n if (targetBox === box) {\n let focusChanged = false;\n if (!targetBox.focus) {\n focusChanged = true;\n targetBox.setFocus(true, skipUpdate);\n }\n if (focusChanged && !skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Focused, targetBox);\n }\n } else if (box.focus) {\n this.blurBox(box, skipUpdate);\n }\n });\n this.maxTitleBar.focusBox(targetBox);\n }\n }\n focusTopBox() {\n if (this.topBox && !this.topBox.focus) {\n return this.focusBox(this.topBox);\n }\n }\n blurBox(boxOrID, skipUpdate = false) {\n const targetBox = this.getBox(boxOrID);\n if (targetBox) {\n if (targetBox.focus) {\n targetBox.setFocus(false, skipUpdate);\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Blurred, targetBox);\n }\n }\n if (this.maxTitleBar.focusedBox === targetBox) {\n this.maxTitleBar.focusBox();\n }\n }\n }\n blurAll(skipUpdate = false) {\n this.boxes.forEach((box) => {\n if (box.focus) {\n box.setFocus(false, skipUpdate);\n if (!skipUpdate) {\n this.events.emit(TELE_BOX_MANAGER_EVENT.Blurred, box);\n }\n }\n });\n if (this.maxTitleBar.focusedBox) {\n this.maxTitleBar.focusBox();\n }\n }\n teleBoxMatcher(config) {\n const keys = Object.keys(config);\n return (box) => keys.every((key) => config[key] === box[key]);\n }\n updateBox(box, config, skipUpdate = false) {\n if (config.x != null || config.y != null) {\n box.move(config.x == null ? box.intrinsicX : config.x, config.y == null ? box.intrinsicY : config.y, skipUpdate);\n }\n if (config.width != null || config.height != null) {\n box.resize(config.width == null ? box.intrinsicWidth : config.width, config.height == null ? box.intrinsicHeight : config.height, skipUpdate);\n }\n if (config.title != null) {\n box.setTitle(config.title);\n this.maxTitleBar.updateTitles();\n }\n if (config.visible != null) {\n box.setVisible(config.visible, skipUpdate);\n }\n if (config.minHeight != null) {\n box.setMinHeight(config.minHeight, skipUpdate);\n }\n if (config.minWidth != null) {\n box.setMinWidth(config.minWidth, skipUpdate);\n }\n if (config.resizable != null) {\n box.setResizable(config.resizable, skipUpdate);\n }\n if (config.draggable != null) {\n box.setDraggable(config.draggable, skipUpdate);\n }\n if (config.fixRatio != null) {\n box.setFixRatio(config.fixRatio, skipUpdate);\n }\n if (config.zIndex != null) {\n box.setZIndex(config.zIndex, skipUpdate);\n }\n if (config.content != null) {\n box.mountContent(config.content);\n }\n if (config.footer != null) {\n box.mountFooter(config.footer);\n }\n }\n smartPosition(config = {}) {\n let { x, y } = config;\n const { width = 0.5, height = 0.5 } = config;\n if (x == null) {\n let vx = 20;\n if (this.topBox) {\n vx = this.topBox.intrinsicX * this.containerRect.width + 20;\n if (vx > this.containerRect.width - width * this.containerRect.width) {\n vx = 20;\n }\n }\n x = vx / this.containerRect.width;\n }\n if (y == null) {\n let vy = 20;\n if (this.topBox) {\n vy = this.topBox.intrinsicY * this.containerRect.height + 20;\n if (vy > this.containerRect.height - height * this.containerRect.height) {\n vy = 20;\n }\n }\n y = vy / this.containerRect.height;\n }\n return __spreadProps(__spreadValues({}, config), { x, y, width, height });\n }\n makeBoxTop(box, skipUpdate = false) {\n if (this.topBox) {\n if (box !== this.topBox) {\n box.setZIndex(this.topBox.zIndex + 1, skipUpdate);\n }\n }\n }\n getBoxIndex(boxOrID) {\n return typeof boxOrID === \"string\" ? this.boxes.findIndex((box) => box.id === boxOrID) : this.boxes.findIndex((box) => box === boxOrID);\n }\n getBox(boxOrID) {\n return typeof boxOrID === \"string\" ? this.boxes.find((box) => box.id === boxOrID) : boxOrID;\n }\n}\nexport { DefaultTitleBar, TELE_BOX_COLOR_SCHEME, TELE_BOX_DELEGATE_EVENT, TELE_BOX_EVENT, TELE_BOX_MANAGER_EVENT, TELE_BOX_RESIZE_HANDLE, TELE_BOX_STATE, TeleBox, TeleBoxCollector, TeleBoxDragHandleType, TeleBoxManager, TeleBoxReact };\n//# sourceMappingURL=telebox-insider.es.js.map\n","import { AppAttributes, Events, MIN_HEIGHT, MIN_WIDTH } from \"./constants\";\nimport { debounce } from \"lodash\";\nimport { TELE_BOX_STATE, TeleBoxCollector, TeleBoxManager } from \"@netless/telebox-insider\";\nimport { WindowManager } from \"./index\";\nimport type { BoxEmitterType } from \"./BoxEmitter\";\nimport type { AddAppOptions, AppInitState } from \"./index\";\nimport type {\n TeleBoxManagerUpdateConfig,\n TeleBoxManagerCreateConfig,\n ReadonlyTeleBox,\n TeleBoxManagerConfig,\n TeleBoxColorScheme,\n TeleBoxRect,\n TeleBoxConfig,\n} from \"@netless/telebox-insider\";\nimport type Emittery from \"emittery\";\nimport type { NetlessApp } from \"./typings\";\nimport type { View } from \"white-web-sdk\";\nimport type { CallbacksType } from \"./callback\";\nimport type { EmitterType } from \"./InternalEmitter\";\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 type BoxManagerContext = {\n safeSetAttributes: (attributes: any) => void;\n getMainView: () => View;\n updateAppState: (appId: string, field: AppAttributes, value: any) => void;\n emitter: EmitterType;\n boxEmitter: BoxEmitterType;\n callbacks: CallbacksType;\n canOperate: () => boolean;\n notifyContainerRectUpdate: (rect: TeleBoxRect) => void;\n cleanFocus: () => void;\n setAppFocus: (appId: string) => void;\n};\n\nexport const createBoxManager = (\n manager: WindowManager,\n callbacks: CallbacksType,\n emitter: EmitterType,\n boxEmitter: BoxEmitterType,\n options: CreateTeleBoxManagerConfig\n) => {\n return new BoxManager(\n {\n safeSetAttributes: (attributes: any) => manager.safeSetAttributes(attributes),\n getMainView: () => manager.mainView,\n updateAppState: (...args) => manager.appManager?.store.updateAppState(...args),\n canOperate: () => manager.canOperate,\n notifyContainerRectUpdate: (rect: TeleBoxRect) =>\n manager.appManager?.notifyContainerRectUpdate(rect),\n cleanFocus: () => manager.appManager?.store.cleanFocus(),\n setAppFocus: (appId: string) => manager.appManager?.store.setAppFocus(appId, true),\n callbacks,\n emitter,\n boxEmitter,\n },\n options\n );\n};\n\nexport class BoxManager {\n public teleBoxManager: TeleBoxManager;\n\n constructor(\n private context: BoxManagerContext,\n private createTeleBoxManagerConfig?: CreateTeleBoxManagerConfig\n ) {\n const { emitter, callbacks, boxEmitter } = context;\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 // ppt 在最小化后刷新恢复正常大小,拿不到正确的宽高,需要手动触发一下窗口的 resize\n this.teleBoxManager._minimized$.reaction(minimized => {\n if (!minimized) {\n setTimeout(() => {\n const offset = 0.001 * (Math.random() > 0.5 ? 1 : -1);\n this.teleBoxManager.boxes.forEach(box => {\n box.resize(box.intrinsicWidth + offset, box.intrinsicHeight + offset, true);\n });\n }, 400);\n }\n });\n\n // events.on 的值则会根据 skipUpdate 来决定是否触发回调\n this.teleBoxManager.events.on(\"minimized\", minimized => {\n this.context.safeSetAttributes({ minimized });\n if (minimized) {\n this.context.cleanFocus();\n this.blurAllBox();\n } else {\n const topBox = this.getTopBox();\n if (topBox) {\n this.context.setAppFocus(topBox.id);\n this.focusBox({ appId: topBox.id }, false);\n }\n }\n });\n this.teleBoxManager.events.on(\"maximized\", maximized => {\n this.context.safeSetAttributes({ maximized });\n });\n this.teleBoxManager.events.on(\"removed\", boxes => {\n boxes.forEach(box => {\n boxEmitter.emit(\"close\", { appId: box.id });\n });\n });\n this.teleBoxManager.events.on(\n \"intrinsic_move\",\n debounce((box: ReadonlyTeleBox): void => {\n boxEmitter.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 boxEmitter.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.canOperate) {\n boxEmitter.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.context.updateAppState(box.id, AppAttributes.ZIndex, box.zIndex);\n });\n emitter.on(\"playgroundSizeChange\", () => this.updateManagerRect());\n emitter.on(\"updateManagerRect\", () => this.updateManagerRect());\n }\n\n private get mainView() {\n return this.context.getMainView();\n }\n\n private get canOperate() {\n return this.context.canOperate();\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 get boxSize() {\n return this.teleBoxManager.boxes.length;\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 this.context.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 this.context.boxEmitter.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\n const manager = new TeleBoxManager(initManagerState);\n if (this.teleBoxManager) {\n this.teleBoxManager.destroy();\n }\n this.teleBoxManager = manager;\n const container = createTeleBoxManagerConfig?.collectorContainer || WindowManager.wrapper;\n if (container) {\n this.setCollectorContainer(container);\n }\n return manager;\n }\n\n public setCollectorContainer(container: HTMLElement) {\n const collector = new TeleBoxCollector({\n styles: this.createTeleBoxManagerConfig?.collectorStyles,\n }).mount(container);\n this.teleBoxManager.setCollector(collector);\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 this.context.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.context.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 if (maximized !== this.maximized) {\n this.teleBoxManager.setMaximized(maximized, skipUpdate);\n }\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 updateBox(id: string, payload: TeleBoxConfig, skipUpdate = true): void {\n this.teleBoxManager.update(id, payload, skipUpdate);\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","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.sheet;\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 - start_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 if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\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\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\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_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\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 const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n 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 managed_styles.forEach(info => {\n const { stylesheet } = info;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n info.rules = {};\n });\n managed_styles.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}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 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 seen_callbacks.clear();\n set_current_component(saved_component);\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, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\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 if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\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}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\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(context || (parent_component ? parent_component.$$.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 && boolean_attributes.has(name) ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\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(options.context || (parent_component ? parent_component.$$.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.46.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_styles, 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, merge_ssr_styles, 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 import { ApplianceNames } from \"white-web-sdk\";\n\n export let uid: string;\n export let cursorName: string;\n export let tagName: string | undefined;\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 | undefined;\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 export let pencilEraserSize: number | undefined;\n export let custom: boolean | undefined;\n\n $: hasName = !isEmpty(cursorName);\n $: hasTagName = !isEmpty(tagName);\n $: hasAvatar = !isEmpty(avatar);\n $: display = visible ? \"\" : \"none\";\n $: isLaserPointer = appliance === ApplianceNames.laserPointer;\n $: isLaserPointerPencilEraser = isLaserPointer || appliance === ApplianceNames.pencilEraser;\n $: offset = isLaserPointerPencilEraser ? \"netless-window-manager-laserPointer-pencilEraser-offset\" : \"\";\n $: pencilEraserSize3ImageOffset = pencilEraserSize === 3 ? \"netless-window-manager-pencilEraser-3-offset\" : \"\";\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\" + (custom ? \" netless-window-manager-cursor-custom\" : \"\")}\n style=\"transform: translateX({x}px) translateY({y}px);display: {display}\"\n data-cursor-uid={uid}\n>\n {#if !isLaserPointer}\n <div class=\"netless-window-manager-cursor-name {offset} {pencilEraserSize3ImageOffset}\">\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 {/if}\n <div class=\"cursor-image-wrapper\">\n <img\n class=\"netless-window-manager-cursor-{appliance}-image {pencilEraserSize3ImageOffset}\"\n {src}\n alt={appliance}\n />\n </div>\n</div>\n","import type { MemberState } from \"white-web-sdk\";\nimport { ApplianceNames } from \"white-web-sdk\";\n\ntype Color = string;\n\nconst staticCircle = `data:image/svg+xml,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle cx='12' cy='12' r='2.5' stroke='%23000' stroke-linejoin='square'/%3E%3Ccircle cx='12' cy='12' r='3.5' stroke='%23FFF'/%3E%3C/g%3E%3C/svg%3E`;\n\nfunction circleUrl(color: Color): string {\n return `data:image/svg+xml,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle cx='12' cy='12' r='2.5' stroke='%23${color}' stroke-linejoin='square'/%3E%3Ccircle cx='12' cy='12' r='3.5' stroke='%23${color}'/%3E%3C/g%3E%3C/svg%3E`;\n}\n\nfunction crossUrl(color: Color): string {\n return `data:image/svg+xml,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg' fill='none'%3E%3Cpath d='M5 12H19' stroke='%23${color}' stroke-linejoin='round'/%3E%3Cpath d='M12 5V19' stroke='%23${color}' stroke-linejoin='round'/%3E%3C/svg%3E`;\n}\n\nfunction cssCursor(url: string): string {\n return `url(\"${url}\") 12 12, auto`;\n}\n\nfunction makeStyleContent(config: { [cursor: string]: string }): string {\n let result = \"\";\n for (const cursor in config) {\n result += `.netless-whiteboard.${cursor} {cursor: ${config[cursor]}}\\n`;\n }\n return result;\n}\n\nconst $style = document.createElement(\"style\");\n\nexport function enableLocal(memberState: MemberState): () => void {\n const [r, g, b] = memberState.strokeColor;\n const hex = ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n $style.textContent = makeStyleContent({\n \"cursor-pencil\": cssCursor(circleUrl(hex)),\n \"cursor-eraser\": cssCursor(staticCircle),\n \"cursor-rectangle\": cssCursor(crossUrl(hex)),\n \"cursor-ellipse\": cssCursor(crossUrl(hex)),\n \"cursor-straight\": cssCursor(crossUrl(hex)),\n \"cursor-arrow\": cssCursor(crossUrl(hex)),\n \"cursor-shape\": cssCursor(crossUrl(hex)),\n });\n document.head.appendChild($style);\n\n return () => {\n if ($style.parentNode == null) return;\n document.head.removeChild($style);\n };\n}\n\nconst shapeAppliances: Set<ApplianceNames> = new Set([\n ApplianceNames.rectangle,\n ApplianceNames.ellipse,\n ApplianceNames.straight,\n ApplianceNames.arrow,\n ApplianceNames.shape,\n]);\n\nexport function remoteIcon(applianceName: ApplianceNames, hex: string): string | undefined {\n if (applianceName === ApplianceNames.pencil) {\n return circleUrl(hex);\n } else if (applianceName === ApplianceNames.eraser) {\n return staticCircle;\n } else if (shapeAppliances.has(applianceName)) {\n return crossUrl(hex);\n }\n}\n","import type { RoomMember } from \"white-web-sdk\";\nimport type { CursorOptions } from \"../index\";\nimport type { AppManager } from \"../AppManager\";\nimport type { Position } from \"../AttributesDelegate\";\nimport type { CursorManager } from \"./index\";\n\nimport { omit } from \"lodash\";\nimport { ApplianceNames } from \"white-web-sdk\";\n\nimport { findMemberByUid } from \"../Helper\";\nimport App from \"./Cursor.svelte\";\nimport { remoteIcon } from \"./icons2\";\n\nexport type Payload = {\n [key: string]: any;\n};\n\nexport class Cursor {\n private member?: RoomMember;\n private timer?: number;\n private component?: App;\n private style: CursorOptions[\"style\"] & string = \"default\";\n\n constructor(\n private manager: AppManager,\n private memberId: string,\n private cursorManager: CursorManager,\n private wrapper?: HTMLElement\n ) {\n this.updateMember();\n this.createCursor();\n this.autoHidden();\n this.setStyle(cursorManager.style);\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 setStyle = (style: typeof this.style) => {\n this.style = style;\n if (this.component) {\n this.component.$set({\n src: this.getIcon(),\n custom: this.isCustomIcon(),\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, type } = cursor;\n const point = view?.screen.convertPointToScreen(x, y);\n if (point) {\n let translateX = point.x - 2;\n let translateY = point.y - 18;\n if (this.isCustomIcon()) {\n translateX -= 11;\n translateY += 4;\n }\n if (type === \"app\") {\n const wrapperRect = this.cursorManager.wrapperRect;\n if (wrapperRect) {\n translateX = translateX + rect.x - wrapperRect.x;\n translateY = translateY + rect.y - wrapperRect.y;\n }\n }\n if (point.x < 0 || point.x > rect.width || point.y < 0 || point.y > rect.height) {\n this.component?.$set({ visible: false, x: translateX, y: translateY });\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 public get memberColorHex(): string {\n const [r, g, b] = this.member?.memberState?.strokeColor || [236, 52, 85];\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\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 get memberTagName(): string | undefined {\n return this.payload?.cursorTagName;\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: this.wrapper,\n props: this.initProps(),\n });\n }\n }\n\n private initProps() {\n return {\n uid: this.memberId,\n x: 0,\n y: 0,\n appliance: this.memberApplianceName as string,\n avatar: this.memberAvatar,\n src: this.getIcon(),\n custom: this.isCustomIcon(),\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 tagName: this.memberTagName,\n pencilEraserSize: this.member?.memberState.pencilEraserSize,\n };\n }\n\n private getIcon(): string | undefined {\n if (!this.member) return;\n\n const { memberApplianceName, memberColorHex } = this;\n const { userApplianceIcons, applianceIcons } = this.cursorManager;\n\n let iconsKey: string | undefined = this.memberApplianceName;\n if (iconsKey === ApplianceNames.pencilEraser) {\n iconsKey = `${iconsKey}${this.member?.memberState.pencilEraserSize || 1}`;\n }\n\n const userApplianceSrc = iconsKey && userApplianceIcons[iconsKey];\n if (userApplianceSrc) return userApplianceSrc;\n\n if (this.style === \"custom\" && memberApplianceName) {\n const customApplianceSrc = remoteIcon(memberApplianceName, memberColorHex);\n if (customApplianceSrc) return customApplianceSrc;\n }\n\n const applianceSrc = applianceIcons[iconsKey || ApplianceNames.shape];\n return applianceSrc || applianceIcons[ApplianceNames.shape];\n }\n\n private isCustomIcon(): boolean {\n if (!this.member) return false;\n\n const { memberApplianceName, memberColorHex } = this;\n const { userApplianceIcons } = this.cursorManager;\n\n let iconsKey: string | undefined = this.memberApplianceName;\n if (iconsKey === ApplianceNames.pencilEraser) {\n iconsKey = `${iconsKey}${this.member?.memberState.pencilEraserSize || 1}`;\n }\n\n const userApplianceSrc = iconsKey && userApplianceIcons[iconsKey];\n if (userApplianceSrc) return false;\n\n if (this.style === \"custom\" && memberApplianceName) {\n const customApplianceSrc = remoteIcon(memberApplianceName, memberColorHex);\n if (customApplianceSrc) return true;\n }\n\n return false;\n }\n\n public updateMember() {\n this.member = findMemberByUid(this.manager.room, this.memberId);\n this.updateComponent();\n return this.member;\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","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=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4IiB2aWV3Qm94PSIwIDAgMjggMjgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU1LjEgKDc4MTM2KSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT7nvJbnu4QgMjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgeD0iLTEyMC4wJSIgeT0iLTEyMC4wJSIgd2lkdGg9IjM0MC4wJSIgaGVpZ2h0PSIzNDAuMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNCIgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Iue8lue7hC0yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjAwMDAwMCwgOS4wMDAwMDApIiBmaWxsPSIjRkYwMTAwIj4KICAgICAgICAgICAgPGNpcmNsZSBpZD0i5qSt5ZyG5b2iIiBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiBjeD0iNSIgY3k9IjUiIHI9IjUiPjwvY2lyY2xlPgogICAgICAgICAgICA8cGF0aCBkPSJNNSw4IEM2LjY1Njg1NDI1LDggOCw2LjY1Njg1NDI1IDgsNSBDOCwzLjM0MzE0NTc1IDYuNjU2ODU0MjUsMiA1LDIgQzMuMzQzMTQ1NzUsMiAyLDMuMzQzMTQ1NzUgMiw1IEMyLDYuNjU2ODU0MjUgMy4zNDMxNDU3NSw4IDUsOCBaIE01LDYuMjg1NzE0MjkgQzQuMjg5OTE5NjEsNi4yODU3MTQyOSAzLjcxNDI4NTcxLDUuNzEwMDgwMzkgMy43MTQyODU3MSw1IEMzLjcxNDI4NTcxLDQuMjg5OTE5NjEgNC4yODk5MTk2MSwzLjcxNDI4NTcxIDUsMy43MTQyODU3MSBDNS43MTAwODAzOSwzLjcxNDI4NTcxIDYuMjg1NzE0MjksNC4yODk5MTk2MSA2LjI4NTcxNDI5LDUgQzYuMjg1NzE0MjksNS43MTAwODAzOSA1LjcxMDA4MDM5LDYuMjg1NzE0MjkgNSw2LjI4NTcxNDI5IFoiIGlkPSLmpK3lnIblvaIiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAxOCAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIyNSIgcng9IjMuNSIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4zNSIgc3Ryb2tlPSJ3aGl0ZSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMzQiIHZpZXdCb3g9IjAgMCAyNiAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIyNSIgaGVpZ2h0PSIzMyIgcng9IjMuNSIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4zNSIgc3Ryb2tlPSJ3aGl0ZSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCAzNCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIzMyIgaGVpZ2h0PSI0OSIgcng9IjMuNSIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC4zNSIgc3Ryb2tlPSJ3aGl0ZSIvPgo8L3N2Zz4K\"","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\";\nimport laser from \"../image/laser-pointer-cursor.svg\";\nimport pencilEraser1 from \"../image/pencil-eraser-1.svg\";\nimport pencilEraser2 from \"../image/pencil-eraser-2.svg\";\nimport pencilEraser3 from \"../image/pencil-eraser-3.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 [ApplianceNames.laserPointer]: laser,\n [\"pencilEraser1\"]: pencilEraser1,\n [\"pencilEraser2\"]: pencilEraser2,\n [\"pencilEraser3\"]: pencilEraser3,\n};\n","import { ApplianceNames, isRoom } from \"white-web-sdk\";\nimport { Cursor } from \"./Cursor\";\nimport { CursorState, Events } from \"../constants\";\nimport { internalEmitter } from \"../InternalEmitter\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { WindowManager } from \"../index\";\nimport type { CursorMovePayload, ApplianceIcons, CursorOptions } from \"../index\";\nimport type { PositionType } from \"../AttributesDelegate\";\nimport type { Point, Room, RoomMember, RoomState, View } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\nimport { ApplianceMap } from \"./icons\";\nimport { findMemberByUid } from \"../Helper\";\nimport { enableLocal } from \"./icons2\";\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};\n\nconst LocalCursorSideEffectId = \"local-cursor\";\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 public userApplianceIcons: ApplianceIcons = {};\n\n private mainViewElement?: HTMLDivElement;\n private sideEffectManager = new SideEffectManager();\n private store = this.manager.store;\n private leaveFlag = true;\n private _style: CursorOptions[\"style\"] & string = \"default\";\n\n constructor(\n private manager: AppManager,\n private enableCursor: boolean,\n cursorOptions?: CursorOptions,\n applianceIcons?: ApplianceIcons\n ) {\n this.roomMembers = this.manager.room?.state.roomMembers;\n const wrapper = WindowManager.wrapper;\n if (wrapper) {\n this.setupWrapper(wrapper);\n }\n this.sideEffectManager.add(() => {\n return internalEmitter.on(\"cursorMove\", this.onCursorMove);\n });\n this.sideEffectManager.add(() => {\n return internalEmitter.on(\"playgroundSizeChange\", () => this.updateContainerRect());\n });\n const room = this.manager.room;\n if (room) {\n this.sideEffectManager.add(() => {\n const update = (state: RoomState) => {\n if (this.style === \"custom\" && state.memberState) this.enableCustomCursor();\n };\n room.callbacks.on(\"onRoomStateChanged\", update);\n return () => room.callbacks.off(\"onRoomStateChanged\", update);\n });\n }\n if (applianceIcons) {\n this.userApplianceIcons = applianceIcons;\n }\n this.style = cursorOptions?.style || \"default\";\n }\n\n public get applianceIcons(): ApplianceIcons {\n return { ...ApplianceMap, ...this.userApplianceIcons };\n }\n\n public get style() {\n return this._style;\n }\n\n public set style(value) {\n if (this._style !== value) {\n this._style = value;\n this.cursorInstances.forEach(cursor => {\n cursor.setStyle(value);\n });\n if (value === \"custom\") {\n this.enableCustomCursor();\n } else {\n this.sideEffectManager.flush(LocalCursorSideEffectId);\n }\n }\n }\n\n private onCursorMove = (payload: CursorMovePayload) => {\n const cursorInstance = this.initCursorInstance(payload.uid);\n if (payload.state === CursorState.Leave) {\n cursorInstance.leave();\n } else {\n const member = cursorInstance.updateMember();\n if (this.canMoveCursor(member)) {\n cursorInstance.move(payload.position);\n }\n }\n };\n\n private initCursorInstance = (uid: string) => {\n let cursorInstance = this.cursorInstances.get(uid);\n if (!cursorInstance) {\n cursorInstance = new Cursor(this.manager, uid, this, WindowManager.wrapper);\n this.cursorInstances.set(uid, cursorInstance);\n }\n return cursorInstance;\n };\n\n private enableCustomCursor() {\n this.sideEffectManager.add(\n () => enableLocal(this.manager.getMemberState()),\n LocalCursorSideEffectId\n );\n }\n\n private canMoveCursor(member: RoomMember | undefined) {\n const isLaserPointer =\n member?.memberState.currentApplianceName === ApplianceNames.laserPointer;\n // 激光笔教具在不开启光标的情况下也要显示\n return this.enableCursor || isLaserPointer;\n }\n\n public setupWrapper(wrapper: HTMLElement) {\n this.sideEffectManager.add(() => {\n wrapper.addEventListener(\"pointerenter\", this.mouseMoveListener);\n wrapper.addEventListener(\"pointermove\", this.mouseMoveListener);\n wrapper.addEventListener(\"pointerleave\", this.mouseLeaveListener);\n return () => {\n wrapper.removeEventListener(\"pointerenter\", this.mouseMoveListener);\n wrapper.removeEventListener(\"pointermove\", this.mouseMoveListener);\n wrapper.removeEventListener(\"pointerleave\", this.mouseLeaveListener);\n };\n });\n\n this.wrapperRect = wrapper.getBoundingClientRect();\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_ = (event: PointerEvent, isTouch: boolean) => {\n const type = this.getType(event);\n this.updateCursor(type, event.clientX, event.clientY);\n isTouch && this.showPencilEraserIfNeeded(type, event.clientX, event.clientY);\n };\n\n private mouseMoveTimer = 0;\n private mouseMoveListener = (event: PointerEvent) => {\n const isTouch = event.pointerType === \"touch\";\n if (isTouch && !event.isPrimary) return;\n const now = Date.now();\n if (now - this.mouseMoveTimer > 48) {\n this.mouseMoveTimer = now;\n if (\n WindowManager.supportAppliancePlugin &&\n isRoom(WindowManager.displayer) &&\n (WindowManager.displayer as Room).disableDeviceInputs\n ) {\n if (this.leaveFlag) {\n this.manager.dispatchInternalEvent(Events.CursorMove, {\n uid: this.manager.uid,\n state: CursorState.Leave,\n } as CursorMovePayload);\n this.leaveFlag = false;\n }\n return;\n }\n this.mouseMoveListener_(event, isTouch);\n this.leaveFlag = true;\n }\n };\n\n private mouseLeaveListener = () => {\n this.hideCursor(this.manager.uid);\n };\n\n private showPencilEraserIfNeeded(event: EventType, clientX: number, clientY: number) {\n const self = findMemberByUid(this.manager.room, this.manager.uid);\n const isPencilEraser =\n self?.memberState.currentApplianceName === ApplianceNames.pencilEraser;\n if (\n this.wrapperRect &&\n this.manager.canOperate &&\n this.canMoveCursor(self) &&\n isPencilEraser\n ) {\n const view = event.type === \"main\" ? this.manager.mainView : this.focusView;\n const point = this.getPoint(view, clientX, clientY);\n if (point) {\n this.onCursorMove({\n uid: this.manager.uid,\n position: {\n x: point.x,\n y: point.y,\n type: event.type,\n },\n });\n }\n }\n }\n\n private updateCursor(event: EventType, clientX: number, clientY: number) {\n const self = findMemberByUid(this.manager.room, this.manager.uid);\n if (this.wrapperRect && this.manager.canOperate && this.canMoveCursor(self)) {\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 public updateContainerRect() {\n this.containerRect = WindowManager.container?.getBoundingClientRect();\n this.wrapperRect = WindowManager.wrapper?.getBoundingClientRect();\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 destroy() {\n this.sideEffectManager.flushAll();\n if (this.cursorInstances.size) {\n this.cursorInstances.forEach(cursor => {\n cursor.destroy();\n });\n this.cursorInstances.clear();\n }\n }\n}\n","import type { AppManager } from \"./AppManager\";\nimport type { PageState } from \"./Page\";\n\nimport { internalEmitter } from \"./InternalEmitter\";\nimport { callbacks } from \"./callback\";\n\nexport class PageStateImpl {\n constructor(private manager: AppManager) {\n internalEmitter.on(\"changePageState\", () => {\n callbacks.emit(\"pageStateChange\", this.toObject());\n });\n }\n\n public get index(): number {\n return this.manager.store.getMainViewSceneIndex() || 0;\n }\n\n public get length(): number {\n return this.manager.mainViewScenesLength || 0;\n }\n\n public toObject(): PageState {\n const index = this.index >= this.length ? this.length - 1 : this.index;\n return {\n index,\n length: this.length,\n };\n }\n}\n","import { debounce, isFunction } from \"lodash\";\nimport { log } from \"./Utils/log\";\nimport { RoomPhase } from \"white-web-sdk\";\nimport type { Room } from \"white-web-sdk\";\nimport type { EmitterType } from \"./InternalEmitter\";\nimport { EnsureReconnectEvent } from \"./constants\";\nimport { wait } from \"./Utils/Common\";\n\nexport type ReconnectRefresherContext = {\n emitter: EmitterType;\n};\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(private ctx: ReconnectRefresherContext) {}\n\n public setRoom(room: Room | undefined) {\n this.room = room;\n this.phase = room?.phase;\n if (room) {\n room.callbacks.off(\"onPhaseChanged\", this.onPhaseChanged);\n room.callbacks.on(\"onPhaseChanged\", this.onPhaseChanged);\n // 重连成功之后向服务发送一次消息, 确认当前的状态是最新的\n room.addMagixEventListener(\n EnsureReconnectEvent,\n payload => {\n if (payload.authorId === room.observerId) {\n this.onReconnected();\n }\n },\n { fireSelfEventAfterCommit: true }\n );\n }\n }\n\n public setContext(ctx: ReconnectRefresherContext) {\n this.ctx = ctx;\n }\n\n private onPhaseChanged = async (phase: RoomPhase) => {\n if (phase === RoomPhase.Reconnecting) {\n this.ctx.emitter.emit(\"startReconnect\");\n }\n if (phase === RoomPhase.Connected && this.phase === RoomPhase.Reconnecting) {\n if (this.room?.isWritable) {\n this.room?.dispatchMagixEvent(EnsureReconnectEvent, {});\n } else {\n await wait(500);\n this.onReconnected();\n }\n }\n this.phase = phase;\n };\n\n private onReconnected = debounce(() => {\n this._onReconnected();\n }, 1000);\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.ctx.emitter.emit(\"onReconnected\");\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 refresh() {\n this._onReconnected();\n }\n\n public add(id: string, func: any) {\n const disposer = this.disposers.get(id);\n if (disposer && isFunction(disposer)) {\n disposer();\n }\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 hasReactor(id: string) {\n return this.reactors.has(id);\n }\n\n public destroy() {\n this.room?.callbacks.off(\"onPhaseChanged\", this.onPhaseChanged);\n this.room?.removeMagixEventListener(EnsureReconnectEvent, this.onReconnected);\n this.releaseDisposers();\n }\n}\n","import { internalEmitter } from \"../InternalEmitter\";\nimport { isPlayer } from \"white-web-sdk\";\nimport type { WindowManager } from \"../index\";\nimport type { Camera, Room, Player, PlayerSeekingResult } from \"white-web-sdk\";\nimport { ROOT_DIR } from \"../constants\";\n\n// 修改多窗口状态下一些失效的方法实现到 manager 的 mainview 上, 降低迁移成本\nexport const replaceRoomFunction = (room: Room | Player, manager: WindowManager) => {\n if (isPlayer(room)) {\n const player = room as unknown as Player;\n delegateSeekToProgressTime(player);\n } else {\n room = room as unknown as Room;\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 Object.defineProperty(room, \"canUndoSteps\", {\n get() {\n return manager.canUndoSteps;\n },\n });\n\n Object.defineProperty(room, \"canRedoSteps\", {\n get() {\n return manager.canRedoSteps;\n },\n });\n\n room.moveCamera = (camera: Camera) => manager.moveCamera(camera);\n room.moveCameraToContain = (...args) => manager.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 room.setMemberState = (...args) => manager.mainView.setMemberState(...args);\n room.redo = () => manager.redo();\n room.undo = () => manager.undo();\n room.cleanCurrentScene = () => manager.cleanCurrentScene();\n room.delete = () => manager.delete();\n room.copy = () => manager.copy();\n room.paste = () => manager.paste();\n room.duplicate = () => manager.duplicate();\n room.insertImage = (...args) => manager.insertImage(...args);\n room.completeImageUpload = (...args) => manager.completeImageUpload(...args);\n room.insertText = (...args) => manager.insertText(...args);\n room.lockImage = (...args) => manager.lockImage(...args);\n room.lockImages = (...args) => manager.lockImages(...args);\n\n delegateRemoveScenes(room, manager);\n }\n};\n\nconst delegateRemoveScenes = (room: Room, manager: WindowManager) => {\n const originRemoveScenes = room.removeScenes;\n room.removeScenes = (scenePath: string, index?: number) => {\n if (scenePath === ROOT_DIR) {\n manager.appManager?.updateRootDirRemoving(true);\n }\n const result = originRemoveScenes.call(room, scenePath);\n internalEmitter.emit(\"removeScenes\", { scenePath, index });\n return result;\n };\n};\n\nconst delegateSeekToProgressTime = (player: Player) => {\n const originSeek = player.seekToProgressTime;\n // eslint-disable-next-line no-inner-declarations\n async function newSeek(time: number): Promise<PlayerSeekingResult> {\n // seek 时需要先关闭所有的 app 防止内部使用的 mobx 出现错误\n await internalEmitter.emit(\"seekStart\");\n const seekResult = await originSeek.call(player, time);\n internalEmitter.emit(\"seek\", time);\n return seekResult;\n }\n player.seekToProgressTime = newSeek;\n};\n","var 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\", { ...toStringDescriptor, value: newToString });\n};\nfunction mimicFunction(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}\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.POSITIVE_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.POSITIVE_INFINITY && !maxTimeout) {\n maxTimeout = setTimeout(maxLater, maxWait);\n }\n if (shouldCallNow) {\n result = inputFunction.apply(context, arguments_);\n }\n return result;\n };\n mimicFunction(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};\nvar SOUP = \"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\nvar SOUP_LEN = 87;\nvar ID_LEN = 20;\nvar reusedIdCarrier = [];\nvar genUID = () => {\n for (let i = 0; i < ID_LEN; i++) {\n reusedIdCarrier[i] = SOUP.charAt(Math.random() * SOUP_LEN);\n }\n return reusedIdCarrier.join(\"\");\n};\nfunction invoke(fn) {\n try {\n return fn();\n } catch (e) {\n console.error(e);\n }\n}\nvar SideEffectManager = class {\n constructor() {\n this.push = this.addDisposer;\n this.disposers = /* @__PURE__ */ new Map();\n }\n addDisposer(disposer, disposerID = this.genUID()) {\n this.flush(disposerID);\n this.disposers.set(\n disposerID,\n Array.isArray(disposer) ? joinDisposers(disposer) : disposer\n );\n return disposerID;\n }\n add(executor, disposerID = this.genUID()) {\n const disposers = executor();\n return disposers ? this.addDisposer(disposers, disposerID) : disposerID;\n }\n addEventListener(el, type, listener, options, disposerID = this.genUID()) {\n el.addEventListener(type, listener, options);\n this.addDisposer(\n () => el.removeEventListener(type, listener, options),\n disposerID\n );\n return disposerID;\n }\n setTimeout(handler, timeout, disposerID = this.genUID()) {\n const ticket = window.setTimeout(() => {\n this.remove(disposerID);\n handler();\n }, timeout);\n return this.addDisposer(() => window.clearTimeout(ticket), disposerID);\n }\n setInterval(handler, timeout, disposerID = this.genUID()) {\n const ticket = window.setInterval(handler, timeout);\n return this.addDisposer(() => window.clearInterval(ticket), disposerID);\n }\n remove(disposerID) {\n const disposer = this.disposers.get(disposerID);\n this.disposers.delete(disposerID);\n return disposer;\n }\n flush(disposerID) {\n const disposer = this.remove(disposerID);\n if (disposer) {\n disposer();\n }\n }\n flushAll() {\n this.disposers.forEach(invoke);\n this.disposers.clear();\n }\n genUID() {\n let uid;\n do {\n uid = genUID();\n } while (this.disposers.has(uid));\n return uid;\n }\n};\nfunction joinDisposers(disposers) {\n return () => disposers.forEach(invoke);\n}\nvar resizeObservers = [];\nvar hasActiveObservations = function() {\n return resizeObservers.some(function(ro) {\n return ro.activeTargets.length > 0;\n });\n};\nvar hasSkippedObservations = function() {\n return resizeObservers.some(function(ro) {\n return ro.skippedTargets.length > 0;\n });\n};\nvar msg = \"ResizeObserver loop completed with undelivered notifications.\";\nvar deliverResizeLoopError = function() {\n var event;\n if (typeof ErrorEvent === \"function\") {\n event = new ErrorEvent(\"error\", {\n message: msg\n });\n } else {\n event = document.createEvent(\"Event\");\n event.initEvent(\"error\", false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nvar ResizeObserverBoxOptions;\n(function(ResizeObserverBoxOptions2) {\n ResizeObserverBoxOptions2[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions2[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions2[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nvar freeze = function(obj) {\n return Object.freeze(obj);\n};\nvar ResizeObserverSize = function() {\n function ResizeObserverSize2(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize2;\n}();\nvar DOMRectReadOnly = function() {\n function DOMRectReadOnly2(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly2.prototype.toJSON = function() {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x, y, top, right, bottom, left, width, height };\n };\n DOMRectReadOnly2.fromRect = function(rectangle) {\n return new DOMRectReadOnly2(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly2;\n}();\nvar isSVG = function(target) {\n return target instanceof SVGElement && \"getBBox\" in target;\n};\nvar isHidden = function(target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function(obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function(target) {\n switch (target.tagName) {\n case \"INPUT\":\n if (target.type !== \"image\") {\n break;\n }\n case \"VIDEO\":\n case \"AUDIO\":\n case \"EMBED\":\n case \"OBJECT\":\n case \"CANVAS\":\n case \"IFRAME\":\n case \"IMG\":\n return true;\n }\n return false;\n};\nvar global = typeof window !== \"undefined\" ? window : {};\nvar cache = /* @__PURE__ */ new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = /msie|trident/i.test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function(pixel) {\n return parseFloat(pixel || \"0\");\n};\nvar size = function(inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) {\n inlineSize = 0;\n }\n if (blockSize === void 0) {\n blockSize = 0;\n }\n if (switchSizes === void 0) {\n switchSizes = false;\n }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function(target, forceRecalculation) {\n if (forceRecalculation === void 0) {\n forceRecalculation = false;\n }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === \"border-box\";\n var switchSizes = verticalRegexp.test(cs.writingMode || \"\");\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || \"\");\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || \"\");\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function(target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nvar ResizeObserverEntry = function() {\n function ResizeObserverEntry2(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry2;\n}();\nvar calculateDepthForNode = function(node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nvar broadcastActiveObservations = function() {\n var shallowestDepth = Infinity;\n var callbacks2 = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks2.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks2; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nvar gatherActiveObservationsAtDepth = function(depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n } else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nvar process = function() {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nvar trigger;\nvar callbacks = [];\nvar notify = function() {\n return callbacks.splice(0).forEach(function(cb) {\n return cb();\n });\n};\nvar queueMicroTask = function(callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode(\"\");\n var config = { characterData: true };\n new MutationObserver(function() {\n return notify();\n }).observe(el_1, config);\n trigger = function() {\n el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++);\n };\n }\n callbacks.push(callback);\n trigger();\n};\nvar queueResizeObserver = function(cb) {\n queueMicroTask(function ResizeObserver2() {\n requestAnimationFrame(cb);\n });\n};\nvar watching = 0;\nvar isWatching = function() {\n return !!watching;\n};\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n \"resize\",\n \"load\",\n \"transitionend\",\n \"animationend\",\n \"animationstart\",\n \"animationiteration\",\n \"keyup\",\n \"keydown\",\n \"mouseup\",\n \"mousedown\",\n \"mouseover\",\n \"mouseout\",\n \"blur\",\n \"focus\"\n];\nvar time = function(timeout) {\n if (timeout === void 0) {\n timeout = 0;\n }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = function() {\n function Scheduler2() {\n var _this = this;\n this.stopped = true;\n this.listener = function() {\n return _this.schedule();\n };\n }\n Scheduler2.prototype.run = function(timeout) {\n var _this = this;\n if (timeout === void 0) {\n timeout = CATCH_PERIOD;\n }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function() {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n } finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1e3);\n } else if (timeout > 0) {\n _this.run(timeout);\n } else {\n _this.start();\n }\n }\n });\n };\n Scheduler2.prototype.schedule = function() {\n this.stop();\n this.run();\n };\n Scheduler2.prototype.observe = function() {\n var _this = this;\n var cb = function() {\n return _this.observer && _this.observer.observe(document.body, observerConfig);\n };\n document.body ? cb() : global.addEventListener(\"DOMContentLoaded\", cb);\n };\n Scheduler2.prototype.start = function() {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function(name) {\n return global.addEventListener(name, _this.listener, true);\n });\n }\n };\n Scheduler2.prototype.stop = function() {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function(name) {\n return global.removeEventListener(name, _this.listener, true);\n });\n this.stopped = true;\n }\n };\n return Scheduler2;\n}();\nvar scheduler = new Scheduler();\nvar updateCount = function(n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nvar skipNotifyOnElement = function(target) {\n return !isSVG(target) && !isReplacedElement(target) && getComputedStyle(target).display === \"inline\";\n};\nvar ResizeObservation = function() {\n function ResizeObservation2(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation2.prototype.isActive = function() {\n var size2 = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size2;\n }\n if (this.lastReportedSize.inlineSize !== size2.inlineSize || this.lastReportedSize.blockSize !== size2.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation2;\n}();\nvar ResizeObserverDetail = function() {\n function ResizeObserverDetail2(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail2;\n}();\nvar observerMap = /* @__PURE__ */ new WeakMap();\nvar getObservationIndex = function(observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = function() {\n function ResizeObserverController2() {\n }\n ResizeObserverController2.connect = function(resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController2.observe = function(resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController2.unobserve = function(resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController2.disconnect = function(resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function(ot) {\n return _this.unobserve(resizeObserver, ot.target);\n });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController2;\n}();\nvar ResizeObserver$1 = function() {\n function ResizeObserver2(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== \"function\") {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver2.prototype.observe = function(target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver2.prototype.unobserve = function(target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver2.prototype.disconnect = function() {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver2.toString = function() {\n return \"function ResizeObserver () { [polyfill code] }\";\n };\n return ResizeObserver2;\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(\n \"d\",\n \"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 );\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(\n \"d\",\n \"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 );\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(\n \"d\",\n \"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 );\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(\n \"d\",\n \"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 );\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(\n \"d\",\n \"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 );\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_bg_set: \"bg-set\",\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 restore_on_error: 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 DATA = \"data\";\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 const 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 || typeof callback !== \"function\") {\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 (className === \"\") {\n return;\n }\n if (supportsClassList) {\n element.classList.add(className);\n return;\n }\n element.className += (element.className ? \" \" : \"\") + className;\n};\nconst removeClass = (element, className) => {\n if (className === \"\") {\n return;\n }\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 attrsData = [DATA];\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 setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\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 setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n if (element.style.backgroundImage === \"\") {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\nconst setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\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\", \"OBJECT\"];\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 (settings.restore_on_error)\n restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\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 setImgsetBackground(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 restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\nconst restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\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(\n (entry) => isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance)\n );\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 instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\nconst resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\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 resetOnlineCheck(this);\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\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 SideEffectManager();\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.onPageIndexChanged = () => void 0;\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 this.onPageIndexChanged(pageIndex);\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(\n \"btn-page-play\",\n playSVG(this.namespace),\n pauseSVG(this.namespace)\n );\n const returnPlay = () => {\n this.sideEffect.setTimeout(\n () => {\n $btnPlay.classList.toggle(this.wrapClassName(\"footer-btn-playing\"), false);\n },\n 500,\n \"returnPlay\"\n );\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(\n \".\" + this.wrapClassName(`preview-page-${this.pageIndex}`)\n );\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}\nfunction isEditable(el) {\n if (!el)\n return false;\n const tagName = el.tagName;\n return tagName === \"INPUT\" || tagName === \"TEXTAREA\" || tagName === \"SELECT\";\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, pagesIntrinsicWidth) {\n this.scale = 1;\n this.lastVisit = Date.now();\n this.pageOffsetY = 0;\n this.pageOffsetX = 0;\n this.visible = true;\n this.index = index;\n this.page = page;\n this.scale = scale;\n this.pageOffsetX = (pagesIntrinsicWidth - page.width) / 2;\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 this.$page.style.transform = `translate(${this.pageOffsetX * this.scale}px, ${this.pageOffsetY * this.scale}px)`;\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 = `translate(${this.pageOffsetX * this.scale}px, ${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, pagesIntrinsicWidth, scale) {\n this.pages = pages;\n this.pagesIntrinsicWidth = pagesIntrinsicWidth;\n this.scale = scale;\n this.els = /* @__PURE__ */ 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, this.pagesIntrinsicWidth);\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 { ...page, thumbnail: url.toString() };\n } catch (e) {\n console.error(e);\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, pagesIntrinsicWidth, 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(\n pagesScrollTop,\n 0,\n this.pagesIntrinsicHeight - this.containerHeight / this.scale\n );\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(\n Math.ceil(this.containerHeight / this.scale / this.pagesMinHeight / 2),\n 1,\n this.pages.length\n );\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 SideEffectManager();\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(\n startTop + offsetY * (this.pagesHeight * this.scale / this.containerHeight)\n );\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(\n this.containerHeight / (this.pagesHeight * this.scale) * this.containerHeight,\n this.scrollbarMinHeight,\n this.containerHeight\n );\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 ResizeObserver = window.ResizeObserver || ResizeObserver$1;\nconst RATIO_BASE_CONTAINER_HEIGHT = 640;\nclass StaticDocsViewer {\n constructor({\n context,\n whiteboardView,\n readonly,\n box,\n pages,\n pageScrollTop = 0,\n mountWhiteboard,\n onUserScroll,\n baseScenePath,\n appId\n }) {\n this.sideEffect = new SideEffectManager();\n this.userScrolling = false;\n this.onNewPageIndex = (index) => {\n this.scrollToPage(index);\n };\n this.toPdf = async () => {\n const whiteSnapshotCanvas = document.createElement(\"canvas\");\n const whiteCtx = whiteSnapshotCanvas.getContext(\"2d\");\n if (!whiteCtx || !this.baseScenePath) {\n this.reportProgress(100, null);\n return;\n }\n const scenePath = this.whiteboardView.focusScenePath || `${this.baseScenePath}/1`;\n const firstPage = this.pages[0];\n const { jsPDF } = await import(\"jspdf\");\n const pdf = new jsPDF({\n format: [firstPage.width, firstPage.height],\n orientation: firstPage.width > firstPage.height ? \"l\" : \"p\",\n compress: true\n });\n for (const [index, page] of this.pages.entries()) {\n const { width, height, src } = page;\n whiteSnapshotCanvas.width = width;\n whiteSnapshotCanvas.height = height;\n const orientation = width > height ? \"l\" : \"p\";\n if (index > 0) {\n pdf.addPage([width, height], orientation);\n }\n const pdfPageSrc = await this.getBase64FromUrl(src);\n const img = document.createElement(\"img\");\n img.src = pdfPageSrc;\n await new Promise((resolve) => img.onload = resolve);\n whiteCtx.drawImage(img, 0, 0);\n const pdfPageBase64 = whiteSnapshotCanvas.toDataURL(\"image/jpeg\", 0.6);\n whiteCtx.clearRect(0, 0, width, height);\n const camera = {\n centerX: width / 2,\n centerY: height / 2 + index * height,\n scale: 1\n };\n const windowManger = this.context.manager.windowManger;\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(whiteCtx, scenePath, width, height, camera);\n } else {\n this.whiteboardView.screenshotToCanvas(whiteCtx, scenePath, width, height, camera);\n }\n const snapshot = whiteSnapshotCanvas.toDataURL(\"image/png\");\n pdf.addImage(pdfPageBase64, \"JPEG\", 0, 0, width, height, \"\", \"FAST\");\n pdf.addImage(snapshot, \"PNG\", 0, 0, width, height, \"\", \"FAST\");\n whiteCtx.clearRect(0, 0, width, height);\n const progress = Math.ceil((index + 1) / this.pages.length * 100);\n if (progress < 100) {\n this.reportProgress(Math.ceil((index + 1) / this.pages.length * 100), null);\n }\n }\n const dataUrl = pdf.output(\"arraybuffer\");\n this.reportProgress(100, { pdf: dataUrl, title: this.box.title });\n };\n this.context = context;\n this.whiteboardView = whiteboardView;\n this.readonly = readonly;\n this.box = box;\n this.pages = pages;\n this.baseScenePath = baseScenePath;\n this.appId = appId;\n this.mountWhiteboard = mountWhiteboard;\n this._onUserScroll = onUserScroll;\n const debouncedOnUserScroll = this.debounce(\n () => {\n this.userScrolling = false;\n if (this._onUserScroll) {\n this._onUserScroll(this.pageRenderer.pagesScrollTop);\n }\n },\n { wait: 80 },\n \"debounce-updateUserScroll\"\n );\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 const debouncedRenderRatioHeight = this.debounce(this.renderRatioHeight.bind(this), {\n wait: 80\n });\n this.sideEffect.add(() => {\n const observer = new ResizeObserver(debouncedRenderRatioHeight);\n observer.observe(this.viewer.$content);\n return () => observer.disconnect();\n });\n this.sideEffect.setTimeout(() => {\n if (!this.userScrolling) {\n this.pageScrollTo(this.pageRenderer.pagesScrollTop);\n }\n }, 100);\n this.sideEffect.add(() => {\n const handleDownloadPdf = (evt) => {\n if (evt.data.type === \"@netless/_request_save_pdf_\" && evt.data.appId === this.appId) {\n this.toPdf().catch(() => this.reportProgress(100, null));\n }\n };\n window.addEventListener(\"message\", handleDownloadPdf);\n return () => {\n window.removeEventListener(\"message\", handleDownloadPdf);\n };\n });\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(\n (titleBarSupposedHeight + footerSupposedHeight - (titleBarActualHeight + footerActualHeight)) / 2,\n 0\n );\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(\n this.$whiteboardView,\n \"wheel\",\n (ev) => {\n preventEvent(ev);\n if (!this.readonly) {\n this.pageScrollTo(this.pageRenderer.pagesScrollTop + ev.deltaY);\n this.updateUserScroll();\n }\n },\n { passive: false, capture: true }\n );\n this.sideEffect.addEventListener(\n this.$whiteboardView,\n \"touchmove\",\n (ev) => {\n if (this.readonly || ev.touches.length <= 1) {\n return;\n }\n this.updateUserScroll();\n },\n { passive: true, capture: true }\n );\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(\n pageScrollTop + halfWbHeight,\n halfWbHeight,\n this.pageRenderer.pagesIntrinsicHeight - halfWbHeight\n ),\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 { updateUserScroll } = this;\n this.whiteboardView.callbacks.on(\"onCameraUpdatedByDevice\", updateUserScroll);\n return () => this.whiteboardView.callbacks.off(\"onCameraUpdatedByDevice\", updateUserScroll);\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(\n window,\n \"keyup\",\n (ev) => {\n if (this.readonly || !this.box.focus || this.box.minimized || isEditable(ev.target)) {\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 },\n { capture: true }\n );\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 async getBase64FromUrl(url) {\n const data = await fetch(this._invalidate(url));\n const blob = await data.blob();\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n const base64data = reader.result;\n resolve(base64data);\n };\n });\n }\n _invalidate(url) {\n try {\n const a = new URL(url);\n a.searchParams.set(\"t\", Date.now().toString());\n return a.toString();\n } catch {\n return url;\n }\n }\n reportProgress(progress, result) {\n window.postMessage({\n type: \"@netless/_result_save_pdf_\",\n appId: this.appId,\n progress,\n result\n });\n }\n}\nclass DynamicDocsViewer {\n constructor({ context, whiteboardView, box, pages }) {\n this.sideEffect = new SideEffectManager();\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 this.whiteboardView.setCameraBound({\n damping: 1,\n maxContentMode: () => this.whiteboardView.camera.scale,\n minContentMode: () => this.whiteboardView.camera.scale,\n centerX: 0,\n centerY: 0,\n width: page.width,\n height: page.height\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 && !isEditable(ev.target)) {\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(\n ({ ppt }) => ppt ? {\n width: ppt.width,\n height: ppt.height,\n src: ppt.src,\n thumbnail: ppt.previewURL\n } : null\n ).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(\n context,\n whiteboardView,\n box,\n pages\n );\n } else {\n setupStaticDocsViewer(\n context,\n whiteboardView,\n box,\n pages\n );\n }\n }\n};\nfunction setupStaticDocsViewer(context, whiteboardView, box, pages) {\n var _a;\n whiteboardView.disableCameraTransform = !context.getIsWritable();\n const docsViewer = new StaticDocsViewer({\n context,\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 baseScenePath: context.getInitScenePath(),\n appId: context.appId\n }).mount();\n docsViewer.viewer.onPageIndexChanged = (index) => {\n context.dispatchAppEvent(\"pageStateChange\", { index, length: pages.length });\n };\n context.dispatchAppEvent(\"pageStateChange\", {\n index: docsViewer.viewer.pageIndex,\n length: pages.length\n });\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 docsViewer.viewer.onPageIndexChanged = (index) => {\n context.dispatchAppEvent(\"pageStateChange\", { index, length: pages.length });\n };\n context.dispatchAppEvent(\"pageStateChange\", {\n index: docsViewer.getPageIndex(),\n length: pages.length\n });\n context.mountView(docsViewer.$whiteboardView);\n if (context.isAddApp) {\n whiteboardView.callbacks.once(\n \"onSizeUpdated\",\n ({ 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 }\n}\nexport { NetlessAppDocsViewer as default };\n//# sourceMappingURL=main.es.js.map\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 d from\"video.js\";const p=\"0.1.0-alpha.5\",h={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 f(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 A=navigator.userAgent.includes(\"Safari\"),y=navigator.userAgent.includes(\"iPhone\")||navigator.userAgent.includes(\"iPad\"),b=[\".aac\",\".mid\",\".midi\",\".mp3\",\".ogg\",\".oga\",\".wav\",\".weba\"];var I=\"object\"==typeof global&&global&&global.Object===Object&&global,S=\"object\"==typeof self&&self&&self.Object===Object&&self,T=I||S||Function(\"return this\")(),C=T.Symbol,k=Object.prototype,E=k.hasOwnProperty,P=k.toString,j=C?C.toStringTag:void 0;var B=Object.prototype.toString;var w=C?C.toStringTag:void 0;function x(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":w&&w in Object(e)?function(e){var t=E.call(e,j),i=e[j];try{e[j]=void 0;var s=!0}catch(o){}var r=P.call(e);return s&&(t?e[j]=i:delete e[j]),r}(e):function(e){return B.call(e)}(e)}var H=/\\s/;var Q=/^\\s+/;function M(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&H.test(e.charAt(t)););return t}(e)+1).replace(Q,\"\"):e}function L(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}var N=/^[-+]0x[0-9a-f]+$/i,W=/^0b[01]+$/i,V=/^0o[0-7]+$/i,O=parseInt;function z(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(L(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=L(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=M(e);var i=W.test(e);return i||V.test(e)?O(e.slice(2),i?2:8):N.test(e)?NaN:+e}var D=function(){return T.Date.now()},Z=Math.max,R=Math.min;function U(e,t,i){var s,r,o,n,a,l,c=0,u=!1,d=!1,p=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function h(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?h(e):n}function g(e){var i=e-l;return void 0===l||i>=t||i<0||d&&e-c>=o}function v(){var e=D();if(g(e))return f(e);a=setTimeout(v,function(e){var i=t-(e-l);return d?R(i,o-(e-c)):i}(e))}function f(e){return a=void 0,p&&s?h(e):(s=r=void 0,n)}function A(){var e=D(),i=g(e);if(s=arguments,r=this,l=e,i){if(void 0===a)return m(l);if(d)return clearTimeout(a),a=setTimeout(v,t),h(l)}return void 0===a&&(a=setTimeout(v,t)),n}return t=z(t)||0,L(i)&&(u=!!i.leading,o=(d=\"maxWait\"in i)?Z(z(i.maxWait)||0,t):o,p=\"trailing\"in i?!!i.trailing:p),A.cancel=function(){void 0!==a&&clearTimeout(a),c=0,s=l=r=a=void 0},A.flush=function(){return void 0===a?n:f(D())},A}class F 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=U((e=>{this.props.setCurrentTime(e)}),50),this.onVolumeChange=e=>{this.changeVolume(e),this.setState({seekVolume:e/100})},this.changeVolume=U((e=>{this.props.setVolume(e/100)}),50),this.onVolumeSeekStart=()=>{this.onVolumeSeeking=!0},this.onVolumeSeekEnd=U((()=>{this.onVolumeSeeking=!1}),500),this.onProgressSeekStart=()=>this.setState({isPlayerSeeking:!0}),this.onProgressSeekEnd=U((()=>{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(F,{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(F,{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\"},G(Math.floor(t/1e3)),\" /\",\" \",G(Math.floor(e/1e3)))))}}function G(e){const t=e%60,i=(e-t)/60;if(i>=60){const e=i%60;return`${Y((i-e)/60)}:${Y(e)}:${Y(t)}`}return`${Y(i)}:${Y(t)}`}function Y(e){return e<=9?`0${e}`:`${e}`}let J=99999;var K,q;(q=K||(K={}))[q.Idle=0]=\"Idle\",q[q.Playing=1]=\"Playing\",q[q.Paused=2]=\"Paused\";let $={};function _(e,...t){g.verbose&&console.log(`[RTCEffect] ${e}`,...t)}function ee(e,t,i){function s(t){0===$[t].playState?(e.playEffect(t,i,0,1,0,100,!1,0).then((()=>{_(\">>> Play Success\",{playingId:t})})),$[t].playState=1):_(\">>> Skip Play\",{playingId:t,state:$[t].playState})}function r(e){$[e].playState=0,$[e].previousVideoJSAdvance=0,$[e].previousSeekTargetTime=0,$[e].previousBeginSeekTime=0}t.one(\"ready\",(()=>{var i;const o=(null==(i=null==t?void 0:t.tagAttributes)?void 0:i.src)||\"\";b.includes(\".\"+o.split(\".\").pop()||\"\")||(_(\">>> Mute js player\",{src:o}),t.muted(!0),t.muted=e=>!1);const n=function(){const e=J--,t={playState:K.Idle,previousVideoJSAdvance:0,previousSeekTargetTime:0,previousBeginSeekTime:0};return $[e]=t,e}();_(\">>> Setup\",{playingId:n,src:o}),e.addListener(\"error\",(e=>{_(\">>> Error\",{soundId:e}),r(e)})),e.addListener(\"effectFinished\",(e=>{_(\">>> Finished\",{soundId:e}),r(e)})),t.on(\"play\",(()=>{switch($[n].playState){case 0:_(\">>> Start play\",{playingId:n}),s(n);break;case 2:_(\">>> Resume play\",{playingId:n}),e.resumeEffect(n),$[n].playState=1}})),t.on(\"pause\",(()=>{const t=$[n].playState;switch(t){case 1:_(\">>> Pause play\",{playingId:n}),e.pauseEffect(n),$[n].playState=2;break;default:_(\">>> Skip Pause\",{playingId:n,currenState:t})}})),t.on(\"timeupdate\",(()=>{$[n],e.getEffectCurrentPosition(n).then((i=>{const r=$[n],o=i/1e3,a=t.currentTime(),l=0!==r.previousSeekTargetTime&&0!==r.previousBeginSeekTime;if(_(`>>> EffectSecond rtc: ${o} js: ${a} seeking: ${l}`,{playingId:n}),0==r.playState)return void(t.paused()||(_(\">>> Play effect due to time update.\",{playingId:n}),s(n)));if(l&&o<r.previousSeekTargetTime)return;if(1!==r.playState)return void _(\">>> Skip timupdate\",{playingId:n,state:r.playState,jsTime:t.currentTime(),rtcEffectTime:o});function c(t,i){e.setEffectPosition(i,1e3*t),r.previousBeginSeekTime=Date.now()/1e3,r.previousSeekTargetTime=t}const u=r.previousBeginSeekTime;if(i>0){const e=a-o,t=Math.abs(e),i=.5;if(t>i)if(l){const t=r.previousSeekTargetTime-o,i=Date.now()/1e3-u,s=i+(e>0?e:0),l=a+s;c(l,n),_(\">>> Start seeking after seeking lag\",{jsPlayerTime:a,rtcEffectTime:o,jsPlayerTimerAdvance:e,lastSeekingCost:i,estimatedRTCLag:s,targetRTCSeekTime:l,previousBeginSeekTime:u,timeElapse:t})}else if(t>10)c(a,n),_(\">>> DirectSeek\",{time:a,rtcEffectTime:o,jsPlayerTimerAdvance:e});else{const t=r.previousVideoJSAdvance,i=0,s=a+i;r.previousVideoJSAdvance=i,c(s,n),_(\">>> Start seeking with lag\",{jsPlayerTime:a,rtcEffectTime:o,jsPlayerTimerAdvance:e,previousAdvance:t,estimatedRTCLag:i,targetRTCSeekTime:s})}else l&&(_(\">>> SeekingFinish no lag\",{jsPlayerTime:a,rtcEffectTime:o,jsPlayerTimerAdvance:e,previousBeginSeekTime:u,rtcLagTolerance:i}),r.previousBeginSeekTime=0,r.previousSeekTargetTime=0)}}))})),t.on(\"dispose\",(()=>{$[n].playState&&(e.stopEffect(n),delete $[n],_(\">>> Dispose\",{playingId:n}))}))}))}class te 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(ie,{room:t,player:i,context:e,plugin:{putAttributes:s}})}}class ie 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.everPlayed=!1,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=f(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),this.everPlayed=!0)),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=f(t,this.props);let r=g.currentTimeMaxError;if(this.state.NoSound&&(r*=3),s>i.duration())this.resetPlayer();else if(Math.abs(i.currentTime()-s)>r){if(this.debug(\"<<< currentTime -> %o\",s),y)return void(this.everPlayed?i.currentTime(s):this.debug(\"<<< ignore iOS idle time update. -> %o (ignored)\",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(A&&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\",o.crossOrigin=\"anonymous\",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=d(o);this.player=a,window.player=a,a.one(\"loadedmetadata\",this.gracefullyUpdate);const l=window.__mediaPlayerAudioEffectClient;void 0!==l&&ee(l,a,i);const c=window.__pcmProxy;void 0!==c&&(a.one(\"play\",(()=>{const e=c.connect(o);this.audioSource=e,this.debug(\"Connect to PCMProxy \",i)})),a.one(\"dispose\",(()=>{this.audioSource&&(this.audioSource.disconnect(),this.audioSource=void 0,this.debug(\"Disconnect from PCMProxy\",i))}))),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({},h),s),this.player){let e=f(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)||b.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*f(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 =\",d.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 se={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({},h),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(te,{context:e}),s),i.mountContent(s),e.emitter.on(\"destroy\",(()=>{console.log(\"[MediaPlayer]: destroy\"),u.unmountComponentAtNode(s)}))}};export{p as Version,se as default,v as setOptions};\n//# sourceMappingURL=main.es.js.map\n","import AppDocsViewer from \"@netless/app-docs-viewer\";\nimport AppMediaPlayer, { setOptions } from \"@netless/app-media-player\";\nimport { WindowManager } from \"./index\";\n\nexport const setupBuiltin = () => {\n if (WindowManager.debug) {\n setOptions({ verbose: true });\n }\n\n WindowManager.register({\n kind: AppDocsViewer.kind,\n src: AppDocsViewer,\n });\n WindowManager.register({\n kind: AppMediaPlayer.kind,\n src: AppMediaPlayer,\n });\n};\n\nexport const BuiltinApps = {\n DocsViewer: AppDocsViewer.kind as string,\n MediaPlayer: AppMediaPlayer.kind as string,\n};\n","import type { Displayer, DisplayerState, Room, RoomState } from \"white-web-sdk\";\nimport type { AppManager } from \"../AppManager\";\nimport type { WindowManager } from \"../index\";\n\nimport Emittery from \"emittery\";\nimport { PlayerPhase, AnimationMode, autorun } from \"white-web-sdk\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { debounce, noop } from \"lodash\";\nimport { log } from \"../Utils/log\";\n\n// Note: typo below should not be fixed.\nexport enum IframeEvents {\n Init = \"Init\",\n AttributesUpdate = \"AttributesUpdate\",\n SetAttributes = \"SetAttributes\",\n RegisterMagixEvent = \"RegisterMagixEvent\",\n RemoveMagixEvent = \"RemoveMagixEvent\",\n RemoveAllMagixEvent = \"RemoveAllMagixEvent\",\n RoomStateChanged = \"RoomStateChanged\",\n DispatchMagixEvent = \"DispatchMagixEvent\",\n ReciveMagixEvent = \"ReciveMagixEvent\",\n NextPage = \"NextPage\",\n PrevPage = \"PrevPage\",\n SDKCreate = \"SDKCreate\",\n OnCreate = \"OnCreate\",\n SetPage = \"SetPage\",\n GetAttributes = \"GetAttributes\",\n Ready = \"Ready\",\n Destory = \"Destory\",\n StartCreate = \"StartCreate\",\n WrapperDidUpdate = \"WrapperDidUpdate\",\n DispayIframe = \"DispayIframe\",\n HideIframe = \"HideIframe\",\n GetRootRect = \"GetRootRect\",\n ReplayRootRect = \"ReplayRootRect\",\n PageTo = \"PageTo\",\n}\n\nexport enum DomEvents {\n WrapperDidMount = \"WrapperDidMount\",\n IframeLoad = \"IframeLoad\",\n}\n\nexport type IframeBridgeAttributes = {\n readonly url: string;\n readonly width: number;\n readonly height: number;\n readonly displaySceneDir: string;\n readonly lastEvent?: { name: string; payload: any };\n readonly useClicker?: boolean;\n readonly useSelector?: boolean;\n};\n\nexport type IframeBridgeEvents = {\n created: undefined;\n [IframeEvents.Ready]: undefined;\n [IframeEvents.StartCreate]: undefined;\n [IframeEvents.OnCreate]: IframeBridge;\n [IframeEvents.Destory]: undefined;\n [IframeEvents.GetRootRect]: undefined;\n [IframeEvents.ReplayRootRect]: DOMRect;\n [DomEvents.WrapperDidMount]: undefined;\n [IframeEvents.WrapperDidUpdate]: undefined;\n [DomEvents.IframeLoad]: Event;\n [IframeEvents.HideIframe]: undefined;\n [IframeEvents.DispayIframe]: undefined;\n};\n\nexport type IframeSize = {\n readonly width: number;\n readonly height: number;\n};\n\ntype BaseOption = {\n readonly url: string;\n readonly width: number;\n readonly height: number;\n readonly displaySceneDir: string;\n};\n\nexport type InsertOptions = {\n readonly useClicker?: boolean;\n readonly useSelector?: boolean;\n} & BaseOption;\n\nexport type OnCreateInsertOption = {\n readonly displayer: Displayer;\n} & BaseOption;\n\nconst RefreshIDs = {\n Ready: IframeEvents.Ready,\n RootRect: IframeEvents.ReplayRootRect,\n Message: \"message\",\n ComputeStyle: \"computeStyle\",\n Load: \"load\",\n DisplayerState: \"displayerState\",\n Show: \"show\",\n Hide: \"hide\",\n};\n\nconst times = <T>(number: number, iteratee: (value: number) => T) => {\n return new Array(number).fill(0).map((_, index) => iteratee(index));\n};\n\n/**\n * {@link https://github.com/netless-io/netless-iframe-bridge @netless/iframe-bridge}\n */\nexport class IframeBridge {\n public static readonly kind = \"IframeBridge\";\n public static readonly hiddenClass = \"netless-iframe-brdige-hidden\";\n public static emitter: Emittery<IframeBridgeEvents> = new Emittery();\n private static displayer: Displayer | null = null;\n private static alreadyCreate = false;\n\n public displayer: Displayer;\n public iframe: HTMLIFrameElement;\n\n private readonly magixEventMap = new Map<string, any>();\n private cssList: string[] = [];\n private allowAppliances: string[] = [\"clicker\"];\n private bridgeDisposer: () => void = noop;\n private rootRect: DOMRect | null = null;\n\n private sideEffectManager = new SideEffectManager();\n\n constructor(readonly manager: WindowManager, readonly appManager: AppManager) {\n this.displayer = IframeBridge.displayer = appManager.displayer;\n\n this.iframe = this._createIframe();\n\n this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(IframeEvents.ReplayRootRect, rect => {\n this.rootRect = rect;\n }),\n RefreshIDs.RootRect\n );\n\n this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(IframeEvents.HideIframe, () => {\n this.iframe.className = IframeBridge.hiddenClass;\n }),\n RefreshIDs.Hide\n );\n\n this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(IframeEvents.DispayIframe, () => {\n this.iframe.className = \"\";\n }),\n RefreshIDs.Show\n );\n\n this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(\"created\", () => {\n this.bridgeDisposer();\n this.bridgeDisposer = autorun(() => {\n const attributes = this.attributes;\n if (attributes.url) {\n const iframeSrc = this.iframe?.src;\n if (iframeSrc && iframeSrc !== attributes.url) {\n this.execListenIframe(attributes);\n }\n }\n if (attributes.displaySceneDir) {\n this.computedIframeDisplay(this.displayer.state, attributes);\n }\n if ((attributes.width || attributes.height) && this.iframe) {\n this.iframe.width = `${attributes.width}px`;\n this.iframe.height = `${attributes.height}px`;\n }\n this.postMessage({ kind: IframeEvents.AttributesUpdate, payload: attributes });\n });\n })\n );\n\n this.sideEffectManager.addDisposer(\n manager.emitter.on(\"cameraStateChange\", () => {\n this.computedStyle(this.displayer.state);\n })\n );\n\n IframeBridge.onCreate(this);\n }\n\n public static onCreate(plugin: IframeBridge): void {\n IframeBridge.emitter.emit(IframeEvents.StartCreate);\n IframeBridge.emitter.emit(IframeEvents.OnCreate, plugin);\n IframeBridge.emitter.emit(\"created\");\n }\n\n public insert(options: InsertOptions): this {\n const initAttributes: IframeBridgeAttributes = {\n url: options.url,\n width: options.width,\n height: options.height,\n displaySceneDir: options.displaySceneDir,\n useClicker: options.useClicker || false,\n useSelector: options.useSelector,\n };\n this.setAttributes(initAttributes);\n\n const wrapperDidMountListener = () => {\n this.getIframe();\n this.listenIframe(this.attributes);\n this.listenDisplayerState();\n IframeBridge.emitter.emit(IframeEvents.GetRootRect);\n };\n\n if (this.getIframe()) {\n wrapperDidMountListener();\n }\n // Code below will never be executed, just copying the old code...\n else {\n const didMount = this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(DomEvents.WrapperDidMount, () => {\n wrapperDidMountListener();\n this.sideEffectManager.flush(didMount);\n })\n );\n const didUpdate = this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(IframeEvents.WrapperDidUpdate, () => {\n wrapperDidMountListener();\n this.sideEffectManager.flush(didUpdate);\n })\n );\n }\n if (this.attributes.useSelector) {\n this.allowAppliances.push(\"selector\");\n }\n\n this.computedStyle(this.displayer.state);\n this.listenDisplayerCallbacks();\n this.getComputedIframeStyle();\n this.sideEffectManager.addEventListener(\n window,\n \"message\",\n this.messageListener.bind(this),\n void 0,\n RefreshIDs.Message\n );\n\n IframeBridge.alreadyCreate = true;\n return this;\n }\n\n // 在某些安卓机型中会遇到 iframe 嵌套计算 bug,需要手动延迟触发一下重绘\n private getComputedIframeStyle(): void {\n this.sideEffectManager.setTimeout(\n () => {\n if (this.iframe) {\n getComputedStyle(this.iframe);\n }\n },\n 200,\n RefreshIDs.ComputeStyle\n );\n }\n\n public destroy() {\n this.sideEffectManager.flushAll();\n IframeBridge.emitter.emit(IframeEvents.Destory);\n IframeBridge.alreadyCreate = false;\n IframeBridge.emitter.clearListeners();\n }\n\n private getIframe(): HTMLIFrameElement {\n this.iframe || (this.iframe = this._createIframe());\n return this.iframe;\n }\n\n public setIframeSize(params: IframeSize): void {\n if (this.iframe) {\n this.iframe.width = `${params.width}px`;\n this.iframe.height = `${params.height}px`;\n this.setAttributes({ width: params.width, height: params.height });\n }\n }\n\n public get attributes(): Partial<IframeBridgeAttributes> {\n return this.appManager.store.getIframeBridge();\n }\n\n public setAttributes(data: Partial<IframeBridgeAttributes>): void {\n this.appManager.store.setIframeBridge(data);\n }\n\n private _createIframe() {\n const iframe = document.createElement(\"iframe\");\n iframe.id = \"IframeBridge\";\n iframe.className = IframeBridge.hiddenClass;\n if (this.appManager.mainView.divElement) {\n this.appManager.mainView.divElement.appendChild(iframe);\n }\n return iframe;\n }\n\n public scaleIframeToFit(animationMode: AnimationMode = AnimationMode.Immediately) {\n if (!this.inDisplaySceneDir) {\n return;\n }\n const { width = 1280, height = 720 } = this.attributes;\n const x = width ? -width / 2 : 0;\n const y = height ? -height / 2 : 0;\n\n this.manager.moveCameraToContain({\n originX: x,\n originY: y,\n width,\n height,\n animationMode,\n });\n }\n\n public get isReplay(): boolean {\n return this.manager.isReplay;\n }\n\n private handleSetPage(data: any): void {\n if (this.isReplay || !this.attributes.displaySceneDir) {\n return;\n }\n const page = data.payload;\n const room = this.displayer as Room;\n const scenes = room.entireScenes()[this.attributes.displaySceneDir];\n if (!scenes || scenes.length !== page) {\n const genScenes = times<{ name: string }>(page, (index: number) => ({\n name: String(index + 1),\n }));\n room.putScenes(this.attributes.displaySceneDir, genScenes);\n this.manager.setMainViewScenePath(this.attributes.displaySceneDir);\n }\n }\n\n private execListenIframe = debounce((options: Partial<IframeBridgeAttributes>) => {\n this.listenIframe(options);\n }, 50);\n\n private src_url_equal_anchor?: HTMLAnchorElement;\n private listenIframe(options: Partial<IframeBridgeAttributes>): void {\n const loadListener = (ev: Event) => {\n this.postMessage({\n kind: IframeEvents.Init,\n payload: {\n attributes: this.attributes,\n roomState: IframeBridge.displayer?.state,\n currentPage: this.currentPage,\n observerId: this.displayer.observerId,\n },\n });\n IframeBridge.emitter.emit(DomEvents.IframeLoad, ev);\n this.sideEffectManager.addDisposer(\n IframeBridge.emitter.on(IframeEvents.Ready, () => {\n this.postMessage(this.attributes.lastEvent?.payload);\n }),\n RefreshIDs.Ready\n );\n this.computedStyleAndIframeDisplay();\n // if ((this.displayer as Room).isWritable) {\n // this.manager.moveCamera({\n // scale: this.manager.camera.scale + 1e-6,\n // animationMode: AnimationMode.Immediately,\n // })\n // }\n };\n if (options.url && this.iframe.src !== options.url) {\n if (!this.src_url_equal_anchor) this.src_url_equal_anchor = document.createElement(\"a\");\n this.src_url_equal_anchor.href = options.url;\n if (this.src_url_equal_anchor.href !== this.iframe.src) {\n this.iframe.src = options.url;\n }\n }\n this.iframe.width = `${options.width}px`;\n this.iframe.height = `${options.height}px`;\n this.sideEffectManager.addEventListener(\n this.iframe,\n \"load\",\n loadListener,\n void 0,\n RefreshIDs.Load\n );\n }\n\n private onPhaseChangedListener = (phase: PlayerPhase) => {\n if (phase === PlayerPhase.Playing) {\n this.computedStyleAndIframeDisplay();\n }\n };\n\n private listenDisplayerState(): void {\n if (this.isReplay) {\n if ((this.displayer as any)._phase === PlayerPhase.Playing) {\n this.computedStyleAndIframeDisplay();\n }\n this.sideEffectManager.add(() => {\n this.displayer.callbacks.on(\"onPhaseChanged\", this.onPhaseChangedListener);\n return () =>\n this.displayer.callbacks.off(\"onPhaseChanged\", this.onPhaseChangedListener);\n }, RefreshIDs.DisplayerState);\n }\n this.computedStyleAndIframeDisplay();\n }\n\n private computedStyleAndIframeDisplay(): void {\n this.computedStyle(this.displayer.state);\n this.computedIframeDisplay(this.displayer.state, this.attributes);\n }\n\n private listenDisplayerCallbacks(): void {\n this.displayer.callbacks.on(this.callbackName as any, this.stateChangeListener);\n }\n\n private get callbackName(): string {\n return this.isReplay ? \"onPlayerStateChanged\" : \"onRoomStateChanged\";\n }\n\n private stateChangeListener = (state: RoomState) => {\n state = { ...state };\n state.cameraState = this.manager.cameraState;\n this.postMessage({ kind: IframeEvents.RoomStateChanged, payload: state });\n if (state.cameraState) {\n IframeBridge.emitter.emit(IframeEvents.GetRootRect);\n this.computedStyle(state);\n }\n if (state.memberState) {\n this.computedZindex();\n this.updateStyle();\n }\n if (state.sceneState) {\n this.computedIframeDisplay(state, this.attributes);\n }\n };\n\n private computedStyle(_state: DisplayerState): void {\n const cameraState = this.manager.cameraState;\n const setWidth = this.attributes.width || 1280;\n const setHeight = this.attributes.height || 720;\n if (this.iframe) {\n const { width, height, scale, centerX, centerY } = cameraState;\n const rootRect = this.rootRect || { x: 0, y: 0 };\n const transformOriginX = `${width / 2 + rootRect.x}px`;\n const transformOriginY = `${height / 2 + rootRect.y}px`;\n const transformOrigin = `transform-origin: ${transformOriginX} ${transformOriginY};`;\n const iframeXDiff = ((width - setWidth) / 2) * scale;\n const iframeYDiff = ((height - setHeight) / 2) * scale;\n const x = -(centerX * scale) + iframeXDiff;\n const y = -(centerY * scale) + iframeYDiff;\n const transform = `transform: translate(${x}px,${y}px) scale(${scale}, ${scale});`;\n const position = \"position: absolute;\";\n // 在某些安卓机型, border-width 不为 0 时,才能正确计算 iframe 里嵌套 iframe 的大小\n const borderWidth = \"border: 0.1px solid rgba(0,0,0,0);\";\n const left = `left: 0px;`;\n const top = `top: 0px;`;\n const cssList = [position, borderWidth, top, left, transformOrigin, transform];\n this.cssList = cssList;\n this.computedZindex();\n this.updateStyle();\n }\n }\n\n private computedIframeDisplay(\n _state: DisplayerState,\n _attributes: Partial<IframeBridgeAttributes>\n ): void {\n if (this.inDisplaySceneDir) {\n IframeBridge.emitter.emit(IframeEvents.DispayIframe);\n } else {\n IframeBridge.emitter.emit(IframeEvents.HideIframe);\n }\n }\n\n public computedZindex(): void {\n const zIndexString = \"z-index: -1;\";\n const index = this.cssList.findIndex(css => css === zIndexString);\n if (index !== -1) {\n this.cssList.splice(index, 1);\n }\n if (!this.isClicker() || this.isDisableInput) {\n this.cssList.push(zIndexString);\n }\n }\n\n private updateStyle(): void {\n this.iframe.style.cssText = this.cssList.join(\" \");\n }\n\n private get iframeOrigin(): string | undefined {\n if (this.iframe) {\n try {\n return new URL(this.iframe.src).origin;\n } catch (err) {\n console.warn(err);\n }\n }\n }\n\n private messageListener(event: MessageEvent): void {\n log(\"<<<\", JSON.stringify(event.data));\n if (event.origin !== this.iframeOrigin) {\n return;\n }\n const data = event.data;\n switch (data.kind) {\n case IframeEvents.SetAttributes: {\n this.handleSetAttributes(data);\n break;\n }\n case IframeEvents.RegisterMagixEvent: {\n this.handleRegisterMagixEvent(data);\n break;\n }\n case IframeEvents.RemoveMagixEvent: {\n this.handleRemoveMagixEvent(data);\n break;\n }\n case IframeEvents.DispatchMagixEvent: {\n this.handleDispatchMagixEvent(data);\n break;\n }\n case IframeEvents.RemoveAllMagixEvent: {\n this.handleRemoveAllMagixEvent();\n break;\n }\n case IframeEvents.NextPage: {\n this.handleNextPage();\n break;\n }\n case IframeEvents.PrevPage: {\n this.handlePrevPage();\n break;\n }\n case IframeEvents.SDKCreate: {\n this.handleSDKCreate();\n break;\n }\n case IframeEvents.SetPage: {\n this.handleSetPage(data);\n break;\n }\n case IframeEvents.GetAttributes: {\n this.handleGetAttributes();\n break;\n }\n case IframeEvents.PageTo: {\n this.handlePageTo(data);\n break;\n }\n default: {\n log(`${data.kind} not allow event.`);\n break;\n }\n }\n }\n\n private handleSDKCreate(): void {\n this.postMessage({\n kind: IframeEvents.Init,\n payload: {\n attributes: this.attributes,\n roomState: this.displayer.state,\n currentPage: this.currentPage,\n observerId: this.displayer.observerId,\n },\n });\n }\n\n private handleDispatchMagixEvent(data: any): void {\n const eventPayload: { event: string; payload: any } = data.payload;\n this.appManager.safeDispatchMagixEvent(eventPayload.event, eventPayload.payload);\n }\n\n private handleSetAttributes(data: any): void {\n this.setAttributes(data.payload);\n }\n\n private handleRegisterMagixEvent(data: any): void {\n const eventName = data.payload as string;\n const listener = (event: any) => {\n if (event.authorId === this.displayer.observerId) {\n return;\n }\n this.postMessage({ kind: IframeEvents.ReciveMagixEvent, payload: event });\n };\n this.magixEventMap.set(eventName, listener);\n this.displayer.addMagixEventListener(eventName, listener);\n }\n\n private handleRemoveMagixEvent(data: any): void {\n const eventName = data.payload as string;\n const listener = this.magixEventMap.get(eventName);\n this.displayer.removeMagixEventListener(eventName, listener);\n }\n\n private handleNextPage(): void {\n if (this.manager.canOperate) {\n this.manager.nextPage();\n this.dispatchMagixEvent(IframeEvents.NextPage, {});\n }\n }\n\n private handlePrevPage(): void {\n if (this.manager.canOperate) {\n this.manager.prevPage();\n this.dispatchMagixEvent(IframeEvents.PrevPage, {});\n }\n }\n\n private handlePageTo(data: any): void {\n if (this.manager.canOperate) {\n const page = data.payload as number;\n if (!Number.isSafeInteger(page) || page <= 0) {\n return;\n }\n this.manager.setMainViewSceneIndex(page - 1);\n this.dispatchMagixEvent(IframeEvents.PageTo, page - 1);\n }\n }\n\n private handleRemoveAllMagixEvent(): void {\n this.magixEventMap.forEach((listener, event) => {\n this.displayer.removeMagixEventListener(event, listener);\n });\n this.magixEventMap.clear();\n }\n\n private handleGetAttributes(): void {\n this.postMessage({\n kind: IframeEvents.GetAttributes,\n payload: this.attributes,\n });\n }\n\n public postMessage(message: any): void {\n if (this.iframe) {\n this.iframe.contentWindow?.postMessage(JSON.parse(JSON.stringify(message)), \"*\");\n }\n }\n\n public dispatchMagixEvent(event: string, payload: any): void {\n if (this.manager.canOperate) {\n this.setAttributes({ lastEvent: { name: event, payload } });\n (this.displayer as Room).dispatchMagixEvent(event, payload);\n }\n }\n\n private get currentIndex(): number {\n return this.manager.mainViewSceneIndex;\n }\n\n private get currentPage(): number {\n return this.currentIndex + 1;\n }\n\n private get totalPage(): number {\n return this.manager.mainViewScenesLength;\n }\n\n private get readonly(): boolean {\n return !(this.displayer as any).isWritable;\n }\n\n public get inDisplaySceneDir(): boolean {\n return this.manager.mainViewSceneDir === this.attributes.displaySceneDir;\n }\n\n private isClicker(): boolean {\n if (this.readonly) {\n return false;\n }\n const currentApplianceName = (this.displayer as Room).state.memberState\n .currentApplianceName;\n return this.allowAppliances.includes(currentApplianceName);\n }\n\n private get isDisableInput(): boolean {\n if (\"disableDeviceInputs\" in this.displayer) {\n return (this.displayer as Room).disableDeviceInputs;\n } else {\n return true;\n }\n }\n}\n","import pRetry from \"p-retry\";\nimport { AppManager } from \"./AppManager\";\nimport { appRegister } from \"./Register\";\nimport { callbacks } from \"./callback\";\nimport { checkVersion, createInvisiblePlugin, setupWrapper } from \"./Helper\";\nimport { ContainerResizeObserver } from \"./ContainerResizeObserver\";\nimport { createBoxManager } from \"./BoxManager\";\nimport { CursorManager } from \"./Cursor\";\nimport { DEFAULT_CONTAINER_RATIO, Events, INIT_DIR, ROOT_DIR } from \"./constants\";\nimport { internalEmitter } from \"./InternalEmitter\";\nimport { Fields } from \"./AttributesDelegate\";\nimport { initDb } from \"./Register/storage\";\nimport { InvisiblePlugin, isPlayer, isRoom, RoomPhase, ViewMode } from \"white-web-sdk\";\nimport { isEqual, isNull, isObject, omit, isNumber } from \"lodash\";\nimport { log } from \"./Utils/log\";\nimport { PageStateImpl } from \"./PageState\";\nimport { ReconnectRefresher } from \"./ReconnectRefresher\";\nimport { replaceRoomFunction } from \"./Utils/RoomHacker\";\nimport { setupBuiltin } from \"./BuiltinApps\";\nimport \"video.js/dist/video-js.css\";\nimport \"./style.css\";\nimport \"@netless/telebox-insider/dist/style.css\";\nimport {\n addEmitterOnceListener,\n ensureValidScenePath,\n entireScenes,\n isValidScenePath,\n putScenes,\n wait,\n} from \"./Utils/Common\";\nimport type { TELE_BOX_STATE, BoxManager } from \"./BoxManager\";\nimport * as Errors from \"./Utils/error\";\nimport type { Apps, Position } from \"./AttributesDelegate\";\nimport type {\n Displayer,\n SceneDefinition,\n View,\n Room,\n InvisiblePluginContext,\n Camera,\n AnimationMode,\n CameraBound,\n Point,\n Rectangle,\n CameraState,\n Player,\n ImageInformation,\n SceneState,\n} from \"white-web-sdk\";\nimport type { AppListeners } from \"./AppListener\";\nimport type { ApplianceIcons, NetlessApp, RegisterParams } from \"./typings\";\nimport type { TeleBoxColorScheme, TeleBoxState } from \"@netless/telebox-insider\";\nimport type { AppProxy } from \"./App\";\nimport type { PublicEvent } from \"./callback\";\nimport type Emittery from \"emittery\";\nimport type { PageController, AddPageParams, PageState } from \"./Page\";\nimport { boxEmitter } from \"./BoxEmitter\";\nimport { IframeBridge } from \"./View/IframeBridge\";\nimport { setOptions } from \"@netless/app-media-player\";\nexport * from \"./View/IframeBridge\";\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<TAttributes = any> = {\n kind: string;\n // app 地址(本地 app 不需要传)\n src?: string;\n // 窗口配置\n options?: AddAppOptions;\n // 初始化 attributes\n attributes?: TAttributes;\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 createdAt?: number;\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 CursorOptions = {\n /**\n * If `\"custom\"`, it will render the pencil / eraser cursor as a circle and shapes cursor as a cross.\n *\n * @default \"default\"\n */\n style?: \"default\" | \"custom\";\n};\n\nexport type MountParams = {\n room: Room | Player;\n container?: HTMLElement;\n /** 白板高宽比例, 默认为 9 / 16 */\n containerSizeRatio?: number;\n /** @deprecated 显示 PS 透明背景,默认 true */\n chessboard?: boolean;\n collectorContainer?: HTMLElement;\n collectorStyles?: Partial<CSSStyleDeclaration>;\n overwriteStyles?: string;\n cursor?: boolean;\n cursorOptions?: CursorOptions;\n debug?: boolean;\n disableCameraTransform?: boolean;\n prefersColorScheme?: TeleBoxColorScheme;\n applianceIcons?: ApplianceIcons;\n fullscreen?: boolean;\n polling?: boolean;\n supportAppliancePlugin?: boolean;\n};\n\nexport const reconnectRefresher = new ReconnectRefresher({ emitter: internalEmitter });\n\nexport class WindowManager\n extends InvisiblePlugin<WindowMangerAttributes, any>\n implements PageController\n{\n public static kind = \"WindowManager\";\n public static displayer: Displayer;\n public static wrapper?: HTMLElement;\n public static sizer?: HTMLElement;\n public static playground?: HTMLElement;\n public static container?: HTMLElement;\n public static debug = false;\n public static containerSizeRatio = DEFAULT_CONTAINER_RATIO;\n public static supportAppliancePlugin?: boolean;\n private static isCreated = false;\n private static _resolve = (_manager: WindowManager) => void 0;\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 private _pageState?: PageStateImpl;\n private _fullscreen?: boolean;\n private _cursorUIDs: string[] = [];\n private _cursorUIDsStyleDOM?: HTMLStyleElement;\n\n private boxManager?: BoxManager;\n private static params?: MountParams;\n\n private containerResizeObserver?: ContainerResizeObserver;\n public containerSizeRatio = WindowManager.containerSizeRatio;\n\n constructor(context: InvisiblePluginContext) {\n super(context);\n WindowManager.displayer = context.displayer;\n (window as any).NETLESS_DEPS = __APP_DEPENDENCIES__;\n }\n\n public static onCreate(manager: WindowManager) {\n WindowManager._resolve(manager);\n }\n\n public static async mount(params: MountParams): Promise<WindowManager> {\n const room = params.room;\n WindowManager.container = params.container;\n WindowManager.supportAppliancePlugin = params.supportAppliancePlugin;\n const containerSizeRatio = params.containerSizeRatio;\n const debug = params.debug;\n\n const cursor = params.cursor;\n WindowManager.params = params;\n WindowManager.displayer = params.room;\n checkVersion();\n let manager: WindowManager | undefined = undefined;\n if (isRoom(room)) {\n if (room.phase !== RoomPhase.Connected) {\n throw new Error(\"[WindowManager]: Room only Connected can be mount\");\n }\n if (room.phase === RoomPhase.Connected && room.isWritable) {\n // redo undo 需要设置这个属性\n room.disableSerialization = false;\n }\n manager = await this.initManager(room);\n }\n if (WindowManager.isCreated) {\n throw new Error(\"[WindowManager]: Already created cannot be created again\");\n }\n\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 = room.getInvisiblePlugin(WindowManager.kind) as WindowManager;\n if (!manager) {\n log(`manager is empty. retrying ${count}`);\n throw new Error();\n }\n },\n // 1s, 2s, 4s, 5s, 5s, 5s, 5s, 5s, 5s\n { retries: 10, maxTimeout: 5000 } as any\n );\n }\n\n if (!manager) {\n throw new Error(\"[WindowManager]: create manager failed\");\n }\n\n if (containerSizeRatio) {\n WindowManager.containerSizeRatio = containerSizeRatio;\n }\n await manager.ensureAttributes();\n\n manager._fullscreen = params.fullscreen;\n manager.appManager = new AppManager(manager);\n manager.appManager.polling = params.polling || false;\n manager._pageState = new PageStateImpl(manager.appManager);\n manager.cursorManager = new CursorManager(\n manager.appManager,\n Boolean(cursor),\n params.cursorOptions,\n params.applianceIcons\n );\n if (containerSizeRatio) {\n manager.containerSizeRatio = containerSizeRatio;\n }\n\n if (params.container) {\n manager.bindContainer(params.container);\n }\n\n replaceRoomFunction(room, manager);\n internalEmitter.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 initManager(room: Room): Promise<WindowManager | undefined> {\n return createInvisiblePlugin(room);\n }\n\n private static initContainer(\n manager: WindowManager,\n container: HTMLElement,\n params: {\n chessboard?: boolean;\n overwriteStyles?: string;\n fullscreen?: boolean;\n }\n ) {\n const { chessboard, overwriteStyles, fullscreen } = params;\n if (!WindowManager.container) {\n WindowManager.container = container;\n }\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 (fullscreen) {\n sizer.classList.add(\"netless-window-manager-fullscreen\");\n }\n if (overwriteStyles) {\n const style = document.createElement(\"style\");\n style.textContent = overwriteStyles;\n playground.appendChild(style);\n }\n manager.containerResizeObserver = ContainerResizeObserver.create(\n playground,\n sizer,\n wrapper,\n internalEmitter\n );\n WindowManager.wrapper = wrapper;\n WindowManager.sizer = sizer;\n return mainViewElement;\n }\n\n public static get registered() {\n return appRegister.registered;\n }\n\n public bindContainer(container: HTMLElement) {\n if (isRoom(this.displayer) && this.room.phase !== RoomPhase.Connected) {\n throw new Errors.BindContainerRoomPhaseInvalidError();\n }\n if (WindowManager.isCreated && WindowManager.container) {\n if (WindowManager.container.firstChild) {\n container.appendChild(WindowManager.container.firstChild);\n }\n } else {\n if (WindowManager.params) {\n const params = WindowManager.params;\n const mainViewElement = WindowManager.initContainer(this, container, params);\n if (this.boxManager) {\n this.boxManager.destroy();\n }\n const boxManager = createBoxManager(this, callbacks, internalEmitter, boxEmitter, {\n collectorContainer: params.collectorContainer,\n collectorStyles: params.collectorStyles,\n prefersColorScheme: params.prefersColorScheme,\n });\n this.boxManager = boxManager;\n this.appManager?.setBoxManager(boxManager);\n this.bindMainView(mainViewElement, params.disableCameraTransform);\n if (WindowManager.wrapper) {\n this.cursorManager?.setupWrapper(WindowManager.wrapper);\n }\n }\n }\n internalEmitter.emit(\"updateManagerRect\");\n this.appManager?.refresh();\n this.appManager?.resetMaximized();\n this.appManager?.resetMinimized();\n this.appManager?.displayerWritableListener(!this.room.isWritable);\n WindowManager.container = container;\n }\n\n public bindCollectorContainer(container: HTMLElement) {\n if (WindowManager.isCreated && this.boxManager) {\n this.boxManager.setCollectorContainer(container);\n } else {\n if (WindowManager.params) {\n WindowManager.params.collectorContainer = container;\n }\n }\n }\n\n /**\n * 注册插件\n */\n public static register(params: RegisterParams<any, any, any>): Promise<void> {\n return appRegister.register(params);\n }\n\n /**\n * 注销插件\n */\n public static unregister(kind: string) {\n return appRegister.unregister(kind);\n }\n\n /**\n * 创建一个 app 至白板\n */\n public async addApp<T = any>(params: AddAppParams<T>): Promise<string | undefined> {\n if (this.appManager) {\n // 移除根目录时需要做一些异步的释放操作 addApp 需要等待释放完成才可以继续添加\n if (this.appManager.rootDirRemoving) {\n return new Promise((resolve, reject) => {\n internalEmitter.once(\"rootDirRemoved\").then(async () => {\n try {\n const appId = await this._addApp(params);\n resolve(appId);\n } catch (error) {\n reject(error.message);\n }\n });\n });\n } else {\n return this._addApp(params);\n }\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n private async _addApp<T = any>(params: AddAppParams<T>): Promise<string | undefined> {\n if (this.appManager) {\n if (!params.kind || typeof params.kind !== \"string\") {\n throw new Errors.ParamsInvalidError();\n }\n if (params.src && typeof params.src === \"string\") {\n appRegister.register({ kind: params.kind, src: params.src });\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 Errors.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 Errors.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 Errors.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 if (this.boxManager) {\n const topBox = this.boxManager.getTopBox();\n if (topBox) {\n this.boxManager.setZIndex(appId, topBox.zIndex + 1, false);\n this.boxManager.focusBox({ appId }, false);\n }\n }\n return;\n }\n }\n }\n if (scenePath && scenes && scenes.length > 0) {\n if (this.isDynamicPPT(scenes)) {\n isDynamicPPT = true;\n if (!entireScenes(this.displayer)[scenePath]) {\n putScenes(this.room, scenePath, scenes);\n }\n } else {\n if (!entireScenes(this.displayer)[scenePath]) {\n putScenes(this.room, scenePath, [{ name: scenes[0].name }]);\n }\n }\n }\n if (scenePath && scenes === undefined) {\n putScenes(this.room, 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 public async nextPage(): Promise<boolean> {\n if (this.appManager) {\n const nextIndex = this.mainViewSceneIndex + 1;\n if (nextIndex >= this.mainViewScenesLength) {\n console.warn(`[WindowManager]: current page is the last page`);\n return false;\n }\n await this.appManager.setMainViewSceneIndex(nextIndex);\n return true;\n } else {\n return false;\n }\n }\n\n public async prevPage(): Promise<boolean> {\n if (this.appManager) {\n const prevIndex = this.mainViewSceneIndex - 1;\n if (prevIndex < 0) {\n console.warn(`[WindowManager]: current page is the first page`);\n return false;\n }\n await this.appManager.setMainViewSceneIndex(prevIndex);\n return true;\n } else {\n return false;\n }\n }\n\n public async jumpPage(index: number): Promise<boolean> {\n if (this.appManager) {\n if (index < 0 || index >= this.pageState.length) {\n console.warn(`[WindowManager]: index ${index} out of range`);\n return false;\n }\n await this.appManager.setMainViewSceneIndex(index);\n return true;\n } else {\n return false;\n }\n }\n\n public async addPage(params?: AddPageParams): Promise<void> {\n if (this.appManager) {\n const after = params?.after;\n const scene = params?.scene;\n if (after) {\n const nextIndex = this.mainViewSceneIndex + 1;\n this.room.putScenes(ROOT_DIR, [scene || {}], nextIndex);\n } else {\n this.room.putScenes(ROOT_DIR, [scene || {}]);\n }\n }\n }\n\n /**\n * 删除一页\n * 默认删除当前页, 可以删除指定 index 页\n * 最低保留一页\n */\n public async removePage(index?: number): Promise<boolean> {\n if (this.appManager) {\n const needRemoveIndex = index === undefined ? this.pageState.index : index;\n if (this.pageState.length === 1) {\n console.warn(`[WindowManager]: can not remove the last page`);\n return false;\n }\n if (needRemoveIndex < 0 || needRemoveIndex >= this.pageState.length) {\n console.warn(`[WindowManager]: index ${index} out of range`);\n return false;\n }\n return this.appManager.removeSceneByIndex(needRemoveIndex);\n } else {\n return false;\n }\n }\n\n /**\n * 返回 mainView 的 ScenePath\n */\n public getMainViewScenePath(): string | undefined {\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 this.readonly = readonly;\n this.boxManager?.setReadonly(readonly);\n internalEmitter.emit(\"setReadonly\", readonly);\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 * app 本地自定义事件回调\n *\n * 返回一个用于撤销此监听的函数\n */\n public onAppEvent(\n kind: string,\n listener: (args: { kind: string; appId: string; type: string; value: any }) => void\n ): () => void {\n return internalEmitter.on(`custom-${kind}` as any, listener);\n }\n\n /**\n * 设置 ViewMode\n */\n public setViewMode(mode: ViewMode): void {\n if (mode === ViewMode.Broadcaster || mode === ViewMode.Follower) {\n if (this.canOperate && mode === ViewMode.Broadcaster) {\n this.appManager?.mainViewProxy.setCameraAndSize();\n }\n this.appManager?.mainViewProxy.start();\n }\n if (mode === ViewMode.Freedom) {\n this.appManager?.mainViewProxy.stop();\n }\n this.viewMode = mode;\n this.appManager?.mainViewProxy.setViewMode(mode);\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.boxManager?.setMaximized(maximized, false);\n }\n\n public setMinimized(minimized: boolean): void {\n if (!this.canOperate) return;\n this.boxManager?.setMinimized(minimized, false);\n }\n\n public setFullscreen(fullscreen: boolean): void {\n if (this._fullscreen !== fullscreen) {\n this._fullscreen = fullscreen;\n WindowManager.sizer?.classList.toggle(\"netless-window-manager-fullscreen\", fullscreen);\n callbacks.emit(\"fullscreenChange\", fullscreen);\n }\n }\n\n public get cursorUIDs(): string[] {\n return this._cursorUIDs;\n }\n\n public setCursorUIDs(cursorUIDs?: string[] | null): void {\n this._cursorUIDs = cursorUIDs || [];\n if (this._cursorUIDs.length === 0) {\n this._cursorUIDsStyleDOM?.remove();\n } else {\n if (!this._cursorUIDsStyleDOM) {\n this._cursorUIDsStyleDOM = document.createElement(\"style\");\n }\n WindowManager.playground?.appendChild(this._cursorUIDsStyleDOM);\n let style = \"[data-cursor-uid] { display: none }\";\n for (const uid of this._cursorUIDs) {\n style += `\\n[data-cursor-uid=\"${uid}\"] { display: flex }`;\n }\n this._cursorUIDsStyleDOM.textContent = style;\n }\n }\n\n public get mainView(): View {\n if (this.appManager) {\n return this.appManager.mainViewProxy.view;\n } else {\n throw new Errors.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 Errors.AppManagerNotInitError();\n }\n }\n\n public get cameraState(): CameraState {\n if (this.appManager) {\n return this.appManager.mainViewProxy.cameraState;\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n public get apps(): Apps | undefined {\n return this.appManager?.store.apps();\n }\n\n public get boxState(): TeleBoxState | undefined {\n if (this.appManager) {\n return this.appManager.boxManager?.boxState;\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n public get darkMode(): boolean {\n return Boolean(this.appManager?.boxManager?.darkMode);\n }\n\n public get prefersColorScheme(): TeleBoxColorScheme | undefined {\n if (this.appManager) {\n return this.appManager.boxManager?.prefersColorScheme;\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n public get focused(): string | undefined {\n return this.attributes.focus;\n }\n\n public get focusedView(): View | undefined {\n return this.appManager?.focusApp?.view || this.mainView;\n }\n\n public get polling(): boolean {\n return this.appManager?.polling || false;\n }\n\n public set polling(b: boolean) {\n if (this.appManager) {\n this.appManager.polling = b;\n }\n }\n\n public get cursorStyle(): \"default\" | \"custom\" {\n return this.cursorManager?.style || \"default\";\n }\n\n public set cursorStyle(value: \"default\" | \"custom\") {\n if (!this.cursorManager) {\n throw new Error(\"[WindowManager]: cursor is not enabled, please set { cursor: true }.\");\n }\n this.cursorManager.style = value;\n }\n\n public get mainViewSceneIndex(): number {\n return this._pageState?.index || 0;\n }\n\n public get mainViewSceneDir(): string {\n if (this.appManager) {\n return this.appManager?.getMainViewSceneDir();\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n public get topApp(): string | undefined {\n return this.boxManager?.getTopBox()?.id;\n }\n\n public get mainViewScenesLength(): number {\n return this._pageState?.length || 0;\n }\n\n public get canRedoSteps(): number {\n return this.focusedView?.canRedoSteps || 0;\n }\n\n public get canUndoSteps(): number {\n return this.focusedView?.canUndoSteps || 0;\n }\n\n public get sceneState(): SceneState {\n if (this.appManager) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.appManager.sceneState!;\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n public get pageState(): PageState {\n if (this._pageState) {\n return this._pageState.toObject();\n } else {\n throw new Errors.AppManagerNotInitError();\n }\n }\n\n public get fullscreen(): boolean {\n return Boolean(this._fullscreen);\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 /**\n * 切换 focus 到指定的 app, 并且把这个 app 放到最前面\n */\n public focusApp(appId: string) {\n const box = this.boxManager?.getBox(appId);\n if (box) {\n this.boxManager?.focusBox({ appId }, false);\n // 1.0 版本这里会有正式的 api\n (this.boxManager?.teleBoxManager as any).makeBoxTop(box, false);\n }\n }\n\n public moveCamera(\n camera: Partial<Camera> & { animationMode?: AnimationMode | undefined }\n ): void {\n const pureCamera = omit(camera, [\"animationMode\"]);\n const mainViewCamera = { ...this.mainView.camera };\n if (isEqual({ ...mainViewCamera, ...pureCamera }, mainViewCamera)) return;\n this.mainView.moveCamera(camera);\n this.appManager?.dispatchInternalEvent(Events.MoveCamera, camera);\n setTimeout(() => {\n this.appManager?.mainViewProxy.setCameraAndSize();\n }, 500);\n }\n\n public moveCameraToContain(\n rectangle: Rectangle &\n Readonly<{\n animationMode?: AnimationMode;\n }>\n ): void {\n this.mainView.moveCameraToContain(rectangle);\n this.appManager?.dispatchInternalEvent(Events.MoveCameraToContain, rectangle);\n setTimeout(() => {\n this.appManager?.mainViewProxy.setCameraAndSize();\n }, 500);\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.sizer = undefined;\n WindowManager.isCreated = false;\n if (WindowManager.playground) {\n WindowManager.playground.parentNode?.removeChild(WindowManager.playground);\n }\n WindowManager.params = undefined;\n this._iframeBridge?.destroy();\n this._iframeBridge = undefined;\n log(\"Destroyed\");\n }\n\n private bindMainView(divElement: HTMLDivElement, disableCameraTransform: boolean | undefined) {\n if (this.appManager) {\n this.appManager.bindMainView(divElement, Boolean(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 public cleanCurrentScene(): void {\n log(\"clean current scene\");\n this.focusedView?.cleanCurrentScene();\n }\n\n public redo(): number {\n return this.focusedView?.redo() || 0;\n }\n\n public undo(): number {\n return this.focusedView?.undo() || 0;\n }\n\n public delete(): void {\n this.focusedView?.delete();\n }\n\n public copy(): void {\n this.focusedView?.copy();\n }\n\n public paste(): void {\n this.focusedView?.paste();\n }\n\n public duplicate(): void {\n this.focusedView?.duplicate();\n }\n\n public insertText(x: number, y: number, text: string | undefined): string {\n return this.focusedView?.insertText(x, y, text) || \"\";\n }\n\n public insertImage(info: ImageInformation): void {\n return this.focusedView?.insertImage(info);\n }\n\n public completeImageUpload(uuid: string, url: string): void {\n return this.focusedView?.completeImageUpload(uuid, url);\n }\n\n public lockImage(uuid: string, locked: boolean): void {\n return this.focusedView?.lockImage(uuid, locked);\n }\n\n public lockImages(locked: boolean): void {\n return this.focusedView?.lockImages(locked);\n }\n\n public refresh() {\n this._refresh();\n this.appManager?.dispatchInternalEvent(Events.Refresh);\n }\n\n /** @internal */\n public _refresh() {\n this.appManager?.mainViewProxy.rebind();\n if (WindowManager.container) {\n this.bindContainer(WindowManager.container);\n }\n this.appManager?.refresher.refresh();\n }\n\n public setContainerSizeRatio(ratio: number) {\n if (!isNumber(ratio) || !(ratio > 0)) {\n throw new Error(\n `[WindowManager]: updateContainerSizeRatio error, ratio must be a positive number. but got ${ratio}`\n );\n }\n WindowManager.containerSizeRatio = ratio;\n this.containerSizeRatio = ratio;\n internalEmitter.emit(\"containerSizeRatioUpdate\", ratio);\n }\n\n private isDynamicPPT(scenes: SceneDefinition[]) {\n const sceneSrc = scenes[0]?.ppt?.src;\n return sceneSrc?.startsWith(\"pptx://\");\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 if (!this.attributes[\"_mainScenePath\"]) {\n this.safeSetAttributes({ _mainScenePath: INIT_DIR });\n }\n if (!this.attributes[\"_mainSceneIndex\"]) {\n this.safeSetAttributes({ _mainSceneIndex: 0 });\n }\n if (!this.attributes[Fields.Registered]) {\n this.safeSetAttributes({ [Fields.Registered]: {} });\n }\n if (!this.attributes[Fields.IframeBridge]) {\n this.safeSetAttributes({ [Fields.IframeBridge]: {} });\n }\n }\n }\n\n private _iframeBridge?: IframeBridge;\n public getIframeBridge() {\n if (!this.appManager) {\n throw new Error(\"[WindowManager]: should call getIframeBridge() after await mount()\");\n }\n this._iframeBridge || (this._iframeBridge = new IframeBridge(this, this.appManager));\n return this._iframeBridge;\n }\n}\n\nsetupBuiltin();\n\nexport * from \"./typings\";\n\nexport { BuiltinApps } from \"./BuiltinApps\";\nexport type { PublicEvent } from \"./callback\";\n"],"names":["callbacks","Emittery","db","store","v4","ScenePathType","debounce","isEqual","omit","e","s","t","r","o","listenUpdated","unlistenUpdated","reaction","isObject","UpdateEventKind","has","genUID","SideEffectManager","get","size","mapValues","noop","autorun","toJS","listenDisposed","unlistenDisposed","pick","ViewMode","isEmpty","AnimationMode","isInteger","isPlayer","isRoom","orderBy","WhiteVersion","pRetry","ResizeObserver","ResizeObserverPolyfill","isFunction","shouldUseNative","l","require$$0","n","q","u","v","w","x","y","z","A","B","D","E","F","C","G","I","H","J","K","L","P","Q","U","T","X","O","N","R","V","aa","S","Y","ba","W","M","Z","reactModule","cache","r$1","preventEvent","clamp","i","flattenEvent","text","ApplianceNames","App","RoomPhase","global","scheduler","schedulerModule","require$$1","require$$2","ee","ie","se","te","reactDomModule","c","d","setOptions","AppDocsViewer","AppMediaPlayer","PlayerPhase","InvisiblePlugin","Errors.BindContainerRoomPhaseInvalidError","Errors.AppManagerNotInitError","Errors.ParamsInvalidError","Errors.AppCreateError","Errors.InvalidScenePath","isNumber","isNull"],"mappings":"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"}