]> git.agnieray.net Git - galette.git/blob - gulpfile.js
Responsive charts
[galette.git] / gulpfile.js
1 var gulp = require('gulp');
2
3 const { series, parallel } = require('gulp');
4 var del = require('del');
5 var uglify = require('gulp-uglify');
6 var cleanCSS = require('gulp-clean-css');
7 var merge = require('merge-stream');
8 var concat = require('gulp-concat');
9 var replace = require('gulp-replace');
10
11 var galette = {
12 'modules': './node_modules/',
13 'public': './galette/webroot/assets/'
14 };
15
16 var main_styles = [
17 './galette/webroot/themes/default/galette.css',
18 './node_modules/jquery-ui-dist/jquery-ui.css',
19 './galette/webroot/themes/default/jquery-ui/jquery-ui-1.12.1.custom.css',
20 './node_modules/selectize/dist/css/selectize.default.css',
21 './node_modules/summernote/dist/summernote-lite.min.css',
22 ];
23
24 var main_scripts = [
25 './node_modules/jquery/dist/jquery.js',
26 './node_modules/jquery-ui-dist/jquery-ui.js',
27 './node_modules/jquery-ui/ui/i18n/*',
28 './node_modules/js-cookie/dist/js.cookie.min.js',
29 './node_modules/microplugin/src/microplugin.js',
30 './node_modules/sifter/sifter.js',
31 './node_modules/selectize/dist/js/selectize.min.js',
32 './galette/webroot/js/jquery/jquery.bgFade.js',
33 './node_modules/summernote/dist/summernote-lite.min.js',
34 './galette/webroot/js/common.js',
35 ];
36
37 var main_assets = [
38 {
39 'src': './node_modules/jquery-ui-dist/images/*',
40 'dest': '/images/'
41 }, {
42 'src': './node_modules/summernote/dist/font/*',
43 'dest': '/webfonts/'
44 }, {
45 'src': './node_modules/summernote/dist/lang/*.min.js',
46 'dest': '/js/lang/'
47 }, {
48 'src': './galette/webroot/themes/default/jquery-ui/images/*',
49 'dest': '/images/'
50 }, {
51 'src': './galette/webroot/themes/default/images/desktop/*',
52 'dest': '/images/desktop/'
53 }
54 ];
55
56 const clean = function(cb) {
57 del([galette.public]);
58 cb();
59 };
60
61 function watch() {
62 //wilcards are mandatory for task not to run only once...
63 gulp.watch('./galette/webroot/themes/**/*.css', series(styles));
64 gulp.watch('./galette/webroot/js/*.js', series(scripts));
65 };
66
67 function styles() {
68 var _dir = galette.public + '/css/';
69
70 main = gulp.src(main_styles)
71 .pipe(replace('jquery-ui/images/', '../images/'))
72 .pipe(replace('("images/ui', '("../images/ui')) //
73 .pipe(replace('url(images/', 'url(../images/'))
74 .pipe(replace('url(font/', 'url(../webfonts/'))
75 .pipe(cleanCSS())
76 .pipe(concat('galette-main.bundle.min.css'))
77 .pipe(gulp.dest(_dir));
78
79 return merge(main);
80 };
81
82 function scripts() {
83 var _dir = galette.public + '/js/';
84
85 main = gulp.src(main_scripts)
86 .pipe(concat('galette-main.bundle.min.js'))
87 .pipe(uglify())
88 .pipe(gulp.dest(_dir));
89
90 chartjs = gulp.src([
91 './node_modules/chart.js/dist/chart.min.js',
92 './node_modules/chartjs-plugin-autocolors/dist/chartjs-plugin-autocolors.min.js',
93 './node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.min.js'
94 ])
95 .pipe(concat('galette-chartjs.bundle.min.js'))
96 .pipe(gulp.dest(_dir));
97
98 return merge(main, chartjs);
99 };
100
101 function assets() {
102 main = main_assets.map(function (asset) {
103 return gulp.src(asset.src)
104 .pipe(gulp.dest(galette.public + asset.dest));
105 }
106 );
107
108 return merge(main);
109 };
110
111 exports.clean = clean;
112 exports.watch = watch;
113
114 exports.styles = styles;
115 exports.scripts = scripts;
116 exports.assets = assets;
117
118 exports.build = series(styles, scripts, assets);
119 exports.default = exports.build;