-
Notifications
You must be signed in to change notification settings - Fork 17
/
Gruntfile.js
108 lines (100 loc) · 3.31 KB
/
Gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
module.exports = function(grunt) {
var _banner = 'flow.chart.js - licensed under the MIT license. - ' +
'Copyright (c) Bruno Roberto Burigo ([email protected]) - ' +
'https://github.com/BrunoRB/flow-chart.js - ' +
'<%= grunt.template.today("yyyy-mm-dd") %>',
_jsBanner = '/**' + _banner + '*/\n';
var _shapes = [
{
type: 'begin', hasUserText: false, maxOutputs: 1, maxInputs: 0, maxCopies: 1, connectionType: 'text'
},
{
type: 'end', hasUserText: false, maxOutputs: 0, maxInputs: 1, maxCopies: 1, connectionType: 'text'
},
{
type: 'process', hasUserText: true, maxOutputs: 1, maxInputs: 2, maxCopies: -1, connectionType: 'text'
},
{
type: 'manual_input', hasUserText: true, maxOutputs: 1, maxInputs: 2, maxCopies: -1,
connectionType: 'text'
},
{
type: 'display', hasUserText: true, maxOutputs: 1, maxInputs: 2, maxCopies: -1, connectionType: 'text'
},
{
type: 'decision', hasUserText: true, maxOutputs: 2, maxInputs: 2, maxCopies: -1,
connectionType: 'boolean'
},
{
type: 'connector', hasUserText: false, maxOutputs: 1, maxInputs: 2, maxCopies: -1,
connectionType: 'text'
}
];
var indexTemplate = grunt.file.read('./src/templates/index.template.html'),
processedTemplateDev = grunt.template.process(
indexTemplate,
{data: {shapes: _shapes, isProduction: false, banner: _banner}}
),
processedTemplateProd = grunt.template.process(
indexTemplate,
{data: {shapes: _shapes, isProduction: true, banner: _banner}}
);
grunt.file.write('./src/index.html', processedTemplateDev);
grunt.file.write('./dist/index.html', processedTemplateProd);
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options: {
banner: _jsBanner
},
flowchart: {
src: [
'src/js/util.js', 'src/js/state.js', 'src/js/cache.js', 'src/js/alerts.js', 'src/js/defaults.js',
'src/js/diagram-data.js',
'src/js/listeners.js', 'src/js/static-listeners.js', 'src/js/template.js',
'src/js/execution-handler.js', 'src/js/ui.js', 'src/js/constants.js', 'src/js/selection.js',
'src/js/nodes.js', 'src/js/flow-chart.js', 'src/js/init.js',
],
dest: 'dist/js/flow-chart.js'
}
},
uglify: {
options: {
mangle: true,
squeeze: true,
codegen: true,
banner: _jsBanner
},
targetOne: {
src: ['dist/js/flow-chart.js'],
dest: 'dist/js/flow-chart.min.js'
}
},
less: {
targetOne: {
src: ['src/css/index.less'],
dest: 'dist/css/flow-chart.min.css'
}
},
htmlmin: {
dist: {
options: {
removeComments: false,
collapseWhitespace: true
},
files: {// Dictionary of files
'dist/index.html': 'dist/index.html',
}
}
},
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-htmlmin');
// Default task(s).
grunt.registerTask(
'default', ['concat', 'uglify', 'less', 'htmlmin']
);
};