311 lines
11 KiB
JavaScript
311 lines
11 KiB
JavaScript
'use strict';
|
|
|
|
var config = require('../config');
|
|
var gulp = require('gulp');
|
|
|
|
var MergeStream = require('merge-stream');
|
|
|
|
var imagemin = require('gulp-imagemin');
|
|
|
|
/**************************
|
|
* Task processes and copies all dependencies, either installed by npm or stored locally in the project
|
|
**************************/
|
|
function dependencies() {
|
|
|
|
//as we do multiple things in this task, we merge the multiple streams
|
|
var stream = new MergeStream();
|
|
|
|
// Pick the dependencies we need from each package
|
|
// so we don't just ship with a lot of files that aren't needed
|
|
const nodeModules = [
|
|
{
|
|
"name": "ace-builds",
|
|
"src": [
|
|
"./node_modules/ace-builds/src-min-noconflict/ace.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/ext-language_tools.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/ext-searchbox.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/ext-settings_menu.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/snippets/text.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/snippets/javascript.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/snippets/css.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/snippets/json.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/theme-chrome.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/mode-razor.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/mode-javascript.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/mode-css.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/worker-javascript.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/worker-css.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/mode-json.js",
|
|
"./node_modules/ace-builds/src-min-noconflict/worker-json.js"
|
|
],
|
|
"base": "./node_modules/ace-builds"
|
|
},
|
|
{
|
|
"name": "angular",
|
|
"src": ["./node_modules/angular/angular.js"],
|
|
"base": "./node_modules/angular"
|
|
},
|
|
{
|
|
"name": "angular-aria",
|
|
"src": ["./node_modules/angular-aria/angular-aria.min.js",
|
|
"./node_modules/angular-aria/angular-aria.min.js.map"],
|
|
"base": "./node_modules/angular-aria"
|
|
},
|
|
{
|
|
"name": "angular-cookies",
|
|
"src": ["./node_modules/angular-cookies/angular-cookies.js"],
|
|
"base": "./node_modules/angular-cookies"
|
|
},
|
|
{
|
|
"name": "angular-dynamic-locale",
|
|
"src": [
|
|
"./node_modules/angular-dynamic-locale/dist/tmhDynamicLocale.min.js",
|
|
"./node_modules/angular-dynamic-locale/dist/tmhDynamicLocale.min.js.map"
|
|
],
|
|
"base": "./node_modules/angular-dynamic-locale/dist"
|
|
},
|
|
{
|
|
"name": "angular-sanitize",
|
|
"src": ["./node_modules/angular-sanitize/angular-sanitize.js"],
|
|
"base": "./node_modules/angular-sanitize"
|
|
},
|
|
{
|
|
"name": "angular-touch",
|
|
"src": ["./node_modules/angular-touch/angular-touch.js"],
|
|
"base": "./node_modules/angular-touch"
|
|
},
|
|
{
|
|
"name": "angular-ui-sortable",
|
|
"src": ["./node_modules/angular-ui-sortable/dist/sortable.js"],
|
|
"base": "./node_modules/angular-ui-sortable/dist"
|
|
},
|
|
{
|
|
"name": "angular-route",
|
|
"src": ["./node_modules/angular-route/angular-route.js"],
|
|
"base": "./node_modules/angular-route"
|
|
},
|
|
{
|
|
"name": "angular-animate",
|
|
"src": ["./node_modules/angular-animate/angular-animate.js"],
|
|
"base": "./node_modules/angular-animate"
|
|
},
|
|
{
|
|
"name": "angular-i18n",
|
|
"src": [
|
|
"./node_modules/angular-i18n/angular-i18n.js",
|
|
"./node_modules/angular-i18n/angular-locale_*.js"
|
|
],
|
|
"base": "./node_modules/angular-i18n"
|
|
},
|
|
{
|
|
"name": "angular-local-storage",
|
|
"src": [
|
|
"./node_modules/angular-local-storage/dist/angular-local-storage.min.js",
|
|
"./node_modules/angular-local-storage/dist/angular-local-storage.min.js.map"
|
|
],
|
|
"base": "./node_modules/angular-local-storage/dist"
|
|
},
|
|
{
|
|
"name": "angular-messages",
|
|
"src": ["./node_modules/angular-messages/angular-messages.js"],
|
|
"base": "./node_modules/angular-messages"
|
|
},
|
|
{
|
|
"name": "angular-mocks",
|
|
"src": ["./node_modules/angular-mocks/angular-mocks.js"],
|
|
"base": "./node_modules/angular-mocks"
|
|
},
|
|
{
|
|
"name": "animejs",
|
|
"src": ["./node_modules/animejs/anime.min.js"],
|
|
"base": "./node_modules/animejs"
|
|
},
|
|
{
|
|
"name": "bootstrap-social",
|
|
"src": ["./node_modules/bootstrap-social/bootstrap-social.css"],
|
|
"base": "./node_modules/bootstrap-social"
|
|
},
|
|
|
|
{
|
|
"name": "angular-chart.js",
|
|
"src": ["./node_modules/angular-chart.js/dist/angular-chart.min.js"],
|
|
"base": "./node_modules/angular-chart.js/dist"
|
|
},
|
|
{
|
|
"name": "chart.js",
|
|
"src": ["./node_modules/chart.js/dist/chart.min.js"],
|
|
"base": "./node_modules/chart.js/dist"
|
|
},
|
|
{
|
|
"name": "clipboard",
|
|
"src": ["./node_modules/clipboard/dist/clipboard.min.js"],
|
|
"base": "./node_modules/clipboard/dist"
|
|
},
|
|
{
|
|
"name": "jsdiff",
|
|
"src": ["./node_modules/diff/dist/diff.min.js"],
|
|
"base": "./node_modules/diff/dist"
|
|
},
|
|
{
|
|
"name": "flatpickr",
|
|
"src": [
|
|
"./node_modules/flatpickr/dist/flatpickr.js",
|
|
"./node_modules/flatpickr/dist/flatpickr.css",
|
|
"./node_modules/flatpickr/dist/l10n/*.js"
|
|
],
|
|
"base": "./node_modules/flatpickr/dist"
|
|
},
|
|
{
|
|
"name": "font-awesome",
|
|
"src": [
|
|
"./node_modules/font-awesome/fonts/*",
|
|
"./node_modules/font-awesome/css/font-awesome.min.css"
|
|
],
|
|
"base": "./node_modules/font-awesome"
|
|
},
|
|
{
|
|
"name": "jquery",
|
|
"src": [
|
|
"./node_modules/jquery/dist/jquery.min.js",
|
|
"./node_modules/jquery/dist/jquery.min.map"
|
|
],
|
|
"base": "./node_modules/jquery/dist"
|
|
},
|
|
{
|
|
"name": "jquery-ui",
|
|
"src": ["./node_modules/jquery-ui-dist/jquery-ui.min.js"],
|
|
"base": "./node_modules/jquery-ui-dist"
|
|
},
|
|
{
|
|
"name": "jquery-ui-touch-punch",
|
|
"src": ["./node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js"],
|
|
"base": "./node_modules/jquery-ui-touch-punch"
|
|
},
|
|
{
|
|
"name": "lazyload-js",
|
|
"src": ["./node_modules/lazyload-js/lazyload.min.js"],
|
|
"base": "./node_modules/lazyload-js"
|
|
},
|
|
{
|
|
"name": "moment",
|
|
"src": ["./node_modules/moment/min/moment.min.js"],
|
|
"base": "./node_modules/moment/min"
|
|
},
|
|
{
|
|
"name": "moment",
|
|
"src": ["./node_modules/moment/locale/*.js"],
|
|
"base": "./node_modules/moment/locale"
|
|
},
|
|
{
|
|
"name": "ng-file-upload",
|
|
"src": ["./node_modules/ng-file-upload/dist/ng-file-upload.min.js"],
|
|
"base": "./node_modules/ng-file-upload/dist"
|
|
},
|
|
{
|
|
"name": "nouislider",
|
|
"src": [
|
|
"./node_modules/nouislider/distribute/nouislider.min.js",
|
|
"./node_modules/nouislider/distribute/nouislider.min.css"
|
|
],
|
|
"base": "./node_modules/nouislider/distribute"
|
|
},
|
|
{
|
|
"name": "signalr",
|
|
"src": ["./node_modules/signalr/jquery.signalR.js"],
|
|
"base": "./node_modules/signalr"
|
|
},
|
|
{
|
|
"name": "spectrum",
|
|
"src": [
|
|
"./node_modules/spectrum-colorpicker2/dist/spectrum.js",
|
|
"./node_modules/spectrum-colorpicker2/dist/spectrum.css"
|
|
],
|
|
"base": "./node_modules/spectrum-colorpicker2/dist"
|
|
},
|
|
{
|
|
"name": "tinymce",
|
|
"src": [
|
|
"./node_modules/tinymce/tinymce.min.js",
|
|
"./node_modules/tinymce/plugins/**",
|
|
"./node_modules/tinymce/skins/**",
|
|
"./node_modules/tinymce/themes/**"
|
|
],
|
|
"base": "./node_modules/tinymce"
|
|
},
|
|
{
|
|
"name": "typeahead.js",
|
|
"src": ["./node_modules/typeahead.js/dist/typeahead.bundle.min.js"],
|
|
"base": "./node_modules/typeahead.js/dist"
|
|
},
|
|
{
|
|
"name": "underscore",
|
|
"src": ["node_modules/underscore/underscore-min.js"],
|
|
"base": "./node_modules/underscore"
|
|
},
|
|
{
|
|
"name": "wicg-inert",
|
|
"src": [
|
|
"./node_modules/wicg-inert/dist/inert.min.js",
|
|
"./node_modules/wicg-inert/dist/inert.min.js.map"
|
|
],
|
|
"base": "./node_modules/wicg-inert"
|
|
}
|
|
];
|
|
|
|
// add streams for node modules
|
|
nodeModules.forEach(module => {
|
|
stream.add(
|
|
gulp.src(module.src,
|
|
{ base: module.base, allowEmpty: true })
|
|
.pipe(gulp.dest(config.root + config.targets.lib + "/" + module.name))
|
|
);
|
|
});
|
|
|
|
//copy over libs which are not on npm (/lib)
|
|
stream.add(
|
|
gulp.src(config.sources.globs.lib, { allowEmpty: true })
|
|
.pipe(gulp.dest(config.root + config.targets.lib))
|
|
);
|
|
|
|
//Copies all static assets into /root / assets folder
|
|
//css, fonts and image files
|
|
|
|
var assetsTask = gulp.src(config.sources.globs.assets, { allowEmpty: true });
|
|
assetsTask = assetsTask.pipe(imagemin([
|
|
imagemin.gifsicle({interlaced: true}),
|
|
imagemin.jpegtran({progressive: true}),
|
|
imagemin.optipng({optimizationLevel: 5}),
|
|
imagemin.svgo({
|
|
plugins: [
|
|
{removeViewBox: true},
|
|
{cleanupIDs: false}
|
|
]
|
|
})
|
|
]));
|
|
|
|
assetsTask = assetsTask.pipe(gulp.dest(config.root + config.targets.assets));
|
|
|
|
stream.add(assetsTask);
|
|
|
|
// Copies all the less files related to the preview into their folder
|
|
//these are not pre-processed as preview has its own less compiler client side
|
|
stream.add(
|
|
gulp.src("src/canvasdesigner/editors/*.less", { allowEmpty: true })
|
|
.pipe(gulp.dest(config.root + config.targets.assets + "/less"))
|
|
);
|
|
|
|
// TODO: check if we need these fileSize
|
|
stream.add(
|
|
gulp.src("src/views/propertyeditors/grid/config/*.*", { allowEmpty: true })
|
|
.pipe(gulp.dest(config.root + config.targets.views + "/propertyeditors/grid/config"))
|
|
);
|
|
stream.add(
|
|
gulp.src("src/views/dashboard/default/*.jpg", { allowEmpty: true })
|
|
.pipe(gulp.dest(config.root + config.targets.views + "/dashboard/default"))
|
|
);
|
|
|
|
return stream;
|
|
};
|
|
|
|
module.exports = { dependencies: dependencies };
|