second commit

This commit is contained in:
2024-12-27 22:31:23 +09:00
parent 2353324570
commit 10a0f110ca
8819 changed files with 1307198 additions and 28 deletions

39
node_modules/flowbite-datepicker/scripts/build-css.js generated vendored Normal file
View File

@ -0,0 +1,39 @@
const fs = require('fs');
const path = require('path');
const postcss = require('postcss');
const nodeSass = require('postcss-node-sass')({
outputStyle: 'expanded',
});
const autoprefixer = require('autoprefixer');
const syntax = require('postcss-scss');
const rootDir = path.dirname(__dirname);
const srcDir = `${rootDir}/sass`;
const distDir = `${rootDir}/dist/css`;
const files = [
{in: 'datepicker.scss', out: 'datepicker.css'},
{in: 'index-bulma.scss', out: 'datepicker-bulma.css'},
{in: 'index-bs4.scss', out: 'datepicker-bs4.css'},
{in: 'index-bs5.scss', out: 'datepicker-bs5.css'},
{in: 'index-foundation.scss', out: 'datepicker-foundation.css'},
];
if (!fs.existsSync(distDir)) {
fs.mkdirSync(distDir, {recursive: true});
}
Promise.all(files.map((entry) => {
return new Promise((resolve) => {
const from = `${srcDir}/${entry.in}`;
const file = fs.readFileSync(from, 'utf8');
postcss([nodeSass, autoprefixer])
.process(file, {syntax, from, map: false})
.then((result) => {
fs.writeFileSync(`${distDir}/${entry.out}`, result.css);
resolve();
})
.catch((err) => {
console.error(err);
});
});
}));

View File

@ -0,0 +1,26 @@
const fs = require('fs');
const path = require('path');
const rootDir = path.dirname(__dirname);
const srcDir = `${rootDir}/js/i18n/locales`;
const distDir = `${rootDir}/dist/js/locales`;
const reConvert = /export default (\{\s+)([\w'-]+):([\s\S]+\})\n\};/m;
const rePropNameFix = /\.('\w+-\w+')/;
if (fs.existsSync(distDir)) {
// empty dist dir
fs.readdirSync(distDir).forEach((file) => {
fs.unlinkSync(`${distDir}/${file}`);
});
} else {
fs.mkdirSync(distDir, {recursive: true});
}
// copy locales to dist
fs.readdirSync(srcDir).forEach((file) => {
const src = fs.readFileSync(`${srcDir}/${file}`, 'utf8');
const output = src
.replace(reConvert, '(function () $1Datepicker.locales.$2 =$3;\n}());')
.replace(rePropNameFix, '[$1]');
fs.writeFileSync(`${distDir}/${file}`, output);
});

View File

@ -0,0 +1,65 @@
const fs = require('fs');
const path = require('path');
const usage = `USAGE:
node ${path.basename(process.argv[1])} [options] source_dir
source_dir: path to the locale directory of bootstrap-datepicker's source
Options:
-h|--help print this help
`;
const src = process.argv[2];
if (!src || src === '-h' || src === '--help') {
console.log(usage);
process.exit();
}
if (!fs.existsSync(src) || !fs.statSync(src).isDirectory()) {
console.error(`${src} is not a directory.`);
process.exit(1);
}
const reFilename = /^bootstrap-datepicker\.([a-z]+(-[A-Za-z]+)?)\.js$/;
const files = fs.readdirSync(src);
if (files.length < 2 || !reFilename.test(files[1])) {
console.error(`${src} is not a bootstrap-datepicker's locale directory.`);
process.exit(1);
}
const destDir = path.resolve(__dirname, '../js/i18n/locales');
if (!fs.existsSync(destDir)) {
fs.mkdirSync(destDir, {recursive: true});
}
files.forEach(file => {
const matched = file.match(reFilename);
if (!matched) {
return;
}
const lang = matched[1].replace('latin', 'latn');
if (lang === 'en-US') {
return;
}
const langKey = lang.indexOf('-') > -1 ? `'${lang}'` : lang;
let contents = fs.readFileSync(path.resolve(src, file), 'utf8');
if (contents.indexOf('DEPRECATED') > -1) {
return;
}
contents = contents
.replace(/\t/g, ' ')
.replace(/; *\( *function *\( *\$ *\) *\{/, 'export default {')
.replace(/ *\$\.fn\.datepicker\.dates\[.+?\] =/, ` ${langKey}:`)
.replace(/ *};/, ' }')
.replace(/ *\} *\( *jQuery *\) *\);\s*/, '};\n')
.replace(/ {5,}/g, ' ')
.replace(/: *(\S)/g, ': $1')
.replace(/ +\n/g, '\n')
.replace(/(titleFormat:.+)yyyy/, '$1y');
fs.writeFileSync(path.resolve(destDir, `${lang}.js`), contents);
});

31
node_modules/flowbite-datepicker/scripts/minify-css.js generated vendored Normal file
View File

@ -0,0 +1,31 @@
const fs = require('fs');
const path = require('path');
const postcss = require('postcss');
const cssnano = require('cssnano');
const distDir = `${path.dirname(__dirname)}/dist/css`;
const files = [
'datepicker',
'datepicker-bulma',
'datepicker-bs4',
'datepicker-bs5',
'datepicker-foundation',
];
Promise.all(files.map((basename) => {
return new Promise((resolve) => {
const fileNameBase = `${distDir}/${basename}`;
const from = `${fileNameBase}.css`;
const file = fs.readFileSync(from, 'utf8');
postcss([cssnano])
.process(file, {from, map: false})
.then((result) => {
fs.writeFileSync(`${fileNameBase}.min.css`, result.css);
resolve();
})
.catch((err) => {
console.error(err);
});
});
}));

17
node_modules/flowbite-datepicker/scripts/minify-js.js generated vendored Normal file
View File

@ -0,0 +1,17 @@
const fs = require('fs');
const path = require('path');
const {minify} = require('uglify-es');
const distDir = `${path.dirname(__dirname)}/dist/js`;
const files = ['datepicker', 'datepicker-full'];
files.forEach((basename) => {
const fileNameBase = `${distDir}/${basename}`;
const file = fs.readFileSync(`${fileNameBase}.js`, 'utf8');
const {code, error} = minify(file);
if (error) {
throw error;
}
fs.writeFileSync(`${fileNameBase}.min.js`, code);
});