MCPcopy Create free account
hub / github.com/MADEVAL/Oat-Table / #syncSelection

Method #syncSelection

src/table.js:243–265  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

241 }
242
243 #syncSelection() {
244 const visibleCheckboxes = this.#visibleRows()
245 .map(row => row.querySelector('[data-table-select-row]'))
246 .filter(checkbox => checkbox && !checkbox.disabled);
247 const selectedCheckboxes = this.#rowCheckboxes().filter(checkbox => checkbox.checked);
248
249 this.#rows.forEach(row => {
250 const checkbox = row.querySelector('[data-table-select-row]');
251 row.toggleAttribute('data-selected', Boolean(checkbox?.checked));
252 });
253
254 if (this.#selectAll) {
255 const visibleSelected = visibleCheckboxes.filter(checkbox => checkbox.checked).length;
256 this.#selectAll.checked = visibleCheckboxes.length > 0 && visibleSelected === visibleCheckboxes.length;
257 this.#selectAll.indeterminate = visibleSelected > 0 && visibleSelected < visibleCheckboxes.length;
258 }
259
260 if (this.#selectedStatus) {
261 const count = selectedCheckboxes.length;
262 this.#selectedStatus.value = String(count);
263 this.#selectedStatus.textContent = count === 1 ? '1 selected' : `${count} selected`;
264 }
265 }
266
267 #rowCheckboxes() {
268 return this.#rows

Callers 4

refreshMethod · 0.95
#setupSelectionMethod · 0.95
#applyFilterMethod · 0.95
#toggleVisibleRowsMethod · 0.95

Calls 2

#visibleRowsMethod · 0.95
#rowCheckboxesMethod · 0.95

Tested by

no test coverage detected