You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

98 lines
11 KiB

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_extra_1 = require("fs-extra");
const path_1 = require("path");
const vue_1 = require("vue");
const preview_1 = __importDefault(require("../default/methods/preview"));
/**
* 独立预览面板:完全复用 default 的 preview.ts 渲染逻辑(视口/外壳/缩放/静音一致)。
* 游戏 DOM 构建到顶层 document 的 #yyka-game-host;default 与预览面板各自独立引擎。
*/
const rootComponent = (0, vue_1.defineComponent)({
data() {
return {
// —— 面板级占位(preview.ts 方法依赖的非预览字段)——
treeWidth: 260,
detailWidth: 340,
showPerf: false,
drag: null,
logs: [],
previewUrl: 'http://localhost:7456/',
previewLoaded: false,
previewRenderErr: '',
previewOnline: null,
previewChecking: false,
previewCheckAt: 0,
previewDevice: 'Default',
previewRotated: false,
previewFps: 60,
previewShowFps: false,
previewPaused: false,
previewMuted: false,
previewZoom: 1,
showPreview: true,
_renderSeq: 0,
_hostSyncTimer: 0,
_hostObserved: false,
_docZoomBound: false,
_previewCheckTimer: 0,
_consoleDedup: new Map(),
};
},
methods: Object.assign({}, preview_1.default),
mounted() {
// 必须先安装音频 hook(在引擎脚本加载前),静音才能覆盖所有播放路径
try {
this._hookAudioCtx();
}
catch (_) { /* ignore */ }
this.initPreviewInfo().then(() => this.renderPreview());
this._checkTimer = window.setInterval(() => this.checkPreview(), 3000);
},
beforeUnmount() {
if (this._checkTimer)
window.clearInterval(this._checkTimer);
this.stopHostSync();
this.teardownPreview();
try {
const host = document.getElementById('yyka-game-host');
if (host)
host.remove();
}
catch (_) { /* ignore */ }
try {
document.querySelectorAll('.preview-panel-root').forEach((el) => el.remove());
}
catch (_) { /* ignore */ }
},
template: (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../../../static/template/preview/index.html'), 'utf-8'),
});
const panelDataMap = new WeakMap();
module.exports = Editor.Panel.define({
listeners: {},
template: (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../../../static/template/preview/wrapper.html'), 'utf-8'),
style: (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../../../static/style/preview/index.css'), 'utf-8'),
$: {
app: '#app',
},
methods: {},
ready() {
if (this.$.app) {
const app = (0, vue_1.createApp)(rootComponent);
app.config.compilerOptions.isCustomElement = (tag) => tag.startsWith('ui-');
app.mount(this.$.app);
panelDataMap.set(this, app);
}
},
beforeClose() { },
close() {
const app = panelDataMap.get(this);
if (app) {
app.unmount();
}
},
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcGFuZWxzL3ByZXZpZXcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1Q0FBd0M7QUFDeEMsK0JBQTRCO0FBQzVCLDZCQUFzRDtBQUV0RCx5RUFBd0Q7QUFFeEQ7OztHQUdHO0FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBQSxxQkFBZSxFQUFDO0lBQ2xDLElBQUk7UUFDQSxPQUFPO1lBQ0gsb0NBQW9DO1lBQ3BDLFNBQVMsRUFBRSxHQUFHO1lBQ2QsV0FBVyxFQUFFLEdBQUc7WUFDaEIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsSUFBVztZQUNqQixJQUFJLEVBQUUsRUFBVztZQUNqQixVQUFVLEVBQUUsd0JBQXdCO1lBQ3BDLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsYUFBYSxFQUFFLElBQXNCO1lBQ3JDLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxTQUFTO1lBQ3hCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsY0FBYyxFQUFFLEtBQUs7WUFDckIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsV0FBVyxFQUFFLENBQUM7WUFDZCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztZQUNiLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGtCQUFrQixFQUFFLENBQUM7WUFDckIsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO1NBQzNCLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxvQkFDQSxpQkFBYyxDQUNwQjtJQUNELE9BQU87UUFDSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDO1lBQUMsSUFBSSxDQUFD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ZnMtZXh0cmEnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgY3JlYXRlQXBwLCBBcHAsIGRlZmluZUNvbXBvbmVudCB9IGZyb20gJ3Z1ZSc7XG5cbmltcG9ydCBwcmV2aWV3TWV0aG9kcyBmcm9tICcuLi9kZWZhdWx0L21ldGhvZHMvcHJldmlldyc7XG5cbi8qKlxuICog54us56uL6aKE6KeI6Z2i5p2/77ya5a6M5YWo5aSN55SoIGRlZmF1bHQg55qEIHByZXZpZXcudHMg5riy5p+T6YC76L6R77yI6KeG5Y+jL+WkluWjsy/nvKnmlL4v6Z2Z6Z+z5LiA6Ie077yJ44CCXG4gKiDmuLjmiI8gRE9NIOaehOW7uuWIsOmhtuWxgiBkb2N1bWVudCDnmoQgI3l5a2EtZ2FtZS1ob3N077ybZGVmYXVsdCDkuI7pooTop4jpnaLmnb/lkIToh6rni6znq4vlvJXmk47jgIJcbiAqL1xuXG5jb25zdCByb290Q29tcG9uZW50ID0gZGVmaW5lQ29tcG9uZW50KHtcbiAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8g4oCU4oCUIOmdouadv+e6p+WNoOS9je+8iHByZXZpZXcudHMg5pa55rOV5L6d6LWW55qE6Z2e6aKE6KeI5a2X5q6177yJ4oCU4oCUXG4gICAgICAgICAgICB0cmVlV2lkdGg6IDI2MCxcbiAgICAgICAgICAgIGRldGFpbFdpZHRoOiAzNDAsXG4gICAgICAgICAgICBzaG93UGVyZjogZmFsc2UsXG4gICAgICAgICAgICBkcmFnOiBudWxsIGFzIGFueSxcbiAgICAgICAgICAgIGxvZ3M6IFtdIGFzIGFueVtdLFxuICAgICAgICAgICAgcHJldmlld1VybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NzQ1Ni8nLFxuICAgICAgICAgICAgcHJldmlld0xvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICBwcmV2aWV3UmVuZGVyRXJyOiAnJyxcbiAgICAgICAgICAgIHByZXZpZXdPbmxpbmU6IG51bGwgYXMgYm9vbGVhbiB8IG51bGwsXG4gICAgICAgICAgICBwcmV2aWV3Q2hlY2tpbmc6IGZhbHNlLFxuICAgICAgICAgICAgcHJldmlld0NoZWNrQXQ6IDAsXG4gICAgICAgICAgICBwcmV2aWV3RGV2aWNlOiAnRGVmYXVsdCcsXG4gICAgICAgICAgICBwcmV2aWV3Um90YXRlZDogZmFsc2UsXG4gICAgICAgICAgICBwcmV2aWV3RnBzOiA2MCxcbiAgICAgICAgICAgIHByZXZpZXdTaG93RnBzOiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZpZXdQYXVzZWQ6IGZhbHNlLFxuICAgICAgICAgICAgcHJldmlld011dGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZpZXdab29tOiAxLFxuICAgICAgICAgICAgc2hvd1ByZXZpZXc6IHRydWUsXG4gICAgICAgICAgICBfcmVuZGVyU2VxOiAwLFxuICAgICAgICAgICAgX2hvc3RTeW5jVGltZXI6IDAsXG4gICAgICAgICAgICBfaG9zdE9ic2VydmVkOiBmYWxzZSxcbiAgICAgICAgICAgIF9kb2Nab29tQm91bmQ6IGZhbHNlLFxuICAgICAgICAgICAgX3ByZXZpZXdDaGVja1RpbWVyOiAwLFxuICAgICAgICAgICAgX2NvbnNvbGVEZWR1cDogbmV3IE1hcCgpLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgICAuLi5wcmV2aWV3TWV0aG9kcyxcbiAgICB9LFxuICAgIG1vdW50ZWQodGhpczogYW55KSB7XG4gICAgICAgIC8vIOW/hemhu+WFiOWuieijhemfs+mikSBob29r77yI5Zyo5byV5pOO6ISa5pys5Yqg6L295YmN77yJ77yM6Z2Z6Z+z5omN6IO96KaG55uW5omA5pyJ5pKt5pS+6Lev5b6EXG4gICAgICAgIHRyeSB7IHRoaXMuX2hvb2tBdWRpb0N0eCgpOyB9IGNhdGNoIChfKSB7IC8qIGlnbm9yZSAqLyB9XG4gICAgICAgIHRoaXMuaW5pdFByZXZpZXdJbmZvKCkudGhlbigoKSA9PiB0aGlzLnJlbmRlclByZXZpZXcoKSk7XG4gICAgICAgIHRoaXMuX2NoZWNrVGltZXIgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5jaGVja1ByZXZpZXcoKSwgMzAwMCk7XG4gICAgfSxcbiAgICBiZWZvcmVVbm1vdW50KHRoaXM6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5fY2hlY2tUaW1lcikgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5fY2hlY2tUaW1lcik7XG4gICAgICAgIHRoaXMuc3RvcEhvc3RTeW5jKCk7XG4gICAgICAgIHRoaXMudGVhcmRvd25QcmV2aWV3KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3l5a2EtZ2FtZS1ob3N0Jyk7XG4gICAgICAgICAgICBpZiAoaG9zdCkgaG9zdC5yZW1vdmUoKTtcbiAgICAgICAgfSBjYXRjaCAoXykgeyAvKiBpZ25vcmUgKi8gfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByZXZpZXctcGFuZWwtcm9vdCcpLmZvckVhY2goKGVsKSA9PiBlbC5yZW1vdmUoKSk7XG4gICAgICAgIH0gY2F0Y2ggKF8pIHsgLyogaWdub3JlICovIH1cbiAgICB9LFxuICAgIHRlbXBsYXRlOiByZWFkRmlsZVN5bmMoam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi9zdGF0aWMvdGVtcGxhdGUvcHJldmlldy9pbmRleC5odG1sJyksICd1dGYtOCcpLFxufSk7XG5cbmNvbnN0IHBhbmVsRGF0YU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgQXBwPigpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEVkaXRvci5QYW5lbC5kZWZpbmUoe1xuICAgIGxpc3RlbmVyczoge30sXG4gICAgdGVtcGxhdGU6IHJlYWRGaWxlU3luYyhqb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL3N0YXRpYy90ZW1wbGF0ZS9wcmV2aWV3L3dyYXBwZXIuaHRtbCcpLCAndXRmLTgnKSxcbiAgICBzdHlsZTogcmVhZEZpbGVTeW5jKGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vc3RhdGljL3N0eWxlL3ByZXZpZXcvaW5kZXguY3NzJyksICd1dGYtOCcpLFxuICAgICQ6IHtcbiAgICAgICAgYXBwOiAnI2FwcCcsXG4gICAgfSxcbiAgICBtZXRob2RzOiB7fSxcbiAgICByZWFkeSgpIHtcbiAgICAgICAgaWYgKHRoaXMuJC5hcHApIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcCA9IGNyZWF0ZUFwcChyb290Q29tcG9uZW50KTtcbiAgICAgICAgICAgIGFwcC5jb25maWcuY29tcGlsZXJPcHRpb25zLmlzQ3VzdG9tRWxlbWVudCA9ICh0YWc6IHN0cmluZykgPT4gdGFnLnN0YXJ0c1dpdGgoJ3VpLScpO1xuICAgICAgICAgICAgYXBwLm1vdW50KHRoaXMuJC5hcHApO1xuICAgICAgICAgICAgcGFuZWxEYXRhTWFwLnNldCh0aGlzLCBhcHApO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBiZWZvcmVDbG9zZSgpIHt9LFxuICAgIGNsb3NlKCkge1xuICAgICAgICBjb25zdCBhcHAgPSBwYW5lbERhdGFNYXAuZ2V0KHRoaXMpO1xuICAgICAgICBpZiAoYXBwKSB7XG4gICAgICAgICAgICBhcHAudW5tb3VudCgpO1xuICAgICAgICB9XG4gICAgfSxcbn0pOyJdfQ==