Automattic\WooCommerce\Vendor\Pelago\Emogrifier\Css

CssDocument::getFilteredAtIdentifierAndRuleprivateWC 1.0

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() 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;
}