glance-dom
Version:
Glance DOM library
85 lines (62 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.negativeIndex = exports.index = undefined;
var _log = require('../../utils/log');
var _log2 = _interopRequireDefault(_log);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var index = {
filter: {
check: function check(_ref) {
var option = _ref.option;
return option !== null && !isNaN(option) && parseInt(option) > 0;
},
filter: function filter(_ref2) {
var elements = _ref2.elements,
option = _ref2.option;
_log2.default.debug('Filtering by index');
if (option !== null && !isNaN(option)) {
var position = parseInt(option);
_log2.default.debug('Selecting the', position, 'element out of', elements.length);
if (position === 0) {
throw new Error('Position 0 not supported, must be 1 or greater');
}
if (elements.length < position) {
throw new Error('Position ' + position + ' out of range');
}
var i = position - 1;
return [elements[i]];
}
return elements;
}
}
};
var negativeIndex = {
filter: {
check: function check(_ref3) {
var option = _ref3.option;
return option !== null && !isNaN(option) && parseInt(option) < 0;
},
filter: function filter(_ref4) {
var elements = _ref4.elements,
option = _ref4.option;
_log2.default.debug('Filtering by negative index');
if (option !== null && !isNaN(option)) {
var position = parseInt(option);
_log2.default.debug('Selecting the', position, 'element out of', elements.length);
if (position === 0) {
throw new Error('Position 0 not supported, must be -1 or lower');
}
if (elements.length < Math.abs(position)) {
throw new Error('Position ' + position + ' out of range');
}
var i = position;
return [elements[elements.length + position]];
}
return elements;
}
}
};
exports.index = index;
exports.negativeIndex = negativeIndex;