UNPKG

@almaobservatory/ngx-datatable

Version:

ngx-datatable is an Angular table grid component for presenting large and complex data.

40 lines 4.74 kB
export function selectRows(selected, row, comparefn) { const selectedIndex = comparefn(row, selected); if (selectedIndex > -1) { selected.splice(selectedIndex, 1); } else { selected.push(row); } return selected; } export function selectRowsBetween(selected, rows, index, prevIndex, comparefn) { const reverse = index < prevIndex; for (let i = 0; i < rows.length; i++) { const row = rows[i]; const greater = i >= prevIndex && i <= index; const lesser = i <= prevIndex && i >= index; let range = { start: 0, end: 0 }; if (reverse) { range = { start: index, end: prevIndex }; } else { range = { start: prevIndex, end: index + 1 }; } if ((reverse && lesser) || (!reverse && greater)) { // 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) { selected.push(row); } } } return selected; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3dpbWxhbmUvbmd4LWRhdGF0YWJsZS9zcmMvbGliL3V0aWxzL3NlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQWUsRUFBRSxHQUFRLEVBQUUsU0FBYztJQUNsRSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRS9DLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3RCLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ25DO1NBQU07UUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsUUFBZSxFQUNmLElBQVcsRUFDWCxLQUFhLEVBQ2IsU0FBaUIsRUFDakIsU0FBYztJQUVkLE1BQU0sT0FBTyxHQUFHLEtBQUssR0FBRyxTQUFTLENBQUM7SUFFbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7UUFFNUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sRUFBRTtZQUNYLEtBQUssR0FBRztnQkFDTixLQUFLLEVBQUUsS0FBSztnQkFDWixHQUFHLEVBQUUsU0FBUzthQUNmLENBQUM7U0FDSDthQUFNO1lBQ0wsS0FBSyxHQUFHO2dCQUNOLEtBQUssRUFBRSxTQUFTO2dCQUNoQixHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUM7YUFDZixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEVBQUU7WUFDaEQsMERBQTBEO1lBQzFELDRDQUE0QztZQUM1QyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0Y7S0FDRjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc2VsZWN0Um93cyhzZWxlY3RlZDogYW55W10sIHJvdzogYW55LCBjb21wYXJlZm46IGFueSkge1xyXG4gIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBjb21wYXJlZm4ocm93LCBzZWxlY3RlZCk7XHJcblxyXG4gIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcclxuICAgIHNlbGVjdGVkLnNwbGljZShzZWxlY3RlZEluZGV4LCAxKTtcclxuICB9IGVsc2Uge1xyXG4gICAgc2VsZWN0ZWQucHVzaChyb3cpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHNlbGVjdGVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0Um93c0JldHdlZW4oXHJcbiAgc2VsZWN0ZWQ6IGFueVtdLFxyXG4gIHJvd3M6IGFueVtdLFxyXG4gIGluZGV4OiBudW1iZXIsXHJcbiAgcHJldkluZGV4OiBudW1iZXIsXHJcbiAgY29tcGFyZWZuOiBhbnlcclxuKTogYW55W10ge1xyXG4gIGNvbnN0IHJldmVyc2UgPSBpbmRleCA8IHByZXZJbmRleDtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCByb3cgPSByb3dzW2ldO1xyXG4gICAgY29uc3QgZ3JlYXRlciA9IGkgPj0gcHJldkluZGV4ICYmIGkgPD0gaW5kZXg7XHJcbiAgICBjb25zdCBsZXNzZXIgPSBpIDw9IHByZXZJbmRleCAmJiBpID49IGluZGV4O1xyXG5cclxuICAgIGxldCByYW5nZSA9IHsgc3RhcnQ6IDAsIGVuZDogMCB9O1xyXG4gICAgaWYgKHJldmVyc2UpIHtcclxuICAgICAgcmFuZ2UgPSB7XHJcbiAgICAgICAgc3RhcnQ6IGluZGV4LFxyXG4gICAgICAgIGVuZDogcHJldkluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByYW5nZSA9IHtcclxuICAgICAgICBzdGFydDogcHJldkluZGV4LFxyXG4gICAgICAgIGVuZDogaW5kZXggKyAxXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKChyZXZlcnNlICYmIGxlc3NlcikgfHwgKCFyZXZlcnNlICYmIGdyZWF0ZXIpKSB7XHJcbiAgICAgIC8vIGlmIGluIHRoZSBwb3NpdGl2ZSByYW5nZSB0byBiZSBhZGRlZCB0byBgc2VsZWN0ZWRgLCBhbmRcclxuICAgICAgLy8gbm90IGFscmVhZHkgaW4gdGhlIHNlbGVjdGVkIGFycmF5LCBhZGQgaXRcclxuICAgICAgaWYgKGkgPj0gcmFuZ2Uuc3RhcnQgJiYgaSA8PSByYW5nZS5lbmQpIHtcclxuICAgICAgICBzZWxlY3RlZC5wdXNoKHJvdyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBzZWxlY3RlZDtcclxufVxyXG4iXX0=