ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
58 lines • 2.1 kB
JavaScript
var DOMService = (function () {
function DOMService() {
}
DOMService.prototype.nextInDOM = function (_selector, _subject, reverse, container) {
var next = reverse ? this.getPrev(_subject) : this.getNext(_subject);
while ((next != null) && (next.length !== 0)) {
var found = this.searchFor(_selector, next, reverse);
if (found) {
return found;
}
next = reverse ? this.getPrev(next) : this.getNext(next);
if ((next == null) && (container != null)) {
next = reverse ? $(container).children().last() : $(container).children().first();
container = null;
}
}
return null;
};
DOMService.prototype.getNext = function (_subject) {
if ((!_subject) || (_subject.length === 0)) {
return null;
}
if (_subject.next().length > 0)
return _subject.next();
return this.getNext(_subject.parent());
};
DOMService.prototype.getPrev = function (_subject) {
if ((!_subject) || (_subject.length === 0)) {
return null;
}
if (_subject.prev().length > 0)
return _subject.prev();
return this.getPrev(_subject.parent());
};
DOMService.prototype.searchFor = function (_selector, _subject, reverse) {
var _this = this;
if (_subject.is(_selector))
return _subject;
else {
var found_1 = null;
var _children = _subject.children().get();
if (reverse) {
_children = _children.reverse();
}
$(_children).each(function (i, child) {
found_1 = _this.searchFor(_selector, $(child), reverse);
if (found_1)
return false;
else
return;
});
return found_1;
}
};
return DOMService;
}());
export { DOMService };
//# sourceMappingURL=dom-service.js.map