Automattic\WooCommerce\Vendor\Pelago\Emogrifier\Css

CssDocument::getFilteredAtIdentifierAndRuleprivateWC 1.0

Метод класса: CssDocument{}

Хуков нет.

Возвращает

?Строку . 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.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->getFilteredAtIdentifierAndRule( $rule, $allowedMediaTypes ): ?string;
$rule(CssAtRuleBlockList) (обязательный)
.
$allowedMediaTypes(массив) (обязательный)
.

Код CssDocument::getFilteredAtIdentifierAndRule() WC 10.4.3

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