@cycle/dom
Version:
The standard DOM Driver for Cycle.js, based on Snabbdom
31 lines • 1.23 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var ScopeChecker_1 = require("./ScopeChecker");
var utils_1 = require("./utils");
function toElArray(input) {
return Array.prototype.slice.call(input);
}
var ElementFinder = /** @class */ (function () {
function ElementFinder(namespace, isolateModule) {
this.namespace = namespace;
this.isolateModule = isolateModule;
}
ElementFinder.prototype.call = function () {
var namespace = this.namespace;
var selector = utils_1.getSelectors(namespace);
var scopeChecker = new ScopeChecker_1.ScopeChecker(namespace, this.isolateModule);
var topNode = this.isolateModule.getElement(namespace.filter(function (n) { return n.type !== 'selector'; }));
if (topNode === undefined) {
return [];
}
if (selector === '') {
return [topNode];
}
return toElArray(topNode.querySelectorAll(selector))
.filter(scopeChecker.isDirectlyInScope, scopeChecker)
.concat(topNode.matches(selector) ? [topNode] : []);
};
return ElementFinder;
}());
exports.ElementFinder = ElementFinder;
//# sourceMappingURL=ElementFinder.js.map
;