Switch to using SVG sprites for icons, instead of using a combination of icon fonts and inline SVG elements. This means there's a single icons.svg file containing all icons, and icons are referenced like `<svg><use href="/icons.svg#arrow-alt-up"/></svg>`. This should make icons more efficient since a) it replaces an 80kb icon font file with a 8kb SVG file and b) it replaces repeated inline copies of the same icon with references to the sprite sheet. This most notably affects the upvote and downvote buttons. This also updates icons from Font Awesome 5 to Font Awesome 6, which fixes a few minor icon alignment issues in some places. ref: https://fontawesome.com/docs/web/add-icons/svg-sprites
97 lines
4.0 KiB
JavaScript
97 lines
4.0 KiB
JavaScript
/* eslint no-console:0 */
|
|
function importAll(r) {
|
|
r.keys().forEach(r);
|
|
}
|
|
|
|
// XXX for dropzone.
|
|
import "core-js/web/dom-collections";
|
|
|
|
require('@rails/ujs').start();
|
|
require('hammerjs');
|
|
require('jquery-hotkeys');
|
|
import morphdom from 'morphdom';
|
|
|
|
// should start looking for nodejs replacements
|
|
importAll(require.context('../vendor', true, /\.js$/));
|
|
|
|
require.context("../../../public/images", true);
|
|
|
|
import jQuery from 'jquery';
|
|
require("jquery-ui/ui/widgets/autocomplete");
|
|
require("jquery-ui/ui/widgets/button");
|
|
require("jquery-ui/ui/widgets/dialog");
|
|
require("jquery-ui/themes/base/core.css");
|
|
require("jquery-ui/themes/base/autocomplete.css");
|
|
require("jquery-ui/themes/base/button.css");
|
|
require("jquery-ui/themes/base/dialog.css");
|
|
require("jquery-ui/themes/base/theme.css");
|
|
|
|
importAll(require.context('../src/javascripts', true, /\.js(\.erb)?$/));
|
|
importAll(require.context('../src/styles', true, /\.s?css(?:\.erb)?$/));
|
|
importAll(require.context('../../components', true, /\.s?css(?:\.erb)?$/));
|
|
|
|
import Autocomplete from "../src/javascripts/autocomplete.js";
|
|
import ArtistCommentary from "../src/javascripts/artist_commentaries.js";
|
|
import Blacklist from "../src/javascripts/blacklists.js";
|
|
import CommentComponent from "../src/javascripts/comment_component.js";
|
|
import CommentVotesTooltipComponent from "../src/javascripts/comment_votes_tooltip_component.js";
|
|
import CurrentUser from "../src/javascripts/current_user.js";
|
|
import Dtext from "../src/javascripts/dtext.js";
|
|
import FavoritesTooltipComponent from "../src/javascripts/favorites_tooltip_component.js";
|
|
import FileUploadComponent from "../src/javascripts/file_upload_component.js";
|
|
import ForumPostComponent from "../src/javascripts/forum_post_component.js";
|
|
import IqdbQuery from "../src/javascripts/iqdb_queries.js";
|
|
import Note from "../src/javascripts/notes.js";
|
|
import MediaAssetComponent from "../src/javascripts/media_asset_component.js";
|
|
import PopupMenuComponent from "../src/javascripts/popup_menu_component.js";
|
|
import Post from "../src/javascripts/posts.js";
|
|
import PostModeMenu from "../src/javascripts/post_mode_menu.js";
|
|
import PostTooltip from "../src/javascripts/post_tooltips.js";
|
|
import PostVotesTooltipComponent from "../src/javascripts/post_votes_tooltip_component.js";
|
|
import PreviewSizeMenuComponent from "../src/javascripts/preview_size_menu_component.js";
|
|
import RelatedTag from "../src/javascripts/related_tag.js";
|
|
import Shortcuts from "../src/javascripts/shortcuts.js";
|
|
import TagCounter from "../src/javascripts/tag_counter.js";
|
|
import TimeSeriesComponent from "../src/javascripts/time_series_component.js";
|
|
import Upload from "../src/javascripts/uploads.js";
|
|
import UserTooltip from "../src/javascripts/user_tooltips.js";
|
|
import Utility from "../src/javascripts/utility.js";
|
|
import Ugoira from "../src/javascripts/ugoira.js"
|
|
|
|
let Danbooru = {};
|
|
Danbooru.Autocomplete = Autocomplete;
|
|
Danbooru.ArtistCommentary = ArtistCommentary;
|
|
Danbooru.Blacklist = Blacklist;
|
|
Danbooru.CommentComponent = CommentComponent;
|
|
Danbooru.CommentVotesTooltipComponent = CommentVotesTooltipComponent;
|
|
Danbooru.CurrentUser = CurrentUser;
|
|
Danbooru.Dtext = Dtext;
|
|
Danbooru.FavoritesTooltipComponent = FavoritesTooltipComponent;
|
|
Danbooru.FileUploadComponent = FileUploadComponent;
|
|
Danbooru.ForumPostComponent = ForumPostComponent;
|
|
Danbooru.IqdbQuery = IqdbQuery;
|
|
Danbooru.MediaAssetComponent = MediaAssetComponent;
|
|
Danbooru.Note = Note;
|
|
Danbooru.PopupMenuComponent = PopupMenuComponent;
|
|
Danbooru.Post = Post;
|
|
Danbooru.PostModeMenu = PostModeMenu;
|
|
Danbooru.PostTooltip = PostTooltip;
|
|
Danbooru.PostVotesTooltipComponent = PostVotesTooltipComponent;
|
|
Danbooru.PreviewSizeMenuComponent = PreviewSizeMenuComponent;
|
|
Danbooru.RelatedTag = RelatedTag;
|
|
Danbooru.Shortcuts = Shortcuts;
|
|
Danbooru.TagCounter = TagCounter;
|
|
Danbooru.TimeSeriesComponent = TimeSeriesComponent;
|
|
Danbooru.Upload = Upload;
|
|
Danbooru.UserTooltip = UserTooltip;
|
|
Danbooru.Utility = Utility;
|
|
Danbooru.Ugoira = Ugoira;
|
|
|
|
Danbooru.notice = Utility.notice;
|
|
Danbooru.error = Utility.error;
|
|
|
|
window.$ = jQuery;
|
|
window.jQuery = jQuery;
|
|
window.morphdom = morphdom;
|
|
window.Danbooru = Danbooru;
|