| Index: node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/querying.js
|
| diff --git a/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/querying.js b/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/querying.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..17e3aa9bdeb2d4aae12dd08a13d6ae97652c70cb
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/querying.js
|
| @@ -0,0 +1,94 @@
|
| +var isTag = require("domelementtype").isTag;
|
| +
|
| +module.exports = {
|
| + filter: filter,
|
| + find: find,
|
| + findOneChild: findOneChild,
|
| + findOne: findOne,
|
| + existsOne: existsOne,
|
| + findAll: findAll
|
| +};
|
| +
|
| +function filter(test, element, recurse, limit){
|
| + if(!Array.isArray(element)) element = [element];
|
| +
|
| + if(typeof limit !== "number" || !isFinite(limit)){
|
| + limit = Infinity;
|
| + }
|
| + return find(test, element, recurse !== false, limit);
|
| +}
|
| +
|
| +function find(test, elems, recurse, limit){
|
| + var result = [], childs;
|
| +
|
| + for(var i = 0, j = elems.length; i < j; i++){
|
| + if(test(elems[i])){
|
| + result.push(elems[i]);
|
| + if(--limit <= 0) break;
|
| + }
|
| +
|
| + childs = elems[i].children;
|
| + if(recurse && childs && childs.length > 0){
|
| + childs = find(test, childs, recurse, limit);
|
| + result = result.concat(childs);
|
| + limit -= childs.length;
|
| + if(limit <= 0) break;
|
| + }
|
| + }
|
| +
|
| + return result;
|
| +}
|
| +
|
| +function findOneChild(test, elems){
|
| + for(var i = 0, l = elems.length; i < l; i++){
|
| + if(test(elems[i])) return elems[i];
|
| + }
|
| +
|
| + return null;
|
| +}
|
| +
|
| +function findOne(test, elems){
|
| + var elem = null;
|
| +
|
| + for(var i = 0, l = elems.length; i < l && !elem; i++){
|
| + if(!isTag(elems[i])){
|
| + continue;
|
| + } else if(test(elems[i])){
|
| + elem = elems[i];
|
| + } else if(elems[i].children.length > 0){
|
| + elem = findOne(test, elems[i].children);
|
| + }
|
| + }
|
| +
|
| + return elem;
|
| +}
|
| +
|
| +function existsOne(test, elems){
|
| + for(var i = 0, l = elems.length; i < l; i++){
|
| + if(
|
| + isTag(elems[i]) && (
|
| + test(elems[i]) || (
|
| + elems[i].children.length > 0 &&
|
| + existsOne(test, elems[i].children)
|
| + )
|
| + )
|
| + ){
|
| + return true;
|
| + }
|
| + }
|
| +
|
| + return false;
|
| +}
|
| +
|
| +function findAll(test, elems){
|
| + var result = [];
|
| + for(var i = 0, j = elems.length; i < j; i++){
|
| + if(!isTag(elems[i])) continue;
|
| + if(test(elems[i])) result.push(elems[i]);
|
| +
|
| + if(elems[i].children.length > 0){
|
| + result = result.concat(findAll(test, elems[i].children));
|
| + }
|
| + }
|
| + return result;
|
| +}
|
|
|