Вход Регистрация
Файл: contao-3.5.8/vendor/oyejorge/less.php/lib/Less/Output/Mapped.php
Строк: 152
<?php

/**
 * Parser output with source map
 *
 * @package Less
 * @subpackage Output
 */
class Less_Output_Mapped extends Less_Output {

    
/**
     * The source map generator
     *
     * @var Less_SourceMap_Generator
     */
    
protected $generator;

    
/**
     * Current line
     *
     * @var integer
     */
    
protected $lineNumber 0;

    
/**
     * Current column
     *
     * @var integer
     */
    
protected $column 0;

    
/**
     * Array of contents map (file and its content)
     *
     * @var array
     */
    
protected $contentsMap = array();

    
/**
     * Constructor
     *
     * @param array $contentsMap Array of filename to contents map
     * @param Less_SourceMap_Generator $generator
     */
    
public function __construct(array $contentsMap$generator){
        
$this->contentsMap $contentsMap;
        
$this->generator $generator;
    }

    
/**
     * Adds a chunk to the stack
     * The $index for less.php may be different from less.js since less.php does not chunkify inputs
     *
     * @param string $chunk
     * @param string $fileInfo
     * @param integer $index
     * @param mixed $mapLines
     */
    
public function add($chunk$fileInfo null$index 0$mapLines null){

        
//ignore adding empty strings
        
if( $chunk === '' ){
            return;
        }


        
$sourceLines = array();
        
$sourceColumns ' ';


        if( 
$fileInfo ){

            
$url $fileInfo['currentUri'];

            if( isset(
$this->contentsMap[$url]) ){
                
$inputSource substr($this->contentsMap[$url], 0$index);
                
$sourceLines explode("n"$inputSource);
                
$sourceColumns end($sourceLines);
            }else{
                throw new 
Exception('Filename '.$url.' not in contentsMap');
            }

        }

        
$lines explode("n"$chunk);
        
$columns end($lines);

        if(
$fileInfo){

            if(!
$mapLines){
                
$this->generator->addMapping(
                        
$this->lineNumber 1,                    // generated_line
                        
$this->column,                            // generated_column
                        
count($sourceLines),                    // original_line
                        
strlen($sourceColumns),                    // original_column
                        
$fileInfo
                
);
            }else{
                for(
$i 0$count count($lines); $i $count$i++){
                    
$this->generator->addMapping(
                        
$this->lineNumber $i 1,                // generated_line
                        
$i === $this->column 0,            // generated_column
                        
count($sourceLines) + $i,                // original_line
                        
$i === strlen($sourceColumns) : 0,     // original_column
                        
$fileInfo
                    
);
                }
            }
        }

        if(
count($lines) === 1){
            
$this->column += strlen($columns);
        }else{
            
$this->lineNumber += count($lines) - 1;
            
$this->column strlen($columns);
        }

        
// add only chunk
        
parent::add($chunk);
    }

}
Онлайн: 1
Реклама