var clientApp = './src/app/';

var files = [

clientApp + '**/*.module.js',
'<%= ngtemplates.app.dest %>',
clientApp + '**/*.js'

];

module.exports = function(grunt) {

var vendorDependencies = grunt.file.readJSON('surak.json').dependencies;

console.log("\nSurak Dependencies: \n    " + vendorDependencies.join(',\n    ') + "\n" );

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),

  concat_css: {
    options: {
      // Task-specific options go here.
    },
    all: {
      src: [
        "vendor/angular-material/angular-material.min.css",
        "src/css/*.css"
    ],
      dest: "dist/styles.css"
    },
  },

  concat: {
    options: {
      separator: ';'
    },
    vendor: {
      src: vendorDependencies,
      dest: 'build/vendor.min.js'
    },
    app_src: {
      src: files,
      dest: 'build/app_src.js'
    },
    bundle: {
      src: [
        'build/vendor.min.js',
        'build/app_src.min.js',
      ],
      dest: 'dist/app.min.js'
    },

    bundle_dev: {
      src: [
        'build/vendor.min.js',
        'build/app_src.js',
      ],
      dest: 'dist/app.min.js'
    }
  },

  uglify: {
      options: {
        mangle: true,
        beautify: true
      },
      my_target: {
        files: {
          'build/app_src.min.js': ['build/app_src.js']
        }
      }
    },

  ngtemplates: {
    app: {
      cwd:      'src/app',
      src:      ['templates/**.tpl.html', 'templates/**/**.tpl.html'],
      dest:     'build/app.templates.js',
      options:  {
        htmlmin: {
          collapseBooleanAttributes:      true,
          collapseWhitespace:             true,
          removeAttributeQuotes:          true,
          removeComments:                 true, // Only if you don't use comment directives!
          removeEmptyAttributes:          true,
          removeRedundantAttributes:      true,
          removeScriptTypeAttributes:     true,
          removeStyleLinkTypeAttributes:  true
        }
      }
    }
  }

});

grunt.loadNpmTasks('grunt-angular-templates');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-concat-css');

//grunt.registerTask('default', ['concat_css', 'concat:vendor', 'ngtemplates', 'concat:app_src', 'uglify', 'concat:bundle' ]); // Production
grunt.registerTask('default', ['concat_css', 'concat:vendor', 'ngtemplates', 'concat:app_src', 'concat:bundle_dev' ]); // Development

};