aboutsummaryrefslogtreecommitdiff
path: root/lib/less.php/Tree/Selector.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/less.php/Tree/Selector.php')
-rw-r--r--lib/less.php/Tree/Selector.php168
1 files changed, 0 insertions, 168 deletions
diff --git a/lib/less.php/Tree/Selector.php b/lib/less.php/Tree/Selector.php
deleted file mode 100644
index 6b9dae6..0000000
--- a/lib/less.php/Tree/Selector.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-
-/**
- * Selector
- *
- * @package Less
- * @subpackage tree
- */
-class Less_Tree_Selector extends Less_Tree{
-
- public $elements;
- public $condition;
- public $extendList = array();
- public $_css;
- public $index;
- public $evaldCondition = false;
- public $type = 'Selector';
- public $currentFileInfo = array();
- public $isReferenced;
- public $mediaEmpty;
-
- public $elements_len = 0;
-
- public $_oelements;
- public $_oelements_len;
- public $cacheable = true;
-
- /**
- * @param boolean $isReferenced
- */
- public function __construct( $elements, $extendList = array() , $condition = null, $index=null, $currentFileInfo=null, $isReferenced=null ){
-
- $this->elements = $elements;
- $this->elements_len = count($elements);
- $this->extendList = $extendList;
- $this->condition = $condition;
- if( $currentFileInfo ){
- $this->currentFileInfo = $currentFileInfo;
- }
- $this->isReferenced = $isReferenced;
- if( !$condition ){
- $this->evaldCondition = true;
- }
-
- $this->CacheElements();
- }
-
- public function accept($visitor) {
- $this->elements = $visitor->visitArray($this->elements);
- $this->extendList = $visitor->visitArray($this->extendList);
- if( $this->condition ){
- $this->condition = $visitor->visitObj($this->condition);
- }
-
- if( $visitor instanceof Less_Visitor_extendFinder ){
- $this->CacheElements();
- }
- }
-
- public function createDerived( $elements, $extendList = null, $evaldCondition = null ){
- $newSelector = new Less_Tree_Selector( $elements, ($extendList ? $extendList : $this->extendList), null, $this->index, $this->currentFileInfo, $this->isReferenced);
- $newSelector->evaldCondition = $evaldCondition ? $evaldCondition : $this->evaldCondition;
- return $newSelector;
- }
-
-
- public function match( $other ){
-
- if( !$other->_oelements || ($this->elements_len < $other->_oelements_len) ){
- return 0;
- }
-
- for( $i = 0; $i < $other->_oelements_len; $i++ ){
- if( $this->elements[$i]->value !== $other->_oelements[$i]) {
- return 0;
- }
- }
-
- return $other->_oelements_len; // return number of matched elements
- }
-
-
- public function CacheElements(){
-
- $this->_oelements = array();
- $css = '';
-
- foreach($this->elements as $v){
-
- $css .= $v->combinator;
- if( !$v->value_is_object ){
- $css .= $v->value;
- continue;
- }
-
- if( !property_exists($v->value,'value') || !is_string($v->value->value) ){
- $this->cacheable = false;
- return;
- }
- $css .= $v->value->value;
- }
-
- $this->_oelements_len = preg_match_all('/[,&#\.\w-](?:[\w-]|(?:\\\\.))*/', $css, $matches);
- if( $this->_oelements_len ){
- $this->_oelements = $matches[0];
-
- if( $this->_oelements[0] === '&' ){
- array_shift($this->_oelements);
- $this->_oelements_len--;
- }
- }
- }
-
- public function isJustParentSelector(){
- return !$this->mediaEmpty &&
- count($this->elements) === 1 &&
- $this->elements[0]->value === '&' &&
- ($this->elements[0]->combinator === ' ' || $this->elements[0]->combinator === '');
- }
-
- public function compile($env) {
-
- $elements = array();
- foreach($this->elements as $el){
- $elements[] = $el->compile($env);
- }
-
- $extendList = array();
- foreach($this->extendList as $el){
- $extendList[] = $el->compile($el);
- }
-
- $evaldCondition = false;
- if( $this->condition ){
- $evaldCondition = $this->condition->compile($env);
- }
-
- return $this->createDerived( $elements, $extendList, $evaldCondition );
- }
-
-
- /**
- * @see Less_Tree::genCSS
- */
- public function genCSS( $output, $firstSelector = true ){
-
- if( !$firstSelector && $this->elements[0]->combinator === "" ){
- $output->add(' ', $this->currentFileInfo, $this->index);
- }
-
- foreach($this->elements as $element){
- $element->genCSS( $output );
- }
- }
-
- public function markReferenced(){
- $this->isReferenced = true;
- }
-
- public function getIsReferenced(){
- return !isset($this->currentFileInfo['reference']) || !$this->currentFileInfo['reference'] || $this->isReferenced;
- }
-
- public function getIsOutput(){
- return $this->evaldCondition;
- }
-
-}