// TODO check used deps

import {minimalizaMenu, panelTools, XosNavHandlerService} from './directives/directives';
export const xosTemplate = 'xosTemplate';

import 'angular-ui-bootstrap';
import 'angular-animate';
import 'angular-toastr';
import 'angular-toastr/dist/angular-toastr.min.css';
// import '../style/style.scss';
// import '../style/stroke-icons/style.css';
// import '../style/pe-icons/pe-icon-7-stroke.css';
import {capitalize} from './filters/capitalize';


(function () {
  angular.module('xosTemplate', [
    'ui.router',                // Angular flexible routing
    'ui.bootstrap',             // AngularJS native directives for Bootstrap
    // 'angular-flot',             // Flot chart
    // 'datamaps',                 // Datamaps directive
    'ngAnimate',                // Angular animations
    'toastr',                   // Toastr notification
    // 'ui.sortable',              // AngularJS ui-sortable
    // 'datatables',               // Angular datatables plugin
    // 'datatables.buttons',       // Datatables Buttons
    // 'ui.tree'                   // Angular ui Tree
  ])
    .service('XosNavHandler', XosNavHandlerService)
    .directive('minimalizaMenu', minimalizaMenu)
    // .directive('sparkline', sparkline)
    .directive('panelTools', panelTools)
    .filter('capitalize', capitalize);
})();

