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.
121 lines
16 KiB
121 lines
16 KiB
"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
|