UNPKG

angular2-data-table

Version:

angular2-data-table is a Angular2 component for presenting large and complex data.

52 lines 1.66 kB
"use strict"; function selectRows(selected, row, comparefn) { var selectedIndex = comparefn(row, selected); if (selectedIndex > -1) { selected.splice(selectedIndex, 1); } else { selected.push(row); } return selected; } exports.selectRows = selectRows; function selectRowsBetween(selected, rows, index, prevIndex, comparefn) { var reverse = index < prevIndex; for (var i = 0, len = rows.length; i < len; i++) { var row = rows[i]; var greater = i >= prevIndex && i <= index; var lesser = i <= prevIndex && i >= index; var range = { start: 0, end: 0 }; if (reverse) { range = { start: index, end: (prevIndex - index) }; } else { range = { start: prevIndex, end: index + 1 }; } if ((reverse && lesser) || (!reverse && greater)) { var idx = comparefn(row, selected); // if reverse shift selection (unselect) and the // row is already selected, remove it from selected if (reverse && idx > -1) { selected.splice(idx, 1); continue; } // if in the positive range to be added to `selected`, and // not already in the selected array, add it if (i >= range.start && i < range.end) { if (idx === -1) { selected.push(row); } } } } return selected; } exports.selectRowsBetween = selectRowsBetween; //# sourceMappingURL=selection.js.map