Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\Event; | |
| use MatthiasMullie\Minify; | |
| use Symfony\Contracts\EventDispatcher\Event; | |
| class BuildJsEvent extends Event | |
| { | |
| /** | |
| * @param bool $debugMode | |
| * @param string $js | |
| */ | |
| public function __construct( | |
| protected $js, | |
| protected $debugMode = false | |
| ) { | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getJs() | |
| { | |
| return $this->debugMode ? $this->js : (new Minify\JS($this->js))->minify(); | |
| } | |
| /** | |
| * Append JS. | |
| * | |
| * @param string $js | |
| * @param string $section The section name. Shows when in debug mode | |
| * | |
| * @return $this | |
| */ | |
| public function appendJs($js, $section = '') | |
| { | |
| if ($section && $this->debugMode) { | |
| $slashes = str_repeat('/', strlen($section) + 10); | |
| $this->js .= <<<JS | |
| \n | |
| {$slashes} | |
| // {$section} Start | |
| {$slashes} | |
| \n | |
| JS; | |
| } | |
| $this->js .= $js; | |
| if ($section && $this->debugMode) { | |
| $this->js .= <<<JS | |
| \n | |
| {$slashes} | |
| // {$section} End | |
| {$slashes} | |
| JS; | |
| } | |
| return $this; | |
| } | |
| } | |