@cycle/dom
Version:
The standard DOM Driver for Cycle.js, based on Snabbdom
29 lines • 1.12 kB
JavaScript
import { ScopeChecker } from './ScopeChecker';
import { getSelectors } from './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 = getSelectors(namespace);
var scopeChecker = new 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;
}());
export { ElementFinder };
//# sourceMappingURL=ElementFinder.js.map