/*\ title: $:/core/modules/filters/listops.js type: application/javascript module-type: filteroperator Filter operators for manipulating the current selection list \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Reverse list */ exports.reverse = function(source,operator,options) { var results = []; source(function(tiddler,title) { results.unshift(title); }); return results; }; /* First entry/entries in list */ exports.first = function(source,operator,options) { var count = parseInt(operator.operand) || 1, results = []; source(function(tiddler,title) { results.push(title); }); return results.slice(0,count); }; /* Last entry/entries in list */ exports.last = function(source,operator,options) { var count = parseInt(operator.operand) || 1, results = []; source(function(tiddler,title) { results.push(title); }); return results.slice(-count); }; /* All but the first entry/entries of the list */ exports.rest = function(source,operator,options) { var count = parseInt(operator.operand) || 1, results = []; source(function(tiddler,title) { results.push(title); }); return results.slice(count); }; exports.butfirst = exports.rest; exports.bf = exports.rest; /* All but the last entry/entries of the list */ exports.butlast = function(source,operator,options) { var count = parseInt(operator.operand) || 1, results = []; source(function(tiddler,title) { results.push(title); }); return results.slice(0,-count); }; exports.bl = exports.butlast; /* The nth member of the list */ exports.nth = function(source,operator,options) { var count = parseInt(operator.operand) || 1, results = []; source(function(tiddler,title) { results.push(title); }); return results.slice(count - 1,count); }; })();