<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class CustomBladeServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
		Blade::directive('css',function($expression) {
			switch (trim($expression,"'")) {
				case 'datatables':
					return
						'<link type="text/css" rel="stylesheet" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap5.min.css" media="screen">'.
						'<link type="text/css" rel="stylesheet" href="'.asset('plugin/dataTables/dataTables.bootstrap5.css').'" media="screen">';

				case 'select2':
					return
						'<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css">';

				case 'simplemde':
					return
						'<link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">';

				default:
					throw new \Exception('Unknown CSS: '.$expression);
			}
		});

		Blade::directive('js',function($expression) {
			switch (trim($expression,"'")) {
				case 'datatables':
					return
						'<script type="text/javascript" src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script>'.
						'<script type="text/javascript" src="'.asset('plugin/dataTables/dataTables.conditionalPaging.js').'"></script>'.
						'<script type="text/javascript" src="https://cdn.datatables.net/rowgroup/1.1.2/js/dataTables.rowGroup.min.js"></script>'.
						'<script type="text/javascript" src="https://cdn.datatables.net/1.10.25/js/dataTables.bootstrap5.min.js"></script>';

				case 'highcharts':
					return
						'<script type="text/javascript" src="https://code.highcharts.com/highcharts.js"></script>'.
						'<script type="text/javascript" src="https://code.highcharts.com/modules/data.js"></script>'.
						'<script type="text/javascript" src="https://code.highcharts.com/modules/drilldown.js"></script>'.
						'<script type="text/javascript" src="https://code.highcharts.com/modules/exporting.js"></script>'.
						'<script type="text/javascript" src="https://code.highcharts.com/modules/export-data.js"></script>'.
						'<script type="text/javascript" src="https://code.highcharts.com/themes/dark-unica.js"></script>';

				case 'select2':
					return
						'<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>'.
						'<script type="text/javascript" src="'.asset('plugin/select2/fix-autofocus.js').'"></script>';

				case 'simplemde':
					return
						'<script type="text/javascript" src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>';

				default:
					throw new \Exception('Unknown JS: '.$expression);
			}
		});
    }
}