"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // @ts-ignore const package_json_1 = __importDefault(require("../../../../package.json")); /** 节点选择 / 资产选择弹层。 */ exports.default = { /** 打开节点选择弹层:mode='ref' 选择组件引用,mode='widget' 选择 Widget 对齐目标。 */ openNodePicker(mode, compIdx, key, componentType) { this.nodePicker = { visible: true, mode, compIdx, key, componentType: componentType || 'cc.Node', filter: '', }; }, closeNodePicker() { this.nodePicker.visible = false; }, /** 弹层选中运行时节点:ref 写组件引用,widget 写对齐目标。 */ onNodePick(row) { if (!this.inspector) { return; } const comp = this.inspector.components[this.nodePicker.compIdx]; if (!comp) { this.nodePicker.visible = false; return; } if (this.nodePicker.mode === 'ref') { this.sendSet({ id: this.selectedId, comp: this.nodePicker.compIdx, key: this.nodePicker.key, value: { __refNode: row.id, componentType: this.nodePicker.componentType }, }); const prop = comp.props.find((p) => p.key === this.nodePicker.key); if (prop && prop.v && typeof prop.v === 'object') { prop.v = Object.assign(Object.assign({}, prop.v), { name: row.name }); } } else { this.sendSet({ id: this.selectedId, comp: this.nodePicker.compIdx, key: '__widget_target', value: row.id }); if (comp.widget) { comp.widget.targetName = row.name; } } this.nodePicker.visible = false; }, /** 打开资产选择弹层:index>=0 时写回数组项(如 sharedMaterials[i])。 */ async openAssetPicker(compIdx, key, index, curType) { this.assetPicker = { visible: true, compIdx, key, index, filter: '', type: curType || '', types: [], list: [], loading: true, }; try { const res = (await Editor.Message.request(package_json_1.default.name, 'query-command', { cmd: 'list-assets', timeout: 2500, payload: { type: curType || '' } })); if (res && Array.isArray(res.assets)) { this.assetPicker.list = res.assets; this.assetPicker.types = res.types || []; } else { this.logs.push('[资产] ' + String((res && res.error) || '获取资产列表失败')); } } catch (err) { this.logs.push(`[资产] ${String(err)}`); } finally { this.assetPicker.loading = false; } }, closeAssetPicker() { this.assetPicker.visible = false; }, /** 弹层选中资产:按 uuid 写回资产引用(属性或数组项)。 */ async onAssetPick(row) { if (!this.inspector) { return; } const ap = this.assetPicker; const comp = this.inspector.components[ap.compIdx]; if (!comp) { this.closeAssetPicker(); return; } this.sendSet({ id: this.selectedId, comp: ap.compIdx, key: ap.key, index: ap.index >= 0 ? ap.index : undefined, value: { __refAsset: row.uuid }, }); // 本地乐观更新:写回后 sendSet 会回读刷新,这里仅即时反馈 const prop = comp.props.find((p) => p.key === ap.key); if (prop && prop.v && typeof prop.v === 'object') { if (ap.index >= 0 && Array.isArray(prop.v)) { const it = prop.v[ap.index]; if (it && it.v && typeof it.v === 'object') { it.v = Object.assign(Object.assign({}, it.v), { name: row.name, type: row.type, uuid: row.uuid }); } } else if (prop.v && typeof prop.v === 'object') { prop.v = Object.assign(Object.assign({}, prop.v), { name: row.name, type: row.type, uuid: row.uuid }); } } this.closeAssetPicker(); }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS9wYW5lbHMvZGVmYXVsdC9tZXRob2RzL3BpY2tlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxhQUFhO0FBQ2IsNEVBQW1EO0FBR25ELHFCQUFxQjtBQUNyQixrQkFBZTtJQUNYLCtEQUErRDtJQUMvRCxjQUFjLENBQVksSUFBc0IsRUFBRSxPQUFlLEVBQUUsR0FBVyxFQUFFLGFBQXFCO1FBQ2pHLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUk7WUFDSixPQUFPO1lBQ1AsR0FBRztZQUNILGFBQWEsRUFBRSxhQUFhLElBQUksU0FBUztZQUN6QyxNQUFNLEVBQUUsRUFBRTtTQUNiLENBQUM7SUFDTixDQUFDO0lBQ0QsZUFBZTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0Qsd0NBQXdDO0lBQ3hDLFVBQVUsQ0FBWSxHQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNoQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87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O1lBQy9DLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN6QyxFQUFFLENBQUMsQ0FBQyxtQ0FBUSxFQUFFLENBQUMsQ0FBQyxLQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFFLENBQUM7Z0JBQ3ZFLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxDQUFDLG1DQUFRLElBQUksQ0FBQyxDQUFDLEtBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUUsQ0FBQztZQUMzRSxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHBhY2thZ2VKU09OIGZyb20gJy4uLy4uLy4uLy4uL3BhY2thZ2UuanNvbic7XG5pbXBvcnQgdHlwZSB7IFRyZWVSb3cgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKiDoioLngrnpgInmi6kgLyDotYTkuqfpgInmi6nlvLnlsYLjgIIgKi9cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICAvKiog5omT5byA6IqC54K56YCJ5oup5by55bGC77yabW9kZT0ncmVmJyDpgInmi6nnu4Tku7blvJXnlKjvvIxtb2RlPSd3aWRnZXQnIOmAieaLqSBXaWRnZXQg5a+56b2Q55uu5qCH44CCICovXG4gICAgb3Blbk5vZGVQaWNrZXIodGhpczogYW55LCBtb2RlOiAncmVmJyB8ICd3aWRnZXQnLCBjb21wSWR4OiBudW1iZXIsIGtleTogc3RyaW5nLCBjb21wb25lbnRUeXBlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ub2RlUGlja2VyID0ge1xuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICBjb21wSWR4LFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY29tcG9uZW50VHlwZTogY29tcG9uZW50VHlwZSB8fCAnY2MuTm9kZScsXG4gICAgICAgICAgICBmaWx0ZXI6ICcnLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY2xvc2VOb2RlUGlja2VyKHRoaXM6IGFueSkge1xuICAgICAgICB0aGlzLm5vZGVQaWNrZXIudmlzaWJsZSA9IGZhbHNlO1xuICAgIH0sXG4gICAgLyoqIOW8ueWxgumAieS4rei/kOihjOaXtuiKgueCue+8mnJlZiDlhpnnu4Tku7blvJXnlKjvvIx3aWRnZXQg5YaZ5a+56b2Q55uu5qCH44CCICovXG4gICAgb25Ob2RlUGljayh0aGlzOiBhbnksIHJvdzogVHJlZVJvdykge1xuICAgICAgICBpZiAoIXRoaXMuaW5zcGVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcCA9IHRoaXMuaW5zcGVjdG9yLmNvbXBvbmVudHNbdGhpcy5ub2RlUGlja2VyLmNvbXBJZHhdO1xuICAgICAgICBpZiAoIWNvbXApIHtcbiAgICAgICAgICAgIHRoaXMubm9kZVBpY2tlci52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubm9kZVBpY2tlci5tb2RlID09PSAncmVmJykge1xuICAgICAgICAgICAgdGhpcy5zZW5kU2V0KHtcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZElkLFxuICAgICAgICAgICAgICAgIGNvbXA6IHRoaXMubm9kZVBpY2tlci5jb21wSWR4LFxuICAgICAgICAgICAgICAgIGtleTogdGhpcy5ub2RlUGlja2VyLmtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogeyBfX3JlZk5vZGU6IHJvdy5pZCwgY29tcG9uZW50VHlwZTogdGhpcy5ub2RlUGlja2VyLmNvbXBvbmVudFR5cGUgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IGNvbXAucHJvcHMuZmluZCgocDogYW55KSA9PiBwLmtleSA9PT0gdGhpcy5ub2RlUGlja2VyLmtleSk7XG4gICAgICAgICAgICBpZiAocHJvcCAmJiBwcm9wLnYgJiYgdHlwZW9mIHByb3AudiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBwcm9wLnYgPSB7IC4uLnByb3AudiwgbmFtZTogcm93Lm5hbWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZFNldCh7IGlkOiB0aGlzLnNlbGVjdGVkSWQsIGNvbXA6IHRoaXMubm9kZVBpY2tlci5jb21wSWR4LCBrZXk6ICdfX3dpZGdldF90YXJnZXQnLCB2YWx1ZTogcm93LmlkIH0pO1xuICAgICAgICAgICAgaWYgKGNvbXAud2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgY29tcC53aWRnZXQudGFyZ2V0TmFtZSA9IHJvdy5uYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubm9kZVBpY2tlci52aXNpYmxlID0gZmFsc2U7XG4gICAgfSxcbiAgICAvKiog5omT5byA6LWE5Lqn6YCJ5oup5by55bGC77yaaW5kZXg+PTAg5pe25YaZ5Zue5pWw57uE6aG577yI5aaCIHNoYXJlZE1hdGVyaWFsc1tpXe+8ieOAgiAqL1xuICAgIGFzeW5jIG9wZW5Bc3NldFBpY2tlcih0aGlzOiBhbnksIGNvbXBJZHg6IG51bWJlciwga2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIGN1clR5cGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmFzc2V0UGlja2VyID0ge1xuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbXBJZHgsXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGZpbHRlcjogJycsXG4gICAgICAgICAgICB0eXBlOiBjdXJUeXBlIHx8ICcnLFxuICAgICAgICAgICAgdHlwZXM6IFtdLFxuICAgICAgICAgICAgbGlzdDogW10sXG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gKGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoXG4gICAgICAgICAgICAgICAgcGFja2FnZUpTT04ubmFtZSBhcyBhbnksXG4gICAgICAgICAgICAgICAgJ3F1ZXJ5LWNvbW1hbmQnIGFzIGFueSxcbiAgICAgICAgICAgICAgICB7IGNtZDogJ2xpc3QtYXNzZXRzJywgdGltZW91dDogMjUwMCwgcGF5bG9hZDogeyB0eXBlOiBjdXJUeXBlIHx8ICcnIH0gfSBhcyBhbnksXG4gICAgICAgICAgICApKSBhcyBhbnk7XG4gICAgICAgICAgICBpZiAocmVzICYmIEFycmF5LmlzQXJyYXkocmVzLmFzc2V0cykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2V0UGlja2VyLmxpc3QgPSByZXMuYXNzZXRzO1xuICAgICAgICAgICAgICAgIHRoaXMuYXNzZXRQaWNrZXIudHlwZXMgPSByZXMudHlwZXMgfHwgW107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9ncy5wdXNoKCdb6LWE5LqnXSAnICsgU3RyaW5nKChyZXMgJiYgcmVzLmVycm9yKSB8fCAn6I635Y+W6LWE5Lqn5YiX6KGo5aSx6LSlJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMubG9ncy5wdXNoKGBb6LWE5LqnXSAke1N0cmluZyhlcnIpfWApO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5hc3NldFBpY2tlci5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNsb3NlQXNzZXRQaWNrZXIodGhpczogYW55KSB7XG4gICAgICAgIHRoaXMuYXNzZXRQaWNrZXIudmlzaWJsZSA9IGZhbHNlO1xuICAgIH0sXG4gICAgLyoqIOW8ueWxgumAieS4rei1hOS6p++8muaMiSB1dWlkIOWGmeWbnui1hOS6p+W8leeUqO+8iOWxnuaAp+aIluaVsOe7hOmhue+8ieOAgiAqL1xuICAgIGFzeW5jIG9uQXNzZXRQaWNrKHRoaXM6IGFueSwgcm93OiB7IG5hbWU6IHN0cmluZzsgdXVpZDogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfSkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zcGVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXAgPSB0aGlzLmFzc2V0UGlja2VyO1xuICAgICAgICBjb25zdCBjb21wID0gdGhpcy5pbnNwZWN0b3IuY29tcG9uZW50c1thcC5jb21wSWR4XTtcbiAgICAgICAgaWYgKCFjb21wKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQXNzZXRQaWNrZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbmRTZXQoe1xuICAgICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRJZCxcbiAgICAgICAgICAgIGNvbXA6IGFwLmNvbXBJZHgsXG4gICAgICAgICAgICBrZXk6IGFwLmtleSxcbiAgICAgICAgICAgIGluZGV4OiBhcC5pbmRleCA+PSAwID8gYXAuaW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB2YWx1ZTogeyBfX3JlZkFzc2V0OiByb3cudXVpZCB9LFxuICAgICAgICB9KTtcbiAgICAgICAgLy8g5pys5Zyw5LmQ6KeC5pu05paw77ya5YaZ5Zue5ZCOIHNlbmRTZXQg5Lya5Zue6K+75Yi35paw77yM6L+Z6YeM5LuF5Y2z5pe25Y+N6aaIXG4gICAgICAgIGNvbnN0IHByb3AgPSBjb21wLnByb3BzLmZpbmQoKHA6IGFueSkgPT4gcC5rZXkgPT09IGFwLmtleSk7XG4gICAgICAgIGlmIChwcm9wICYmIHByb3AudiAmJiB0eXBlb2YgcHJvcC52ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaWYgKGFwLmluZGV4ID49IDAgJiYgQXJyYXkuaXNBcnJheShwcm9wLnYpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXQgPSBwcm9wLnZbYXAuaW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmIChpdCAmJiBpdC52ICYmIHR5cGVvZiBpdC52ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBpdC52ID0geyAuLi5pdC52LCBuYW1lOiByb3cubmFtZSwgdHlwZTogcm93LnR5cGUsIHV1aWQ6IHJvdy51dWlkIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wLnYgJiYgdHlwZW9mIHByb3AudiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBwcm9wLnYgPSB7IC4uLnByb3AudiwgbmFtZTogcm93Lm5hbWUsIHR5cGU6IHJvdy50eXBlLCB1dWlkOiByb3cudXVpZCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xvc2VBc3NldFBpY2tlcigpO1xuICAgIH0sXG59O1xuIl19