'dcat-admin/vendors/js/vendors.min.js', 'dcat' => 'dcat-admin/dcat/js/app.js', ]; /** * @var array */ protected $baseCss = [ 'vendors' => 'dcat-admin/vendors/css/vendors.min.css', 'bootstrap' => 'dcat-admin/css/bootstrap.css', 'bootstrap-extended' => 'dcat-admin/css/bootstrap-extended.css', 'toastr' => 'dcat-admin/vendors/css/extensions/toastr.css', 'colors' => 'dcat-admin/css/colors.css', 'components' => 'dcat-admin/css/components.css', 'palette-gradient' => 'dcat-admin/css/core/colors/palette-gradient.css', //'custom' => 'dcat-admin/css/custom-laravel.css', 'dcat' => 'dcat-admin/dcat/css/app.css', ]; /** * @var array */ protected $baseJs = [ 'menu' => 'dcat-admin/js/core/app-menu.js', 'app' => 'dcat-admin/js/core/app.js', 'toastr' => 'dcat-admin/vendors/js/extensions/toastr.min.js', 'pjax' => 'dcat-admin/plugins/jquery-pjax/jquery.pjax.min.js', 'layer' => 'dcat-admin/plugins/layer/layer.js', ]; /** * @var array */ public $components = []; /** * @var string */ public $fonts = 'https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,800,800i,900,900i'; /** * @var bool */ protected $isPjax = false; /** * @var bool */ protected $usingFullPage = false; /** * Assets constructor. */ public function __construct() { $this->isPjax = request()->pjax(); } public function full(bool $value = true) { $this->usingFullPage = $value; return $this; } public function collect(string $name) { $this->js($this->components[$name]['js'] ?? null); $this->css($this->components[$name]['css'] ?? null); } public function css($css) { if (! $css) { return; } $this->css = array_merge($this->css, (array) $css); } public function baseCss(array $css) { $this->baseCss = $css; } public function js($js) { if (! $js) { return; } $this->js = array_merge($this->js, (array) $js); } public function headerJs($js) { if (! $js) { return; } $this->headerJs = array_merge($this->headerJs, (array) $js); } public function baseJs(array $js) { if (! $js) { return; } $this->baseJs = $js; } public function script($script) { if (! $script) { return; } $this->script = array_merge($this->script, (array) $script); } public function style($style) { if (! $style) { return; } $this->style = array_merge($this->style, (array) $style); } protected function addLayoutCss() { if ($this->usingFullPage) { return; } if (config('admin.layout.main_layout_type') === 'horizontal') { $this->baseCss[] = 'dcat-admin/css/core/menu/menu-types/horizontal-menu.css'; } $this->baseCss[] = 'dcat-admin/css/core/menu/menu-types/vertical-menu.css'; } protected function addThemeCss() { if (! $theme = config('admin.layout.theme')) { return; } $this->baseCss[] = "dcat-admin/css/themes/{$theme}.css"; } protected function addFontCss() { $this->fonts && ($this->baseCss[] = $this->fonts); } protected function mergeBaseCss() { if ($this->isPjax) { return; } $this->addLayoutCss(); $this->addThemeCss(); $this->addFontCss(); $this->css = array_merge($this->baseCss, $this->css); } public function renderCss() { $this->mergeBaseCss(); $html = ''; foreach (array_unique($this->css) as &$v) { $v = admin_asset($v); $html .= ""; } return $html; } protected function mergeBaseJs() { if ($this->isPjax) { return; } $this->js = array_merge($this->baseJs, $this->js); } public function renderJs() { $this->mergeBaseJs(); $html = ''; foreach (array_unique($this->js) as &$v) { $v = admin_asset($v); $html .= ""; } return $html; } public function renderHeaderJs() { $html = ''; foreach (array_unique($this->headerJs) as &$v) { $v = admin_asset($v); $html .= ""; } return $html; } public function renderScript() { $script = implode(';', array_unique($this->script)); return ""; } public function renderStyle() { $style = implode('', array_unique($this->style)); return ""; } }