Skip to content

Canvas 표 객체와 공통 표 편집 프로파일 연결 - #788

Open
developer-1px wants to merge 11 commits into
feat/785-sheet-applicationfrom
feat/787-canvas-sheet
Open

Canvas 표 객체와 공통 표 편집 프로파일 연결#788
developer-1px wants to merge 11 commits into
feat/785-sheet-applicationfrom
feat/787-canvas-sheet

Conversation

@developer-1px

Copy link
Copy Markdown
Owner

Canvas에서 표 객체를 생성하고 Bear·Sheet 앱과 동일한 SheetHand로 내부 셀을 편집합니다. 객체 선택에서는 위치·크기·복제·삭제를 조작하고, 더블클릭/F2로 셀 편집에 진입하며 Escape로 바깥 객체 선택에 복귀합니다. 셀 내용은 Canvas JSON 안에 저장되고 Canvas의 Undo/Redo와 JSON 재열기를 따릅니다.

  • Object Document: embedded-document 객체가 공간 정보와 내장 JSON payload를 보관합니다. documentType으로 payload 소유자를 구분하며 표 모델을 중복 정의하지 않습니다.
  • Editing: createCanvasSheetcreateObjectSheetEditor가 표 객체를 생성·연결합니다. createProjectedSheetEditor를 Markdown/Object 어댑터가 함께 소비해 projection·선택·부모 History lifecycle의 중복을 제거했습니다. 표 변경 한 번은 부모 문서 transaction 한 번입니다.
  • Affordance: GridEditingProfile, gridEditingProfiles, resolveGridEditActivation으로 입력 정책을 배치 환경과 분리합니다. 직접 타이핑의 첫 글자는 선택되지 않고 뒤에 이어 입력됩니다. 기존 내용 편집은 프로파일의 초기 선택 정책을 따릅니다.
  • Web/Sheet: 외부 텍스트/TSV 붙여넣기, 헤더 선택 후 활성 셀 포커스, CSS/SVG 배율을 제거한 리사이즈 좌표를 연결했습니다. 기본 표 UI와 편집 전후 형태를 유지합니다.
  • Canvas: CanvasSheetObject가 SVG 프레임과 활성화를 조합하며 셀 동작은 SheetHand에 위임합니다. 알 수 없는 내장 문서 타입은 지원하지 않음을 표시합니다.
  • 소유 패키지의 API·문서·Usage·Source 등록과 정본 소비 가드를 갱신했습니다. Host에는 fixture·문구·조합만 유지합니다.

검증:

  • build, 사이트 타입·정본 가드, Editing/Canvas/Affordance/Web 테스트 타입, workspace·아키텍처·문서·API 검사 통과. API reference 36개 패키지·1310 export를 확인했습니다.
  • Editing Sheet 19개, Canvas 95개, Object Document 61개, Affordance 177개, Web 128개, Markdown React 3개 통과.
  • 사이트 전체 실행 후 새 Source 의존 경로에 맞춰 기대 목록을 수정했고 해당 파일 21개를 재검증했습니다. 나머지 311개는 최초 실행에서 통과했습니다.
  • Pages build·site/HTTP 평가 통과.
  • Chrome: 신규 Canvas 표/공통 기본기 2개, 기존 Sheet/Bear 8개, 기존 Canvas 8개 시나리오 통과(setup 별도). Canvas 회귀 테스트의 과거 fixture 개수·위치·핸들 기대값과 준비 대기를 현재 fixture에 맞췄습니다.
  • 실제 abc 직접 입력, 외부 2×2 TSV, 헤더→방향키, 50% 축소 리사이즈, Canvas 생성→F2→셀 편집→Escape→부모 Undo/Redo→JSON 재열기, 편집 중 바깥 클릭 후 재진입을 확인했습니다.

좌표 보정은 축 정렬 CSS scale/SVG viewport에 한정하며 회전/skew는 지원하지 않습니다. 수식·여러 시트·파일 호환성·클라우드 동기화는 제외합니다. 실제 OS 한글 IME 조합과 원격 전체 CI는 실행하지 않았습니다. main 및 형제 레포의 기존 미커밋 작업은 변경하지 않았습니다.

PR #786을 base로 하는 후속 PR입니다.

Closes #787

@developer-1px

Copy link
Copy Markdown
Owner Author

표 생성 중 가로/세로 한 축만 드래그할 때 Invalid embedded document bounds/type으로 Canvas가 중단되는 오류를 수정했습니다. 같은 경로의 테스트 2개가 수정 전 실패하는 것을 확인했습니다.

원인: 미리보기의 한쪽 크기가 0인데 내장 문서 생성자가 양수만 수용했습니다. Object Document 생성자가 일반 도형과 동일하게 유한한 크기를 최소 1 layout 단위로 보정하도록 변경했습니다. 비유한 좌표 거부와 저장 문서의 양수 검증은 유지합니다.

검증: Canvas 97개·Object Document 61개, 테스트 타입 및 build 통과. Chrome에서 가로/세로/아주 짧은 드래그의 미리보기·생성·Undo와 기존 Canvas 표 편집/재열기 흐름까지 3개 시나리오(+setup)를 통과했습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant