--- type: page-frontend status: stable page_id: B03_FileInput related_pages: ["[[B03_FileInput/B03_backend]]", "[[B03_FileInput/B03_api]]", "[[B03_FileInput/B03_db]]", "[[las_free_sheet_surface]]", "[[architecture/project_map]]", "[[architecture/workflow_data_flow]]"] last_updated: 2026-08-30 source: ["docs/raw/verification/2026-07-31_verify_B03_planned_route_csv.md", "docs/raw/verification/2026-08-29_verify_B03_reupload_reanalysis_cache.md"] --- # B03_FileInput — Frontend `las_free` 토글은 LAS 카드와 필수검증을 비활성화하고 계획노선·도엽등고선만으로 WF1을 실행한다. 상세 계약은 [[las_free_sheet_surface]]를 따른다. ## 페이지·업로드 흐름 | 항목 | 위치 | 역할 | |---|---|---| | `renderB03FileInput()` | `B03_FileInput_UI_Page.ts:52` | 일반업무 레이아웃(`createGeneralLayout`) 적용 및 계획노선 CSV 선택 필수 입력 영역 조립 | | 청크 세션 생성 | `B03_FileInput_UI_Page.ts` | 대용량 파일을 청크 업로드로 시작 | | 청크 병합 완료 | `B03_FileInput_UI_Page.ts` | 서버 병합 결과를 상태에 저장 | | 필수 파일 검증 | `B03_FileInput_UI_Page.ts` | 계획노선 CSV 누락/오류 시 B04 이동 버튼 차단 | | WF1 진행률 폴링 | `B03_FileInput_UI_Page.ts` | 분석 상태와 진행률 갱신 | | 업로드 완료 캐시 정리 | `B03_FileInput_UI_Page.ts:71` | route 최신값·section detail·preload 표식을 제거해 B05가 재분석 결과를 조회 | | B04 이동 | `B03_FileInput_UI_Page.ts` | WF1 및 필수 계획노선 검증 완료 시 `ROUTES.B04_WF1_SURFACE`로 이동 | ## UI 지원 유틸리티 (분할 완료) | 항목 | 위치 | 역할 | |---|---|---| | 카드 템플릿 및 포맷터 | `B03_FileInput_UI_Support.ts` | UI 생성 템플릿 및 파일 크기/ETA 포맷터 등 분리하여 단일 파일 700줄 제한 준수 | ## API 클라이언트 | 항목 | 위치 | 역할 | |---|---|---| | `uploadProjectFiles()` | `B03_FileInput_Api_Fetch.ts:60` | 계획노선 CSV 및 지형 다중 파일 업로드 | | `createUploadSession()` | `B03_FileInput_Api_Fetch.ts:82` | 청크 세션 생성 | | `uploadFileChunk()` | `B03_FileInput_Api_Fetch.ts:100` | 단일 청크 전송 | | `finalizeUploadSession()` | `B03_FileInput_Api_Fetch.ts:119` | 청크 병합 요청 | | `fetchUploadStatus()` | `B03_FileInput_Api_Fetch.ts:133` | 청크 업로드 상태 조회 | | `checkWF1AnalysisStatus()` | `B03_FileInput_Api_Fetch.ts:154` | WF1 분석 상태 조회 | ## 브라우저 상태·오프라인 보조 | 항목 | 위치 | 역할 | |---|---|---| | `loadB03ProjectState()` | `B03_FileInput_State.ts:23` | 프로젝트별 저장 상태 복원 | | `saveB03UploadedFile()` | `B03_FileInput_State.ts:34` | 업로드 파일 결과 저장 | | `updateB03AnalysisState()` | `B03_FileInput_State.ts:53` | 분석 상태·진행률 저장 | | `restoreB03ProjectState()` | `B03_FileInput_State.ts:71` | 재진입 시 상태와 완료 콜백 복원 | 공통 UI는 [[ui_templates]], 단계 상태는 [[workflow_state]]를 참조한다.