{"version":3,"file":"js/application-a4b47b3f38a80ffd8a93.js","mappings":"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","sources":["webpack:///./app/components/ sync \\.s","webpack:///./app/javascript/src/javascripts/ sync \\.js(\\.erb)","webpack:///./app/javascript/src/styles/ sync \\.s","webpack:///./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/device.js","webpack:///./app/javascript/src/javascripts/draggable.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/help_tooltip_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_tooltips.js","webpack:///./app/javascript/src/javascripts/utility.js","webpack:///./app/javascript/vendor/pixiv-ugoira-player.js","webpack:///./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\"./tab_panel_component/tab_panel_component.scss\": 76285,\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\"tab_panel_component/tab_panel_component.scss\": 76285,\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\"./device.js\": 72969,\n\t\"./draggable.js\": 88186,\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\"./help_tooltip_component.js\": 966,\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_tooltips.js\": 88254,\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/device.js\": 72969,\n\t\"src/javascripts/draggable.js\": 88186,\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/help_tooltip_component.js\": 966,\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_tooltips.js\": 88254,\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/common_tooltips.scss\": 63477,\n\t\"./specific/dmails.scss\": 59992,\n\t\"./specific/error.scss\": 40480,\n\t\"./specific/forum.scss\": 2487,\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/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/common_tooltips.scss\": 63477,\n\t\"src/styles/specific/dmails.scss\": 59992,\n\t\"src/styles/specific/error.scss\": 40480,\n\t\"src/styles/specific/forum.scss\": 2487,\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/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// This will only import the necessary polyfills needed by the current browserslist setting in package.json, not\n// everything. See @babel/preset-env.\nimport \"core-js\";\n\nrequire('@rails/ujs').start();\nrequire('hammerjs');\nrequire('jquery-hotkeys');\nimport morphdom from 'morphdom';\nimport Alpine from 'alpinejs';\nimport morph from '@alpinejs/morph';\nimport persist from '@alpinejs/persist'\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\nimport 'tippy.js/dist/tippy.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 ArtistCommentary from \"../src/javascripts/artist_commentaries.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 Cookie from \"../src/javascripts/cookie.js\";\nimport CurrentUser from \"../src/javascripts/current_user.js\";\nimport Device from \"../src/javascripts/device.js\";\nimport Draggable from \"../src/javascripts/draggable.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 HelpTooltipComponent from \"../src/javascripts/help_tooltip_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.ArtistCommentary = ArtistCommentary;\nDanbooru.Blacklist = Blacklist;\nDanbooru.CommentComponent = CommentComponent;\nDanbooru.CommentVotesTooltipComponent = CommentVotesTooltipComponent;\nDanbooru.Cookie = Cookie;\nDanbooru.CurrentUser = CurrentUser;\nDanbooru.Device = Device;\nDanbooru.Draggable = Draggable;\nDanbooru.Dtext = Dtext;\nDanbooru.FavoritesTooltipComponent = FavoritesTooltipComponent;\nDanbooru.FileUploadComponent = FileUploadComponent;\nDanbooru.ForumPostComponent = ForumPostComponent;\nDanbooru.HelpTooltipComponent = HelpTooltipComponent;\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.Alpine = Alpine;\nwindow.Danbooru = Danbooru;\n\nAlpine.plugin(morph);\nAlpine.plugin(persist)\n$(() => Alpine.start());\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 $(input).trigger(\"input\");\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 { createTooltip } from \"./utility\";\nimport { hideAll } from 'tippy.js';\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 = createTooltip(\"comment-tooltip\", {\n delay: [CommentVotesTooltipComponent.SHOW_DELAY, CommentVotesTooltipComponent.HIDE_DELAY],\n duration: CommentVotesTooltipComponent.DURATION,\n target: CommentVotesTooltipComponent.TARGET_SELECTOR,\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.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 this.unescape(c.substring(nameEq.length, c.length));\n }\n }\n\n return null;\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.getItem = Cookie.get;\nCookie.setItem = Cookie.put;\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","import { find as lodashFind, memoize } from \"lodash\";\n\n// Collects information about the user's browser and computer. Used for detecting bots and ban evaders.\nexport default class Device {\n static canvas = document.createElement(\"canvas\");\n static commonFrameRates = [60, 75, 90, 120, 144, 240, 360];\n\n static async metadata() {\n try {\n if (\"speechSynthesis\" in window) {\n window.speechSynthesis.onvoiceschanged = () => {}; // Somehow forces Chrome to initialize the getVoices() list.\n }\n\n return {\n hardware: {\n hardwareConcurrency: window.navigator?.hardwareConcurrency,\n deviceMemory: window.navigator?.deviceMemory,\n webglUnmaskedRenderer: this.webgl?.getParameter?.(this.webgl?.getExtension?.(\"WEBGL_debug_renderer_info\")?.UNMASKED_RENDERER_WEBGL),\n webglUnmaskedVendor: this.webgl?.getParameter?.(this.webgl?.getExtension?.(\"WEBGL_debug_renderer_info\")?.UNMASKED_VENDOR_WEBGL),\n maxTouchPoints: window.navigator?.maxTouchPoints,\n batteryLevel: await window.navigator?.getBattery?.()?.level,\n batteryCharging: await window.navigator?.getBattery?.()?.charging,\n mobile: window.navigator?.userAgentData?.mobile,\n platform: window.navigator?.userAgentData?.platform,\n platformVersion: (await this.userAgentData())?.platformVersion,\n architecture: (await this.userAgentData())?.architecture,\n bitness: (await this.userAgentData())?.bitness,\n mathFingerprint: await this.mathFingerprint(),\n },\n connection: {\n httpVersion: window.performance?.getEntriesByType?.('navigation')?.[0]?.nextHopProtocol,\n downlink: window.navigator?.connection?.downlink,\n effectiveType: window.navigator?.connection?.effectiveType,\n rtt: window.navigator?.connection?.rtt,\n saveData: window.navigator?.connection?.saveData,\n },\n user: {\n locale: Intl?.DateTimeFormat?.()?.resolvedOptions?.().locale,\n timeZone: Intl?.DateTimeFormat?.()?.resolvedOptions?.().timeZone,\n timeZoneOffset: new Date().getTimezoneOffset(),\n languages: window.navigator?.languages?.join(\"; \"),\n darkMode: window.matchMedia?.(\"(prefers-color-scheme: dark)\")?.matches,\n },\n window: {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n screen: {\n width: window.screen?.width,\n height: window.screen?.height,\n frameRate: await this.frameRate(),\n orientation: window.screen?.orientation?.type,\n pixelDepth: window.screen?.pixelDepth,\n pixelRatio: window.devicePixelRatio,\n colorGamut: this.colorGamut(),\n },\n page: {\n domNodes: $('*').length,\n historyLength: window.history?.length,\n navigationLength: window.navigation?.currentEntry?.index,\n openDuration: (window.performance?.now?.() ?? 0) / 1000,\n },\n browser: {\n userAgent: window.navigator?.userAgent,\n userAgentFullVersion: (await this.userAgentData())?.uaFullVersion,\n //hasWindowScheduler: \"scheduler\" in window,\n //hasWindowNavigation: \"navigation\" in window,\n //hasEventCounts: \"eventCounts\" in (window.performance ?? {}),\n //hasNavigatorConnection: \"connection\" in (window.navigator ?? {}),\n //hasNavigatorUSB: \"usb\" in (window.navigator ?? {}),\n //hasNavigatorHID: \"hid\" in (window.navigator ?? {}),\n //hasNavigatorShare: \"share\" in (window.navigator ?? {}),\n speechSynthesisFingerprint: await this.speechSynthesisFingerprint(),\n webdriver: window.navigator?.webdriver,\n },\n };\n } catch (error) {\n // Swallow errors to prevent breaking pages in case we do something unsupported by uncommon browsers.\n return {};\n }\n }\n\n static async flatMetadata() {\n let objects = Object.entries(await this.metadata()).map(([category, values]) => {\n return Object.entries(values).map(([name, value]) => {\n return ({ [`${category}.${name}`]: value });\n });\n }).flat();\n\n return Object.assign(...objects);\n }\n\n static async jsonMetadata() {\n return JSON.stringify(await this.metadata(), (key, value) => value ?? null); // convert undefined to null.\n }\n\n // Estimate the screen's frame rate. Calculates the frame rate N times and takes the median value, then rounds it to\n // the nearest standard frame rate.\n static async frameRate(samples = 5) {\n let frameTimes = [];\n for (let i = 0; i < samples; i++) {\n frameTimes[i] = await this.frameTime();\n }\n\n let medianTime = frameTimes.sort()[Math.floor(samples / 2)];\n let frameRate = Math.round(1000 / medianTime);\n let closestFrameRate = lodashFind(this.commonFrameRates, rate => Math.abs(frameRate - rate) <= 0.1 * rate);\n return closestFrameRate ?? frameRate;\n }\n\n // Calculate the time in milliseconds between two animation frames. Used to estimate the screen's frame rate. May\n // be slightly off due to timing fluctuations.\n static async frameTime() {\n return new Promise(resolve => {\n requestAnimationFrame(t1 => {\n requestAnimationFrame(t2 => {\n resolve(t2 - t1);\n })\n })\n });\n }\n\n static async userAgentData() {\n return await window.navigator.userAgentData?.getHighEntropyValues?.([\n \"architecture\", \"bitness\", \"formFactor\", \"fullVersionList\", \"model\", \"platformVersion\", \"uaFullVersion\", \"wow64\"\n ]);\n }\n\n static colorGamut() {\n let gamuts = [\"rec2020\", \"p3\", \"srgb\"];\n return lodashFind(gamuts, gamut => window.matchMedia?.(`(color-gamut: ${gamut})`)?.matches);\n }\n\n // Detect floating point rounding differences between browsers.\n static async mathFingerprint() {\n let log = Math.log;\n let exp = Math.exp;\n let sqrt = Math.sqrt;\n let acoshPf = x => log(x + sqrt(x * x - 1))\n let asinhPf = x => log(x + sqrt(x * x + 1))\n let atanhPf = x => log((1 + x) / (1 - x)) / 2\n let sinhPf = x => exp(x) - 1 / exp(x) / 2\n let coshPf = x => (exp(x) + 1 / exp(x)) / 2\n let expm1Pf = x => exp(x) - 1\n let tanhPf = x => (exp(2 * x) - 1) / (exp(2 * x) + 1)\n let log1pPf = x => log(1 + x)\n\n let fingerprint = {\n acos: Math.acos(0.123124234234234242),\n acosh: Math.acosh(1e308),\n acoshPf: acoshPf(1e154),\n asin: Math.asin(0.123124234234234242),\n asinh: Math.asinh(1),\n asinhPf: asinhPf(1),\n atanh: Math.atanh(0.5),\n atanhPf: atanhPf(0.5),\n atan: Math.atan(0.5),\n sin: Math.sin(-1e300),\n sinh: Math.sinh(1),\n sinhPf: sinhPf(1),\n cos: Math.cos(10.000000000123),\n cosh: Math.cosh(1),\n coshPf: coshPf(1),\n tan: Math.tan(-1e300),\n tanh: Math.tanh(1),\n tanhPf: tanhPf(1),\n exp: Math.exp(1),\n expm1: Math.expm1(1),\n expm1Pf: expm1Pf(1),\n log1p: Math.log1p(10),\n log1pPf: log1pPf(10),\n powPI: Math.pow(Math.PI, -100),\n }\n\n let hash = await this.hash(JSON.stringify(fingerprint));\n return `v1:${hash}`;\n }\n\n static async speechSynthesisFingerprint(data) {\n if (! (\"speechSynthesis\" in window)) {\n return undefined;\n }\n\n let voices = window.speechSynthesis.getVoices().map(voice => voice.voiceURI);\n let hash = await this.hash(JSON.stringify(voices));\n return `v1:${hash}`;\n }\n\n // Generate a hash of the data. The hash function is SHA-512, truncated to first 32 hex characters.\n static async hash(data) {\n if (! (\"subtle\" in window.crypto)) {\n return undefined;\n }\n\n let input = new TextEncoder().encode(data);\n let hash = await window.crypto.subtle.digest(\"SHA-512\", input);\n let bytes = new Uint8Array(hash);\n\t let hex = Array.from(bytes).map(byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\n\t return hex.slice(0, 32);\n }\n\n static get webgl() {\n return this.canvas?.getContext?.(\"webgl\");\n }\n}\n\nDevice.frameRate = memoize(Device.frameRate);\nDevice.userAgentData = memoize(Device.userAgentData);\n","export default class Draggable {\n constructor(selector) {\n this.selector = selector;\n this.initialize();\n }\n\n initialize() {\n $(document).on(\"pointerdown.danbooru\", this.selector, (startEvent) => {\n if (startEvent.button !== 0 || !startEvent.originalEvent.isPrimary) {\n return; // Ignore right-clicks and multi-touch gestures.\n }\n\n let active = true;\n let target = startEvent.target;\n let pointerId = startEvent.pointerId;\n let namespace = `drag-${pointerId}`;\n\n target.setPointerCapture(pointerId);\n $(target).addClass(\"dragging\");\n $(target).trigger(\"drag:start\", [startEvent, this]);\n startEvent.preventDefault();\n\n $(document.body).on(`pointermove.${namespace}`, (moveEvent) => {\n requestAnimationFrame(() => {\n if (moveEvent.pointerId !== pointerId || !active) {\n return; // Ignore multi-touch gestures and pointermove events after pointerup has already been fired.\n }\n\n let movement = {\n x: moveEvent.clientX - startEvent.clientX,\n y: moveEvent.clientY - startEvent.clientY,\n };\n\n $(target).trigger(\"drag:move\", [moveEvent, movement, this]);\n moveEvent.preventDefault();\n });\n });\n\n $(document.body).on(`pointerup.${namespace} pointercancel.${namespace}`, (endEvent) => {\n if (endEvent.pointerId !== pointerId) {\n return; // Ignore multi-touch gestures.\n }\n\n active = false;\n $(target).removeClass(\"dragging\");\n $(document.body).off(`pointerup.${namespace} pointercancel.${namespace} pointermove.${namespace}`);\n\n $(target).trigger(\"drag:stop\", [endEvent, this]);\n endEvent.preventDefault();\n });\n });\n }\n}\n","let Dtext = {};\n\nDtext.initialize_all = function() {\n Dtext.initialize_links();\n}\n\nDtext.initialize_links = function() {\n $(document).on(\"click.danbooru\", \".dtext-preview-button\", Dtext.click_button);\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 { createTooltip } from \"./utility\";\nimport { hideAll } from 'tippy.js';\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 = createTooltip(\"favorites-tooltip\", {\n delay: [FavoritesTooltipComponent.SHOW_DELAY, FavoritesTooltipComponent.HIDE_DELAY],\n duration: FavoritesTooltipComponent.DURATION,\n target: FavoritesTooltipComponent.TARGET_SELECTOR,\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: \".jpg,.jpeg,.png,.gif,.webp,.avif,.mp4,.webm,.zip,.rar,.7z,.swf\",\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","import { createTooltip } from './utility';\n\nclass HelpTooltipComponent {\n static initialize() {\n createTooltip(\"help-tooltip\", {\n target: \"a.help-tooltip-link\",\n trigger: \"click\",\n touch: \"hold\",\n duration: 50,\n content(element) {\n let $content = $(element).next(\".help-tooltip-content\");\n $content.show();\n return $content.get(0);\n }\n });\n }\n}\n\n$(document).ready(HelpTooltipComponent.initialize);\n\nexport default HelpTooltipComponent;\n","let IqdbQuery = {};\n\nIqdbQuery.initialize_all = function() {\n $(document).on(\"click.danbooru\", \"a.toggle-iqdb-posts-low-similarity\", function(event) {\n $(\".iqdb-low-similarity\").toggleClass(\"hidden\");\n $(\"a.toggle-iqdb-posts-low-similarity\").toggle();\n event.preventDefault();\n });\n};\n\n$(document).ready(IqdbQuery.initialize_all);\n","import clamp from \"lodash/clamp\";\n\nexport 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 this.$container = this.$component.find(\".media-asset-container\");\n this.$image = this.$component.find(\".media-asset-image\");\n this.$zoomLevel = this.$component.find(\".media-asset-zoom-level\");\n this.scrollOnZoom = this.$component.attr(\"data-scroll-on-zoom\") === \"true\";\n this.dynamicHeight = this.$component.attr(\"data-dynamic-height\") === \"true\";\n\n this.updateHeight();\n $(window).on(\"load.danbooru\", e => this.updateHeight());\n $(window).on(\"scroll.danbooru\", e => this.updateHeight());\n\n if (this.$image.length) {\n this.$image.on(\"click.danbooru\", e => this.toggleFit(e));\n this.$image.on(\"load.danbooru\", e => this.updateZoom());\n new ResizeObserver(() => this.updateZoom()).observe(this.$image.get(0));\n this.updateZoom();\n }\n }\n\n toggleFit(e) {\n let rect = this.$image.get(0).getBoundingClientRect();\n let yRatio = (e.clientY - rect.top) / this.$image.height();\n let gap = this.$component.height() - this.$image.height();\n\n if (this.canZoomOut) {\n this.$component.addClass(\"media-asset-component-fit-height media-asset-component-fit-width\");\n } else if (this.canZoomHeight) {\n this.$component.removeClass(\"media-asset-component-fit-height\");\n }\n\n let top = this.$component.offset().top;\n let height = this.$image.height();\n let ypos = clamp(top + (yRatio * height) - (window.innerHeight / 2), Math.min(window.scrollY, top), top + height + gap - window.innerHeight);\n\n if (this.scrollOnZoom) {\n window.scrollTo({ top: ypos });\n }\n\n this.updateZoom();\n }\n\n updateZoom() {\n this.$image.removeClass(\"cursor-zoom-in cursor-zoom-out\");\n this.$zoomLevel.removeClass(\"hidden\").text(`${Math.round(100 * this.zoomLevel)}%`);\n\n if (this.canZoomIn) {\n this.$image.addClass(\"cursor-zoom-in\");\n } else if (this.canZoomOut) {\n this.$image.addClass(\"cursor-zoom-out\");\n }\n }\n\n updateHeight() {\n this.$component.css(\"--header-initial-height\", Math.max(0, this.$component.parent().offset().top) + \"px\");\n this.$component.css(\"--header-visible-height\", Math.max(0, this.$component.parent().offset().top - $(window).scrollTop()) + \"px\");\n this.$component.attr(\"data-dynamic-height-initialized\", \"true\");\n }\n\n get zoomLevel() {\n return this.$image.width() / Number(this.$image.attr(\"width\"));\n }\n\n get canZoomIn() {\n return this.canZoomHeight;\n }\n\n get canZoomHeight() {\n return !this.isZoomed && this.$image.height() < this.$image.get(0).naturalHeight && Math.round(this.$image.width()) < Math.round(this.$component.width());\n }\n\n get canZoomOut() {\n return this.isZoomed;\n }\n\n get isZoomed() {\n return !this.$component.is(\".media-asset-component-fit-height.media-asset-component-fit-width\");\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\", \".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 { createTooltip } from './utility';\n\nclass PopupMenuComponent {\n static initialize() {\n createTooltip(\"popup-menu-tooltip\", {\n target: \"a.popup-menu-button\",\n placement: \"bottom-start\",\n trigger: \"click\",\n touch: \"hold\",\n appendTo: \"parent\",\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 menuHideOnClick = $(event.target).parents(\".popup-menu\").data(\"hide-on-click\");\n let itemHideOnClick = $(event.target).parents(\"li\").data(\"hide-on-click\");\n let hideOnClick = itemHideOnClick !== undefined ? itemHideOnClick : menuHideOnClick;\n\n if (hideOnClick) {\n let tippy = $(event.target).parents(\"[data-tippy-root]\").get(0)?._tippy;\n tippy?.hide();\n }\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 { createTooltip } from './utility';\nimport { hideAll } from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\n\nlet PostTooltip = {};\n\nPostTooltip.POST_SELECTOR = \"*:not(.ui-sortable-handle) > .post-preview .post-preview-image, .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 = createTooltip(\"post-tooltip\", {\n delay: [PostTooltip.SHOW_DELAY, PostTooltip.HIDE_DELAY],\n duration: PostTooltip.DURATION,\n target: PostTooltip.POST_SELECTOR,\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 if (instance.reference === document.body) {\n return;\n }\n\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 // Only show the tooltip after the mouse has stopped moving inside the thumbnail.\n $(instance.reference).on(\"mousemove.danbooru\", e => {\n instance.clearDelayTimeouts();\n instance.reference.dispatchEvent(new Event('mouseenter'));\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 { createTooltip } from \"./utility\";\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 = 375;\n static HIDE_DELAY = 125;\n static DURATION = 250;\n static instance = null;\n\n static initialize() {\n PostVotesTooltipComponent.instance = createTooltip(\"post-votes-tooltip\", {\n delay: [PostVotesTooltipComponent.SHOW_DELAY, PostVotesTooltipComponent.HIDE_DELAY],\n duration: PostVotesTooltipComponent.DURATION,\n target: PostVotesTooltipComponent.TARGET_SELECTOR,\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 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 = 640;\nPost.EDIT_DIALOG_MIN_HEIGHT = 320;\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 }\n\n if ($(\"#c-posts #a-show, #c-uploads #a-show\").length) {\n this.initialize_edit_dialog();\n }\n\n this.initialize_ruffle_player();\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 $(\".upload-container\").css(\"display\", \"block\");\n\n var $tag_string = $(\"#post_tag_string\");\n $(\"body.c-uploads .docking-menu-tab\").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 height: Math.max($(window).height() * 0.50, Post.EDIT_DIALOG_MIN_HEIGHT),\n position: {\n my: \"right top\",\n at: \"right-20 top+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 = $(\"