diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:39:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:39:39 +0000 |
commit | 8ca6cc32b2c789a3149861159ad258f2cb9491e3 (patch) | |
tree | 2492de6f1528dd44eaa169a5c1555026d9cb75ec /library/vendor/lessphp/lib/Less/Tree/Operation.php | |
parent | Initial commit. (diff) | |
download | icingaweb2-upstream.tar.xz icingaweb2-upstream.zip |
Adding upstream version 2.11.4.upstream/2.11.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/vendor/lessphp/lib/Less/Tree/Operation.php')
-rw-r--r-- | library/vendor/lessphp/lib/Less/Tree/Operation.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/library/vendor/lessphp/lib/Less/Tree/Operation.php b/library/vendor/lessphp/lib/Less/Tree/Operation.php new file mode 100644 index 0000000..d4eb9ac --- /dev/null +++ b/library/vendor/lessphp/lib/Less/Tree/Operation.php @@ -0,0 +1,68 @@ +<?php + +/** + * Operation + * + * @package Less + * @subpackage tree + */ +class Less_Tree_Operation extends Less_Tree { + + public $op; + public $operands; + public $isSpaced; + public $type = 'Operation'; + + /** + * @param string $op + */ + public function __construct( $op, $operands, $isSpaced = false ) { + $this->op = trim( $op ); + $this->operands = $operands; + $this->isSpaced = $isSpaced; + } + + public function accept( $visitor ) { + $this->operands = $visitor->visitArray( $this->operands ); + } + + public function compile( $env ) { + $a = $this->operands[0]->compile( $env ); + $b = $this->operands[1]->compile( $env ); + + if ( Less_Environment::isMathOn() ) { + + if ( $a instanceof Less_Tree_Dimension && $b instanceof Less_Tree_Color ) { + $a = $a->toColor(); + + } elseif ( $b instanceof Less_Tree_Dimension && $a instanceof Less_Tree_Color ) { + $b = $b->toColor(); + + } + + if ( !method_exists( $a, 'operate' ) ) { + throw new Less_Exception_Compiler( "Operation on an invalid type" ); + } + + return $a->operate( $this->op, $b ); + } + + return new Less_Tree_Operation( $this->op, array( $a, $b ), $this->isSpaced ); + } + + /** + * @see Less_Tree::genCSS + */ + public function genCSS( $output ) { + $this->operands[0]->genCSS( $output ); + if ( $this->isSpaced ) { + $output->add( " " ); + } + $output->add( $this->op ); + if ( $this->isSpaced ) { + $output->add( ' ' ); + } + $this->operands[1]->genCSS( $output ); + } + +} |