"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mounted = mounted; exports.beforeUnmount = beforeUnmount; /** 一次性清理:幂等,可安全地被卸载流程 + 窗口 unload 事件重复触发。 * 拖出为浮窗后关闭时,Cocos 不一定会调用面板 close()/unmount(), * 因此额外监听 pagehide/beforeunload 兜底,避免预览引擎、游戏 DOM、定时器残留。 */ function doDispose() { if (this._disposed) return; this._disposed = true; window.clearInterval(this.interval); window.clearInterval(this.perfTimer); window.clearInterval(this.resTimer); window.clearTimeout(this.filterTimer); window.clearTimeout(this.copyTimer); window.clearTimeout(this.mcpCopyTimer); if (this.stopHostSync) this.stopHostSync(); // 停止游戏宿主定期同步 if (this.teardownPreview) this.teardownPreview(); // 停主循环/调度器/音频、释放资源 try { const host = document.getElementById('yyka-game-host'); if (host) host.remove(); // 移除顶层游戏 DOM,避免浮窗关闭后画面残留 } catch (_) { /* ignore */ } window.removeEventListener('pointermove', this.onDragMove); window.removeEventListener('pointerup', this.endDrag); window.removeEventListener('pointercancel', this.endDrag); window.removeEventListener('resize', this.onResize); window.removeEventListener('pagehide', this._onPageHide); window.removeEventListener('beforeunload', this._onPageHide); } async function mounted() { this.ensureServer(); this.refresh(); await this.initPreviewInfo(); this.$nextTick(() => this.renderPreview()); this.loadMcpState(); this.interval = window.setInterval(() => this.refresh(), 1000); window.addEventListener('pointermove', this.onDragMove); window.addEventListener('pointerup', this.endDrag); window.addEventListener('pointercancel', this.endDrag); window.addEventListener('resize', this.onResize); // 拖出为独立浮窗后直接关窗时,仅关窗口不触发下文的 beforeUnmount,需在此兜底清理 this._onPageHide = () => doDispose.call(this); window.addEventListener('pagehide', this._onPageHide); window.addEventListener('beforeunload', this._onPageHide); } function beforeUnmount() { window.removeEventListener('pagehide', this._onPageHide); window.removeEventListener('beforeunload', this._onPageHide); doDispose.call(this); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3BhbmVscy9kZWZhdWx0L2xpZmVjeWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSwwQkFlQztBQUVELHNDQUlDO0FBL0NEOzsyREFFMkQ7QUFDM0QsU0FBUyxTQUFTO0lBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU87SUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDdEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWTtRQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLGFBQWE7SUFDekQsSUFBSSxJQUFJLENBQUMsZUFBZTtRQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQjtJQUNyRSxJQUFJLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMseUJBQXlCO0lBQ3RELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVNLEtBQUssVUFBVSxPQUFPO0lBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELGlEQUFpRDtJQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQWdCLGFBQWE7SUFDekIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0QsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIOS4gOasoeaAp+a4heeQhu+8muW5guetie+8jOWPr+WuieWFqOWcsOiiq+WNuOi9vea1geeoiyArIOeql+WPoyB1bmxvYWQg5LqL5Lu26YeN5aSN6Kem5Y+R44CCXG4gKiAg5ouW5Ye65Li65rWu56qX5ZCO5YWz6Zet5pe277yMQ29jb3Mg5LiN5LiA5a6a5Lya6LCD55So6Z2i5p2/IGNsb3NlKCkvdW5tb3VudCgp77yMXG4gKiAg5Zug5q2k6aKd5aSW55uR5ZCsIHBhZ2VoaWRlL2JlZm9yZXVubG9hZCDlhZzlupXvvIzpgb/lhY3pooTop4jlvJXmk47jgIHmuLjmiI8gRE9N44CB5a6a5pe25Zmo5q6L55WZ44CCICovXG5mdW5jdGlvbiBkb0Rpc3Bvc2UodGhpczogYW55KSB7XG4gICAgaWYgKHRoaXMuX2Rpc3Bvc2VkKSByZXR1cm47XG4gICAgdGhpcy5fZGlzcG9zZWQgPSB0cnVlO1xuICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMucGVyZlRpbWVyKTtcbiAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnJlc1RpbWVyKTtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuZmlsdGVyVGltZXIpO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb3B5VGltZXIpO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5tY3BDb3B5VGltZXIpO1xuICAgIGlmICh0aGlzLnN0b3BIb3N0U3luYykgdGhpcy5zdG9wSG9zdFN5bmMoKTsgLy8g5YGc5q2i5ri45oiP5a6/5Li75a6a5pyf5ZCM5q2lXG4gICAgaWYgKHRoaXMudGVhcmRvd25QcmV2aWV3KSB0aGlzLnRlYXJkb3duUHJldmlldygpOyAvLyDlgZzkuLvlvqrnjq8v6LCD5bqm5ZmoL+mfs+mikeOAgemHiuaUvui1hOa6kFxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneXlrYS1nYW1lLWhvc3QnKTtcbiAgICAgICAgaWYgKGhvc3QpIGhvc3QucmVtb3ZlKCk7IC8vIOenu+mZpOmhtuWxgua4uOaIjyBET03vvIzpgb/lhY3mta7nqpflhbPpl63lkI7nlLvpnaLmrovnlZlcbiAgICB9IGNhdGNoIChfKSB7IC8qIGlnbm9yZSAqLyB9XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgdGhpcy5vbkRyYWdNb3ZlKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5lbmREcmFnKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsIHRoaXMuZW5kRHJhZyk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIHRoaXMuX29uUGFnZUhpZGUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCB0aGlzLl9vblBhZ2VIaWRlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1vdW50ZWQodGhpczogYW55KSB7XG4gICAgdGhpcy5lbnN1cmVTZXJ2ZXIoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICBhd2FpdCB0aGlzLmluaXRQcmV2aWV3SW5mbygpO1xuICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHRoaXMucmVuZGVyUHJldmlldygpKTtcbiAgICB0aGlzLmxvYWRNY3BTdGF0ZSgpO1xuICAgIHRoaXMuaW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5yZWZyZXNoKCksIDEwMDApO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHRoaXMub25EcmFnTW92ZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuZW5kRHJhZyk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJjYW5jZWwnLCB0aGlzLmVuZERyYWcpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uUmVzaXplKTtcbiAgICAvLyDmi5blh7rkuLrni6znq4vmta7nqpflkI7nm7TmjqXlhbPnqpfml7bvvIzku4XlhbPnqpflj6PkuI3op6blj5HkuIvmlofnmoQgYmVmb3JlVW5tb3VudO+8jOmcgOWcqOatpOWFnOW6lea4heeQhlxuICAgIHRoaXMuX29uUGFnZUhpZGUgPSAoKSA9PiBkb0Rpc3Bvc2UuY2FsbCh0aGlzKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCB0aGlzLl9vblBhZ2VIaWRlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgdGhpcy5fb25QYWdlSGlkZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiZWZvcmVVbm1vdW50KHRoaXM6IGFueSkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIHRoaXMuX29uUGFnZUhpZGUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCB0aGlzLl9vblBhZ2VIaWRlKTtcbiAgICBkb0Rpc3Bvc2UuY2FsbCh0aGlzKTtcbn0iXX0=