TIF_E41200642/public/dist/libs/footable-v3/GruntFile.js

335 lines
8.6 KiB
JavaScript

'use strict';
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
compiled: ['compiled'],
releases: [
'releases/*.v<%= pkg.version %>.zip',
'releases/latest.zip'
],
jsdoc: ['docs/jsdocs']
},
concat: {
options: {
stripBanners: true,
banner: '/*\n' +
'* <%= pkg.title %> - <%= pkg.description %>\n' +
'* @version <%= pkg.version %>\n' +
'* @link <%= pkg.homepage %>\n' +
'* @copyright Steven Usher & Brad Vincent 2015\n' +
'* @license Released under the GPLv3 license.\n' +
'*/\n'
},
core_js: {
src: [
"src/js/FooTable.js",
"src/js/utils/core/*.js",
"src/js/utils/*.js",
"src/js/classes/*.js",
"src/js/classes/columns/*.js",
"src/js/components/breakpoints/**/*.js",
"src/js/components/columns/**/*.js",
"src/js/components/rows/**/*.js"
],
dest: "compiled/footable.core.js"
},
core_standalone_css: {
src: [
"src/css/FooTable.NoBootstrap.css",
"src/css/FooTable.css",
"src/css/FooTable.FontAwesome.css"
],
dest: "compiled/footable.core.standalone.css"
},
core_bootstrap_css: {
src: [
"src/css/FooTable.css",
"src/css/FooTable.Glyphicons.css"
],
dest: "compiled/footable.core.bootstrap.css"
},
filtering_js: {
src: [
"src/js/components/filtering/**/*.js"
],
dest: "compiled/footable.filtering.js"
},
filtering_css: {
src: [
"src/css/components/FooTable.Filtering.css"
],
dest: "compiled/footable.filtering.css"
},
sorting_js: {
src: [
"src/js/components/sorting/**/*.js"
],
dest: "compiled/footable.sorting.js"
},
sorting_css: {
src: [
"src/css/components/FooTable.Sorting.css"
],
dest: "compiled/footable.sorting.css"
},
paging_js: {
src: [
"src/js/components/paging/**/*.js"
],
dest: "compiled/footable.paging.js"
},
paging_css: {
src: [
"src/css/components/FooTable.Paging.css"
],
dest: "compiled/footable.paging.css"
},
editing_js: {
src: [
"src/js/components/editing/**/*.js"
],
dest: "compiled/footable.editing.js"
},
editing_css: {
src: [
"src/css/components/FooTable.Editing.css"
],
dest: "compiled/footable.editing.css"
},
state_js: {
src: [
"src/js/components/state/**/*.js"
],
dest: "compiled/footable.state.js"
},
export_js: {
src: [
"src/js/components/export/**/*.js"
],
dest: "compiled/footable.export.js"
},
all_js: {
src: [
"compiled/footable.core.js",
"compiled/footable.filtering.js",
"compiled/footable.sorting.js",
"compiled/footable.paging.js",
"compiled/footable.editing.js",
"compiled/footable.state.js",
"compiled/footable.export.js"
],
dest: "compiled/footable.js"
},
standalone_css: {
src: [
"compiled/footable.core.standalone.css",
"compiled/footable.filtering.css",
"compiled/footable.sorting.css",
"compiled/footable.paging.css",
"compiled/footable.editing.css"
],
dest: "compiled/footable.standalone.css"
},
bootstrap_css: {
src: [
"compiled/footable.core.bootstrap.css",
"compiled/footable.filtering.css",
"compiled/footable.sorting.css",
"compiled/footable.paging.css",
"compiled/footable.editing.css"
],
dest: "compiled/footable.bootstrap.css"
}
},
uglify: {
prod: {
options: {
preserveComments: false,
banner: '/*\n' +
'* <%= pkg.title %> - <%= pkg.description %>\n' +
'* @version <%= pkg.version %>\n' +
'* @link <%= pkg.homepage %>\n' +
'* @copyright Steven Usher & Brad Vincent 2015\n' +
'* @license Released under the GPLv3 license.\n' +
'*/\n'
},
files: {
'compiled/footable.min.js': [ "compiled/footable.js" ],
'compiled/footable.core.min.js': [ "compiled/footable.core.js" ],
'compiled/footable.filtering.min.js': [ "compiled/footable.filtering.js" ],
'compiled/footable.sorting.min.js': [ "compiled/footable.sorting.js" ],
'compiled/footable.paging.min.js': [ "compiled/footable.paging.js" ],
'compiled/footable.editing.min.js': [ "compiled/footable.editing.js" ],
'compiled/footable.state.min.js': [ "compiled/footable.state.js" ],
'compiled/footable.export.min.js': [ "compiled/footable.export.js" ]
}
}
},
cssmin: {
minify: {
options: {
keepSpecialComments: 1
},
files: {
'compiled/footable.core.standalone.min.css': [ "compiled/footable.core.standalone.css" ],
'compiled/footable.standalone.min.css': [ "compiled/footable.standalone.css" ],
'compiled/footable.core.bootstrap.min.css': [ "compiled/footable.core.bootstrap.css" ],
'compiled/footable.bootstrap.min.css': [ "compiled/footable.bootstrap.css" ],
'compiled/footable.filtering.min.css': [ "compiled/footable.filtering.css" ],
'compiled/footable.sorting.min.css': [ "compiled/footable.sorting.css" ],
'compiled/footable.paging.min.css': [ "compiled/footable.paging.css" ],
'compiled/footable.editing.min.css': [ "compiled/footable.editing.css" ]
}
}
},
compress: {
bootstrap: {
options: {
archive: 'releases/footable-bootstrap.v<%= pkg.version %>.zip'
},
files: [{
expand: true,
cwd: 'compiled/',
src: [
'footable.bootstrap.css',
'footable.bootstrap.min.css'
],
dest: 'css/'
},{
expand: true,
cwd: 'compiled/',
src: [
'footable.js',
'footable.min.js'
],
dest: 'js/'
}]
},
standalone: {
options: {
archive: 'releases/footable-standalone.v<%= pkg.version %>.zip'
},
files: [{
expand: true,
cwd: 'compiled/',
src: [
'footable.standalone.css',
'footable.standalone.min.css'
],
dest: 'css/'
},{
expand: true,
cwd: 'compiled/',
src: [
'footable.js',
'footable.min.js'
],
dest: 'js/'
}]
},
components: {
options: {
archive: 'releases/footable-components.v<%= pkg.version %>.zip'
},
files: [{
expand: true,
cwd: 'compiled/',
src: [
'footable.core.bootstrap.css',
'footable.core.bootstrap.min.css',
'footable.core.standalone.css',
'footable.core.standalone.min.css',
'footable.filtering.css',
'footable.filtering.min.css',
'footable.paging.css',
'footable.paging.min.css',
'footable.sorting.css',
'footable.sorting.min.css',
'footable.editing.css',
'footable.editing.min.css'
],
dest: 'css/'
},{
expand: true,
cwd: 'compiled/',
src: [
'footable.core.js',
'footable.core.min.js',
'footable.filtering.js',
'footable.filtering.min.js',
'footable.paging.js',
'footable.paging.min.js',
'footable.sorting.js',
'footable.sorting.min.js',
'footable.editing.js',
'footable.editing.min.js',
'footable.state.js',
'footable.state.min.js',
'footable.export.js',
'footable.export.min.js'
],
dest: 'js/'
}]
}
},
copy: {
latest: {
files: [{
expand: true,
cwd: 'releases/',
src: ['footable-bootstrap.v<%= pkg.version %>.zip'],
dest: 'releases/',
rename: function(dest, src){
return dest + src.replace('v'+grunt.config('pkg.version'), 'latest');
}
},{
expand: true,
cwd: 'releases/',
src: ['footable-components.v<%= pkg.version %>.zip'],
dest: 'releases/',
rename: function(dest, src){
return dest + src.replace('v'+grunt.config('pkg.version'), 'latest');
}
},{
expand: true,
cwd: 'releases/',
src: ['footable-standalone.v<%= pkg.version %>.zip'],
dest: 'releases/',
rename: function(dest, src){
return dest + src.replace('v'+grunt.config('pkg.version'), 'latest');
}
}]
}
},
jsdoc: {
dist: {
src: [
'./src/js/**/*.js',
'README.md'
],
jsdoc: './node_modules/.bin/jsdoc',
options: {
destination: 'docs/jsdocs',
configure: 'jsdoc.json',
template: './node_modules/jsdoc-oblivion/template'
}
}
}
});
// Load grunt tasks
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-jsdoc');
grunt.registerTask('default', ['clean:compiled', 'concat', 'uglify', 'cssmin']);
grunt.registerTask('package', ['default', 'clean:releases', 'compress', 'copy']);
grunt.registerTask('jsdocs', ['clean:jsdoc','jsdoc']);
};