Sha256: 3696401ca21538802e487c4f716c585e675b39fef5f2538b37768c8f9ed7a27c
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
function createSelectAllHandler(component, target, listElements) { return function() { for (let element of listElements) { element.checked = target.checked; } } } function createTableRowSelectHandler(component, listElements, selectAll) { return function() { let checked = 0; let unchecked = 0; for (let element of listElements) { element.checked ? checked++ : unchecked++; } selectAll.indeterminate = (checked && unchecked); selectAll.checked = (checked && !unchecked); } } export function initTables() { console.log('\tTables'); let components = document.querySelectorAll('.mdl-data-table'); if (components) { for (let component of components) { let selectAllRow = component.querySelector('.v-checkbox--select-control'); let selectableRows = component.querySelectorAll('.v-table-item--selectable-checkbox'); if (selectAllRow && selectableRows) { selectAllRow.addEventListener('change', createSelectAllHandler(component, selectAllRow, selectableRows)); for (let element of selectableRows) { element.addEventListener('change', createTableRowSelectHandler(component, selectableRows, selectAllRow)); } } } } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
voom-presenters-0.2.0 | views/mdc/assets/js/components/data-tables.js |