From 3c764c99e681414543ee1bc97b2d73b708eb5b5e Mon Sep 17 00:00:00 2001 From: greg2010 Date: Thu, 18 Feb 2021 19:58:30 -0500 Subject: [PATCH] integrate with webpack's asset importer --- .idea/sbt.xml | 1 + .idea/scala_compiler.xml | 6 +- build.sbt | 16 ++- .../{public => }/icons/academic-cap.svg | 0 .../{public => }/icons/adjustments.svg | 0 .../{public => }/icons/annotation.svg | 0 .../resources/{public => }/icons/archive.svg | 0 .../{public => }/icons/arrow-circle-down.svg | 0 .../{public => }/icons/arrow-circle-left.svg | 0 .../{public => }/icons/arrow-circle-right.svg | 0 .../{public => }/icons/arrow-circle-up.svg | 0 .../{public => }/icons/arrow-down.svg | 0 .../{public => }/icons/arrow-left.svg | 0 .../{public => }/icons/arrow-narrow-down.svg | 0 .../{public => }/icons/arrow-narrow-left.svg | 0 .../{public => }/icons/arrow-narrow-right.svg | 0 .../{public => }/icons/arrow-narrow-up.svg | 0 .../{public => }/icons/arrow-right.svg | 0 .../resources/{public => }/icons/arrow-up.svg | 0 .../{public => }/icons/arrows-expand.svg | 0 .../{public => }/icons/at-symbol.svg | 0 .../{public => }/icons/backspace.svg | 0 .../{public => }/icons/badge-check.svg | 0 .../main/resources/{public => }/icons/ban.svg | 0 .../resources/{public => }/icons/beaker.svg | 0 .../resources/{public => }/icons/bell.svg | 0 .../{public => }/icons/book-open.svg | 0 .../{public => }/icons/bookmark-alt.svg | 0 .../resources/{public => }/icons/bookmark.svg | 0 .../{public => }/icons/briefcase.svg | 0 .../resources/{public => }/icons/cake.svg | 0 .../{public => }/icons/calculator.svg | 0 .../resources/{public => }/icons/calendar.svg | 0 .../resources/{public => }/icons/camera.svg | 0 .../resources/{public => }/icons/cash.svg | 0 .../{public => }/icons/chart-bar.svg | 0 .../{public => }/icons/chart-pie.svg | 0 .../{public => }/icons/chart-square-bar.svg | 0 .../{public => }/icons/chat-alt-2.svg | 0 .../resources/{public => }/icons/chat-alt.svg | 0 .../resources/{public => }/icons/chat.svg | 0 .../{public => }/icons/check-circle.svg | 0 .../resources/{public => }/icons/check.svg | 0 .../icons/chevron-double-down.svg | 0 .../icons/chevron-double-left.svg | 0 .../icons/chevron-double-right.svg | 0 .../{public => }/icons/chevron-double-up.svg | 0 .../{public => }/icons/chevron-down.svg | 0 .../{public => }/icons/chevron-left.svg | 0 .../{public => }/icons/chevron-right.svg | 0 .../{public => }/icons/chevron-up.svg | 0 .../resources/{public => }/icons/chip.svg | 0 .../{public => }/icons/clipboard-check.svg | 0 .../{public => }/icons/clipboard-copy.svg | 0 .../{public => }/icons/clipboard-list.svg | 0 .../{public => }/icons/clipboard.svg | 0 .../resources/{public => }/icons/clock.svg | 0 .../{public => }/icons/cloud-download.svg | 0 .../{public => }/icons/cloud-upload.svg | 0 .../resources/{public => }/icons/cloud.svg | 0 .../resources/{public => }/icons/code.svg | 0 .../main/resources/{public => }/icons/cog.svg | 0 .../{public => }/icons/collection.svg | 0 .../{public => }/icons/color-swatch.svg | 0 .../{public => }/icons/credit-card.svg | 0 .../{public => }/icons/cube-transparent.svg | 0 .../resources/{public => }/icons/cube.svg | 0 .../icons/currency-bangladeshi.svg | 0 .../{public => }/icons/currency-dollar.svg | 0 .../{public => }/icons/currency-euro.svg | 0 .../{public => }/icons/currency-pound.svg | 0 .../{public => }/icons/currency-rupee.svg | 0 .../{public => }/icons/currency-yen.svg | 0 .../{public => }/icons/cursor-click.svg | 0 .../resources/{public => }/icons/database.svg | 0 .../{public => }/icons/desktop-computer.svg | 0 .../{public => }/icons/device-mobile.svg | 0 .../{public => }/icons/device-tablet.svg | 0 .../{public => }/icons/document-add.svg | 0 .../{public => }/icons/document-download.svg | 0 .../{public => }/icons/document-duplicate.svg | 0 .../{public => }/icons/document-remove.svg | 0 .../{public => }/icons/document-report.svg | 0 .../{public => }/icons/document-search.svg | 0 .../{public => }/icons/document-text.svg | 0 .../resources/{public => }/icons/document.svg | 0 .../icons/dots-circle-horizontal.svg | 0 .../{public => }/icons/dots-horizontal.svg | 0 .../{public => }/icons/dots-vertical.svg | 0 .../resources/{public => }/icons/download.svg | 0 .../{public => }/icons/duplicate.svg | 0 .../{public => }/icons/emoji-happy.svg | 0 .../{public => }/icons/emoji-sad.svg | 0 .../{public => }/icons/exclamation-circle.svg | 0 .../{public => }/icons/exclamation.svg | 0 .../{public => }/icons/external-link.svg | 0 .../resources/{public => }/icons/eye-off.svg | 0 .../main/resources/{public => }/icons/eye.svg | 0 .../{public => }/icons/fast-forward.svg | 0 .../resources/{public => }/icons/film.svg | 0 .../resources/{public => }/icons/filter.svg | 0 .../{public => }/icons/finger-print.svg | 0 .../resources/{public => }/icons/fire.svg | 0 .../resources/{public => }/icons/flag.svg | 0 .../{public => }/icons/folder-add.svg | 0 .../{public => }/icons/folder-download.svg | 0 .../{public => }/icons/folder-open.svg | 0 .../{public => }/icons/folder-remove.svg | 0 .../resources/{public => }/icons/folder.svg | 0 .../resources/{public => }/icons/gift.svg | 0 .../{public => }/icons/globe-alt.svg | 0 .../resources/{public => }/icons/globe.svg | 0 .../resources/{public => }/icons/hand.svg | 0 .../resources/{public => }/icons/hashtag.svg | 0 .../resources/{public => }/icons/heart.svg | 0 .../resources/{public => }/icons/home.svg | 0 .../{public => }/icons/identification.svg | 0 .../resources/{public => }/icons/inbox-in.svg | 0 .../resources/{public => }/icons/inbox.svg | 0 .../{public => }/icons/information-circle.svg | 0 .../main/resources/{public => }/icons/key.svg | 0 .../resources/{public => }/icons/library.svg | 0 .../{public => }/icons/light-bulb.svg | 0 .../{public => }/icons/lightning-bolt.svg | 0 .../resources/{public => }/icons/link.svg | 0 .../{public => }/icons/location-marker.svg | 0 .../{public => }/icons/lock-closed.svg | 0 .../{public => }/icons/lock-open.svg | 0 .../resources/{public => }/icons/login.svg | 0 .../resources/{public => }/icons/logout.svg | 0 .../{public => }/icons/mail-open.svg | 0 .../resources/{public => }/icons/mail.svg | 0 .../main/resources/{public => }/icons/map.svg | 0 .../{public => }/icons/menu-alt-1.svg | 0 .../{public => }/icons/menu-alt-2.svg | 0 .../{public => }/icons/menu-alt-3.svg | 0 .../{public => }/icons/menu-alt-4.svg | 0 .../resources/{public => }/icons/menu.svg | 0 .../{public => }/icons/microphone.svg | 0 .../{public => }/icons/minus-circle.svg | 0 .../resources/{public => }/icons/minus-sm.svg | 0 .../resources/{public => }/icons/minus.svg | 0 .../resources/{public => }/icons/moon.svg | 0 .../{public => }/icons/music-note.svg | 0 .../{public => }/icons/newspaper.svg | 0 .../{public => }/icons/office-building.svg | 0 .../{public => }/icons/paper-airplane.svg | 0 .../{public => }/icons/paper-clip.svg | 0 .../resources/{public => }/icons/pause.svg | 0 .../{public => }/icons/pencil-alt.svg | 0 .../resources/{public => }/icons/pencil.svg | 0 .../{public => }/icons/phone-incoming.svg | 0 .../{public => }/icons/phone-missed-call.svg | 0 .../{public => }/icons/phone-outgoing.svg | 0 .../resources/{public => }/icons/phone.svg | 0 .../{public => }/icons/photograph.svg | 0 .../resources/{public => }/icons/play.svg | 0 .../{public => }/icons/plus-circle.svg | 0 .../resources/{public => }/icons/plus-sm.svg | 0 .../resources/{public => }/icons/plus.svg | 0 .../icons/presentation-chart-bar.svg | 0 .../icons/presentation-chart-line.svg | 0 .../resources/{public => }/icons/printer.svg | 0 .../resources/{public => }/icons/puzzle.svg | 0 .../resources/{public => }/icons/qrcode.svg | 0 .../icons/question-mark-circle.svg | 0 .../{public => }/icons/receipt-refund.svg | 0 .../{public => }/icons/receipt-tax.svg | 0 .../resources/{public => }/icons/refresh.svg | 0 .../resources/{public => }/icons/reply.svg | 0 .../resources/{public => }/icons/rewind.svg | 0 .../main/resources/{public => }/icons/rss.svg | 0 .../resources/{public => }/icons/save-as.svg | 0 .../resources/{public => }/icons/save.svg | 0 .../resources/{public => }/icons/scale.svg | 0 .../resources/{public => }/icons/scissors.svg | 0 .../{public => }/icons/search-circle.svg | 0 .../resources/{public => }/icons/search.svg | 0 .../resources/{public => }/icons/selector.svg | 0 .../resources/{public => }/icons/server.svg | 0 .../resources/{public => }/icons/share.svg | 0 .../{public => }/icons/shield-check.svg | 0 .../{public => }/icons/shield-exclamation.svg | 0 .../{public => }/icons/shopping-bag.svg | 0 .../{public => }/icons/shopping-cart.svg | 0 .../{public => }/icons/sort-ascending.svg | 0 .../{public => }/icons/sort-descending.svg | 0 .../resources/{public => }/icons/sparkles.svg | 0 .../{public => }/icons/speakerphone.svg | 0 .../resources/{public => }/icons/star.svg | 0 .../{public => }/icons/status-offline.svg | 0 .../{public => }/icons/status-online.svg | 0 .../resources/{public => }/icons/stop.svg | 0 .../main/resources/{public => }/icons/sun.svg | 0 .../resources/{public => }/icons/support.svg | 0 .../{public => }/icons/switch-horizontal.svg | 0 .../{public => }/icons/switch-vertical.svg | 0 .../resources/{public => }/icons/table.svg | 0 .../main/resources/{public => }/icons/tag.svg | 0 .../resources/{public => }/icons/template.svg | 0 .../resources/{public => }/icons/terminal.svg | 0 .../{public => }/icons/thumb-down.svg | 0 .../resources/{public => }/icons/thumb-up.svg | 0 .../resources/{public => }/icons/ticket.svg | 0 .../{public => }/icons/translate.svg | 0 .../resources/{public => }/icons/trash.svg | 0 .../{public => }/icons/trending-down.svg | 0 .../{public => }/icons/trending-up.svg | 0 .../resources/{public => }/icons/truck.svg | 0 .../resources/{public => }/icons/upload.svg | 0 .../resources/{public => }/icons/user-add.svg | 0 .../{public => }/icons/user-circle.svg | 0 .../{public => }/icons/user-group.svg | 0 .../{public => }/icons/user-remove.svg | 0 .../resources/{public => }/icons/user.svg | 0 .../resources/{public => }/icons/users.svg | 0 .../resources/{public => }/icons/variable.svg | 0 .../{public => }/icons/video-camera.svg | 0 .../{public => }/icons/view-boards.svg | 0 .../{public => }/icons/view-grid-add.svg | 0 .../{public => }/icons/view-grid.svg | 0 .../{public => }/icons/view-list.svg | 0 .../{public => }/icons/volume-off.svg | 0 .../{public => }/icons/volume-up.svg | 0 .../resources/{public => }/icons/wifi.svg | 0 .../resources/{public => }/icons/x-circle.svg | 0 .../main/resources/{public => }/icons/x.svg | 0 .../resources/{public => }/icons/zoom-in.svg | 0 .../resources/{public => }/icons/zoom-out.svg | 0 .../{public => }/images/Emblem_Bronze.png | Bin .../{public => }/images/Emblem_Challenger.png | Bin .../{public => }/images/Emblem_Diamond.png | Bin .../{public => }/images/Emblem_Gold.png | Bin .../images/Emblem_Grandmaster.png | Bin .../{public => }/images/Emblem_Iron.png | Bin .../{public => }/images/Emblem_Master.png | Bin .../{public => }/images/Emblem_Platinum.png | Bin .../images/Emblem_Provisional.png | Bin .../{public => }/images/Emblem_Silver.png | Bin .../{public => }/images/Emblem_Unranked.png | Bin .../resources/{public => }/images/X_redt.png | Bin .../{public => }/images/aleph256.png | Bin .../{public => }/images/amumu_error.png | Bin .../{public => }/images/blitzcrank_logo.png | Bin .../resources/{public => }/images/gh_logo.png | Bin .../images/placeholder_champion.png | Bin .../{public => }/images/slash_red_256.png | Bin .../kys/athena/components/LandingPage.scala | 4 +- .../kys/athena/components/common/AppBar.scala | 6 +- .../athena/components/common/SearchBar.scala | 5 +- .../components/ongoing/OngoingError.scala | 3 +- .../components/ongoing/OngoingNotFound.scala | 3 +- .../components/ongoing/OngoingPage.scala | 5 +- .../ongoing/OngoingPlayerCard.scala | 26 +++- frontend/webpack.config.js | 24 ++-- frontend/yarn.lock | 136 +++++++++--------- .../kys/athena/util/assets/AssetLoader.scala | 73 ++++++++++ .../kys/athena/util/assets/JSImporter.scala | 11 ++ project/plugins.sbt | 2 +- 259 files changed, 219 insertions(+), 102 deletions(-) rename frontend/src/main/resources/{public => }/icons/academic-cap.svg (100%) rename frontend/src/main/resources/{public => }/icons/adjustments.svg (100%) rename frontend/src/main/resources/{public => }/icons/annotation.svg (100%) rename frontend/src/main/resources/{public => }/icons/archive.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-circle-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-circle-left.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-circle-right.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-circle-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-left.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-narrow-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-narrow-left.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-narrow-right.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-narrow-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-right.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrow-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/arrows-expand.svg (100%) rename frontend/src/main/resources/{public => }/icons/at-symbol.svg (100%) rename frontend/src/main/resources/{public => }/icons/backspace.svg (100%) rename frontend/src/main/resources/{public => }/icons/badge-check.svg (100%) rename frontend/src/main/resources/{public => }/icons/ban.svg (100%) rename frontend/src/main/resources/{public => }/icons/beaker.svg (100%) rename frontend/src/main/resources/{public => }/icons/bell.svg (100%) rename frontend/src/main/resources/{public => }/icons/book-open.svg (100%) rename frontend/src/main/resources/{public => }/icons/bookmark-alt.svg (100%) rename frontend/src/main/resources/{public => }/icons/bookmark.svg (100%) rename frontend/src/main/resources/{public => }/icons/briefcase.svg (100%) rename frontend/src/main/resources/{public => }/icons/cake.svg (100%) rename frontend/src/main/resources/{public => }/icons/calculator.svg (100%) rename frontend/src/main/resources/{public => }/icons/calendar.svg (100%) rename frontend/src/main/resources/{public => }/icons/camera.svg (100%) rename frontend/src/main/resources/{public => }/icons/cash.svg (100%) rename frontend/src/main/resources/{public => }/icons/chart-bar.svg (100%) rename frontend/src/main/resources/{public => }/icons/chart-pie.svg (100%) rename frontend/src/main/resources/{public => }/icons/chart-square-bar.svg (100%) rename frontend/src/main/resources/{public => }/icons/chat-alt-2.svg (100%) rename frontend/src/main/resources/{public => }/icons/chat-alt.svg (100%) rename frontend/src/main/resources/{public => }/icons/chat.svg (100%) rename frontend/src/main/resources/{public => }/icons/check-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/check.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-double-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-double-left.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-double-right.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-double-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-left.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-right.svg (100%) rename frontend/src/main/resources/{public => }/icons/chevron-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/chip.svg (100%) rename frontend/src/main/resources/{public => }/icons/clipboard-check.svg (100%) rename frontend/src/main/resources/{public => }/icons/clipboard-copy.svg (100%) rename frontend/src/main/resources/{public => }/icons/clipboard-list.svg (100%) rename frontend/src/main/resources/{public => }/icons/clipboard.svg (100%) rename frontend/src/main/resources/{public => }/icons/clock.svg (100%) rename frontend/src/main/resources/{public => }/icons/cloud-download.svg (100%) rename frontend/src/main/resources/{public => }/icons/cloud-upload.svg (100%) rename frontend/src/main/resources/{public => }/icons/cloud.svg (100%) rename frontend/src/main/resources/{public => }/icons/code.svg (100%) rename frontend/src/main/resources/{public => }/icons/cog.svg (100%) rename frontend/src/main/resources/{public => }/icons/collection.svg (100%) rename frontend/src/main/resources/{public => }/icons/color-swatch.svg (100%) rename frontend/src/main/resources/{public => }/icons/credit-card.svg (100%) rename frontend/src/main/resources/{public => }/icons/cube-transparent.svg (100%) rename frontend/src/main/resources/{public => }/icons/cube.svg (100%) rename frontend/src/main/resources/{public => }/icons/currency-bangladeshi.svg (100%) rename frontend/src/main/resources/{public => }/icons/currency-dollar.svg (100%) rename frontend/src/main/resources/{public => }/icons/currency-euro.svg (100%) rename frontend/src/main/resources/{public => }/icons/currency-pound.svg (100%) rename frontend/src/main/resources/{public => }/icons/currency-rupee.svg (100%) rename frontend/src/main/resources/{public => }/icons/currency-yen.svg (100%) rename frontend/src/main/resources/{public => }/icons/cursor-click.svg (100%) rename frontend/src/main/resources/{public => }/icons/database.svg (100%) rename frontend/src/main/resources/{public => }/icons/desktop-computer.svg (100%) rename frontend/src/main/resources/{public => }/icons/device-mobile.svg (100%) rename frontend/src/main/resources/{public => }/icons/device-tablet.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-add.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-download.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-duplicate.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-remove.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-report.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-search.svg (100%) rename frontend/src/main/resources/{public => }/icons/document-text.svg (100%) rename frontend/src/main/resources/{public => }/icons/document.svg (100%) rename frontend/src/main/resources/{public => }/icons/dots-circle-horizontal.svg (100%) rename frontend/src/main/resources/{public => }/icons/dots-horizontal.svg (100%) rename frontend/src/main/resources/{public => }/icons/dots-vertical.svg (100%) rename frontend/src/main/resources/{public => }/icons/download.svg (100%) rename frontend/src/main/resources/{public => }/icons/duplicate.svg (100%) rename frontend/src/main/resources/{public => }/icons/emoji-happy.svg (100%) rename frontend/src/main/resources/{public => }/icons/emoji-sad.svg (100%) rename frontend/src/main/resources/{public => }/icons/exclamation-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/exclamation.svg (100%) rename frontend/src/main/resources/{public => }/icons/external-link.svg (100%) rename frontend/src/main/resources/{public => }/icons/eye-off.svg (100%) rename frontend/src/main/resources/{public => }/icons/eye.svg (100%) rename frontend/src/main/resources/{public => }/icons/fast-forward.svg (100%) rename frontend/src/main/resources/{public => }/icons/film.svg (100%) rename frontend/src/main/resources/{public => }/icons/filter.svg (100%) rename frontend/src/main/resources/{public => }/icons/finger-print.svg (100%) rename frontend/src/main/resources/{public => }/icons/fire.svg (100%) rename frontend/src/main/resources/{public => }/icons/flag.svg (100%) rename frontend/src/main/resources/{public => }/icons/folder-add.svg (100%) rename frontend/src/main/resources/{public => }/icons/folder-download.svg (100%) rename frontend/src/main/resources/{public => }/icons/folder-open.svg (100%) rename frontend/src/main/resources/{public => }/icons/folder-remove.svg (100%) rename frontend/src/main/resources/{public => }/icons/folder.svg (100%) rename frontend/src/main/resources/{public => }/icons/gift.svg (100%) rename frontend/src/main/resources/{public => }/icons/globe-alt.svg (100%) rename frontend/src/main/resources/{public => }/icons/globe.svg (100%) rename frontend/src/main/resources/{public => }/icons/hand.svg (100%) rename frontend/src/main/resources/{public => }/icons/hashtag.svg (100%) rename frontend/src/main/resources/{public => }/icons/heart.svg (100%) rename frontend/src/main/resources/{public => }/icons/home.svg (100%) rename frontend/src/main/resources/{public => }/icons/identification.svg (100%) rename frontend/src/main/resources/{public => }/icons/inbox-in.svg (100%) rename frontend/src/main/resources/{public => }/icons/inbox.svg (100%) rename frontend/src/main/resources/{public => }/icons/information-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/key.svg (100%) rename frontend/src/main/resources/{public => }/icons/library.svg (100%) rename frontend/src/main/resources/{public => }/icons/light-bulb.svg (100%) rename frontend/src/main/resources/{public => }/icons/lightning-bolt.svg (100%) rename frontend/src/main/resources/{public => }/icons/link.svg (100%) rename frontend/src/main/resources/{public => }/icons/location-marker.svg (100%) rename frontend/src/main/resources/{public => }/icons/lock-closed.svg (100%) rename frontend/src/main/resources/{public => }/icons/lock-open.svg (100%) rename frontend/src/main/resources/{public => }/icons/login.svg (100%) rename frontend/src/main/resources/{public => }/icons/logout.svg (100%) rename frontend/src/main/resources/{public => }/icons/mail-open.svg (100%) rename frontend/src/main/resources/{public => }/icons/mail.svg (100%) rename frontend/src/main/resources/{public => }/icons/map.svg (100%) rename frontend/src/main/resources/{public => }/icons/menu-alt-1.svg (100%) rename frontend/src/main/resources/{public => }/icons/menu-alt-2.svg (100%) rename frontend/src/main/resources/{public => }/icons/menu-alt-3.svg (100%) rename frontend/src/main/resources/{public => }/icons/menu-alt-4.svg (100%) rename frontend/src/main/resources/{public => }/icons/menu.svg (100%) rename frontend/src/main/resources/{public => }/icons/microphone.svg (100%) rename frontend/src/main/resources/{public => }/icons/minus-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/minus-sm.svg (100%) rename frontend/src/main/resources/{public => }/icons/minus.svg (100%) rename frontend/src/main/resources/{public => }/icons/moon.svg (100%) rename frontend/src/main/resources/{public => }/icons/music-note.svg (100%) rename frontend/src/main/resources/{public => }/icons/newspaper.svg (100%) rename frontend/src/main/resources/{public => }/icons/office-building.svg (100%) rename frontend/src/main/resources/{public => }/icons/paper-airplane.svg (100%) rename frontend/src/main/resources/{public => }/icons/paper-clip.svg (100%) rename frontend/src/main/resources/{public => }/icons/pause.svg (100%) rename frontend/src/main/resources/{public => }/icons/pencil-alt.svg (100%) rename frontend/src/main/resources/{public => }/icons/pencil.svg (100%) rename frontend/src/main/resources/{public => }/icons/phone-incoming.svg (100%) rename frontend/src/main/resources/{public => }/icons/phone-missed-call.svg (100%) rename frontend/src/main/resources/{public => }/icons/phone-outgoing.svg (100%) rename frontend/src/main/resources/{public => }/icons/phone.svg (100%) rename frontend/src/main/resources/{public => }/icons/photograph.svg (100%) rename frontend/src/main/resources/{public => }/icons/play.svg (100%) rename frontend/src/main/resources/{public => }/icons/plus-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/plus-sm.svg (100%) rename frontend/src/main/resources/{public => }/icons/plus.svg (100%) rename frontend/src/main/resources/{public => }/icons/presentation-chart-bar.svg (100%) rename frontend/src/main/resources/{public => }/icons/presentation-chart-line.svg (100%) rename frontend/src/main/resources/{public => }/icons/printer.svg (100%) rename frontend/src/main/resources/{public => }/icons/puzzle.svg (100%) rename frontend/src/main/resources/{public => }/icons/qrcode.svg (100%) rename frontend/src/main/resources/{public => }/icons/question-mark-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/receipt-refund.svg (100%) rename frontend/src/main/resources/{public => }/icons/receipt-tax.svg (100%) rename frontend/src/main/resources/{public => }/icons/refresh.svg (100%) rename frontend/src/main/resources/{public => }/icons/reply.svg (100%) rename frontend/src/main/resources/{public => }/icons/rewind.svg (100%) rename frontend/src/main/resources/{public => }/icons/rss.svg (100%) rename frontend/src/main/resources/{public => }/icons/save-as.svg (100%) rename frontend/src/main/resources/{public => }/icons/save.svg (100%) rename frontend/src/main/resources/{public => }/icons/scale.svg (100%) rename frontend/src/main/resources/{public => }/icons/scissors.svg (100%) rename frontend/src/main/resources/{public => }/icons/search-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/search.svg (100%) rename frontend/src/main/resources/{public => }/icons/selector.svg (100%) rename frontend/src/main/resources/{public => }/icons/server.svg (100%) rename frontend/src/main/resources/{public => }/icons/share.svg (100%) rename frontend/src/main/resources/{public => }/icons/shield-check.svg (100%) rename frontend/src/main/resources/{public => }/icons/shield-exclamation.svg (100%) rename frontend/src/main/resources/{public => }/icons/shopping-bag.svg (100%) rename frontend/src/main/resources/{public => }/icons/shopping-cart.svg (100%) rename frontend/src/main/resources/{public => }/icons/sort-ascending.svg (100%) rename frontend/src/main/resources/{public => }/icons/sort-descending.svg (100%) rename frontend/src/main/resources/{public => }/icons/sparkles.svg (100%) rename frontend/src/main/resources/{public => }/icons/speakerphone.svg (100%) rename frontend/src/main/resources/{public => }/icons/star.svg (100%) rename frontend/src/main/resources/{public => }/icons/status-offline.svg (100%) rename frontend/src/main/resources/{public => }/icons/status-online.svg (100%) rename frontend/src/main/resources/{public => }/icons/stop.svg (100%) rename frontend/src/main/resources/{public => }/icons/sun.svg (100%) rename frontend/src/main/resources/{public => }/icons/support.svg (100%) rename frontend/src/main/resources/{public => }/icons/switch-horizontal.svg (100%) rename frontend/src/main/resources/{public => }/icons/switch-vertical.svg (100%) rename frontend/src/main/resources/{public => }/icons/table.svg (100%) rename frontend/src/main/resources/{public => }/icons/tag.svg (100%) rename frontend/src/main/resources/{public => }/icons/template.svg (100%) rename frontend/src/main/resources/{public => }/icons/terminal.svg (100%) rename frontend/src/main/resources/{public => }/icons/thumb-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/thumb-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/ticket.svg (100%) rename frontend/src/main/resources/{public => }/icons/translate.svg (100%) rename frontend/src/main/resources/{public => }/icons/trash.svg (100%) rename frontend/src/main/resources/{public => }/icons/trending-down.svg (100%) rename frontend/src/main/resources/{public => }/icons/trending-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/truck.svg (100%) rename frontend/src/main/resources/{public => }/icons/upload.svg (100%) rename frontend/src/main/resources/{public => }/icons/user-add.svg (100%) rename frontend/src/main/resources/{public => }/icons/user-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/user-group.svg (100%) rename frontend/src/main/resources/{public => }/icons/user-remove.svg (100%) rename frontend/src/main/resources/{public => }/icons/user.svg (100%) rename frontend/src/main/resources/{public => }/icons/users.svg (100%) rename frontend/src/main/resources/{public => }/icons/variable.svg (100%) rename frontend/src/main/resources/{public => }/icons/video-camera.svg (100%) rename frontend/src/main/resources/{public => }/icons/view-boards.svg (100%) rename frontend/src/main/resources/{public => }/icons/view-grid-add.svg (100%) rename frontend/src/main/resources/{public => }/icons/view-grid.svg (100%) rename frontend/src/main/resources/{public => }/icons/view-list.svg (100%) rename frontend/src/main/resources/{public => }/icons/volume-off.svg (100%) rename frontend/src/main/resources/{public => }/icons/volume-up.svg (100%) rename frontend/src/main/resources/{public => }/icons/wifi.svg (100%) rename frontend/src/main/resources/{public => }/icons/x-circle.svg (100%) rename frontend/src/main/resources/{public => }/icons/x.svg (100%) rename frontend/src/main/resources/{public => }/icons/zoom-in.svg (100%) rename frontend/src/main/resources/{public => }/icons/zoom-out.svg (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Bronze.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Challenger.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Diamond.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Gold.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Grandmaster.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Iron.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Master.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Platinum.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Provisional.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Silver.png (100%) rename frontend/src/main/resources/{public => }/images/Emblem_Unranked.png (100%) rename frontend/src/main/resources/{public => }/images/X_redt.png (100%) rename frontend/src/main/resources/{public => }/images/aleph256.png (100%) rename frontend/src/main/resources/{public => }/images/amumu_error.png (100%) rename frontend/src/main/resources/{public => }/images/blitzcrank_logo.png (100%) rename frontend/src/main/resources/{public => }/images/gh_logo.png (100%) rename frontend/src/main/resources/{public => }/images/placeholder_champion.png (100%) rename frontend/src/main/resources/{public => }/images/slash_red_256.png (100%) create mode 100644 macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala create mode 100644 macro/src/main/scala/org/kys/athena/util/assets/JSImporter.scala 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 @@ - + - + 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