<?php 
 
namespace Webkul\UVDesk\CoreFrameworkBundle\Dashboard; 
 
use Webkul\UVDesk\CoreFrameworkBundle\Framework\ExtendableComponentInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\NavigationInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\PanelSidebarInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\PanelSidebarItemInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\HomepageSectionInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\HomepageSectionItemInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\StylesheetResourceInterface; 
use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\JavascriptResourceInterface; 
 
class Dashboard implements ExtendableComponentInterface 
{ 
    public function __construct(DashboardTemplate $dashboardTemplate, NavigationTemplate $navigationTemplate, HomepageTemplate $homepageTemplate) 
    { 
        $this->homepageTemplate = $homepageTemplate; 
        $this->dashboardTemplate = $dashboardTemplate; 
        $this->navigationTemplate = $navigationTemplate; 
    } 
 
    public function appendNavigation(NavigationInterface $navigation, array $tags = []) 
    { 
        $this->navigationTemplate->appendNavigation($navigation, $tags); 
    } 
 
    public function getNavigationTemplate() 
    { 
        return $this->navigationTemplate; 
    } 
 
    public function appendHomepageSection(HomepageSectionInterface $homepageSection, array $tags = []) 
    { 
        $this->homepageTemplate->appendSection($homepageSection, $tags); 
    } 
 
    public function appendHomepageSectionItem(HomepageSectionItemInterface $homepageSectionItem, array $tags = []) 
    { 
        $this->homepageTemplate->appendSectionItem($homepageSectionItem, $tags); 
    } 
 
    public function getHomepageTemplate() 
    { 
        return $this->homepageTemplate; 
    } 
 
    public function appendStylesheetResource($stylesheet, array $tags = []) 
    { 
        $this->dashboardTemplate->appendStylesheet($stylesheet, $tags); 
    } 
 
    public function appendJavascriptResource($javascript, array $tags = []) 
    { 
        $this->dashboardTemplate->appendJavascript($javascript, $tags); 
    } 
 
    public function getDashboardTemplate() 
    { 
        return $this->dashboardTemplate; 
    } 
}