diff --git a/build/build-examples.js b/build/build-examples.js deleted file mode 100644 index a3baf1a58..000000000 --- a/build/build-examples.js +++ /dev/null @@ -1,58 +0,0 @@ -const fs = require('fs') -const mkdirp = require('mkdirp') -const path = require('path') -const rimraf = require('rimraf') -const walkSync = require('./walk-sync.js') - -const dataDir = path.join(__dirname, '../data') -const examplesDir = path.join(__dirname, '../examples') - -const prefixes = { - brand: 'cib-', - duotone: 'cid-', - flag: 'cif-', - free: 'cil-', - linear: 'cil-', - solid: 'cis-' -} - -const unique = (array, key) => array.map(e => e[key]).map((e, i, final) => final.indexOf(e) === i && i).filter(e => array[e]).map(e => array[e]) - -const main = () => { - rimraf.sync(examplesDir) - mkdirp(examplesDir).then(() => { - - const files = walkSync(dataDir).filter(element => path.extname(element) === '.json') - files.forEach(file => { - const rawdata = fs.readFileSync(file) - const icons = JSON.parse(rawdata).icons.sort((a,b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0)) - - const type = path.basename(file).replace('.json', '') - const prefix = prefixes[type.toLowerCase()] - - let html = `\n\n\n \n` - html += ` CoreUI Icons - ${type}\n` - html += ` \n` - html += ` \n` - html += `\n\n` - - html += `
\n` - unique(icons, 'name').forEach(icon => { - const name = icon.name - html += `
\n` - }) - html += `
\n
\n` - html += `
\n` - unique(icons, 'name').forEach(icon => { - const name = icon.name - html += `
\n` - }) - html += `
\n` - html += `\n` - - fs.writeFileSync(path.join(examplesDir, path.basename(file).replace('.json', '.html')), html) - }) - }) -} - -main() \ No newline at end of file diff --git a/build/build-fonts.js b/build/build-fonts.js deleted file mode 100644 index 7b32cc49d..000000000 --- a/build/build-fonts.js +++ /dev/null @@ -1,84 +0,0 @@ -const fs = require('fs') -const mkdirp = require('mkdirp'); -const path = require('path') -const webfont = require('webfont').default - -const argv = require('minimist')(process.argv.slice(2), { - string: ['src', 'name', 'prefix'] -}) - -const dataDir = path.join(__dirname, '../data') -const fontDir = path.join(__dirname, '../fonts') -const svgDir = path.join(__dirname, '../svg', argv.src.toLowerCase()) - -webfont({ - files: `${svgDir}/**/*.svg`, - fontName: argv.name, - fontHeight: 5000, - startUnicode: 'ec0f', - verbose: true, -}).then(result => { - - mkdirp(fontDir).then(() => { - - fs.writeFile(`${path.join(fontDir, argv.name)}.eot`, result.eot, (err) => { - if (err) throw err - console.log(`The ${path.join(fontDir, argv.name)}.eot file has been saved!`) - }) - - fs.writeFile(`${path.join(fontDir, argv.name)}.svg`, result.svg, (err) => { - if (err) throw err - console.log(`The ${path.join(fontDir, argv.name)}.eot file has been saved!`) - }) - - fs.writeFile(`${path.join(fontDir, argv.name)}.ttf`, result.ttf, (err) => { - if (err) throw err - console.log(`The ${path.join(fontDir, argv.name)}.eot file has been saved!`) - }) - - fs.writeFile(`${path.join(fontDir, argv.name)}.woff`, result.woff, (err) => { - if (err) throw err - console.log(`The ${path.join(fontDir, argv.name)}.eot file has been saved!`) - }) - - fs.writeFile(`${path.join(fontDir, argv.name)}.woff2`, result.woff2, (err) => { - if (err) throw err - console.log(`The ${path.join(fontDir, argv.name)}.eot file has been saved!`) - }) - }) - - - const iconsList = [] - - result.glyphsData.forEach(element => { - const name = element.metadata.name - const unicode = element.metadata.unicode - - iconsList.push({ - name: name.replace(`${argv.prefix}-`,''), - unicode: `\\${unicode[0].codePointAt(0).toString(16)}` - }) - }) - - // Add unicodes to icons lists - fs.readFile(`${dataDir}/${argv.name.replace('CoreUI-Icons-', '')}.json`, 'utf8', function readFileCallback(err, data){ - if (err) throw err - obj = JSON.parse(data) - - const mergeByName = (a1, a2) => a1.map(itm => ({ - ...a2.find((item) => (item.name === itm.name) && item), - ...itm - })) - - json = JSON.stringify(mergeByName(obj, iconsList), null, 2) - - fs.writeFileSync(`${dataDir}/${argv.name.replace('CoreUI-Icons-', '')}.json`, json) - }) -}) -.catch(error => { - throw error -}) - - -// formats: [ 'svg', 'ttf', 'eot', 'woff', 'woff2' ] -// Bufer ttf, eot, woff \ No newline at end of file diff --git a/build/build-js-files.js b/build/build-js-files.js deleted file mode 100644 index 004418ac7..000000000 --- a/build/build-js-files.js +++ /dev/null @@ -1,123 +0,0 @@ -const fs = require('fs') -const mkdirp = require('mkdirp') -const path = require('path') -const { extname } = path - -const dirnames = process.mainModule.filename.includes('pro') ? - ['solid', 'linear', 'duotone', 'brand', 'flag'] - : ['free', 'brand', 'flag'] - -let allNames = {} -dirnames.forEach(setName => { - mkdirp(`js/${setName}/`).then(() => { - const dirname = `svg/${setName}/` - let contents = {} - let names = [] - fs.readdirSync(dirname).forEach(filename => { - console.log(filename) - if (extname(filename) === '.svg') { - const content = fs.readFileSync(dirname + filename, {encoding:'utf8'}) - const variableName = toCamel(filename.replace('.svg', '')) - const jsFilename = filename.replace('.svg', '.js') - const tsFilename = filename.replace('.svg', '.d.ts') - const viewBox = getAttributeValue(content, 'viewBox').split(' ') - const dimensions = `${viewBox[2]} ${viewBox[3]}` - - let iconData = [] - if (dimensions !== '64 64') { - iconData.push(dimensions) - } - const computedContent = - content - .replace(/(]+)>)|(<\/svg>)/ig, '') - .replace(/\n\s\s+/g, '') - .replace(/\n/g, '') - .replace(/"/g, '\'') - iconData.push(computedContent) - - contents[variableName] = iconData - - importName = validate(variableName) - - names.push({ - jsFilename, - variableName, - importName - }) - - // Create single icon - fs.writeFileSync( - `js/${setName}/${jsFilename}`, - `export const ${importName} = ` + JSON.stringify(iconData) - ) - - // Create typings for single icon - fs.writeFileSync( - `js/${setName}/${tsFilename}`, - `export declare const ${importName}: any[];` - ) - } - }) - - fs.writeFileSync(`js/${setName}/${setName}-set.js`, `export const ${setName}Set = ` + JSON.stringify(contents)) - fs.writeFileSync(`js/${setName}/${setName}-set.d.ts`, typings(names, setName, false)) - fs.writeFileSync(`js/${setName}/index.js`, getImports(names, setName)) - fs.writeFileSync(`js/${setName}/index.d.ts`, typings(names, setName)) - - allNames[setName] = names - }) -}) - -let imports = '' -Object.keys(allNames).forEach(set => { - imports += getImports(allNames[set], set, true) - imports += '\n\n\n' -}) -fs.writeFileSync(`index.js`, imports) - -const getAttributeValue = (string, attribute) => { - const regex = new RegExp(`${attribute}="([^"]+)"`, 'g') - return string.match(regex, '')[0] - .match(/"(.*?)"/ig, '')[0] - .replace(/"/g, '') -} - -const toCamel = (str) => { - return str.replace(/([-_][a-z0-9])/ig, ($1) => { - return $1.toUpperCase().replace('-', '') - }) -} - -const validate = (str) => { - if (!isNaN(str.charAt(0))) { - return 'n' + str - } else { - return str - } -} - -const getImports = (names, setName, deep = false) => { - const folder = deep ? `/js/${setName}/` : '/' - const defaultImport = `import { ${setName}Set } from '.${folder}${setName}-set.js' \n` - const defaultExport = `export { ${setName}Set } \n\n` - const importString = names.map(name => { - return `import { ${name.importName} } from '.${folder}${name.jsFilename}'` - }).join('\n') - const exportString = names.map(name => { - return `export { ${name.importName} }` - }).join('\n') - return defaultImport + defaultExport + importString + '\n' + exportString -} - -const typings = (names, setName, all = true) => { - const icons = names.map(name => { - return ` "${name.importName}": any[];` - }).join('\n') - const set = `export declare const ${setName}Set: {\n${icons}\n}` - - const exportString = names.map(name => { - return `export declare const ${name.importName}: any[];` - }).join('\n') - - return all ? set + '\n' + exportString : set -} diff --git a/build/build-png.js b/build/build-png.js deleted file mode 100644 index d9784891b..000000000 --- a/build/build-png.js +++ /dev/null @@ -1,37 +0,0 @@ -const sharp = require('sharp') -const fs = require('fs') -const mkdirp = require('mkdirp'); -const dirnames = process.mainModule.filename.includes('pro') ? - ['solid', 'linear', 'duotone', 'brand', 'flag'] - : ['free', 'brand', 'flag'] -const dest = 'png/' -let sizes - -const argv = require('minimist')(process.argv.slice(2), { - array: ['sizes'] -}) - -argv.sizes ? sizes = argv.sizes : sizes = [16, 32, 64] - -dirnames.forEach(setName => { - const dirname = `svg/${setName}/` - const svgs = fs.readdirSync(dirname) - - sizes.forEach(size => { - mkdirp(`${dest}${setName}/${size}x${size}/`).then(() => { - svgs.forEach((svg) => { - const file = dirname + svg - sharp(file, { density: 72 * size / 16 }) - .png() - .resize(size, size, {fit: 'inside'}) - .toFile(`${dest}${setName}/${size}x${size}/${svg.replace('svg', 'png')}`) - .then(function(info) { - console.log(info) - }) - .catch(function(err) { - console.log(err) - }) - }) - }) - }) -}) \ No newline at end of file diff --git a/build/build-svg-sprites.js b/build/build-svg-sprites.js deleted file mode 100644 index a161dc92c..000000000 --- a/build/build-svg-sprites.js +++ /dev/null @@ -1,54 +0,0 @@ -const fs = require('fs') -const mkdirp = require('mkdirp'); -const path = require('path') -const dirnames = process.mainModule.filename.includes('pro') ? - ['solid', 'linear', 'duotone', 'brand', 'flag'] - : ['free', 'brand', 'flag'] - -const prefixes = { - brand: 'cib-', - duotone: 'cid-', - flag: 'cif-', - free: 'cil-', - linear: 'cil-', - solid: 'cis-' -} - -const getAttributeValue = (string, attribute) => { - const regex = new RegExp(`${attribute}="([^"]+)"`, 'g') - return string.match(regex, '')[0] - .match(/"(.*?)"/ig, '')[0] - .replace(/"/g, '') -} - -mkdirp('sprites/').then(() => { - dirnames.forEach(setName => { - const dirname = `svg/${setName}/` - const svgs = fs.readdirSync(dirname).filter(element => path.extname(element) === '.svg') - let symbols = [] - svgs.forEach((svg, idx, svgs) => { - let symbol = {} - const file = dirname + svg - const content = fs.readFileSync(file, 'utf8') - const viewBox = getAttributeValue(content, 'viewBox') - const computedContent = - content - .replace(/(]+)>)|(<\/svg>)/ig, '') - .replace(/\n\s\s+/g, '') - .replace(/\n/g, '') - .replace(/"/g, '\'') - .replace('', '') - symbol = `\n ${computedContent}\n` - idx === svgs.length - 1 ? symbols.push(symbol) : symbols.push(`${symbol}\n`) - }) - fs.writeFile( - `sprites/${setName}.svg`, - ``, - () => '' - ) - }) -}) \ No newline at end of file diff --git a/build/build-variables.js b/build/build-variables.js deleted file mode 100644 index 09517095b..000000000 --- a/build/build-variables.js +++ /dev/null @@ -1,46 +0,0 @@ -const fs = require('fs') -const path = require('path') - -const argv = require('minimist')(process.argv.slice(2), { - string: ['type', 'prefix'], - boolean: ['font'] -}) - -const dataDir = path.join(__dirname, '../data') -const scssDir = path.join(__dirname, '../scss', argv.type.toLowerCase()) - -const json = path.join(dataDir, `${argv.type}.json`) - -const unique = (array, key) => array.map(e => e[key]).map((e, i, final) => final.indexOf(e) === i && i).filter(e => array[e]).map(e => array[e]) - -const main = () => { - const rawdata = fs.readFileSync(json) - const icons = JSON.parse(rawdata).sort((a,b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0)) - let content = `$coreui-icons-prefix: "${argv.prefix}-" !default;\n` - - if (argv.font) { - content += `$coreui-icons-font-path: "../fonts" !default;\n` - } - - content += `\n$icons: (\n` - - unique(icons, 'name').forEach(icon => { - const name = icon.name - const unicode = icon.unicode - - if (unicode) { - content += ` "${name}": ${unicode},\n` - } else { - content += ` "${name}",\n` - } - }) - - content += ') !default;' - - fs.writeFile(path.join(scssDir, '_variables.scss'), content, (err) => { - if (err) throw err - console.log('The _variables.scss file has been saved!') - }) -} - -main() \ No newline at end of file diff --git a/build/copy-svg-files.js b/build/copy-svg-files.js deleted file mode 100644 index b5abe228f..000000000 --- a/build/copy-svg-files.js +++ /dev/null @@ -1,42 +0,0 @@ -const fs = require('fs') -const mkdirp = require('mkdirp') -const path = require('path') -const rimraf = require('rimraf') -const { basename } = path -const walkSync = require('./walk-sync.js') - -const argv = require('minimist')(process.argv.slice(2), { - string: ['src', 'prefix'] -}) - -const rawDir = path.join(__dirname, '../raw', argv.src) -const svgDir = path.join(__dirname, '../svg', argv.src.toLowerCase()) - -const main = () => { - rimraf.sync(svgDir) - mkdirp(svgDir, (err) => { - if (err) { - return - } - - const files = walkSync(rawDir).filter(element => path.extname(element) === '.svg') - files.forEach(file => { - if (basename(file).indexOf('#') !== -1) { - const arrayOfFiles = basename(file).replace('.svg', '').split('#') - arrayOfFiles.forEach(singleFile => { - fs.copyFile(file, path.join(svgDir, `${argv.prefix}-${singleFile}.svg`), (err) => { - if (err) throw err - console.log(`${basename(file)} was copied ${svgDir}`) - }) - }) - } else { - fs.copyFile(file, path.join(svgDir, `${argv.prefix}-${basename(file)}`), (err) => { - if (err) throw err - console.log(`${basename(file)} was copied ${svgDir}`) - }) - } - }) - }) -} - -main() \ No newline at end of file diff --git a/build/walk-sync.js b/build/walk-sync.js deleted file mode 100644 index 510846c05..000000000 --- a/build/walk-sync.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' - -const fs = require('fs') -const path = require('path') - -// Get list of all files in directory -const walkSync = (dir, filelist = []) => { - fs.readdirSync(dir).forEach(file => { - filelist = fs.statSync(path.join(dir, file)).isDirectory() ? walkSync(path.join(dir, file), filelist) : filelist.concat(path.join(dir, file)) - }) - return filelist -} - -module.exports = walkSync \ No newline at end of file