- 기둥·말뚝 입력을 한 카드로 통합(공통 입력, 구간별 예외 보존, 횡철근 표) - 현장타설 실배근 · 삽도 · 수량을 화면에 연결하고 프로젝트 저장 · 복원 - 상단 헤더를 한 줄로 축약(상태 축약, 파일 메뉴, 말줄임) - 디자인 검토 반영(가져오기 범위, ③ 모델 높이 · 접기, 검토 항목 이동) - 화면 검증 스크립트(verify-unified-input · verify-design-fixes 등) 보관 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
22 lines
1.5 KiB
JavaScript
22 lines
1.5 KiB
JavaScript
// Read focused-control and native-menu behaviour in the last verification tab.
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
(async () => {
|
|
const pages = await (await fetch('http://127.0.0.1:9444/json/list')).json();
|
|
const page = pages.find(p=>p.url==='http://127.0.0.1:5173/');
|
|
const ws = new WebSocket(page.webSocketDebuggerUrl);
|
|
await new Promise(r=>ws.onopen=r);
|
|
let seq=0; const pending=new Map();
|
|
ws.onmessage=({data})=>{const m=JSON.parse(data);if(pending.has(m.id)){pending.get(m.id)(m.result);pending.delete(m.id);}};
|
|
const send=(method,params={})=>new Promise(r=>{const id=++seq;pending.set(id,r);ws.send(JSON.stringify({id,method,params}));});
|
|
const ev=async expression=>(await send('Runtime.evaluate',{expression,returnByValue:true})).result.value;
|
|
const inspect=`({open:document.getElementById('file-menu').open,active:document.activeElement.outerHTML,summaryTab:document.querySelector('#file-menu summary').tabIndex})`;
|
|
const result={before:await ev(inspect)};
|
|
await ev(`document.querySelector('#file-menu summary').focus()`);
|
|
await send('Input.dispatchKeyEvent',{type:'keyDown',key:'Enter',code:'Enter',text:'\r',windowsVirtualKeyCode:13});
|
|
await send('Input.dispatchKeyEvent',{type:'keyUp',key:'Enter',code:'Enter',windowsVirtualKeyCode:13});
|
|
result.after=await ev(inspect);
|
|
fs.writeFileSync(path.resolve(__dirname,'../.verify/unified-input-20261106/keyboard-diagnosis.json'),JSON.stringify(result,null,2));
|
|
console.log(result);ws.close();
|
|
})().catch(e=>{console.error(e);process.exitCode=1;});
|