Files
Aislo/B07_DesignDetail/openwebcad/test/helpers/init-application.ts
T
eomsangdonandClaude Fable 5 6e195afb69 feat(B07,B08): 워크플로 순서 교환 — 상세설계를 수량산출 앞으로
횡단설계(B06) 다음을 상세설계 → 수량산출 → 설계도서 순으로 재배열하고,
폴더 번호가 흐름과 일치하도록 이름을 맞바꾼다.

- B08_DesignDetail → B07_DesignDetail, B07_Quantity → B08_Quantity
  (파일 접두어·식별자·라우트·locale 키 전량 스왑)
- STAGE_KEYS 4=DESIGN_DETAIL, 5=QUANTITY 스왑 + 라우터 stage 리터럴 교체
- CAD 마운트 /b08-cad → /b07-cad (main.py·vite proxy·iframe URL),
  openwebcad Toolbar 라벨 B07로 수정 후 재빌드
- 유지: openwebcad postMessage 프로토콜 aislo:b08:*·패키지명(내부 식별자)
- 기존 프로젝트 storage 폴더 rename + project_manifest 갱신,
  DB project_workflow_stages stage_no 4↔5 행 스왑 완료

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-29 16:16:46 +09:00

26 lines
1.2 KiB
TypeScript

import {Point} from '@flatten-js/core';
import {Actor} from 'xstate';
import type {ScreenCanvasDrawController} from '../../src/drawControllers/screenCanvas.drawController';
import {InputController} from '../../src/inputController/input-controller';
import {setActiveToolActor, setEntities, setInputController, setScreenCanvasDrawController,} from '../../src/state';
import {Tool} from '../../src/tools';
import {TOOL_STATE_MACHINES} from '../../src/tools/tool.consts';
import {ScreenCanvasDrawController as ScreenCanvasDrawControllerMock} from '../mocks/drawControllers/screenCanvas.drawController';
import {CANVAS_HEIGHT, CANVAS_WIDTH} from './tests.consts';
export function initApplication(): InputController {
const inputController = new InputController();
setInputController(inputController);
setEntities([], true); // Creates the first undo entry
const canvasSize = new Point(CANVAS_WIDTH, CANVAS_HEIGHT);
const lineToolActor = new Actor(TOOL_STATE_MACHINES[Tool.LINE]);
lineToolActor.start();
setActiveToolActor(lineToolActor);
setScreenCanvasDrawController(
new ScreenCanvasDrawControllerMock(null, canvasSize) as unknown as ScreenCanvasDrawController
);
return inputController;
}