1(function(){'use strict'; 2const managed=new Map(), desktop=window.matchMedia('(min-width:768px)'); 3function columns(table){const occupied=[];let count=0;for(const row of table.rows){let col=0;for(const cell of row.cells){while(occupied[col]>0)col++;const width=cell.colSpan||1,height=cell.rowSpan===0?table.rows.length:cell.rowSpan;for(let i=0;i<width;i++)occupied[col+i]=Math.max(occupied[col+i]||0,height);col+=width;}count=Math.max(count,col,occupied.length);for(let i=0;i<occupied.length;i++)occupied[i]=Math.max(0,(occupied[i]||0)-1);}return Math.max(1,count);} 4function status(table,record){const overflow=record.box.scrollWidth>record.box.clientWidth+2;record.hint.hidden=!overflow;if(overflow){record.box.setAttribute('tabindex','0');record.box.setAttribute('role','region');record.box.setAttribute('aria-label','表ï¼å·¦å³ã«ã¹ã¯ãã¼ã«ã§ãã¾ã');}else{record.box.removeAttribute('tabindex');record.box.removeAttribute('role');record.box.removeAttribute('aria-label');}} 5const resize=typeof ResizeObserver==='function'?new ResizeObserver(entries=>{for(const e of entries){const table=e.target.tagName==='TABLE'?e.target:e.target.querySelector('table');const record=table&&managed.get(table);if(record)status(table,record);}}):null; 6function enhance(table){if(table.closest('#wpadminbar')||table.getAttribute('role')==='presentation'||table.getAttribute('role')==='none'||table.parentElement.closest('table'))return; 7let record=managed.get(table);if(!record){const prior=table.parentElement.previousElementSibling;const priorHint=prior&&prior.classList.contains('dmtcs-table-hint')?prior:null,priorHidden=priorHint?priorHint.hidden:false;if(priorHint)priorHint.hidden=true;const box=document.createElement('div'),hint=document.createElement('p');box.className='dmtcs-table-scroll';hint.className='dmtcs-responsive-table-hint';hint.textContent='â å·¦å³ã«ã¹ã¯ãã¼ã«ãã¦ã覧ããã ãã¾ã â';hint.hidden=true;table.before(hint,box);box.append(table);record={box,hint,priorHint,priorHidden,oldMin:table.style.getPropertyValue('--dmtcs-table-min')};managed.set(table,record);table.classList.add('dmtcs-responsive-table');if(resize){resize.observe(box);resize.observe(table);}} 8const n=columns(table);table.classList.toggle('dmtcs-table-wide',n>2);table.style.setProperty('--dmtcs-table-min',Math.min(1200,n*160)+'px');status(table,record);} 9function restore(table,record){if(resize){resize.unobserve(table);resize.unobserve(record.box);}if(record.box.parentNode&&record.box.contains(table))record.box.replaceWith(table);record.hint.remove();table.classList.remove('dmtcs-responsive-table','dmtcs-table-wide');if(record.oldMin)table.style.setProperty('--dmtcs-table-min',record.oldMin);else table.style.removeProperty('--dmtcs-table-min');if(record.priorHint)record.priorHint.hidden=record.priorHidden;managed.delete(table);} 10// Measure the original mobile width first; leave already-wide tables untouched. 11function fitNarrowMobileTables(){ 12 document.querySelectorAll('.dmtcs-mobile-fill').forEach(t=>t.classList.remove('dmtcs-mobile-fill')); 13 document.querySelectorAll('.dmtcs-mobile-table-container').forEach(t=>t.classList.remove('dmtcs-mobile-table-container')); 14 if(desktop.matches)return; 15 const tables=Array.from(document.querySelectorAll('table')).filter(t=>!t.closest('#wpadminbar')&&!['presentation','none'].includes(t.getAttribute('role'))&&!t.parentElement.closest('table')); 16 for(const table of tables){const parent=table.parentElement;if(parent.matches('.table-wrap,.table_wrapper,.table_wrapper2,.table_wrapper3,.wp-block-table'))parent.classList.add('dmtcs-mobile-table-container');} 17 const narrow=tables.filter(table=>{const parent=table.parentElement,style=getComputedStyle(parent),space=parent.clientWidth-parseFloat(style.paddingLeft||0)-parseFloat(style.paddingRight||0);return space>0&&table.getBoundingClientRect().width<space-1;}); 18 narrow.forEach(table=>table.classList.add('dmtcs-mobile-fill')); 19} 20let queued=false;function scan(){queued=false;for(const [table,record] of managed){if(!desktop.matches||!table.isConnected)restore(table,record);}fitNarrowMobileTables();if(desktop.matches)document.querySelectorAll('table').forEach(enhance);}function queue(){if(!queued){queued=true;requestAnimationFrame(scan);}} 21desktop.addEventListener('change',queue);scan();new MutationObserver(records=>{if(records.some(r=>Array.from(r.addedNodes).some(n=>n.nodeType===1&&(n.matches('table,thead,tbody,tr,th,td')||n.querySelector('table')))
21))queue();}).observe(document.body,{childList:true,subtree:true});window.addEventListener('resize',queue,{passive:true});window.addEventListener('load',queue,{once:true});if(document.fonts)document.fonts.ready.then(queue); 22})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.