복사 진짜진짜 수정
This commit is contained in:
parent
542c0bae94
commit
755bbc0c58
|
|
@ -279,11 +279,90 @@ export class MenuCopyService {
|
||||||
logger.debug(` 📐 분할 패널 우측 화면 참조 발견: ${numId}`);
|
logger.debug(` 📐 분할 패널 우측 화면 참조 발견: ${numId}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 5) 모달 화면 ID (addModalScreenId, editModalScreenId, modalScreenId)
|
||||||
|
if (props?.componentConfig?.addModalScreenId) {
|
||||||
|
const addModalScreenId = props.componentConfig.addModalScreenId;
|
||||||
|
const numId =
|
||||||
|
typeof addModalScreenId === "number"
|
||||||
|
? addModalScreenId
|
||||||
|
: parseInt(addModalScreenId);
|
||||||
|
if (!isNaN(numId) && numId > 0) {
|
||||||
|
referenced.push(numId);
|
||||||
|
logger.debug(` 📋 추가 모달 화면 참조 발견: ${numId}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (props?.componentConfig?.editModalScreenId) {
|
||||||
|
const editModalScreenId = props.componentConfig.editModalScreenId;
|
||||||
|
const numId =
|
||||||
|
typeof editModalScreenId === "number"
|
||||||
|
? editModalScreenId
|
||||||
|
: parseInt(editModalScreenId);
|
||||||
|
if (!isNaN(numId) && numId > 0) {
|
||||||
|
referenced.push(numId);
|
||||||
|
logger.debug(` 📝 수정 모달 화면 참조 발견: ${numId}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (props?.componentConfig?.modalScreenId) {
|
||||||
|
const modalScreenId = props.componentConfig.modalScreenId;
|
||||||
|
const numId =
|
||||||
|
typeof modalScreenId === "number"
|
||||||
|
? modalScreenId
|
||||||
|
: parseInt(modalScreenId);
|
||||||
|
if (!isNaN(numId) && numId > 0) {
|
||||||
|
referenced.push(numId);
|
||||||
|
logger.debug(` 🔲 모달 화면 참조 발견: ${numId}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6) 재귀적으로 모든 properties에서 화면 ID 추출 (깊은 탐색)
|
||||||
|
this.extractScreenIdsFromObject(props, referenced);
|
||||||
}
|
}
|
||||||
|
|
||||||
return referenced;
|
return referenced;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 객체 내부에서 화면 ID를 재귀적으로 추출
|
||||||
|
*/
|
||||||
|
private extractScreenIdsFromObject(obj: any, referenced: number[]): void {
|
||||||
|
if (!obj || typeof obj !== "object") return;
|
||||||
|
|
||||||
|
if (Array.isArray(obj)) {
|
||||||
|
for (const item of obj) {
|
||||||
|
this.extractScreenIdsFromObject(item, referenced);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const key of Object.keys(obj)) {
|
||||||
|
const value = obj[key];
|
||||||
|
|
||||||
|
// 화면 ID 키 패턴 확인
|
||||||
|
if (
|
||||||
|
key === "screenId" ||
|
||||||
|
key === "targetScreenId" ||
|
||||||
|
key === "leftScreenId" ||
|
||||||
|
key === "rightScreenId" ||
|
||||||
|
key === "addModalScreenId" ||
|
||||||
|
key === "editModalScreenId" ||
|
||||||
|
key === "modalScreenId"
|
||||||
|
) {
|
||||||
|
const numId = typeof value === "number" ? value : parseInt(value);
|
||||||
|
if (!isNaN(numId) && numId > 0 && !referenced.includes(numId)) {
|
||||||
|
referenced.push(numId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 재귀 탐색
|
||||||
|
if (typeof value === "object" && value !== null) {
|
||||||
|
this.extractScreenIdsFromObject(value, referenced);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 화면 수집 (중복 제거, 재귀적 참조 추적)
|
* 화면 수집 (중복 제거, 재귀적 참조 추적)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue