MCPcopy Create free account
hub / github.com/bywwcnll/StreamPanel / initColumnResizers

Function initColumnResizers

devtools/panel.bundle.js:2399–2459  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2397 // Column resizer module
2398
2399 function initColumnResizers() {
2400 const table = document.getElementById('message-table');
2401 if (!table) return;
2402
2403 const resizers = table.querySelectorAll('.col-resizer');
2404 let currentResizer = null;
2405 let startX = 0;
2406 let startWidth = 0;
2407 let headerCell = null;
2408 let colClass = '';
2409
2410 resizers.forEach(resizer => {
2411 resizer.addEventListener('mousedown', (e) => {
2412 e.preventDefault();
2413 e.stopPropagation();
2414
2415 currentResizer = resizer;
2416 headerCell = resizer.parentElement;
2417 colClass = resizer.dataset.col;
2418 startX = e.pageX;
2419 startWidth = headerCell.offsetWidth;
2420
2421 resizer.classList.add('resizing');
2422 document.body.style.cursor = 'col-resize';
2423 document.body.style.userSelect = 'none';
2424
2425 document.addEventListener('mousemove', onMouseMove);
2426 document.addEventListener('mouseup', onMouseUp);
2427 });
2428 });
2429
2430 function onMouseMove(e) {
2431 if (!currentResizer || !headerCell || !colClass) return;
2432
2433 const diff = e.pageX - startX;
2434 const newWidth = Math.max(40, startWidth + diff);
2435
2436 table.style.setProperty('--col-' + colClass + '-width', newWidth + 'px');
2437
2438 if (colClass === 'data') {
2439 const dataCells = table.querySelectorAll('.col-data');
2440 dataCells.forEach(cell => {
2441 cell.style.flex = 'none';
2442 });
2443 }
2444 }
2445
2446 function onMouseUp() {
2447 if (currentResizer) {
2448 currentResizer.classList.remove('resizing');
2449 }
2450 currentResizer = null;
2451 headerCell = null;
2452 colClass = '';
2453 document.body.style.cursor = '';
2454 document.body.style.userSelect = '';
2455
2456 document.removeEventListener('mousemove', onMouseMove);

Callers 2

initModulesFunction · 0.90
initModulesFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected