@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
136 lines (120 loc) • 4.82 kB
JavaScript
const fs = require( 'fs' );
const path = require( 'path' );
const paths = require( './paths' );
const fileExists = ( filePath ) => fs.existsSync( filePath );
const commonCssFiles = [
path.join( paths.css_src, 'common', 'common-css-utilities.pcss' ),
path.join( paths.css_src, 'common', 'gravity-forms-common-icons.pcss' ),
];
const adminCssFiles = [
path.join( paths.css_src, 'admin', 'admin.pcss' ),
path.join( paths.css_src, 'admin', 'admin-css-utilities.pcss' ),
path.join( paths.css_src, 'admin', 'admin-icons.pcss' ),
path.join( paths.css_src, 'admin', 'deprecated', 'font-awesome.pcss' ),
path.join( paths.css_src, 'admin', 'editor.pcss' ),
path.join( paths.css_src, 'admin', 'settings.pcss' ),
path.join( paths.css_src, 'admin', 'blocks.pcss' ),
];
const adminComponentsCssFiles = [
path.join( paths.css_src, 'admin', 'admin-components.pcss' ),
path.join( paths.css_src, 'admin', 'setup-wizard.pcss' ),
path.join( paths.css_src, 'admin', 'template-library.pcss' ),
];
const themeCssFiles = [
path.join( paths.css_src, 'theme', 'gravity', 'basic.pcss' ),
path.join( paths.css_src, 'theme', 'gravity', 'theme.pcss' ),
];
const themeFrameworkCssFiles = [
path.join( paths.css_src, 'theme', 'framework', 'gravity-forms-theme-reset.pcss' ),
path.join( paths.css_src, 'theme', 'foundation', 'gravity-forms-theme-foundation.pcss' ),
path.join( paths.css_src, 'theme', 'foundation', 'theme-foundation.pcss' ),
path.join( paths.css_src, 'theme', 'foundation', 'gravity-forms-theme-foundation-admin.pcss' ),
path.join( paths.css_src, 'theme', 'foundation', 'theme-foundation-admin.pcss' ),
path.join( paths.css_src, 'theme', 'framework', 'gravity-forms-theme-framework.pcss' ),
path.join( paths.css_src, 'theme', 'framework', 'theme-framework.pcss' ),
path.join( paths.css_src, 'theme', 'framework', 'gravity-forms-theme-framework-admin.pcss' ),
path.join( paths.css_src, 'theme', 'framework', 'theme-framework-admin.pcss' ),
path.join( paths.css_src, 'theme', 'orbital', 'gravity-forms-orbital-theme.pcss' ),
];
const filterExistingFiles = ( files ) => files.filter( fileExists );
const postCssConfig = {};
const addToExportIfFilesExist = ( key, files ) => {
const existingFiles = filterExistingFiles( files );
if ( existingFiles.length > 0 ) {
postCssConfig[ key ] = { src: existingFiles };
}
};
addToExportIfFilesExist( 'commonCss', commonCssFiles );
addToExportIfFilesExist( 'adminCss', adminCssFiles );
addToExportIfFilesExist( 'adminComponentsCss', adminComponentsCssFiles );
addToExportIfFilesExist( 'themeCss', themeCssFiles );
addToExportIfFilesExist( 'themeFrameworkCss', themeFrameworkCssFiles );
let pluginData;
try {
const commonProps = require( '@gravityforms/design-tokens/gravityforms/custom-properties/common' );
const orbitalProps = require( '@gravityforms/design-tokens/gravityforms/custom-properties/theme/orbital' );
const orbitalMedia = require( '@gravityforms/design-tokens/gravityforms/custom-media/theme/orbital' );
const commonMixins = require( '@gravityforms/design-tokens/gravityforms/mixins/common' );
const frameworkMixins = require( '@gravityforms/design-tokens/gravityforms/mixins/theme/framework' );
const orbitalMixins = require( '@gravityforms/design-tokens/gravityforms/mixins/theme/orbital' );
const gravityMixins = require( '@gravityforms/design-tokens/gravityforms/mixins/theme/gravity' );
const adminProps = require( '@gravityforms/design-tokens/gravityforms/custom-properties/admin' );
const adminMedia = require( '@gravityforms/design-tokens/gravityforms/custom-media/admin' );
const adminMixins = require( '@gravityforms/design-tokens/gravityforms/mixins/admin' );
pluginData = {
themeFramework: {
customProperties: {
common: { ...commonProps },
orbital: { ...orbitalProps },
},
customMedia: [
{ customMedia: orbitalMedia },
],
mixins: {
...commonMixins,
...frameworkMixins,
...orbitalMixins,
...gravityMixins,
},
},
customProperties: {
common: [
{ customProperties: commonProps },
],
admin: [
{ customProperties: commonProps },
{ customProperties: adminProps },
],
theme: {
gravity: [
{ customProperties: commonProps },
{ customProperties: require( '@gravityforms/design-tokens/gravityforms/custom-properties/theme/gravity' ) },
],
},
},
customMedia: {
admin: [
{ customMedia: adminMedia },
],
theme: {
gravity: [
{ customMedia: require( '@gravityforms/design-tokens/gravityforms/custom-media/theme/gravity' ) },
],
},
},
mixins: {
common: commonMixins,
admin: {
...commonMixins,
...adminMixins,
},
theme: {
gravity: gravityMixins,
},
},
};
} catch ( error ) {
pluginData = {};
}
postCssConfig.pluginData = pluginData;
module.exports = postCssConfig;