2
schangxiang@126.com
2024-08-16 b47c50a2a514def7374b32d7194b2c599cba5625
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
var mountFolder = function(connect, dir) {
    return connect.static(require('path').resolve(dir));
};
module.exports = function(grunt) {
 
    require('load-grunt-tasks')(grunt);
 
    grunt.registerTask('serve', ['connect:serve', 'watch']);
 
    grunt.registerTask('dev', [
        'clean',
        'ngTemplateCache',
        'concat',
        'less',
        'copy'
    ]);
 
    grunt.registerTask('default', [
        'dev',
    'uglify',
        'cssmin'
    ]);
 
    grunt.initConfig({
        cmpnt: grunt.file.readJSON('bower.json'),
        banner: '/*! ngTable v<%= cmpnt.version %> by Vitalii Savchuk(esvit666@gmail.com) - ' +
            'https://github.com/esvit/ng-table - New BSD License */\n',
        clean: {
 
            working: {
                src: ['ng-table.*', './.temp/views', './.temp/']
            }
        },
        copy: {
            styles: {
                files: [{
                    src: './src/styles/ng-table.less',
                    dest: './dist/ng-table.less'
                }]
            }
        },
        uglify: {
            js: {
                src: ['./dist/ng-table.js'],
                dest: './dist/ng-table.min.js',
                options: {
                    banner: '<%= banner %>',
                    sourceMap: true
                }
            }
        },
        concat: {
            js: {
                src: [
                    'src/scripts/intro.js',
                    'src/scripts/ngTable.module.js',
                    'src/scripts/ngTableDefaults.js',
                    'src/scripts/ngTableEventsChannel.js',
                    'src/scripts/ngTableFilterConfig.js',
                    'src/scripts/ngTableDefaultGetData.js',
                    'src/scripts/ngTableGetDataBcShim.js',
                    'src/scripts/ngTableColumn.js',
                    'src/scripts/ngTableParams.js',
                    'src/scripts/ngTableController.js',
                    'src/scripts/ngTable.directive.js',
                    'src/scripts/ngTableDynamic.directive.js',
                    'src/scripts/ngTableColumnsBinding.directive.js',
                    'src/scripts/ngTablePagination.directive.js',
                    'src/scripts/ngTableFilterRowController.js',
                    'src/scripts/ngTableFilterRow.directive.js',
                    'src/scripts/ngTableGroupRowController.js',
                    'src/scripts/ngTableGroupRow.directive.js',
                    'src/scripts/ngTableSorterRowController.js',
                    'src/scripts/ngTableSorterRow.directive.js',
                    'src/scripts/ngTableSelectFilterDs.directive.js',
                    './.temp/scripts/views.js',
                    'src/scripts/outro.js'
                ],
                dest: './dist/ng-table.js'
            }
        },
        less: {
            css: {
                files: {
                    './dist/ng-table.css': 'src/styles/ng-table.less'
                }
            }
        },
        cssmin: {
            css: {
                files: {
                    './dist/ng-table.min.css': './dist/ng-table.css'
                },
                options: {
                    banner: '<%= banner %>'
                }
            }
        },
        watch: {
            css: {
                files: 'src/styles/*.less',
                tasks: ['less'],
                options: {
                    livereload: true
                }
            },
            js: {
                files: 'src/scripts/*.js',
                tasks: ['concat'],
                options: {
                    livereload: true
                }
            },
            html: {
                files: 'src/ng-table/*.html',
                tasks: ['ngTemplateCache', 'concat'],
                options: {
                    livereload: true
                }
            }
        },
        connect: {
            options: {
                port: 8000,
                hostname: 'localhost'
            },
            serve: {
                options: {
                    middleware: function(connect) {
                        return [
                            mountFolder(connect, '.')
                        ];
                    }
                }
            }
        },
        ngTemplateCache: {
            views: {
                files: {
                    './.temp/scripts/views.js': 'src/ng-table/**/*.html'
                },
                options: {
                    trim: 'src/',
                    module: 'ngTable'
                }
            }
        }
    });
};