From 589e136883c7b42b0ce1c4ef719f32844db8d856 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Fri, 26 Mar 2021 22:16:10 +0100 Subject: [PATCH] Add flag icons --- modules/webapp/src/main/styles/index.css | 1 + package-lock.json | 5 +++++ package.json | 1 + project/StylesPlugin.scala | 20 +++++++++++++++++++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/webapp/src/main/styles/index.css b/modules/webapp/src/main/styles/index.css index 0639a27c..274ad20a 100644 --- a/modules/webapp/src/main/styles/index.css +++ b/modules/webapp/src/main/styles/index.css @@ -1,4 +1,5 @@ @import "@fortawesome/fontawesome-free/css/all"; +@import "flag-icon-css/css/flag-icon.min"; /* all @import must be above this line */ diff --git a/package-lock.json b/package-lock.json index f89bc676..770872b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -769,6 +769,11 @@ "to-regex-range": "^5.0.1" } }, + "flag-icon-css": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/flag-icon-css/-/flag-icon-css-3.5.0.tgz", + "integrity": "sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew==" + }, "fraction.js": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", diff --git a/package.json b/package.json index 74ff9aee..2a30eba9 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@tailwindcss/forms": "^0.2.1", "autoprefixer": "^10.2.5", "cssnano": "^4.1.10", + "flag-icon-css": "^3.5.0", "postcss": "^8.2.8", "postcss-cli": "^8.3.1", "postcss-import": "^14.0.0", diff --git a/project/StylesPlugin.scala b/project/StylesPlugin.scala index ce6f1d1e..e41af9c8 100644 --- a/project/StylesPlugin.scala +++ b/project/StylesPlugin.scala @@ -54,7 +54,8 @@ object StylesPlugin extends AutoPlugin { val mode = stylesMode.value npmInstall(npm, wd, logger) val files = postCss(npx, inDir, outDir, wd, mode, logger) ++ - copyWebfonts(wd, outDir, logger) + copyWebfonts(wd, outDir, logger) ++ + copyFlags(wd, outDir, logger) logger.info("Styles built") files }, @@ -63,6 +64,7 @@ object StylesPlugin extends AutoPlugin { val npm = stylesNpmCommand.value val wd = (LocalRootProject / baseDirectory).value npmInstall(npm, wd, logger) + } ) @@ -118,4 +120,20 @@ object StylesPlugin extends AutoPlugin { IO.copy(fontDir.listFiles().map(f => f -> targetDir / f.name).toSeq) IO.listFiles(targetDir).toSeq } + + def copyFlags(baseDir: File, outDir: File, logger: Logger): Seq[File] = { + val flagDir = + baseDir / "node_modules" / "flag-icon-css" / "flags" + val targetDir = outDir / "flags" + IO.createDirectory(targetDir) + + val files = (flagDir ** "*") + .filter(_.isFile) + .get + .pair(Path.relativeTo(flagDir)) + .map(t => (t._1, targetDir / t._2)) + + IO.copy(files) + (targetDir ** "*.svg").get() + } }