code wiki / (root) / nx_release_view_emit.nx

nx_release_view_emit.nx source

↩ module page · 4 lines · 2004 B

1// Browser DOM adapter; complete selection and ordering are computed by the native release collector. 2func nrv_source() -> *u8 { 3 return "(function(){\n const root=document.getElementById('nxrelease');if(!root)return;\n const list=root.querySelector('ul');if(!list)return;\n const entries=Array.from(list.children);\n const controls=document.createElement('section');\n const label=document.createElement('label');label.textContent='Search full release history ';\n const search=document.createElement('input');search.type='search';search.placeholder='Search every retained change';label.append(search);\n const status=document.createElement('output');status.setAttribute('role','status');\n const preview=document.createElement('ul');\n if(entries.length)preview.append(entries[0].cloneNode(true));\n const details=document.createElement('details');\n const summary=document.createElement('summary');summary.textContent='Expand full history ('+entries.length+' changes, newest first)';\n details.append(summary);\n list.replaceWith(controls);details.append(list);controls.append(label,status,preview,details);\n for(const event of ['keydown','keyup','pointerdown','pointerup','click'])controls.addEventListener(event,e=>e.stopPropagation());\n const update=()=>{\n const query=search.value.trim().toLocaleLowerCase();let matches=0;\n for(const entry of entries){const match=!query||entry.textContent.toLocaleLowerCase().includes(query);entry.hidden=!match;if(match)matches++;}\n preview.hidden=!!query||details.open;\n status.textContent=query?matches+' of '+entries.length+' changes match':'Latest change preview; '+entries.length+' changes retained';\n if(query)details.open=true;\n };\n search.addEventListener('input',update);details.addEventListener('toggle',update);update();\n if(window.__nx_release){window.__nx_release.listed=entries.length;window.__nx_release.historyOrder='epoch-descending';window.__nx_release.searchScope='all-retained-rendered-release-entries';}\n})();\n" as *u8 4}