UNPKG

ractive-ez-table

Version:
54 lines (41 loc) 1.18 kB
import TableIterator from '../TableIterator.js'; class Cursor { constructor(table) { this.table = table; this.cursorItem = null; }; toggleRange(item) { const isSelected = this.table.get("selectedItems").indexOf(this.cursorItem) != -1; const method = isSelected ? "selectItem" : "unselectItem"; let iterator = new TableIterator(this.table); let first = null; let last = null; while (!iterator.end()) { const iteratedItem = iterator.next(); if (iteratedItem == item) first = iteratedItem; if (iteratedItem == this.cursorItem) last = iteratedItem; if (first || last) this.table[method](iteratedItem); if (first && last) break; } }; handleClick(event, item) { if (event.ctrlKey) { this.table.toggleItem(item); } else if (event.shiftKey) { this.toggleRange(item); } else { this.table.clearSelection(); this.table.selectItem(item); } this.cursorItem = item; }; handleKey(event, item) { /* TODO up => change cursor row up dn => change cursor row dn shift + up => select row up shuft + dn => select row dn */ }; }; export default Cursor;