comindware.core.ui
Version:
Comindware Core UI provides the basic components like editors, lists, dropdowns, popups that we so desperately need while creating Marionette-based single-page applications.
54 lines (47 loc) • 1.59 kB
JavaScript
/*eslint-env node*/
const gulp = require('gulp');
const path = require('path');
const merge = require('merge-stream');
const svgstore = require('gulp-svgstore');
const rename = require('gulp-rename');
const svgmin = require('gulp-svgmin');
const pathResolver = require('../pathResolver');
const iconPacks = ['main_compact', 'main'];
const spriteTask = name => {
const iconsPath = name !== 'main_compact' ? `sprites/themes/${name}/*.svg` : 'sprites/*.svg';
const destPath = `themes/${name}`;
return gulp
.src(pathResolver.resources(iconsPath))
.pipe(rename({ prefix: 'icon-' }))
.pipe(
svgmin(file => {
const prefix = path.basename(file.relative, path.extname(file.relative));
return {
js2svg: {
pretty: false
},
plugins: [
{
cleanupIDs: {
prefix: `${prefix}-`,
minify: true
}
}
]
};
})
)
.pipe(
svgstore({
inlineSvg: true
})
)
.pipe(rename('sprites.svg'))
.pipe(gulp.dest(pathResolver.compiled(destPath)));
};
module.exports = () => {
const tasks = [];
tasks.push(spriteTask());
tasks.push(...iconPacks.map(name => spriteTask(name)));
return merge(tasks);
};