2022-06-01 10:15:55 +03:00

73 lines
1.5 KiB
PHP

<?php
namespace App\View\Components;
use App\Abstracts\View\Component;
class Script extends Component
{
/** @var string */
public $alias;
/** @var string */
public $folder;
/** @var string */
public $file;
/** @var string */
public $source;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(
string $alias = 'core', string $folder = '', string $file = ''
) {
$this->alias = $alias;
$this->folder = $folder;
$this->file = $file;
$this->source = $this->getSource($alias, $folder, $file);
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
return view('components.script');
}
protected function getSource($alias, $folder, $file)
{
$path = 'public/js/';
$version = version('short');
if ($alias != 'core') {
try {
$module = module($alias);
if ($module) {
$path = 'modules/' . $module->getStudlyName() . '/Resources/assets/js/';
$version = module_version($alias);
}
} catch (\Exception $e) {
}
}
if (! empty($folder)) {
$path .= $folder . '/';
}
$path .= $file . '.min.js?v=' . $version;
return $path;
}
}