Automattic\WooCommerce\Vendor\Pelago\Emogrifier\Css
CssDocument::getFilteredAtIdentifierAndRule
Method of the class: CssDocument{}
No Hooks.
Returns
?String . If the nested at-rule is supported, it's opening declaration (e.g. "@media (max-width: 768px)") is returned; otherwise the return value is null.
Usage
// private - for code of main (parent) class only $result = $this->getFilteredAtIdentifierAndRule( $rule, $allowedMediaTypes ): ?string;
- $rule(CssAtRuleBlockList) (required)
- .
- $allowedMediaTypes(array) (required)
- .
CssDocument::getFilteredAtIdentifierAndRule() CssDocument::getFilteredAtIdentifierAndRule code WC 10.5.0
private function getFilteredAtIdentifierAndRule(CssAtRuleBlockList $rule, array $allowedMediaTypes): ?string
{
$result = null;
if ($rule->atRuleName() === 'media') {
$mediaQueryList = $rule->atRuleArgs();
[$mediaType] = \explode('(', $mediaQueryList, 2);
if (\trim($mediaType) !== '') {
$escapedAllowedMediaTypes = \array_map(
static function (string $allowedMediaType): string {
return \preg_quote($allowedMediaType, '/');
},
$allowedMediaTypes
);
$mediaTypesMatcher = \implode('|', $escapedAllowedMediaTypes);
$isAllowed
= (new Preg())->match('/^\\s*+(?:only\\s++)?+(?:' . $mediaTypesMatcher . ')/i', $mediaType) !== 0;
} else {
$isAllowed = true;
}
if ($isAllowed) {
$result = '@media ' . $mediaQueryList;
}
}
return $result;
}