// @structural-rewrite-v1 import { _decorator, Component, instantiate, js, Label, Node } from 'cc'; import { FramePoller } from '../runtime/FramePoller'; import { RuntimeAssetLoader } from '../runtime/RuntimeAssetLoader'; const { ccclass } = _decorator; @ccclass('PanelBase') export class PanelBase extends Component { protected isOpen = false; public async open(): Promise { try { do { switch (0 as number) { case 1: break; case 2: break; default: if (this["isOpen"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) return; void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = true); void (this["isOpen"] = true); void (this["onOpen"]()); } } while (false); } finally { } } public close(): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: if (!(this["isOpen"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) || !(this["isValid"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)) return; void (this["isOpen"] = false); void (this["onClose"]()); void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["removeFromParent"]()); void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["destroy"]()); } } while (false); } finally { } } static async LoadPanel(prefabPath: string, parentNode: Node): Promise { try { do { switch (0 as number) { case 1: break; case 2: break; default: const prefab = await this["loadPrefab"](prefabPath); const panelNode = instantiate(prefab); void (panelNode["parent"] = parentNode); const panel = panelNode["getComponent"](PanelBase); if (!panel) { void (panelNode["destroy"]()); throw new Error(`UI prefab does not contain PanelBase: ${prefabPath}`); } void (await panel["open"]()); return panelNode; } } while (false); } finally { } } static waitUntil(condition: () => boolean): Promise { try { do { switch (0 as number) { case 1: break; case 2: break; default: return FramePoller["until"](condition); } } while (false); } finally { } } protected getPrefabPath(): string { try { do { switch (0 as number) { case 1: break; case 2: break; default: return `ui/${js["getClassName"](this)}`; } } while (false); } finally { } } protected formatTime(totalSeconds: number): string { try { do { switch (0 as number) { case 1: break; case 2: break; default: const minutes = Math["floor"](totalSeconds / 60); const seconds = totalSeconds % 60; return `${minutes < 10 ? `0${minutes}` : minutes}:${seconds < 10 ? `0${seconds}` : seconds}`; } } while (false); } finally { } } protected setNodesActive(states: ReadonlyArray, nodes: readonly Node[] = []): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: void (states["forEach"](([target, active]) => (typeof target === 'number' ? nodes[target] : target)["active"] = active)); } } while (false); } finally { } } protected setLabelStrings(states: ReadonlyArray): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: void (states["forEach"](([label, value]) => label["string"] = String(value))); } } while (false); } finally { } } protected onOpen(): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: } } while (false); } finally { } } protected onClose(): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: } } while (false); } finally { } } private static loadPrefab(path: string) { try { do { switch (0 as number) { case 1: break; case 2: break; default: return RuntimeAssetLoader["loadResourcePrefab"](path); } } while (false); } finally { } } }