diff --git a/.idea/sbt.xml b/.idea/sbt.xml
index 82c7d23..b88b86a 100644
--- a/.idea/sbt.xml
+++ b/.idea/sbt.xml
@@ -13,6 +13,7 @@
+
diff --git a/.idea/scala_compiler.xml b/.idea/scala_compiler.xml
index d39cd43..0e77640 100644
--- a/.idea/scala_compiler.xml
+++ b/.idea/scala_compiler.xml
@@ -47,7 +47,7 @@
-
+
@@ -61,7 +61,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
diff --git a/build.sbt b/build.sbt
index 4ab991b..c585a4e 100644
--- a/build.sbt
+++ b/build.sbt
@@ -10,7 +10,7 @@ lazy val global = project
.in(file("."))
.settings(settings)
.disablePlugins(AssemblyPlugin)
- .aggregate(common.jvm, common.js, backend, frontend)
+ .aggregate(common.jvm, common.js, backend, frontend, macroSub)
lazy val common = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Pure)
@@ -31,10 +31,22 @@ lazy val frontend = project
.settings(name := "frontend",
settings,
libraryDependencies ++= dependencies.js.value,
- scalaJSUseMainModuleInitializer := true)
+ scalaJSUseMainModuleInitializer := true,
+ // include the macro classes and resources in the main js
+ Compile / packageBin / mappings ++= (macroSub / Compile / packageBin / mappings).value,
+ // include the macro sources in the main source js
+ Compile / packageSrc / mappings ++= (macroSub / Compile / packageSrc / mappings).value)
.disablePlugins(AssemblyPlugin)
.enablePlugins(ScalaJSPlugin)
.dependsOn(common.js)
+ .dependsOn(macroSub % "compile-internal, test-internal")
+
+lazy val macroSub = (project in file("macro"))
+ .settings(name := "macro",
+ commonSettings,
+ libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value)
+ .disablePlugins(AssemblyPlugin)
+ .enablePlugins(ScalaJSPlugin)
// Settings
lazy val compilerOptions = Seq("-unchecked", "-feature", "-deprecation", "-Wunused:imports", "-Ymacro-annotations",
diff --git a/frontend/src/main/resources/public/icons/academic-cap.svg b/frontend/src/main/resources/icons/academic-cap.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/academic-cap.svg
rename to frontend/src/main/resources/icons/academic-cap.svg
diff --git a/frontend/src/main/resources/public/icons/adjustments.svg b/frontend/src/main/resources/icons/adjustments.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/adjustments.svg
rename to frontend/src/main/resources/icons/adjustments.svg
diff --git a/frontend/src/main/resources/public/icons/annotation.svg b/frontend/src/main/resources/icons/annotation.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/annotation.svg
rename to frontend/src/main/resources/icons/annotation.svg
diff --git a/frontend/src/main/resources/public/icons/archive.svg b/frontend/src/main/resources/icons/archive.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/archive.svg
rename to frontend/src/main/resources/icons/archive.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-circle-down.svg b/frontend/src/main/resources/icons/arrow-circle-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-circle-down.svg
rename to frontend/src/main/resources/icons/arrow-circle-down.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-circle-left.svg b/frontend/src/main/resources/icons/arrow-circle-left.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-circle-left.svg
rename to frontend/src/main/resources/icons/arrow-circle-left.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-circle-right.svg b/frontend/src/main/resources/icons/arrow-circle-right.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-circle-right.svg
rename to frontend/src/main/resources/icons/arrow-circle-right.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-circle-up.svg b/frontend/src/main/resources/icons/arrow-circle-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-circle-up.svg
rename to frontend/src/main/resources/icons/arrow-circle-up.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-down.svg b/frontend/src/main/resources/icons/arrow-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-down.svg
rename to frontend/src/main/resources/icons/arrow-down.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-left.svg b/frontend/src/main/resources/icons/arrow-left.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-left.svg
rename to frontend/src/main/resources/icons/arrow-left.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-narrow-down.svg b/frontend/src/main/resources/icons/arrow-narrow-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-narrow-down.svg
rename to frontend/src/main/resources/icons/arrow-narrow-down.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-narrow-left.svg b/frontend/src/main/resources/icons/arrow-narrow-left.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-narrow-left.svg
rename to frontend/src/main/resources/icons/arrow-narrow-left.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-narrow-right.svg b/frontend/src/main/resources/icons/arrow-narrow-right.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-narrow-right.svg
rename to frontend/src/main/resources/icons/arrow-narrow-right.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-narrow-up.svg b/frontend/src/main/resources/icons/arrow-narrow-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-narrow-up.svg
rename to frontend/src/main/resources/icons/arrow-narrow-up.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-right.svg b/frontend/src/main/resources/icons/arrow-right.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-right.svg
rename to frontend/src/main/resources/icons/arrow-right.svg
diff --git a/frontend/src/main/resources/public/icons/arrow-up.svg b/frontend/src/main/resources/icons/arrow-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrow-up.svg
rename to frontend/src/main/resources/icons/arrow-up.svg
diff --git a/frontend/src/main/resources/public/icons/arrows-expand.svg b/frontend/src/main/resources/icons/arrows-expand.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/arrows-expand.svg
rename to frontend/src/main/resources/icons/arrows-expand.svg
diff --git a/frontend/src/main/resources/public/icons/at-symbol.svg b/frontend/src/main/resources/icons/at-symbol.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/at-symbol.svg
rename to frontend/src/main/resources/icons/at-symbol.svg
diff --git a/frontend/src/main/resources/public/icons/backspace.svg b/frontend/src/main/resources/icons/backspace.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/backspace.svg
rename to frontend/src/main/resources/icons/backspace.svg
diff --git a/frontend/src/main/resources/public/icons/badge-check.svg b/frontend/src/main/resources/icons/badge-check.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/badge-check.svg
rename to frontend/src/main/resources/icons/badge-check.svg
diff --git a/frontend/src/main/resources/public/icons/ban.svg b/frontend/src/main/resources/icons/ban.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/ban.svg
rename to frontend/src/main/resources/icons/ban.svg
diff --git a/frontend/src/main/resources/public/icons/beaker.svg b/frontend/src/main/resources/icons/beaker.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/beaker.svg
rename to frontend/src/main/resources/icons/beaker.svg
diff --git a/frontend/src/main/resources/public/icons/bell.svg b/frontend/src/main/resources/icons/bell.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/bell.svg
rename to frontend/src/main/resources/icons/bell.svg
diff --git a/frontend/src/main/resources/public/icons/book-open.svg b/frontend/src/main/resources/icons/book-open.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/book-open.svg
rename to frontend/src/main/resources/icons/book-open.svg
diff --git a/frontend/src/main/resources/public/icons/bookmark-alt.svg b/frontend/src/main/resources/icons/bookmark-alt.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/bookmark-alt.svg
rename to frontend/src/main/resources/icons/bookmark-alt.svg
diff --git a/frontend/src/main/resources/public/icons/bookmark.svg b/frontend/src/main/resources/icons/bookmark.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/bookmark.svg
rename to frontend/src/main/resources/icons/bookmark.svg
diff --git a/frontend/src/main/resources/public/icons/briefcase.svg b/frontend/src/main/resources/icons/briefcase.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/briefcase.svg
rename to frontend/src/main/resources/icons/briefcase.svg
diff --git a/frontend/src/main/resources/public/icons/cake.svg b/frontend/src/main/resources/icons/cake.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cake.svg
rename to frontend/src/main/resources/icons/cake.svg
diff --git a/frontend/src/main/resources/public/icons/calculator.svg b/frontend/src/main/resources/icons/calculator.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/calculator.svg
rename to frontend/src/main/resources/icons/calculator.svg
diff --git a/frontend/src/main/resources/public/icons/calendar.svg b/frontend/src/main/resources/icons/calendar.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/calendar.svg
rename to frontend/src/main/resources/icons/calendar.svg
diff --git a/frontend/src/main/resources/public/icons/camera.svg b/frontend/src/main/resources/icons/camera.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/camera.svg
rename to frontend/src/main/resources/icons/camera.svg
diff --git a/frontend/src/main/resources/public/icons/cash.svg b/frontend/src/main/resources/icons/cash.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cash.svg
rename to frontend/src/main/resources/icons/cash.svg
diff --git a/frontend/src/main/resources/public/icons/chart-bar.svg b/frontend/src/main/resources/icons/chart-bar.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chart-bar.svg
rename to frontend/src/main/resources/icons/chart-bar.svg
diff --git a/frontend/src/main/resources/public/icons/chart-pie.svg b/frontend/src/main/resources/icons/chart-pie.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chart-pie.svg
rename to frontend/src/main/resources/icons/chart-pie.svg
diff --git a/frontend/src/main/resources/public/icons/chart-square-bar.svg b/frontend/src/main/resources/icons/chart-square-bar.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chart-square-bar.svg
rename to frontend/src/main/resources/icons/chart-square-bar.svg
diff --git a/frontend/src/main/resources/public/icons/chat-alt-2.svg b/frontend/src/main/resources/icons/chat-alt-2.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chat-alt-2.svg
rename to frontend/src/main/resources/icons/chat-alt-2.svg
diff --git a/frontend/src/main/resources/public/icons/chat-alt.svg b/frontend/src/main/resources/icons/chat-alt.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chat-alt.svg
rename to frontend/src/main/resources/icons/chat-alt.svg
diff --git a/frontend/src/main/resources/public/icons/chat.svg b/frontend/src/main/resources/icons/chat.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chat.svg
rename to frontend/src/main/resources/icons/chat.svg
diff --git a/frontend/src/main/resources/public/icons/check-circle.svg b/frontend/src/main/resources/icons/check-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/check-circle.svg
rename to frontend/src/main/resources/icons/check-circle.svg
diff --git a/frontend/src/main/resources/public/icons/check.svg b/frontend/src/main/resources/icons/check.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/check.svg
rename to frontend/src/main/resources/icons/check.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-double-down.svg b/frontend/src/main/resources/icons/chevron-double-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-double-down.svg
rename to frontend/src/main/resources/icons/chevron-double-down.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-double-left.svg b/frontend/src/main/resources/icons/chevron-double-left.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-double-left.svg
rename to frontend/src/main/resources/icons/chevron-double-left.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-double-right.svg b/frontend/src/main/resources/icons/chevron-double-right.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-double-right.svg
rename to frontend/src/main/resources/icons/chevron-double-right.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-double-up.svg b/frontend/src/main/resources/icons/chevron-double-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-double-up.svg
rename to frontend/src/main/resources/icons/chevron-double-up.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-down.svg b/frontend/src/main/resources/icons/chevron-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-down.svg
rename to frontend/src/main/resources/icons/chevron-down.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-left.svg b/frontend/src/main/resources/icons/chevron-left.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-left.svg
rename to frontend/src/main/resources/icons/chevron-left.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-right.svg b/frontend/src/main/resources/icons/chevron-right.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-right.svg
rename to frontend/src/main/resources/icons/chevron-right.svg
diff --git a/frontend/src/main/resources/public/icons/chevron-up.svg b/frontend/src/main/resources/icons/chevron-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chevron-up.svg
rename to frontend/src/main/resources/icons/chevron-up.svg
diff --git a/frontend/src/main/resources/public/icons/chip.svg b/frontend/src/main/resources/icons/chip.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/chip.svg
rename to frontend/src/main/resources/icons/chip.svg
diff --git a/frontend/src/main/resources/public/icons/clipboard-check.svg b/frontend/src/main/resources/icons/clipboard-check.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/clipboard-check.svg
rename to frontend/src/main/resources/icons/clipboard-check.svg
diff --git a/frontend/src/main/resources/public/icons/clipboard-copy.svg b/frontend/src/main/resources/icons/clipboard-copy.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/clipboard-copy.svg
rename to frontend/src/main/resources/icons/clipboard-copy.svg
diff --git a/frontend/src/main/resources/public/icons/clipboard-list.svg b/frontend/src/main/resources/icons/clipboard-list.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/clipboard-list.svg
rename to frontend/src/main/resources/icons/clipboard-list.svg
diff --git a/frontend/src/main/resources/public/icons/clipboard.svg b/frontend/src/main/resources/icons/clipboard.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/clipboard.svg
rename to frontend/src/main/resources/icons/clipboard.svg
diff --git a/frontend/src/main/resources/public/icons/clock.svg b/frontend/src/main/resources/icons/clock.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/clock.svg
rename to frontend/src/main/resources/icons/clock.svg
diff --git a/frontend/src/main/resources/public/icons/cloud-download.svg b/frontend/src/main/resources/icons/cloud-download.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cloud-download.svg
rename to frontend/src/main/resources/icons/cloud-download.svg
diff --git a/frontend/src/main/resources/public/icons/cloud-upload.svg b/frontend/src/main/resources/icons/cloud-upload.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cloud-upload.svg
rename to frontend/src/main/resources/icons/cloud-upload.svg
diff --git a/frontend/src/main/resources/public/icons/cloud.svg b/frontend/src/main/resources/icons/cloud.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cloud.svg
rename to frontend/src/main/resources/icons/cloud.svg
diff --git a/frontend/src/main/resources/public/icons/code.svg b/frontend/src/main/resources/icons/code.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/code.svg
rename to frontend/src/main/resources/icons/code.svg
diff --git a/frontend/src/main/resources/public/icons/cog.svg b/frontend/src/main/resources/icons/cog.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cog.svg
rename to frontend/src/main/resources/icons/cog.svg
diff --git a/frontend/src/main/resources/public/icons/collection.svg b/frontend/src/main/resources/icons/collection.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/collection.svg
rename to frontend/src/main/resources/icons/collection.svg
diff --git a/frontend/src/main/resources/public/icons/color-swatch.svg b/frontend/src/main/resources/icons/color-swatch.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/color-swatch.svg
rename to frontend/src/main/resources/icons/color-swatch.svg
diff --git a/frontend/src/main/resources/public/icons/credit-card.svg b/frontend/src/main/resources/icons/credit-card.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/credit-card.svg
rename to frontend/src/main/resources/icons/credit-card.svg
diff --git a/frontend/src/main/resources/public/icons/cube-transparent.svg b/frontend/src/main/resources/icons/cube-transparent.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cube-transparent.svg
rename to frontend/src/main/resources/icons/cube-transparent.svg
diff --git a/frontend/src/main/resources/public/icons/cube.svg b/frontend/src/main/resources/icons/cube.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cube.svg
rename to frontend/src/main/resources/icons/cube.svg
diff --git a/frontend/src/main/resources/public/icons/currency-bangladeshi.svg b/frontend/src/main/resources/icons/currency-bangladeshi.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/currency-bangladeshi.svg
rename to frontend/src/main/resources/icons/currency-bangladeshi.svg
diff --git a/frontend/src/main/resources/public/icons/currency-dollar.svg b/frontend/src/main/resources/icons/currency-dollar.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/currency-dollar.svg
rename to frontend/src/main/resources/icons/currency-dollar.svg
diff --git a/frontend/src/main/resources/public/icons/currency-euro.svg b/frontend/src/main/resources/icons/currency-euro.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/currency-euro.svg
rename to frontend/src/main/resources/icons/currency-euro.svg
diff --git a/frontend/src/main/resources/public/icons/currency-pound.svg b/frontend/src/main/resources/icons/currency-pound.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/currency-pound.svg
rename to frontend/src/main/resources/icons/currency-pound.svg
diff --git a/frontend/src/main/resources/public/icons/currency-rupee.svg b/frontend/src/main/resources/icons/currency-rupee.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/currency-rupee.svg
rename to frontend/src/main/resources/icons/currency-rupee.svg
diff --git a/frontend/src/main/resources/public/icons/currency-yen.svg b/frontend/src/main/resources/icons/currency-yen.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/currency-yen.svg
rename to frontend/src/main/resources/icons/currency-yen.svg
diff --git a/frontend/src/main/resources/public/icons/cursor-click.svg b/frontend/src/main/resources/icons/cursor-click.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/cursor-click.svg
rename to frontend/src/main/resources/icons/cursor-click.svg
diff --git a/frontend/src/main/resources/public/icons/database.svg b/frontend/src/main/resources/icons/database.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/database.svg
rename to frontend/src/main/resources/icons/database.svg
diff --git a/frontend/src/main/resources/public/icons/desktop-computer.svg b/frontend/src/main/resources/icons/desktop-computer.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/desktop-computer.svg
rename to frontend/src/main/resources/icons/desktop-computer.svg
diff --git a/frontend/src/main/resources/public/icons/device-mobile.svg b/frontend/src/main/resources/icons/device-mobile.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/device-mobile.svg
rename to frontend/src/main/resources/icons/device-mobile.svg
diff --git a/frontend/src/main/resources/public/icons/device-tablet.svg b/frontend/src/main/resources/icons/device-tablet.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/device-tablet.svg
rename to frontend/src/main/resources/icons/device-tablet.svg
diff --git a/frontend/src/main/resources/public/icons/document-add.svg b/frontend/src/main/resources/icons/document-add.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-add.svg
rename to frontend/src/main/resources/icons/document-add.svg
diff --git a/frontend/src/main/resources/public/icons/document-download.svg b/frontend/src/main/resources/icons/document-download.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-download.svg
rename to frontend/src/main/resources/icons/document-download.svg
diff --git a/frontend/src/main/resources/public/icons/document-duplicate.svg b/frontend/src/main/resources/icons/document-duplicate.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-duplicate.svg
rename to frontend/src/main/resources/icons/document-duplicate.svg
diff --git a/frontend/src/main/resources/public/icons/document-remove.svg b/frontend/src/main/resources/icons/document-remove.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-remove.svg
rename to frontend/src/main/resources/icons/document-remove.svg
diff --git a/frontend/src/main/resources/public/icons/document-report.svg b/frontend/src/main/resources/icons/document-report.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-report.svg
rename to frontend/src/main/resources/icons/document-report.svg
diff --git a/frontend/src/main/resources/public/icons/document-search.svg b/frontend/src/main/resources/icons/document-search.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-search.svg
rename to frontend/src/main/resources/icons/document-search.svg
diff --git a/frontend/src/main/resources/public/icons/document-text.svg b/frontend/src/main/resources/icons/document-text.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document-text.svg
rename to frontend/src/main/resources/icons/document-text.svg
diff --git a/frontend/src/main/resources/public/icons/document.svg b/frontend/src/main/resources/icons/document.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/document.svg
rename to frontend/src/main/resources/icons/document.svg
diff --git a/frontend/src/main/resources/public/icons/dots-circle-horizontal.svg b/frontend/src/main/resources/icons/dots-circle-horizontal.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/dots-circle-horizontal.svg
rename to frontend/src/main/resources/icons/dots-circle-horizontal.svg
diff --git a/frontend/src/main/resources/public/icons/dots-horizontal.svg b/frontend/src/main/resources/icons/dots-horizontal.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/dots-horizontal.svg
rename to frontend/src/main/resources/icons/dots-horizontal.svg
diff --git a/frontend/src/main/resources/public/icons/dots-vertical.svg b/frontend/src/main/resources/icons/dots-vertical.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/dots-vertical.svg
rename to frontend/src/main/resources/icons/dots-vertical.svg
diff --git a/frontend/src/main/resources/public/icons/download.svg b/frontend/src/main/resources/icons/download.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/download.svg
rename to frontend/src/main/resources/icons/download.svg
diff --git a/frontend/src/main/resources/public/icons/duplicate.svg b/frontend/src/main/resources/icons/duplicate.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/duplicate.svg
rename to frontend/src/main/resources/icons/duplicate.svg
diff --git a/frontend/src/main/resources/public/icons/emoji-happy.svg b/frontend/src/main/resources/icons/emoji-happy.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/emoji-happy.svg
rename to frontend/src/main/resources/icons/emoji-happy.svg
diff --git a/frontend/src/main/resources/public/icons/emoji-sad.svg b/frontend/src/main/resources/icons/emoji-sad.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/emoji-sad.svg
rename to frontend/src/main/resources/icons/emoji-sad.svg
diff --git a/frontend/src/main/resources/public/icons/exclamation-circle.svg b/frontend/src/main/resources/icons/exclamation-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/exclamation-circle.svg
rename to frontend/src/main/resources/icons/exclamation-circle.svg
diff --git a/frontend/src/main/resources/public/icons/exclamation.svg b/frontend/src/main/resources/icons/exclamation.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/exclamation.svg
rename to frontend/src/main/resources/icons/exclamation.svg
diff --git a/frontend/src/main/resources/public/icons/external-link.svg b/frontend/src/main/resources/icons/external-link.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/external-link.svg
rename to frontend/src/main/resources/icons/external-link.svg
diff --git a/frontend/src/main/resources/public/icons/eye-off.svg b/frontend/src/main/resources/icons/eye-off.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/eye-off.svg
rename to frontend/src/main/resources/icons/eye-off.svg
diff --git a/frontend/src/main/resources/public/icons/eye.svg b/frontend/src/main/resources/icons/eye.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/eye.svg
rename to frontend/src/main/resources/icons/eye.svg
diff --git a/frontend/src/main/resources/public/icons/fast-forward.svg b/frontend/src/main/resources/icons/fast-forward.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/fast-forward.svg
rename to frontend/src/main/resources/icons/fast-forward.svg
diff --git a/frontend/src/main/resources/public/icons/film.svg b/frontend/src/main/resources/icons/film.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/film.svg
rename to frontend/src/main/resources/icons/film.svg
diff --git a/frontend/src/main/resources/public/icons/filter.svg b/frontend/src/main/resources/icons/filter.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/filter.svg
rename to frontend/src/main/resources/icons/filter.svg
diff --git a/frontend/src/main/resources/public/icons/finger-print.svg b/frontend/src/main/resources/icons/finger-print.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/finger-print.svg
rename to frontend/src/main/resources/icons/finger-print.svg
diff --git a/frontend/src/main/resources/public/icons/fire.svg b/frontend/src/main/resources/icons/fire.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/fire.svg
rename to frontend/src/main/resources/icons/fire.svg
diff --git a/frontend/src/main/resources/public/icons/flag.svg b/frontend/src/main/resources/icons/flag.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/flag.svg
rename to frontend/src/main/resources/icons/flag.svg
diff --git a/frontend/src/main/resources/public/icons/folder-add.svg b/frontend/src/main/resources/icons/folder-add.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/folder-add.svg
rename to frontend/src/main/resources/icons/folder-add.svg
diff --git a/frontend/src/main/resources/public/icons/folder-download.svg b/frontend/src/main/resources/icons/folder-download.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/folder-download.svg
rename to frontend/src/main/resources/icons/folder-download.svg
diff --git a/frontend/src/main/resources/public/icons/folder-open.svg b/frontend/src/main/resources/icons/folder-open.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/folder-open.svg
rename to frontend/src/main/resources/icons/folder-open.svg
diff --git a/frontend/src/main/resources/public/icons/folder-remove.svg b/frontend/src/main/resources/icons/folder-remove.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/folder-remove.svg
rename to frontend/src/main/resources/icons/folder-remove.svg
diff --git a/frontend/src/main/resources/public/icons/folder.svg b/frontend/src/main/resources/icons/folder.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/folder.svg
rename to frontend/src/main/resources/icons/folder.svg
diff --git a/frontend/src/main/resources/public/icons/gift.svg b/frontend/src/main/resources/icons/gift.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/gift.svg
rename to frontend/src/main/resources/icons/gift.svg
diff --git a/frontend/src/main/resources/public/icons/globe-alt.svg b/frontend/src/main/resources/icons/globe-alt.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/globe-alt.svg
rename to frontend/src/main/resources/icons/globe-alt.svg
diff --git a/frontend/src/main/resources/public/icons/globe.svg b/frontend/src/main/resources/icons/globe.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/globe.svg
rename to frontend/src/main/resources/icons/globe.svg
diff --git a/frontend/src/main/resources/public/icons/hand.svg b/frontend/src/main/resources/icons/hand.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/hand.svg
rename to frontend/src/main/resources/icons/hand.svg
diff --git a/frontend/src/main/resources/public/icons/hashtag.svg b/frontend/src/main/resources/icons/hashtag.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/hashtag.svg
rename to frontend/src/main/resources/icons/hashtag.svg
diff --git a/frontend/src/main/resources/public/icons/heart.svg b/frontend/src/main/resources/icons/heart.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/heart.svg
rename to frontend/src/main/resources/icons/heart.svg
diff --git a/frontend/src/main/resources/public/icons/home.svg b/frontend/src/main/resources/icons/home.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/home.svg
rename to frontend/src/main/resources/icons/home.svg
diff --git a/frontend/src/main/resources/public/icons/identification.svg b/frontend/src/main/resources/icons/identification.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/identification.svg
rename to frontend/src/main/resources/icons/identification.svg
diff --git a/frontend/src/main/resources/public/icons/inbox-in.svg b/frontend/src/main/resources/icons/inbox-in.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/inbox-in.svg
rename to frontend/src/main/resources/icons/inbox-in.svg
diff --git a/frontend/src/main/resources/public/icons/inbox.svg b/frontend/src/main/resources/icons/inbox.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/inbox.svg
rename to frontend/src/main/resources/icons/inbox.svg
diff --git a/frontend/src/main/resources/public/icons/information-circle.svg b/frontend/src/main/resources/icons/information-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/information-circle.svg
rename to frontend/src/main/resources/icons/information-circle.svg
diff --git a/frontend/src/main/resources/public/icons/key.svg b/frontend/src/main/resources/icons/key.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/key.svg
rename to frontend/src/main/resources/icons/key.svg
diff --git a/frontend/src/main/resources/public/icons/library.svg b/frontend/src/main/resources/icons/library.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/library.svg
rename to frontend/src/main/resources/icons/library.svg
diff --git a/frontend/src/main/resources/public/icons/light-bulb.svg b/frontend/src/main/resources/icons/light-bulb.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/light-bulb.svg
rename to frontend/src/main/resources/icons/light-bulb.svg
diff --git a/frontend/src/main/resources/public/icons/lightning-bolt.svg b/frontend/src/main/resources/icons/lightning-bolt.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/lightning-bolt.svg
rename to frontend/src/main/resources/icons/lightning-bolt.svg
diff --git a/frontend/src/main/resources/public/icons/link.svg b/frontend/src/main/resources/icons/link.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/link.svg
rename to frontend/src/main/resources/icons/link.svg
diff --git a/frontend/src/main/resources/public/icons/location-marker.svg b/frontend/src/main/resources/icons/location-marker.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/location-marker.svg
rename to frontend/src/main/resources/icons/location-marker.svg
diff --git a/frontend/src/main/resources/public/icons/lock-closed.svg b/frontend/src/main/resources/icons/lock-closed.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/lock-closed.svg
rename to frontend/src/main/resources/icons/lock-closed.svg
diff --git a/frontend/src/main/resources/public/icons/lock-open.svg b/frontend/src/main/resources/icons/lock-open.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/lock-open.svg
rename to frontend/src/main/resources/icons/lock-open.svg
diff --git a/frontend/src/main/resources/public/icons/login.svg b/frontend/src/main/resources/icons/login.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/login.svg
rename to frontend/src/main/resources/icons/login.svg
diff --git a/frontend/src/main/resources/public/icons/logout.svg b/frontend/src/main/resources/icons/logout.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/logout.svg
rename to frontend/src/main/resources/icons/logout.svg
diff --git a/frontend/src/main/resources/public/icons/mail-open.svg b/frontend/src/main/resources/icons/mail-open.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/mail-open.svg
rename to frontend/src/main/resources/icons/mail-open.svg
diff --git a/frontend/src/main/resources/public/icons/mail.svg b/frontend/src/main/resources/icons/mail.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/mail.svg
rename to frontend/src/main/resources/icons/mail.svg
diff --git a/frontend/src/main/resources/public/icons/map.svg b/frontend/src/main/resources/icons/map.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/map.svg
rename to frontend/src/main/resources/icons/map.svg
diff --git a/frontend/src/main/resources/public/icons/menu-alt-1.svg b/frontend/src/main/resources/icons/menu-alt-1.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/menu-alt-1.svg
rename to frontend/src/main/resources/icons/menu-alt-1.svg
diff --git a/frontend/src/main/resources/public/icons/menu-alt-2.svg b/frontend/src/main/resources/icons/menu-alt-2.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/menu-alt-2.svg
rename to frontend/src/main/resources/icons/menu-alt-2.svg
diff --git a/frontend/src/main/resources/public/icons/menu-alt-3.svg b/frontend/src/main/resources/icons/menu-alt-3.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/menu-alt-3.svg
rename to frontend/src/main/resources/icons/menu-alt-3.svg
diff --git a/frontend/src/main/resources/public/icons/menu-alt-4.svg b/frontend/src/main/resources/icons/menu-alt-4.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/menu-alt-4.svg
rename to frontend/src/main/resources/icons/menu-alt-4.svg
diff --git a/frontend/src/main/resources/public/icons/menu.svg b/frontend/src/main/resources/icons/menu.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/menu.svg
rename to frontend/src/main/resources/icons/menu.svg
diff --git a/frontend/src/main/resources/public/icons/microphone.svg b/frontend/src/main/resources/icons/microphone.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/microphone.svg
rename to frontend/src/main/resources/icons/microphone.svg
diff --git a/frontend/src/main/resources/public/icons/minus-circle.svg b/frontend/src/main/resources/icons/minus-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/minus-circle.svg
rename to frontend/src/main/resources/icons/minus-circle.svg
diff --git a/frontend/src/main/resources/public/icons/minus-sm.svg b/frontend/src/main/resources/icons/minus-sm.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/minus-sm.svg
rename to frontend/src/main/resources/icons/minus-sm.svg
diff --git a/frontend/src/main/resources/public/icons/minus.svg b/frontend/src/main/resources/icons/minus.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/minus.svg
rename to frontend/src/main/resources/icons/minus.svg
diff --git a/frontend/src/main/resources/public/icons/moon.svg b/frontend/src/main/resources/icons/moon.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/moon.svg
rename to frontend/src/main/resources/icons/moon.svg
diff --git a/frontend/src/main/resources/public/icons/music-note.svg b/frontend/src/main/resources/icons/music-note.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/music-note.svg
rename to frontend/src/main/resources/icons/music-note.svg
diff --git a/frontend/src/main/resources/public/icons/newspaper.svg b/frontend/src/main/resources/icons/newspaper.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/newspaper.svg
rename to frontend/src/main/resources/icons/newspaper.svg
diff --git a/frontend/src/main/resources/public/icons/office-building.svg b/frontend/src/main/resources/icons/office-building.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/office-building.svg
rename to frontend/src/main/resources/icons/office-building.svg
diff --git a/frontend/src/main/resources/public/icons/paper-airplane.svg b/frontend/src/main/resources/icons/paper-airplane.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/paper-airplane.svg
rename to frontend/src/main/resources/icons/paper-airplane.svg
diff --git a/frontend/src/main/resources/public/icons/paper-clip.svg b/frontend/src/main/resources/icons/paper-clip.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/paper-clip.svg
rename to frontend/src/main/resources/icons/paper-clip.svg
diff --git a/frontend/src/main/resources/public/icons/pause.svg b/frontend/src/main/resources/icons/pause.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/pause.svg
rename to frontend/src/main/resources/icons/pause.svg
diff --git a/frontend/src/main/resources/public/icons/pencil-alt.svg b/frontend/src/main/resources/icons/pencil-alt.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/pencil-alt.svg
rename to frontend/src/main/resources/icons/pencil-alt.svg
diff --git a/frontend/src/main/resources/public/icons/pencil.svg b/frontend/src/main/resources/icons/pencil.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/pencil.svg
rename to frontend/src/main/resources/icons/pencil.svg
diff --git a/frontend/src/main/resources/public/icons/phone-incoming.svg b/frontend/src/main/resources/icons/phone-incoming.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/phone-incoming.svg
rename to frontend/src/main/resources/icons/phone-incoming.svg
diff --git a/frontend/src/main/resources/public/icons/phone-missed-call.svg b/frontend/src/main/resources/icons/phone-missed-call.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/phone-missed-call.svg
rename to frontend/src/main/resources/icons/phone-missed-call.svg
diff --git a/frontend/src/main/resources/public/icons/phone-outgoing.svg b/frontend/src/main/resources/icons/phone-outgoing.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/phone-outgoing.svg
rename to frontend/src/main/resources/icons/phone-outgoing.svg
diff --git a/frontend/src/main/resources/public/icons/phone.svg b/frontend/src/main/resources/icons/phone.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/phone.svg
rename to frontend/src/main/resources/icons/phone.svg
diff --git a/frontend/src/main/resources/public/icons/photograph.svg b/frontend/src/main/resources/icons/photograph.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/photograph.svg
rename to frontend/src/main/resources/icons/photograph.svg
diff --git a/frontend/src/main/resources/public/icons/play.svg b/frontend/src/main/resources/icons/play.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/play.svg
rename to frontend/src/main/resources/icons/play.svg
diff --git a/frontend/src/main/resources/public/icons/plus-circle.svg b/frontend/src/main/resources/icons/plus-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/plus-circle.svg
rename to frontend/src/main/resources/icons/plus-circle.svg
diff --git a/frontend/src/main/resources/public/icons/plus-sm.svg b/frontend/src/main/resources/icons/plus-sm.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/plus-sm.svg
rename to frontend/src/main/resources/icons/plus-sm.svg
diff --git a/frontend/src/main/resources/public/icons/plus.svg b/frontend/src/main/resources/icons/plus.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/plus.svg
rename to frontend/src/main/resources/icons/plus.svg
diff --git a/frontend/src/main/resources/public/icons/presentation-chart-bar.svg b/frontend/src/main/resources/icons/presentation-chart-bar.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/presentation-chart-bar.svg
rename to frontend/src/main/resources/icons/presentation-chart-bar.svg
diff --git a/frontend/src/main/resources/public/icons/presentation-chart-line.svg b/frontend/src/main/resources/icons/presentation-chart-line.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/presentation-chart-line.svg
rename to frontend/src/main/resources/icons/presentation-chart-line.svg
diff --git a/frontend/src/main/resources/public/icons/printer.svg b/frontend/src/main/resources/icons/printer.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/printer.svg
rename to frontend/src/main/resources/icons/printer.svg
diff --git a/frontend/src/main/resources/public/icons/puzzle.svg b/frontend/src/main/resources/icons/puzzle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/puzzle.svg
rename to frontend/src/main/resources/icons/puzzle.svg
diff --git a/frontend/src/main/resources/public/icons/qrcode.svg b/frontend/src/main/resources/icons/qrcode.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/qrcode.svg
rename to frontend/src/main/resources/icons/qrcode.svg
diff --git a/frontend/src/main/resources/public/icons/question-mark-circle.svg b/frontend/src/main/resources/icons/question-mark-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/question-mark-circle.svg
rename to frontend/src/main/resources/icons/question-mark-circle.svg
diff --git a/frontend/src/main/resources/public/icons/receipt-refund.svg b/frontend/src/main/resources/icons/receipt-refund.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/receipt-refund.svg
rename to frontend/src/main/resources/icons/receipt-refund.svg
diff --git a/frontend/src/main/resources/public/icons/receipt-tax.svg b/frontend/src/main/resources/icons/receipt-tax.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/receipt-tax.svg
rename to frontend/src/main/resources/icons/receipt-tax.svg
diff --git a/frontend/src/main/resources/public/icons/refresh.svg b/frontend/src/main/resources/icons/refresh.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/refresh.svg
rename to frontend/src/main/resources/icons/refresh.svg
diff --git a/frontend/src/main/resources/public/icons/reply.svg b/frontend/src/main/resources/icons/reply.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/reply.svg
rename to frontend/src/main/resources/icons/reply.svg
diff --git a/frontend/src/main/resources/public/icons/rewind.svg b/frontend/src/main/resources/icons/rewind.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/rewind.svg
rename to frontend/src/main/resources/icons/rewind.svg
diff --git a/frontend/src/main/resources/public/icons/rss.svg b/frontend/src/main/resources/icons/rss.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/rss.svg
rename to frontend/src/main/resources/icons/rss.svg
diff --git a/frontend/src/main/resources/public/icons/save-as.svg b/frontend/src/main/resources/icons/save-as.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/save-as.svg
rename to frontend/src/main/resources/icons/save-as.svg
diff --git a/frontend/src/main/resources/public/icons/save.svg b/frontend/src/main/resources/icons/save.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/save.svg
rename to frontend/src/main/resources/icons/save.svg
diff --git a/frontend/src/main/resources/public/icons/scale.svg b/frontend/src/main/resources/icons/scale.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/scale.svg
rename to frontend/src/main/resources/icons/scale.svg
diff --git a/frontend/src/main/resources/public/icons/scissors.svg b/frontend/src/main/resources/icons/scissors.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/scissors.svg
rename to frontend/src/main/resources/icons/scissors.svg
diff --git a/frontend/src/main/resources/public/icons/search-circle.svg b/frontend/src/main/resources/icons/search-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/search-circle.svg
rename to frontend/src/main/resources/icons/search-circle.svg
diff --git a/frontend/src/main/resources/public/icons/search.svg b/frontend/src/main/resources/icons/search.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/search.svg
rename to frontend/src/main/resources/icons/search.svg
diff --git a/frontend/src/main/resources/public/icons/selector.svg b/frontend/src/main/resources/icons/selector.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/selector.svg
rename to frontend/src/main/resources/icons/selector.svg
diff --git a/frontend/src/main/resources/public/icons/server.svg b/frontend/src/main/resources/icons/server.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/server.svg
rename to frontend/src/main/resources/icons/server.svg
diff --git a/frontend/src/main/resources/public/icons/share.svg b/frontend/src/main/resources/icons/share.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/share.svg
rename to frontend/src/main/resources/icons/share.svg
diff --git a/frontend/src/main/resources/public/icons/shield-check.svg b/frontend/src/main/resources/icons/shield-check.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/shield-check.svg
rename to frontend/src/main/resources/icons/shield-check.svg
diff --git a/frontend/src/main/resources/public/icons/shield-exclamation.svg b/frontend/src/main/resources/icons/shield-exclamation.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/shield-exclamation.svg
rename to frontend/src/main/resources/icons/shield-exclamation.svg
diff --git a/frontend/src/main/resources/public/icons/shopping-bag.svg b/frontend/src/main/resources/icons/shopping-bag.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/shopping-bag.svg
rename to frontend/src/main/resources/icons/shopping-bag.svg
diff --git a/frontend/src/main/resources/public/icons/shopping-cart.svg b/frontend/src/main/resources/icons/shopping-cart.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/shopping-cart.svg
rename to frontend/src/main/resources/icons/shopping-cart.svg
diff --git a/frontend/src/main/resources/public/icons/sort-ascending.svg b/frontend/src/main/resources/icons/sort-ascending.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/sort-ascending.svg
rename to frontend/src/main/resources/icons/sort-ascending.svg
diff --git a/frontend/src/main/resources/public/icons/sort-descending.svg b/frontend/src/main/resources/icons/sort-descending.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/sort-descending.svg
rename to frontend/src/main/resources/icons/sort-descending.svg
diff --git a/frontend/src/main/resources/public/icons/sparkles.svg b/frontend/src/main/resources/icons/sparkles.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/sparkles.svg
rename to frontend/src/main/resources/icons/sparkles.svg
diff --git a/frontend/src/main/resources/public/icons/speakerphone.svg b/frontend/src/main/resources/icons/speakerphone.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/speakerphone.svg
rename to frontend/src/main/resources/icons/speakerphone.svg
diff --git a/frontend/src/main/resources/public/icons/star.svg b/frontend/src/main/resources/icons/star.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/star.svg
rename to frontend/src/main/resources/icons/star.svg
diff --git a/frontend/src/main/resources/public/icons/status-offline.svg b/frontend/src/main/resources/icons/status-offline.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/status-offline.svg
rename to frontend/src/main/resources/icons/status-offline.svg
diff --git a/frontend/src/main/resources/public/icons/status-online.svg b/frontend/src/main/resources/icons/status-online.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/status-online.svg
rename to frontend/src/main/resources/icons/status-online.svg
diff --git a/frontend/src/main/resources/public/icons/stop.svg b/frontend/src/main/resources/icons/stop.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/stop.svg
rename to frontend/src/main/resources/icons/stop.svg
diff --git a/frontend/src/main/resources/public/icons/sun.svg b/frontend/src/main/resources/icons/sun.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/sun.svg
rename to frontend/src/main/resources/icons/sun.svg
diff --git a/frontend/src/main/resources/public/icons/support.svg b/frontend/src/main/resources/icons/support.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/support.svg
rename to frontend/src/main/resources/icons/support.svg
diff --git a/frontend/src/main/resources/public/icons/switch-horizontal.svg b/frontend/src/main/resources/icons/switch-horizontal.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/switch-horizontal.svg
rename to frontend/src/main/resources/icons/switch-horizontal.svg
diff --git a/frontend/src/main/resources/public/icons/switch-vertical.svg b/frontend/src/main/resources/icons/switch-vertical.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/switch-vertical.svg
rename to frontend/src/main/resources/icons/switch-vertical.svg
diff --git a/frontend/src/main/resources/public/icons/table.svg b/frontend/src/main/resources/icons/table.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/table.svg
rename to frontend/src/main/resources/icons/table.svg
diff --git a/frontend/src/main/resources/public/icons/tag.svg b/frontend/src/main/resources/icons/tag.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/tag.svg
rename to frontend/src/main/resources/icons/tag.svg
diff --git a/frontend/src/main/resources/public/icons/template.svg b/frontend/src/main/resources/icons/template.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/template.svg
rename to frontend/src/main/resources/icons/template.svg
diff --git a/frontend/src/main/resources/public/icons/terminal.svg b/frontend/src/main/resources/icons/terminal.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/terminal.svg
rename to frontend/src/main/resources/icons/terminal.svg
diff --git a/frontend/src/main/resources/public/icons/thumb-down.svg b/frontend/src/main/resources/icons/thumb-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/thumb-down.svg
rename to frontend/src/main/resources/icons/thumb-down.svg
diff --git a/frontend/src/main/resources/public/icons/thumb-up.svg b/frontend/src/main/resources/icons/thumb-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/thumb-up.svg
rename to frontend/src/main/resources/icons/thumb-up.svg
diff --git a/frontend/src/main/resources/public/icons/ticket.svg b/frontend/src/main/resources/icons/ticket.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/ticket.svg
rename to frontend/src/main/resources/icons/ticket.svg
diff --git a/frontend/src/main/resources/public/icons/translate.svg b/frontend/src/main/resources/icons/translate.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/translate.svg
rename to frontend/src/main/resources/icons/translate.svg
diff --git a/frontend/src/main/resources/public/icons/trash.svg b/frontend/src/main/resources/icons/trash.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/trash.svg
rename to frontend/src/main/resources/icons/trash.svg
diff --git a/frontend/src/main/resources/public/icons/trending-down.svg b/frontend/src/main/resources/icons/trending-down.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/trending-down.svg
rename to frontend/src/main/resources/icons/trending-down.svg
diff --git a/frontend/src/main/resources/public/icons/trending-up.svg b/frontend/src/main/resources/icons/trending-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/trending-up.svg
rename to frontend/src/main/resources/icons/trending-up.svg
diff --git a/frontend/src/main/resources/public/icons/truck.svg b/frontend/src/main/resources/icons/truck.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/truck.svg
rename to frontend/src/main/resources/icons/truck.svg
diff --git a/frontend/src/main/resources/public/icons/upload.svg b/frontend/src/main/resources/icons/upload.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/upload.svg
rename to frontend/src/main/resources/icons/upload.svg
diff --git a/frontend/src/main/resources/public/icons/user-add.svg b/frontend/src/main/resources/icons/user-add.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/user-add.svg
rename to frontend/src/main/resources/icons/user-add.svg
diff --git a/frontend/src/main/resources/public/icons/user-circle.svg b/frontend/src/main/resources/icons/user-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/user-circle.svg
rename to frontend/src/main/resources/icons/user-circle.svg
diff --git a/frontend/src/main/resources/public/icons/user-group.svg b/frontend/src/main/resources/icons/user-group.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/user-group.svg
rename to frontend/src/main/resources/icons/user-group.svg
diff --git a/frontend/src/main/resources/public/icons/user-remove.svg b/frontend/src/main/resources/icons/user-remove.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/user-remove.svg
rename to frontend/src/main/resources/icons/user-remove.svg
diff --git a/frontend/src/main/resources/public/icons/user.svg b/frontend/src/main/resources/icons/user.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/user.svg
rename to frontend/src/main/resources/icons/user.svg
diff --git a/frontend/src/main/resources/public/icons/users.svg b/frontend/src/main/resources/icons/users.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/users.svg
rename to frontend/src/main/resources/icons/users.svg
diff --git a/frontend/src/main/resources/public/icons/variable.svg b/frontend/src/main/resources/icons/variable.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/variable.svg
rename to frontend/src/main/resources/icons/variable.svg
diff --git a/frontend/src/main/resources/public/icons/video-camera.svg b/frontend/src/main/resources/icons/video-camera.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/video-camera.svg
rename to frontend/src/main/resources/icons/video-camera.svg
diff --git a/frontend/src/main/resources/public/icons/view-boards.svg b/frontend/src/main/resources/icons/view-boards.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/view-boards.svg
rename to frontend/src/main/resources/icons/view-boards.svg
diff --git a/frontend/src/main/resources/public/icons/view-grid-add.svg b/frontend/src/main/resources/icons/view-grid-add.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/view-grid-add.svg
rename to frontend/src/main/resources/icons/view-grid-add.svg
diff --git a/frontend/src/main/resources/public/icons/view-grid.svg b/frontend/src/main/resources/icons/view-grid.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/view-grid.svg
rename to frontend/src/main/resources/icons/view-grid.svg
diff --git a/frontend/src/main/resources/public/icons/view-list.svg b/frontend/src/main/resources/icons/view-list.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/view-list.svg
rename to frontend/src/main/resources/icons/view-list.svg
diff --git a/frontend/src/main/resources/public/icons/volume-off.svg b/frontend/src/main/resources/icons/volume-off.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/volume-off.svg
rename to frontend/src/main/resources/icons/volume-off.svg
diff --git a/frontend/src/main/resources/public/icons/volume-up.svg b/frontend/src/main/resources/icons/volume-up.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/volume-up.svg
rename to frontend/src/main/resources/icons/volume-up.svg
diff --git a/frontend/src/main/resources/public/icons/wifi.svg b/frontend/src/main/resources/icons/wifi.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/wifi.svg
rename to frontend/src/main/resources/icons/wifi.svg
diff --git a/frontend/src/main/resources/public/icons/x-circle.svg b/frontend/src/main/resources/icons/x-circle.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/x-circle.svg
rename to frontend/src/main/resources/icons/x-circle.svg
diff --git a/frontend/src/main/resources/public/icons/x.svg b/frontend/src/main/resources/icons/x.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/x.svg
rename to frontend/src/main/resources/icons/x.svg
diff --git a/frontend/src/main/resources/public/icons/zoom-in.svg b/frontend/src/main/resources/icons/zoom-in.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/zoom-in.svg
rename to frontend/src/main/resources/icons/zoom-in.svg
diff --git a/frontend/src/main/resources/public/icons/zoom-out.svg b/frontend/src/main/resources/icons/zoom-out.svg
similarity index 100%
rename from frontend/src/main/resources/public/icons/zoom-out.svg
rename to frontend/src/main/resources/icons/zoom-out.svg
diff --git a/frontend/src/main/resources/public/images/Emblem_Bronze.png b/frontend/src/main/resources/images/Emblem_Bronze.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Bronze.png
rename to frontend/src/main/resources/images/Emblem_Bronze.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Challenger.png b/frontend/src/main/resources/images/Emblem_Challenger.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Challenger.png
rename to frontend/src/main/resources/images/Emblem_Challenger.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Diamond.png b/frontend/src/main/resources/images/Emblem_Diamond.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Diamond.png
rename to frontend/src/main/resources/images/Emblem_Diamond.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Gold.png b/frontend/src/main/resources/images/Emblem_Gold.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Gold.png
rename to frontend/src/main/resources/images/Emblem_Gold.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Grandmaster.png b/frontend/src/main/resources/images/Emblem_Grandmaster.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Grandmaster.png
rename to frontend/src/main/resources/images/Emblem_Grandmaster.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Iron.png b/frontend/src/main/resources/images/Emblem_Iron.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Iron.png
rename to frontend/src/main/resources/images/Emblem_Iron.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Master.png b/frontend/src/main/resources/images/Emblem_Master.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Master.png
rename to frontend/src/main/resources/images/Emblem_Master.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Platinum.png b/frontend/src/main/resources/images/Emblem_Platinum.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Platinum.png
rename to frontend/src/main/resources/images/Emblem_Platinum.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Provisional.png b/frontend/src/main/resources/images/Emblem_Provisional.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Provisional.png
rename to frontend/src/main/resources/images/Emblem_Provisional.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Silver.png b/frontend/src/main/resources/images/Emblem_Silver.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Silver.png
rename to frontend/src/main/resources/images/Emblem_Silver.png
diff --git a/frontend/src/main/resources/public/images/Emblem_Unranked.png b/frontend/src/main/resources/images/Emblem_Unranked.png
similarity index 100%
rename from frontend/src/main/resources/public/images/Emblem_Unranked.png
rename to frontend/src/main/resources/images/Emblem_Unranked.png
diff --git a/frontend/src/main/resources/public/images/X_redt.png b/frontend/src/main/resources/images/X_redt.png
similarity index 100%
rename from frontend/src/main/resources/public/images/X_redt.png
rename to frontend/src/main/resources/images/X_redt.png
diff --git a/frontend/src/main/resources/public/images/aleph256.png b/frontend/src/main/resources/images/aleph256.png
similarity index 100%
rename from frontend/src/main/resources/public/images/aleph256.png
rename to frontend/src/main/resources/images/aleph256.png
diff --git a/frontend/src/main/resources/public/images/amumu_error.png b/frontend/src/main/resources/images/amumu_error.png
similarity index 100%
rename from frontend/src/main/resources/public/images/amumu_error.png
rename to frontend/src/main/resources/images/amumu_error.png
diff --git a/frontend/src/main/resources/public/images/blitzcrank_logo.png b/frontend/src/main/resources/images/blitzcrank_logo.png
similarity index 100%
rename from frontend/src/main/resources/public/images/blitzcrank_logo.png
rename to frontend/src/main/resources/images/blitzcrank_logo.png
diff --git a/frontend/src/main/resources/public/images/gh_logo.png b/frontend/src/main/resources/images/gh_logo.png
similarity index 100%
rename from frontend/src/main/resources/public/images/gh_logo.png
rename to frontend/src/main/resources/images/gh_logo.png
diff --git a/frontend/src/main/resources/public/images/placeholder_champion.png b/frontend/src/main/resources/images/placeholder_champion.png
similarity index 100%
rename from frontend/src/main/resources/public/images/placeholder_champion.png
rename to frontend/src/main/resources/images/placeholder_champion.png
diff --git a/frontend/src/main/resources/public/images/slash_red_256.png b/frontend/src/main/resources/images/slash_red_256.png
similarity index 100%
rename from frontend/src/main/resources/public/images/slash_red_256.png
rename to frontend/src/main/resources/images/slash_red_256.png
diff --git a/frontend/src/main/scala/org/kys/athena/components/LandingPage.scala b/frontend/src/main/scala/org/kys/athena/components/LandingPage.scala
index d9782c8..102204c 100644
--- a/frontend/src/main/scala/org/kys/athena/components/LandingPage.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/LandingPage.scala
@@ -2,11 +2,13 @@ package org.kys.athena.components
import com.raquo.laminar.api.L._
import org.kys.athena.riot.api.dto.common.Platform
+import org.kys.athena.util.assets.AssetLoader
+
object LandingPage {
def render: HtmlElement = {
div(cls := "flex flex-col items-center container-md flex-grow justify-center",
- img(src := "/images/aleph256.png", width := "256px", height := "256px"),
+ img(src := AssetLoader.require("/images/aleph256.png"), width := "256px", height := "256px"),
span(fontFamily := "heorotregular",
fontSize := "6rem",
color := "#780522",
diff --git a/frontend/src/main/scala/org/kys/athena/components/common/AppBar.scala b/frontend/src/main/scala/org/kys/athena/components/common/AppBar.scala
index 2488b4d..09848cf 100644
--- a/frontend/src/main/scala/org/kys/athena/components/common/AppBar.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/common/AppBar.scala
@@ -3,7 +3,8 @@ package org.kys.athena.components.common
import com.raquo.laminar.api.L._
import org.kys.athena.riot.api.dto.common.Platform
import org.kys.athena.routes.LandingRoute
-import org.kys.athena.util.{CSSUtil, Config}
+import org.kys.athena.util.assets.AssetLoader
+import org.kys.athena.util.CSSUtil
object AppBar {
@@ -20,7 +21,8 @@ object AppBar {
div(
cls := "flex flex-row h-full",
a(cls := "mx-2", href := "https://github.com/greg2010/Athena", target := "_blank",
- ImgSized(s"${Config.FRONTEND_URL}/images/gh_logo.png", 40, Some(40))),
+ ImgSized(AssetLoader.require("/images/gh_logo.png"), 40,
+ Some(40))),
child <-- showSearch.map {
case true => SearchBar("", Platform.NA, cls := "border shadow-lg rounded-lg bg-white")
case false => div()
diff --git a/frontend/src/main/scala/org/kys/athena/components/common/SearchBar.scala b/frontend/src/main/scala/org/kys/athena/components/common/SearchBar.scala
index 1f884fa..88714ea 100644
--- a/frontend/src/main/scala/org/kys/athena/components/common/SearchBar.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/common/SearchBar.scala
@@ -5,6 +5,7 @@ import com.raquo.laminar.api.L._
import org.kys.athena.App
import org.kys.athena.riot.api.dto.common.Platform
import org.kys.athena.routes.OngoingRoute
+import org.kys.athena.util.assets.AssetLoader
import org.scalajs.dom
import org.scalajs.dom.Event
@@ -34,7 +35,9 @@ object SearchBar {
Some(s"border shadow-lg border-gray-500 p-1 rounded-sm bg-white"),
Some("focus:outline-none text-md"),
cls := s"px-1 focus:outline-none appearance-none"),
- button(`type` := "submit", img(src := "/icons/search.svg", width := "24px", height := "auto")),
+ button(`type` := "submit", img(src := AssetLoader.require("/icons/search.svg"),
+ width := "24px",
+ height := "auto")),
onSubmit.preventDefault --> formObserver,
mods)
}
diff --git a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingError.scala b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingError.scala
index 6676a5c..2218ad9 100644
--- a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingError.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingError.scala
@@ -2,6 +2,7 @@ package org.kys.athena.components.ongoing
import com.raquo.laminar.api.L._
import org.kys.athena.routes.OngoingRoute
+import org.kys.athena.util.assets.AssetLoader
import org.scalajs.dom
@@ -10,7 +11,7 @@ object OngoingError {
div(
cls := s"flex flex-col items-center p-4",
img(
- src := "/images/amumu_error.png"
+ src := AssetLoader.require("/images/amumu_error.png")
),
span(
cls := "text-xl mt-4",
diff --git a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingNotFound.scala b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingNotFound.scala
index 78b1ab1..0e96d96 100644
--- a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingNotFound.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingNotFound.scala
@@ -3,6 +3,7 @@ package org.kys.athena.components.ongoing
import org.kys.athena.routes.OngoingRoute
import com.raquo.laminar.api.L._
import org.kys.athena.components.common.SearchBar
+import org.kys.athena.util.assets.AssetLoader
import org.scalajs.dom
@@ -10,7 +11,7 @@ object OngoingNotFound {
def render(p: OngoingRoute, refreshCb: () => Unit) = {
div(
cls := s"flex flex-col items-center p-4",
- img(src := "/images/blitzcrank_logo.png"),
+ img(src := AssetLoader.require("/images/blitzcrank_logo.png")),
span(
cls := "text-xl mt-4", "Summoner ", b(s"${p.realm.toString}/${p.name}"), " is not currently in game."),
SearchBar(p.name,
diff --git a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPage.scala b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPage.scala
index 25d0cda..b7894d4 100644
--- a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPage.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPage.scala
@@ -15,7 +15,8 @@ import org.kys.athena.routes.OngoingRoute
import org.kys.athena.riot.api.dto.common.{GameQueueTypeEnum, Platform}
import org.kys.athena.riot.api.dto.currentgameinfo.BannedChampion
import org.kys.athena.util.CSSUtil._
-import org.kys.athena.util.{Config, DataState, Failed, Infallible, Loading, Ready, Time}
+import org.kys.athena.util.assets.AssetLoader
+import org.kys.athena.util.{DataState, Failed, Infallible, Loading, Ready, Time}
import org.scalajs.dom.html
import zio._
@@ -310,7 +311,7 @@ object OngoingPage {
zIndex := 1,
new CStyle("filter", "filter") := "grayscale(50%)",
cls := "rounded-lg"),
- ImgSized(s"${Config.FRONTEND_URL}/images/slash_red_256.png",
+ ImgSized(AssetLoader.require("/images/slash_red_256.png"),
imgWidth = 64,
imgHeight = Some(64),
position := "relative",
diff --git a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPlayerCard.scala b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPlayerCard.scala
index 44d54bf..9ed1bdd 100644
--- a/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPlayerCard.scala
+++ b/frontend/src/main/scala/org/kys/athena/components/ongoing/OngoingPlayerCard.scala
@@ -11,11 +11,25 @@ import org.kys.athena.http.models.common.RankedLeague
import org.kys.athena.riot.api.dto.common.{Platform, SummonerSpellsEnum}
import org.kys.athena.riot.api.dto.ddragon.runes.Rune
import org.kys.athena.riot.api.dto.league.{MiniSeries, RankedQueueTypeEnum, TierEnum}
-import org.kys.athena.util.{Config, Infallible, Loading, Ready}
+import org.kys.athena.util.assets.AssetLoader
+import org.kys.athena.util.{Infallible, Loading, Ready}
import org.scalajs.dom.html
+
object OngoingPlayerCard {
+ // Ugly, but enables webpack's asset importer plugin thus giving more safety.
+ // Cannot be replaced by a loop as the paths **must** be compile-time literals to be inlined properly.
+ private val rankedAssets: Map[TierEnum, String] = Map(
+ (TierEnum.Iron, AssetLoader.require("/images/Emblem_Iron.png")),
+ (TierEnum.Bronze, AssetLoader.require("/images/Emblem_Bronze.png")),
+ (TierEnum.Silver, AssetLoader.require("/images/Emblem_Silver.png")),
+ (TierEnum.Gold, AssetLoader.require("/images/Emblem_Gold.png")),
+ (TierEnum.Platinum, AssetLoader.require("/images/Emblem_Platinum.png")),
+ (TierEnum.Diamond, AssetLoader.require("/images/Emblem_Diamond.png")),
+ (TierEnum.Grandmaster, AssetLoader.require("/images/Emblem_Grandmaster.png")),
+ (TierEnum.Challenger, AssetLoader.require("/images/Emblem_Challenger.png")))
+
private def renderSummonerSpell(ss: SummonerSpellsEnum)(implicit dd: CombinedDD) = {
val url = dd.summonerUrlById(ss.value).getOrElse("")
ImgSized(url, 32, Some(32), minWidth := "32px", cls := "rounded-md")
@@ -90,21 +104,23 @@ object OngoingPlayerCard {
cls := "flex flex-col items-center justify-center mr-1", width := "86px",
rl match {
case Some(l) => {
- val t = l.tier.entryName.toLowerCase.capitalize
- val url = s"${Config.FRONTEND_URL}/images/Emblem_${t}.png"
+ val url = rankedAssets.getOrElse(l.tier, AssetLoader.require("/images/Emblem_Unranked.png"))
List(
ImgSized(url, 40, None),
l.tier match {
case t if t.in(TierEnum.Master, TierEnum.Grandmaster, TierEnum.Challenger) => {
span(cls := "text-xs leading-tight mt-1", s"${t}")
}
- case _ => span(cls := "text-xs leading-tight mt-1", s"${t} ${l.rank}")
+ case _ => {
+ span(cls := "text-xs leading-tight mt-1",
+ s"${l.tier.entryName.toLowerCase.capitalize} ${l.rank}")
+ }
},
span(cls := "text-xs leading-tight", s"${l.leaguePoints} LP"),
l.miniSeries.map(renderMiniSeries).getOrElse(div()))
}
case None => {
- val url = s"${Config.FRONTEND_URL}/images/Emblem_Unranked.png"
+ val url = AssetLoader.require("/images/Emblem_Unranked.png")
List(
ImgSized(url, 46, None),
span(cls := "text-sm leading-tight mt-1", "Unranked"))
diff --git a/frontend/webpack.config.js b/frontend/webpack.config.js
index 8f87336..0797895 100644
--- a/frontend/webpack.config.js
+++ b/frontend/webpack.config.js
@@ -7,8 +7,8 @@ const CopyWebpackPlugin = require('copy-webpack-plugin');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin')
-const scalaOutputPath = path.resolve(__dirname, './target/scala-2.13');
-const scalaResourcesPath = path.resolve(__dirname, './src/main/resources')
+const scalaOutputPath = path.resolve(__dirname, 'target/scala-2.13');
+const scalaResourcesPath = path.resolve(__dirname, 'src/main/resources')
const devServerPort = 8080;
@@ -24,7 +24,7 @@ const devServer = {
historyApiFallback: {
index: ''
},
- stats: {warnings: false}
+ //stats: {warnings: false}
};
function common(variables, mode) {
@@ -38,7 +38,7 @@ function common(variables, mode) {
},
output: {
publicPath: '/',
- filename: '[name].[hash].js',
+ filename: '[name].[fullhash].js',
library: 'app',
libraryTarget: 'var'
},
@@ -46,7 +46,7 @@ function common(variables, mode) {
path.resolve(scalaResourcesPath, './index.css')
],
module: {
- rules: [{
+ rules: [/*{
test: /\.js$/,
use: [{
loader: "scalajs-friendly-source-map-loader",
@@ -54,14 +54,14 @@ function common(variables, mode) {
name: '[name].[contenthash:8].[ext]',
skipFileURLWarnings: true, // or false, default is true
bundleHttp: true, // or false, default is true,
- cachePath: ".scala-js-sources", // cache dir name, exclude in .gitignore
+ cachePath: path.resolve(__dirname, ".scala-js-sources"), // cache dir name, exclude in .gitignore
noisyCache: false, // whether http cache changes are output
useCache: true, // false => remove any http cache processing
}
}],
enforce: "pre",
include: [scalaOutputPath],
- },
+ },*/
{
test: /\.js$/,
use: ["source-map-loader"],
@@ -111,13 +111,7 @@ function common(variables, mode) {
},
{
test: /\.(woff(2)?|ttf|eot|svg|png|jpg|ico|txt|json)(\?v=\d+\.\d+\.\d+)?$/,
- use: [{
- loader: 'file-loader',
- options: {
- name: '[name].[ext]',
- outputPath: './'
- }
- }]
+ type: 'asset'
}
]
},
@@ -131,7 +125,7 @@ function common(variables, mode) {
}),
new ExtractCssChunks({
- filename: '[name].[hash].css',
+ filename: '[name].[fullhash].css',
chunkFilename: '[id].css'
}),
new CopyWebpackPlugin({
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index d38da99..0aa39f3 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -10,15 +10,15 @@
"@babel/highlight" "^7.12.13"
"@babel/core@>=7.9.0", "@babel/core@^7.1.0", "@babel/core@^7.7.5":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz#b73a87a3a3e7d142a66248bf6ad88b9ceb093425"
- integrity sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==
+ version "7.12.16"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.16.tgz#8c6ba456b23b680a6493ddcfcd9d3c3ad51cab7c"
+ integrity sha512-t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@babel/generator" "^7.12.13"
+ "@babel/generator" "^7.12.15"
"@babel/helper-module-transforms" "^7.12.13"
"@babel/helpers" "^7.12.13"
- "@babel/parser" "^7.12.13"
+ "@babel/parser" "^7.12.16"
"@babel/template" "^7.12.13"
"@babel/traverse" "^7.12.13"
"@babel/types" "^7.12.13"
@@ -30,7 +30,7 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.12.13":
+"@babel/generator@^7.12.13", "@babel/generator@^7.12.15":
version "7.12.15"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f"
integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==
@@ -56,9 +56,9 @@
"@babel/types" "^7.12.13"
"@babel/helper-member-expression-to-functions@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz#c5715695b4f8bab32660dbdcdc2341dec7e3df40"
- integrity sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==
+ version "7.12.16"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz#41e0916b99f8d5f43da4f05d85f4930fa3d62b22"
+ integrity sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==
dependencies:
"@babel/types" "^7.12.13"
@@ -143,10 +143,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.12.13":
- version "7.12.15"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf"
- integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.16":
+ version "7.12.16"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4"
+ integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
@@ -302,9 +302,9 @@
resolve-from "^5.0.0"
"@istanbuljs/schema@^0.1.2":
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
- integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
"@jest/console@^26.6.2":
version "26.6.2"
@@ -595,9 +595,9 @@
"@types/node" "*"
"@types/graceful-fs@^4.1.2":
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753"
- integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
+ integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
dependencies:
"@types/node" "*"
@@ -648,9 +648,9 @@
integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==
"@types/node@*":
- version "14.14.25"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.25.tgz#15967a7b577ff81383f9b888aa6705d43fbbae93"
- integrity sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==
+ version "14.14.28"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.28.tgz#cade4b64f8438f588951a6b35843ce536853f25b"
+ integrity sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
@@ -663,9 +663,9 @@
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
"@types/prettier@^2.0.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.0.tgz#a4e8205a4955690eef712a6d0394a1d2e121e721"
- integrity sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz#374e31645d58cb18a07b3ecd8e9dede4deb2cccd"
+ integrity sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw==
"@types/q@^1.5.1":
version "1.5.4"
@@ -951,9 +951,9 @@ ajv@^6.1.0, ajv@^6.12.3, ajv@^6.12.5:
uri-js "^4.2.2"
ajv@^7.0.2:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.4.tgz#827e5f5ae32f5e5c1637db61f253a112229b5e2f"
- integrity sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84"
+ integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
@@ -2070,9 +2070,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181:
- version "1.0.30001185"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz#3482a407d261da04393e2f0d61eefbc53be43b95"
- integrity sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==
+ version "1.0.30001187"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001187.tgz#5706942631f83baa5a0218b7dfa6ced29f845438"
+ integrity sha512-w7/EP1JRZ9552CyrThUnay2RkZ1DXxKe/Q2swTC4+LElLh9RRYrL1Z+27LlakB8kzY0fSmHw9mc7XYDUKAKWMA==
capture-exit@^2.0.0:
version "2.0.0"
@@ -2334,9 +2334,9 @@ commander@^6.0.0:
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
commander@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2"
- integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff"
+ integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==
component-emitter@^1.2.1:
version "1.3.0"
@@ -2957,9 +2957,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.649:
- version "1.3.662"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.662.tgz#43305bcf88a3340feb553b815d6fd7466659d5ee"
- integrity sha512-IGBXmTGwdVGUVTnZ8ISEvkhDfhhD+CDFndG4//BhvDcEtPYiVrzoB+rzT/Y12OQCf5bvRCrVmrUbGrS9P7a6FQ==
+ version "1.3.667"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.667.tgz#18ca4f243ec163c3e354e506ba22ef46d31d925e"
+ integrity sha512-Ot1pPtAVb5nd7jeVF651zmfLFilRVFomlDzwXmdlWe5jyzOGa6mVsQ06XnAurT7wWfg5VEIY+LopbAdD/bpo5w==
emittery@^0.7.1:
version "0.7.2"
@@ -3972,9 +3972,9 @@ html-tags@^3.1.0:
integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
html-webpack-plugin@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.0.0.tgz#457a9defb33ce368135078b4e0387a27f3fe244d"
- integrity sha512-kxTyb8cyZwEyUqXTgdHRUOF4C7uCrquzw2T+YTudehm/yspodgCkREjdmc4dXI8k2P4NEjqOVbnOOlPZg4TKJA==
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.1.0.tgz#1c11bbe01ab9d1262c4b601edebcf394364b1f60"
+ integrity sha512-2axkp+2NHmvHUWrKe1dY4LyM3WatQEdFChr42OY7R/Ad7f0AQzaKscGCcqN/FtQBxo8rdfJP7M3RMFDttqok3g==
dependencies:
"@types/html-minifier-terser" "^5.0.0"
html-minifier-terser "^5.0.1"
@@ -4311,7 +4311,7 @@ is-color-stop@^1.0.0:
rgb-regex "^1.0.1"
rgba-regex "^1.0.0"
-is-core-module@^2.1.0:
+is-core-module@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
@@ -5517,17 +5517,17 @@ micromatch@^4.0.2:
braces "^3.0.1"
picomatch "^2.0.5"
-mime-db@1.45.0, "mime-db@>= 1.43.0 < 2":
- version "1.45.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
- integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
+mime-db@1.46.0, "mime-db@>= 1.43.0 < 2":
+ version "1.46.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
+ integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
- version "2.1.28"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
- integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
+ version "2.1.29"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
+ integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
dependencies:
- mime-db "1.45.0"
+ mime-db "1.46.0"
mime@1.6.0:
version "1.6.0"
@@ -5535,9 +5535,9 @@ mime@1.6.0:
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mime@^2.4.4:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1"
- integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+ integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
mimic-fn@^2.1.0:
version "2.1.0"
@@ -7221,11 +7221,11 @@ resolve-url@^0.2.1:
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.8.1, resolve@^1.9.0:
- version "1.19.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
- integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
dependencies:
- is-core-module "^2.1.0"
+ is-core-module "^2.2.0"
path-parse "^1.0.6"
ret@~0.1.10:
@@ -8180,9 +8180,9 @@ terser@^4.6.3:
source-map-support "~0.5.12"
terser@^5.5.1:
- version "5.5.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289"
- integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2"
+ integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==
dependencies:
commander "^2.20.0"
source-map "~0.7.2"
@@ -8476,9 +8476,9 @@ urix@^0.1.0:
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
url-parse@^1.4.3, url-parse@^1.4.7:
- version "1.4.7"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
- integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.0.tgz#90aba6c902aeb2d80eac17b91131c27665d5d828"
+ integrity sha512-9iT6N4s93SMfzunOyDPe4vo4nLcSu1yq0IQK1gURmjm8tQNlM6loiuCRrKG1hHGXfB2EWd6H4cGi7tGdaygMFw==
dependencies:
querystringify "^2.1.1"
requires-port "^1.0.0"
@@ -8739,9 +8739,9 @@ webpack-sources@^2.1.1:
source-map "^0.6.1"
webpack@^5.6.0:
- version "5.21.2"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.21.2.tgz#647507e50d3637695be28af58a6a8246050394e7"
- integrity sha512-xHflCenx+AM4uWKX71SWHhxml5aMXdy2tu/vdi4lClm7PADKxlyDAFFN1rEFzNV0MAoPpHtBeJnl/+K6F4QBPg==
+ version "5.22.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.22.0.tgz#8505158bc52dcbbdb01ac94796a8aed61badf11a"
+ integrity sha512-xqlb6r9RUXda/d9iA6P7YRTP1ChWeP50TEESKMMNIg0u8/Rb66zN9YJJO7oYgJTRyFyYi43NVC5feG45FSO1vQ==
dependencies:
"@types/eslint-scope" "^3.7.0"
"@types/estree" "^0.0.46"
@@ -8930,9 +8930,9 @@ yargs-parser@^18.1.2:
decamelize "^1.2.0"
yargs-parser@^20.2.3:
- version "20.2.4"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
- integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+ version "20.2.5"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.5.tgz#5d37729146d3f894f39fc94b6796f5b239513186"
+ integrity sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==
yargs@^13.3.2:
version "13.3.2"
diff --git a/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala b/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala
new file mode 100644
index 0000000..1398ec0
--- /dev/null
+++ b/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala
@@ -0,0 +1,73 @@
+package org.kys.athena.util.assets
+
+import scala.annotation.compileTimeOnly
+import scala.language.experimental.macros
+import scala.reflect.macros.blackbox
+
+
+@compileTimeOnly("enable macro paradise to expand macro annotations")
+object AssetLoader {
+ def require(path: String): String = macro requireImpl
+
+ def requireImpl(c: blackbox.Context)(path: c.Expr[String]): c.Expr[String] = {
+ import c.universe._
+ path match {
+ case Expr(Literal(_)) => {
+ reify {
+ JSImporter.require[String](s"../../src/main/resources" + path.splice)
+ }
+ }
+ case _ => {
+ throw new IllegalArgumentException("Cannot call require with non-literal values.\n" +
+ "This will produce an invalid JS require that will likely break " +
+ "things.")
+ }
+ }
+ /*
+ def eval[B](tree: Tree): B = c.eval[B](c.Expr[B](c.untypecheck(tree.duplicate)))
+ path match {
+ case Expr(Literal(Constant(s: String))) => {
+ reify(JSImporter.require(s"../../src/main/resources" + path.splice))
+ }
+ case Expr(Select(This(TypeName(n)), TermName(f))) => {
+ val pp = q"org.kys.athena.riot.api.dto.league.TierEnum.Challenger.toString"
+ println(showRaw(pp))
+ val expr = c.Expr[String](pp)
+ println(c.eval(expr))
+ reify(JSImporter.require(s"../../src/main/resourcestest123" + expr.splice))
+ }
+ case Expr(Apply(Select(x), y)) => {
+ println("hi")
+ x._1 match {
+ case Select(z) => println(z._2)
+ }
+ println(showRaw(x))
+ path
+ }
+ case _ => {
+ println(showRaw(path))
+ val pp = q"org.kys.athena.riot.api.dto.league.TierEnum.Challenger.toString"
+ println(showRaw(pp))
+ println(showRaw(c.eval(path)))
+ path
+ }
+ }
+ //val x = c.eval(c.Expr[String](c.untypecheck(path.tree.duplicate)))
+ //println(showRaw(x))
+ //JSImporter.require[String](s"../../src/main/resources${path.splice}")
+
+ /*path match {
+ case Literal(Constant(str: String)) => {
+ reify {
+ JSImporter.require[String](s"../../src/main/resources$str")
+ }
+ }
+ case Ident(TermName(n)) => {
+ val tree = q"$n"
+ val expr = c.Expr[String](tree)
+ requireImpl(c)(expr)
+ }
+ }*/*/
+ }
+
+}
diff --git a/macro/src/main/scala/org/kys/athena/util/assets/JSImporter.scala b/macro/src/main/scala/org/kys/athena/util/assets/JSImporter.scala
new file mode 100644
index 0000000..0498a8d
--- /dev/null
+++ b/macro/src/main/scala/org/kys/athena/util/assets/JSImporter.scala
@@ -0,0 +1,11 @@
+package org.kys.athena.util.assets
+
+import scala.scalajs.js
+import scala.scalajs.js.annotation.JSGlobalScope
+
+
+@js.native
+@JSGlobalScope
+object JSImporter extends js.Any {
+ def require[A](path: String): A = js.native
+}
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 8be44e5..b606291 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -2,5 +2,5 @@ addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.0")
addSbtPlugin("org.wartremover" % "sbt-wartremover" % "2.4.13")
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.5.1")
-addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.4.0")
+addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.5.0")
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.0.0")
\ No newline at end of file