크라우니 오피스 슬라이드 punch #3 — 썸네일 드래그 재정렬
개요
판정표(spec/슬라이드기능-판정표.md) "슬라이드 순서변경(드래그)=없음" 해소. state.slides[] 는
이미 진짜 배열이라 splice 배선만으로 완성. crownyBridge.js §20(installSlideBridge) 확장, 앱 번들 무수정.
무엇을 했는지
- 한선씨 정본
bundle/office/bridge/슬라이드재정렬.한선: 배열이동(뽑아서 삽입)·선택보정(닫힌형
산술, 지표배열 실이동과 동치 교차검증)·내용보존(4필드 레코드 통째 이동). hanseonc_high 자체시험
28/28.
- JS 배선 crownyBridge.js §20 확장(+142줄): 캡처단계 mousedown/mousemove/mouseup 드래그 추적
(프레임워크가 draggable 위임 안 넘김 — 시트 punch #8 캡처 관용구). 임계 4px 전엔 클릭(선택) 양보,
드래그 성립 시 위임 click 캡처 스왈로. dup/del 액션 위 mousedown 은 드래그 미개시. 드롭 인디케이터
(inset boxShadow 라인, 레이아웃 밀림 없음)+드래그행 흐리게. 드롭=slides splice+선택보정 setState.
window.__crownySlideReorder(from,to) 노출(테스트/프로그램 경로).
- 선택보정 규칙: cur==from→to / 아니면 (from<cur면 -1) 후 (to<=cur면 +1). 선택 슬라이드 내용 유지.
게이트 결과
- hanseonc_high 슬라이드재정렬.한선 28/28 PASS / CrownyAI 3초 생존 OK
- 라이브 CDP(:9333 headless, 오피스앱 번들) 17/17 PASS: ①앞→뒤 splice+선택보정+내용보존
②뒤→앞 ③경계(맨앞/맨뒤) ④실마우스드래그(Input.dispatchMouseEvent press→move→release,
before[title,bullets,split,chart]→after[bullets,split,title,chart])+드롭 인디케이터 표시/정리
⑤임계미달 클릭=선택(순서 불변)
- 문서 회귀 27/27 PASS(회귀실행.sh :9333) + 슬라이드 #1(캔버스 제목 편집)·#2(발표자 노트 편집)
writeback 무회귀 라이브 확증
- dist/CrownyAI.app 브릿지 미러 동기(prior #1/#2 관행), 시트 §19 무수정.
관련 파일
- /Users/ef/crownybrowser/bundle/office/bridge/슬라이드재정렬.한선 (정본, 28/28)
- /Users/ef/crownybrowser/bundle/office/bridge/crownyBridge.js §20 (punch #3 배선)
- /Users/ef/crownybrowser/dist/CrownyAI.app/Contents/Resources/office/bridge/crownyBridge.js (동기됨)
잔여 이슈
- 없음(punch #3 완결). 다음 슬라이드 punch = #4 레이아웃 템플릿 실적용.