diff --git a/ui/builder.html b/ui/builder.html index 8ef9ea9..6d04039 100644 --- a/ui/builder.html +++ b/ui/builder.html @@ -279,7 +279,7 @@ input,textarea,button,select{font-family:inherit} ποΈ CTStruct - v0.7 + v0.8 @@ -808,6 +808,7 @@ function renderCanvas(){ const p=pos.get(node.id); if(!p) return; const sel=node.id===selectedNodeId; const col=node.settings?.attributes?.collect==='true'; + const pl=node.settings?.attributes?.per_line; const vals=node.values.filter(v=>v.type!=='node').length; const kids=node.values.filter(v=>v.type==='node').length; const hint=[vals?`κ° ${vals}`:'',kids?`νμ ${kids}`:''].filter(Boolean).join(' Β· ')||'λΉμ΄μμ'; @@ -819,6 +820,7 @@ function renderCanvas(){ ${hint} + ${pl?`Γ${esc(pl)}`:''} β β @@ -950,9 +952,22 @@ function setCollect(nid, on){ refresh(); } +function setPerLine(nid, val){ + const n=nodeMap[nid]; if(!n) return; + const v=parseInt(val); + if(!n.settings.attributes) n.settings.attributes={}; + if(v>0) n.settings.attributes.per_line=String(v); + else { + delete n.settings.attributes.per_line; + if(!Object.keys(n.settings.attributes).length) delete n.settings.attributes; + } + renderCanvas(); updatePreview(); save(); +} + function renderStructSettings(node){ const nid=node.id, nl=node.nameNewline??true; const col=node.settings?.attributes?.collect==='true'; + const pl=node.settings?.attributes?.per_line||''; return ` @@ -965,6 +980,16 @@ function renderStructSettings(node){ π κ³ μ π₯ μμ§ + + ν μ€μ + + κ°μ© + `; }