{"version":3,"file":"js/application-af5fdca98e23989797a6.js","mappings":"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","sources":["webpack:////danbooru/app/components|sync|/\\.s","webpack:////danbooru/app/javascript/src/javascripts|sync|/\\.js(\\.erb)","webpack:////danbooru/app/javascript/src/styles|sync|/\\.s","webpack:////danbooru/app/javascript/vendor|sync|/\\.js$/","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/src/javascripts/artist_commentaries.js","webpack:///./app/javascript/src/javascripts/autocomplete.js","webpack:///./app/javascript/src/javascripts/blacklists.js","webpack:///./app/javascript/src/javascripts/comment_component.js","webpack:///./app/javascript/src/javascripts/comment_votes_tooltip_component.js","webpack:///./app/javascript/src/javascripts/common.js","webpack:///./app/javascript/src/javascripts/cookie.js","webpack:///./app/javascript/src/javascripts/current_user.js","webpack:///./app/javascript/src/javascripts/dtext.js","webpack:///./app/javascript/src/javascripts/favorite_groups.js","webpack:///./app/javascript/src/javascripts/favorites_tooltip_component.js","webpack:///./app/javascript/src/javascripts/file_upload_component.js","webpack:///./app/javascript/src/javascripts/forum_post_component.js","webpack:///./app/javascript/src/javascripts/iqdb_queries.js","webpack:///./app/javascript/src/javascripts/media_asset_component.js","webpack:///./app/javascript/src/javascripts/mod_queue.js","webpack:///./app/javascript/src/javascripts/news_updates.js","webpack:///./app/javascript/src/javascripts/notes.js","webpack:///./app/javascript/src/javascripts/pools.js","webpack:///./app/javascript/src/javascripts/popup_menu_component.js","webpack:///./app/javascript/src/javascripts/post_mode_menu.js","webpack:///./app/javascript/src/javascripts/post_tooltips.js","webpack:///./app/javascript/src/javascripts/post_version.js","webpack:///./app/javascript/src/javascripts/post_votes_tooltip_component.js","webpack:///./app/javascript/src/javascripts/posts.js","webpack:///./app/javascript/src/javascripts/preview_size_menu_component.js","webpack:///./app/javascript/src/javascripts/related_tag.js","webpack:///./app/javascript/src/javascripts/responsive.js","webpack:///./app/javascript/src/javascripts/shortcuts.js","webpack:///./app/javascript/src/javascripts/source_data_component.js","webpack:///./app/javascript/src/javascripts/tag_counter.js","webpack:///./app/javascript/src/javascripts/time_series_component.js","webpack:///./app/javascript/src/javascripts/ugoira.js","webpack:///./app/javascript/src/javascripts/uploads.js","webpack:///./app/javascript/src/javascripts/user_feedback.js","webpack:///./app/javascript/src/javascripts/user_tooltips.js","webpack:///./app/javascript/src/javascripts/users.js","webpack:///./app/javascript/src/javascripts/utility.js","webpack:///./app/javascript/vendor/pixiv-ugoira-player.js","webpack:////danbooru/public/images|sync|/^\\.\\/.*$/"],"sourcesContent":["var map = {\n\t\"./comment_component/comment_component.scss\": 12511,\n\t\"./comment_votes_tooltip_component/comment_votes_tooltip_component.scss\": 22658,\n\t\"./favorites_tooltip_component/favorites_tooltip_component.scss\": 90643,\n\t\"./file_upload_component/file_upload_component.scss\": 69636,\n\t\"./forum_post_component/forum_post_component.scss\": 81437,\n\t\"./media_asset_component/media_asset_component.scss\": 21033,\n\t\"./media_asset_gallery_component/media_asset_gallery_component.scss\": 55548,\n\t\"./media_asset_preview_component/media_asset_preview_component.scss\": 80510,\n\t\"./paginator_component/paginator_component.scss\": 10640,\n\t\"./popup_menu_component/popup_menu_component.scss\": 40833,\n\t\"./post_gallery_component/post_gallery_component.scss\": 48724,\n\t\"./post_navbar_component/post_navbar_component.scss\": 17157,\n\t\"./post_preview_component/post_preview_component.scss\": 44924,\n\t\"./post_votes_component/post_votes_component.scss\": 43826,\n\t\"./post_votes_tooltip_component/post_votes_tooltip_component.scss\": 33430,\n\t\"./source_data_component/source_data_component.scss\": 95513,\n\t\"./tag_list_component/tag_list_component.html.scss\": 12449,\n\t\"comment_component/comment_component.scss\": 12511,\n\t\"comment_votes_tooltip_component/comment_votes_tooltip_component.scss\": 22658,\n\t\"favorites_tooltip_component/favorites_tooltip_component.scss\": 90643,\n\t\"file_upload_component/file_upload_component.scss\": 69636,\n\t\"forum_post_component/forum_post_component.scss\": 81437,\n\t\"media_asset_component/media_asset_component.scss\": 21033,\n\t\"media_asset_gallery_component/media_asset_gallery_component.scss\": 55548,\n\t\"media_asset_preview_component/media_asset_preview_component.scss\": 80510,\n\t\"paginator_component/paginator_component.scss\": 10640,\n\t\"popup_menu_component/popup_menu_component.scss\": 40833,\n\t\"post_gallery_component/post_gallery_component.scss\": 48724,\n\t\"post_navbar_component/post_navbar_component.scss\": 17157,\n\t\"post_preview_component/post_preview_component.scss\": 44924,\n\t\"post_votes_component/post_votes_component.scss\": 43826,\n\t\"post_votes_tooltip_component/post_votes_tooltip_component.scss\": 33430,\n\t\"source_data_component/source_data_component.scss\": 95513,\n\t\"tag_list_component/tag_list_component.html.scss\": 12449\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 78249;","var map = {\n\t\"./artist_commentaries.js\": 66974,\n\t\"./autocomplete.js\": 84835,\n\t\"./blacklists.js\": 51678,\n\t\"./comment_component.js\": 33875,\n\t\"./comment_votes_tooltip_component.js\": 83688,\n\t\"./common.js\": 62855,\n\t\"./cookie.js\": 94141,\n\t\"./current_user.js\": 55056,\n\t\"./dtext.js\": 77994,\n\t\"./favorite_groups.js\": 68441,\n\t\"./favorites_tooltip_component.js\": 9196,\n\t\"./file_upload_component.js\": 22472,\n\t\"./forum_post_component.js\": 68699,\n\t\"./iqdb_queries.js\": 63881,\n\t\"./media_asset_component.js\": 81922,\n\t\"./mod_queue.js\": 41207,\n\t\"./news_updates.js\": 28326,\n\t\"./notes.js\": 36520,\n\t\"./pools.js\": 83013,\n\t\"./popup_menu_component.js\": 78122,\n\t\"./post_mode_menu.js\": 24596,\n\t\"./post_tooltips.js\": 84785,\n\t\"./post_version.js\": 7832,\n\t\"./post_votes_tooltip_component.js\": 3045,\n\t\"./posts.js\": 86168,\n\t\"./preview_size_menu_component.js\": 2201,\n\t\"./related_tag.js\": 29196,\n\t\"./responsive.js\": 65263,\n\t\"./shortcuts.js\": 36381,\n\t\"./source_data_component.js\": 28517,\n\t\"./tag_counter.js\": 47620,\n\t\"./time_series_component.js\": 85718,\n\t\"./ugoira.js\": 74569,\n\t\"./uploads.js\": 44741,\n\t\"./user_feedback.js\": 84717,\n\t\"./user_tooltips.js\": 88254,\n\t\"./users.js\": 71457,\n\t\"./utility.js\": 20866,\n\t\"src/javascripts/artist_commentaries.js\": 66974,\n\t\"src/javascripts/autocomplete.js\": 84835,\n\t\"src/javascripts/blacklists.js\": 51678,\n\t\"src/javascripts/comment_component.js\": 33875,\n\t\"src/javascripts/comment_votes_tooltip_component.js\": 83688,\n\t\"src/javascripts/common.js\": 62855,\n\t\"src/javascripts/cookie.js\": 94141,\n\t\"src/javascripts/current_user.js\": 55056,\n\t\"src/javascripts/dtext.js\": 77994,\n\t\"src/javascripts/favorite_groups.js\": 68441,\n\t\"src/javascripts/favorites_tooltip_component.js\": 9196,\n\t\"src/javascripts/file_upload_component.js\": 22472,\n\t\"src/javascripts/forum_post_component.js\": 68699,\n\t\"src/javascripts/iqdb_queries.js\": 63881,\n\t\"src/javascripts/media_asset_component.js\": 81922,\n\t\"src/javascripts/mod_queue.js\": 41207,\n\t\"src/javascripts/news_updates.js\": 28326,\n\t\"src/javascripts/notes.js\": 36520,\n\t\"src/javascripts/pools.js\": 83013,\n\t\"src/javascripts/popup_menu_component.js\": 78122,\n\t\"src/javascripts/post_mode_menu.js\": 24596,\n\t\"src/javascripts/post_tooltips.js\": 84785,\n\t\"src/javascripts/post_version.js\": 7832,\n\t\"src/javascripts/post_votes_tooltip_component.js\": 3045,\n\t\"src/javascripts/posts.js\": 86168,\n\t\"src/javascripts/preview_size_menu_component.js\": 2201,\n\t\"src/javascripts/related_tag.js\": 29196,\n\t\"src/javascripts/responsive.js\": 65263,\n\t\"src/javascripts/shortcuts.js\": 36381,\n\t\"src/javascripts/source_data_component.js\": 28517,\n\t\"src/javascripts/tag_counter.js\": 47620,\n\t\"src/javascripts/time_series_component.js\": 85718,\n\t\"src/javascripts/ugoira.js\": 74569,\n\t\"src/javascripts/uploads.js\": 44741,\n\t\"src/javascripts/user_feedback.js\": 84717,\n\t\"src/javascripts/user_tooltips.js\": 88254,\n\t\"src/javascripts/users.js\": 71457,\n\t\"src/javascripts/utility.js\": 20866\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 55052;","var map = {\n\t\"./base/000_vars.scss\": 25038,\n\t\"./base/010_reset.scss\": 79045,\n\t\"./base/020_base.scss\": 47302,\n\t\"./base/030_links.scss\": 73947,\n\t\"./base/040_colors.scss\": 74879,\n\t\"./common/autocomplete.scss\": 97900,\n\t\"./common/blacklists.scss\": 10137,\n\t\"./common/buttons.scss\": 26762,\n\t\"./common/diffs.scss\": 82210,\n\t\"./common/dtext.scss\": 59655,\n\t\"./common/fonts.css\": 21344,\n\t\"./common/inline.scss\": 97261,\n\t\"./common/jquery_ui_custom.scss\": 26757,\n\t\"./common/main_layout.scss\": 15569,\n\t\"./common/messages.scss\": 85615,\n\t\"./common/news.scss\": 13625,\n\t\"./common/notices.scss\": 35849,\n\t\"./common/page_header.scss\": 43282,\n\t\"./common/recent_posts.scss\": 54934,\n\t\"./common/simple_form.scss\": 1687,\n\t\"./common/tables.scss\": 63091,\n\t\"./common/tags.scss\": 25125,\n\t\"./common/user_styles.scss\": 88260,\n\t\"./common/utilities.scss\": 52390,\n\t\"./common/versions.scss\": 68777,\n\t\"./specific/artists.scss\": 73661,\n\t\"./specific/bans.scss\": 74312,\n\t\"./specific/comments.scss\": 18638,\n\t\"./specific/common_tooltips.scss\": 63477,\n\t\"./specific/dmails.scss\": 76651,\n\t\"./specific/error.scss\": 40480,\n\t\"./specific/forum.scss\": 2487,\n\t\"./specific/iqdb_queries.scss\": 74410,\n\t\"./specific/keyboard_shortcuts.scss\": 38043,\n\t\"./specific/mod_queue.scss\": 62117,\n\t\"./specific/moderator_dashboard.scss\": 23327,\n\t\"./specific/notes.scss\": 27775,\n\t\"./specific/pools.scss\": 12916,\n\t\"./specific/post_mode_menu.scss\": 20701,\n\t\"./specific/post_tooltips.scss\": 42532,\n\t\"./specific/post_versions.scss\": 58298,\n\t\"./specific/posts.scss\": 53083,\n\t\"./specific/related_tags.scss\": 51463,\n\t\"./specific/uploads.scss\": 62868,\n\t\"./specific/user_feedback.scss\": 81042,\n\t\"./specific/user_tooltips.scss\": 99497,\n\t\"./specific/user_upgrades.scss\": 16046,\n\t\"./specific/users.scss\": 17201,\n\t\"./specific/wiki_page_versions.scss\": 60070,\n\t\"./specific/wiki_pages.scss\": 30672,\n\t\"./specific/z_responsive.scss\": 18748,\n\t\"src/styles/base/000_vars.scss\": 25038,\n\t\"src/styles/base/010_reset.scss\": 79045,\n\t\"src/styles/base/020_base.scss\": 47302,\n\t\"src/styles/base/030_links.scss\": 73947,\n\t\"src/styles/base/040_colors.scss\": 74879,\n\t\"src/styles/common/autocomplete.scss\": 97900,\n\t\"src/styles/common/blacklists.scss\": 10137,\n\t\"src/styles/common/buttons.scss\": 26762,\n\t\"src/styles/common/diffs.scss\": 82210,\n\t\"src/styles/common/dtext.scss\": 59655,\n\t\"src/styles/common/fonts.css\": 21344,\n\t\"src/styles/common/inline.scss\": 97261,\n\t\"src/styles/common/jquery_ui_custom.scss\": 26757,\n\t\"src/styles/common/main_layout.scss\": 15569,\n\t\"src/styles/common/messages.scss\": 85615,\n\t\"src/styles/common/news.scss\": 13625,\n\t\"src/styles/common/notices.scss\": 35849,\n\t\"src/styles/common/page_header.scss\": 43282,\n\t\"src/styles/common/recent_posts.scss\": 54934,\n\t\"src/styles/common/simple_form.scss\": 1687,\n\t\"src/styles/common/tables.scss\": 63091,\n\t\"src/styles/common/tags.scss\": 25125,\n\t\"src/styles/common/user_styles.scss\": 88260,\n\t\"src/styles/common/utilities.scss\": 52390,\n\t\"src/styles/common/versions.scss\": 68777,\n\t\"src/styles/specific/artists.scss\": 73661,\n\t\"src/styles/specific/bans.scss\": 74312,\n\t\"src/styles/specific/comments.scss\": 18638,\n\t\"src/styles/specific/common_tooltips.scss\": 63477,\n\t\"src/styles/specific/dmails.scss\": 76651,\n\t\"src/styles/specific/error.scss\": 40480,\n\t\"src/styles/specific/forum.scss\": 2487,\n\t\"src/styles/specific/iqdb_queries.scss\": 74410,\n\t\"src/styles/specific/keyboard_shortcuts.scss\": 38043,\n\t\"src/styles/specific/mod_queue.scss\": 62117,\n\t\"src/styles/specific/moderator_dashboard.scss\": 23327,\n\t\"src/styles/specific/notes.scss\": 27775,\n\t\"src/styles/specific/pools.scss\": 12916,\n\t\"src/styles/specific/post_mode_menu.scss\": 20701,\n\t\"src/styles/specific/post_tooltips.scss\": 42532,\n\t\"src/styles/specific/post_versions.scss\": 58298,\n\t\"src/styles/specific/posts.scss\": 53083,\n\t\"src/styles/specific/related_tags.scss\": 51463,\n\t\"src/styles/specific/uploads.scss\": 62868,\n\t\"src/styles/specific/user_feedback.scss\": 81042,\n\t\"src/styles/specific/user_tooltips.scss\": 99497,\n\t\"src/styles/specific/user_upgrades.scss\": 16046,\n\t\"src/styles/specific/users.scss\": 17201,\n\t\"src/styles/specific/wiki_page_versions.scss\": 60070,\n\t\"src/styles/specific/wiki_pages.scss\": 30672,\n\t\"src/styles/specific/z_responsive.scss\": 18748\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 44353;","var map = {\n\t\"./pixiv-ugoira-player.js\": 77867,\n\t\"vendor/pixiv-ugoira-player.js\": 77867\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 74386;","/* eslint no-console:0 */\nfunction importAll(r) {\n r.keys().forEach(r);\n}\n\n// XXX for dropzone.\nimport \"core-js/web/dom-collections\";\n\nrequire('@rails/ujs').start();\nrequire('hammerjs');\nrequire('jquery-hotkeys');\nimport morphdom from 'morphdom';\n\n// should start looking for nodejs replacements\nimportAll(require.context('../vendor', true, /\\.js$/));\n\nrequire.context(\"../../../public/images\", true);\n\nimport jQuery from 'jquery';\nrequire(\"jquery-ui/ui/widgets/autocomplete\");\nrequire(\"jquery-ui/ui/widgets/button\");\nrequire(\"jquery-ui/ui/widgets/dialog\");\nrequire(\"jquery-ui/themes/base/core.css\");\nrequire(\"jquery-ui/themes/base/autocomplete.css\");\nrequire(\"jquery-ui/themes/base/button.css\");\nrequire(\"jquery-ui/themes/base/dialog.css\");\nrequire(\"jquery-ui/themes/base/theme.css\");\n\nrequire(\"@fortawesome/fontawesome-free/css/fontawesome.css\");\nrequire(\"@fortawesome/fontawesome-free/css/solid.css\");\nrequire(\"@fortawesome/fontawesome-free/css/regular.css\");\n\nimportAll(require.context('../src/javascripts', true, /\\.js(\\.erb)?$/));\nimportAll(require.context('../src/styles', true, /\\.s?css(?:\\.erb)?$/));\nimportAll(require.context('../../components', true, /\\.s?css(?:\\.erb)?$/));\n\nimport Autocomplete from \"../src/javascripts/autocomplete.js\";\nimport Blacklist from \"../src/javascripts/blacklists.js\";\nimport CommentComponent from \"../src/javascripts/comment_component.js\";\nimport CommentVotesTooltipComponent from \"../src/javascripts/comment_votes_tooltip_component.js\";\nimport CurrentUser from \"../src/javascripts/current_user.js\";\nimport Dtext from \"../src/javascripts/dtext.js\";\nimport FavoritesTooltipComponent from \"../src/javascripts/favorites_tooltip_component.js\";\nimport FileUploadComponent from \"../src/javascripts/file_upload_component.js\";\nimport ForumPostComponent from \"../src/javascripts/forum_post_component.js\";\nimport IqdbQuery from \"../src/javascripts/iqdb_queries.js\";\nimport Note from \"../src/javascripts/notes.js\";\nimport MediaAssetComponent from \"../src/javascripts/media_asset_component.js\";\nimport PopupMenuComponent from \"../src/javascripts/popup_menu_component.js\";\nimport Post from \"../src/javascripts/posts.js\";\nimport PostModeMenu from \"../src/javascripts/post_mode_menu.js\";\nimport PostTooltip from \"../src/javascripts/post_tooltips.js\";\nimport PostVotesTooltipComponent from \"../src/javascripts/post_votes_tooltip_component.js\";\nimport PreviewSizeMenuComponent from \"../src/javascripts/preview_size_menu_component.js\";\nimport RelatedTag from \"../src/javascripts/related_tag.js\";\nimport Shortcuts from \"../src/javascripts/shortcuts.js\";\nimport TagCounter from \"../src/javascripts/tag_counter.js\";\nimport TimeSeriesComponent from \"../src/javascripts/time_series_component.js\";\nimport Upload from \"../src/javascripts/uploads.js\";\nimport UserTooltip from \"../src/javascripts/user_tooltips.js\";\nimport Utility from \"../src/javascripts/utility.js\";\nimport Ugoira from \"../src/javascripts/ugoira.js\"\n\nlet Danbooru = {};\nDanbooru.Autocomplete = Autocomplete;\nDanbooru.Blacklist = Blacklist;\nDanbooru.CommentComponent = CommentComponent;\nDanbooru.CommentVotesTooltipComponent = CommentVotesTooltipComponent;\nDanbooru.CurrentUser = CurrentUser;\nDanbooru.Dtext = Dtext;\nDanbooru.FavoritesTooltipComponent = FavoritesTooltipComponent;\nDanbooru.FileUploadComponent = FileUploadComponent;\nDanbooru.ForumPostComponent = ForumPostComponent;\nDanbooru.IqdbQuery = IqdbQuery;\nDanbooru.MediaAssetComponent = MediaAssetComponent;\nDanbooru.Note = Note;\nDanbooru.PopupMenuComponent = PopupMenuComponent;\nDanbooru.Post = Post;\nDanbooru.PostModeMenu = PostModeMenu;\nDanbooru.PostTooltip = PostTooltip;\nDanbooru.PostVotesTooltipComponent = PostVotesTooltipComponent;\nDanbooru.PreviewSizeMenuComponent = PreviewSizeMenuComponent;\nDanbooru.RelatedTag = RelatedTag;\nDanbooru.Shortcuts = Shortcuts;\nDanbooru.TagCounter = TagCounter;\nDanbooru.TimeSeriesComponent = TimeSeriesComponent;\nDanbooru.Upload = Upload;\nDanbooru.UserTooltip = UserTooltip;\nDanbooru.Utility = Utility;\nDanbooru.Ugoira = Ugoira;\n\nDanbooru.notice = Utility.notice;\nDanbooru.error = Utility.error;\n\nwindow.$ = jQuery;\nwindow.jQuery = jQuery;\nwindow.morphdom = morphdom;\nwindow.Danbooru = Danbooru;\n","import Utility from \"./utility\";\nimport Rails from \"@rails/ujs\";\n\nlet ArtistCommentary = {};\n\nArtistCommentary.initialize_all = function() {\n if ($(\"#c-posts\").length && $(\"#a-show\").length) {\n if ($(\"#original-artist-commentary\").length && $(\"#translated-artist-commentary\").length) {\n this.initialize_commentary_display_tabs();\n }\n\n this.initialize_edit_commentary_dialog();\n }\n}\n\nArtistCommentary.initialize_commentary_display_tabs = function() {\n $(\"#commentary-sections li a\").on(\"click.danbooru\", function(e) {\n if (e.target.hash === \"#original\") {\n $(\"#original-artist-commentary\").show();\n $(\"#translated-artist-commentary\").hide();\n } else if (e.target.hash === \"#translated\") {\n $(\"#original-artist-commentary\").hide();\n $(\"#translated-artist-commentary\").show();\n }\n\n $(\"#commentary-sections li\").removeClass(\"active\");\n $(e.target).parent(\"li\").addClass(\"active\");\n e.preventDefault();\n });\n}\n\nArtistCommentary.initialize_edit_commentary_dialog = function() {\n $(\"#add-commentary-dialog\").dialog({\n autoOpen: false,\n width: 700,\n buttons: {\n \"Submit\": function() {\n let form = $(\"#add-commentary-dialog #edit-commentary\").get(0);\n Rails.fire(form, \"submit\");\n $(this).dialog(\"close\");\n },\n \"Cancel\": function() {\n $(this).dialog(\"close\");\n }\n }\n });\n\n $('#add-commentary-dialog #edit-commentary').submit(function() {\n $('#add-commentary-dialog').dialog('close');\n });\n\n $(\"#add-commentary\").on(\"click.danbooru\", function(e) {\n e.preventDefault();\n $(\"#add-commentary-dialog\").dialog(\"open\");\n });\n\n $('#fetch-commentary select[name=\"commentary_source_type\"]').change(function() {\n $(\"#fetch-commentary input\").toggle();\n });\n\n $('#fetch-commentary button[type=\"submit\"]').on(\"click.danbooru\", ArtistCommentary.fetch_commentary);\n}\n\nArtistCommentary.fetch_commentary = function() {\n var commentary = \"\";\n Utility.notice(\"Fetching artist commentary...\");\n\n var type = $('#fetch-commentary select[name=\"commentary_source_type\"]').val();\n if (type === \"Source\") {\n var source = $('#fetch-commentary input[name=\"commentary_source\"]').val();\n commentary = ArtistCommentary.from_source(source);\n } else if (type === \"Post\") {\n var id = $('#fetch-commentary input[name=\"commentary_post_id\"]').val();\n commentary = ArtistCommentary.from_post_id(id);\n }\n\n commentary.then(ArtistCommentary.fill_commentary).then(function (success) {\n var message = success ? \"Artist commentary copied.\" : \"Artist commentary copied; conflicting fields ignored.\";\n Utility.notice(message);\n }).catch(function () {\n Utility.notice(\"Fetching artist commentary failed.\");\n });\n\n return false;\n};\n\nArtistCommentary.from_source = function(source) {\n return $.get(\"/source.json?url=\" + encodeURIComponent(source)).then(function(data) {\n return {\n original_title: data.artist_commentary.dtext_title,\n original_description: data.artist_commentary.dtext_description,\n source: source,\n };\n });\n};\n\nArtistCommentary.from_post_id = function(post_id) {\n return $.get(\"/posts/\" + encodeURIComponent(post_id) + \"/artist_commentary.json\").then(function(commentary) {\n commentary.source = \"post #\" + post_id;\n return commentary;\n });\n};\n\nArtistCommentary.fill_commentary = function(commentary) {\n var description = ArtistCommentary.merge_commentaries($(\"#artist_commentary_original_description\").val().trim(), commentary);\n $(\"#artist_commentary_original_description\").val(description);\n\n // Update the other fields if they're blank. Return success if none conflict.\n return [\n ArtistCommentary.update_field($(\"#artist_commentary_original_title\"), commentary.original_title),\n ArtistCommentary.update_field($(\"#artist_commentary_translated_title\"), commentary.translated_title),\n ArtistCommentary.update_field($(\"#artist_commentary_translated_description\"), commentary.translated_description),\n ].every(function (i) { return i; });\n};\n\n// If the new description conflicts with the current description, merge them\n// by appending the new description onto the old one.\nArtistCommentary.merge_commentaries = function(description, commentary) {\n var post_source = $('.image-container').data().source;\n var normalized_source = $(\".image-container\").data().normalizedSource;\n\n if ((commentary.original_description && description) &&\n (commentary.original_description !== description)) {\n return description\n + \"\\n\\n[tn]\\nSource: \" + normalized_source + \"\\n[/tn]\"\n + \"\\n\\nh6. \" + (commentary.original_title || \"Untitled\")\n + \"\\n\\n\" + commentary.original_description\n + \"\\n\\n[tn]\\nSource: \" + commentary.source + \"\\n[/tn]\";\n } else if (commentary.source !== post_source) {\n return commentary.original_description + \"\\n\\n[tn]\\nSource: \" + commentary.source + \"\\n[/tn]\";\n } else {\n return commentary.original_description || description;\n }\n};\n\n// Update commentary field if it's blank, signal an error if there's a conflict.\nArtistCommentary.update_field = function($field, value) {\n $field.closest(\".input\").removeClass(\"field_with_errors\");\n\n if ($field.val().trim() === \"\") {\n $field.val(value);\n return true;\n } else if ($field.val().trim() !== value) {\n $field.closest(\".input\").addClass(\"field_with_errors\");\n return false;\n } else {\n return true;\n }\n}\n\n$(function() {\n ArtistCommentary.initialize_all();\n});\n\nexport default ArtistCommentary\n","let Autocomplete = {};\n\nAutocomplete.VERSION = 1; // This should be bumped whenever the /autocomplete API changes in order to invalid client caches.\nAutocomplete.MAX_RESULTS = 20;\n\nAutocomplete.initialize_all = function() {\n $.widget(\"ui.autocomplete\", $.ui.autocomplete, {\n options: {\n delay: 0,\n minLength: 1,\n autoFocus: false,\n focus: function() { return false; },\n },\n _create: function() {\n this.element.on(\"keydown.Autocomplete.tab\", null, \"tab\", Autocomplete.on_tab);\n this._super();\n },\n _renderItem: Autocomplete.render_item,\n search: function(value, event) {\n if ($(this).data(\"ui-autocomplete\")) {\n $(this).data(\"ui-autocomplete\").menu.bindings = $();\n }\n this._super(value, event);\n },\n });\n\n this.initialize_tag_autocomplete();\n this.initialize_mention_autocomplete($(\"form div.input.dtext textarea\"));\n this.initialize_fields($('[data-autocomplete=\"tag\"]'), \"tag\");\n this.initialize_fields($('[data-autocomplete=\"artist\"]'), \"artist\");\n this.initialize_fields($('[data-autocomplete=\"pool\"]'), \"pool\");\n this.initialize_fields($('[data-autocomplete=\"user\"]'), \"user\");\n this.initialize_fields($('[data-autocomplete=\"wiki-page\"]'), \"wiki_page\");\n this.initialize_fields($('[data-autocomplete=\"favorite-group\"]'), \"favorite_group\");\n this.initialize_fields($('[data-autocomplete=\"saved-search-label\"]'), \"saved_search_label\");\n}\n\nAutocomplete.initialize_fields = function($fields, type) {\n $fields.autocomplete({\n source: async function(request, respond) {\n let results = await Autocomplete.autocomplete_source(request.term, type);\n respond(results);\n },\n });\n};\n\nAutocomplete.initialize_mention_autocomplete = function($fields) {\n $fields.autocomplete({\n select: function(event, ui) {\n Autocomplete.insert_completion(this, ui.item.value);\n return false;\n },\n source: async function(req, resp) {\n var cursor = this.element.get(0).selectionStart;\n var name = null;\n\n for (var i = cursor; i >= 1; --i) {\n if (req.term[i - 1] === \" \") {\n return;\n }\n\n if (req.term[i - 1] === \"@\") {\n if (i === 1 || /[ \\r\\n]/.test(req.term[i - 2])) {\n name = req.term.substring(i, cursor);\n break;\n } else {\n return;\n }\n }\n }\n\n if (name) {\n let results = await Autocomplete.autocomplete_source(name, \"mention\");\n resp(results);\n }\n }\n });\n}\n\nAutocomplete.initialize_tag_autocomplete = function() {\n var $fields_multiple = $('[data-autocomplete=\"tag-query\"], [data-autocomplete=\"tag-edit\"]');\n\n $fields_multiple.autocomplete({\n select: function(event, ui) {\n Autocomplete.insert_completion(this, ui.item.value);\n return false;\n },\n source: async function(req, resp) {\n let term = Autocomplete.current_term(this.element);\n let results = await Autocomplete.autocomplete_source(term, \"tag_query\");\n resp(results);\n }\n });\n}\n\nAutocomplete.current_term = function($input) {\n let query = $input.get(0).value;\n let caret = $input.get(0).selectionStart;\n let regexp = new RegExp(`^[-~(]*(${Autocomplete.tag_prefixes().join(\"|\")})?`);\n let match = query.substring(0, caret).match(/\\S*$/)[0].replace(regexp, \"\").toLowerCase();\n return match;\n};\n\n// Update the input field with the item currently focused in the\n// autocomplete menu, then position the caret just after the inserted completion.\nAutocomplete.insert_completion = function(input, completion) {\n // Trim all whitespace (tabs, spaces) except for line returns\n var before_caret_text = input.value.substring(0, input.selectionStart).replace(/^[ \\t]+|[ \\t]+$/gm, \"\");\n var after_caret_text = input.value.substring(input.selectionStart).replace(/^[ \\t]+|[ \\t]+$/gm, \"\");\n\n var regexp = new RegExp(`([-~(]*(?:${Autocomplete.tag_prefixes().join(\"|\")})?)\\\\S+$`, \"g\");\n before_caret_text = before_caret_text.replace(regexp, \"$1\") + completion + \" \";\n\n input.value = before_caret_text + after_caret_text;\n input.selectionStart = input.selectionEnd = before_caret_text.length;\n};\n\n// If we press tab while the autocomplete menu is open but nothing is\n// focused, complete the first item and close the menu.\nAutocomplete.on_tab = function(event) {\n var input = this;\n var autocomplete = $(input).autocomplete(\"instance\");\n var $autocomplete_menu = autocomplete.menu.element;\n\n if (!$autocomplete_menu.is(\":visible\")) {\n return;\n }\n\n if ($autocomplete_menu.has(\".ui-state-active\").length === 0) {\n var $first_item = $autocomplete_menu.find(\".ui-menu-item\").first();\n var completion = $first_item.data().uiAutocompleteItem.value;\n\n Autocomplete.insert_completion(input, completion);\n autocomplete.close();\n }\n\n // Prevent the tab key from moving focus to the next element.\n event.preventDefault();\n};\n\nAutocomplete.render_item = function(list, item) {\n item.html.data(\"ui-autocomplete-item\", item);\n return list.append(item.html);\n};\n\nAutocomplete.autocomplete_source = async function(query, type) {\n if (query === \"\") {\n return [];\n }\n\n let html = await $.get(\"/autocomplete\", {\n \"search[query]\": query,\n \"search[type]\": type,\n \"version\": Autocomplete.VERSION,\n \"limit\": Autocomplete.MAX_RESULTS\n });\n\n let items = $(html).find(\"li\").toArray().map(item => {\n let $item = $(item);\n return { value: $item.attr(\"data-autocomplete-value\"), html: $item };\n });\n\n return items;\n}\n\nAutocomplete.tag_prefixes = function() {\n return JSON.parse($(\"meta[name=autocomplete-tag-prefixes]\").attr(\"content\"));\n};\n\n$(document).ready(function() {\n Autocomplete.initialize_all();\n});\n\nexport default Autocomplete;\n\n","import Utility from './utility'\nimport Cookie from './cookie'\n\nlet Blacklist = {};\n\nBlacklist.entries = [];\n\nBlacklist.parse_entry = function(string) {\n var entry = {\n \"tags\": string,\n \"require\": [],\n \"exclude\": [],\n \"optional\": [],\n \"disabled\": false,\n \"hits\": 0,\n \"min_score\": null\n };\n\n let tags = Utility.splitWords(string);\n tags.forEach(function(tag) {\n if (tag.charAt(0) === '-') {\n entry.exclude.push(tag.slice(1));\n } else if (tag.charAt(0) === '~') {\n entry.optional.push(tag.slice(1));\n } else if (tag.match(/^score:<.+/)) {\n var score = tag.match(/^score:<(.+)/)[1];\n entry.min_score = parseInt(score);\n } else {\n entry.require.push(tag);\n }\n });\n return entry;\n}\n\nBlacklist.parse_entries = function() {\n var entries = (Utility.meta(\"blacklisted-tags\") || \"nozomiisthebestlovelive\").replace(/(rating:\\w)\\w+/ig, \"$1\").toLowerCase().split(/,/);\n entries = entries.filter(e => e.trim() !== \"\");\n\n entries.forEach(function(tags) {\n var entry = Blacklist.parse_entry(tags);\n Blacklist.entries.push(entry);\n });\n}\n\nBlacklist.toggle_entry = function(e) {\n var $link = $(e.target);\n var tags = $link.text();\n var match = $.grep(Blacklist.entries, function(entry, i) {\n return entry.tags === tags;\n })[0];\n if (match) {\n match.disabled = !match.disabled;\n if (match.disabled) {\n $link.addClass(\"blacklisted-inactive\");\n } else {\n $link.removeClass(\"blacklisted-inactive\");\n }\n }\n Blacklist.apply();\n e.preventDefault();\n}\n\nBlacklist.update_sidebar = function() {\n Blacklist.entries.forEach(function(entry) {\n if (entry.hits.length === 0) {\n return;\n }\n\n var item = $(\"
  • \");\n var link = $(\"\");\n var count = $(\"\");\n\n link.text(entry.tags);\n link.attr(\"href\", `/posts?tags=${encodeURIComponent(entry.tags)}`);\n link.attr(\"title\", entry.tags);\n link.on(\"click.danbooru\", Blacklist.toggle_entry);\n let unique_hits = new Set(entry.hits).size;\n count.html(unique_hits);\n count.addClass(\"count\");\n item.append(link);\n item.append(\" \");\n item.append(count);\n\n $(\"#blacklist-list\").append(item);\n });\n\n $(\"#blacklist-box\").show();\n}\n\nBlacklist.disable_all = function() {\n Blacklist.entries.forEach(function(entry) {\n entry.disabled = true;\n });\n // There is no need to process the blacklist when disabling\n Blacklist.posts().removeClass(\"blacklisted-active\");\n $(\"#disable-all-blacklists\").hide();\n $(\"#re-enable-all-blacklists\").show();\n $(\"#blacklist-list a\").addClass(\"blacklisted-inactive\");\n}\n\nBlacklist.enable_all = function() {\n Blacklist.entries.forEach(function(entry) {\n entry.disabled = false;\n });\n Blacklist.apply();\n $(\"#disable-all-blacklists\").show();\n $(\"#re-enable-all-blacklists\").hide();\n $(\"#blacklist-list a\").removeClass(\"blacklisted-inactive\");\n}\n\nBlacklist.initialize_disable_all_blacklists = function() {\n if (Cookie.get(\"dab\") === \"1\") {\n Blacklist.disable_all();\n } else {\n // The blacklist has already been processed by this point\n $(\"#disable-all-blacklists\").show()\n }\n\n $(\"#disable-all-blacklists\").on(\"click.danbooru\", function(e) {\n Cookie.put(\"dab\", \"1\");\n Blacklist.disable_all();\n e.preventDefault();\n });\n\n $(\"#re-enable-all-blacklists\").on(\"click.danbooru\", function(e) {\n Cookie.put(\"dab\", \"0\");\n Blacklist.enable_all();\n e.preventDefault();\n });\n}\n\nBlacklist.apply = function() {\n Blacklist.entries.forEach(function(entry) {\n entry.hits = [];\n });\n\n var count = 0\n\n Blacklist.posts().each(function(i, post) {\n count += Blacklist.apply_post(post);\n });\n\n return count;\n}\n\nBlacklist.apply_post = function(post) {\n var post_count = 0;\n Blacklist.entries.forEach(function(entry) {\n if (Blacklist.post_match(post, entry)) {\n let post_id = $(post).data('id');\n entry.hits.push(post_id);\n post_count += 1;\n }\n });\n if (post_count > 0) {\n Blacklist.post_hide(post);\n } else {\n Blacklist.post_unhide(post);\n }\n return post_count;\n};\n\nBlacklist.posts = function() {\n return $(\".post-preview, .image-container, #c-comments .post, .mod-queue-preview.post-preview\");\n}\n\nBlacklist.post_match = function(post, entry) {\n if (entry.disabled) {\n return false;\n }\n\n var $post = $(post);\n var score = parseInt($post.attr(\"data-score\"));\n var score_test = entry.min_score === null || score < entry.min_score;\n\n var tags = Utility.splitWords($post.attr(\"data-tags\"));\n tags.push(...Utility.splitWords($post.attr(\"data-pools\")));\n tags.push(\"rating:\" + $post.data(\"rating\"));\n tags.push(\"uploaderid:\" + $post.attr(\"data-uploader-id\"));\n Utility.splitWords($post.data(\"flags\")).forEach(function(v) {\n tags.push(\"status:\" + v);\n });\n\n return (Utility.is_subset(tags, entry.require) && score_test)\n && (!entry.optional.length || Utility.intersect(tags, entry.optional).length)\n && !Utility.intersect(tags, entry.exclude).length;\n}\n\nBlacklist.post_hide = function(post) {\n var $post = $(post);\n $post.addClass(\"blacklisted blacklisted-active\");\n\n var $video = $post.find(\"video\").get(0);\n if ($video) {\n $video.pause();\n $video.currentTime = 0;\n }\n}\n\nBlacklist.post_unhide = function(post) {\n var $post = $(post);\n $post.addClass(\"blacklisted\").removeClass(\"blacklisted-active\");\n\n var $video = $post.find(\"video\").get(0);\n if ($video) {\n $video.play();\n }\n}\n\nBlacklist.initialize_all = function() {\n Blacklist.parse_entries();\n\n if (Blacklist.apply() > 0) {\n Blacklist.update_sidebar();\n Blacklist.initialize_disable_all_blacklists();\n }\n}\n\n$(document).ready(function() {\n if ($(\"#blacklist-box\").length === 0) {\n return;\n }\n\n Blacklist.initialize_all();\n});\n\nexport default Blacklist\n","import Utility from \"./utility\";\n\nclass CommentComponent {\n static initialize() {\n if ($(\"#c-posts #a-show, #c-comments\").length) {\n $(document).on(\"click.danbooru.comment\", \".edit_comment_link\", CommentComponent.showEditForm);\n $(document).on(\"click.danbooru.comment\", \".expand-comment-response\", CommentComponent.showNewCommentForm);\n $(document).on(\"click.danbooru.comment\", \".comment-copy-id\", CommentComponent.copyID);\n $(document).on(\"click.danbooru.comment\", \".comment-copy-link\", CommentComponent.copyLink);\n }\n }\n\n static showNewCommentForm(e) {\n $(e.target).hide();\n var $form = $(e.target).closest(\"div.new-comment\").find(\"form\");\n $form.show();\n $form[0].scrollIntoView(false);\n $form.find(\"textarea\").selectEnd();\n e.preventDefault();\n }\n\n static showEditForm(e) {\n $(this).closest(\".comment\").find(\".edit_comment\").show();\n e.preventDefault();\n }\n\n static async copyID(e) {\n let id = $(this).closest(\".comment\").data(\"id\");\n let link = `comment #${id}`;\n Utility.copyToClipboard(link);\n e.preventDefault();\n }\n\n static async copyLink(e) {\n let id = $(this).closest(\".comment\").data(\"id\");\n let link = `${window.location.origin}/comments/${id}`;\n Utility.copyToClipboard(link);\n e.preventDefault();\n }\n}\n\n$(document).ready(CommentComponent.initialize);\n\nexport default CommentComponent;\n","import Utility from \"./utility\";\nimport { delegate, hideAll } from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\n\nclass CommentVotesTooltipComponent {\n // Trigger on the comment score link; see CommentComponent.\n static TARGET_SELECTOR = \"span.comment-score\";\n static SHOW_DELAY = 125;\n static HIDE_DELAY = 125;\n static DURATION = 250;\n static instance = null;\n\n static initialize() {\n if ($(CommentVotesTooltipComponent.TARGET_SELECTOR).length === 0) {\n return;\n }\n\n CommentVotesTooltipComponent.instance = delegate(\"body\", {\n allowHTML: true,\n appendTo: document.querySelector(\"#comment-votes-tooltips\"),\n delay: [CommentVotesTooltipComponent.SHOW_DELAY, CommentVotesTooltipComponent.HIDE_DELAY],\n duration: CommentVotesTooltipComponent.DURATION,\n interactive: true,\n maxWidth: \"none\",\n target: CommentVotesTooltipComponent.TARGET_SELECTOR,\n theme: \"common-tooltip\",\n touch: false,\n\n onShow: CommentVotesTooltipComponent.onShow,\n onHide: CommentVotesTooltipComponent.onHide,\n });\n }\n\n static async onShow(instance) {\n let $target = $(instance.reference);\n let $tooltip = $(instance.popper);\n let commentId = $target.parents(\"[data-id]\").data(\"id\");\n\n hideAll({ exclude: instance });\n\n try {\n $tooltip.addClass(\"tooltip-loading\");\n\n instance._request = $.get(`/comments/${commentId}/votes`, { variant: \"tooltip\" });\n let html = await instance._request;\n instance.setContent(html);\n\n $tooltip.removeClass(\"tooltip-loading\");\n } catch (error) {\n if (error.status !== 0 && error.statusText !== \"abort\") {\n Utility.error(`Error displaying votes for comment #${commentId} (error: ${error.status} ${error.statusText})`);\n }\n }\n }\n\n static async onHide(instance) {\n if (instance._request?.state() === \"pending\") {\n instance._request.abort();\n }\n }\n}\n\n$(document).ready(CommentVotesTooltipComponent.initialize);\n\nexport default CommentVotesTooltipComponent;\n","import Cookie from './cookie'\n\n$(function() {\n $(\"#hide-upgrade-account-notice\").on(\"click.danbooru\", function(e) {\n $(\"#upgrade-account-notice\").hide();\n Cookie.put('hide_upgrade_account_notice', '1', 7 * 24 * 60 * 60);\n e.preventDefault();\n });\n\n $(\"#hide-promotion-notice\").on(\"click.danbooru\", function(e) {\n $(\"#promotion-notice\").hide();\n Cookie.put(\"hide_winter_sale_notice\", \"1\", 1 * 60 * 60);\n Cookie.put(\"hide_upgrade_account_notice\", \"1\", 7 * 24 * 60 * 60);\n e.preventDefault();\n });\n\n $(\"#hide-dmail-notice\").on(\"click.danbooru\", function(e) {\n var $dmail_notice = $(\"#dmail-notice\");\n $dmail_notice.hide();\n var dmail_id = $dmail_notice.data(\"id\");\n Cookie.put(\"hide_dmail_notice\", dmail_id);\n e.preventDefault();\n });\n\n $(\"#hide-verify-account-notice\").on(\"click.danbooru\", function(e) {\n $(\"#verify-account-notice\").hide();\n Cookie.put('hide_verify_account_notice', '1', 3 * 24 * 60 * 60);\n e.preventDefault();\n });\n\n $(\"#close-notice-link\").on(\"click.danbooru\", function(e) {\n $('#notice').fadeOut(\"fast\");\n e.preventDefault();\n });\n\n if (location.hostname.endsWith(\"danbooru.me\")) {\n location.hostname = \"danbooru.donmai.us\";\n }\n});\n\nwindow.submitInvisibleRecaptchaForm = function () {\n document.getElementById(\"signup-form\").submit();\n}\n","let Cookie = {};\n\nCookie.put = function(name, value, max_age_in_seconds = 60 * 60 * 24 * 365 * 20) {\n let cookie = `${name}=${encodeURIComponent(value)}; Path=/; SameSite=Lax;`;\n\n if (max_age_in_seconds) {\n cookie += ` Max-Age=${max_age_in_seconds};`\n }\n\n if (location.protocol === \"https:\") {\n cookie += \" Secure;\";\n }\n\n document.cookie = cookie;\n}\n\nCookie.raw_get = function(name) {\n var nameEq = name + \"=\";\n var ca = document.cookie.split(\";\");\n\n for (var i = 0; i < ca.length; ++i) {\n var c = ca[i];\n\n while (c.charAt(0) === \" \") {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEq) === 0) {\n return c.substring(nameEq.length, c.length);\n }\n }\n\n return \"\";\n}\n\nCookie.get = function(name) {\n return this.unescape(this.raw_get(name));\n}\n\nCookie.remove = function(name) {\n this.put(name, \"\", -1);\n}\n\nCookie.unescape = function(val) {\n return decodeURIComponent(val.replace(/\\+/g, \" \"));\n}\n\nCookie.initialize = function() {\n if (this.get(\"hide-upgrade-account\") !== \"1\") {\n $(\"#upgrade-account\").show();\n }\n}\n\n$(function() {\n Cookie.initialize();\n});\n\nexport default Cookie\n","let CurrentUser = {};\n\nCurrentUser.data = function(key) {\n return $(\"body\").data(`current-user-${key}`);\n};\n\nCurrentUser.update = function(settings) {\n return $.ajax(`/users/${CurrentUser.data(\"id\")}.json`, {\n method: \"PUT\",\n data: { user: settings }\n });\n};\n\nCurrentUser.darkMode = function() {\n let theme = CurrentUser.data(\"theme\");\n\n return theme === \"dark\" || (theme === \"auto\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches);\n};\n\nexport default CurrentUser;\n","let Dtext = {};\n\nDtext.initialize_all = function() {\n Dtext.initialize_links();\n Dtext.initialize_expandables();\n}\n\nDtext.initialize_links = function() {\n $(document).on(\"click.danbooru\", \".dtext-preview-button\", Dtext.click_button);\n}\n\nDtext.initialize_expandables = function() {\n $(document).on(\"click.danbooru\", \".expandable-button\", function(e) {\n var button = $(this);\n button.parent().next().fadeToggle(\"fast\");\n if (button.val() === \"Show\") {\n button.val(\"Hide\");\n } else {\n button.val(\"Show\");\n }\n });\n}\n\nDtext.call_preview = async function(e, $button, $input, $preview) {\n $button.val(\"Edit\");\n $input.hide();\n $preview.text(\"Loading...\").fadeIn(\"fast\");\n\n let inline = $input.is(\"input\");\n let html = await $.post(\"/dtext_preview\", { body: $input.val(), inline: inline });\n $preview.html(html).fadeIn(\"fast\");\n}\n\nDtext.call_edit = function(e, $button, $input, $preview) {\n $button.val(\"Preview\");\n $preview.hide();\n $input.slideDown(\"fast\");\n}\n\nDtext.click_button = function(e) {\n var $button = $(e.target);\n var $form = $button.parents(\"form\");\n var fieldName = $button.data(\"preview-field\");\n var $inputContainer = $form.find(`div.input.${fieldName} .dtext-previewable`);\n var $input = $inputContainer.find(\"> input, > textarea\");\n var $preview = $inputContainer.find(\"div.dtext-preview\");\n\n if ($button.val().match(/preview/i)) {\n Dtext.call_preview(e, $button, $input, $preview);\n } else {\n Dtext.call_edit(e, $button, $input, $preview);\n }\n\n e.preventDefault();\n}\n\n$(document).ready(function() {\n Dtext.initialize_all();\n});\n\nexport default Dtext\n","import Rails from \"@rails/ujs\";\n\nlet FavoriteGroup = {};\n\nFavoriteGroup.initialize_all = function() {\n if ($(\"#c-posts\").length && $(\"#a-show\").length) {\n this.initialize_add_to_favgroup_dialog();\n }\n}\n\nFavoriteGroup.initialize_add_to_favgroup_dialog = function() {\n $(\"#add-to-favgroup-dialog\").dialog({\n autoOpen: false,\n width: 700,\n buttons: {\n \"Cancel\": function() {\n $(this).dialog(\"close\");\n }\n }\n });\n\n $(\"#open-favgroup-dialog-link\").on(\"click.danbooru\", FavoriteGroup.open_favgroup_dialog);\n}\n\nFavoriteGroup.open_favgroup_dialog = function(e) {\n if ($(\".add-to-favgroup\").length === 1) {\n // If the user only has one favorite group we don't need to ask which group to add the post to.\n let favgroup = $(\".add-to-favgroup\").get(0);\n Rails.fire(favgroup, \"click\");\n } else {\n $(\"#add-to-favgroup-dialog\").dialog(\"open\");\n }\n e.preventDefault();\n}\n\n$(function() {\n FavoriteGroup.initialize_all();\n});\n\nexport default FavoriteGroup\n","import Utility from \"./utility\";\nimport { delegate, hideAll } from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\n\nclass FavoritesTooltipComponent {\n // Trigger on the post favcount link.\n static TARGET_SELECTOR = \"span.post-favcount a\";\n static SHOW_DELAY = 125;\n static HIDE_DELAY = 125;\n static DURATION = 250;\n static instance = null;\n\n static initialize() {\n if ($(FavoritesTooltipComponent.TARGET_SELECTOR).length === 0) {\n return;\n }\n\n FavoritesTooltipComponent.instance = delegate(\"body\", {\n allowHTML: true,\n appendTo: document.querySelector(\"#post-favorites-tooltips\"),\n delay: [FavoritesTooltipComponent.SHOW_DELAY, FavoritesTooltipComponent.HIDE_DELAY],\n duration: FavoritesTooltipComponent.DURATION,\n interactive: true,\n maxWidth: \"none\",\n target: FavoritesTooltipComponent.TARGET_SELECTOR,\n theme: \"common-tooltip\",\n touch: false,\n\n onShow: FavoritesTooltipComponent.onShow,\n onHide: FavoritesTooltipComponent.onHide,\n });\n }\n\n static async onShow(instance) {\n let $target = $(instance.reference);\n let $tooltip = $(instance.popper);\n let postId = $target.parents(\"[data-id]\").data(\"id\");\n\n hideAll({ exclude: instance });\n\n try {\n $tooltip.addClass(\"tooltip-loading\");\n\n instance._request = $.get(`/posts/${postId}/favorites?variant=tooltip`);\n let html = await instance._request;\n instance.setContent(html);\n\n $tooltip.removeClass(\"tooltip-loading\");\n } catch (error) {\n if (error.status !== 0 && error.statusText !== \"abort\") {\n Utility.error(`Error displaying favorites for post #${postId} (error: ${error.status} ${error.statusText})`);\n }\n }\n }\n\n static async onHide(instance) {\n if (instance._request?.state() === \"pending\") {\n instance._request.abort();\n }\n }\n}\n\n$(document).ready(FavoritesTooltipComponent.initialize);\n\nexport default FavoritesTooltipComponent;\n","import Dropzone from 'dropzone';\nimport Utility from \"./utility\";\nimport capitalize from \"lodash/capitalize\";\n\nexport default class FileUploadComponent {\n static POLL_DELAY = 250;\n\n static initialize() {\n $(\".file-upload-component\").toArray().forEach(element => {\n new FileUploadComponent($(element));\n });\n }\n\n constructor($component) {\n this.$component = $component;\n this.$component.on(\"ajax:success\", e => this.onSubmit(e));\n this.$component.on(\"ajax:error\", e => this.onError(e));\n this.$dropTarget.on(\"paste.danbooru\", e => this.onPaste(e));\n this.dropzone = this.initializeDropzone();\n\n // If the source field is pre-filled, then immediately submit the upload.\n if (/^https?:\\/\\//.test(this.$sourceField.val())) {\n this.$component.find(\"input[type='submit']\").click();\n }\n }\n\n initializeDropzone() {\n if (!window.FileReader) {\n this.$dropzone.addClass(\"hidden\");\n this.$component.find(\"input[type='file']\").removeClass(\"hidden\");\n return null;\n }\n\n let dropzone = new Dropzone(this.$dropTarget.get(0), {\n url: \"/uploads.json\",\n paramName: \"upload[files]\",\n clickable: this.$dropzone.get(0),\n previewsContainer: this.$dropzone.get(0),\n thumbnailHeight: null,\n thumbnailWidth: null,\n addRemoveLinks: false,\n parallelUploads: this.maxFiles,\n maxFiles: this.maxFiles,\n maxFilesize: this.maxFileSize,\n maxThumbnailFilesize: this.maxFileSize,\n timeout: 0,\n uploadMultiple: true,\n createImageThumbnails: false,\n acceptedFiles: \"image/jpeg,image/png,image/gif,image/webp,image/avif,video/mp4,video/webm\",\n previewTemplate: this.$component.find(\".dropzone-preview-template\").html(),\n });\n\n dropzone.on(\"complete\", file => {\n this.$dropzone.find(\".dz-progress\").hide();\n });\n\n dropzone.on(\"addedfile\", file => {\n this.$dropzone.removeClass(\"error\");\n this.$dropzone.find(\".dropzone-hint\").hide();\n });\n\n dropzone.on(\"success\", file => {\n this.$dropzone.addClass(\"success\");\n let upload = JSON.parse(file.xhr.response)\n this.pollStatus(upload);\n });\n\n dropzone.on(\"error\", (file, msg) => {\n this.$dropzone.find(\".dropzone-hint\").show();\n dropzone.removeFile(file);\n Utility.error(msg);\n });\n\n return dropzone;\n }\n\n onPaste(e) {\n let url = e.originalEvent.clipboardData.getData(\"text\");\n this.$component.find(\"input[name='upload[source]']:not([disabled])\").val(url);\n\n if (/^https?:\\/\\//.test(url)) {\n this.$component.find(\"input[type='submit']:not([disabled])\").click();\n }\n\n e.preventDefault();\n }\n\n onSubmit(e) {\n let upload = e.originalEvent.detail[0];\n this.pollStatus(upload);\n }\n\n loadingStart() {\n this.$component.find(\".spinner-icon\").removeClass(\"hidden\");\n this.$component.find(\"input\").attr(\"disabled\", \"disabled\");\n this.$component.find(\"form\").addClass(\"pointer-events-none cursor-wait opacity-50\");\n }\n\n loadingStop() {\n this.$component.find(\".spinner-icon\").addClass(\"hidden\");\n this.$component.find(\"input\").removeAttr(\"disabled\");\n this.$component.find(\"form\").removeClass(\"pointer-events-none cursor-wait opacity-50\");\n }\n\n // Called after the upload is submitted via AJAX. Polls the upload until it\n // is complete, then redirects to the upload page.\n async pollStatus(upload) {\n this.loadingStart();\n\n while (upload.media_asset_count <= 1 && upload.status !== \"completed\" && upload.status !== \"error\") {\n await Utility.delay(FileUploadComponent.POLL_DELAY);\n upload = await $.get(`/uploads/${upload.id}.json`);\n }\n\n if (upload.status === \"error\") {\n this.$dropzone.removeClass(\"success\");\n this.loadingStop();\n\n Utility.error(`Upload failed: ${upload.error}.`);\n } else {\n let params = new URLSearchParams(window.location.search);\n let isBookmarklet = params.has(\"url\");\n params.delete(\"url\");\n params.delete(\"ref\");\n\n let url = new URL(`/uploads/${upload.id}`, window.location.origin);\n url.search = params.toString();\n\n if (isBookmarklet) {\n window.location.replace(url);\n } else {\n window.location.assign(url);\n }\n }\n }\n\n // Called when creating the upload failed because of a validation error (normally, because the source URL was not a real URL).\n async onError(e) {\n let errors = e.originalEvent.detail[0].errors;\n let message = Object.keys(errors).map(attribute => {\n return errors[attribute].map(error => {\n if (attribute === \"base\") {\n return `${error}`;\n } else {\n return `${capitalize(attribute)} ${error}`;\n }\n });\n }).join(\"; \");\n\n Utility.error(message);\n }\n\n get $dropzone() {\n return this.$component.find(\".dropzone-container\");\n }\n\n get $sourceField() {\n return this.$component.find(\"input[name='upload[source]']\");\n }\n\n get maxFileSize() {\n return Number(this.$component.attr(\"data-max-file-size\")) / (1024 * 1024);\n }\n\n get maxFiles() {\n return Number(this.$component.attr(\"data-max-files-per-upload\"));\n }\n\n // The element to listen for drag and drop events and paste events. By default,\n // it's the `.file-upload-component` element. If `data-drop-target` is the `body`\n // element, then you can drop images or paste URLs anywhere on the page.\n get $dropTarget() {\n return $(this.$component.attr(\"data-drop-target\") || this.$component);\n }\n}\n\n$(FileUploadComponent.initialize);\n","import Utility from \"./utility\";\n\nclass ForumPostComponent {\n static initialize() {\n if ($(\"#c-forum-topics #a-show, #c-forum-posts #a-show\").length) {\n $(document).on(\"click.danbooru.forum_post\", \".edit_forum_post_link\", ForumPostComponent.showEditPostForm);\n $(document).on(\"click.danbooru.forum_post\", \".edit_forum_topic_link\", ForumPostComponent.showEditTopicForm);\n $(document).on(\"click.danbooru.forum_post\", \"#new-response-link\", ForumPostComponent.showNewForumPostForm);\n $(document).on(\"click.danbooru.forum_post\", \".forum-post-copy-id\", ForumPostComponent.copyID);\n $(document).on(\"click.danbooru.forum_post\", \".forum-post-copy-link\", ForumPostComponent.copyLink);\n }\n }\n\n static showNewForumPostForm(e) {\n $(\"#topic-response\").show();\n $(\"#forum_post_body\").get(0).scrollIntoView(false);\n $(\"#forum_post_body\").selectEnd();\n e.preventDefault();\n }\n\n static showEditPostForm(e) {\n $(this).closest(\".forum-post\").find(\".edit_forum_post\").show();\n e.preventDefault();\n }\n\n static showEditTopicForm(e) {\n $(this).closest(\".forum-post\").find(\".edit_forum_topic\").show();\n e.preventDefault();\n }\n\n static async copyID(e) {\n let id = $(this).closest(\".forum-post\").data(\"id\");\n let link = `forum #${id}`;\n Utility.copyToClipboard(link);\n e.preventDefault();\n }\n\n static async copyLink(e) {\n let id = $(this).closest(\".forum-post\").data(\"id\");\n let link = `${window.location.origin}/forum_posts/${id}`;\n Utility.copyToClipboard(link);\n e.preventDefault();\n }\n}\n\n$(document).ready(ForumPostComponent.initialize);\n\nexport default ForumPostComponent;\n","let IqdbQuery = {};\n\nIqdbQuery.initialize_all = function() {\n $(document).on(\"click.danbooru\", \"a.toggle-iqdb-posts-low-similarity\", function(event) {\n $(\".iqdb-posts-low-similarity\").toggle();\n $(\"a.toggle-iqdb-posts-low-similarity\").toggle();\n event.preventDefault();\n });\n};\n\n$(document).ready(IqdbQuery.initialize_all);\n","export default class MediaAssetComponent {\n static initialize() {\n $(\".media-asset-component\").toArray().forEach(element => {\n new MediaAssetComponent(element);\n });\n }\n\n constructor(element) {\n this.$component = $(element);\n\n if (this.$image.length) {\n this.$image.on(\"click.danbooru\", e => this.toggleFit());\n new ResizeObserver(() => this.updateZoom()).observe(this.$image.get(0));\n this.updateZoom();\n }\n }\n\n toggleFit() {\n this.$component.toggleClass(\"fit-screen\");\n this.updateZoom();\n }\n\n updateZoom() {\n this.$image.removeClass(\"cursor-zoom-in cursor-zoom-out\");\n this.$zoomLevel.addClass(\"hidden\").text(`${Math.round(100 * this.zoomLevel)}%`);\n\n if (this.isDownscaled) {\n this.$image.addClass(\"cursor-zoom-out\");\n this.$zoomLevel.removeClass(\"hidden\");\n } else if (this.isTooBig) {\n this.$image.addClass(\"cursor-zoom-in\");\n }\n }\n\n get zoomLevel() {\n return this.$image.width() / Number(this.$image.attr(\"width\"));\n }\n\n get isDownscaled() {\n return this.$image.width() < Number(this.$image.attr(\"width\"));\n }\n\n get isTooBig() {\n return this.$image.width() > this.$component.width();\n }\n\n get $image() {\n return this.$component.find(\".media-asset-image\");\n }\n\n get $zoomLevel() {\n return this.$component.find(\".media-asset-zoom-level\");\n }\n}\n\n$(MediaAssetComponent.initialize);\n","import Utility from './utility'\n\nlet ModQueue = {};\n\nModQueue.detailed_rejection_dialog = function() {\n $(\"#post_disapproval_post_id\").val($(this).data(\"post-id\"));\n $(\"#detailed-rejection-dialog\").find(\"form\")[0].reset();\n\n Utility.dialog(\"Detailed Rejection\", \"#detailed-rejection-dialog\");\n return false;\n}\n\n$(function() {\n $(document).on(\"click.danbooru\", \".quick-mod .detailed-rejection-link\", ModQueue.detailed_rejection_dialog);\n});\n\nexport default ModQueue\n","import Cookie from './cookie'\n\nlet NewsUpdate = {};\n\nNewsUpdate.initialize = function() {\n if (!$(\"#news-updates\").length) {\n return;\n }\n\n var key = $(\"#news-updates\").data(\"id\").toString();\n\n if (Cookie.get(\"news-ticker\") === key) {\n $(\"#news-updates\").hide();\n } else {\n $(\"#news-updates\").show();\n\n $(\"#close-news-ticker-link\").on(\"click.danbooru\", function(e) {\n $(\"#news-updates\").hide();\n Cookie.put(\"news-ticker\", key);\n\n return false;\n });\n }\n}\n\n$(function() {\n NewsUpdate.initialize();\n});\n\nexport default NewsUpdate\n","import \"jquery-ui/ui/widgets/draggable\";\nimport \"jquery-ui/ui/widgets/resizable\";\nimport \"jquery-ui/themes/base/draggable.css\";\nimport \"jquery-ui/themes/base/resizable.css\";\n\nimport CurrentUser from './current_user';\nimport Utility, { clamp } from './utility';\n\nclass Note {\n static HIDE_DELAY = 250;\n static NORMALIZE_ATTRIBUTES = ['letter-spacing', 'line-height', 'margin-left', 'margin-right', 'margin-top', 'margin-bottom', 'padding-left', 'padding-right', 'padding-top', 'padding-bottom'];\n static COPY_ATTRIBUTES = ['background-color', 'border-radius', 'transform', 'justify-content', 'align-items'];\n static BOX_LEVEL_CLASSES = Array.from({length: 5}, (_, i) => 'level-' + (i + 1));\n static RESIZE_HANDLES = \"se, nw\";\n\n // Notes must be at least 10x10 in size so they're big enough to drag and resize.\n static MIN_NOTE_SIZE = 10;\n\n static dragging = false;\n static notes = new Set();\n static timeouts = [];\n\n id = null;\n x = null;\n y = null;\n w = null;\n h = null;\n box = null;\n body = null;\n $note_container = null;\n has_rotation = false;\n\n static Box = class {\n note = null;\n $note_box = null;\n $inner_border = null;\n\n constructor(note) {\n this.note = note;\n this.$note_box = $('
    ');\n this.note.$note_container.append(this.$note_box);\n\n if (note.embed) {\n this.$note_box.addClass(\"embedded\");\n this.$inner_border = $('
    ');\n this.$note_box.append(this.$inner_border);\n }\n\n if (this.note.is_new()) {\n this.$note_box.addClass(\"unsaved\");\n }\n\n this.$note_box.draggable({\n containment: this.note.$note_container,\n });\n\n this.$note_box.resizable({\n containment: this.note.$note_container,\n handles: Note.RESIZE_HANDLES,\n minWidth: Note.MIN_NOTE_SIZE,\n minHeight: Note.MIN_NOTE_SIZE,\n });\n\n this.$note_box.on(\"click.danbooru\", this.on_click.bind(this));\n this.$note_box.on(\"mouseenter.danbooru\", this.on_mouseenter.bind(this));\n this.$note_box.on(\"mouseleave.danbooru\", this.on_mouseleave.bind(this));\n this.$note_box.on(\"dragstart.danbooru resizestart.danbooru\", this.on_dragstart.bind(this));\n this.$note_box.on(\"dragstop.danbooru resizestop.danbooru\", this.on_dragstop.bind(this));\n }\n\n on_click() {\n if (!Utility.test_max_width(660)) {\n this.note.toggle_selected();\n } else if (this.$note_box.hasClass(\"viewing\")) {\n this.note.body.hide();\n this.$note_box.removeClass(\"viewing\");\n } else {\n $(\".note-box\").removeClass(\"viewing\");\n this.note.body.show();\n this.$note_box.addClass(\"viewing\");\n }\n }\n\n on_mouseenter() {\n // Don't show note bodies if we mouseover another note while dragging or resizing.\n if (!Note.dragging) {\n this.note.body.show();\n }\n }\n\n on_mouseleave() {\n this.note.body.hide();\n }\n\n on_dragstart() {\n this.$note_box.addClass(\"unsaved\");\n Note.Body.hide_all();\n Note.dragging = true;\n }\n\n // Reset the note box placement after the box is dragged or resized. Dragging the note\n // changes the CSS coordinates to pixels, so we have to rescale them and convert back\n // to percentage coordinates.\n on_dragstop() {\n let x = this.$note_box.position().left / this.note.scale_factor;\n let y = this.$note_box.position().top / this.note.scale_factor;\n let w = this.$note_box.width() / this.note.scale_factor;\n let h = this.$note_box.height() / this.note.scale_factor;\n\n this.place_note(x, y, w, h);\n this.note.body.show();\n Note.dragging = false;\n }\n\n // Place the note box. The input values are pixel coordinates relative to the full image.\n place_note(x, y, w, h, was_nudged = false) {\n if (this.note.embed && this.note.has_rotation && !was_nudged) {\n let position = this.get_min_max_position();\n x = position.norm_left / this.note.scale_factor;\n y = position.norm_top / this.note.scale_factor;\n }\n\n this.note.w = Math.round(clamp(w, Note.MIN_NOTE_SIZE, this.note.post_width));\n this.note.h = Math.round(clamp(h, Note.MIN_NOTE_SIZE, this.note.post_height));\n this.note.x = Math.round(clamp(x, 0, this.note.post_width - this.note.w));\n this.note.y = Math.round(clamp(y, 0, this.note.post_height - this.note.h));\n\n this.$note_box.css({\n top: (100 * this.note.y / this.note.post_height) + '%',\n left: (100 * this.note.x / this.note.post_width) + '%',\n width: (100 * this.note.w / this.note.post_width) + '%',\n height: (100 * this.note.h / this.note.post_height) + '%',\n });\n }\n\n copy_style_attributes() {\n let $note_box = this.$note_box;\n let $attribute_child = $note_box.find('.note-box-attributes');\n let has_rotation = false;\n\n Note.COPY_ATTRIBUTES.forEach((attribute)=>{\n const attribute_value = this.permitted_style_values(attribute, $attribute_child);\n $note_box.css(attribute, attribute_value);\n\n if (attribute === \"transform\" && attribute_value.startsWith(\"rotate\")) {\n has_rotation = true;\n }\n });\n\n if (has_rotation) {\n const current_left = Math.round(parseFloat($note_box.css(\"left\")));\n const current_top = Math.round(parseFloat($note_box.css(\"top\")));\n const position = this.get_min_max_position();\n\n // Checks for the scenario where the user sets invalid box values through the API\n // or by adjusting the box dimensions through the browser's dev console before saving\n if (current_left !== position.norm_left || current_top !== position.norm_top) {\n $note_box.css({\n top: position.percent_top,\n left: position.percent_left,\n });\n\n $note_box.addClass(\"out-of-bounds\");\n } else {\n $note_box.removeClass(\"out-of-bounds\");\n }\n\n this.note.has_rotation = true;\n } else {\n this.note.has_rotation = false;\n }\n\n $note_box.removeClass(Note.BOX_LEVEL_CLASSES);\n const level_class = ($attribute_child.attr('class') || \"\").split(/\\s+/).filter((klass) => Note.BOX_LEVEL_CLASSES.includes(klass))[0];\n if (level_class) {\n $note_box.addClass(level_class);\n }\n }\n\n permitted_style_values(attribute, $attribute_child) {\n if ($attribute_child.length === 0) {\n return \"\";\n }\n\n let found_attribute = $attribute_child.attr('style').split(';').filter(val => val.match(RegExp(`(^| )${attribute}:`)));\n if (found_attribute.length === 0) {\n return \"\";\n }\n\n let [, value] = found_attribute[0].trim().split(':').map(val => val.trim());\n if (attribute === \"background-color\") {\n const color_code = $attribute_child.css('background-color');\n return color_code.startsWith('rgba') ? \"\" : value;\n }\n\n if (attribute === \"transform\") {\n let rotate_match = value.match(/rotate\\([^)]+\\)/);\n return rotate_match ? rotate_match[0] : \"\";\n }\n\n return value;\n }\n\n key_nudge(event) {\n switch (event.originalEvent.key) {\n case \"ArrowUp\":\n this.note.y--;\n break;\n case \"ArrowDown\":\n this.note.y++;\n break;\n case \"ArrowLeft\":\n this.note.x--;\n break;\n case \"ArrowRight\":\n this.note.x++;\n break;\n default:\n // do nothing\n }\n\n this.place_note(this.note.x, this.note.y, this.note.w, this.note.h, true);\n Note.Body.hide_all();\n this.$note_box.addClass(\"unsaved\");\n event.preventDefault();\n }\n\n key_resize(event) {\n switch (event.originalEvent.key) {\n case \"ArrowUp\":\n this.note.h--;\n break;\n case \"ArrowDown\":\n this.note.h++;\n break;\n case \"ArrowLeft\":\n this.note.w--;\n break;\n case \"ArrowRight\":\n this.note.w++;\n break;\n default:\n // do nothing\n }\n\n this.place_note(this.note.x, this.note.y, this.note.w, this.note.h);\n Note.Body.hide_all();\n this.$note_box.addClass(\"unsaved\");\n event.preventDefault();\n }\n\n get_min_max_position(current_top = null, current_left = null, current_height = null, current_width = null) {\n let $note_box = this.$note_box;\n const computed_style = window.getComputedStyle($note_box[0]);\n\n current_top = (current_top === null ? parseFloat(computed_style.top) : current_top);\n current_left = (current_left === null ? parseFloat(computed_style.left) : current_left);\n current_height = current_height || $note_box.height();\n current_width = current_width || $note_box.width();\n\n const image_height = this.note.image_height;\n const image_width = this.note.image_width;\n const box_data = this.get_bounding_box(current_height, current_width);\n\n if (((box_data.max_x - box_data.min_x) <= image_width) && ((box_data.max_y - box_data.min_y) <= image_height)) {\n current_top = Math.min(Math.max(current_top, -box_data.min_y, 0), image_height - box_data.max_y - 2, image_height - box_data.min_y - box_data.max_y - 2, image_height);\n current_left = Math.min(Math.max(current_left, -box_data.min_x, 0), image_width - box_data.max_x - 2, image_width - box_data.min_x - box_data.max_x - 2, image_width);\n } else {\n Utility.error(\"Box too large to be rotated!\");\n $note_box.css('transform', 'none');\n }\n\n return {\n norm_top: Math.round(current_top),\n norm_left: Math.round(current_left),\n percent_top: (100 * (current_top / image_height)) + '%',\n percent_left: (100 * (current_left / image_width)) + '%',\n };\n }\n\n get_bounding_box(height = null, width = null) {\n let $note_box = this.$note_box;\n height = height || $note_box.height();\n width = width || $note_box.width();\n let old_coord = [[0, 0], [width, 0], [0, height], [width, height]];\n const computed_style = window.getComputedStyle($note_box[0]);\n const match = computed_style.transform.match(/matrix\\(([-e0-9.]+), ([-e0-9.]+)/);\n\n if (!match) {\n return {\n min_x: 0,\n min_y: 0,\n max_x: width,\n max_y: height,\n norm_coord: old_coord,\n degrees: 0,\n }\n }\n\n const costheta = Math.round(match[1] * 1000) / 1000;\n const sintheta = Math.round(match[2] * 1000) / 1000;\n let trans_x = width / 2;\n let trans_y = height / 2;\n let min_x = Infinity;\n let max_x = 0;\n let min_y = Infinity;\n let max_y = 0;\n\n const new_coord = old_coord.map((coord)=>{\n let temp_x = coord[0] - trans_x;\n let temp_y = coord[1] - trans_y;\n let rotated_x = (temp_x * costheta) - (temp_y * sintheta);\n let rotated_y = (temp_x * sintheta) + (temp_y * costheta);\n let new_x = rotated_x + trans_x;\n let new_y = rotated_y + trans_y;\n min_x = Math.min(min_x, new_x);\n max_x = Math.max(max_x, new_x);\n min_y = Math.min(min_y, new_y);\n max_y = Math.max(max_y, new_y);\n return [new_x, new_y];\n });\n\n const norm_coord = new_coord.map((coord)=>{\n return [coord[0] - min_x, coord[1] - min_y];\n });\n\n const radians_per_degree = 0.017453292519943295;\n const degrees = Math.asin(sintheta) / radians_per_degree;\n\n return {\n min_x: min_x,\n min_y: min_y,\n max_x: max_x,\n max_y: max_y,\n norm_coord: norm_coord,\n degrees: degrees,\n };\n }\n\n show_highlighted() {\n this.note.body.show();\n $(\".note-box-highlighted\").removeClass(\"note-box-highlighted\");\n this.$note_box.addClass(\"note-box-highlighted\");\n this.$note_box[0].scrollIntoView(false);\n }\n\n // Rescale font sizes of embedded notes when the image is resized.\n static scale_all() {\n let $container = $(\".note-container\");\n\n if ($container.length === 0) {\n return;\n }\n\n Note.Body.hide_all();\n\n let large_width = parseFloat($container.data(\"large-width\"));\n let ratio = $container.width() / large_width;\n let font_percentage = ratio * 100;\n\n $container.css('font-size', font_percentage + '%');\n }\n\n static toggle_all() {\n Note.Body.hide_all();\n $(\".note-container\").toggleClass(\"hide-notes\");\n }\n }\n\n static Body = class {\n note = null;\n $note_body = null;\n\n constructor(note) {\n this.note = note;\n this.$note_body = $('
    ');\n this.note.$note_container.append(this.$note_body);\n\n this.$note_body.on(\"mouseover.danbooru\", this.on_mouseover.bind(this));\n this.$note_body.on(\"mouseout.danbooru\", this.on_mouseout.bind(this));\n this.$note_body.on(\"click.danbooru\", this.on_click.bind(this));\n }\n\n initialize() {\n let $note_body = this.$note_body;\n let $note_box = this.note.box.$note_box;\n\n if (this.note.embed && this.note.has_rotation) {\n const box_data = this.note.box.get_bounding_box();\n // Select the lowest box corner to the farthest left\n let selected_corner = box_data.norm_coord.reduce(function (selected, coord) {return (selected[1] > coord[1]) || (selected[1] === coord[1] && selected[0] < coord[0]) ? selected : coord;});\n let normalized_degrees = box_data.degrees % 90.0;\n // Align to the left or right body corner depending upon the box angle\n let body_corner = $note_box.position().left - (normalized_degrees > 0.0 && normalized_degrees <= 45.0 ? $note_body.width() : 0);\n\n $note_body.css({\n top: $note_box.position().top + selected_corner[1] + 5,\n left: body_corner + selected_corner[0],\n });\n } else {\n $note_body.css({\n top: $note_box.position().top + $note_box.height() + 5,\n left: $note_box.position().left,\n });\n }\n\n this.bound_position();\n }\n\n bound_position() {\n var $image = this.note.$note_container;\n var doc_width = $image.offset().left + $image.width();\n let $note_body = this.$note_body;\n\n if ($note_body.offset().left + $note_body.width() > doc_width) {\n $note_body.css({\n left: $note_body.position().left - 10 - ($note_body.offset().left + $note_body.width() - doc_width)\n });\n }\n }\n\n show() {\n Note.Body.hide_all();\n\n if (!this.resized) {\n this.resize();\n this.resized = true;\n }\n\n this.$note_body.show();\n this.initialize();\n }\n\n hide(delay = Note.HIDE_DELAY) {\n Note.timeouts.push(setTimeout(() => this.$note_body.hide(), delay));\n }\n\n static hide_all() {\n Note.timeouts.forEach(clearTimeout);\n Note.timeouts = [];\n $(\".note-container div.note-body\").hide();\n }\n\n resize() {\n let $note_body = this.$note_body;\n\n $note_body.css(\"min-width\", \"\");\n var w = $note_body.width();\n var h = $note_body.height();\n var golden_ratio = 1.6180339887;\n var last = 0;\n var x = 0;\n var lo = 0;\n var hi = 0;\n\n if ((w / h) < golden_ratio) {\n lo = 140;\n hi = 400;\n\n do {\n last = w;\n x = (lo + hi) / 2;\n $note_body.css(\"min-width\", x);\n w = $note_body.width();\n h = $note_body.height();\n\n if ((w / h) < golden_ratio) {\n lo = x;\n } else {\n hi = x;\n }\n } while ((lo < hi) && (w > last));\n } else if ($note_body[0].scrollWidth <= $note_body.width()) {\n lo = 20;\n hi = w;\n\n do {\n x = (lo + hi) / 2;\n $note_body.css(\"min-width\", x);\n if ($note_body.height() > h) {\n lo = x\n } else {\n hi = x;\n }\n } while ((hi - lo) > 4);\n if ($note_body.height() > h) {\n $note_body.css(\"min-width\", hi);\n }\n }\n }\n\n display_text(text) {\n this.set_text(text);\n\n if (this.note.embed) {\n let $note_inner_box = this.note.box.$inner_border;\n\n // Reset the font size so that the normalization calculations will be correct\n $note_inner_box.css(\"font-size\", this.note.base_font_size + \"px\");\n this.note.normalize_sizes($note_inner_box.children(), this.note.base_font_size);\n\n // Clear the font size so that the fonts will be scaled to the current value\n $note_inner_box.css(\"font-size\", \"\");\n this.note.box.copy_style_attributes();\n }\n\n this.resize();\n this.bound_position();\n }\n\n set_text(text) {\n text = text ?? \"\";\n text = text.replace(//g, '

    ');\n text = text.replace(/<\\/tn>/g, '

    ');\n text = text.replace(/\\n/g, '
    ');\n\n if (this.note.embed) {\n this.note.box.$inner_border.html(text);\n this.$note_body.html(\"Click to edit\");\n } else if (text) {\n this.$note_body.html(text);\n } else {\n this.$note_body.html(\"Click to edit\");\n }\n }\n\n async preview_text(text) {\n this.display_text(\"Loading...\");\n let response = await $.post(\"/note_previews\", { body: text });\n\n this.display_text(response.body);\n this.initialize();\n this.$note_body.show();\n }\n\n on_mouseover(e) {\n this.show();\n }\n\n on_mouseout() {\n this.hide();\n }\n\n on_click(e) {\n // don't open the note edit dialog when the user clicks a link in the note body.\n if ($(e.target).is(\"a\")) {\n return;\n }\n\n if (CurrentUser.data(\"is-anonymous\")) {\n Utility.notice(\"You must be logged in to edit notes\");\n } else {\n Note.Edit.show(this.note);\n }\n }\n }\n\n static Edit = class {\n static show(note) {\n if ($(\".note-box\").hasClass(\"editing\")) {\n return;\n }\n\n let $textarea = $('');\n $textarea.val(note.original_body);\n $textarea.css({\n height: \"85%\",\n resize: \"none\",\n });\n\n let $dialog = $('
    ');\n let note_title = note.is_new() ? 'Creating new note' : `Editing note #${note.id}`;\n\n $dialog.append('' + note_title + ' (
    view help)');\n $dialog.append($textarea);\n\n $dialog.dialog({\n width: 360,\n height: 240,\n position: {\n my: \"right\",\n at: \"right-20\",\n of: window\n },\n classes: {\n \"ui-dialog\": \"note-edit-dialog\",\n },\n open: () => {\n Utility.keydown(\"ctrl+return\", \"save_note\", () => this.save($dialog, note), \".note-edit-dialog textarea\");\n $(\".note-edit-dialog textarea\").on(\"input.danbooru\", (e) => this.on_input(note));\n $(\".note-box\").addClass(\"editing\");\n },\n close: () => {\n $(\".note-box\").removeClass(\"editing\");\n },\n buttons: {\n \"Save\": () => Note.Edit.save($dialog, note),\n \"Preview\": () => Note.Edit.preview($dialog, note),\n \"Cancel\": () => Note.Edit.cancel($dialog, note),\n \"Delete\": () => Note.Edit.destroy($dialog, note),\n \"History\": () => Note.Edit.history($dialog, note),\n }\n });\n\n $textarea.selectEnd();\n }\n\n static on_input(note) {\n note.box.$note_box.addClass(\"unsaved\");\n }\n\n static async save($dialog, note) {\n let $note_box = note.box.$note_box;\n let text = $dialog.find(\"textarea\").val();\n\n let params = {\n x: note.x,\n y: note.y,\n width: note.w,\n height: note.h,\n body: text\n };\n\n note.original_body = text;\n note.body.preview_text(text);\n\n try {\n if (note.is_new()) {\n params.post_id = note.post_id;\n let response = await $.ajax(\"/notes.json\", { type: \"POST\", data: { note: params }});\n note.id = response.id;\n } else {\n await $.ajax(`/notes/${note.id}.json`, { type: \"PUT\", data: { note: params }});\n }\n\n $dialog.dialog(\"close\");\n $note_box.removeClass(\"unsaved\");\n } catch (xhr) {\n Utility.error(\"Error: \" + (xhr.responseJSON.reason || xhr.responseJSON.reasons.join(\"; \")));\n }\n }\n\n static async preview($dialog, note) {\n let text = $dialog.find(\"textarea\").val();\n note.body.preview_text(text);\n }\n\n static cancel($dialog, _note) {\n $dialog.dialog(\"close\");\n }\n\n static async destroy($dialog, note) {\n if (!note.is_new() && !confirm(\"Do you really want to delete this note?\")) {\n return;\n }\n\n if (!note.is_new()) {\n await $.ajax(`/notes/${note.id}.json`, { type: \"DELETE\" });\n }\n\n note.box.$note_box.remove();\n note.body.$note_body.remove();\n Note.notes.delete(note);\n\n $dialog.dialog(\"close\");\n }\n\n static history($dialog, note) {\n if (!note.is_new()) {\n window.location.href = `/note_versions?search[note_id]=${note.id}`;\n }\n\n $dialog.dialog(\"close\");\n }\n }\n\n static TranslationMode = class {\n static toggle() {\n if ($(\"body\").hasClass(\"mode-translation\")) {\n Note.TranslationMode.stop();\n } else {\n Note.TranslationMode.start();\n }\n }\n\n static start() {\n $(document.body).addClass(\"mode-translation\");\n $(\"#image\").off(\"click.danbooru\", Note.Box.toggle_all);\n $(\"#image\").on(\"mousedown.danbooru.note\", Note.TranslationMode.Drag.start);\n\n Utility.notice('Translation mode is on. Drag on the image to create notes. Turn translation mode off (shortcut is n).');\n $(\"#notice a:contains(Turn translation mode off)\").on(\"click.danbooru\", Note.TranslationMode.stop);\n }\n\n static stop() {\n $(\"#note-preview\").hide();\n $(\"#image\").on(\"click.danbooru\", Note.Box.toggle_all);\n $(\"#image\").off(\"mousedown.danbooru.note\", Note.TranslationMode.Drag.start);\n $(document).off(\"mouseup.danbooru\", Note.TranslationMode.Drag.stop);\n $(document).off(\"mousemove.danbooru\", Note.TranslationMode.Drag.drag);\n $(document.body).removeClass(\"mode-translation\");\n $(\"#close-notice-link\").click();\n }\n\n static Drag = class {\n static dragStartX = 0;\n static dragStartY = 0;\n\n static start(e) {\n if (e.which !== 1) {\n return;\n }\n\n e.preventDefault(); /* don't drag the image */\n $(document).on(\"mousemove.danbooru\", Note.TranslationMode.Drag.drag);\n $(document).on(\"mouseup.danbooru\", Note.TranslationMode.Drag.stop);\n Note.TranslationMode.Drag.dragStartX = e.pageX;\n Note.TranslationMode.Drag.dragStartY = e.pageY;\n Note.dragging = true;\n }\n\n static drag(e) {\n var $image = $(\"#image\");\n var offset = $image.offset();\n\n // (x0, y0) is the top left point of the drag box. (x1, y1) is the bottom right point.\n let x0 = clamp(e.pageX, offset.left, Note.TranslationMode.Drag.dragStartX);\n let y0 = clamp(e.pageY, offset.top, Note.TranslationMode.Drag.dragStartY);\n let x1 = clamp(e.pageX, Note.TranslationMode.Drag.dragStartX, offset.left + $image.width());\n let y1 = clamp(e.pageY, Note.TranslationMode.Drag.dragStartY, offset.top + $image.height());\n\n // Convert from page-relative coordinates to image-relatives coordinates.\n let x = x0 - offset.left;\n let y = y0 - offset.top;\n let w = x1 - x0;\n let h = y1 - y0;\n\n // Only show the new note box after we've dragged a minimum distance. This is to avoid\n // accidentally creating tiny notes if we drag a small distance while trying to toggle notes.\n if (w >= Note.MIN_NOTE_SIZE || h >= Note.MIN_NOTE_SIZE) {\n $(\"#note-preview\").show();\n }\n\n if ($(\"#note-preview\").is(\":visible\")) {\n $('#note-preview').css({ left: x, top: y, width: w, height: h });\n }\n }\n\n static stop() {\n Note.dragging = false;\n $(document).off(\"mousemove.danbooru\", Note.TranslationMode.Drag.drag);\n $(document).off(\"mouseup.danbooru\", Note.TranslationMode.Drag.stop);\n\n if ($(\"#note-preview\").is(\":visible\")) {\n let scale_factor = $(\".note-container\").width() / parseInt($(\".note-container\").attr(\"data-width\"));\n\n new Note({\n x: $(\"#note-preview\").position().left / scale_factor,\n y: $(\"#note-preview\").position().top / scale_factor,\n w: $(\"#note-preview\").width() / scale_factor,\n h: $(\"#note-preview\").height() / scale_factor,\n });\n\n $(\"#note-preview\").hide();\n $(\".note-container\").removeClass(\"hide-notes\");\n } else { /* If we didn't drag far enough, treat it as a click and toggle displaying notes. */\n Note.Box.toggle_all();\n }\n }\n }\n }\n\n constructor({ x, y, w, h, id = null, original_body = null, sanitized_body = null } = {}) {\n this.$note_container = $(\".note-container\");\n\n this.id = id;\n this.post_id = this.$note_container.data(\"id\");\n this.embed = Utility.meta(\"post-has-embedded-notes\") === \"true\";\n this.original_body = original_body;\n this.x = x;\n this.y = y;\n this.w = w;\n this.h = h;\n\n this.box = new Note.Box(this);\n this.body = new Note.Body(this);\n\n this.box.place_note(x, y, w, h);\n this.body.display_text(sanitized_body);\n\n Note.notes.add(this);\n }\n\n is_new() {\n return this.id === null;\n }\n\n // The ratio of the current image size to the full image size.\n get scale_factor() {\n return this.$note_container.width() / this.post_width;\n }\n\n // The width and height of the full-size original image in pixels.\n get post_width() {\n return parseInt(this.$note_container.attr(\"data-width\"));\n }\n\n get post_height() {\n return parseInt(this.$note_container.attr(\"data-height\"));\n }\n\n // The current width and height of the image in pixels. Will be smaller than the post width\n // if the sample image is being displayed, or if the image is resized to fit the screen.\n get image_width() {\n return parseInt(this.$note_container.width());\n }\n\n get image_height() {\n return parseInt(this.$note_container.height());\n }\n\n // The initial font size of the note container. Embedded notes are scaled relative to this value.\n get base_font_size() {\n return parseFloat(this.$note_container.parent().css(\"font-size\"));\n }\n\n is_selected() {\n return this.box.$note_box.hasClass(\"movable\");\n }\n\n toggle_selected() {\n return this.is_selected() ? this.unselect() : this.select();\n }\n\n select() {\n Note.unselect_all();\n this.box.$note_box.addClass(\"movable\");\n Utility.keydown(\"up down left right\", \"nudge_note\", this.box.key_nudge.bind(this.box));\n Utility.keydown(\"shift+up shift+down shift+left shift+right\", \"resize_note\", this.box.key_resize.bind(this.box));\n }\n\n unselect() {\n this.box.$note_box.removeClass(\"movable\");\n $(document).off(\"keydown.nudge_note\");\n $(document).off(\"keydown.resize_note\");\n }\n\n normalize_sizes($note_elements, parent_font_size) {\n if ($note_elements.length === 0) {\n return;\n }\n\n $note_elements.toArray().forEach((element) => {\n const $element = $(element);\n const computed_styles = window.getComputedStyle(element);\n const font_size = parseFloat(computed_styles.fontSize);\n\n Note.NORMALIZE_ATTRIBUTES.forEach((attribute) => {\n const original_size = parseFloat(computed_styles[attribute]) || 0;\n const relative_em = original_size / font_size;\n $element.css(attribute, relative_em + \"em\");\n });\n\n const font_percentage = 100 * (font_size / parent_font_size);\n $element.css(\"font-size\", font_percentage + \"%\");\n $element.attr(\"size\", \"\");\n\n this.normalize_sizes($element.children(), font_size);\n });\n }\n\n static find(id) {\n return Array.from(Note.notes).find(note => note.id === id);\n }\n\n static load_all() {\n $(\"#notes article\").toArray().forEach(article => {\n var $article = $(article);\n\n new Note({\n id: $article.data(\"id\"),\n x: $article.data(\"x\"),\n y: $article.data(\"y\"),\n w: $article.data(\"width\"),\n h: $article.data(\"height\"),\n original_body: $article.data(\"body\"),\n sanitized_body: $article.html()\n });\n });\n }\n\n static initialize_all() {\n if ($(\"#c-posts #a-show #image\").length === 0 || $(\"video#image\").length || $(\"canvas#image\").length) {\n return;\n }\n\n Note.load_all();\n Note.Box.scale_all();\n\n $(document).on(\"click.danbooru\", \"#translate\", (e) => {\n Note.TranslationMode.toggle();\n e.preventDefault();\n });\n\n this.initialize_highlight();\n $(document).on(\"hashchange.danbooru.note\", this.initialize_highlight);\n\n $(window).on(\"resize.danbooru.note_scale\", Note.Box.scale_all);\n $(\"#image\").on(\"click.danbooru\", Note.Box.toggle_all);\n }\n\n static initialize_highlight() {\n var matches = window.location.hash.match(/^#note-(\\d+)$/);\n\n if (matches) {\n let note_id = parseInt(matches[1]);\n let note = Note.find(note_id);\n note.box.show_highlighted();\n }\n }\n\n static unselect_all() {\n Note.notes.forEach(note => note.unselect());\n }\n}\n\n$(function() {\n Note.initialize_all();\n});\n\nexport default Note\n\n","require(\"jquery-ui/ui/widgets/sortable\");\nrequire(\"jquery-ui/themes/base/sortable.css\");\n\nlet Pool = {};\n\nPool.initialize_all = function() {\n if ($(\"#c-posts\").length && $(\"#a-show\").length) {\n this.initialize_add_to_pool_link();\n }\n\n if ($(\"#c-pool-orders,#c-favorite-group-orders\").length) {\n this.initialize_simple_edit();\n }\n}\n\nPool.initialize_add_to_pool_link = function() {\n $(\"#add-to-pool-dialog\").dialog({autoOpen: false});\n\n $(\"#pool\").on(\"click.danbooru\", function(e) {\n e.preventDefault();\n $(\"#add-to-pool-dialog\").dialog(\"open\");\n });\n}\n\nPool.initialize_simple_edit = function() {\n $(\"#sortable\").sortable({\n placeholder: \"ui-state-placeholder\"\n });\n $(\"#sortable\").disableSelection();\n\n $(\"#ordering-form\").submit(function(e) {\n $.ajax({\n type: \"put\",\n url: e.target.action,\n data: $(\"#sortable\").sortable(\"serialize\") + \"&\" + $(e.target).serialize()\n });\n e.preventDefault();\n });\n}\n\n$(document).ready(function() {\n Pool.initialize_all();\n});\n\nexport default Pool\n","import { delegate } from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\n\nclass PopupMenuComponent {\n static initialize() {\n delegate(\"body\", {\n allowHTML: true,\n interactive: true,\n theme: \"common-tooltip\",\n target: \"a.popup-menu-button\",\n placement: \"bottom-start\",\n trigger: \"click\",\n touch: \"hold\",\n animation: null,\n content: PopupMenuComponent.content,\n });\n\n $(document).on(\"click.danbooru\", \".popup-menu-content\", PopupMenuComponent.onMenuItemClicked);\n }\n\n static content(element) {\n let $content = $(element).parents(\".popup-menu\").find(\".popup-menu-content\");\n $content.show();\n return $content.get(0);\n }\n\n // Hides the menu when a menu item is clicked.\n static onMenuItemClicked(event) {\n let tippy = $(event.target).parents(\"[data-tippy-root]\").get(0)._tippy;\n tippy.hide();\n }\n}\n\n$(document).ready(PopupMenuComponent.initialize);\n\nexport default PopupMenuComponent;\n","import Post from './posts.js'\nimport Utility from './utility'\n\nlet PostModeMenu = {};\n\nPostModeMenu.initialize = function() {\n if ($(\"#c-posts\").length || $(\"#c-favorites\").length || $(\"#c-pools\").length) {\n this.initialize_selector();\n this.initialize_preview_link();\n this.initialize_edit_form();\n this.initialize_tag_script_field();\n this.initialize_shortcuts();\n PostModeMenu.change();\n }\n}\n\nPostModeMenu.initialize_shortcuts = function() {\n Utility.keydown(\"1 2 3 4 5 6 7 8 9 0\", \"change_tag_script\", PostModeMenu.change_tag_script);\n}\n\nPostModeMenu.show_notice = function(mode, tag_script_index = 0) {\n if (mode === \"add-fav\") {\n Utility.notice(\"Switched to favorite mode. Click a post to favorite it.\");\n } else if (mode === \"remove-fav\") {\n Utility.notice(\"Switched to unfavorite mode. Click a post to unfavorite it.\");\n } else if (mode === \"edit\") {\n Utility.notice(\"Switched to edit mode. Click a post to edit it.\");\n } else if (mode === \"tag-script\") {\n Utility.notice(`Switched to tag script #${tag_script_index}. To switch tag scripts, use the number keys.`);\n }\n}\n\nPostModeMenu.change_tag_script = function(e) {\n if ($(\"#mode-box select\").val() === \"tag-script\") {\n var old_tag_script_id = localStorage.getItem(\"current_tag_script_id\") || \"1\";\n\n var keycode = e.which >= 96 ? e.which - 48 : e.which;\n var new_tag_script_id = String.fromCharCode(keycode);\n var new_tag_script = localStorage.getItem(\"tag-script-\" + new_tag_script_id);\n\n $(\"#tag-script-field\").val(new_tag_script);\n localStorage.setItem(\"current_tag_script_id\", new_tag_script_id);\n if (old_tag_script_id !== new_tag_script_id) {\n PostModeMenu.show_notice(\"tag-script\", new_tag_script_id);\n }\n\n e.preventDefault();\n }\n}\n\nPostModeMenu.initialize_selector = function() {\n let mode = localStorage.getItem(\"mode\");\n if (mode === null) {\n localStorage.setItem(\"mode\", \"view\");\n $(\"#mode-box select\").val(\"view\");\n } else {\n $(\"#mode-box select\").val(mode);\n }\n\n $(\"#mode-box select\").on(\"change.danbooru\", function(e) {\n PostModeMenu.change();\n $(\"#tag-script-field:visible\").focus().select();\n });\n}\n\nPostModeMenu.initialize_preview_link = function() {\n $(document).on(\"click.danbooru\", \".post-preview-container a\", PostModeMenu.click);\n}\n\nPostModeMenu.initialize_edit_form = function() {\n $(\"#quick-edit-div\").hide();\n\n $(document).on(\"click.danbooru\", \"#quick-edit-form button[name=cancel]\", function(e) {\n PostModeMenu.close_edit_form();\n e.preventDefault();\n });\n\n $(document).on(\"click.danbooru\", \"#quick-edit-form input[type=submit]\", async function(e) {\n e.preventDefault();\n let post_id = $(\"#quick-edit-form\").attr(\"data-post-id\");\n await Post.update(post_id, \"quick-edit\", { post: { tag_string: $(\"#post_tag_string\").val() }});\n });\n}\n\nPostModeMenu.close_edit_form = function() {\n $(\"#quick-edit-div\").slideUp(\"fast\");\n $(\"#post_tag_string\").data(\"uiAutocomplete\").close();\n}\n\nPostModeMenu.initialize_tag_script_field = function() {\n $(\"#tag-script-field\").blur(function(e) {\n var script = $(this).val();\n\n if (script) {\n var current_script_id = localStorage.getItem(\"current_tag_script_id\");\n localStorage.setItem(\"tag-script-\" + current_script_id, script);\n } else {\n $(\"#mode-box select\").val(\"view\");\n PostModeMenu.change();\n }\n });\n}\n\nPostModeMenu.change = function() {\n $(\"#quick-edit-div\").slideUp(\"fast\");\n var s = $(\"#mode-box select\").val();\n if (s === undefined) {\n return;\n }\n\n $(\"body\").attr(\"data-mode-menu-active\", s !== \"view\");\n $(\"body\").attr(\"data-mode-menu\", s);\n localStorage.setItem(\"mode\", s, 1);\n\n if (s === \"tag-script\") {\n var current_script_id = localStorage.getItem(\"current_tag_script_id\");\n if (!current_script_id) {\n current_script_id = \"1\";\n localStorage.setItem(\"current_tag_script_id\", current_script_id);\n }\n var script = localStorage.getItem(\"tag-script-\" + current_script_id);\n\n $(\"#tag-script-field\").val(script).show();\n PostModeMenu.show_notice(s, current_script_id);\n } else {\n $(\"#tag-script-field\").hide();\n PostModeMenu.show_notice(s);\n }\n}\n\nPostModeMenu.open_edit = function(post_id) {\n var $post = $(\"#post_\" + post_id);\n $(\"#quick-edit-div\").slideDown(\"fast\");\n $(\"#quick-edit-form\").attr(\"data-post-id\", post_id);\n $(\"#post_tag_string\").val($post.data(\"tags\") + \" \").focus().selectEnd();\n}\n\nPostModeMenu.click = function(e) {\n var s = $(\"#mode-box select\").val();\n var post_id = $(e.target).closest(\"article\").data(\"id\");\n\n if (s === \"add-fav\") {\n Post.tag(post_id, \"fav:me\");\n } else if (s === \"remove-fav\") {\n Post.tag(post_id, \"-fav:me\");\n } else if (s === \"edit\") {\n PostModeMenu.open_edit(post_id);\n } else if (s === \"tag-script\") {\n var current_script_id = localStorage.getItem(\"current_tag_script_id\");\n var tag_script = localStorage.getItem(\"tag-script-\" + current_script_id) ?? \"\";\n Post.tag(post_id, tag_script);\n } else {\n return;\n }\n\n e.preventDefault();\n}\n\n$(function() {\n PostModeMenu.initialize();\n});\n\nexport default PostModeMenu\n","import CurrentUser from './current_user';\nimport Utility from './utility';\nimport { delegate, hideAll } from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\n\nlet PostTooltip = {};\n\nPostTooltip.POST_SELECTOR = \"*:not(.ui-sortable-handle) > .post-preview img, .dtext-post-id-link\";\nPostTooltip.SHOW_DELAY = 500;\nPostTooltip.HIDE_DELAY = 125;\nPostTooltip.DURATION = 250;\nPostTooltip.instance = null;\n\nPostTooltip.initialize = function () {\n if (PostTooltip.disabled()) {\n return;\n }\n\n PostTooltip.instance = delegate(\"body\", {\n allowHTML: true,\n appendTo: document.querySelector(\"#post-tooltips\"),\n delay: [PostTooltip.SHOW_DELAY, PostTooltip.HIDE_DELAY],\n duration: PostTooltip.DURATION,\n interactive: true,\n maxWidth: \"none\",\n target: PostTooltip.POST_SELECTOR,\n theme: \"common-tooltip post-tooltip\",\n touch: false,\n\n onCreate: PostTooltip.on_create,\n onShow: PostTooltip.on_show,\n onHide: PostTooltip.on_hide,\n });\n\n $(document).on(\"click.danbooru.postTooltip\", \".post-tooltip-disable\", PostTooltip.on_disable_tooltips);\n};\n\nPostTooltip.on_create = function (instance) {\n let title = instance.reference.getAttribute(\"title\");\n\n if (title) {\n instance.reference.setAttribute(\"data-title\", title);\n instance.reference.setAttribute(\"title\", \"\");\n }\n};\n\nPostTooltip.on_show = async function (instance) {\n let post_id = null;\n let preview = false;\n let $target = $(instance.reference);\n let $tooltip = $(instance.popper);\n\n hideAll({ exclude: instance });\n\n // skip if tooltip has already been rendered.\n if ($tooltip.has(\".post-tooltip-body\").length) {\n return;\n }\n\n if ($target.is(\".dtext-post-id-link\")) {\n preview = true;\n post_id = /\\/posts\\/(\\d+)/.exec($target.attr(\"href\"))[1];\n } else {\n post_id = $target.parents(\"[data-id]\").data(\"id\");\n }\n\n try {\n $tooltip.addClass(\"tooltip-loading\");\n\n instance._request = $.get(`/posts/${post_id}`, { variant: \"tooltip\", preview: preview });\n let html = await instance._request;\n instance.setContent(html);\n\n $tooltip.removeClass(\"tooltip-loading\");\n } catch (error) {\n if (error.status !== 0 && error.statusText !== \"abort\") {\n Utility.error(`Error displaying tooltip for post #${post_id} (error: ${error.status} ${error.statusText})`);\n }\n }\n};\n\nPostTooltip.on_hide = function (instance) {\n if (instance._request?.state() === \"pending\") {\n instance._request.abort();\n }\n}\n\nPostTooltip.disabled = function (event) {\n return CurrentUser.data(\"disable-post-tooltips\");\n};\n\nPostTooltip.on_disable_tooltips = async function (event) {\n event.preventDefault();\n hideAll();\n\n if (CurrentUser.data(\"is-anonymous\")) {\n Utility.notice('You must login to disable tooltips');\n return;\n }\n\n await CurrentUser.update({ disable_post_tooltips: true });\n Utility.notice(`Tooltips disabled; check your account settings to re-enable.`);\n PostTooltip.instance[0].destroy();\n};\n\n$(document).ready(PostTooltip.initialize);\n\nexport default PostTooltip\n","import Utility from './utility';\n\nlet PostVersion = {};\n\nPostVersion.initialize_all = function() {\n if ($(\"#c-post-versions #a-index\").length) {\n PostVersion.initialize_undo();\n }\n};\n\nPostVersion.initialize_undo = function() {\n /* Expand the clickable area of the checkbox to the entire table cell. */\n $(\".post-version-select-column\").on(\"click.danbooru\", function(event) {\n $(event.target).find(\".post-version-select-checkbox:not(:disabled)\").prop(\"checked\", (_, checked) => !checked).change();\n });\n\n $(\"#post-version-select-all-checkbox\").on(\"change.danbooru\", function(event) {\n $(\"td .post-version-select-checkbox:not(:disabled)\").prop(\"checked\", $(\"#post-version-select-all-checkbox\").prop(\"checked\")).change();\n });\n\n $(\".post-version-select-checkbox\").on(\"change.danbooru\", function(event) {\n let checked = $(\"td .post-version-select-checkbox:checked\");\n $(\"#subnav-undo-selected-link\").text(`Undo selected (${checked.length})`).toggle(checked.length > 0);\n });\n\n $(\"#subnav-undo-selected-link\").on(\"click.danbooru\", PostVersion.undo_selected);\n};\n\nPostVersion.undo_selected = async function () {\n event.preventDefault();\n\n let updated = 0;\n let selected_rows = $(\"td .post-version-select-checkbox:checked\").parents(\"tr\");\n\n for (let row of selected_rows) {\n let id = $(row).data(\"id\");\n await $.ajax(`/post_versions/${id}/undo.json`, { method: \"PUT\" });\n\n updated++;\n Utility.notice(`${updated}/${selected_rows.length} changes undone.`);\n }\n};\n\n$(document).ready(PostVersion.initialize_all);\nexport default PostVersion;\n","import Utility from \"./utility\";\nimport { delegate, hideAll } from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\n\nclass PostVotesTooltipComponent {\n // Trigger on the post score link; see PostVotesComponent.\n static TARGET_SELECTOR = \"span.post-votes span.post-score a\";\n static SHOW_DELAY = 125;\n static HIDE_DELAY = 125;\n static DURATION = 250;\n static instance = null;\n\n static initialize() {\n if ($(PostVotesTooltipComponent.TARGET_SELECTOR).length === 0) {\n return;\n }\n\n PostVotesTooltipComponent.instance = delegate(\"body\", {\n allowHTML: true,\n appendTo: document.querySelector(\"#post-votes-tooltips\"),\n delay: [PostVotesTooltipComponent.SHOW_DELAY, PostVotesTooltipComponent.HIDE_DELAY],\n duration: PostVotesTooltipComponent.DURATION,\n interactive: true,\n maxWidth: \"none\",\n target: PostVotesTooltipComponent.TARGET_SELECTOR,\n theme: \"common-tooltip\",\n touch: false,\n\n onShow: PostVotesTooltipComponent.onShow,\n onHide: PostVotesTooltipComponent.onHide,\n });\n }\n\n static async onShow(instance) {\n let $target = $(instance.reference);\n let $tooltip = $(instance.popper);\n let postId = $target.parents(\"[data-id]\").data(\"id\");\n\n hideAll({ exclude: instance });\n\n try {\n $tooltip.addClass(\"tooltip-loading\");\n\n instance._request = $.get(`/post_votes?search[post_id]=${postId}`, { variant: \"tooltip\" });\n let html = await instance._request;\n instance.setContent(html);\n\n $tooltip.removeClass(\"tooltip-loading\");\n } catch (error) {\n if (error.status !== 0 && error.statusText !== \"abort\") {\n Utility.error(`Error displaying votes for post #${postId} (error: ${error.status} ${error.statusText})`);\n }\n }\n }\n\n static async onHide(instance) {\n if (instance._request?.state() === \"pending\") {\n instance._request.abort();\n }\n }\n}\n\n$(document).ready(PostVotesTooltipComponent.initialize);\n\nexport default PostVotesTooltipComponent;\n","import CurrentUser from './current_user'\nimport Utility from './utility'\nimport Hammer from 'hammerjs'\nimport Cookie from './cookie'\nimport Note from './notes'\nimport Ugoira from './ugoira'\nimport Rails from '@rails/ujs'\n\nlet Post = {};\n\nPost.pending_update_count = 0;\nPost.SWIPE_THRESHOLD = 60;\nPost.SWIPE_VELOCITY = 0.6;\nPost.MAX_RECOMMENDATIONS = 45; // 3 rows of 9 posts at 1920x1080.\nPost.LOW_TAG_COUNT = 10;\nPost.HIGH_TAG_COUNT = 20;\nPost.EDIT_DIALOG_WIDTH = 720;\n\nPost.initialize_all = function() {\n\n if ($(\"#c-posts\").length) {\n this.initialize_saved_searches();\n }\n\n if ($(\"#c-posts\").length && $(\"#a-index\").length) {\n this.initialize_excerpt();\n this.initialize_gestures();\n this.initialize_post_preview_size_menu();\n this.initialize_post_preview_options_menu();\n }\n\n if ($(\"#c-posts\").length && $(\"#a-show\").length) {\n this.initialize_links();\n this.initialize_post_relationship_previews();\n this.initialize_post_sections();\n this.initialize_post_image_resize_links();\n this.initialize_recommended();\n this.initialize_ugoira_player();\n this.initialize_ruffle_player();\n }\n\n if ($(\"#c-posts #a-show, #c-uploads #a-show\").length) {\n this.initialize_edit_dialog();\n }\n\n $(window).on('danbooru:initialize_saved_seraches', () => {\n Post.initialize_saved_searches();\n });\n}\n\nPost.initialize_gestures = function() {\n if (CurrentUser.data(\"disable-mobile-gestures\")) {\n return;\n }\n var $body = $(\"body\");\n if ($body.data(\"hammer\")) {\n return;\n }\n if (!Utility.test_max_width(660)) {\n return;\n }\n $(\".image-container\").css({overflow: \"visible\"});\n var hasPrev = $(\".paginator a[rel~=prev]\").length;\n var hasNext = $(\".paginator a[rel~=next]\").length;\n\n var hammer = new Hammer($body[0], {touchAction: 'pan-y', recognizers: [[Hammer.Swipe, { threshold: Post.SWIPE_THRESHOLD, velocity: Post.SWIPE_VELOCITY, direction: Hammer.DIRECTION_HORIZONTAL }]], inputClass: Hammer.TouchInput});\n $body.data(\"hammer\", hammer);\n\n if (hasPrev) {\n hammer.on(\"swiperight\", async function(e) {\n $(\"body\").css({\"transition-timing-function\": \"ease\", \"transition-duration\": \"0.2s\", \"opacity\": \"0\", \"transform\": \"translateX(150%)\"});\n await Utility.delay(200);\n Post.swipe_prev(e);\n });\n }\n\n if (hasNext) {\n hammer.on(\"swipeleft\", async function(e) {\n $(\"body\").css({\"transition-timing-function\": \"ease\", \"transition-duration\": \"0.2s\", \"opacity\": \"0\", \"transform\": \"translateX(-150%)\"});\n await Utility.delay(200);\n Post.swipe_next(e);\n });\n }\n}\n\nPost.initialize_edit_dialog = function() {\n $(\"#open-edit-dialog\").show().on(\"click.danbooru\", function(e) {\n Post.open_edit_dialog();\n e.preventDefault();\n });\n}\n\nPost.open_edit_dialog = function() {\n if ($(\"#edit-dialog\").length === 1) {\n return;\n }\n\n $(document).trigger(\"danbooru:open-post-edit-dialog\");\n\n $(\"#edit\").show();\n $(\"#comments\").hide();\n $(\"#post-sections li\").removeClass(\"active\");\n $(\"#post-edit-link\").parent(\"li\").addClass(\"active\");\n\n var $tag_string = $(\"#post_tag_string\");\n $(\"#open-edit-dialog\").hide();\n\n var dialog = $(\"
    \").attr(\"id\", \"edit-dialog\");\n $(\"#form\").appendTo(dialog);\n dialog.dialog({\n title: \"Edit tags\",\n width: Post.EDIT_DIALOG_WIDTH,\n position: {\n my: \"right\",\n at: \"right-20\",\n of: window\n },\n drag: function(e, ui) {\n $tag_string.data(\"uiAutocomplete\").close();\n },\n close: Post.close_edit_dialog\n });\n dialog.dialog(\"widget\").draggable(\"option\", \"containment\", \"none\");\n\n var pin_button = $(\"