summaryrefslogtreecommitdiffstats
path: root/library/Icinga/Less/LightModeCall.php
blob: d899e3ce94c310f129ceb2c870d2a968c153a456 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
/* Icinga Web 2 | (c) 2022 Icinga GmbH | GPLv2+ */

namespace Icinga\Less;

use Less_Environment;
use Less_Tree_Ruleset;
use Less_Tree_RulesetCall;

/**
 * Use the environment where the light mode was defined to evaluate the call
 */
class LightModeCall extends Less_Tree_RulesetCall
{
    use LightModeTrait;

    /**
     * @param Less_Tree_RulesetCall $c
     *
     * @return static
     */
    public static function fromRulesetCall(Less_Tree_RulesetCall $c)
    {
        return new static($c->variable);
    }

    /**
     * @param Less_Environment $env
     *
     * @return Less_Tree_Ruleset
     */
    public function compile($env)
    {
        return parent::compile(
            $env->copyEvalEnv(array_merge($env->frames, $this->getLightMode()->getEnv($this->variable)->frames))
        );
    }
}