diff --git a/B05_Profile/B05_Profile_UI_Profile_Panel.ts b/B05_Profile/B05_Profile_UI_Profile_Panel.ts index 08880c4b..23da8778 100644 --- a/B05_Profile/B05_Profile_UI_Profile_Panel.ts +++ b/B05_Profile/B05_Profile_UI_Profile_Panel.ts @@ -14,7 +14,6 @@ import type { SectionDetailResponse } from "../B06_Section/B06_Section_Api_Fetch import { createWorkflowPanelHandle } from "@ui/ui_template_overlay"; import { createPanelResizer } from "@ui/ui_template_resizer"; import { createDrainagePanel } from "./B05_Profile_UI_Drainage_Panel"; -import type { PipeFacility, PipeSource } from "../B04_PreProcess/B04_PreProcess_Api_Fetch"; import type { StructureInstance, StructureType } from "./B05_Profile_Api_Structures"; import { createProfileTableOverlay, @@ -95,47 +94,10 @@ const CROSS_PREVIEW_DEBOUNCE_MS = 60; * 편집 기능을 끄고(지반선·계획선 차트만 표시) 재계산을 안내하는 편이 안전하다. */ -/** 종단 테이블 구조물 라인·배수유역도가 Page로 올려 보내는 알림. */ -export interface RouteProfilePanelCallbacks { - /** 관 매설 목록이 바뀜 — 화면의 배관 투영·통합 목록을 이 목록으로 맞춘다. - * 유효직경(mm)은 관경 자동 지정, 시설 종류·구간은 통합 표시에 쓴다(2026-08-17). */ - onPipesChanged?: ( - pipes: Array<{ - chainage_m: number; - effective_diameter_mm: number | null; - /** 담당 유역의 설계유량(㎥/s) — 물넘이·세월교 개략 단면의 입력. */ - design_flow_m3s?: number | null; - facility: PipeFacility; - start_m?: number; - end_m?: number; - source?: PipeSource; - options?: Record; - }>, - ) => void; - /** 테이블에서 구조물 라인을 끌어 옮김. */ - onStructureMove?: (fromChainageM: number, toChainageM: number, station: IrregularStation) => void; - /** 테이블 우클릭으로 구조물(배관 포함)을 지움. */ - onStructureRemove?: (station: IrregularStation) => void; - /** 테이블 빈 자리 우클릭으로 배관을 넣음. */ - onPipeAdd?: (chainageM: number) => void; - /** 종단·배수유역도 우클릭으로 배관 외 구조물(기성막이/대피로/기타)을 넣음. */ - onStructureAdd?: (chainageM: number, type: "기성막이" | "대피로" | "기타") => void; - /** 구조물 라인을 눌러 고름. */ - onIrregularSelect?: (station: IrregularStation) => void; - /** 종단 그래프에서 구조물 서클마크를 고름(해제면 null). */ - onStructureSelect?: (structureId: string | null) => void; - /** 종단 그래프에서 구조물 서클마크를 끌어 옮김. */ - onStructureMarkMove?: (structureId: string, toChainageM: number) => void; - /** 종단 그래프 우클릭으로 레지스트리 타입을 지정해 구조물을 넣음. */ - onStructureTypeAdd?: (chainageM: number, typeId: string) => void; - /** 배수유역도에서 유역을 고름 — 그 관의 누가거리(해제면 null). 그래프·사이드 패널을 맞춘다. */ - onBasinSelected?: (chainageM: number | null) => void; - /** 배수유역도에서 관 마커를 고름(유역 없는 관 포함) — 전 화면 동기화용(2026-08-17). */ - onPipeSelected?: (chainageM: number | null) => void; - /** 계획선 편집 프리뷰가 공유 캐시의 횡단 설계(설계선 포함)를 갱신한 뒤 — - * 3D 코리도 등 파생 표시 재빌드용(2026-08-23). */ - onCrossDesignsUpdated?: () => void; -} +/** 콜백 타입은 700줄 제한으로 `_Panel_Types` 로 옮겼다 — 옛 임포트 경로가 그대로 + * 동작하도록 여기서 다시 내보낸다(2026-09-04). */ +import type { RouteProfilePanelCallbacks } from "./B05_Profile_UI_Profile_Panel_Types"; +export type { RouteProfilePanelCallbacks } from "./B05_Profile_UI_Profile_Panel_Types"; export function createRouteProfilePanel( projectId: string, diff --git a/B05_Profile/B05_Profile_UI_Profile_Panel_Types.ts b/B05_Profile/B05_Profile_UI_Profile_Panel_Types.ts new file mode 100644 index 00000000..78c08118 --- /dev/null +++ b/B05_Profile/B05_Profile_UI_Profile_Panel_Types.ts @@ -0,0 +1,52 @@ +/* ============================================================================= + * B05_Profile_UI_Profile_Panel_Types.ts + * 종단 패널이 Page 로 올려 보내는 알림(콜백) 타입. + * + * `B05_Profile_UI_Profile_Panel` 이 700줄을 넘겨 **타입만** 떼어낸 조각이다(2026-09-04). + * 이름·필드·주석은 그대로이고, 패널이 다시 `export` 해 옛 임포트 경로도 그대로 동작한다. + * ========================================================================== */ + +import type { PipeFacility, PipeSource } from "../B04_PreProcess/B04_PreProcess_Api_Fetch"; +import type { IrregularStation } from "./B05_Profile_UI_IrregularStations"; + +/** 종단 테이블 구조물 라인·배수유역도가 Page로 올려 보내는 알림. */ +export interface RouteProfilePanelCallbacks { + /** 관 매설 목록이 바뀜 — 화면의 배관 투영·통합 목록을 이 목록으로 맞춘다. + * 유효직경(mm)은 관경 자동 지정, 시설 종류·구간은 통합 표시에 쓴다(2026-08-17). */ + onPipesChanged?: ( + pipes: Array<{ + chainage_m: number; + effective_diameter_mm: number | null; + /** 담당 유역의 설계유량(㎥/s) — 물넘이·세월교 개략 단면의 입력. */ + design_flow_m3s?: number | null; + facility: PipeFacility; + start_m?: number; + end_m?: number; + source?: PipeSource; + options?: Record; + }>, + ) => void; + /** 테이블에서 구조물 라인을 끌어 옮김. */ + onStructureMove?: (fromChainageM: number, toChainageM: number, station: IrregularStation) => void; + /** 테이블 우클릭으로 구조물(배관 포함)을 지움. */ + onStructureRemove?: (station: IrregularStation) => void; + /** 테이블 빈 자리 우클릭으로 배관을 넣음. */ + onPipeAdd?: (chainageM: number) => void; + /** 종단·배수유역도 우클릭으로 배관 외 구조물(기성막이/대피로/기타)을 넣음. */ + onStructureAdd?: (chainageM: number, type: "기성막이" | "대피로" | "기타") => void; + /** 구조물 라인을 눌러 고름. */ + onIrregularSelect?: (station: IrregularStation) => void; + /** 종단 그래프에서 구조물 서클마크를 고름(해제면 null). */ + onStructureSelect?: (structureId: string | null) => void; + /** 종단 그래프에서 구조물 서클마크를 끌어 옮김. */ + onStructureMarkMove?: (structureId: string, toChainageM: number) => void; + /** 종단 그래프 우클릭으로 레지스트리 타입을 지정해 구조물을 넣음. */ + onStructureTypeAdd?: (chainageM: number, typeId: string) => void; + /** 배수유역도에서 유역을 고름 — 그 관의 누가거리(해제면 null). 그래프·사이드 패널을 맞춘다. */ + onBasinSelected?: (chainageM: number | null) => void; + /** 배수유역도에서 관 마커를 고름(유역 없는 관 포함) — 전 화면 동기화용(2026-08-17). */ + onPipeSelected?: (chainageM: number | null) => void; + /** 계획선 편집 프리뷰가 공유 캐시의 횡단 설계(설계선 포함)를 갱신한 뒤 — + * 3D 코리도 등 파생 표시 재빌드용(2026-08-23). */ + onCrossDesignsUpdated?: () => void; +}