![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/node_modules/css-select/ |
"use strict"; module.exports = CSSselect; var DomUtils = require("domutils"); var falseFunc = require("boolbase").falseFunc; var compileRaw = require("./lib/compile.js"); function wrapCompile(func) { return function addAdapter(selector, options, context) { options = options || {}; options.adapter = options.adapter || DomUtils; return func(selector, options, context); }; } var compile = wrapCompile(compileRaw); var compileUnsafe = wrapCompile(compileRaw.compileUnsafe); function getSelectorFunc(searchFunc) { return function select(query, elems, options) { options = options || {}; options.adapter = options.adapter || DomUtils; if (typeof query !== "function") { query = compileUnsafe(query, options, elems); } if (query.shouldTestNextSiblings) { elems = appendNextSiblings((options && options.context) || elems, options.adapter); } if (!Array.isArray(elems)) elems = options.adapter.getChildren(elems); else elems = options.adapter.removeSubsets(elems); return searchFunc(query, elems, options); }; } function getNextSiblings(elem, adapter) { var siblings = adapter.getSiblings(elem); if (!Array.isArray(siblings)) return []; siblings = siblings.slice(0); while (siblings.shift() !== elem); return siblings; } function appendNextSiblings(elems, adapter) { // Order matters because jQuery seems to check the children before the siblings if (!Array.isArray(elems)) elems = [elems]; var newElems = elems.slice(0); for (var i = 0, len = elems.length; i < len; i++) { var nextSiblings = getNextSiblings(newElems[i], adapter); newElems.push.apply(newElems, nextSiblings); } return newElems; } var selectAll = getSelectorFunc(function selectAll(query, elems, options) { return query === falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems); }); var selectOne = getSelectorFunc(function selectOne(query, elems, options) { return query === falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems); }); function is(elem, query, options) { options = options || {}; options.adapter = options.adapter || DomUtils; return (typeof query === "function" ? query : compile(query, options))(elem); } /* the exported interface */ function CSSselect(query, elems, options) { return selectAll(query, elems, options); } CSSselect.compile = compile; CSSselect.filters = compileRaw.Pseudos.filters; CSSselect.pseudos = compileRaw.Pseudos.pseudos; CSSselect.selectAll = selectAll; CSSselect.selectOne = selectOne; CSSselect.is = is; //legacy methods (might be removed) CSSselect.parse = compile; CSSselect.iterate = selectAll; //hooks CSSselect._compileUnsafe = compileUnsafe; CSSselect._compileToken = compileRaw.compileToken;