+~]\\s*+)(?=[[:alpha:]_\\-.#*:\\[])';
/**
* options array key for `querySelectorAll`
*
* @var string
*/
private const QSA_ALWAYS_THROW_PARSE_EXCEPTION = 'alwaysThrowParseException';
/**
* @var array
*/
private $excludedSelectors = [];
/**
* @var array
*/
private $excludedCssSelectors = [];
/**
* @var array
*/
private $allowedMediaTypes = ['all' => true, 'screen' => true, 'print' => true];
/**
* @var array{
* 0: array,
* 1: array
* }
*/
private $caches = [
self::CACHE_KEY_SELECTOR => [],
self::CACHE_KEY_COMBINED_STYLES => [],
];
/**
* @var ?CssSelectorConverter
*/
private $cssSelectorConverter = null;
/**
* the visited nodes with the XPath paths as array keys
*
* @var array
*/
private $visitedNodes = [];
/**
* the styles to apply to the nodes with the XPath paths as array keys for the outer array
* and the attribute names/values as key/value pairs for the inner array
*
* @var array>
*/
private $styleAttributesForNodes = [];
/**
* Determines whether the "style" attributes of tags in the the HTML passed to this class should be preserved.
* If set to false, the value of the style attributes will be discarded.
*
* @var bool
*/
private $isInlineStyleAttributesParsingEnabled = true;
/**
* Determines whether the `