From a43859c8f400420b48e08b67be7be65e40854450 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Sun, 12 Jun 2022 14:00:52 +0100 Subject: [PATCH] update pleroma-fe --- priv/static/index.html | 2 +- priv/static/static/css/app.9065da1ae55149d987b6.css.map | 1 - ...da1ae55149d987b6.css => app.ea8ec0bbcc083797019b.css} | 9 ++++++++- priv/static/static/css/app.ea8ec0bbcc083797019b.css.map | 1 + priv/static/static/js/app.699e9674d3b0bea12ca5.js | 2 ++ priv/static/static/js/app.699e9674d3b0bea12ca5.js.map | 1 + priv/static/static/js/app.bfedff975f2109f6d66d.js | 2 -- priv/static/static/js/app.bfedff975f2109f6d66d.js.map | 1 - priv/static/sw-pleroma.js | 4 ++-- priv/static/sw-pleroma.js.map | 2 +- 10 files changed, 16 insertions(+), 9 deletions(-) delete mode 100644 priv/static/static/css/app.9065da1ae55149d987b6.css.map rename priv/static/static/css/{app.9065da1ae55149d987b6.css => app.ea8ec0bbcc083797019b.css} (99%) create mode 100644 priv/static/static/css/app.ea8ec0bbcc083797019b.css.map create mode 100644 priv/static/static/js/app.699e9674d3b0bea12ca5.js create mode 100644 priv/static/static/js/app.699e9674d3b0bea12ca5.js.map delete mode 100644 priv/static/static/js/app.bfedff975f2109f6d66d.js delete mode 100644 priv/static/static/js/app.bfedff975f2109f6d66d.js.map diff --git a/priv/static/index.html b/priv/static/index.html index e00ef9c18..54f040fd8 100644 --- a/priv/static/index.html +++ b/priv/static/index.html @@ -1 +1 @@ -Pleroma
\ No newline at end of file +Pleroma
\ No newline at end of file diff --git a/priv/static/static/css/app.9065da1ae55149d987b6.css.map b/priv/static/static/css/app.9065da1ae55149d987b6.css.map deleted file mode 100644 index 309ccb795..000000000 --- a/priv/static/static/css/app.9065da1ae55149d987b6.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/login_form/login_form.vue?0143","webpack:///./src/components/media_upload/media_upload.vue?b948","webpack:///./src/components/scope_selector/scope_selector.vue?b42e","webpack:///./src/components/checkbox/checkbox.vue?2c56","webpack:///./src/components/emoji_picker/emoji_picker.scss","webpack:///./src/components/emoji_input/emoji_input.vue?b70f","webpack:///./src/components/select/select.vue?0972","webpack:///./src/components/poll/poll_form.vue?4e05","webpack:///./src/components/still-image/still-image.vue?d62b","webpack:///./src/components/flash/flash.vue?8680","webpack:///./src/components/attachment/attachment.scss","webpack:///./src/components/gallery/gallery.vue?28da","webpack:///./src/components/user_avatar/user_avatar.vue?1437","webpack:///./src/components/mention_link/mention_link.scss","webpack:///./src/components/mentions_line/mentions_line.scss","webpack:///./src/components/hashtag_link/hashtag_link.scss","webpack:///./src/components/rich_content/rich_content.scss","webpack:///./src/components/poll/poll.vue?63e7","webpack:///./src/components/status_body/status_body.scss","webpack:///./src/components/link-preview/link-preview.vue?ae49","webpack:///./src/components/status_content/status_content.vue?02f4","webpack:///./src/components/post_status_form/post_status_form.vue?e8f7","webpack:///./src/components/remote_follow/remote_follow.vue?695f","webpack:///./src/components/dialog_modal/dialog_modal.vue?d035","webpack:///./src/components/popover/popover.vue?d601","webpack:///./src/components/moderation_tools/moderation_tools.vue?0d1a","webpack:///./src/components/account_actions/account_actions.vue?059b","webpack:///./src/components/user_card/user_card.scss","webpack:///./src/components/user_panel/user_panel.vue?d3c4","webpack:///./src/components/nav_panel/nav_panel.vue?2f93","webpack:///./src/components/features_panel/features_panel.vue?bb75","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?3ce6","webpack:///./src/components/shout_panel/shout_panel.vue?80b8","webpack:///./src/components/modal/modal.vue?941f","webpack:///./src/components/panel_loading/panel_loading.vue?bd27","webpack:///./src/components/async_component_error/async_component_error.vue?3398","webpack:///./src/components/settings_modal/settings_modal.scss","webpack:///./src/components/media_modal/media_modal.vue?629c","webpack:///./src/components/side_drawer/side_drawer.vue?d1fd","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?53e4","webpack:///./src/components/reply_button/reply_button.vue?b99a","webpack:///./src/components/favorite_button/favorite_button.vue?6a3c","webpack:///./src/components/react_button/react_button.vue?a9f8","webpack:///./src/components/retweet_button/retweet_button.vue?b1bb","webpack:///./src/components/extra_buttons/extra_buttons.vue?bd78","webpack:///./src/components/avatar_list/avatar_list.vue?4e4a","webpack:///./src/components/status_popover/status_popover.vue?0929","webpack:///./src/components/user_list_popover/user_list_popover.vue?787c","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?235c","webpack:///./src/components/status/status.scss","webpack:///./src/components/notification/notification.scss","webpack:///./src/components/notifications/notification_filters.vue?603c","webpack:///./src/components/notifications/notifications.scss","webpack:///./src/components/mobile_nav/mobile_nav.vue?6393","webpack:///./src/components/search_bar/search_bar.vue?12c6","webpack:///./src/components/desktop_nav/desktop_nav.scss","webpack:///./src/components/list/list.vue?9770","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?40b9","webpack:///./src/components/post_status_modal/post_status_modal.vue?1d2d","webpack:///./src/components/global_notice_list/global_notice_list.vue?340a","webpack:///./src/App.scss","webpack:///./src/components/thread_tree/thread_tree.vue?605c","webpack:///./src/components/conversation/conversation.vue?14b0","webpack:///./src/components/timeline_menu/timeline_menu.vue?3e08","webpack:///./src/components/timeline/timeline_quick_settings.vue?700a","webpack:///./src/components/timeline/timeline.scss","webpack:///./src/components/tab_switcher/tab_switcher.scss","webpack:///./src/components/chat_title/chat_title.vue?b7a1","webpack:///./src/components/chat_list_item/chat_list_item.vue?e9b5","webpack:///./src/components/basic_user_card/basic_user_card.vue?c98b","webpack:///./src/components/chat_new/chat_new.vue?547b","webpack:///./src/components/chat_list/chat_list.vue?1734","webpack:///./src/components/chat_message/chat_message.vue?7461","webpack:///./src/components/chat/chat.vue?4d65","webpack:///./src/components/follow_card/follow_card.vue?cae2","webpack:///./src/hocs/with_load_more/with_load_more.scss","webpack:///./src/components/user_profile/user_profile.vue?63ff","webpack:///./src/components/search/search.vue?b7f8","webpack:///./src/components/registration/registration.vue?a474","webpack:///./src/components/password_reset/password_reset.vue?e61a","webpack:///./src/components/follow_request_card/follow_request_card.vue?3deb","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?2ce4","webpack:///./src/components/staff_panel/staff_panel.vue?efac","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?5ff6"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtDA;AACA;AACA;AACA;AACA;AACA,C;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA,C;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjTA;AACA;AACA;AACA,C;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxFA;AACA;AACA,C;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACj5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClBA;AACA;AACA,C;ACFA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C","file":"static/css/app.9065da1ae55149d987b6.css","sourcesContent":[".login-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.6em;\n}\n.login-form .btn {\n min-height: 2em;\n width: 10em;\n}\n.login-form .register {\n -ms-flex: 1 1;\n flex: 1 1;\n}\n.login-form .login-bottom {\n margin-top: 1em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.login-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n}\n.login-form .form-bottom {\n display: -ms-flexbox;\n display: flex;\n padding: 0.5em;\n height: 32px;\n}\n.login-form .form-bottom button {\n width: 10em;\n}\n.login-form .form-bottom p {\n margin: 0.35em;\n padding: 0.35em;\n display: -ms-flexbox;\n display: flex;\n}\n.login-form .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n}",".media-upload {\n cursor: pointer;\n}\n.media-upload .hidden-input-file {\n display: none;\n}",".ScopeSelector .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n}\n.ScopeSelector .scope.selected svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}","@charset \"UTF-8\";\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n}\n.checkbox-indicator {\n position: relative;\n padding-left: 1.2em;\n}\n.checkbox-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: \"\\2713\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 2px;\n border-radius: var(--checkboxRadius, 2px);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: #182230;\n background-color: var(--input, #182230);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n}\n.checkbox.disabled .checkbox-indicator::before,\n.checkbox.disabled .label {\n opacity: 0.5;\n}\n.checkbox.disabled .label {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.checkbox input[type=checkbox] {\n display: none;\n}\n.checkbox input[type=checkbox]:checked + .checkbox-indicator::before {\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n}\n.checkbox input[type=checkbox]:indeterminate + .checkbox-indicator::before {\n content: \"\\2013\";\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n}\n.checkbox > span {\n margin-left: 0.5em;\n}",".emoji-picker {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: absolute;\n right: 0;\n left: 0;\n margin: 0 !important;\n z-index: 100;\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #d8a070;\n color: var(--popoverText, #d8a070);\n --lightText: var(--popoverLightText, $fallback--faint);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.emoji-picker .keep-open,\n.emoji-picker .too-many-emoji {\n padding: 7px;\n line-height: normal;\n}\n.emoji-picker .too-many-emoji {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.emoji-picker .keep-open-label {\n padding: 0 7px;\n display: -ms-flexbox;\n display: flex;\n}\n.emoji-picker .heading {\n display: -ms-flexbox;\n display: flex;\n height: 32px;\n padding: 10px 7px 5px;\n}\n.emoji-picker .content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 0px;\n}\n.emoji-picker .emoji-tabs {\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.emoji-picker .emoji-groups {\n min-height: 200px;\n}\n.emoji-picker .additional-tabs {\n border-left: 1px solid;\n border-left-color: #666;\n border-left-color: var(--icon, #666);\n padding-left: 7px;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.emoji-picker .additional-tabs,\n.emoji-picker .emoji-tabs {\n display: block;\n min-width: 0;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.emoji-picker .additional-tabs-item,\n.emoji-picker .emoji-tabs-item {\n padding: 0 7px;\n cursor: pointer;\n font-size: 1.85em;\n}\n.emoji-picker .additional-tabs-item.disabled,\n.emoji-picker .emoji-tabs-item.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n.emoji-picker .additional-tabs-item.active,\n.emoji-picker .emoji-tabs-item.active {\n border-bottom: 4px solid;\n}\n.emoji-picker .additional-tabs-item.active svg,\n.emoji-picker .emoji-tabs-item.active svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.emoji-picker .sticker-picker {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.emoji-picker .stickers-content,\n.emoji-picker .emoji-content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 0;\n}\n.emoji-picker .stickers-content.hidden,\n.emoji-picker .emoji-content.hidden {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n}\n.emoji-picker .emoji-search {\n padding: 5px;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.emoji-picker .emoji-search input {\n width: 100%;\n}\n.emoji-picker .emoji-groups {\n -ms-flex: 1 1 1px;\n flex: 1 1 1px;\n position: relative;\n overflow: auto;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n transition: -webkit-mask-size 150ms;\n transition: mask-size 150ms;\n transition: mask-size 150ms, -webkit-mask-size 150ms;\n -webkit-mask-size: 100% 20px, 100% 20px, auto;\n mask-size: 100% 20px, 100% 20px, auto;\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.emoji-picker .emoji-groups.scrolled-top {\n -webkit-mask-size: 100% 20px, 100% 0, auto;\n mask-size: 100% 20px, 100% 0, auto;\n}\n.emoji-picker .emoji-groups.scrolled-bottom {\n -webkit-mask-size: 100% 0, 100% 20px, auto;\n mask-size: 100% 0, 100% 20px, auto;\n}\n.emoji-picker .emoji-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 5px;\n -ms-flex-pack: left;\n justify-content: left;\n}\n.emoji-picker .emoji-group-title {\n font-size: 0.85em;\n width: 100%;\n margin: 0;\n}\n.emoji-picker .emoji-group-title.disabled {\n display: none;\n}\n.emoji-picker .emoji-item {\n width: 32px;\n height: 32px;\n box-sizing: border-box;\n display: -ms-flexbox;\n display: flex;\n font-size: 32px;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 4px;\n cursor: pointer;\n}\n.emoji-picker .emoji-item img {\n -o-object-fit: contain;\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n}",".emoji-input {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n}\n.emoji-input.with-picker input {\n padding-right: 30px;\n}\n.emoji-input .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n}\n.emoji-input .emoji-picker-icon:hover i {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.emoji-input .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n}\n.emoji-input .emoji-picker-panel.hide {\n display: none;\n}\n.emoji-input .autocomplete-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n}\n.emoji-input .autocomplete-panel.hide {\n display: none;\n}\n.emoji-input .autocomplete-panel-body {\n margin: 0 0.5em 0 0.5em;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);\n box-shadow: var(--popupShadow);\n min-width: 75%;\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #d8a070;\n color: var(--popoverText, #d8a070);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.emoji-input .autocomplete-item {\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n height: 32px;\n}\n.emoji-input .autocomplete-item .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n}\n.emoji-input .autocomplete-item .image img {\n width: 32px;\n height: 32px;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.emoji-input .autocomplete-item .label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n}\n.emoji-input .autocomplete-item .label .displayText {\n line-height: 1.5;\n}\n.emoji-input .autocomplete-item .label .detailText {\n font-size: 9px;\n line-height: 9px;\n}\n.emoji-input .autocomplete-item.highlighted {\n background-color: #182230;\n background-color: var(--selectedMenuPopover, #182230);\n color: var(--selectedMenuPopoverText, #b9b9ba);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}\n.emoji-input input, .emoji-input textarea {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}","/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n}\nlabel.Select select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n color: #b9b9ba;\n color: var(--inputText, --text, #b9b9ba);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n}\nlabel.Select .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n}",".poll-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n}\n.poll-form .add-option {\n -ms-flex-item-align: start;\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n}\n.poll-form .poll-option {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: baseline;\n align-items: baseline;\n -ms-flex-pack: justify;\n justify-content: space-between;\n margin-bottom: 0.25em;\n}\n.poll-form .input-container {\n width: 100%;\n}\n.poll-form .input-container input {\n padding-right: 2.5em;\n width: 100%;\n}\n.poll-form .delete-option {\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n}\n.poll-form .poll-type-expiry {\n margin-top: 0.5em;\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n}\n.poll-form .poll-type {\n margin-right: 0.75em;\n -ms-flex: 1 1 60%;\n flex: 1 1 60%;\n}\n.poll-form .poll-type .poll-type-select {\n padding-right: 0.75em;\n}\n.poll-form .poll-expiry {\n display: -ms-flexbox;\n display: flex;\n}\n.poll-form .poll-expiry .expiry-amount {\n width: 3em;\n text-align: right;\n}",".still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.still-image canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n}\n.still-image img {\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.still-image.animated::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n}\n.still-image.animated:hover canvas {\n display: none;\n}\n.still-image.animated:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n}\n.still-image.animated img {\n visibility: var(--_still-image-img-visibility, hidden);\n}\n.still-image.animated:hover img {\n visibility: visible;\n}",".Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n}\n.Flash .player {\n height: 100%;\n width: 100%;\n}\n.Flash .placeholder {\n height: 100%;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n}\n.Flash .hider {\n top: 0;\n}\n.Flash .label {\n text-align: center;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n}\n.Flash .hidden {\n display: none;\n visibility: \"hidden\";\n}",".Attachment {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n -ms-flex-item-align: start;\n align-self: flex-start;\n line-height: 0;\n height: 100%;\n border-style: solid;\n border-width: 1px;\n border-radius: 10px;\n border-radius: var(--attachmentRadius, 10px);\n border-color: #222;\n border-color: var(--border, #222);\n}\n.Attachment .attachment-wrapper {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n.Attachment .description-container {\n -ms-flex: 0 1 0px;\n flex: 0 1 0;\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.5em;\n z-index: 1;\n}\n.Attachment .description-container p {\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n line-height: 1.5;\n padding: 0.5em;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.Attachment .description-container.-static {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding-top: 0;\n background: var(--popover);\n box-shadow: var(--popupShadow);\n}\n.Attachment .description-field {\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.Attachment .placeholder-container, .Attachment .image-container, .Attachment .audio-container, .Attachment .video-container, .Attachment .flash-container, .Attachment .oembed-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n.Attachment .image-container .image {\n width: 100%;\n height: 100%;\n}\n.Attachment .flash-container .flash, .Attachment .flash-container video, .Attachment .video-container .flash, .Attachment .video-container video {\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.Attachment .audio-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.Attachment .audio-container audio {\n width: 100%;\n height: 100%;\n}\n.Attachment .placeholder-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-top: 0.5em;\n}\n.Attachment .play-icon {\n position: absolute;\n font-size: 64px;\n top: calc(50% - 32px);\n left: calc(50% - 32px);\n color: rgba(255, 255, 255, 0.75);\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.4);\n}\n.Attachment .play-icon::before {\n margin: 0;\n}\n.Attachment .attachment-buttons {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n right: 0;\n top: 0;\n margin-top: 0.5em;\n margin-right: 0.5em;\n z-index: 1;\n}\n.Attachment .attachment-buttons .attachment-button {\n padding: 0;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n text-align: center;\n width: 2em;\n height: 2em;\n margin-left: 0.5em;\n font-size: 1.25em;\n background: rgba(230, 230, 230, 0.7);\n}\n.Attachment .attachment-buttons .attachment-button .svg-inline--fa {\n color: rgba(0, 0, 0, 0.6);\n}\n.Attachment .attachment-buttons .attachment-button:hover .svg-inline--fa {\n color: rgba(0, 0, 0, 0.9);\n}\n.Attachment .oembed-container {\n line-height: 1.2em;\n -ms-flex: 1 0 100%;\n flex: 1 0 100%;\n width: 100%;\n margin-right: 15px;\n display: -ms-flexbox;\n display: flex;\n}\n.Attachment .oembed-container img {\n width: 100%;\n}\n.Attachment .oembed-container .image {\n -ms-flex: 1;\n flex: 1;\n}\n.Attachment .oembed-container .image img {\n border: 0px;\n border-radius: 5px;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.Attachment .oembed-container .text {\n -ms-flex: 2;\n flex: 2;\n margin: 8px;\n word-break: break-all;\n}\n.Attachment .oembed-container .text h1 {\n font-size: 1rem;\n margin: 0px;\n}\n.Attachment.-size-small .play-icon {\n zoom: 0.5;\n opacity: 0.7;\n}\n.Attachment.-size-small .attachment-buttons {\n zoom: 0.7;\n opacity: 0.5;\n}\n.Attachment.-editable {\n padding: 0.5em;\n}\n.Attachment.-editable .description-container, .Attachment.-editable .attachment-buttons {\n margin: 0;\n}\n.Attachment.-placeholder {\n display: inline-block;\n color: #d8a070;\n color: var(--postLink, #d8a070);\n overflow: hidden;\n white-space: nowrap;\n height: auto;\n line-height: 1.5;\n}\n.Attachment.-placeholder:not(.-editable) {\n border: none;\n}\n.Attachment.-placeholder.-editable {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n.Attachment.-placeholder.-editable .description-container, .Attachment.-placeholder.-editable .attachment-buttons {\n margin: 0;\n padding: 0;\n position: relative;\n}\n.Attachment.-placeholder.-editable .description-container {\n -ms-flex: 1;\n flex: 1;\n padding-left: 0.5em;\n}\n.Attachment.-placeholder.-editable .attachment-buttons {\n -ms-flex-order: 99;\n order: 99;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.Attachment.-placeholder a {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.Attachment.-placeholder svg {\n color: inherit;\n}\n.Attachment.-loading {\n cursor: progress;\n}\n.Attachment.-contain-fit img,\n.Attachment.-contain-fit canvas {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.Attachment.-cover-fit img,\n.Attachment.-cover-fit canvas {\n -o-object-fit: cover;\n object-fit: cover;\n}",".Gallery .gallery-rows {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Gallery .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.Gallery .gallery-row:not(:first-child) {\n margin-top: 0.5em;\n}\n.Gallery.-long .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n -webkit-mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.Gallery .many-attachments-text {\n text-align: center;\n line-height: 2;\n}\n.Gallery .many-attachments-buttons {\n display: -ms-flexbox;\n display: flex;\n}\n.Gallery .many-attachments-button {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 2;\n}\n.Gallery .many-attachments-button button {\n padding: 0 2em;\n}\n.Gallery .gallery-row.-grid, .Gallery .gallery-row.-minimal {\n height: auto;\n}\n.Gallery .gallery-row.-grid .gallery-row-inner, .Gallery .gallery-row.-minimal .gallery-row-inner {\n position: relative;\n}\n.Gallery .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-line-pack: stretch;\n align-content: stretch;\n}\n.Gallery .gallery-row-inner.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: -ms-grid;\n display: grid;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.5em;\n -ms-grid-columns: (minmax(15em, 1fr))[auto-fill];\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n}\n.Gallery .gallery-row-inner.-grid .gallery-item {\n margin: 0;\n height: 200px;\n}\n.Gallery .gallery-item {\n margin: 0 0.5em 0 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n min-width: 2em;\n}\n.Gallery .gallery-item:last-child {\n margin: 0;\n}",".Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n}\n.Avatar.-compact {\n width: 32px;\n height: 32px;\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.Avatar .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: 4px;\n border-radius: var(--avatarRadius, 4px);\n}\n.Avatar .avatar.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n}\n.Avatar .avatar.-animated::before {\n display: none;\n}\n.Avatar .avatar.-compact {\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.Avatar .avatar.-placeholder {\n background-color: #182230;\n background-color: var(--fg, #182230);\n}\n.Avatar img {\n width: 100%;\n height: 100%;\n}\n.Avatar .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n border-radius: var(--tooltipRadius);\n}",".MentionLink {\n position: relative;\n white-space: normal;\n display: inline;\n color: var(--link);\n word-break: normal;\n}\n.MentionLink .new, .MentionLink .original {\n display: inline;\n border-radius: 2px;\n}\n.MentionLink .mention-avatar {\n border-radius: var(--avatarAltRadius, 10px);\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin-right: 0.2em;\n}\n.MentionLink .full {\n position: absolute;\n display: inline-block;\n pointer-events: none;\n opacity: 0;\n top: 100%;\n left: 0;\n height: 100%;\n word-wrap: normal;\n white-space: nowrap;\n transition: opacity 0.2s ease;\n z-index: 1;\n margin-top: 0.25em;\n padding: 0.5em;\n -webkit-user-select: all;\n -moz-user-select: all;\n -ms-user-select: all;\n user-select: all;\n}\n.MentionLink .short.-with-tooltip, .MentionLink .you {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.MentionLink .short, .MentionLink .full {\n white-space: nowrap;\n}\n.MentionLink .shortName {\n white-space: normal;\n}\n.MentionLink .new .at {\n color: var(--link);\n opacity: 0.8;\n display: inline-block;\n line-height: 1;\n padding: 0 0.1em;\n vertical-align: -25%;\n margin: 0;\n}\n.MentionLink .new.-striped .shortName, .MentionLink .new.-striped .full {\n background-image: repeating-linear-gradient(135deg, var(--____highlight-tintColor), var(--____highlight-tintColor) 5px, var(--____highlight-tintColor2) 5px, var(--____highlight-tintColor2) 10px);\n}\n.MentionLink .new.-solid .shortName, .MentionLink .new.-solid .full {\n background-image: linear-gradient(var(--____highlight-tintColor2), var(--____highlight-tintColor2));\n}\n.MentionLink .new.-side .shortName, .MentionLink .new.-side .userNameFull {\n box-shadow: 0 -5px 3px -4px inset var(--____highlight-solidColor);\n}\n.MentionLink:hover .new .full {\n opacity: 1;\n pointer-events: initial;\n}\n.MentionLink .serverName.-faded {\n color: var(--faintLink, #d8a070);\n}\n.MentionLink .full .-faded {\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}",".MentionsLine {\n word-break: break-all;\n}\n.MentionsLine .mention-link:not(:first-child)::before {\n content: \" \";\n}\n.MentionsLine .showMoreLess {\n margin-left: 0.5em;\n white-space: normal;\n color: var(--link);\n}",".HashtagLink {\n position: relative;\n white-space: normal;\n display: inline-block;\n color: var(--link);\n}",".RichContent blockquote {\n margin: 0.2em 0 0.2em 2em;\n font-style: italic;\n}\n.RichContent pre {\n overflow: auto;\n}\n.RichContent code,\n.RichContent samp,\n.RichContent kbd,\n.RichContent var,\n.RichContent pre {\n font-family: var(--postCodeFont, monospace);\n}\n.RichContent p {\n margin: 0 0 1em 0;\n}\n.RichContent p:last-child {\n margin: 0 0 0 0;\n}\n.RichContent h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n}\n.RichContent h2 {\n font-size: 1.1em;\n margin: 1em 0;\n}\n.RichContent h3 {\n font-size: 1em;\n margin: 1.2em 0;\n}\n.RichContent h4 {\n margin: 1.1em 0;\n}\n.RichContent .img {\n display: inline-block;\n}\n.RichContent .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n}\n.RichContent .img,\n.RichContent video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n -o-object-fit: contain;\n object-fit: contain;\n}",".poll .votes {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0 0 0.5em;\n}\n.poll .poll-option {\n margin: 0.75em 0.5em;\n}\n.poll .option-result {\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n position: relative;\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.poll .option-result-label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n}\n.poll .result-percentage {\n width: 3.5em;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.poll .result-fill {\n height: 100%;\n position: absolute;\n color: #b9b9ba;\n color: var(--pollText, #b9b9ba);\n background-color: #151e2a;\n background-color: var(--poll, #151e2a);\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n top: 0;\n left: 0;\n transition: width 0.5s;\n}\n.poll .option-vote {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.poll input {\n width: 3.5em;\n}\n.poll .footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.poll.loading * {\n cursor: progress;\n}\n.poll .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n}",".StatusBody {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.StatusBody .emoji {\n --_still_image-label-scale: 0.5;\n width: 50px;\n height: 50px;\n}\n.StatusBody .attachments {\n margin-top: 0.5em;\n}\n.StatusBody .text, .StatusBody .summary {\n font-family: var(--postFont, sans-serif);\n white-space: pre-wrap;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n line-height: var(--post-line-height);\n}\n.StatusBody .summary {\n display: block;\n font-style: italic;\n padding-bottom: 0.5em;\n}\n.StatusBody .text.-single-line {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n height: 1.4em;\n}\n.StatusBody .summary-wrapper {\n margin-bottom: 0.5em;\n border-style: solid;\n border-width: 0 0 1px 0;\n border-color: var(--border, #222);\n -ms-flex-positive: 0;\n flex-grow: 0;\n}\n.StatusBody .summary-wrapper.-tall {\n position: relative;\n}\n.StatusBody .summary-wrapper.-tall .summary {\n max-height: 2em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.StatusBody .text-wrapper {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.StatusBody .text-wrapper.-tall-status {\n position: relative;\n height: 220px;\n overflow-x: hidden;\n overflow-y: hidden;\n z-index: 1;\n}\n.StatusBody .text-wrapper.-tall-status .media-body {\n min-height: 0;\n -webkit-mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.StatusBody .tall-status-hider, .StatusBody .tall-subject-hider, .StatusBody .status-unhider, .StatusBody .cw-status-hider {\n display: inline-block;\n word-break: break-all;\n width: 100%;\n text-align: center;\n}\n.StatusBody .tall-status-hider {\n position: absolute;\n height: 70px;\n margin-top: 150px;\n line-height: 110px;\n z-index: 2;\n}\n.StatusBody .tall-subject-hider {\n padding-bottom: 0.5em;\n}\n.StatusBody .status-unhider, .StatusBody .cw-status-hider {\n word-break: break-all;\n}\n.StatusBody .status-unhider svg, .StatusBody .cw-status-hider svg {\n color: inherit;\n}\n.StatusBody .greentext {\n color: #0fa00f;\n color: var(--postGreentext, #0fa00f);\n}\n.StatusBody .cyantext {\n color: var(--postCyantext, #0095ff);\n}\n.StatusBody.-compact {\n -ms-flex-align: top;\n align-items: top;\n -ms-flex-direction: row;\n flex-direction: row;\n --emoji-size: 16px;\n}\n.StatusBody.-compact .body, .StatusBody.-compact .attachments {\n max-height: 3.25em;\n}\n.StatusBody.-compact .body {\n overflow: hidden;\n white-space: normal;\n min-width: 5em;\n -ms-flex: 5 1 auto;\n flex: 5 1 auto;\n -webkit-mask-size: auto 3.5em, auto auto;\n mask-size: auto 3.5em, auto auto;\n -webkit-mask-position: 0 0, 0 0;\n mask-position: 0 0, 0 0;\n -webkit-mask-repeat: repeat-x, repeat;\n mask-repeat: repeat-x, repeat;\n -webkit-mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.StatusBody.-compact .attachments {\n margin-top: 0;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n min-width: 5em;\n height: 100%;\n margin-left: 0.5em;\n}\n.StatusBody.-compact .summary-wrapper {\n line-height: inherit;\n margin: 0;\n border: none;\n display: inline-block;\n}\n.StatusBody.-compact .summary-wrapper .summary::after {\n content: \": \";\n}\n.StatusBody.-compact .text-wrapper {\n display: inline-block;\n}",".link-preview-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n border-style: solid;\n border-width: 1px;\n border-radius: 10px;\n border-radius: var(--attachmentRadius, 10px);\n border-color: #222;\n border-color: var(--border, #222);\n}\n.link-preview-card .card-image {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n}\n.link-preview-card .card-image img {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n border-radius: 10px;\n border-radius: var(--attachmentRadius, 10px);\n}\n.link-preview-card .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.link-preview-card .card-host {\n font-size: 0.85em;\n}\n.link-preview-card .card-description {\n margin: 0.5em 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n max-height: calc(1.2em * 3 - 1px);\n}\n.link-preview-card .nsfw-alert {\n margin: 2em 0;\n}",".StatusContent {\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.StatusContent img.emoji, .StatusContent video.emoji {\n width: 50px;\n height: 50px;\n}",".post-status-form {\n position: relative;\n}\n.post-status-form .attachments {\n margin-bottom: 0.5em;\n}\n.post-status-form .form-bottom {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n}\n.post-status-form .form-bottom button {\n width: 10em;\n}\n.post-status-form .form-bottom p {\n margin: 0.35em;\n padding: 0.35em;\n display: -ms-flexbox;\n display: flex;\n}\n.post-status-form .form-bottom-left {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n}\n.post-status-form .preview-heading {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0.5em;\n}\n.post-status-form .preview-toggle {\n -ms-flex: 1;\n flex: 1;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.post-status-form .preview-toggle:hover {\n text-decoration: underline;\n}\n.post-status-form .preview-toggle svg, .post-status-form .preview-toggle i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n}\n.post-status-form .preview-container {\n margin-bottom: 1em;\n}\n.post-status-form .preview-error {\n font-style: italic;\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.post-status-form .preview-status {\n border: 1px solid #222;\n border: 1px solid var(--border, #222);\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n padding: 0.5em;\n margin: 0;\n}\n.post-status-form .text-format .only-format {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.post-status-form .visibility-tray {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding-top: 5px;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n.post-status-form .media-upload-icon, .post-status-form .poll-icon, .post-status-form .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n -ms-flex: 1;\n flex: 1;\n padding: 0 0.1em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.post-status-form .media-upload-icon.selected svg, .post-status-form .media-upload-icon.selected i, .post-status-form .media-upload-icon.selected label, .post-status-form .media-upload-icon:hover svg, .post-status-form .media-upload-icon:hover i, .post-status-form .media-upload-icon:hover label, .post-status-form .poll-icon.selected svg, .post-status-form .poll-icon.selected i, .post-status-form .poll-icon.selected label, .post-status-form .poll-icon:hover svg, .post-status-form .poll-icon:hover i, .post-status-form .poll-icon:hover label, .post-status-form .emoji-icon.selected svg, .post-status-form .emoji-icon.selected i, .post-status-form .emoji-icon.selected label, .post-status-form .emoji-icon:hover svg, .post-status-form .emoji-icon:hover i, .post-status-form .emoji-icon:hover label {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.post-status-form .media-upload-icon.disabled svg, .post-status-form .media-upload-icon.disabled i, .post-status-form .poll-icon.disabled svg, .post-status-form .poll-icon.disabled i, .post-status-form .emoji-icon.disabled svg, .post-status-form .emoji-icon.disabled i {\n cursor: not-allowed;\n color: #666;\n color: var(--btnDisabledText, #666);\n}\n.post-status-form .media-upload-icon.disabled svg:hover, .post-status-form .media-upload-icon.disabled i:hover, .post-status-form .poll-icon.disabled svg:hover, .post-status-form .poll-icon.disabled i:hover, .post-status-form .emoji-icon.disabled svg:hover, .post-status-form .emoji-icon.disabled i:hover {\n color: #666;\n color: var(--btnDisabledText, #666);\n}\n.post-status-form .media-upload-icon {\n -ms-flex-order: 1;\n order: 1;\n -ms-flex-pack: left;\n justify-content: left;\n}\n.post-status-form .emoji-icon {\n -ms-flex-order: 2;\n order: 2;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.post-status-form .poll-icon {\n -ms-flex-order: 3;\n order: 3;\n -ms-flex-pack: right;\n justify-content: right;\n}\n.post-status-form .error {\n text-align: center;\n}\n.post-status-form .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n}\n.post-status-form .media-upload-wrapper img, .post-status-form .media-upload-wrapper video {\n -o-object-fit: contain;\n object-fit: contain;\n max-height: 10em;\n}\n.post-status-form .media-upload-wrapper .video {\n max-height: 10em;\n}\n.post-status-form .media-upload-wrapper input {\n -ms-flex: 1;\n flex: 1;\n width: 100%;\n}\n.post-status-form .status-input-wrapper {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n width: 100%;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.post-status-form .btn[disabled] {\n cursor: not-allowed;\n}\n.post-status-form form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n}\n.post-status-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n}\n.post-status-form .form-post-body {\n box-sizing: content-box;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n}\n.post-status-form .form-post-body.scrollable-form {\n overflow-y: auto;\n}\n.post-status-form .main-input {\n position: relative;\n}\n.post-status-form .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n}\n.post-status-form .character-counter.error {\n color: #ff0000;\n color: var(--cRed, #ff0000);\n}\n.post-status-form .btn[disabled] {\n cursor: not-allowed;\n}\n@keyframes fade-in {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 0.6;\n}\n}\n@keyframes fade-out {\nfrom {\n opacity: 0.6;\n}\nto {\n opacity: 0;\n}\n}\n.post-status-form .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n opacity: 0.6;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n border: 2px dashed #b9b9ba;\n border: 2px dashed var(--text, #b9b9ba);\n}",".remote-follow {\n max-width: 220px;\n}\n.remote-follow .remote-button {\n width: 100%;\n min-height: 2em;\n}",".dark-overlay::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgba(27, 31, 35, 0.5);\n z-index: 99;\n}\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 999;\n cursor: default;\n display: block;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.dialog-modal.panel .dialog-modal-heading .title {\n text-align: center;\n}\n.dialog-modal.panel .dialog-modal-content {\n margin: 0;\n padding: 1rem 1rem;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n white-space: normal;\n}\n.dialog-modal.panel .dialog-modal-footer {\n margin: 0;\n padding: 0.5em 0.5em;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n border-top: 1px solid #222;\n border-top: 1px solid var(--border, #222);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.dialog-modal.panel .dialog-modal-footer button {\n width: auto;\n margin-left: 0.5rem;\n}","@charset \"UTF-8\";\n.popover-trigger-button {\n display: inline-block;\n}\n.popover {\n z-index: 500;\n position: absolute;\n min-width: 0;\n}\n.popover-default {\n transition: opacity 0.3s;\n border-radius: 4px;\n border-radius: var(--btnRadius, 4px);\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #b9b9ba;\n color: var(--popoverText, #b9b9ba);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.popover-default:after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n}\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: 200;\n white-space: nowrap;\n}\n.dropdown-menu .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #222;\n border-top: 1px solid var(--border, #222);\n}\n.dropdown-menu .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0px;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n --btnText: var(--popoverText, $fallback--text);\n}\n.dropdown-menu .dropdown-item-icon svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, #666);\n}\n.dropdown-menu .dropdown-item:active, .dropdown-menu .dropdown-item:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenuPopover, #151e2a);\n box-shadow: none;\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}\n.dropdown-menu .dropdown-item:active svg, .dropdown-menu .dropdown-item:hover svg {\n color: var(--selectedMenuPopoverIcon, #666);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}\n.dropdown-menu .dropdown-item .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0px;\n background-color: #182230;\n background-color: var(--input, #182230);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n}\n.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"\\2713\";\n}\n.dropdown-menu .dropdown-item .menu-checkbox.-radio {\n border-radius: 9999px;\n}\n.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"\\2022\";\n}\n.dropdown-menu .button-default.dropdown-item,\n.dropdown-menu .button-default.dropdown-item i[class*=icon-] {\n color: #b9b9ba;\n color: var(--btnText, #b9b9ba);\n}\n.dropdown-menu .button-default.dropdown-item:active {\n background-color: #151e2a;\n background-color: var(--selectedMenuPopover, #151e2a);\n color: #d8a070;\n color: var(--selectedMenuPopoverText, #d8a070);\n}\n.dropdown-menu .button-default.dropdown-item:disabled {\n color: #b9b9ba;\n color: var(--btnDisabledText, #b9b9ba);\n}\n.dropdown-menu .button-default.dropdown-item.toggled {\n color: #b9b9ba;\n color: var(--btnToggledText, #b9b9ba);\n}",".moderation-tools-popover {\n height: 100%;\n}\n.moderation-tools-popover .trigger {\n display: -ms-flexbox !important;\n display: flex !important;\n height: 100%;\n}\n.moderation-tools-button svg, .moderation-tools-button i {\n font-size: 0.8em;\n}",".AccountActions .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n}\n.AccountActions .ellipsis-button:not(:hover) .icon {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}",".user-card {\n position: relative;\n z-index: 1;\n}\n.user-card:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.user-card .panel-heading {\n padding: 0.5em 0;\n text-align: center;\n box-shadow: none;\n background: transparent;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: stretch;\n align-items: stretch;\n position: relative;\n}\n.user-card .panel-body {\n word-wrap: break-word;\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n position: relative;\n}\n.user-card .background-image {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n -webkit-mask: linear-gradient(to top, white, transparent) bottom no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white, transparent) bottom no-repeat, linear-gradient(to top, white, white);\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n background-size: cover;\n -webkit-mask-size: 100% 60%;\n mask-size: 100% 60%;\n border-top-left-radius: calc(var(--panelRadius) - 1px);\n border-top-right-radius: calc(var(--panelRadius) - 1px);\n background-color: var(--profileBg);\n z-index: -2;\n}\n.user-card .background-image.hide-bio {\n -webkit-mask-size: 100% 40px;\n mask-size: 100% 40px;\n}\n.user-card-bio {\n text-align: center;\n display: block;\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n}\n.user-card-bio a {\n color: #d8a070;\n color: var(--postLink, #d8a070);\n}\n.user-card-bio img {\n -o-object-fit: contain;\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n}\n.user-card-rounded-t {\n border-top-left-radius: 10px;\n border-top-left-radius: var(--panelRadius, 10px);\n border-top-right-radius: 10px;\n border-top-right-radius: var(--panelRadius, 10px);\n}\n.user-card-rounded {\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n}\n.user-card-bordered {\n border-width: 1px;\n border-style: solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.user-info {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n padding: 0 26px;\n}\n.user-info .container {\n min-width: 0;\n padding: 16px 0 6px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n max-height: 56px;\n}\n.user-info .container > * {\n min-width: 0;\n}\n.user-info .container .Avatar {\n --_avatarShadowBox: var(--avatarShadow);\n --_avatarShadowFilter: var(--avatarShadowFilter);\n --_avatarShadowInset: var(--avatarShadowInset);\n -ms-flex: 1 0 100%;\n flex: 1 0 100%;\n width: 56px;\n height: 56px;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.user-info-avatar-link {\n position: relative;\n cursor: pointer;\n}\n.user-info-avatar-link-overlay {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.3);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n border-radius: 4px;\n border-radius: var(--avatarRadius, 4px);\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.user-info-avatar-link-overlay svg {\n color: #FFF;\n}\n.user-info-avatar-link:hover .user-info-avatar-link-overlay {\n opacity: 1;\n}\n.user-info .external-link-button, .user-info .edit-profile-button {\n cursor: pointer;\n width: 2.5em;\n text-align: center;\n margin: -0.5em 0;\n padding: 0.5em 0;\n}\n.user-info .external-link-button:not(:hover) .icon, .user-info .edit-profile-button:not(:hover) .icon {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.user-info .user-summary {\n display: block;\n margin-left: 0.6em;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n z-index: 1;\n line-height: 2em;\n --emoji-size: 1.7em;\n}\n.user-info .user-summary .top-line,\n.user-info .user-summary .bottom-line {\n display: -ms-flexbox;\n display: flex;\n}\n.user-info .user-name {\n text-overflow: ellipsis;\n overflow: hidden;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n margin-right: 1em;\n font-size: 1.1em;\n}\n.user-info .bottom-line {\n font-weight: light;\n font-size: 1.1em;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n.user-info .bottom-line .lock-icon {\n margin-left: 0.5em;\n}\n.user-info .bottom-line .user-screen-name {\n min-width: 1px;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.user-info .bottom-line .dailyAvg {\n min-width: 1px;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n margin-left: 1em;\n font-size: 0.7em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.user-info .bottom-line .user-role {\n -ms-flex: none;\n flex: none;\n color: #b9b9ba;\n color: var(--alertNeutralText, #b9b9ba);\n background-color: #182230;\n background-color: var(--alertNeutral, #182230);\n}\n.user-info .user-meta {\n margin-bottom: 0.15em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: baseline;\n align-items: baseline;\n line-height: 22px;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.user-info .user-meta .following {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n margin: 0;\n margin-bottom: 0.25em;\n text-align: left;\n}\n.user-info .user-meta .highlighter {\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -0.5em;\n -ms-flex-item-align: start;\n align-self: start;\n}\n.user-info .user-meta .highlighter .userHighlightCl {\n padding: 2px 10px;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.user-info .user-meta .highlighter .userHighlightSel {\n padding-top: 0;\n padding-bottom: 0;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.user-info .user-meta .highlighter .userHighlightText {\n width: 70px;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.user-info .user-meta .highlighter .userHighlightCl,\n.user-info .user-meta .highlighter .userHighlightText,\n.user-info .user-meta .highlighter .userHighlightSel {\n vertical-align: top;\n margin-right: 0.5em;\n margin-bottom: 0.25em;\n}\n.user-info .user-interactions {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -0.75em;\n}\n.user-info .user-interactions > * {\n margin: 0 0.75em 0.6em 0;\n white-space: nowrap;\n min-width: 95px;\n}\n.user-info .user-interactions button {\n margin: 0;\n}\n.sidebar .edit-profile-button {\n display: none;\n}\n.user-counts {\n display: -ms-flexbox;\n display: flex;\n line-height: 16px;\n padding: 0.5em 1.5em 0em 1.5em;\n text-align: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.user-count {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n padding: 0.5em 0 0.5em 0;\n margin: 0 0.5em;\n}\n.user-count h5 {\n font-size: 1em;\n font-weight: bolder;\n margin: 0 0 0.25em;\n}\n.user-count a {\n text-decoration: none;\n}",".user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}",".NavPanel .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n}\n.NavPanel ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.NavPanel li {\n position: relative;\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n padding: 0;\n}\n.NavPanel li:first-child .menu-item {\n border-top-right-radius: 10px;\n border-top-right-radius: var(--panelRadius, 10px);\n border-top-left-radius: 10px;\n border-top-left-radius: var(--panelRadius, 10px);\n}\n.NavPanel li:last-child .menu-item {\n border-bottom-right-radius: 10px;\n border-bottom-right-radius: var(--panelRadius, 10px);\n border-bottom-left-radius: 10px;\n border-bottom-left-radius: var(--panelRadius, 10px);\n}\n.NavPanel li:last-child {\n border: none;\n}\n.NavPanel .menu-item {\n display: block;\n box-sizing: border-box;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: #d8a070;\n color: var(--link, #d8a070);\n}\n.NavPanel .menu-item:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #d8a070;\n color: var(--selectedMenuText, #d8a070);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.NavPanel .menu-item.router-link-active {\n font-weight: bolder;\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #b9b9ba;\n color: var(--selectedMenuText, #b9b9ba);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.NavPanel .menu-item.router-link-active:hover {\n text-decoration: underline;\n}\n.NavPanel .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n}\n.NavPanel .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n border-top: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.NavPanel .timelines {\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.NavPanel .fa-scale-110 {\n margin-right: 0.8em;\n}\n.NavPanel .badge {\n position: absolute;\n right: 0.6rem;\n top: 1.25em;\n}",".features-panel li {\n line-height: 24px;\n}",".who-to-follow * {\n vertical-align: middle;\n}\n.who-to-follow img {\n width: 32px;\n height: 32px;\n}\n.who-to-follow {\n padding: 0em 1em;\n margin: 0px;\n}\n.who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px;\n margin: 1em 0em;\n}\n.who-to-follow-more {\n padding: 0px;\n margin: 1em 0em;\n text-align: center;\n}",".floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: 1000;\n max-width: 25em;\n}\n.floating-shout.-left {\n left: 0.5em;\n}\n.floating-shout:not(.-left) {\n right: 0.5em;\n}\n.shout-panel .shout-heading {\n cursor: pointer;\n}\n.shout-panel .shout-heading .icon {\n color: #b9b9ba;\n color: var(--panelText, #b9b9ba);\n margin-right: 0.5em;\n}\n.shout-panel .shout-heading .title {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n}\n.shout-panel .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n}\n.shout-panel .shout-window-container {\n height: 100%;\n}\n.shout-panel .shout-message {\n display: -ms-flexbox;\n display: flex;\n padding: 0.2em 0.5em;\n}\n.shout-panel .shout-avatar img {\n height: 24px;\n width: 24px;\n border-radius: 4px;\n border-radius: var(--avatarRadius, 4px);\n margin-right: 0.5em;\n margin-top: 0.25em;\n}\n.shout-panel .shout-input {\n display: -ms-flexbox;\n display: flex;\n}\n.shout-panel .shout-input textarea {\n -ms-flex: 1;\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n}\n.shout-panel .shout-panel .title {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}",".modal-view {\n z-index: 2000;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n}\n.modal-view > * {\n pointer-events: initial;\n}\n.modal-view.modal-background {\n pointer-events: initial;\n background-color: rgba(0, 0, 0, 0.5);\n}\n.modal-view.open {\n opacity: 1;\n}\n@keyframes modal-background-fadein {\nfrom {\n background-color: rgba(0, 0, 0, 0);\n}\nto {\n background-color: rgba(0, 0, 0, 0.5);\n}\n}",".panel-loading {\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n font-size: 2em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.panel-loading .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}",".async-component-error {\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.async-component-error .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n}",".settings-modal {\n overflow: hidden;\n}\n.settings-modal .setting-list,\n.settings-modal .option-list {\n list-style-type: none;\n padding-left: 2em;\n}\n.settings-modal .setting-list li,\n.settings-modal .option-list li {\n margin-bottom: 0.5em;\n}\n.settings-modal .setting-list .suboptions,\n.settings-modal .option-list .suboptions {\n margin-top: 0.3em;\n}\n.settings-modal.peek .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n}\n@media all and (max-width: 800px) {\n.settings-modal.peek .settings-modal-panel {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n}\n}\n.settings-modal .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n}\n@media all and (max-width: 800px) {\n.settings-modal .settings-modal-panel {\n max-width: 100vw;\n height: 100%;\n}\n}\n.settings-modal .settings-modal-panel > .panel-body {\n height: 100%;\n overflow-y: hidden;\n}\n.settings-modal .settings-modal-panel > .panel-body .btn {\n min-height: 2em;\n min-width: 10em;\n padding: 0 2em;\n}\n.settings-modal .settings-footer {\n display: -ms-flexbox;\n display: flex;\n}\n.settings-modal .settings-footer > * {\n margin-right: 0.5em;\n}\n.settings-modal .settings-footer .extra-content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}",".modal-view.media-modal-view {\n z-index: 9000;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow: hidden;\n}\n.modal-view.media-modal-view .modal-view-button-arrow,\n.modal-view.media-modal-view .modal-view-button-hide {\n opacity: 0.75;\n}\n.modal-view.media-modal-view .modal-view-button-arrow:focus, .modal-view.media-modal-view .modal-view-button-arrow:hover,\n.modal-view.media-modal-view .modal-view-button-hide:focus,\n.modal-view.media-modal-view .modal-view-button-hide:hover {\n outline: none;\n box-shadow: none;\n}\n.modal-view.media-modal-view .modal-view-button-arrow:hover,\n.modal-view.media-modal-view .modal-view-button-hide:hover {\n opacity: 1;\n}\n@keyframes media-fadein {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n.media-modal-view .modal-image-container {\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-direction: column;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.media-modal-view .modal-image-container-inner {\n width: 100%;\n height: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.media-modal-view .description,\n.media-modal-view .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n}\n.media-modal-view .description {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n}\n.media-modal-view .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image;\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n}\n.media-modal-view .modal-image.loading {\n opacity: 0.5;\n}\n.media-modal-view .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.media-modal-view .loading-spinner svg {\n color: white;\n}\n.media-modal-view .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: 3em;\n width: 3em;\n}\n.media-modal-view .modal-view-button .button-icon {\n position: absolute;\n height: 3em;\n width: 3em;\n font-size: 1rem;\n line-height: 3em;\n color: #FFF;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.3);\n}\n.media-modal-view .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: calc(3em / 2);\n width: 3em;\n height: 3em;\n}\n.media-modal-view .modal-view-button-arrow .arrow-icon {\n position: absolute;\n top: 0;\n line-height: 3em;\n color: #FFF;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.3);\n}\n.media-modal-view .modal-view-button-arrow--prev {\n left: 0;\n}\n.media-modal-view .modal-view-button-arrow--prev .arrow-icon {\n left: 0.5em;\n}\n.media-modal-view .modal-view-button-arrow--next {\n right: 0;\n}\n.media-modal-view .modal-view-button-arrow--next .arrow-icon {\n right: 0.5em;\n}\n.media-modal-view .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n}\n.media-modal-view .modal-view-button-hide .button-icon {\n top: 0.5em;\n right: 0.5em;\n}",".side-drawer-container {\n position: fixed;\n z-index: 1000;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n.side-drawer-container-open {\n transform: translate(0%);\n}\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgba(0, 0, 0, 0.5);\n}\n.side-drawer-darken-closed {\n background-color: rgba(0, 0, 0, 0);\n}\n.side-drawer-click-outside {\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n}\n.side-drawer {\n overflow-x: hidden;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition: 0.35s;\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n -ms-flex: 0 0 80%;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #d8a070;\n color: var(--popoverText, #d8a070);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.side-drawer .badge {\n margin-left: 10px;\n}\n.side-drawer-logo-wrapper {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.85em;\n}\n.side-drawer-logo-wrapper img {\n -ms-flex: none;\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n}\n.side-drawer-logo-wrapper span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.side-drawer-click-outside-closed {\n -ms-flex: 0 0 0px;\n flex: 0 0 0;\n}\n.side-drawer-closed {\n transform: translate(-100%);\n}\n.side-drawer-heading {\n background: transparent;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n padding: 0;\n margin: 0;\n}\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.side-drawer ul:last-child {\n border: 0;\n}\n.side-drawer li {\n padding: 0;\n}\n.side-drawer li a, .side-drawer li button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n}\n.side-drawer li a:hover, .side-drawer li button:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenuPopover, #151e2a);\n color: #b9b9ba;\n color: var(--selectedMenuPopoverText, #b9b9ba);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}",".MobilePostButton.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n background-color: #182230;\n background-color: var(--btn, #182230);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3), 0px 4px 6px rgba(0, 0, 0, 0.3);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n}\n.MobilePostButton.hidden {\n transform: translateY(150%);\n}\n.MobilePostButton svg {\n font-size: 1.5em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n@media all and (min-width: 801px) {\n.new-status-button:not(.always-show) {\n display: none;\n}\n}",".ReplyButton {\n display: -ms-flexbox;\n display: flex;\n}\n.ReplyButton > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n}\n.ReplyButton .action-counter {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ReplyButton .interactive:hover .svg-inline--fa, .ReplyButton .interactive.-active .svg-inline--fa {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}",".FavoriteButton {\n display: -ms-flexbox;\n display: flex;\n}\n.FavoriteButton > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n}\n.FavoriteButton .action-counter {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.FavoriteButton .interactive .svg-inline--fa {\n animation-duration: 0.6s;\n}\n.FavoriteButton .interactive:hover .svg-inline--fa, .FavoriteButton .interactive.-favorited .svg-inline--fa {\n color: orange;\n color: var(--cOrange, orange);\n}",".custom-reaction {\n width: 30px !important;\n}\n.ReactButton {\n /* override of popover internal stuff */\n}\n.ReactButton .reaction-picker-filter {\n padding: 0.5em;\n display: -ms-flexbox;\n display: flex;\n}\n.ReactButton .reaction-picker-filter input {\n -ms-flex: 1;\n flex: 1;\n}\n.ReactButton .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, #222);\n}\n.ReactButton .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n transition: -webkit-mask-size 150ms;\n transition: mask-size 150ms;\n transition: mask-size 150ms, -webkit-mask-size 150ms;\n -webkit-mask-size: 100% 20px, 100% 20px, auto;\n mask-size: 100% 20px, 100% 20px, auto;\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.ReactButton .reaction-picker .emoji-button {\n cursor: pointer;\n -ms-flex-preferred-size: 20%;\n flex-basis: 20%;\n line-height: 1.5;\n -ms-flex-line-pack: center;\n align-content: center;\n}\n.ReactButton .reaction-picker .emoji-button:hover {\n transform: scale(1.25);\n}\n.ReactButton .popover-trigger-button {\n width: auto;\n}\n.ReactButton .popover-trigger {\n padding: 10px;\n margin: -10px;\n}\n.ReactButton .popover-trigger:hover .svg-inline--fa {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}",".RetweetButton {\n display: -ms-flexbox;\n display: flex;\n}\n.RetweetButton > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n}\n.RetweetButton .action-counter {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.RetweetButton .interactive .svg-inline--fa {\n animation-duration: 0.6s;\n}\n.RetweetButton .interactive:hover .svg-inline--fa, .RetweetButton .interactive.-repeated .svg-inline--fa {\n color: #0fa00f;\n color: var(--cGreen, #0fa00f);\n}",".ExtraButtons {\n /* override of popover internal stuff */\n}\n.ExtraButtons .popover-trigger-button {\n width: auto;\n}\n.ExtraButtons .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n}\n.ExtraButtons .popover-trigger:hover .svg-inline--fa {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}",".avatars {\n display: -ms-flexbox;\n display: flex;\n margin: 0;\n padding: 0;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n height: 24px;\n}\n.avatars .avatars-item {\n margin: 0 0 5px 5px;\n}\n.avatars .avatars-item:first-child {\n padding-left: 5px;\n}\n.avatars .avatars-item .avatar-small {\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n height: 24px;\n width: 24px;\n}","/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: #222;\n border-color: var(--border, #222);\n border-style: solid;\n border-width: 1px;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);\n box-shadow: var(--popupShadow);\n /* TODO cleanup this */\n}\n.status-popover.popover .Status.Status {\n border: none;\n}\n.status-popover.popover .status-preview-no-content {\n padding: 1em;\n text-align: center;\n}\n.status-popover.popover .status-preview-no-content i {\n font-size: 2em;\n}",".user-list-popover {\n padding: 0.5em;\n --emoji-size: 16px;\n}\n.user-list-popover .user-list-row {\n padding: 0.25em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.user-list-popover .user-list-row .user-list-names {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n}\n.user-list-popover .user-list-row .user-list-names img {\n width: 1em;\n height: 1em;\n}\n.user-list-popover .user-list-row .user-list-screen-name {\n font-size: 0.65em;\n}",".emoji-reactions {\n display: -ms-flexbox;\n display: flex;\n margin-top: 0.25em;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.unicode-emoji {\n font-size: 210%;\n}\n.emoji-reaction {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.emoji-reaction .reaction-emoji {\n width: 2.55em !important;\n margin-right: 0.25em;\n}\n.emoji-reaction:focus {\n outline: none;\n}\n.emoji-reaction.not-clickable {\n cursor: default;\n}\n.emoji-reaction.not-clickable:hover {\n box-shadow: 0px 0px 2px 0px black, 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n box-shadow: var(--buttonShadow);\n}\n.emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.emoji-reaction-expand:hover {\n text-decoration: underline;\n}\n.picked-reaction {\n border: 1px solid var(--accent, #d8a070);\n margin-left: -1px;\n margin-right: calc(0.5em - 1px);\n}",".Status {\n min-width: 0;\n white-space: normal;\n word-wrap: break-word;\n word-break: break-word;\n}\n.Status:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.Status.-focused {\n background-color: #151e2a;\n background-color: var(--selectedPost, #151e2a);\n color: #b9b9ba;\n color: var(--selectedPostText, #b9b9ba);\n --lightText: var(--selectedPostLightText, $fallback--light);\n --faint: var(--selectedPostFaintText, $fallback--faint);\n --faintLink: var(--selectedPostFaintLink, $fallback--faint);\n --postLink: var(--selectedPostPostLink, $fallback--faint);\n --postFaintLink: var(--selectedPostFaintPostLink, $fallback--faint);\n --icon: var(--selectedPostIcon, $fallback--icon);\n}\n.Status .gravestone {\n padding: var(--status-margin, 0.75em);\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n display: -ms-flexbox;\n display: flex;\n}\n.Status .gravestone .deleted-text {\n margin: 0.5em 0;\n -ms-flex-align: center;\n align-items: center;\n}\n.Status .status-container {\n display: -ms-flexbox;\n display: flex;\n padding: var(--status-margin, 0.75em);\n}\n.Status .status-container > * {\n min-width: 0;\n}\n.Status .status-container.-repeat {\n padding-top: 0;\n}\n.Status .pin {\n padding: var(--status-margin, 0.75em) var(--status-margin, 0.75em) 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n._misclick-prevention .Status {\n pointer-events: none;\n}\n._misclick-prevention .Status .attachments {\n pointer-events: initial;\n cursor: initial;\n}\n.Status .left-side {\n margin-right: var(--status-margin, 0.75em);\n}\n.Status .right-side {\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.Status .usercard {\n margin-bottom: var(--status-margin, 0.75em);\n}\n.Status .status-username {\n white-space: nowrap;\n overflow: hidden;\n max-width: 85%;\n font-weight: bold;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n margin-right: 0.4em;\n text-overflow: ellipsis;\n --_still_image-label-scale: 0.25;\n --emoji-size: 14px;\n}\n.Status .status-favicon {\n height: 18px;\n width: 18px;\n margin-right: 0.4em;\n}\n.Status .status-heading {\n margin-bottom: 0.5em;\n}\n.Status .heading-name-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.3;\n}\n.Status .heading-name-row a {\n display: inline-block;\n word-break: break-all;\n}\n.Status .account-name {\n min-width: 1.6em;\n margin-right: 0.4em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n}\n.Status .heading-left {\n display: -ms-flexbox;\n display: flex;\n min-width: 0;\n}\n.Status .heading-right {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.Status .heading-right .button-unstyled {\n padding: 5px;\n margin: -5px;\n}\n.Status .heading-right .button-unstyled:hover svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.Status .heading-right .svg-inline--fa {\n margin-left: 0.25em;\n}\n.Status .glued-label {\n display: -ms-inline-flexbox;\n display: inline-flex;\n white-space: nowrap;\n}\n.Status .timeago {\n margin-right: 0.2em;\n}\n.Status .heading-reply-row {\n position: relative;\n -ms-flex-line-pack: baseline;\n align-content: baseline;\n font-size: 0.85em;\n margin-top: 0.2em;\n line-height: 130%;\n max-width: 100%;\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n.Status .reply-to-popover, .Status .reply-to-no-popover, .Status .mentions {\n min-width: 0;\n margin-right: 0.4em;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.Status .reply-glued-label {\n margin-right: 0.5em;\n}\n.Status .reply-to-popover .reply-to:hover::before {\n content: \"\";\n display: block;\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n}\n.Status .reply-to-popover .faint-link:hover {\n text-decoration: none;\n}\n.Status .reply-to-popover.-strikethrough .reply-to::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n}\n.Status .mentions, .Status .reply-to {\n white-space: nowrap;\n position: relative;\n}\n.Status .mentions-text, .Status .reply-to-text {\n color: var(--faint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Status .mentions-line {\n display: inline;\n}\n.Status .replies {\n margin-top: 0.25em;\n line-height: 1.3;\n font-size: 0.85em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.Status .replies > * {\n margin-right: 0.4em;\n}\n.Status .reply-link {\n height: 17px;\n}\n.Status .repeat-info {\n padding: 0.4em var(--status-margin, 0.75em);\n}\n.Status .repeat-info .repeat-icon {\n color: #0fa00f;\n color: var(--cGreen, #0fa00f);\n}\n.Status .repeater-avatar {\n border-radius: var(--avatarAltRadius, 10px);\n margin-left: 28px;\n width: 20px;\n height: 20px;\n}\n.Status .repeater-name {\n text-overflow: ellipsis;\n margin-right: 0;\n}\n.Status .repeater-name .emoji {\n width: 14px;\n height: 14px;\n vertical-align: middle;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.Status .status-fadein {\n animation-duration: 0.4s;\n animation-name: fadein;\n}\n@keyframes fadein {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n.Status .status-actions {\n position: relative;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n margin-top: var(--status-margin, 0.75em);\n}\n.Status .status-actions > * {\n max-width: 4em;\n -ms-flex: 1;\n flex: 1;\n}\n.Status .muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.Status .muted .status-username, .Status .muted .mute-thread, .Status .muted .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n}\n.Status .muted .status-username, .Status .muted .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.Status .muted .status-username {\n font-weight: normal;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n}\n.Status .muted .mute-thread {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.Status .muted .mute-words {\n -ms-flex: 1 0 5em;\n flex: 1 0 5em;\n margin-left: 0.2em;\n}\n.Status .muted .mute-words::before {\n content: \" \";\n}\n.Status .muted .unmute {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n}\n.Status .reply-form {\n padding-top: 0;\n padding-bottom: 0;\n}\n.Status .reply-body {\n -ms-flex: 1;\n flex: 1;\n}\n.Status .favs-repeated-users {\n margin-top: var(--status-margin, 0.75em);\n}\n.Status .stats {\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n line-height: 1em;\n}\n.Status .avatar-row {\n -ms-flex: 1;\n flex: 1;\n overflow: hidden;\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.Status .avatar-row::before {\n content: \"\";\n position: absolute;\n height: 100%;\n width: 1px;\n left: 0;\n background-color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.Status .stat-count {\n margin-right: var(--status-margin, 0.75em);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.Status .stat-count .stat-title {\n color: var(--faint, rgba(185, 185, 186, 0.5));\n font-size: 0.85em;\n text-transform: uppercase;\n position: relative;\n}\n.Status .stat-count .stat-number {\n font-weight: bolder;\n font-size: 1.1em;\n line-height: 1em;\n}\n.Status .stat-count:hover .stat-title {\n text-decoration: underline;\n}\n@media all and (max-width: 800px) {\n.Status .repeater-avatar {\n margin-left: 20px;\n}\n.Status .post-avatar {\n width: 40px;\n height: 40px;\n}\n.Status .post-avatar.-compact {\n width: 32px;\n height: 32px;\n}\n}",".Notification {\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n word-wrap: break-word;\n word-break: break-word;\n --emoji-size: 14px;\n}\n.Notification:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.Notification.-muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.Notification.-muted .status-username, .Notification.-muted .mute-thread, .Notification.-muted .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n}\n.Notification.-muted .status-username, .Notification.-muted .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.Notification.-muted .status-username {\n font-weight: normal;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n}\n.Notification.-muted .mute-thread {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.Notification.-muted .mute-words {\n -ms-flex: 1 0 5em;\n flex: 1 0 5em;\n margin-left: 0.2em;\n}\n.Notification.-muted .mute-words::before {\n content: \" \";\n}\n.Notification.-muted .unmute {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n}\n.Notification .type-icon {\n margin: 0 0.1em;\n}\n.Notification.-type--repeat .type-icon {\n color: #0fa00f;\n color: var(--cGreen, #0fa00f);\n}\n.Notification.-type--follow .type-icon {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}\n.Notification.-type--follow-request .type-icon {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}\n.Notification.-type--like .type-icon {\n color: orange;\n color: orange;\n color: var(--cOrange, orange);\n}\n.Notification.-type--move .type-icon {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}",".NotificationFilters {\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.NotificationFilters > button {\n line-height: 100%;\n height: 100%;\n width: var(--__panel-heading-height-inner);\n text-align: center;\n}\n.NotificationFilters > button svg {\n font-size: 1.2em;\n}",".Notifications:not(.minimal) {\n padding-bottom: 15em;\n}\n.Notifications .loadmore-error {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.Notifications .notification {\n position: relative;\n}\n.Notifications .notification .notification-overlay {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n pointer-events: none;\n}\n.Notifications .notification.unseen .notification-overlay {\n background-image: linear-gradient(135deg, var(--badgeNotification, #ff0000) 4px, transparent 10px);\n}\n.notification {\n box-sizing: border-box;\n /* TODO cleanup this */\n}\n.notification:hover .animated.Avatar canvas {\n display: none;\n}\n.notification:hover .animated.Avatar img {\n visibility: visible;\n}\n.notification:last-child .Notification {\n border-bottom: none;\n}\n.notification .non-mention {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n padding: 0.6em;\n min-width: 0;\n --link: var(--faintLink);\n --text: var(--faint);\n}\n.notification .non-mention .avatar-container {\n width: 32px;\n height: 32px;\n}\n.notification .follow-request-accept:hover {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.notification .follow-request-reject:hover {\n color: #ff0000;\n color: var(--cRed, #ff0000);\n}\n.notification .follow-text, .notification .move-text {\n padding: 0.5em 0;\n overflow-wrap: break-word;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.notification .follow-text .follow-name, .notification .move-text .follow-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.notification .Status {\n -ms-flex: 1;\n flex: 1;\n}\n.notification time {\n white-space: nowrap;\n}\n.notification .notification-right {\n -ms-flex: 1;\n flex: 1;\n padding-left: 0.8em;\n min-width: 0;\n}\n.notification .notification-right .timeago {\n min-width: 3em;\n text-align: right;\n}\n.notification .emoji-reaction-emoji {\n font-size: 1.3em;\n}\n.notification .notification-details {\n min-width: 0;\n word-wrap: break-word;\n line-height: var(--post-line-height);\n position: relative;\n overflow: hidden;\n width: 100%;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.notification .notification-details .name-and-action {\n -ms-flex: 1;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.notification .notification-details .username {\n font-weight: bolder;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.notification .notification-details .timeago {\n margin-right: 0.2em;\n}\n.notification .notification-details .status-content {\n margin: 0;\n max-height: 300px;\n}\n.notification .notification-details h1 {\n word-break: break-all;\n margin: 0 0 0.3em;\n padding: 0;\n font-size: 1em;\n line-height: 1.5;\n}\n.notification .notification-details h1 small {\n font-weight: lighter;\n}\n.notification .notification-details p {\n margin: 0;\n margin-top: 0;\n margin-bottom: 0.3em;\n}",".MobileNav .mobile-nav {\n display: -ms-grid;\n display: grid;\n line-height: var(--navbar-height);\n -ms-grid-rows: 50px;\n grid-template-rows: 50px;\n -ms-grid-columns: 2fr auto;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n}\n.MobileNav .mobile-nav a {\n color: var(--topBarLink, #d8a070);\n}\n.MobileNav .mobile-inner-nav {\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.MobileNav .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n}\n.MobileNav .site-name {\n padding: 0 0.3em;\n display: inline-block;\n}\n.MobileNav .item {\n /* moslty just to get rid of extra whitespaces */\n display: -ms-flexbox;\n display: flex;\n}\n.MobileNav .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: #ff0000;\n background-color: var(--badgeNotification, #ff0000);\n}\n.MobileNav .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: 1001;\n -webkit-overflow-scrolling: touch;\n}\n.MobileNav .mobile-notifications-drawer.-closed {\n transform: translateX(100%);\n box-shadow: none;\n}\n.MobileNav .mobile-notifications-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n z-index: 1;\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: #182230;\n background-color: var(--topBar, #182230);\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--topBarShadow);\n}\n.MobileNav .mobile-notifications-header .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n}\n.MobileNav .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.MobileNav .mobile-notifications .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.MobileNav .mobile-notifications .notifications .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n}\n.MobileNav .mobile-notifications .notifications .panel:after {\n border-radius: 0;\n}\n.MobileNav .mobile-notifications .notifications .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n}",".SearchBar {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: baseline;\n align-items: baseline;\n vertical-align: baseline;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.SearchBar.-expanded {\n width: 100%;\n}\n.SearchBar .search-bar-input,\n.SearchBar .search-button {\n height: 29px;\n}\n.SearchBar .search-bar-input {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.SearchBar .cancel-search {\n height: 50px;\n}\n.SearchBar .cancel-icon {\n color: #b9b9ba;\n color: var(--btnTopBarText, #b9b9ba);\n}",".DesktopNav {\n width: 100%;\n}\n.DesktopNav a {\n color: var(--topBarLink, #d8a070);\n}\n.DesktopNav .inner-nav {\n display: -ms-grid;\n display: grid;\n -ms-grid-rows: var(--navbar-height);\n grid-template-rows: var(--navbar-height);\n -ms-grid-columns: 2fr auto 2fr;\n grid-template-columns: 2fr auto 2fr;\n grid-template-areas: \"sitename logo actions\";\n box-sizing: border-box;\n padding: 0 1.2em;\n margin: auto;\n max-width: 980px;\n}\n.DesktopNav.-logoLeft .inner-nav {\n -ms-grid-columns: auto 2fr 2fr;\n grid-template-columns: auto 2fr 2fr;\n grid-template-areas: \"logo sitename actions\";\n}\n.DesktopNav .button-default, .DesktopNav .button-default svg {\n color: #b9b9ba;\n color: var(--btnTopBarText, #b9b9ba);\n}\n.DesktopNav .button-default:active {\n background-color: #182230;\n background-color: var(--btnPressedTopBar, #182230);\n color: #b9b9ba;\n color: var(--btnPressedTopBarText, #b9b9ba);\n}\n.DesktopNav .button-default:disabled {\n color: #b9b9ba;\n color: var(--btnDisabledTopBarText, #b9b9ba);\n}\n.DesktopNav .button-default.toggled {\n color: #b9b9ba;\n color: var(--btnToggledTopBarText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnToggledTopBar, #182230);\n}\n.DesktopNav .logo {\n grid-area: logo;\n position: relative;\n transition: opacity;\n transition-timing-function: ease-out;\n transition-duration: 100ms;\n}\n@media all and (min-width: 800px) {\n.DesktopNav .logo {\n opacity: 1 !important;\n}\n}\n.DesktopNav .logo .mask {\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-size: contain;\n mask-size: contain;\n background-color: #182230;\n background-color: var(--topBarText, #182230);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.DesktopNav .logo img {\n display: inline-block;\n height: var(--navbar-height);\n}\n.DesktopNav .nav-icon {\n margin-left: 0.2em;\n width: 2em;\n height: 100%;\n text-align: center;\n}\n.DesktopNav .nav-icon .svg-inline--fa {\n color: #d8a070;\n color: var(--topBarLink, #d8a070);\n}\n.DesktopNav .sitename {\n grid-area: sitename;\n}\n.DesktopNav .actions {\n grid-area: actions;\n}\n.DesktopNav .item {\n -ms-flex: 1;\n flex: 1;\n line-height: var(--navbar-height);\n height: var(--navbar-height);\n overflow: hidden;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.DesktopNav .item.right {\n -ms-flex-pack: end;\n justify-content: flex-end;\n text-align: right;\n}",".list-item:not(:last-child) {\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.list-empty-content {\n text-align: center;\n padding: 10px;\n}",".user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n}\n.user-reporting-panel .panel-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n overflow: hidden;\n}\n.user-reporting-panel-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n}\n.user-reporting-panel-left > div {\n margin-bottom: 1em;\n}\n.user-reporting-panel-left > div:last-child {\n margin-bottom: 0;\n}\n.user-reporting-panel-left p {\n margin-top: 0;\n}\n.user-reporting-panel-left textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n}\n.user-reporting-panel-left .btn {\n min-width: 10em;\n padding: 0 2em;\n}\n.user-reporting-panel-left .alert {\n margin: 1em 0 0 0;\n line-height: 1.3em;\n}\n.user-reporting-panel-right {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow-y: auto;\n}\n.user-reporting-panel-sitem {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n /* TODO cleanup this */\n}\n.user-reporting-panel-sitem > .Status {\n -ms-flex: 1;\n flex: 1;\n}\n.user-reporting-panel-sitem > .checkbox {\n margin: 0.75em;\n}\n@media all and (min-width: 801px) {\n.user-reporting-panel .panel-body {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.user-reporting-panel-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n padding: 1.1em;\n}\n.user-reporting-panel-left > div {\n margin-bottom: 2em;\n}\n.user-reporting-panel-right {\n width: 50%;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n margin-bottom: 12px;\n}\n}",".modal-view.post-form-modal-view {\n -ms-flex-align: start;\n align-items: flex-start;\n}\n.post-form-modal-panel {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n}\n@media (orientation: landscape) {\n.post-form-modal-panel {\n margin-top: 8%;\n}\n}",".global-notice-list {\n position: fixed;\n top: 50px;\n width: 100%;\n pointer-events: none;\n z-index: 1001;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n}\n.global-notice-list .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: -ms-flexbox;\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n}\n.global-notice-list .global-notice .notice-message {\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n}\n.global-notice-list .global-error {\n background-color: var(--alertPopupError, #ff0000);\n color: var(--alertPopupErrorText, #b9b9ba);\n}\n.global-notice-list .global-error .svg-inline--fa {\n color: var(--alertPopupErrorText, #b9b9ba);\n}\n.global-notice-list .global-warning {\n background-color: var(--alertPopupWarning, orange);\n color: var(--alertPopupWarningText, #b9b9ba);\n}\n.global-notice-list .global-warning .svg-inline--fa {\n color: var(--alertPopupWarningText, #b9b9ba);\n}\n.global-notice-list .global-success {\n background-color: var(--alertPopupSuccess, #0fa00f);\n color: var(--alertPopupSuccessText, #b9b9ba);\n}\n.global-notice-list .global-success .svg-inline--fa {\n color: var(--alertPopupSuccessText, #b9b9ba);\n}\n.global-notice-list .global-info {\n background-color: var(--alertPopupNeutral, #182230);\n color: var(--alertPopupNeutralText, #b9b9ba);\n}\n.global-notice-list .global-info .svg-inline--fa {\n color: var(--alertPopupNeutralText, #b9b9ba);\n}\n.global-notice-list .close-notice {\n padding-right: 0.2em;\n}\n.global-notice-list .close-notice .svg-inline--fa:hover {\n opacity: 0.6;\n}","@charset \"UTF-8\";\n:root {\n --navbar-height: 3.5rem;\n --post-line-height: 1.4;\n}\nhtml {\n font-size: 14px;\n}\nbody {\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n margin: 0;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n overscroll-behavior-y: none;\n overflow-x: clip;\n overflow-y: scroll;\n}\nbody.hidden {\n display: none;\n}\n@media (any-pointer: fine) {\n* {\n scrollbar-color: var(--btn) transparent;\n}\n*::-webkit-scrollbar {\n background: transparent;\n}\n*::-webkit-scrollbar-button, *::-webkit-scrollbar-thumb {\n background-color: var(--btn);\n box-shadow: var(--buttonShadow);\n border-radius: var(--btnRadius);\n}\n*::-webkit-scrollbar-button {\n --___bgPadding: 2px;\n color: var(--btnText);\n background-repeat: no-repeat, no-repeat;\n}\n*::-webkit-scrollbar-button:horizontal {\n background-size: 50% calc(50% - var(--___bgPadding)), 50% calc(50% - var(--___bgPadding));\n}\n*::-webkit-scrollbar-button:horizontal:increment {\n background-image: linear-gradient(45deg, var(--btnText) 50%, transparent 51%), linear-gradient(-45deg, transparent 50%, var(--btnText) 51%);\n background-position: top var(--___bgPadding) left 50%, right 50% bottom var(--___bgPadding);\n}\n*::-webkit-scrollbar-button:horizontal:decrement {\n background-image: linear-gradient(45deg, transparent 50%, var(--btnText) 51%), linear-gradient(-45deg, var(--btnText) 50%, transparent 51%);\n background-position: bottom var(--___bgPadding) right 50%, left 50% top var(--___bgPadding);\n}\n*::-webkit-scrollbar-button:vertical {\n background-size: calc(50% - var(--___bgPadding)) 50%, calc(50% - var(--___bgPadding)) 50%;\n}\n*::-webkit-scrollbar-button:vertical:increment {\n background-image: linear-gradient(-45deg, transparent 50%, var(--btnText) 51%), linear-gradient(45deg, transparent 50%, var(--btnText) 51%);\n background-position: right var(--___bgPadding) top 50%, left var(--___bgPadding) top 50%;\n}\n*::-webkit-scrollbar-button:vertical:decrement {\n background-image: linear-gradient(-45deg, var(--btnText) 50%, transparent 51%), linear-gradient(45deg, var(--btnText) 50%, transparent 51%);\n background-position: left var(--___bgPadding) top 50%, right var(--___bgPadding) top 50%;\n}\nhtml {\n scrollbar-color: var(--selectedMenu) var(--wallpaper);\n background: var(--wallpaper);\n}\n}\na {\n text-decoration: none;\n color: #d8a070;\n color: var(--link, #d8a070);\n}\nh4 {\n margin: 0;\n}\ni[class*=icon-],\n.svg-inline--fa {\n color: #666;\n color: var(--icon, #666);\n}\nnav {\n z-index: 1000;\n color: var(--topBarText);\n background-color: #182230;\n background-color: var(--topBar, #182230);\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--topBarShadow);\n box-sizing: border-box;\n height: var(--navbar-height);\n position: fixed;\n}\n#sidebar {\n grid-area: sidebar;\n}\n.column.-scrollable {\n top: var(--navbar-height);\n position: -webkit-sticky;\n position: sticky;\n}\n#main-scroller {\n grid-area: content;\n position: relative;\n}\n#notifs-column {\n grid-area: notifs;\n}\n.app-bg-wrapper {\n position: fixed;\n height: 100%;\n top: var(--navbar-height);\n z-index: -1000;\n left: 0;\n right: -20px;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-position: 50%;\n}\n.underlay {\n -ms-grid-column: 1;\n grid-column-start: 1;\n -ms-grid-column-span: 3;\n grid-column-end: span 3;\n -ms-grid-row: 1;\n grid-row-start: 1;\n grid-row-end: 1;\n pointer-events: none;\n background-color: rgba(0, 0, 0, 0.15);\n background-color: var(--underlay, rgba(0, 0, 0, 0.15));\n z-index: -1000;\n}\n.app-layout {\n --miniColumn: 25rem;\n --maxiColumn: minmax(var(--miniColumn), 45rem);\n --columnGap: 1em;\n --status-margin: 0.75em;\n position: relative;\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: var(--miniColumn) var(--maxiColumn);\n grid-template-columns: var(--miniColumn) var(--maxiColumn);\n grid-template-areas: \"sidebar content\";\n -ms-grid-rows: 1fr;\n grid-template-rows: 1fr;\n box-sizing: border-box;\n margin: 0 auto;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: 100vh;\n overflow-x: clip;\n}\n.app-layout .column {\n --___columnMargin: var(--columnGap);\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: 100%;\n grid-template-columns: 100%;\n box-sizing: border-box;\n -ms-grid-row: 1;\n grid-row-start: 1;\n grid-row-end: 1;\n margin: 0 calc(var(--___columnMargin) / 2);\n padding: calc(var(--___columnMargin)) 0;\n row-gap: var(--___columnMargin);\n -ms-flex-line-pack: start;\n align-content: start;\n}\n.app-layout .column:not(.-scrollable) {\n margin-top: var(--navbar-height);\n}\n.app-layout .column:hover {\n z-index: 2;\n}\n.app-layout .column.-full-height {\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n.app-layout .column.-scrollable {\n --___paddingIncrease: calc(var(--columnGap) / 2);\n position: -webkit-sticky;\n position: sticky;\n top: var(--navbar-height);\n max-height: calc(100vh - var(--navbar-height));\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: calc(var(--___paddingIncrease) * -1);\n padding-left: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n}\n@supports (scrollbar-width: none) or (-webkit-text-fill-color: initial) {\n.app-layout .column.-scrollable:not(.-show-scrollbar) {\n scrollbar-width: none;\n margin-right: calc(var(--___paddingIncrease) * -1);\n padding-right: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n}\n.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar {\n display: block;\n width: 0;\n}\n}\n.app-layout .column.-scrollable .panel-heading.-sticky {\n top: calc(var(--columnGap) / -1);\n}\n.app-layout.-has-new-post-button .column {\n padding-bottom: 10rem;\n}\n.app-layout.-no-sticky-headers .column .panel-heading.-sticky {\n position: relative;\n top: 0;\n}\n.app-layout .column-inner {\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: 100%;\n grid-template-columns: 100%;\n box-sizing: border-box;\n row-gap: 1em;\n -ms-flex-line-pack: start;\n align-content: start;\n}\n.app-layout.-reverse:not(.-wide):not(.-mobile) {\n -ms-grid-columns: var(--maxiColumn) var(--miniColumn);\n grid-template-columns: var(--maxiColumn) var(--miniColumn);\n grid-template-areas: \"content sidebar\";\n}\n.app-layout.-wide {\n -ms-grid-columns: var(--miniColumn) var(--maxiColumn) var(--miniColumn);\n grid-template-columns: var(--miniColumn) var(--maxiColumn) var(--miniColumn);\n grid-template-areas: \"sidebar content notifs\";\n}\n.app-layout.-wide.-reverse {\n grid-template-areas: \"notifs content sidebar\";\n}\n.app-layout.-mobile {\n -ms-grid-columns: 100vw;\n grid-template-columns: 100vw;\n grid-template-areas: \"content\";\n padding: 0;\n}\n.app-layout.-mobile .column {\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n margin-top: var(--navbar-height);\n margin-bottom: 0;\n}\n.app-layout.-mobile .panel-heading,\n.app-layout.-mobile .panel-heading::after,\n.app-layout.-mobile .panel-heading::before,\n.app-layout.-mobile .panel,\n.app-layout.-mobile .panel::after {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.app-layout.-mobile .underlay,\n.app-layout.-mobile #sidebar,\n.app-layout.-mobile #notifs-column {\n display: none;\n}\n.app-layout.-normal #notifs-column {\n display: none;\n}\n.text-center {\n text-align: center;\n}\n.button-default {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n color: #b9b9ba;\n color: var(--btnText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btn, #182230);\n border: none;\n border-radius: 4px;\n border-radius: var(--btnRadius, 4px);\n cursor: pointer;\n box-shadow: 0px 0px 2px 0px black, 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n box-shadow: var(--buttonShadow);\n font-size: 1em;\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n}\n.button-default.-sublime {\n background: transparent;\n}\n.button-default i[class*=icon-],\n.button-default .svg-inline--fa {\n color: #b9b9ba;\n color: var(--btnText, #b9b9ba);\n}\n.button-default::-moz-focus-inner {\n border: none;\n}\n.button-default:hover {\n box-shadow: 0 0 4px rgba(255, 255, 255, 0.3);\n box-shadow: var(--buttonHoverShadow);\n}\n.button-default:active {\n box-shadow: 0 0 4px 0 rgba(255, 255, 255, 0.3), 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset;\n box-shadow: var(--buttonPressedShadow);\n color: #b9b9ba;\n color: var(--btnPressedText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnPressed, #182230);\n}\n.button-default:active svg,\n.button-default:active i {\n color: #b9b9ba;\n color: var(--btnPressedText, #b9b9ba);\n}\n.button-default:disabled {\n cursor: not-allowed;\n color: #b9b9ba;\n color: var(--btnDisabledText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnDisabled, #182230);\n}\n.button-default:disabled svg,\n.button-default:disabled i {\n color: #b9b9ba;\n color: var(--btnDisabledText, #b9b9ba);\n}\n.button-default.toggled {\n color: #b9b9ba;\n color: var(--btnToggledText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnToggled, #182230);\n box-shadow: 0 0 4px 0 rgba(255, 255, 255, 0.3), 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset;\n box-shadow: var(--buttonPressedShadow);\n}\n.button-default.toggled svg,\n.button-default.toggled i {\n color: #b9b9ba;\n color: var(--btnToggledText, #b9b9ba);\n}\n.button-default.danger {\n color: #b9b9ba;\n color: var(--alertErrorPanelText, #b9b9ba);\n background-color: rgba(211, 16, 20, 0.5);\n background-color: var(--alertError, rgba(211, 16, 20, 0.5));\n}\n.button-unstyled {\n background: none;\n border: none;\n outline: none;\n display: inline;\n text-align: initial;\n font-size: 100%;\n font-family: inherit;\n padding: 0;\n line-height: unset;\n cursor: pointer;\n box-sizing: content-box;\n color: inherit;\n}\n.button-unstyled.-link {\n color: #d8a070;\n color: var(--link, #d8a070);\n}\n.button-unstyled.-fullwidth {\n width: 100%;\n}\n.button-unstyled.-hover-highlight:hover svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\ninput,\ntextarea,\n.input {\n --_padding: 0.5em;\n border: none;\n border-radius: 4px;\n border-radius: var(--inputRadius, 4px);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset, 0 0 2px 0 black inset;\n box-shadow: var(--inputShadow);\n background-color: #182230;\n background-color: var(--input, #182230);\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n margin: 0;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n line-height: 2;\n -webkit-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n padding: 0 var(--_padding);\n}\ninput.unstyled,\ntextarea.unstyled,\n.input.unstyled {\n border-radius: 0;\n background: none;\n box-shadow: none;\n height: unset;\n}\ninput:disabled, input[disabled=disabled], input.disabled,\ntextarea:disabled,\ntextarea[disabled=disabled],\ntextarea.disabled,\n.input:disabled,\n.input[disabled=disabled],\n.input.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\ninput[type=range],\ntextarea[type=range],\n.input[type=range] {\n background: none;\n border: none;\n margin: 0;\n box-shadow: none;\n -ms-flex: 1;\n flex: 1;\n}\ninput[type=radio],\ntextarea[type=radio],\n.input[type=radio] {\n display: none;\n}\ninput[type=radio]:checked + label::before,\ntextarea[type=radio]:checked + label::before,\n.input[type=radio]:checked + label::before {\n box-shadow: 0 0 2px black inset, 0 0 0 4px #182230 inset;\n box-shadow: var(--inputShadow), 0 0 0 4px var(--fg, #182230) inset;\n background-color: var(--accent, #d8a070);\n}\ninput[type=radio]:disabled, input[type=radio]:disabled + label, input[type=radio]:disabled + label::before,\ntextarea[type=radio]:disabled,\ntextarea[type=radio]:disabled + label,\ntextarea[type=radio]:disabled + label::before,\n.input[type=radio]:disabled,\n.input[type=radio]:disabled + label,\n.input[type=radio]:disabled + label::before {\n opacity: 0.5;\n}\ninput[type=radio] + label::before,\ntextarea[type=radio] + label::before,\n.input[type=radio] + label::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n content: \"\";\n transition: box-shadow 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 100%;\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: #182230;\n background-color: var(--input, #182230);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n}\ninput[type=checkbox],\ntextarea[type=checkbox],\n.input[type=checkbox] {\n display: none;\n}\ninput[type=checkbox]:checked + label::before,\ntextarea[type=checkbox]:checked + label::before,\n.input[type=checkbox]:checked + label::before {\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n}\ninput[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=checkbox]:disabled + label::before,\ntextarea[type=checkbox]:disabled,\ntextarea[type=checkbox]:disabled + label,\ntextarea[type=checkbox]:disabled + label::before,\n.input[type=checkbox]:disabled,\n.input[type=checkbox]:disabled + label,\n.input[type=checkbox]:disabled + label::before {\n opacity: 0.5;\n}\ninput[type=checkbox] + label::before,\ntextarea[type=checkbox] + label::before,\n.input[type=checkbox] + label::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n content: \"\\2713\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 2px;\n border-radius: var(--checkboxRadius, 2px);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: #182230;\n background-color: var(--input, #182230);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n}\ninput.resize-height,\ntextarea.resize-height,\n.input.resize-height {\n resize: vertical;\n}\ntextarea {\n padding: var(--_padding);\n line-height: var(--post-line-height);\n}\noption {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.hide-number-spinner {\n -moz-appearance: textfield;\n}\n.hide-number-spinner[type=number]::-webkit-inner-spin-button, .hide-number-spinner[type=number]::-webkit-outer-spin-button {\n opacity: 0;\n display: none;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-group {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group button {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.btn-group button:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group button:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.panel {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.panel::after, .panel {\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n}\n.panel::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n}\n.panel-body {\n padding: var(--panel-body-padding, 0);\n}\n.panel-body:empty::before {\n content: \"\\AF\\\\_(\\30C4)_/\\AF\";\n display: block;\n margin: 1em;\n text-align: center;\n}\n.panel-body > p {\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n}\n.panel-heading,\n.panel-footer {\n --panel-heading-height-padding: 0.6em;\n --__panel-heading-height: 3.2em;\n --__panel-heading-height-inner: calc(var(--__panel-heading-height) - 2 * var(--panel-heading-height-padding));\n position: relative;\n box-sizing: border-box;\n display: -ms-grid;\n display: grid;\n grid-auto-flow: column;\n -ms-grid-columns: minmax(50%, 1fr);\n grid-template-columns: minmax(50%, 1fr);\n grid-auto-columns: auto;\n grid-column-gap: 0.5em;\n -ms-flex: none;\n flex: none;\n background-size: cover;\n padding: 0.6em;\n height: var(--__panel-heading-height);\n line-height: var(--__panel-heading-height-inner);\n z-index: 4;\n}\n.panel-heading.-flexible-height,\n.panel-footer.-flexible-height {\n --__panel-heading-height: auto;\n}\n.panel-heading.-flexible-height::after, .panel-heading.-flexible-height::before,\n.panel-footer.-flexible-height::after,\n.panel-footer.-flexible-height::before {\n display: none;\n}\n.panel-heading.-stub, .panel-heading.-stub::after,\n.panel-footer.-stub,\n.panel-footer.-stub::after {\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n}\n.panel-heading.-sticky,\n.panel-footer.-sticky {\n position: -webkit-sticky;\n position: sticky;\n top: var(--navbar-height);\n}\n.panel-heading::after, .panel-heading::before,\n.panel-footer::after,\n.panel-footer::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n pointer-events: none;\n}\n.panel-heading .title,\n.panel-footer .title {\n font-size: 1.3em;\n}\n.panel-heading .alert,\n.panel-footer .alert {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n}\n.panel-heading:not(.-flexible-height) > .button-default,\n.panel-heading:not(.-flexible-height) > .alert,\n.panel-footer:not(.-flexible-height) > .button-default,\n.panel-footer:not(.-flexible-height) > .alert {\n height: var(--__panel-heading-height-inner);\n min-height: 0;\n box-sizing: border-box;\n margin: 0;\n min-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.panel-heading {\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n border-width: 0 0 1px 0;\n -ms-flex-align: start;\n align-items: start;\n color: var(--panelText);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.panel-heading::after {\n background-color: #182230;\n background-color: var(--panel, #182230);\n z-index: -2;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n box-shadow: var(--panelHeaderShadow);\n}\n.panel-heading a,\n.panel-heading .-link {\n color: #d8a070;\n color: var(--panelLink, #d8a070);\n}\n.panel-heading .faint {\n background-color: transparent;\n color: rgba(185, 185, 186, 0.5);\n color: var(--panelFaint, rgba(185, 185, 186, 0.5));\n}\n.panel-heading .faint-link {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faintLink, rgba(185, 185, 186, 0.5));\n}\n.panel-heading:not(.-flexible-height) > .button-default {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.panel-heading:not(.-flexible-height) > .button-default,\n.panel-heading:not(.-flexible-height) > .button-default i[class*=icon-] {\n color: #b9b9ba;\n color: var(--btnPanelText, #b9b9ba);\n}\n.panel-heading:not(.-flexible-height) > .button-default:active {\n background-color: #182230;\n background-color: var(--btnPressedPanel, #182230);\n color: #b9b9ba;\n color: var(--btnPressedPanelText, #b9b9ba);\n}\n.panel-heading:not(.-flexible-height) > .button-default:disabled {\n color: #b9b9ba;\n color: var(--btnDisabledPanelText, #b9b9ba);\n}\n.panel-heading:not(.-flexible-height) > .button-default.toggled {\n color: #b9b9ba;\n color: var(--btnToggledPanelText, #b9b9ba);\n}\n.panel-footer {\n border-radius: 0 0 10px 10px;\n border-radius: 0 0 var(--panelRadius, 10px) var(--panelRadius, 10px);\n -ms-flex-align: center;\n align-items: center;\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, #222);\n}\n.fa {\n color: grey;\n}\n.mobile-shown {\n display: none;\n}\n.badge {\n box-sizing: border-box;\n display: inline-block;\n border-radius: 99px;\n max-width: 10em;\n min-width: 1.7em;\n height: 1.3em;\n padding: 0.15em 0.15em;\n vertical-align: middle;\n font-weight: normal;\n font-style: normal;\n font-size: 0.9em;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.badge.badge-notification {\n background-color: #ff0000;\n background-color: var(--badgeNotification, #ff0000);\n color: white;\n color: var(--badgeNotificationText, white);\n}\n.alert {\n margin: 0 0.35em;\n padding: 0 0.25em;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n}\n.alert.error {\n background-color: rgba(211, 16, 20, 0.5);\n background-color: var(--alertError, rgba(211, 16, 20, 0.5));\n color: #b9b9ba;\n color: var(--alertErrorText, #b9b9ba);\n}\n.panel-heading .alert.error {\n color: #b9b9ba;\n color: var(--alertErrorPanelText, #b9b9ba);\n}\n.alert.warning {\n background-color: rgba(111, 111, 20, 0.5);\n background-color: var(--alertWarning, rgba(111, 111, 20, 0.5));\n color: #b9b9ba;\n color: var(--alertWarningText, #b9b9ba);\n}\n.panel-heading .alert.warning {\n color: #b9b9ba;\n color: var(--alertWarningPanelText, #b9b9ba);\n}\n.alert.success {\n background-color: var(--alertSuccess, rgba(111, 111, 20, 0.5));\n color: var(--alertSuccessText, #b9b9ba);\n}\n.panel-heading .alert.success {\n color: var(--alertSuccessPanelText, #b9b9ba);\n}\n.faint {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.faint-link {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.faint-link:hover {\n text-decoration: underline;\n}\n.visibility-notice {\n padding: 0.5em;\n border: 1px solid rgba(185, 185, 186, 0.5);\n border: 1px solid var(--faint, rgba(185, 185, 186, 0.5));\n border-radius: 4px;\n border-radius: var(--inputRadius, 4px);\n}\n.notice-dismissible {\n padding-right: 4rem;\n position: relative;\n}\n.notice-dismissible .dismiss {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.5em;\n color: inherit;\n}\n.fa-scale-110.svg-inline--fa {\n font-size: 1.1em;\n}\n.fa-old-padding.svg-inline--fa {\n padding: 0 0.3em;\n}\n.login-hint {\n text-align: center;\n}\n@media all and (min-width: 801px) {\n.login-hint {\n display: none;\n}\n}\n.login-hint a {\n display: inline-block;\n padding: 1em 0;\n width: 100%;\n}\n.btn.button-default {\n min-height: 2em;\n}\n.new-status-notification {\n position: relative;\n font-size: 1.1em;\n z-index: 1;\n -ms-flex: 1;\n flex: 1;\n}\n@media all and (max-width: 800px) {\n.mobile-hidden {\n display: none;\n}\n}\n@keyframes spin {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(359deg);\n}\n}\n@keyframes shakeError {\n0% {\n transform: translateX(0);\n}\n15% {\n transform: translateX(0.375rem);\n}\n30% {\n transform: translateX(-0.375rem);\n}\n45% {\n transform: translateX(0.375rem);\n}\n60% {\n transform: translateX(-0.375rem);\n}\n75% {\n transform: translateX(0.375rem);\n}\n90% {\n transform: translateX(-0.375rem);\n}\n100% {\n transform: translateX(0);\n}\n}\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.2s;\n}\n.fade-enter-from,\n.fade-leave-active {\n opacity: 0;\n}",".thread-tree-replies {\n margin-left: var(--status-margin, 0.75em);\n border-left: 2px solid var(--border, #222);\n}\n.thread-tree-replies-hidden {\n padding: var(--status-margin, 0.75em);\n /* Make the button stretch along the whole row */\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n -ms-flex-direction: column;\n flex-direction: column;\n}",".Conversation {\n z-index: 1;\n /* expanded conversation in timeline */\n}\n.Conversation .conversation-dive-to-top-level-box {\n padding: var(--status-margin, 0.75em);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, #222);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Conversation .thread-ancestors {\n margin-left: var(--status-margin, 0.75em);\n border-left: 2px solid var(--border, #222);\n}\n.Conversation .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n color: var(--text);\n}\n.Conversation .thread-ancestor-dive-box {\n padding-left: var(--status-margin, 0.75em);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, #222);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n}\n.Conversation .thread-ancestor-dive-box, .Conversation .thread-ancestor-dive-box-inner {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Conversation .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, 0.75em);\n}\n.Conversation .conversation-status {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, #222);\n border-radius: 0;\n}\n.Conversation .thread-ancestor-has-other-replies .conversation-status,\n.Conversation .thread-ancestor:last-child .conversation-status,\n.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box, .Conversation:last-child .conversation-status, .Conversation.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n}\n.Conversation .thread-ancestors + .thread-tree > .conversation-status {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--border, #222);\n}\n.Conversation.status-fadein.-expanded .thread-body {\n border-left-width: 4px;\n border-left-style: solid;\n border-left-color: #ff0000;\n border-left-color: var(--cRed, #ff0000);\n border-radius: 0 0 10px 10px;\n border-radius: 0 0 var(--panelRadius, 10px) var(--panelRadius, 10px);\n border-bottom: 1px solid var(--border, #222);\n}\n.Conversation.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n}",".TimelineMenu {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n margin-right: auto;\n min-width: 0;\n width: 24rem;\n}\n.TimelineMenu .popover-trigger-button {\n vertical-align: bottom;\n}\n.TimelineMenu .timeline-menu-popover-wrap {\n overflow: hidden;\n margin-top: 0.6rem;\n padding: 0 15px 15px 15px;\n}\n.TimelineMenu .timeline-menu-popover {\n width: 24rem;\n max-width: 100vw;\n margin: 0;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n transform: translateY(-100%);\n transition: transform 100ms;\n}\n.TimelineMenu .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.TimelineMenu.open .timeline-menu-popover {\n transform: translateY(0);\n}\n.TimelineMenu .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n}\n.TimelineMenu .timeline-menu-title .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.TimelineMenu .timeline-menu-title svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n}\n.TimelineMenu .timeline-menu-title .click-blocker {\n cursor: default;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.TimelineMenu.open .timeline-menu-title svg {\n color: #b9b9ba;\n color: var(--panelText, #b9b9ba);\n transform: rotate(180deg);\n}\n.TimelineMenu .panel {\n box-shadow: var(--popoverShadow);\n}\n.TimelineMenu ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.TimelineMenu li {\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n padding: 0;\n}\n.TimelineMenu li:last-child a {\n border-bottom-right-radius: 10px;\n border-bottom-right-radius: var(--panelRadius, 10px);\n border-bottom-left-radius: 10px;\n border-bottom-left-radius: var(--panelRadius, 10px);\n}\n.TimelineMenu li:last-child {\n border: none;\n}\n.TimelineMenu a {\n display: block;\n padding: 0.6em 0.65em;\n}\n.TimelineMenu a:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #d8a070;\n color: var(--selectedMenuText, #d8a070);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.TimelineMenu a.router-link-active {\n font-weight: bolder;\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #b9b9ba;\n color: var(--selectedMenuText, #b9b9ba);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.TimelineMenu a.router-link-active:hover {\n text-decoration: underline;\n}\n.TimelineMenu a svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n}",".TimelineQuickSettings > button {\n line-height: 100%;\n height: 100%;\n width: var(--__panel-heading-height-inner);\n text-align: center;\n}\n.TimelineQuickSettings > button svg {\n font-size: 1.2em;\n}",".Timeline .loadmore-text {\n opacity: 1;\n}\n.Timeline.-blocked {\n cursor: progress;\n}\n.Timeline .conversation-heading {\n top: calc(var(--__panel-heading-height) * var(--currentPanelStack, 2));\n z-index: 2;\n}\n.Timeline.-nonpanel .timeline-heading {\n text-align: center;\n line-height: 2.75em;\n padding: 0 0.5em;\n}\n.Timeline.-nonpanel .timeline-heading .button-default, .Timeline.-nonpanel .timeline-heading .alert {\n line-height: 2em;\n width: 100%;\n}",".tab-switcher {\n display: -ms-flexbox;\n display: flex;\n}\n.tab-switcher .tab-icon {\n margin: 0.2em auto;\n display: block;\n}\n.tab-switcher.top-tabs {\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.top-tabs > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.tab-switcher.top-tabs > .tabs::after, .tab-switcher.top-tabs > .tabs::before {\n content: \"\";\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper {\n height: 2em;\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: -93px;\n}\n.tab-switcher.top-tabs .contents.scrollable-tabs {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n}\n.tab-switcher.side-tabs {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs {\n overflow-x: auto;\n }\n}\n.tab-switcher.side-tabs > .contents {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher.side-tabs > .tabs {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.side-tabs > .tabs::after, .tab-switcher.side-tabs > .tabs::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-preferred-size: 0.5em;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs::after {\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.tab-switcher.side-tabs > .tabs::before {\n -ms-flex-positive: 0;\n flex-grow: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 10em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 4em;\n }\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper::before {\n -ms-flex: 0 0 6px;\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:last-child .tab {\n margin-bottom: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab {\n -ms-flex: 1;\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab {\n padding-left: 0.25em;\n padding-right: calc(.25em + 200px);\n margin-right: calc(.25em - 200px);\n margin-left: 0.25em;\n }\n .tab-switcher.side-tabs > .tabs .tab .text {\n display: none;\n }\n}\n.tab-switcher .contents {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n min-height: 0px;\n}\n.tab-switcher .contents .hidden {\n display: none;\n}\n.tab-switcher .contents .full-height:not(.hidden) {\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher .contents .full-height:not(.hidden) > *:not(.mobile-label) {\n -ms-flex: 1;\n flex: 1;\n}\n.tab-switcher .contents.scrollable-tabs {\n overflow-y: auto;\n}\n.tab-switcher .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n}\n.tab-switcher .tab:not(.active) {\n z-index: 4;\n}\n.tab-switcher .tab:not(.active):hover {\n z-index: 6;\n}\n.tab-switcher .tab.active {\n background: transparent;\n z-index: 5;\n color: #b9b9ba;\n color: var(--tabActiveText, #b9b9ba);\n}\n.tab-switcher .tab img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n}\n.tab-switcher .tabs {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-sizing: border-box;\n}\n.tab-switcher .tabs::after, .tab-switcher .tabs::before {\n display: block;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher .tab-wrapper {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.tab-switcher .tab-wrapper:not(.active)::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n}\n.tab-switcher .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, #222);\n}\n@media all and (min-width: 800px) {\n .tab-switcher .mobile-label {\n display: none;\n }\n}",".chat-title {\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n --emoji-size: 14px;\n}\n.chat-title .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n}\n.chat-title .avatar-container {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n line-height: 1;\n}\n.chat-title .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.chat-title .titlebar-avatar.animated::before {\n display: none;\n}",".chat-list-item {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n padding: 0.75em;\n height: 5em;\n overflow: hidden;\n box-sizing: border-box;\n cursor: pointer;\n}\n.chat-list-item :focus {\n outline: none;\n}\n.chat-list-item:hover {\n background-color: var(--selectedPost, #151e2a);\n box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.1);\n}\n.chat-list-item .chat-list-item-left {\n margin-right: 1em;\n}\n.chat-list-item .chat-list-item-center {\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n word-wrap: break-word;\n}\n.chat-list-item .heading {\n width: 100%;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1em;\n}\n.chat-list-item .heading-right {\n white-space: nowrap;\n}\n.chat-list-item .name-and-account-name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n line-height: var(--post-line-height);\n}\n.chat-list-item .chat-preview {\n display: -ms-inline-flexbox;\n display: inline-flex;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: 0.35em 0;\n color: #b9b9ba;\n color: var(--faint, #b9b9ba);\n width: 100%;\n}\n.chat-list-item a {\n color: var(--faintLink, #d8a070);\n text-decoration: none;\n pointer-events: none;\n}\n.chat-list-item:hover .animated.avatar canvas {\n display: none;\n}\n.chat-list-item:hover .animated.avatar img {\n visibility: visible;\n}\n.chat-list-item .Avatar {\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.chat-list-item .chat-preview-body {\n --emoji-size: 1.4em;\n}\n.chat-list-item .time-wrapper {\n line-height: var(--post-line-height);\n}\n.chat-list-item .chat-preview-body {\n padding-right: 1em;\n}",".basic-user-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n}\n.basic-user-card-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.basic-user-card-user-name img {\n -o-object-fit: contain;\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n}\n.basic-user-card-user-name-value, .basic-user-card-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.basic-user-card-expanded-content {\n -ms-flex: 1;\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n}",".chat-new .input-wrap {\n display: -ms-flexbox;\n display: flex;\n margin: 0.7em 0.5em 0.7em 0.5em;\n}\n.chat-new .input-wrap input {\n width: 100%;\n}\n.chat-new .search-icon {\n margin-right: 0.3em;\n}\n.chat-new .member-list {\n padding-bottom: 0.7rem;\n}\n.chat-new .basic-user-card:hover {\n cursor: pointer;\n background-color: var(--selectedPost, #151e2a);\n}\n.chat-new .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n -ms-flex-item-align: start;\n -ms-grid-row-align: start;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n}",".chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n color: #b9b9ba;\n color: var(--faint, #b9b9ba);\n}",".chat-message-wrapper.hovered-message-chain .animated.Avatar canvas {\n display: none;\n}\n.chat-message-wrapper.hovered-message-chain .animated.Avatar img {\n visibility: visible;\n}\n.chat-message-wrapper .chat-message-menu {\n transition: opacity 0.1s;\n opacity: 0;\n position: absolute;\n top: -0.8em;\n}\n.chat-message-wrapper .chat-message-menu button {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n}\n.chat-message-wrapper .menu-icon {\n cursor: pointer;\n}\n.chat-message-wrapper .menu-icon:hover, .extra-button-popover.open .chat-message-wrapper .menu-icon {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.chat-message-wrapper .popover {\n width: 12em;\n}\n.chat-message-wrapper .chat-message {\n display: -ms-flexbox;\n display: flex;\n padding-bottom: 0.5em;\n}\n.chat-message-wrapper .chat-message .status-body:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.chat-message-wrapper .avatar-wrapper {\n margin-right: 0.72em;\n width: 32px;\n}\n.chat-message-wrapper .link-preview, .chat-message-wrapper .attachments {\n margin-bottom: 1em;\n}\n.chat-message-wrapper .chat-message-inner {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n max-width: 80%;\n min-width: 10em;\n width: 100%;\n}\n.chat-message-wrapper .chat-message-inner.with-media {\n width: 100%;\n}\n.chat-message-wrapper .chat-message-inner.with-media .status {\n width: 100%;\n}\n.chat-message-wrapper .status {\n border-radius: 10px;\n border-radius: var(--chatMessageRadius, 10px);\n display: -ms-flexbox;\n display: flex;\n padding: 0.75em;\n}\n.chat-message-wrapper .created-at {\n position: relative;\n float: right;\n font-size: 0.8em;\n margin: -1em 0 -0.5em 0;\n font-style: italic;\n opacity: 0.8;\n}\n.chat-message-wrapper .without-attachment .message-content .RichContent::after {\n margin-right: 5.4em;\n content: \" \";\n display: inline-block;\n}\n.chat-message-wrapper .pending .status-content.media-body, .chat-message-wrapper .pending .created-at {\n color: var(--faint);\n}\n.chat-message-wrapper .error .status-content.media-body, .chat-message-wrapper .error .created-at {\n color: #ff0000;\n color: var(--badgeNotification, #ff0000);\n}\n.chat-message-wrapper .incoming a {\n color: var(--chatMessageIncomingLink, #d8a070);\n}\n.chat-message-wrapper .incoming .status {\n color: var(--chatMessageIncomingText, #b9b9ba);\n background-color: var(--chatMessageIncomingBg, #121a24);\n border: 1px solid var(--chatMessageIncomingBorder, --border);\n}\n.chat-message-wrapper .incoming .created-at a {\n color: var(--chatMessageIncomingText, #b9b9ba);\n}\n.chat-message-wrapper .incoming .chat-message-menu {\n left: 0.4rem;\n}\n.chat-message-wrapper .outgoing {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-line-pack: end;\n align-content: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.chat-message-wrapper .outgoing a {\n color: var(--chatMessageOutgoingLink, #d8a070);\n}\n.chat-message-wrapper .outgoing .status {\n color: var(--chatMessageOutgoingText, #b9b9ba);\n background-color: var(--chatMessageOutgoingBg, #151e2a);\n border: 1px solid var(--chatMessageOutgoingBorder, --lightBg);\n}\n.chat-message-wrapper .outgoing .chat-message-inner {\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.chat-message-wrapper .outgoing .chat-message-menu {\n right: 0.4rem;\n}\n.chat-message-wrapper .visible {\n opacity: 1;\n}\n.chat-message-date-separator {\n text-align: center;\n margin: 1.4em 0;\n font-size: 0.9em;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n color: #b9b9ba;\n color: var(--faintedText, #b9b9ba);\n}",".chat-view {\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n}\n.chat-view .chat-view-inner {\n height: auto;\n width: 100%;\n overflow: visible;\n display: -ms-flexbox;\n display: flex;\n}\n.chat-view .chat-view-body {\n box-sizing: border-box;\n background-color: var(--chatBg, #121a24);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n overflow: visible;\n min-height: calc(100vh - var(--navbar-height));\n margin: 0 0 0 0;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n}\n.chat-view .chat-view-body::after {\n border-radius: 0;\n}\n.chat-view .message-list {\n padding: 0 0.8em;\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: end;\n justify-content: end;\n}\n.chat-view .footer {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n z-index: 1;\n}\n.chat-view .chat-view-heading {\n -ms-grid-columns: auto minmax(50%, 1fr);\n grid-template-columns: auto minmax(50%, 1fr);\n}\n.chat-view .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n -ms-flex-item-align: start;\n -ms-grid-row-align: start;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n}\n.chat-view .jump-to-bottom-button {\n width: 2.5em;\n height: 2.5em;\n border-radius: 100%;\n position: absolute;\n right: 1.3em;\n top: -3.2em;\n background-color: #182230;\n background-color: var(--btn, #182230);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.3);\n z-index: 10;\n transition: 0.35s all;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n opacity: 0;\n visibility: hidden;\n cursor: pointer;\n}\n.chat-view .jump-to-bottom-button.visible {\n opacity: 1;\n visibility: visible;\n}\n.chat-view .jump-to-bottom-button i {\n font-size: 1em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.chat-view .jump-to-bottom-button .unread-message-count {\n font-size: 0.8em;\n left: 50%;\n margin-top: -1rem;\n padding: 0.1em;\n border-radius: 50px;\n position: absolute;\n}\n.chat-view .jump-to-bottom-button .chat-loading-error {\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: end;\n align-items: flex-end;\n height: 100%;\n}\n.chat-view .jump-to-bottom-button .chat-loading-error .error {\n width: 100%;\n}",".follow-card-content-container {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n line-height: 1.5em;\n}\n.follow-card-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n}",".with-load-more-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: #222;\n border-top-color: var(--border, #222);\n}\n.with-load-more-footer .error {\n font-size: 1rem;\n}\n.with-load-more-footer a {\n cursor: pointer;\n}",".user-profile {\n -ms-flex: 2;\n flex: 2;\n -ms-flex-preferred-size: 500px;\n flex-basis: 500px;\n --currentPanelStack: 1;\n}\n.user-profile .user-profile-fields {\n margin: 0 0.5em;\n}\n.user-profile .user-profile-fields img {\n -o-object-fit: contain;\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n}\n.user-profile .user-profile-fields img.emoji {\n width: 18px;\n height: 18px;\n}\n.user-profile .user-profile-fields .user-profile-field {\n display: -ms-flexbox;\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, #222);\n border-radius: 4px;\n border-radius: var(--inputRadius, 4px);\n}\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name {\n -ms-flex: 0 1 30%;\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, #222);\n}\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\n -ms-flex: 1 1 70%;\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n}\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name, .user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n}\n.user-profile .userlist-placeholder {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: middle;\n align-items: middle;\n padding: 2em;\n}\n.user-profile-placeholder .panel-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: middle;\n align-items: middle;\n padding: 7em;\n}",".search-result-heading {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n padding: 0.75rem;\n text-align: center;\n}\n@media all and (max-width: 800px) {\n.search-nav-heading .tab-switcher .tabs .tab-wrapper {\n display: block;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n}\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.search-result-footer {\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, #222);\n padding: 10px;\n background-color: #182230;\n background-color: var(--panel, #182230);\n}\n.search-input-container {\n padding: 0.8rem;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.search-input-container .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n}\n.search-input-container .search-button {\n margin-left: 0.5em;\n}\n.loading-icon {\n padding: 1em;\n}\n.trend {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.trend .hashtag {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.trend .count {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}","@charset \"UTF-8\";\n.registration-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0.6em;\n}\n.registration-form .container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.registration-form .container > * {\n min-width: 0;\n}\n.registration-form .terms-of-service {\n -ms-flex: 0 1 50%;\n flex: 0 1 50%;\n margin: 0.8em;\n}\n.registration-form .text-fields {\n margin-top: 0.6em;\n -ms-flex: 1 0;\n flex: 1 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.registration-form textarea {\n min-height: 100px;\n resize: vertical;\n}\n.registration-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n}\n.registration-form .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n}\n.registration-form .form-group--error .form--label {\n color: #f04124;\n color: var(--cRed, #f04124);\n}\n.registration-form .form-error {\n margin-top: -0.7em;\n text-align: left;\n}\n.registration-form .form-error span {\n font-size: 0.85em;\n}\n.registration-form .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n}\n.registration-form .form-error ul li::before {\n content: \"\\2022 \";\n}\n.registration-form form textarea {\n line-height: 16px;\n resize: vertical;\n}\n.registration-form .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n}\n.registration-form .btn {\n margin-top: 0.6em;\n height: 2em;\n}\n.registration-form .error {\n text-align: center;\n}\n@media all and (max-width: 800px) {\n.registration-form .container {\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n}\n}",".password-reset-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n margin: 0.6em;\n}\n.password-reset-form .container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0;\n flex: 1 0;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n}\n.password-reset-form .container > * {\n min-width: 0;\n}\n.password-reset-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n}\n.password-reset-form .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n}\n.password-reset-form .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n}\n.password-reset-form .password-reset-required {\n background-color: var(--alertError, rgba(211, 16, 20, 0.5));\n padding: 10px 0;\n}\n.password-reset-form .notice-dismissible {\n padding-right: 2rem;\n}\n.password-reset-form .dismiss {\n cursor: pointer;\n}",".follow-request-card-content-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.follow-request-card-content-container button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n -ms-flex: 1 1;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n}\n.follow-request-card-content-container button:last-child {\n margin-right: 0;\n}",".tos-content {\n margin: 1em;\n}",".staff-group {\n padding-left: 1em;\n padding-top: 1em;\n}\n.staff-group .basic-user-card {\n padding-left: 0;\n}",".mrf-section {\n margin: 1em;\n}\n.mrf-section table {\n width: 100%;\n text-align: left;\n padding-left: 10px;\n padding-bottom: 20px;\n}\n.mrf-section table th, .mrf-section table td {\n width: 180px;\n max-width: 360px;\n overflow: hidden;\n vertical-align: text-top;\n}\n.mrf-section table th + th, .mrf-section table td + td {\n width: auto;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/app.9065da1ae55149d987b6.css b/priv/static/static/css/app.ea8ec0bbcc083797019b.css similarity index 99% rename from priv/static/static/css/app.9065da1ae55149d987b6.css rename to priv/static/static/css/app.ea8ec0bbcc083797019b.css index 6601e2264..efb057d33 100644 --- a/priv/static/static/css/app.9065da1ae55149d987b6.css +++ b/priv/static/static/css/app.ea8ec0bbcc083797019b.css @@ -3487,6 +3487,13 @@ to { height: 32px; } } +.reaction-emoji { + width: 40px; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; +} .Notification { border-bottom: 1px solid; border-color: #222; @@ -6335,4 +6342,4 @@ option { width: auto; } -/*# sourceMappingURL=app.9065da1ae55149d987b6.css.map*/ \ No newline at end of file +/*# sourceMappingURL=app.ea8ec0bbcc083797019b.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/app.ea8ec0bbcc083797019b.css.map b/priv/static/static/css/app.ea8ec0bbcc083797019b.css.map new file mode 100644 index 000000000..761e6f96a --- /dev/null +++ b/priv/static/static/css/app.ea8ec0bbcc083797019b.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/login_form/login_form.vue?0143","webpack:///./src/components/media_upload/media_upload.vue?b948","webpack:///./src/components/scope_selector/scope_selector.vue?b42e","webpack:///./src/components/checkbox/checkbox.vue?2c56","webpack:///./src/components/emoji_picker/emoji_picker.scss","webpack:///./src/components/emoji_input/emoji_input.vue?b70f","webpack:///./src/components/select/select.vue?0972","webpack:///./src/components/poll/poll_form.vue?4e05","webpack:///./src/components/still-image/still-image.vue?d62b","webpack:///./src/components/flash/flash.vue?8680","webpack:///./src/components/attachment/attachment.scss","webpack:///./src/components/gallery/gallery.vue?28da","webpack:///./src/components/user_avatar/user_avatar.vue?1437","webpack:///./src/components/mention_link/mention_link.scss","webpack:///./src/components/mentions_line/mentions_line.scss","webpack:///./src/components/hashtag_link/hashtag_link.scss","webpack:///./src/components/rich_content/rich_content.scss","webpack:///./src/components/poll/poll.vue?63e7","webpack:///./src/components/status_body/status_body.scss","webpack:///./src/components/link-preview/link-preview.vue?ae49","webpack:///./src/components/status_content/status_content.vue?02f4","webpack:///./src/components/post_status_form/post_status_form.vue?e8f7","webpack:///./src/components/remote_follow/remote_follow.vue?695f","webpack:///./src/components/dialog_modal/dialog_modal.vue?d035","webpack:///./src/components/popover/popover.vue?d601","webpack:///./src/components/moderation_tools/moderation_tools.vue?0d1a","webpack:///./src/components/account_actions/account_actions.vue?059b","webpack:///./src/components/user_card/user_card.scss","webpack:///./src/components/user_panel/user_panel.vue?d3c4","webpack:///./src/components/nav_panel/nav_panel.vue?2f93","webpack:///./src/components/features_panel/features_panel.vue?bb75","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?3ce6","webpack:///./src/components/shout_panel/shout_panel.vue?80b8","webpack:///./src/components/modal/modal.vue?941f","webpack:///./src/components/panel_loading/panel_loading.vue?bd27","webpack:///./src/components/async_component_error/async_component_error.vue?3398","webpack:///./src/components/settings_modal/settings_modal.scss","webpack:///./src/components/media_modal/media_modal.vue?629c","webpack:///./src/components/side_drawer/side_drawer.vue?d1fd","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?53e4","webpack:///./src/components/reply_button/reply_button.vue?b99a","webpack:///./src/components/favorite_button/favorite_button.vue?6a3c","webpack:///./src/components/react_button/react_button.vue?a9f8","webpack:///./src/components/retweet_button/retweet_button.vue?b1bb","webpack:///./src/components/extra_buttons/extra_buttons.vue?bd78","webpack:///./src/components/avatar_list/avatar_list.vue?4e4a","webpack:///./src/components/status_popover/status_popover.vue?0929","webpack:///./src/components/user_list_popover/user_list_popover.vue?787c","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?235c","webpack:///./src/components/status/status.scss","webpack:///./src/components/notification/notification.scss","webpack:///./src/components/notifications/notification_filters.vue?603c","webpack:///./src/components/notifications/notifications.scss","webpack:///./src/components/mobile_nav/mobile_nav.vue?6393","webpack:///./src/components/search_bar/search_bar.vue?12c6","webpack:///./src/components/desktop_nav/desktop_nav.scss","webpack:///./src/components/list/list.vue?9770","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?40b9","webpack:///./src/components/post_status_modal/post_status_modal.vue?1d2d","webpack:///./src/components/global_notice_list/global_notice_list.vue?340a","webpack:///./src/App.scss","webpack:///./src/components/thread_tree/thread_tree.vue?605c","webpack:///./src/components/conversation/conversation.vue?14b0","webpack:///./src/components/timeline_menu/timeline_menu.vue?3e08","webpack:///./src/components/timeline/timeline_quick_settings.vue?700a","webpack:///./src/components/timeline/timeline.scss","webpack:///./src/components/tab_switcher/tab_switcher.scss","webpack:///./src/components/chat_title/chat_title.vue?b7a1","webpack:///./src/components/chat_list_item/chat_list_item.vue?e9b5","webpack:///./src/components/basic_user_card/basic_user_card.vue?c98b","webpack:///./src/components/chat_new/chat_new.vue?547b","webpack:///./src/components/chat_list/chat_list.vue?1734","webpack:///./src/components/chat_message/chat_message.vue?7461","webpack:///./src/components/chat/chat.vue?4d65","webpack:///./src/components/follow_card/follow_card.vue?cae2","webpack:///./src/hocs/with_load_more/with_load_more.scss","webpack:///./src/components/user_profile/user_profile.vue?63ff","webpack:///./src/components/search/search.vue?b7f8","webpack:///./src/components/registration/registration.vue?a474","webpack:///./src/components/password_reset/password_reset.vue?e61a","webpack:///./src/components/follow_request_card/follow_request_card.vue?3deb","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?2ce4","webpack:///./src/components/staff_panel/staff_panel.vue?efac","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?5ff6"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtDA;AACA;AACA;AACA;AACA;AACA,C;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA,C;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjTA;AACA;AACA;AACA,C;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxFA;AACA;AACA,C;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACj5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClBA;AACA;AACA,C;ACFA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C","file":"static/css/app.ea8ec0bbcc083797019b.css","sourcesContent":[".login-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.6em;\n}\n.login-form .btn {\n min-height: 2em;\n width: 10em;\n}\n.login-form .register {\n -ms-flex: 1 1;\n flex: 1 1;\n}\n.login-form .login-bottom {\n margin-top: 1em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.login-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n}\n.login-form .form-bottom {\n display: -ms-flexbox;\n display: flex;\n padding: 0.5em;\n height: 32px;\n}\n.login-form .form-bottom button {\n width: 10em;\n}\n.login-form .form-bottom p {\n margin: 0.35em;\n padding: 0.35em;\n display: -ms-flexbox;\n display: flex;\n}\n.login-form .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n}",".media-upload {\n cursor: pointer;\n}\n.media-upload .hidden-input-file {\n display: none;\n}",".ScopeSelector .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n}\n.ScopeSelector .scope.selected svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}","@charset \"UTF-8\";\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n}\n.checkbox-indicator {\n position: relative;\n padding-left: 1.2em;\n}\n.checkbox-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: \"\\2713\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 2px;\n border-radius: var(--checkboxRadius, 2px);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: #182230;\n background-color: var(--input, #182230);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n}\n.checkbox.disabled .checkbox-indicator::before,\n.checkbox.disabled .label {\n opacity: 0.5;\n}\n.checkbox.disabled .label {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.checkbox input[type=checkbox] {\n display: none;\n}\n.checkbox input[type=checkbox]:checked + .checkbox-indicator::before {\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n}\n.checkbox input[type=checkbox]:indeterminate + .checkbox-indicator::before {\n content: \"\\2013\";\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n}\n.checkbox > span {\n margin-left: 0.5em;\n}",".emoji-picker {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: absolute;\n right: 0;\n left: 0;\n margin: 0 !important;\n z-index: 100;\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #d8a070;\n color: var(--popoverText, #d8a070);\n --lightText: var(--popoverLightText, $fallback--faint);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.emoji-picker .keep-open,\n.emoji-picker .too-many-emoji {\n padding: 7px;\n line-height: normal;\n}\n.emoji-picker .too-many-emoji {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.emoji-picker .keep-open-label {\n padding: 0 7px;\n display: -ms-flexbox;\n display: flex;\n}\n.emoji-picker .heading {\n display: -ms-flexbox;\n display: flex;\n height: 32px;\n padding: 10px 7px 5px;\n}\n.emoji-picker .content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 0px;\n}\n.emoji-picker .emoji-tabs {\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.emoji-picker .emoji-groups {\n min-height: 200px;\n}\n.emoji-picker .additional-tabs {\n border-left: 1px solid;\n border-left-color: #666;\n border-left-color: var(--icon, #666);\n padding-left: 7px;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.emoji-picker .additional-tabs,\n.emoji-picker .emoji-tabs {\n display: block;\n min-width: 0;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.emoji-picker .additional-tabs-item,\n.emoji-picker .emoji-tabs-item {\n padding: 0 7px;\n cursor: pointer;\n font-size: 1.85em;\n}\n.emoji-picker .additional-tabs-item.disabled,\n.emoji-picker .emoji-tabs-item.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n.emoji-picker .additional-tabs-item.active,\n.emoji-picker .emoji-tabs-item.active {\n border-bottom: 4px solid;\n}\n.emoji-picker .additional-tabs-item.active svg,\n.emoji-picker .emoji-tabs-item.active svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.emoji-picker .sticker-picker {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.emoji-picker .stickers-content,\n.emoji-picker .emoji-content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 0;\n}\n.emoji-picker .stickers-content.hidden,\n.emoji-picker .emoji-content.hidden {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n}\n.emoji-picker .emoji-search {\n padding: 5px;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.emoji-picker .emoji-search input {\n width: 100%;\n}\n.emoji-picker .emoji-groups {\n -ms-flex: 1 1 1px;\n flex: 1 1 1px;\n position: relative;\n overflow: auto;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n transition: -webkit-mask-size 150ms;\n transition: mask-size 150ms;\n transition: mask-size 150ms, -webkit-mask-size 150ms;\n -webkit-mask-size: 100% 20px, 100% 20px, auto;\n mask-size: 100% 20px, 100% 20px, auto;\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.emoji-picker .emoji-groups.scrolled-top {\n -webkit-mask-size: 100% 20px, 100% 0, auto;\n mask-size: 100% 20px, 100% 0, auto;\n}\n.emoji-picker .emoji-groups.scrolled-bottom {\n -webkit-mask-size: 100% 0, 100% 20px, auto;\n mask-size: 100% 0, 100% 20px, auto;\n}\n.emoji-picker .emoji-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 5px;\n -ms-flex-pack: left;\n justify-content: left;\n}\n.emoji-picker .emoji-group-title {\n font-size: 0.85em;\n width: 100%;\n margin: 0;\n}\n.emoji-picker .emoji-group-title.disabled {\n display: none;\n}\n.emoji-picker .emoji-item {\n width: 32px;\n height: 32px;\n box-sizing: border-box;\n display: -ms-flexbox;\n display: flex;\n font-size: 32px;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 4px;\n cursor: pointer;\n}\n.emoji-picker .emoji-item img {\n -o-object-fit: contain;\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n}",".emoji-input {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n}\n.emoji-input.with-picker input {\n padding-right: 30px;\n}\n.emoji-input .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n}\n.emoji-input .emoji-picker-icon:hover i {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.emoji-input .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n}\n.emoji-input .emoji-picker-panel.hide {\n display: none;\n}\n.emoji-input .autocomplete-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n}\n.emoji-input .autocomplete-panel.hide {\n display: none;\n}\n.emoji-input .autocomplete-panel-body {\n margin: 0 0.5em 0 0.5em;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);\n box-shadow: var(--popupShadow);\n min-width: 75%;\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #d8a070;\n color: var(--popoverText, #d8a070);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.emoji-input .autocomplete-item {\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n height: 32px;\n}\n.emoji-input .autocomplete-item .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n}\n.emoji-input .autocomplete-item .image img {\n width: 32px;\n height: 32px;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.emoji-input .autocomplete-item .label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n}\n.emoji-input .autocomplete-item .label .displayText {\n line-height: 1.5;\n}\n.emoji-input .autocomplete-item .label .detailText {\n font-size: 9px;\n line-height: 9px;\n}\n.emoji-input .autocomplete-item.highlighted {\n background-color: #182230;\n background-color: var(--selectedMenuPopover, #182230);\n color: var(--selectedMenuPopoverText, #b9b9ba);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}\n.emoji-input input, .emoji-input textarea {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}","/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n}\nlabel.Select select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n color: #b9b9ba;\n color: var(--inputText, --text, #b9b9ba);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n}\nlabel.Select .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n}",".poll-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n}\n.poll-form .add-option {\n -ms-flex-item-align: start;\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n}\n.poll-form .poll-option {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: baseline;\n align-items: baseline;\n -ms-flex-pack: justify;\n justify-content: space-between;\n margin-bottom: 0.25em;\n}\n.poll-form .input-container {\n width: 100%;\n}\n.poll-form .input-container input {\n padding-right: 2.5em;\n width: 100%;\n}\n.poll-form .delete-option {\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n}\n.poll-form .poll-type-expiry {\n margin-top: 0.5em;\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n}\n.poll-form .poll-type {\n margin-right: 0.75em;\n -ms-flex: 1 1 60%;\n flex: 1 1 60%;\n}\n.poll-form .poll-type .poll-type-select {\n padding-right: 0.75em;\n}\n.poll-form .poll-expiry {\n display: -ms-flexbox;\n display: flex;\n}\n.poll-form .poll-expiry .expiry-amount {\n width: 3em;\n text-align: right;\n}",".still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.still-image canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n}\n.still-image img {\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.still-image.animated::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n}\n.still-image.animated:hover canvas {\n display: none;\n}\n.still-image.animated:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n}\n.still-image.animated img {\n visibility: var(--_still-image-img-visibility, hidden);\n}\n.still-image.animated:hover img {\n visibility: visible;\n}",".Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n}\n.Flash .player {\n height: 100%;\n width: 100%;\n}\n.Flash .placeholder {\n height: 100%;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n}\n.Flash .hider {\n top: 0;\n}\n.Flash .label {\n text-align: center;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n}\n.Flash .hidden {\n display: none;\n visibility: \"hidden\";\n}",".Attachment {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n -ms-flex-item-align: start;\n align-self: flex-start;\n line-height: 0;\n height: 100%;\n border-style: solid;\n border-width: 1px;\n border-radius: 10px;\n border-radius: var(--attachmentRadius, 10px);\n border-color: #222;\n border-color: var(--border, #222);\n}\n.Attachment .attachment-wrapper {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n.Attachment .description-container {\n -ms-flex: 0 1 0px;\n flex: 0 1 0;\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.5em;\n z-index: 1;\n}\n.Attachment .description-container p {\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n line-height: 1.5;\n padding: 0.5em;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.Attachment .description-container.-static {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding-top: 0;\n background: var(--popover);\n box-shadow: var(--popupShadow);\n}\n.Attachment .description-field {\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.Attachment .placeholder-container, .Attachment .image-container, .Attachment .audio-container, .Attachment .video-container, .Attachment .flash-container, .Attachment .oembed-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n.Attachment .image-container .image {\n width: 100%;\n height: 100%;\n}\n.Attachment .flash-container .flash, .Attachment .flash-container video, .Attachment .video-container .flash, .Attachment .video-container video {\n width: 100%;\n height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.Attachment .audio-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.Attachment .audio-container audio {\n width: 100%;\n height: 100%;\n}\n.Attachment .placeholder-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-top: 0.5em;\n}\n.Attachment .play-icon {\n position: absolute;\n font-size: 64px;\n top: calc(50% - 32px);\n left: calc(50% - 32px);\n color: rgba(255, 255, 255, 0.75);\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.4);\n}\n.Attachment .play-icon::before {\n margin: 0;\n}\n.Attachment .attachment-buttons {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n right: 0;\n top: 0;\n margin-top: 0.5em;\n margin-right: 0.5em;\n z-index: 1;\n}\n.Attachment .attachment-buttons .attachment-button {\n padding: 0;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n text-align: center;\n width: 2em;\n height: 2em;\n margin-left: 0.5em;\n font-size: 1.25em;\n background: rgba(230, 230, 230, 0.7);\n}\n.Attachment .attachment-buttons .attachment-button .svg-inline--fa {\n color: rgba(0, 0, 0, 0.6);\n}\n.Attachment .attachment-buttons .attachment-button:hover .svg-inline--fa {\n color: rgba(0, 0, 0, 0.9);\n}\n.Attachment .oembed-container {\n line-height: 1.2em;\n -ms-flex: 1 0 100%;\n flex: 1 0 100%;\n width: 100%;\n margin-right: 15px;\n display: -ms-flexbox;\n display: flex;\n}\n.Attachment .oembed-container img {\n width: 100%;\n}\n.Attachment .oembed-container .image {\n -ms-flex: 1;\n flex: 1;\n}\n.Attachment .oembed-container .image img {\n border: 0px;\n border-radius: 5px;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.Attachment .oembed-container .text {\n -ms-flex: 2;\n flex: 2;\n margin: 8px;\n word-break: break-all;\n}\n.Attachment .oembed-container .text h1 {\n font-size: 1rem;\n margin: 0px;\n}\n.Attachment.-size-small .play-icon {\n zoom: 0.5;\n opacity: 0.7;\n}\n.Attachment.-size-small .attachment-buttons {\n zoom: 0.7;\n opacity: 0.5;\n}\n.Attachment.-editable {\n padding: 0.5em;\n}\n.Attachment.-editable .description-container, .Attachment.-editable .attachment-buttons {\n margin: 0;\n}\n.Attachment.-placeholder {\n display: inline-block;\n color: #d8a070;\n color: var(--postLink, #d8a070);\n overflow: hidden;\n white-space: nowrap;\n height: auto;\n line-height: 1.5;\n}\n.Attachment.-placeholder:not(.-editable) {\n border: none;\n}\n.Attachment.-placeholder.-editable {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n.Attachment.-placeholder.-editable .description-container, .Attachment.-placeholder.-editable .attachment-buttons {\n margin: 0;\n padding: 0;\n position: relative;\n}\n.Attachment.-placeholder.-editable .description-container {\n -ms-flex: 1;\n flex: 1;\n padding-left: 0.5em;\n}\n.Attachment.-placeholder.-editable .attachment-buttons {\n -ms-flex-order: 99;\n order: 99;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.Attachment.-placeholder a {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.Attachment.-placeholder svg {\n color: inherit;\n}\n.Attachment.-loading {\n cursor: progress;\n}\n.Attachment.-contain-fit img,\n.Attachment.-contain-fit canvas {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.Attachment.-cover-fit img,\n.Attachment.-cover-fit canvas {\n -o-object-fit: cover;\n object-fit: cover;\n}",".Gallery .gallery-rows {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Gallery .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.Gallery .gallery-row:not(:first-child) {\n margin-top: 0.5em;\n}\n.Gallery.-long .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n -webkit-mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.Gallery .many-attachments-text {\n text-align: center;\n line-height: 2;\n}\n.Gallery .many-attachments-buttons {\n display: -ms-flexbox;\n display: flex;\n}\n.Gallery .many-attachments-button {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 2;\n}\n.Gallery .many-attachments-button button {\n padding: 0 2em;\n}\n.Gallery .gallery-row.-grid, .Gallery .gallery-row.-minimal {\n height: auto;\n}\n.Gallery .gallery-row.-grid .gallery-row-inner, .Gallery .gallery-row.-minimal .gallery-row-inner {\n position: relative;\n}\n.Gallery .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-line-pack: stretch;\n align-content: stretch;\n}\n.Gallery .gallery-row-inner.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: -ms-grid;\n display: grid;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.5em;\n -ms-grid-columns: (minmax(15em, 1fr))[auto-fill];\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n}\n.Gallery .gallery-row-inner.-grid .gallery-item {\n margin: 0;\n height: 200px;\n}\n.Gallery .gallery-item {\n margin: 0 0.5em 0 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n min-width: 2em;\n}\n.Gallery .gallery-item:last-child {\n margin: 0;\n}",".Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n}\n.Avatar.-compact {\n width: 32px;\n height: 32px;\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.Avatar .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: 4px;\n border-radius: var(--avatarRadius, 4px);\n}\n.Avatar .avatar.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n}\n.Avatar .avatar.-animated::before {\n display: none;\n}\n.Avatar .avatar.-compact {\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.Avatar .avatar.-placeholder {\n background-color: #182230;\n background-color: var(--fg, #182230);\n}\n.Avatar img {\n width: 100%;\n height: 100%;\n}\n.Avatar .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n border-radius: var(--tooltipRadius);\n}",".MentionLink {\n position: relative;\n white-space: normal;\n display: inline;\n color: var(--link);\n word-break: normal;\n}\n.MentionLink .new, .MentionLink .original {\n display: inline;\n border-radius: 2px;\n}\n.MentionLink .mention-avatar {\n border-radius: var(--avatarAltRadius, 10px);\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin-right: 0.2em;\n}\n.MentionLink .full {\n position: absolute;\n display: inline-block;\n pointer-events: none;\n opacity: 0;\n top: 100%;\n left: 0;\n height: 100%;\n word-wrap: normal;\n white-space: nowrap;\n transition: opacity 0.2s ease;\n z-index: 1;\n margin-top: 0.25em;\n padding: 0.5em;\n -webkit-user-select: all;\n -moz-user-select: all;\n -ms-user-select: all;\n user-select: all;\n}\n.MentionLink .short.-with-tooltip, .MentionLink .you {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.MentionLink .short, .MentionLink .full {\n white-space: nowrap;\n}\n.MentionLink .shortName {\n white-space: normal;\n}\n.MentionLink .new .at {\n color: var(--link);\n opacity: 0.8;\n display: inline-block;\n line-height: 1;\n padding: 0 0.1em;\n vertical-align: -25%;\n margin: 0;\n}\n.MentionLink .new.-striped .shortName, .MentionLink .new.-striped .full {\n background-image: repeating-linear-gradient(135deg, var(--____highlight-tintColor), var(--____highlight-tintColor) 5px, var(--____highlight-tintColor2) 5px, var(--____highlight-tintColor2) 10px);\n}\n.MentionLink .new.-solid .shortName, .MentionLink .new.-solid .full {\n background-image: linear-gradient(var(--____highlight-tintColor2), var(--____highlight-tintColor2));\n}\n.MentionLink .new.-side .shortName, .MentionLink .new.-side .userNameFull {\n box-shadow: 0 -5px 3px -4px inset var(--____highlight-solidColor);\n}\n.MentionLink:hover .new .full {\n opacity: 1;\n pointer-events: initial;\n}\n.MentionLink .serverName.-faded {\n color: var(--faintLink, #d8a070);\n}\n.MentionLink .full .-faded {\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}",".MentionsLine {\n word-break: break-all;\n}\n.MentionsLine .mention-link:not(:first-child)::before {\n content: \" \";\n}\n.MentionsLine .showMoreLess {\n margin-left: 0.5em;\n white-space: normal;\n color: var(--link);\n}",".HashtagLink {\n position: relative;\n white-space: normal;\n display: inline-block;\n color: var(--link);\n}",".RichContent blockquote {\n margin: 0.2em 0 0.2em 2em;\n font-style: italic;\n}\n.RichContent pre {\n overflow: auto;\n}\n.RichContent code,\n.RichContent samp,\n.RichContent kbd,\n.RichContent var,\n.RichContent pre {\n font-family: var(--postCodeFont, monospace);\n}\n.RichContent p {\n margin: 0 0 1em 0;\n}\n.RichContent p:last-child {\n margin: 0 0 0 0;\n}\n.RichContent h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n}\n.RichContent h2 {\n font-size: 1.1em;\n margin: 1em 0;\n}\n.RichContent h3 {\n font-size: 1em;\n margin: 1.2em 0;\n}\n.RichContent h4 {\n margin: 1.1em 0;\n}\n.RichContent .img {\n display: inline-block;\n}\n.RichContent .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n}\n.RichContent .img,\n.RichContent video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n -o-object-fit: contain;\n object-fit: contain;\n}",".poll .votes {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0 0 0.5em;\n}\n.poll .poll-option {\n margin: 0.75em 0.5em;\n}\n.poll .option-result {\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n position: relative;\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.poll .option-result-label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n}\n.poll .result-percentage {\n width: 3.5em;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.poll .result-fill {\n height: 100%;\n position: absolute;\n color: #b9b9ba;\n color: var(--pollText, #b9b9ba);\n background-color: #151e2a;\n background-color: var(--poll, #151e2a);\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n top: 0;\n left: 0;\n transition: width 0.5s;\n}\n.poll .option-vote {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.poll input {\n width: 3.5em;\n}\n.poll .footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.poll.loading * {\n cursor: progress;\n}\n.poll .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n}",".StatusBody {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.StatusBody .emoji {\n --_still_image-label-scale: 0.5;\n width: 50px;\n height: 50px;\n}\n.StatusBody .attachments {\n margin-top: 0.5em;\n}\n.StatusBody .text, .StatusBody .summary {\n font-family: var(--postFont, sans-serif);\n white-space: pre-wrap;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n line-height: var(--post-line-height);\n}\n.StatusBody .summary {\n display: block;\n font-style: italic;\n padding-bottom: 0.5em;\n}\n.StatusBody .text.-single-line {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n height: 1.4em;\n}\n.StatusBody .summary-wrapper {\n margin-bottom: 0.5em;\n border-style: solid;\n border-width: 0 0 1px 0;\n border-color: var(--border, #222);\n -ms-flex-positive: 0;\n flex-grow: 0;\n}\n.StatusBody .summary-wrapper.-tall {\n position: relative;\n}\n.StatusBody .summary-wrapper.-tall .summary {\n max-height: 2em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.StatusBody .text-wrapper {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.StatusBody .text-wrapper.-tall-status {\n position: relative;\n height: 220px;\n overflow-x: hidden;\n overflow-y: hidden;\n z-index: 1;\n}\n.StatusBody .text-wrapper.-tall-status .media-body {\n min-height: 0;\n -webkit-mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, linear-gradient(to top, white, white);\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.StatusBody .tall-status-hider, .StatusBody .tall-subject-hider, .StatusBody .status-unhider, .StatusBody .cw-status-hider {\n display: inline-block;\n word-break: break-all;\n width: 100%;\n text-align: center;\n}\n.StatusBody .tall-status-hider {\n position: absolute;\n height: 70px;\n margin-top: 150px;\n line-height: 110px;\n z-index: 2;\n}\n.StatusBody .tall-subject-hider {\n padding-bottom: 0.5em;\n}\n.StatusBody .status-unhider, .StatusBody .cw-status-hider {\n word-break: break-all;\n}\n.StatusBody .status-unhider svg, .StatusBody .cw-status-hider svg {\n color: inherit;\n}\n.StatusBody .greentext {\n color: #0fa00f;\n color: var(--postGreentext, #0fa00f);\n}\n.StatusBody .cyantext {\n color: var(--postCyantext, #0095ff);\n}\n.StatusBody.-compact {\n -ms-flex-align: top;\n align-items: top;\n -ms-flex-direction: row;\n flex-direction: row;\n --emoji-size: 16px;\n}\n.StatusBody.-compact .body, .StatusBody.-compact .attachments {\n max-height: 3.25em;\n}\n.StatusBody.-compact .body {\n overflow: hidden;\n white-space: normal;\n min-width: 5em;\n -ms-flex: 5 1 auto;\n flex: 5 1 auto;\n -webkit-mask-size: auto 3.5em, auto auto;\n mask-size: auto 3.5em, auto auto;\n -webkit-mask-position: 0 0, 0 0;\n mask-position: 0 0, 0 0;\n -webkit-mask-repeat: repeat-x, repeat;\n mask-repeat: repeat-x, repeat;\n -webkit-mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.StatusBody.-compact .attachments {\n margin-top: 0;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n min-width: 5em;\n height: 100%;\n margin-left: 0.5em;\n}\n.StatusBody.-compact .summary-wrapper {\n line-height: inherit;\n margin: 0;\n border: none;\n display: inline-block;\n}\n.StatusBody.-compact .summary-wrapper .summary::after {\n content: \": \";\n}\n.StatusBody.-compact .text-wrapper {\n display: inline-block;\n}",".link-preview-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n border-style: solid;\n border-width: 1px;\n border-radius: 10px;\n border-radius: var(--attachmentRadius, 10px);\n border-color: #222;\n border-color: var(--border, #222);\n}\n.link-preview-card .card-image {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n}\n.link-preview-card .card-image img {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n border-radius: 10px;\n border-radius: var(--attachmentRadius, 10px);\n}\n.link-preview-card .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.link-preview-card .card-host {\n font-size: 0.85em;\n}\n.link-preview-card .card-description {\n margin: 0.5em 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n max-height: calc(1.2em * 3 - 1px);\n}\n.link-preview-card .nsfw-alert {\n margin: 2em 0;\n}",".StatusContent {\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.StatusContent img.emoji, .StatusContent video.emoji {\n width: 50px;\n height: 50px;\n}",".post-status-form {\n position: relative;\n}\n.post-status-form .attachments {\n margin-bottom: 0.5em;\n}\n.post-status-form .form-bottom {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n}\n.post-status-form .form-bottom button {\n width: 10em;\n}\n.post-status-form .form-bottom p {\n margin: 0.35em;\n padding: 0.35em;\n display: -ms-flexbox;\n display: flex;\n}\n.post-status-form .form-bottom-left {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n}\n.post-status-form .preview-heading {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0.5em;\n}\n.post-status-form .preview-toggle {\n -ms-flex: 1;\n flex: 1;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.post-status-form .preview-toggle:hover {\n text-decoration: underline;\n}\n.post-status-form .preview-toggle svg, .post-status-form .preview-toggle i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n}\n.post-status-form .preview-container {\n margin-bottom: 1em;\n}\n.post-status-form .preview-error {\n font-style: italic;\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.post-status-form .preview-status {\n border: 1px solid #222;\n border: 1px solid var(--border, #222);\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n padding: 0.5em;\n margin: 0;\n}\n.post-status-form .text-format .only-format {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.post-status-form .visibility-tray {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding-top: 5px;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n.post-status-form .media-upload-icon, .post-status-form .poll-icon, .post-status-form .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n -ms-flex: 1;\n flex: 1;\n padding: 0 0.1em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.post-status-form .media-upload-icon.selected svg, .post-status-form .media-upload-icon.selected i, .post-status-form .media-upload-icon.selected label, .post-status-form .media-upload-icon:hover svg, .post-status-form .media-upload-icon:hover i, .post-status-form .media-upload-icon:hover label, .post-status-form .poll-icon.selected svg, .post-status-form .poll-icon.selected i, .post-status-form .poll-icon.selected label, .post-status-form .poll-icon:hover svg, .post-status-form .poll-icon:hover i, .post-status-form .poll-icon:hover label, .post-status-form .emoji-icon.selected svg, .post-status-form .emoji-icon.selected i, .post-status-form .emoji-icon.selected label, .post-status-form .emoji-icon:hover svg, .post-status-form .emoji-icon:hover i, .post-status-form .emoji-icon:hover label {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.post-status-form .media-upload-icon.disabled svg, .post-status-form .media-upload-icon.disabled i, .post-status-form .poll-icon.disabled svg, .post-status-form .poll-icon.disabled i, .post-status-form .emoji-icon.disabled svg, .post-status-form .emoji-icon.disabled i {\n cursor: not-allowed;\n color: #666;\n color: var(--btnDisabledText, #666);\n}\n.post-status-form .media-upload-icon.disabled svg:hover, .post-status-form .media-upload-icon.disabled i:hover, .post-status-form .poll-icon.disabled svg:hover, .post-status-form .poll-icon.disabled i:hover, .post-status-form .emoji-icon.disabled svg:hover, .post-status-form .emoji-icon.disabled i:hover {\n color: #666;\n color: var(--btnDisabledText, #666);\n}\n.post-status-form .media-upload-icon {\n -ms-flex-order: 1;\n order: 1;\n -ms-flex-pack: left;\n justify-content: left;\n}\n.post-status-form .emoji-icon {\n -ms-flex-order: 2;\n order: 2;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.post-status-form .poll-icon {\n -ms-flex-order: 3;\n order: 3;\n -ms-flex-pack: right;\n justify-content: right;\n}\n.post-status-form .error {\n text-align: center;\n}\n.post-status-form .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n}\n.post-status-form .media-upload-wrapper img, .post-status-form .media-upload-wrapper video {\n -o-object-fit: contain;\n object-fit: contain;\n max-height: 10em;\n}\n.post-status-form .media-upload-wrapper .video {\n max-height: 10em;\n}\n.post-status-form .media-upload-wrapper input {\n -ms-flex: 1;\n flex: 1;\n width: 100%;\n}\n.post-status-form .status-input-wrapper {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n width: 100%;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.post-status-form .btn[disabled] {\n cursor: not-allowed;\n}\n.post-status-form form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n}\n.post-status-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n}\n.post-status-form .form-post-body {\n box-sizing: content-box;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n}\n.post-status-form .form-post-body.scrollable-form {\n overflow-y: auto;\n}\n.post-status-form .main-input {\n position: relative;\n}\n.post-status-form .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n}\n.post-status-form .character-counter.error {\n color: #ff0000;\n color: var(--cRed, #ff0000);\n}\n.post-status-form .btn[disabled] {\n cursor: not-allowed;\n}\n@keyframes fade-in {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 0.6;\n}\n}\n@keyframes fade-out {\nfrom {\n opacity: 0.6;\n}\nto {\n opacity: 0;\n}\n}\n.post-status-form .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n opacity: 0.6;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n border: 2px dashed #b9b9ba;\n border: 2px dashed var(--text, #b9b9ba);\n}",".remote-follow {\n max-width: 220px;\n}\n.remote-follow .remote-button {\n width: 100%;\n min-height: 2em;\n}",".dark-overlay::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgba(27, 31, 35, 0.5);\n z-index: 99;\n}\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 999;\n cursor: default;\n display: block;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.dialog-modal.panel .dialog-modal-heading .title {\n text-align: center;\n}\n.dialog-modal.panel .dialog-modal-content {\n margin: 0;\n padding: 1rem 1rem;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n white-space: normal;\n}\n.dialog-modal.panel .dialog-modal-footer {\n margin: 0;\n padding: 0.5em 0.5em;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n border-top: 1px solid #222;\n border-top: 1px solid var(--border, #222);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.dialog-modal.panel .dialog-modal-footer button {\n width: auto;\n margin-left: 0.5rem;\n}","@charset \"UTF-8\";\n.popover-trigger-button {\n display: inline-block;\n}\n.popover {\n z-index: 500;\n position: absolute;\n min-width: 0;\n}\n.popover-default {\n transition: opacity 0.3s;\n border-radius: 4px;\n border-radius: var(--btnRadius, 4px);\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #b9b9ba;\n color: var(--popoverText, #b9b9ba);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.popover-default:after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n}\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: 200;\n white-space: nowrap;\n}\n.dropdown-menu .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #222;\n border-top: 1px solid var(--border, #222);\n}\n.dropdown-menu .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0px;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n --btnText: var(--popoverText, $fallback--text);\n}\n.dropdown-menu .dropdown-item-icon svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, #666);\n}\n.dropdown-menu .dropdown-item:active, .dropdown-menu .dropdown-item:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenuPopover, #151e2a);\n box-shadow: none;\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}\n.dropdown-menu .dropdown-item:active svg, .dropdown-menu .dropdown-item:hover svg {\n color: var(--selectedMenuPopoverIcon, #666);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}\n.dropdown-menu .dropdown-item .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0px;\n background-color: #182230;\n background-color: var(--input, #182230);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n}\n.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"\\2713\";\n}\n.dropdown-menu .dropdown-item .menu-checkbox.-radio {\n border-radius: 9999px;\n}\n.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"\\2022\";\n}\n.dropdown-menu .button-default.dropdown-item,\n.dropdown-menu .button-default.dropdown-item i[class*=icon-] {\n color: #b9b9ba;\n color: var(--btnText, #b9b9ba);\n}\n.dropdown-menu .button-default.dropdown-item:active {\n background-color: #151e2a;\n background-color: var(--selectedMenuPopover, #151e2a);\n color: #d8a070;\n color: var(--selectedMenuPopoverText, #d8a070);\n}\n.dropdown-menu .button-default.dropdown-item:disabled {\n color: #b9b9ba;\n color: var(--btnDisabledText, #b9b9ba);\n}\n.dropdown-menu .button-default.dropdown-item.toggled {\n color: #b9b9ba;\n color: var(--btnToggledText, #b9b9ba);\n}",".moderation-tools-popover {\n height: 100%;\n}\n.moderation-tools-popover .trigger {\n display: -ms-flexbox !important;\n display: flex !important;\n height: 100%;\n}\n.moderation-tools-button svg, .moderation-tools-button i {\n font-size: 0.8em;\n}",".AccountActions .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n}\n.AccountActions .ellipsis-button:not(:hover) .icon {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}",".user-card {\n position: relative;\n z-index: 1;\n}\n.user-card:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.user-card .panel-heading {\n padding: 0.5em 0;\n text-align: center;\n box-shadow: none;\n background: transparent;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: stretch;\n align-items: stretch;\n position: relative;\n}\n.user-card .panel-body {\n word-wrap: break-word;\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n position: relative;\n}\n.user-card .background-image {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n -webkit-mask: linear-gradient(to top, white, transparent) bottom no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white, transparent) bottom no-repeat, linear-gradient(to top, white, white);\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n background-size: cover;\n -webkit-mask-size: 100% 60%;\n mask-size: 100% 60%;\n border-top-left-radius: calc(var(--panelRadius) - 1px);\n border-top-right-radius: calc(var(--panelRadius) - 1px);\n background-color: var(--profileBg);\n z-index: -2;\n}\n.user-card .background-image.hide-bio {\n -webkit-mask-size: 100% 40px;\n mask-size: 100% 40px;\n}\n.user-card-bio {\n text-align: center;\n display: block;\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n}\n.user-card-bio a {\n color: #d8a070;\n color: var(--postLink, #d8a070);\n}\n.user-card-bio img {\n -o-object-fit: contain;\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n}\n.user-card-rounded-t {\n border-top-left-radius: 10px;\n border-top-left-radius: var(--panelRadius, 10px);\n border-top-right-radius: 10px;\n border-top-right-radius: var(--panelRadius, 10px);\n}\n.user-card-rounded {\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n}\n.user-card-bordered {\n border-width: 1px;\n border-style: solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.user-info {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n padding: 0 26px;\n}\n.user-info .container {\n min-width: 0;\n padding: 16px 0 6px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n max-height: 56px;\n}\n.user-info .container > * {\n min-width: 0;\n}\n.user-info .container .Avatar {\n --_avatarShadowBox: var(--avatarShadow);\n --_avatarShadowFilter: var(--avatarShadowFilter);\n --_avatarShadowInset: var(--avatarShadowInset);\n -ms-flex: 1 0 100%;\n flex: 1 0 100%;\n width: 56px;\n height: 56px;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.user-info-avatar-link {\n position: relative;\n cursor: pointer;\n}\n.user-info-avatar-link-overlay {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.3);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n border-radius: 4px;\n border-radius: var(--avatarRadius, 4px);\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.user-info-avatar-link-overlay svg {\n color: #FFF;\n}\n.user-info-avatar-link:hover .user-info-avatar-link-overlay {\n opacity: 1;\n}\n.user-info .external-link-button, .user-info .edit-profile-button {\n cursor: pointer;\n width: 2.5em;\n text-align: center;\n margin: -0.5em 0;\n padding: 0.5em 0;\n}\n.user-info .external-link-button:not(:hover) .icon, .user-info .edit-profile-button:not(:hover) .icon {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.user-info .user-summary {\n display: block;\n margin-left: 0.6em;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n z-index: 1;\n line-height: 2em;\n --emoji-size: 1.7em;\n}\n.user-info .user-summary .top-line,\n.user-info .user-summary .bottom-line {\n display: -ms-flexbox;\n display: flex;\n}\n.user-info .user-name {\n text-overflow: ellipsis;\n overflow: hidden;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n margin-right: 1em;\n font-size: 1.1em;\n}\n.user-info .bottom-line {\n font-weight: light;\n font-size: 1.1em;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n.user-info .bottom-line .lock-icon {\n margin-left: 0.5em;\n}\n.user-info .bottom-line .user-screen-name {\n min-width: 1px;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.user-info .bottom-line .dailyAvg {\n min-width: 1px;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n margin-left: 1em;\n font-size: 0.7em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.user-info .bottom-line .user-role {\n -ms-flex: none;\n flex: none;\n color: #b9b9ba;\n color: var(--alertNeutralText, #b9b9ba);\n background-color: #182230;\n background-color: var(--alertNeutral, #182230);\n}\n.user-info .user-meta {\n margin-bottom: 0.15em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: baseline;\n align-items: baseline;\n line-height: 22px;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.user-info .user-meta .following {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n margin: 0;\n margin-bottom: 0.25em;\n text-align: left;\n}\n.user-info .user-meta .highlighter {\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -0.5em;\n -ms-flex-item-align: start;\n align-self: start;\n}\n.user-info .user-meta .highlighter .userHighlightCl {\n padding: 2px 10px;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.user-info .user-meta .highlighter .userHighlightSel {\n padding-top: 0;\n padding-bottom: 0;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.user-info .user-meta .highlighter .userHighlightText {\n width: 70px;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.user-info .user-meta .highlighter .userHighlightCl,\n.user-info .user-meta .highlighter .userHighlightText,\n.user-info .user-meta .highlighter .userHighlightSel {\n vertical-align: top;\n margin-right: 0.5em;\n margin-bottom: 0.25em;\n}\n.user-info .user-interactions {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -0.75em;\n}\n.user-info .user-interactions > * {\n margin: 0 0.75em 0.6em 0;\n white-space: nowrap;\n min-width: 95px;\n}\n.user-info .user-interactions button {\n margin: 0;\n}\n.sidebar .edit-profile-button {\n display: none;\n}\n.user-counts {\n display: -ms-flexbox;\n display: flex;\n line-height: 16px;\n padding: 0.5em 1.5em 0em 1.5em;\n text-align: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.user-count {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n padding: 0.5em 0 0.5em 0;\n margin: 0 0.5em;\n}\n.user-count h5 {\n font-size: 1em;\n font-weight: bolder;\n margin: 0 0 0.25em;\n}\n.user-count a {\n text-decoration: none;\n}",".user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}",".NavPanel .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n}\n.NavPanel ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.NavPanel li {\n position: relative;\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n padding: 0;\n}\n.NavPanel li:first-child .menu-item {\n border-top-right-radius: 10px;\n border-top-right-radius: var(--panelRadius, 10px);\n border-top-left-radius: 10px;\n border-top-left-radius: var(--panelRadius, 10px);\n}\n.NavPanel li:last-child .menu-item {\n border-bottom-right-radius: 10px;\n border-bottom-right-radius: var(--panelRadius, 10px);\n border-bottom-left-radius: 10px;\n border-bottom-left-radius: var(--panelRadius, 10px);\n}\n.NavPanel li:last-child {\n border: none;\n}\n.NavPanel .menu-item {\n display: block;\n box-sizing: border-box;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: #d8a070;\n color: var(--link, #d8a070);\n}\n.NavPanel .menu-item:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #d8a070;\n color: var(--selectedMenuText, #d8a070);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.NavPanel .menu-item.router-link-active {\n font-weight: bolder;\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #b9b9ba;\n color: var(--selectedMenuText, #b9b9ba);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.NavPanel .menu-item.router-link-active:hover {\n text-decoration: underline;\n}\n.NavPanel .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n}\n.NavPanel .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n border-top: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.NavPanel .timelines {\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.NavPanel .fa-scale-110 {\n margin-right: 0.8em;\n}\n.NavPanel .badge {\n position: absolute;\n right: 0.6rem;\n top: 1.25em;\n}",".features-panel li {\n line-height: 24px;\n}",".who-to-follow * {\n vertical-align: middle;\n}\n.who-to-follow img {\n width: 32px;\n height: 32px;\n}\n.who-to-follow {\n padding: 0em 1em;\n margin: 0px;\n}\n.who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px;\n margin: 1em 0em;\n}\n.who-to-follow-more {\n padding: 0px;\n margin: 1em 0em;\n text-align: center;\n}",".floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: 1000;\n max-width: 25em;\n}\n.floating-shout.-left {\n left: 0.5em;\n}\n.floating-shout:not(.-left) {\n right: 0.5em;\n}\n.shout-panel .shout-heading {\n cursor: pointer;\n}\n.shout-panel .shout-heading .icon {\n color: #b9b9ba;\n color: var(--panelText, #b9b9ba);\n margin-right: 0.5em;\n}\n.shout-panel .shout-heading .title {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n}\n.shout-panel .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n}\n.shout-panel .shout-window-container {\n height: 100%;\n}\n.shout-panel .shout-message {\n display: -ms-flexbox;\n display: flex;\n padding: 0.2em 0.5em;\n}\n.shout-panel .shout-avatar img {\n height: 24px;\n width: 24px;\n border-radius: 4px;\n border-radius: var(--avatarRadius, 4px);\n margin-right: 0.5em;\n margin-top: 0.25em;\n}\n.shout-panel .shout-input {\n display: -ms-flexbox;\n display: flex;\n}\n.shout-panel .shout-input textarea {\n -ms-flex: 1;\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n}\n.shout-panel .shout-panel .title {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}",".modal-view {\n z-index: 2000;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n}\n.modal-view > * {\n pointer-events: initial;\n}\n.modal-view.modal-background {\n pointer-events: initial;\n background-color: rgba(0, 0, 0, 0.5);\n}\n.modal-view.open {\n opacity: 1;\n}\n@keyframes modal-background-fadein {\nfrom {\n background-color: rgba(0, 0, 0, 0);\n}\nto {\n background-color: rgba(0, 0, 0, 0.5);\n}\n}",".panel-loading {\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n font-size: 2em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.panel-loading .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}",".async-component-error {\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.async-component-error .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n}",".settings-modal {\n overflow: hidden;\n}\n.settings-modal .setting-list,\n.settings-modal .option-list {\n list-style-type: none;\n padding-left: 2em;\n}\n.settings-modal .setting-list li,\n.settings-modal .option-list li {\n margin-bottom: 0.5em;\n}\n.settings-modal .setting-list .suboptions,\n.settings-modal .option-list .suboptions {\n margin-top: 0.3em;\n}\n.settings-modal.peek .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n}\n@media all and (max-width: 800px) {\n.settings-modal.peek .settings-modal-panel {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n}\n}\n.settings-modal .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n}\n@media all and (max-width: 800px) {\n.settings-modal .settings-modal-panel {\n max-width: 100vw;\n height: 100%;\n}\n}\n.settings-modal .settings-modal-panel > .panel-body {\n height: 100%;\n overflow-y: hidden;\n}\n.settings-modal .settings-modal-panel > .panel-body .btn {\n min-height: 2em;\n min-width: 10em;\n padding: 0 2em;\n}\n.settings-modal .settings-footer {\n display: -ms-flexbox;\n display: flex;\n}\n.settings-modal .settings-footer > * {\n margin-right: 0.5em;\n}\n.settings-modal .settings-footer .extra-content {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}",".modal-view.media-modal-view {\n z-index: 9000;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow: hidden;\n}\n.modal-view.media-modal-view .modal-view-button-arrow,\n.modal-view.media-modal-view .modal-view-button-hide {\n opacity: 0.75;\n}\n.modal-view.media-modal-view .modal-view-button-arrow:focus, .modal-view.media-modal-view .modal-view-button-arrow:hover,\n.modal-view.media-modal-view .modal-view-button-hide:focus,\n.modal-view.media-modal-view .modal-view-button-hide:hover {\n outline: none;\n box-shadow: none;\n}\n.modal-view.media-modal-view .modal-view-button-arrow:hover,\n.modal-view.media-modal-view .modal-view-button-hide:hover {\n opacity: 1;\n}\n@keyframes media-fadein {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n.media-modal-view .modal-image-container {\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-direction: column;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.media-modal-view .modal-image-container-inner {\n width: 100%;\n height: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.media-modal-view .description,\n.media-modal-view .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n}\n.media-modal-view .description {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n}\n.media-modal-view .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image;\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n}\n.media-modal-view .modal-image.loading {\n opacity: 0.5;\n}\n.media-modal-view .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.media-modal-view .loading-spinner svg {\n color: white;\n}\n.media-modal-view .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: 3em;\n width: 3em;\n}\n.media-modal-view .modal-view-button .button-icon {\n position: absolute;\n height: 3em;\n width: 3em;\n font-size: 1rem;\n line-height: 3em;\n color: #FFF;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.3);\n}\n.media-modal-view .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: calc(3em / 2);\n width: 3em;\n height: 3em;\n}\n.media-modal-view .modal-view-button-arrow .arrow-icon {\n position: absolute;\n top: 0;\n line-height: 3em;\n color: #FFF;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.3);\n}\n.media-modal-view .modal-view-button-arrow--prev {\n left: 0;\n}\n.media-modal-view .modal-view-button-arrow--prev .arrow-icon {\n left: 0.5em;\n}\n.media-modal-view .modal-view-button-arrow--next {\n right: 0;\n}\n.media-modal-view .modal-view-button-arrow--next .arrow-icon {\n right: 0.5em;\n}\n.media-modal-view .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n}\n.media-modal-view .modal-view-button-hide .button-icon {\n top: 0.5em;\n right: 0.5em;\n}",".side-drawer-container {\n position: fixed;\n z-index: 1000;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n.side-drawer-container-open {\n transform: translate(0%);\n}\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgba(0, 0, 0, 0.5);\n}\n.side-drawer-darken-closed {\n background-color: rgba(0, 0, 0, 0);\n}\n.side-drawer-click-outside {\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n}\n.side-drawer {\n overflow-x: hidden;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition: 0.35s;\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n -ms-flex: 0 0 80%;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n background-color: #121a24;\n background-color: var(--popover, #121a24);\n color: #d8a070;\n color: var(--popoverText, #d8a070);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n.side-drawer .badge {\n margin-left: 10px;\n}\n.side-drawer-logo-wrapper {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.85em;\n}\n.side-drawer-logo-wrapper img {\n -ms-flex: none;\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n}\n.side-drawer-logo-wrapper span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.side-drawer-click-outside-closed {\n -ms-flex: 0 0 0px;\n flex: 0 0 0;\n}\n.side-drawer-closed {\n transform: translate(-100%);\n}\n.side-drawer-heading {\n background: transparent;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n padding: 0;\n margin: 0;\n}\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.side-drawer ul:last-child {\n border: 0;\n}\n.side-drawer li {\n padding: 0;\n}\n.side-drawer li a, .side-drawer li button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n}\n.side-drawer li a:hover, .side-drawer li button:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenuPopover, #151e2a);\n color: #b9b9ba;\n color: var(--selectedMenuPopoverText, #b9b9ba);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n}",".MobilePostButton.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n background-color: #182230;\n background-color: var(--btn, #182230);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3), 0px 4px 6px rgba(0, 0, 0, 0.3);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n}\n.MobilePostButton.hidden {\n transform: translateY(150%);\n}\n.MobilePostButton svg {\n font-size: 1.5em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n@media all and (min-width: 801px) {\n.new-status-button:not(.always-show) {\n display: none;\n}\n}",".ReplyButton {\n display: -ms-flexbox;\n display: flex;\n}\n.ReplyButton > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n}\n.ReplyButton .action-counter {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ReplyButton .interactive:hover .svg-inline--fa, .ReplyButton .interactive.-active .svg-inline--fa {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}",".FavoriteButton {\n display: -ms-flexbox;\n display: flex;\n}\n.FavoriteButton > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n}\n.FavoriteButton .action-counter {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.FavoriteButton .interactive .svg-inline--fa {\n animation-duration: 0.6s;\n}\n.FavoriteButton .interactive:hover .svg-inline--fa, .FavoriteButton .interactive.-favorited .svg-inline--fa {\n color: orange;\n color: var(--cOrange, orange);\n}",".custom-reaction {\n width: 30px !important;\n}\n.ReactButton {\n /* override of popover internal stuff */\n}\n.ReactButton .reaction-picker-filter {\n padding: 0.5em;\n display: -ms-flexbox;\n display: flex;\n}\n.ReactButton .reaction-picker-filter input {\n -ms-flex: 1;\n flex: 1;\n}\n.ReactButton .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, #222);\n}\n.ReactButton .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, linear-gradient(to top, white, white);\n transition: -webkit-mask-size 150ms;\n transition: mask-size 150ms;\n transition: mask-size 150ms, -webkit-mask-size 150ms;\n -webkit-mask-size: 100% 20px, 100% 20px, auto;\n mask-size: 100% 20px, 100% 20px, auto;\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n}\n.ReactButton .reaction-picker .emoji-button {\n cursor: pointer;\n -ms-flex-preferred-size: 20%;\n flex-basis: 20%;\n line-height: 1.5;\n -ms-flex-line-pack: center;\n align-content: center;\n}\n.ReactButton .reaction-picker .emoji-button:hover {\n transform: scale(1.25);\n}\n.ReactButton .popover-trigger-button {\n width: auto;\n}\n.ReactButton .popover-trigger {\n padding: 10px;\n margin: -10px;\n}\n.ReactButton .popover-trigger:hover .svg-inline--fa {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}",".RetweetButton {\n display: -ms-flexbox;\n display: flex;\n}\n.RetweetButton > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n}\n.RetweetButton .action-counter {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.RetweetButton .interactive .svg-inline--fa {\n animation-duration: 0.6s;\n}\n.RetweetButton .interactive:hover .svg-inline--fa, .RetweetButton .interactive.-repeated .svg-inline--fa {\n color: #0fa00f;\n color: var(--cGreen, #0fa00f);\n}",".ExtraButtons {\n /* override of popover internal stuff */\n}\n.ExtraButtons .popover-trigger-button {\n width: auto;\n}\n.ExtraButtons .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n}\n.ExtraButtons .popover-trigger:hover .svg-inline--fa {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}",".avatars {\n display: -ms-flexbox;\n display: flex;\n margin: 0;\n padding: 0;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n height: 24px;\n}\n.avatars .avatars-item {\n margin: 0 0 5px 5px;\n}\n.avatars .avatars-item:first-child {\n padding-left: 5px;\n}\n.avatars .avatars-item .avatar-small {\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n height: 24px;\n width: 24px;\n}","/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: #222;\n border-color: var(--border, #222);\n border-style: solid;\n border-width: 1px;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);\n box-shadow: var(--popupShadow);\n /* TODO cleanup this */\n}\n.status-popover.popover .Status.Status {\n border: none;\n}\n.status-popover.popover .status-preview-no-content {\n padding: 1em;\n text-align: center;\n}\n.status-popover.popover .status-preview-no-content i {\n font-size: 2em;\n}",".user-list-popover {\n padding: 0.5em;\n --emoji-size: 16px;\n}\n.user-list-popover .user-list-row {\n padding: 0.25em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.user-list-popover .user-list-row .user-list-names {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n}\n.user-list-popover .user-list-row .user-list-names img {\n width: 1em;\n height: 1em;\n}\n.user-list-popover .user-list-row .user-list-screen-name {\n font-size: 0.65em;\n}",".emoji-reactions {\n display: -ms-flexbox;\n display: flex;\n margin-top: 0.25em;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.unicode-emoji {\n font-size: 210%;\n}\n.emoji-reaction {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.emoji-reaction .reaction-emoji {\n width: 2.55em !important;\n margin-right: 0.25em;\n}\n.emoji-reaction:focus {\n outline: none;\n}\n.emoji-reaction.not-clickable {\n cursor: default;\n}\n.emoji-reaction.not-clickable:hover {\n box-shadow: 0px 0px 2px 0px black, 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n box-shadow: var(--buttonShadow);\n}\n.emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.emoji-reaction-expand:hover {\n text-decoration: underline;\n}\n.picked-reaction {\n border: 1px solid var(--accent, #d8a070);\n margin-left: -1px;\n margin-right: calc(0.5em - 1px);\n}",".Status {\n min-width: 0;\n white-space: normal;\n word-wrap: break-word;\n word-break: break-word;\n}\n.Status:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.Status.-focused {\n background-color: #151e2a;\n background-color: var(--selectedPost, #151e2a);\n color: #b9b9ba;\n color: var(--selectedPostText, #b9b9ba);\n --lightText: var(--selectedPostLightText, $fallback--light);\n --faint: var(--selectedPostFaintText, $fallback--faint);\n --faintLink: var(--selectedPostFaintLink, $fallback--faint);\n --postLink: var(--selectedPostPostLink, $fallback--faint);\n --postFaintLink: var(--selectedPostFaintPostLink, $fallback--faint);\n --icon: var(--selectedPostIcon, $fallback--icon);\n}\n.Status .gravestone {\n padding: var(--status-margin, 0.75em);\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n display: -ms-flexbox;\n display: flex;\n}\n.Status .gravestone .deleted-text {\n margin: 0.5em 0;\n -ms-flex-align: center;\n align-items: center;\n}\n.Status .status-container {\n display: -ms-flexbox;\n display: flex;\n padding: var(--status-margin, 0.75em);\n}\n.Status .status-container > * {\n min-width: 0;\n}\n.Status .status-container.-repeat {\n padding-top: 0;\n}\n.Status .pin {\n padding: var(--status-margin, 0.75em) var(--status-margin, 0.75em) 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n._misclick-prevention .Status {\n pointer-events: none;\n}\n._misclick-prevention .Status .attachments {\n pointer-events: initial;\n cursor: initial;\n}\n.Status .left-side {\n margin-right: var(--status-margin, 0.75em);\n}\n.Status .right-side {\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.Status .usercard {\n margin-bottom: var(--status-margin, 0.75em);\n}\n.Status .status-username {\n white-space: nowrap;\n overflow: hidden;\n max-width: 85%;\n font-weight: bold;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n margin-right: 0.4em;\n text-overflow: ellipsis;\n --_still_image-label-scale: 0.25;\n --emoji-size: 14px;\n}\n.Status .status-favicon {\n height: 18px;\n width: 18px;\n margin-right: 0.4em;\n}\n.Status .status-heading {\n margin-bottom: 0.5em;\n}\n.Status .heading-name-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.3;\n}\n.Status .heading-name-row a {\n display: inline-block;\n word-break: break-all;\n}\n.Status .account-name {\n min-width: 1.6em;\n margin-right: 0.4em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n}\n.Status .heading-left {\n display: -ms-flexbox;\n display: flex;\n min-width: 0;\n}\n.Status .heading-right {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.Status .heading-right .button-unstyled {\n padding: 5px;\n margin: -5px;\n}\n.Status .heading-right .button-unstyled:hover svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\n.Status .heading-right .svg-inline--fa {\n margin-left: 0.25em;\n}\n.Status .glued-label {\n display: -ms-inline-flexbox;\n display: inline-flex;\n white-space: nowrap;\n}\n.Status .timeago {\n margin-right: 0.2em;\n}\n.Status .heading-reply-row {\n position: relative;\n -ms-flex-line-pack: baseline;\n align-content: baseline;\n font-size: 0.85em;\n margin-top: 0.2em;\n line-height: 130%;\n max-width: 100%;\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n.Status .reply-to-popover, .Status .reply-to-no-popover, .Status .mentions {\n min-width: 0;\n margin-right: 0.4em;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.Status .reply-glued-label {\n margin-right: 0.5em;\n}\n.Status .reply-to-popover .reply-to:hover::before {\n content: \"\";\n display: block;\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n}\n.Status .reply-to-popover .faint-link:hover {\n text-decoration: none;\n}\n.Status .reply-to-popover.-strikethrough .reply-to::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n}\n.Status .mentions, .Status .reply-to {\n white-space: nowrap;\n position: relative;\n}\n.Status .mentions-text, .Status .reply-to-text {\n color: var(--faint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Status .mentions-line {\n display: inline;\n}\n.Status .replies {\n margin-top: 0.25em;\n line-height: 1.3;\n font-size: 0.85em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.Status .replies > * {\n margin-right: 0.4em;\n}\n.Status .reply-link {\n height: 17px;\n}\n.Status .repeat-info {\n padding: 0.4em var(--status-margin, 0.75em);\n}\n.Status .repeat-info .repeat-icon {\n color: #0fa00f;\n color: var(--cGreen, #0fa00f);\n}\n.Status .repeater-avatar {\n border-radius: var(--avatarAltRadius, 10px);\n margin-left: 28px;\n width: 20px;\n height: 20px;\n}\n.Status .repeater-name {\n text-overflow: ellipsis;\n margin-right: 0;\n}\n.Status .repeater-name .emoji {\n width: 14px;\n height: 14px;\n vertical-align: middle;\n -o-object-fit: contain;\n object-fit: contain;\n}\n.Status .status-fadein {\n animation-duration: 0.4s;\n animation-name: fadein;\n}\n@keyframes fadein {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n.Status .status-actions {\n position: relative;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n margin-top: var(--status-margin, 0.75em);\n}\n.Status .status-actions > * {\n max-width: 4em;\n -ms-flex: 1;\n flex: 1;\n}\n.Status .muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.Status .muted .status-username, .Status .muted .mute-thread, .Status .muted .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n}\n.Status .muted .status-username, .Status .muted .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.Status .muted .status-username {\n font-weight: normal;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n}\n.Status .muted .mute-thread {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.Status .muted .mute-words {\n -ms-flex: 1 0 5em;\n flex: 1 0 5em;\n margin-left: 0.2em;\n}\n.Status .muted .mute-words::before {\n content: \" \";\n}\n.Status .muted .unmute {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n}\n.Status .reply-form {\n padding-top: 0;\n padding-bottom: 0;\n}\n.Status .reply-body {\n -ms-flex: 1;\n flex: 1;\n}\n.Status .favs-repeated-users {\n margin-top: var(--status-margin, 0.75em);\n}\n.Status .stats {\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n line-height: 1em;\n}\n.Status .avatar-row {\n -ms-flex: 1;\n flex: 1;\n overflow: hidden;\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.Status .avatar-row::before {\n content: \"\";\n position: absolute;\n height: 100%;\n width: 1px;\n left: 0;\n background-color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.Status .stat-count {\n margin-right: var(--status-margin, 0.75em);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.Status .stat-count .stat-title {\n color: var(--faint, rgba(185, 185, 186, 0.5));\n font-size: 0.85em;\n text-transform: uppercase;\n position: relative;\n}\n.Status .stat-count .stat-number {\n font-weight: bolder;\n font-size: 1.1em;\n line-height: 1em;\n}\n.Status .stat-count:hover .stat-title {\n text-decoration: underline;\n}\n@media all and (max-width: 800px) {\n.Status .repeater-avatar {\n margin-left: 20px;\n}\n.Status .post-avatar {\n width: 40px;\n height: 40px;\n}\n.Status .post-avatar.-compact {\n width: 32px;\n height: 32px;\n}\n}",".reaction-emoji {\n width: 40px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Notification {\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n word-wrap: break-word;\n word-break: break-word;\n --emoji-size: 14px;\n}\n.Notification:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.Notification.-muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.Notification.-muted .status-username, .Notification.-muted .mute-thread, .Notification.-muted .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n}\n.Notification.-muted .status-username, .Notification.-muted .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.Notification.-muted .status-username {\n font-weight: normal;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n}\n.Notification.-muted .mute-thread {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.Notification.-muted .mute-words {\n -ms-flex: 1 0 5em;\n flex: 1 0 5em;\n margin-left: 0.2em;\n}\n.Notification.-muted .mute-words::before {\n content: \" \";\n}\n.Notification.-muted .unmute {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n}\n.Notification .type-icon {\n margin: 0 0.1em;\n}\n.Notification.-type--repeat .type-icon {\n color: #0fa00f;\n color: var(--cGreen, #0fa00f);\n}\n.Notification.-type--follow .type-icon {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}\n.Notification.-type--follow-request .type-icon {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}\n.Notification.-type--like .type-icon {\n color: orange;\n color: orange;\n color: var(--cOrange, orange);\n}\n.Notification.-type--move .type-icon {\n color: #0095ff;\n color: var(--cBlue, #0095ff);\n}",".NotificationFilters {\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.NotificationFilters > button {\n line-height: 100%;\n height: 100%;\n width: var(--__panel-heading-height-inner);\n text-align: center;\n}\n.NotificationFilters > button svg {\n font-size: 1.2em;\n}",".Notifications:not(.minimal) {\n padding-bottom: 15em;\n}\n.Notifications .loadmore-error {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.Notifications .notification {\n position: relative;\n}\n.Notifications .notification .notification-overlay {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n pointer-events: none;\n}\n.Notifications .notification.unseen .notification-overlay {\n background-image: linear-gradient(135deg, var(--badgeNotification, #ff0000) 4px, transparent 10px);\n}\n.notification {\n box-sizing: border-box;\n /* TODO cleanup this */\n}\n.notification:hover .animated.Avatar canvas {\n display: none;\n}\n.notification:hover .animated.Avatar img {\n visibility: visible;\n}\n.notification:last-child .Notification {\n border-bottom: none;\n}\n.notification .non-mention {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n padding: 0.6em;\n min-width: 0;\n --link: var(--faintLink);\n --text: var(--faint);\n}\n.notification .non-mention .avatar-container {\n width: 32px;\n height: 32px;\n}\n.notification .follow-request-accept:hover {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.notification .follow-request-reject:hover {\n color: #ff0000;\n color: var(--cRed, #ff0000);\n}\n.notification .follow-text, .notification .move-text {\n padding: 0.5em 0;\n overflow-wrap: break-word;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.notification .follow-text .follow-name, .notification .move-text .follow-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.notification .Status {\n -ms-flex: 1;\n flex: 1;\n}\n.notification time {\n white-space: nowrap;\n}\n.notification .notification-right {\n -ms-flex: 1;\n flex: 1;\n padding-left: 0.8em;\n min-width: 0;\n}\n.notification .notification-right .timeago {\n min-width: 3em;\n text-align: right;\n}\n.notification .emoji-reaction-emoji {\n font-size: 1.3em;\n}\n.notification .notification-details {\n min-width: 0;\n word-wrap: break-word;\n line-height: var(--post-line-height);\n position: relative;\n overflow: hidden;\n width: 100%;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.notification .notification-details .name-and-action {\n -ms-flex: 1;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.notification .notification-details .username {\n font-weight: bolder;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.notification .notification-details .timeago {\n margin-right: 0.2em;\n}\n.notification .notification-details .status-content {\n margin: 0;\n max-height: 300px;\n}\n.notification .notification-details h1 {\n word-break: break-all;\n margin: 0 0 0.3em;\n padding: 0;\n font-size: 1em;\n line-height: 1.5;\n}\n.notification .notification-details h1 small {\n font-weight: lighter;\n}\n.notification .notification-details p {\n margin: 0;\n margin-top: 0;\n margin-bottom: 0.3em;\n}",".MobileNav .mobile-nav {\n display: -ms-grid;\n display: grid;\n line-height: var(--navbar-height);\n -ms-grid-rows: 50px;\n grid-template-rows: 50px;\n -ms-grid-columns: 2fr auto;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n}\n.MobileNav .mobile-nav a {\n color: var(--topBarLink, #d8a070);\n}\n.MobileNav .mobile-inner-nav {\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.MobileNav .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n}\n.MobileNav .site-name {\n padding: 0 0.3em;\n display: inline-block;\n}\n.MobileNav .item {\n /* moslty just to get rid of extra whitespaces */\n display: -ms-flexbox;\n display: flex;\n}\n.MobileNav .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: #ff0000;\n background-color: var(--badgeNotification, #ff0000);\n}\n.MobileNav .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: 1001;\n -webkit-overflow-scrolling: touch;\n}\n.MobileNav .mobile-notifications-drawer.-closed {\n transform: translateX(100%);\n box-shadow: none;\n}\n.MobileNav .mobile-notifications-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n z-index: 1;\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: #182230;\n background-color: var(--topBar, #182230);\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--topBarShadow);\n}\n.MobileNav .mobile-notifications-header .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n}\n.MobileNav .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.MobileNav .mobile-notifications .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.MobileNav .mobile-notifications .notifications .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n}\n.MobileNav .mobile-notifications .notifications .panel:after {\n border-radius: 0;\n}\n.MobileNav .mobile-notifications .notifications .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n}",".SearchBar {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: baseline;\n align-items: baseline;\n vertical-align: baseline;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.SearchBar.-expanded {\n width: 100%;\n}\n.SearchBar .search-bar-input,\n.SearchBar .search-button {\n height: 29px;\n}\n.SearchBar .search-bar-input {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n}\n.SearchBar .cancel-search {\n height: 50px;\n}\n.SearchBar .cancel-icon {\n color: #b9b9ba;\n color: var(--btnTopBarText, #b9b9ba);\n}",".DesktopNav {\n width: 100%;\n}\n.DesktopNav a {\n color: var(--topBarLink, #d8a070);\n}\n.DesktopNav .inner-nav {\n display: -ms-grid;\n display: grid;\n -ms-grid-rows: var(--navbar-height);\n grid-template-rows: var(--navbar-height);\n -ms-grid-columns: 2fr auto 2fr;\n grid-template-columns: 2fr auto 2fr;\n grid-template-areas: \"sitename logo actions\";\n box-sizing: border-box;\n padding: 0 1.2em;\n margin: auto;\n max-width: 980px;\n}\n.DesktopNav.-logoLeft .inner-nav {\n -ms-grid-columns: auto 2fr 2fr;\n grid-template-columns: auto 2fr 2fr;\n grid-template-areas: \"logo sitename actions\";\n}\n.DesktopNav .button-default, .DesktopNav .button-default svg {\n color: #b9b9ba;\n color: var(--btnTopBarText, #b9b9ba);\n}\n.DesktopNav .button-default:active {\n background-color: #182230;\n background-color: var(--btnPressedTopBar, #182230);\n color: #b9b9ba;\n color: var(--btnPressedTopBarText, #b9b9ba);\n}\n.DesktopNav .button-default:disabled {\n color: #b9b9ba;\n color: var(--btnDisabledTopBarText, #b9b9ba);\n}\n.DesktopNav .button-default.toggled {\n color: #b9b9ba;\n color: var(--btnToggledTopBarText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnToggledTopBar, #182230);\n}\n.DesktopNav .logo {\n grid-area: logo;\n position: relative;\n transition: opacity;\n transition-timing-function: ease-out;\n transition-duration: 100ms;\n}\n@media all and (min-width: 800px) {\n.DesktopNav .logo {\n opacity: 1 !important;\n}\n}\n.DesktopNav .logo .mask {\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-size: contain;\n mask-size: contain;\n background-color: #182230;\n background-color: var(--topBarText, #182230);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.DesktopNav .logo img {\n display: inline-block;\n height: var(--navbar-height);\n}\n.DesktopNav .nav-icon {\n margin-left: 0.2em;\n width: 2em;\n height: 100%;\n text-align: center;\n}\n.DesktopNav .nav-icon .svg-inline--fa {\n color: #d8a070;\n color: var(--topBarLink, #d8a070);\n}\n.DesktopNav .sitename {\n grid-area: sitename;\n}\n.DesktopNav .actions {\n grid-area: actions;\n}\n.DesktopNav .item {\n -ms-flex: 1;\n flex: 1;\n line-height: var(--navbar-height);\n height: var(--navbar-height);\n overflow: hidden;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.DesktopNav .item.right {\n -ms-flex-pack: end;\n justify-content: flex-end;\n text-align: right;\n}",".list-item:not(:last-child) {\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.list-empty-content {\n text-align: center;\n padding: 10px;\n}",".user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n}\n.user-reporting-panel .panel-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n overflow: hidden;\n}\n.user-reporting-panel-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n}\n.user-reporting-panel-left > div {\n margin-bottom: 1em;\n}\n.user-reporting-panel-left > div:last-child {\n margin-bottom: 0;\n}\n.user-reporting-panel-left p {\n margin-top: 0;\n}\n.user-reporting-panel-left textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n}\n.user-reporting-panel-left .btn {\n min-width: 10em;\n padding: 0 2em;\n}\n.user-reporting-panel-left .alert {\n margin: 1em 0 0 0;\n line-height: 1.3em;\n}\n.user-reporting-panel-right {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow-y: auto;\n}\n.user-reporting-panel-sitem {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n /* TODO cleanup this */\n}\n.user-reporting-panel-sitem > .Status {\n -ms-flex: 1;\n flex: 1;\n}\n.user-reporting-panel-sitem > .checkbox {\n margin: 0.75em;\n}\n@media all and (min-width: 801px) {\n.user-reporting-panel .panel-body {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.user-reporting-panel-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n padding: 1.1em;\n}\n.user-reporting-panel-left > div {\n margin-bottom: 2em;\n}\n.user-reporting-panel-right {\n width: 50%;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n margin-bottom: 12px;\n}\n}",".modal-view.post-form-modal-view {\n -ms-flex-align: start;\n align-items: flex-start;\n}\n.post-form-modal-panel {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n}\n@media (orientation: landscape) {\n.post-form-modal-panel {\n margin-top: 8%;\n}\n}",".global-notice-list {\n position: fixed;\n top: 50px;\n width: 100%;\n pointer-events: none;\n z-index: 1001;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n}\n.global-notice-list .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: -ms-flexbox;\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n}\n.global-notice-list .global-notice .notice-message {\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n}\n.global-notice-list .global-error {\n background-color: var(--alertPopupError, #ff0000);\n color: var(--alertPopupErrorText, #b9b9ba);\n}\n.global-notice-list .global-error .svg-inline--fa {\n color: var(--alertPopupErrorText, #b9b9ba);\n}\n.global-notice-list .global-warning {\n background-color: var(--alertPopupWarning, orange);\n color: var(--alertPopupWarningText, #b9b9ba);\n}\n.global-notice-list .global-warning .svg-inline--fa {\n color: var(--alertPopupWarningText, #b9b9ba);\n}\n.global-notice-list .global-success {\n background-color: var(--alertPopupSuccess, #0fa00f);\n color: var(--alertPopupSuccessText, #b9b9ba);\n}\n.global-notice-list .global-success .svg-inline--fa {\n color: var(--alertPopupSuccessText, #b9b9ba);\n}\n.global-notice-list .global-info {\n background-color: var(--alertPopupNeutral, #182230);\n color: var(--alertPopupNeutralText, #b9b9ba);\n}\n.global-notice-list .global-info .svg-inline--fa {\n color: var(--alertPopupNeutralText, #b9b9ba);\n}\n.global-notice-list .close-notice {\n padding-right: 0.2em;\n}\n.global-notice-list .close-notice .svg-inline--fa:hover {\n opacity: 0.6;\n}","@charset \"UTF-8\";\n:root {\n --navbar-height: 3.5rem;\n --post-line-height: 1.4;\n}\nhtml {\n font-size: 14px;\n}\nbody {\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n margin: 0;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n overscroll-behavior-y: none;\n overflow-x: clip;\n overflow-y: scroll;\n}\nbody.hidden {\n display: none;\n}\n@media (any-pointer: fine) {\n* {\n scrollbar-color: var(--btn) transparent;\n}\n*::-webkit-scrollbar {\n background: transparent;\n}\n*::-webkit-scrollbar-button, *::-webkit-scrollbar-thumb {\n background-color: var(--btn);\n box-shadow: var(--buttonShadow);\n border-radius: var(--btnRadius);\n}\n*::-webkit-scrollbar-button {\n --___bgPadding: 2px;\n color: var(--btnText);\n background-repeat: no-repeat, no-repeat;\n}\n*::-webkit-scrollbar-button:horizontal {\n background-size: 50% calc(50% - var(--___bgPadding)), 50% calc(50% - var(--___bgPadding));\n}\n*::-webkit-scrollbar-button:horizontal:increment {\n background-image: linear-gradient(45deg, var(--btnText) 50%, transparent 51%), linear-gradient(-45deg, transparent 50%, var(--btnText) 51%);\n background-position: top var(--___bgPadding) left 50%, right 50% bottom var(--___bgPadding);\n}\n*::-webkit-scrollbar-button:horizontal:decrement {\n background-image: linear-gradient(45deg, transparent 50%, var(--btnText) 51%), linear-gradient(-45deg, var(--btnText) 50%, transparent 51%);\n background-position: bottom var(--___bgPadding) right 50%, left 50% top var(--___bgPadding);\n}\n*::-webkit-scrollbar-button:vertical {\n background-size: calc(50% - var(--___bgPadding)) 50%, calc(50% - var(--___bgPadding)) 50%;\n}\n*::-webkit-scrollbar-button:vertical:increment {\n background-image: linear-gradient(-45deg, transparent 50%, var(--btnText) 51%), linear-gradient(45deg, transparent 50%, var(--btnText) 51%);\n background-position: right var(--___bgPadding) top 50%, left var(--___bgPadding) top 50%;\n}\n*::-webkit-scrollbar-button:vertical:decrement {\n background-image: linear-gradient(-45deg, var(--btnText) 50%, transparent 51%), linear-gradient(45deg, var(--btnText) 50%, transparent 51%);\n background-position: left var(--___bgPadding) top 50%, right var(--___bgPadding) top 50%;\n}\nhtml {\n scrollbar-color: var(--selectedMenu) var(--wallpaper);\n background: var(--wallpaper);\n}\n}\na {\n text-decoration: none;\n color: #d8a070;\n color: var(--link, #d8a070);\n}\nh4 {\n margin: 0;\n}\ni[class*=icon-],\n.svg-inline--fa {\n color: #666;\n color: var(--icon, #666);\n}\nnav {\n z-index: 1000;\n color: var(--topBarText);\n background-color: #182230;\n background-color: var(--topBar, #182230);\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--topBarShadow);\n box-sizing: border-box;\n height: var(--navbar-height);\n position: fixed;\n}\n#sidebar {\n grid-area: sidebar;\n}\n.column.-scrollable {\n top: var(--navbar-height);\n position: -webkit-sticky;\n position: sticky;\n}\n#main-scroller {\n grid-area: content;\n position: relative;\n}\n#notifs-column {\n grid-area: notifs;\n}\n.app-bg-wrapper {\n position: fixed;\n height: 100%;\n top: var(--navbar-height);\n z-index: -1000;\n left: 0;\n right: -20px;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-position: 50%;\n}\n.underlay {\n -ms-grid-column: 1;\n grid-column-start: 1;\n -ms-grid-column-span: 3;\n grid-column-end: span 3;\n -ms-grid-row: 1;\n grid-row-start: 1;\n grid-row-end: 1;\n pointer-events: none;\n background-color: rgba(0, 0, 0, 0.15);\n background-color: var(--underlay, rgba(0, 0, 0, 0.15));\n z-index: -1000;\n}\n.app-layout {\n --miniColumn: 25rem;\n --maxiColumn: minmax(var(--miniColumn), 45rem);\n --columnGap: 1em;\n --status-margin: 0.75em;\n position: relative;\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: var(--miniColumn) var(--maxiColumn);\n grid-template-columns: var(--miniColumn) var(--maxiColumn);\n grid-template-areas: \"sidebar content\";\n -ms-grid-rows: 1fr;\n grid-template-rows: 1fr;\n box-sizing: border-box;\n margin: 0 auto;\n -ms-flex-line-pack: start;\n align-content: flex-start;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: 100vh;\n overflow-x: clip;\n}\n.app-layout .column {\n --___columnMargin: var(--columnGap);\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: 100%;\n grid-template-columns: 100%;\n box-sizing: border-box;\n -ms-grid-row: 1;\n grid-row-start: 1;\n grid-row-end: 1;\n margin: 0 calc(var(--___columnMargin) / 2);\n padding: calc(var(--___columnMargin)) 0;\n row-gap: var(--___columnMargin);\n -ms-flex-line-pack: start;\n align-content: start;\n}\n.app-layout .column:not(.-scrollable) {\n margin-top: var(--navbar-height);\n}\n.app-layout .column:hover {\n z-index: 2;\n}\n.app-layout .column.-full-height {\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n.app-layout .column.-scrollable {\n --___paddingIncrease: calc(var(--columnGap) / 2);\n position: -webkit-sticky;\n position: sticky;\n top: var(--navbar-height);\n max-height: calc(100vh - var(--navbar-height));\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: calc(var(--___paddingIncrease) * -1);\n padding-left: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n}\n@supports (scrollbar-width: none) or (-webkit-text-fill-color: initial) {\n.app-layout .column.-scrollable:not(.-show-scrollbar) {\n scrollbar-width: none;\n margin-right: calc(var(--___paddingIncrease) * -1);\n padding-right: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n}\n.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar {\n display: block;\n width: 0;\n}\n}\n.app-layout .column.-scrollable .panel-heading.-sticky {\n top: calc(var(--columnGap) / -1);\n}\n.app-layout.-has-new-post-button .column {\n padding-bottom: 10rem;\n}\n.app-layout.-no-sticky-headers .column .panel-heading.-sticky {\n position: relative;\n top: 0;\n}\n.app-layout .column-inner {\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: 100%;\n grid-template-columns: 100%;\n box-sizing: border-box;\n row-gap: 1em;\n -ms-flex-line-pack: start;\n align-content: start;\n}\n.app-layout.-reverse:not(.-wide):not(.-mobile) {\n -ms-grid-columns: var(--maxiColumn) var(--miniColumn);\n grid-template-columns: var(--maxiColumn) var(--miniColumn);\n grid-template-areas: \"content sidebar\";\n}\n.app-layout.-wide {\n -ms-grid-columns: var(--miniColumn) var(--maxiColumn) var(--miniColumn);\n grid-template-columns: var(--miniColumn) var(--maxiColumn) var(--miniColumn);\n grid-template-areas: \"sidebar content notifs\";\n}\n.app-layout.-wide.-reverse {\n grid-template-areas: \"notifs content sidebar\";\n}\n.app-layout.-mobile {\n -ms-grid-columns: 100vw;\n grid-template-columns: 100vw;\n grid-template-areas: \"content\";\n padding: 0;\n}\n.app-layout.-mobile .column {\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n margin-top: var(--navbar-height);\n margin-bottom: 0;\n}\n.app-layout.-mobile .panel-heading,\n.app-layout.-mobile .panel-heading::after,\n.app-layout.-mobile .panel-heading::before,\n.app-layout.-mobile .panel,\n.app-layout.-mobile .panel::after {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.app-layout.-mobile .underlay,\n.app-layout.-mobile #sidebar,\n.app-layout.-mobile #notifs-column {\n display: none;\n}\n.app-layout.-normal #notifs-column {\n display: none;\n}\n.text-center {\n text-align: center;\n}\n.button-default {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n color: #b9b9ba;\n color: var(--btnText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btn, #182230);\n border: none;\n border-radius: 4px;\n border-radius: var(--btnRadius, 4px);\n cursor: pointer;\n box-shadow: 0px 0px 2px 0px black, 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n box-shadow: var(--buttonShadow);\n font-size: 1em;\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n}\n.button-default.-sublime {\n background: transparent;\n}\n.button-default i[class*=icon-],\n.button-default .svg-inline--fa {\n color: #b9b9ba;\n color: var(--btnText, #b9b9ba);\n}\n.button-default::-moz-focus-inner {\n border: none;\n}\n.button-default:hover {\n box-shadow: 0 0 4px rgba(255, 255, 255, 0.3);\n box-shadow: var(--buttonHoverShadow);\n}\n.button-default:active {\n box-shadow: 0 0 4px 0 rgba(255, 255, 255, 0.3), 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset;\n box-shadow: var(--buttonPressedShadow);\n color: #b9b9ba;\n color: var(--btnPressedText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnPressed, #182230);\n}\n.button-default:active svg,\n.button-default:active i {\n color: #b9b9ba;\n color: var(--btnPressedText, #b9b9ba);\n}\n.button-default:disabled {\n cursor: not-allowed;\n color: #b9b9ba;\n color: var(--btnDisabledText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnDisabled, #182230);\n}\n.button-default:disabled svg,\n.button-default:disabled i {\n color: #b9b9ba;\n color: var(--btnDisabledText, #b9b9ba);\n}\n.button-default.toggled {\n color: #b9b9ba;\n color: var(--btnToggledText, #b9b9ba);\n background-color: #182230;\n background-color: var(--btnToggled, #182230);\n box-shadow: 0 0 4px 0 rgba(255, 255, 255, 0.3), 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset;\n box-shadow: var(--buttonPressedShadow);\n}\n.button-default.toggled svg,\n.button-default.toggled i {\n color: #b9b9ba;\n color: var(--btnToggledText, #b9b9ba);\n}\n.button-default.danger {\n color: #b9b9ba;\n color: var(--alertErrorPanelText, #b9b9ba);\n background-color: rgba(211, 16, 20, 0.5);\n background-color: var(--alertError, rgba(211, 16, 20, 0.5));\n}\n.button-unstyled {\n background: none;\n border: none;\n outline: none;\n display: inline;\n text-align: initial;\n font-size: 100%;\n font-family: inherit;\n padding: 0;\n line-height: unset;\n cursor: pointer;\n box-sizing: content-box;\n color: inherit;\n}\n.button-unstyled.-link {\n color: #d8a070;\n color: var(--link, #d8a070);\n}\n.button-unstyled.-fullwidth {\n width: 100%;\n}\n.button-unstyled.-hover-highlight:hover svg {\n color: #b9b9ba;\n color: var(--lightText, #b9b9ba);\n}\ninput,\ntextarea,\n.input {\n --_padding: 0.5em;\n border: none;\n border-radius: 4px;\n border-radius: var(--inputRadius, 4px);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset, 0 0 2px 0 black inset;\n box-shadow: var(--inputShadow);\n background-color: #182230;\n background-color: var(--input, #182230);\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n margin: 0;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n line-height: 2;\n -webkit-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n padding: 0 var(--_padding);\n}\ninput.unstyled,\ntextarea.unstyled,\n.input.unstyled {\n border-radius: 0;\n background: none;\n box-shadow: none;\n height: unset;\n}\ninput:disabled, input[disabled=disabled], input.disabled,\ntextarea:disabled,\ntextarea[disabled=disabled],\ntextarea.disabled,\n.input:disabled,\n.input[disabled=disabled],\n.input.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\ninput[type=range],\ntextarea[type=range],\n.input[type=range] {\n background: none;\n border: none;\n margin: 0;\n box-shadow: none;\n -ms-flex: 1;\n flex: 1;\n}\ninput[type=radio],\ntextarea[type=radio],\n.input[type=radio] {\n display: none;\n}\ninput[type=radio]:checked + label::before,\ntextarea[type=radio]:checked + label::before,\n.input[type=radio]:checked + label::before {\n box-shadow: 0 0 2px black inset, 0 0 0 4px #182230 inset;\n box-shadow: var(--inputShadow), 0 0 0 4px var(--fg, #182230) inset;\n background-color: var(--accent, #d8a070);\n}\ninput[type=radio]:disabled, input[type=radio]:disabled + label, input[type=radio]:disabled + label::before,\ntextarea[type=radio]:disabled,\ntextarea[type=radio]:disabled + label,\ntextarea[type=radio]:disabled + label::before,\n.input[type=radio]:disabled,\n.input[type=radio]:disabled + label,\n.input[type=radio]:disabled + label::before {\n opacity: 0.5;\n}\ninput[type=radio] + label::before,\ntextarea[type=radio] + label::before,\n.input[type=radio] + label::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n content: \"\";\n transition: box-shadow 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 100%;\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: #182230;\n background-color: var(--input, #182230);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n}\ninput[type=checkbox],\ntextarea[type=checkbox],\n.input[type=checkbox] {\n display: none;\n}\ninput[type=checkbox]:checked + label::before,\ntextarea[type=checkbox]:checked + label::before,\n.input[type=checkbox]:checked + label::before {\n color: #b9b9ba;\n color: var(--inputText, #b9b9ba);\n}\ninput[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=checkbox]:disabled + label::before,\ntextarea[type=checkbox]:disabled,\ntextarea[type=checkbox]:disabled + label,\ntextarea[type=checkbox]:disabled + label::before,\n.input[type=checkbox]:disabled,\n.input[type=checkbox]:disabled + label,\n.input[type=checkbox]:disabled + label::before {\n opacity: 0.5;\n}\ninput[type=checkbox] + label::before,\ntextarea[type=checkbox] + label::before,\n.input[type=checkbox] + label::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n content: \"\\2713\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 2px;\n border-radius: var(--checkboxRadius, 2px);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: #182230;\n background-color: var(--input, #182230);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n}\ninput.resize-height,\ntextarea.resize-height,\n.input.resize-height {\n resize: vertical;\n}\ntextarea {\n padding: var(--_padding);\n line-height: var(--post-line-height);\n}\noption {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.hide-number-spinner {\n -moz-appearance: textfield;\n}\n.hide-number-spinner[type=number]::-webkit-inner-spin-button, .hide-number-spinner[type=number]::-webkit-outer-spin-button {\n opacity: 0;\n display: none;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-group {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group button {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.btn-group button:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group button:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.panel {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.panel::after, .panel {\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n}\n.panel::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n}\n.panel-body {\n padding: var(--panel-body-padding, 0);\n}\n.panel-body:empty::before {\n content: \"\\AF\\\\_(\\30C4)_/\\AF\";\n display: block;\n margin: 1em;\n text-align: center;\n}\n.panel-body > p {\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n}\n.panel-heading,\n.panel-footer {\n --panel-heading-height-padding: 0.6em;\n --__panel-heading-height: 3.2em;\n --__panel-heading-height-inner: calc(var(--__panel-heading-height) - 2 * var(--panel-heading-height-padding));\n position: relative;\n box-sizing: border-box;\n display: -ms-grid;\n display: grid;\n grid-auto-flow: column;\n -ms-grid-columns: minmax(50%, 1fr);\n grid-template-columns: minmax(50%, 1fr);\n grid-auto-columns: auto;\n grid-column-gap: 0.5em;\n -ms-flex: none;\n flex: none;\n background-size: cover;\n padding: 0.6em;\n height: var(--__panel-heading-height);\n line-height: var(--__panel-heading-height-inner);\n z-index: 4;\n}\n.panel-heading.-flexible-height,\n.panel-footer.-flexible-height {\n --__panel-heading-height: auto;\n}\n.panel-heading.-flexible-height::after, .panel-heading.-flexible-height::before,\n.panel-footer.-flexible-height::after,\n.panel-footer.-flexible-height::before {\n display: none;\n}\n.panel-heading.-stub, .panel-heading.-stub::after,\n.panel-footer.-stub,\n.panel-footer.-stub::after {\n border-radius: 10px;\n border-radius: var(--panelRadius, 10px);\n}\n.panel-heading.-sticky,\n.panel-footer.-sticky {\n position: -webkit-sticky;\n position: sticky;\n top: var(--navbar-height);\n}\n.panel-heading::after, .panel-heading::before,\n.panel-footer::after,\n.panel-footer::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n pointer-events: none;\n}\n.panel-heading .title,\n.panel-footer .title {\n font-size: 1.3em;\n}\n.panel-heading .alert,\n.panel-footer .alert {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n}\n.panel-heading:not(.-flexible-height) > .button-default,\n.panel-heading:not(.-flexible-height) > .alert,\n.panel-footer:not(.-flexible-height) > .button-default,\n.panel-footer:not(.-flexible-height) > .alert {\n height: var(--__panel-heading-height-inner);\n min-height: 0;\n box-sizing: border-box;\n margin: 0;\n min-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n -ms-flex-item-align: stretch;\n -ms-grid-row-align: stretch;\n align-self: stretch;\n}\n.panel-heading {\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n border-width: 0 0 1px 0;\n -ms-flex-align: start;\n align-items: start;\n color: var(--panelText);\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n}\n.panel-heading::after {\n background-color: #182230;\n background-color: var(--panel, #182230);\n z-index: -2;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n box-shadow: var(--panelHeaderShadow);\n}\n.panel-heading a,\n.panel-heading .-link {\n color: #d8a070;\n color: var(--panelLink, #d8a070);\n}\n.panel-heading .faint {\n background-color: transparent;\n color: rgba(185, 185, 186, 0.5);\n color: var(--panelFaint, rgba(185, 185, 186, 0.5));\n}\n.panel-heading .faint-link {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faintLink, rgba(185, 185, 186, 0.5));\n}\n.panel-heading:not(.-flexible-height) > .button-default {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.panel-heading:not(.-flexible-height) > .button-default,\n.panel-heading:not(.-flexible-height) > .button-default i[class*=icon-] {\n color: #b9b9ba;\n color: var(--btnPanelText, #b9b9ba);\n}\n.panel-heading:not(.-flexible-height) > .button-default:active {\n background-color: #182230;\n background-color: var(--btnPressedPanel, #182230);\n color: #b9b9ba;\n color: var(--btnPressedPanelText, #b9b9ba);\n}\n.panel-heading:not(.-flexible-height) > .button-default:disabled {\n color: #b9b9ba;\n color: var(--btnDisabledPanelText, #b9b9ba);\n}\n.panel-heading:not(.-flexible-height) > .button-default.toggled {\n color: #b9b9ba;\n color: var(--btnToggledPanelText, #b9b9ba);\n}\n.panel-footer {\n border-radius: 0 0 10px 10px;\n border-radius: 0 0 var(--panelRadius, 10px) var(--panelRadius, 10px);\n -ms-flex-align: center;\n align-items: center;\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, #222);\n}\n.fa {\n color: grey;\n}\n.mobile-shown {\n display: none;\n}\n.badge {\n box-sizing: border-box;\n display: inline-block;\n border-radius: 99px;\n max-width: 10em;\n min-width: 1.7em;\n height: 1.3em;\n padding: 0.15em 0.15em;\n vertical-align: middle;\n font-weight: normal;\n font-style: normal;\n font-size: 0.9em;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.badge.badge-notification {\n background-color: #ff0000;\n background-color: var(--badgeNotification, #ff0000);\n color: white;\n color: var(--badgeNotificationText, white);\n}\n.alert {\n margin: 0 0.35em;\n padding: 0 0.25em;\n border-radius: 5px;\n border-radius: var(--tooltipRadius, 5px);\n}\n.alert.error {\n background-color: rgba(211, 16, 20, 0.5);\n background-color: var(--alertError, rgba(211, 16, 20, 0.5));\n color: #b9b9ba;\n color: var(--alertErrorText, #b9b9ba);\n}\n.panel-heading .alert.error {\n color: #b9b9ba;\n color: var(--alertErrorPanelText, #b9b9ba);\n}\n.alert.warning {\n background-color: rgba(111, 111, 20, 0.5);\n background-color: var(--alertWarning, rgba(111, 111, 20, 0.5));\n color: #b9b9ba;\n color: var(--alertWarningText, #b9b9ba);\n}\n.panel-heading .alert.warning {\n color: #b9b9ba;\n color: var(--alertWarningPanelText, #b9b9ba);\n}\n.alert.success {\n background-color: var(--alertSuccess, rgba(111, 111, 20, 0.5));\n color: var(--alertSuccessText, #b9b9ba);\n}\n.panel-heading .alert.success {\n color: var(--alertSuccessPanelText, #b9b9ba);\n}\n.faint {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.faint-link {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n}\n.faint-link:hover {\n text-decoration: underline;\n}\n.visibility-notice {\n padding: 0.5em;\n border: 1px solid rgba(185, 185, 186, 0.5);\n border: 1px solid var(--faint, rgba(185, 185, 186, 0.5));\n border-radius: 4px;\n border-radius: var(--inputRadius, 4px);\n}\n.notice-dismissible {\n padding-right: 4rem;\n position: relative;\n}\n.notice-dismissible .dismiss {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.5em;\n color: inherit;\n}\n.fa-scale-110.svg-inline--fa {\n font-size: 1.1em;\n}\n.fa-old-padding.svg-inline--fa {\n padding: 0 0.3em;\n}\n.login-hint {\n text-align: center;\n}\n@media all and (min-width: 801px) {\n.login-hint {\n display: none;\n}\n}\n.login-hint a {\n display: inline-block;\n padding: 1em 0;\n width: 100%;\n}\n.btn.button-default {\n min-height: 2em;\n}\n.new-status-notification {\n position: relative;\n font-size: 1.1em;\n z-index: 1;\n -ms-flex: 1;\n flex: 1;\n}\n@media all and (max-width: 800px) {\n.mobile-hidden {\n display: none;\n}\n}\n@keyframes spin {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(359deg);\n}\n}\n@keyframes shakeError {\n0% {\n transform: translateX(0);\n}\n15% {\n transform: translateX(0.375rem);\n}\n30% {\n transform: translateX(-0.375rem);\n}\n45% {\n transform: translateX(0.375rem);\n}\n60% {\n transform: translateX(-0.375rem);\n}\n75% {\n transform: translateX(0.375rem);\n}\n90% {\n transform: translateX(-0.375rem);\n}\n100% {\n transform: translateX(0);\n}\n}\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.2s;\n}\n.fade-enter-from,\n.fade-leave-active {\n opacity: 0;\n}",".thread-tree-replies {\n margin-left: var(--status-margin, 0.75em);\n border-left: 2px solid var(--border, #222);\n}\n.thread-tree-replies-hidden {\n padding: var(--status-margin, 0.75em);\n /* Make the button stretch along the whole row */\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n -ms-flex-direction: column;\n flex-direction: column;\n}",".Conversation {\n z-index: 1;\n /* expanded conversation in timeline */\n}\n.Conversation .conversation-dive-to-top-level-box {\n padding: var(--status-margin, 0.75em);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, #222);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Conversation .thread-ancestors {\n margin-left: var(--status-margin, 0.75em);\n border-left: 2px solid var(--border, #222);\n}\n.Conversation .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n color: var(--text);\n}\n.Conversation .thread-ancestor-dive-box {\n padding-left: var(--status-margin, 0.75em);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, #222);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n}\n.Conversation .thread-ancestor-dive-box, .Conversation .thread-ancestor-dive-box-inner {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: stretch;\n align-items: stretch;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.Conversation .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, 0.75em);\n}\n.Conversation .conversation-status {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, #222);\n border-radius: 0;\n}\n.Conversation .thread-ancestor-has-other-replies .conversation-status,\n.Conversation .thread-ancestor:last-child .conversation-status,\n.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box, .Conversation:last-child .conversation-status, .Conversation.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n}\n.Conversation .thread-ancestors + .thread-tree > .conversation-status {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--border, #222);\n}\n.Conversation.status-fadein.-expanded .thread-body {\n border-left-width: 4px;\n border-left-style: solid;\n border-left-color: #ff0000;\n border-left-color: var(--cRed, #ff0000);\n border-radius: 0 0 10px 10px;\n border-radius: 0 0 var(--panelRadius, 10px) var(--panelRadius, 10px);\n border-bottom: 1px solid var(--border, #222);\n}\n.Conversation.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n}",".TimelineMenu {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n margin-right: auto;\n min-width: 0;\n width: 24rem;\n}\n.TimelineMenu .popover-trigger-button {\n vertical-align: bottom;\n}\n.TimelineMenu .timeline-menu-popover-wrap {\n overflow: hidden;\n margin-top: 0.6rem;\n padding: 0 15px 15px 15px;\n}\n.TimelineMenu .timeline-menu-popover {\n width: 24rem;\n max-width: 100vw;\n margin: 0;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n transform: translateY(-100%);\n transition: transform 100ms;\n}\n.TimelineMenu .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.TimelineMenu.open .timeline-menu-popover {\n transform: translateY(0);\n}\n.TimelineMenu .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n}\n.TimelineMenu .timeline-menu-title .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.TimelineMenu .timeline-menu-title svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n}\n.TimelineMenu .timeline-menu-title .click-blocker {\n cursor: default;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.TimelineMenu.open .timeline-menu-title svg {\n color: #b9b9ba;\n color: var(--panelText, #b9b9ba);\n transform: rotate(180deg);\n}\n.TimelineMenu .panel {\n box-shadow: var(--popoverShadow);\n}\n.TimelineMenu ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.TimelineMenu li {\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n padding: 0;\n}\n.TimelineMenu li:last-child a {\n border-bottom-right-radius: 10px;\n border-bottom-right-radius: var(--panelRadius, 10px);\n border-bottom-left-radius: 10px;\n border-bottom-left-radius: var(--panelRadius, 10px);\n}\n.TimelineMenu li:last-child {\n border: none;\n}\n.TimelineMenu a {\n display: block;\n padding: 0.6em 0.65em;\n}\n.TimelineMenu a:hover {\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #d8a070;\n color: var(--selectedMenuText, #d8a070);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.TimelineMenu a.router-link-active {\n font-weight: bolder;\n background-color: #151e2a;\n background-color: var(--selectedMenu, #151e2a);\n color: #b9b9ba;\n color: var(--selectedMenuText, #b9b9ba);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n}\n.TimelineMenu a.router-link-active:hover {\n text-decoration: underline;\n}\n.TimelineMenu a svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n}",".TimelineQuickSettings > button {\n line-height: 100%;\n height: 100%;\n width: var(--__panel-heading-height-inner);\n text-align: center;\n}\n.TimelineQuickSettings > button svg {\n font-size: 1.2em;\n}",".Timeline .loadmore-text {\n opacity: 1;\n}\n.Timeline.-blocked {\n cursor: progress;\n}\n.Timeline .conversation-heading {\n top: calc(var(--__panel-heading-height) * var(--currentPanelStack, 2));\n z-index: 2;\n}\n.Timeline.-nonpanel .timeline-heading {\n text-align: center;\n line-height: 2.75em;\n padding: 0 0.5em;\n}\n.Timeline.-nonpanel .timeline-heading .button-default, .Timeline.-nonpanel .timeline-heading .alert {\n line-height: 2em;\n width: 100%;\n}",".tab-switcher {\n display: -ms-flexbox;\n display: flex;\n}\n.tab-switcher .tab-icon {\n margin: 0.2em auto;\n display: block;\n}\n.tab-switcher.top-tabs {\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.top-tabs > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.tab-switcher.top-tabs > .tabs::after, .tab-switcher.top-tabs > .tabs::before {\n content: \"\";\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper {\n height: 2em;\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: -93px;\n}\n.tab-switcher.top-tabs .contents.scrollable-tabs {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n}\n.tab-switcher.side-tabs {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs {\n overflow-x: auto;\n }\n}\n.tab-switcher.side-tabs > .contents {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher.side-tabs > .tabs {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.side-tabs > .tabs::after, .tab-switcher.side-tabs > .tabs::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-preferred-size: 0.5em;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs::after {\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.tab-switcher.side-tabs > .tabs::before {\n -ms-flex-positive: 0;\n flex-grow: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 10em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 4em;\n }\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper::before {\n -ms-flex: 0 0 6px;\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:last-child .tab {\n margin-bottom: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab {\n -ms-flex: 1;\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab {\n padding-left: 0.25em;\n padding-right: calc(.25em + 200px);\n margin-right: calc(.25em - 200px);\n margin-left: 0.25em;\n }\n .tab-switcher.side-tabs > .tabs .tab .text {\n display: none;\n }\n}\n.tab-switcher .contents {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n min-height: 0px;\n}\n.tab-switcher .contents .hidden {\n display: none;\n}\n.tab-switcher .contents .full-height:not(.hidden) {\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher .contents .full-height:not(.hidden) > *:not(.mobile-label) {\n -ms-flex: 1;\n flex: 1;\n}\n.tab-switcher .contents.scrollable-tabs {\n overflow-y: auto;\n}\n.tab-switcher .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n}\n.tab-switcher .tab:not(.active) {\n z-index: 4;\n}\n.tab-switcher .tab:not(.active):hover {\n z-index: 6;\n}\n.tab-switcher .tab.active {\n background: transparent;\n z-index: 5;\n color: #b9b9ba;\n color: var(--tabActiveText, #b9b9ba);\n}\n.tab-switcher .tab img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n}\n.tab-switcher .tabs {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-sizing: border-box;\n}\n.tab-switcher .tabs::after, .tab-switcher .tabs::before {\n display: block;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher .tab-wrapper {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.tab-switcher .tab-wrapper:not(.active)::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n}\n.tab-switcher .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, #222);\n}\n@media all and (min-width: 800px) {\n .tab-switcher .mobile-label {\n display: none;\n }\n}",".chat-title {\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n --emoji-size: 14px;\n}\n.chat-title .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n}\n.chat-title .avatar-container {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n line-height: 1;\n}\n.chat-title .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.chat-title .titlebar-avatar.animated::before {\n display: none;\n}",".chat-list-item {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n padding: 0.75em;\n height: 5em;\n overflow: hidden;\n box-sizing: border-box;\n cursor: pointer;\n}\n.chat-list-item :focus {\n outline: none;\n}\n.chat-list-item:hover {\n background-color: var(--selectedPost, #151e2a);\n box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.1);\n}\n.chat-list-item .chat-list-item-left {\n margin-right: 1em;\n}\n.chat-list-item .chat-list-item-center {\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n word-wrap: break-word;\n}\n.chat-list-item .heading {\n width: 100%;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1em;\n}\n.chat-list-item .heading-right {\n white-space: nowrap;\n}\n.chat-list-item .name-and-account-name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n line-height: var(--post-line-height);\n}\n.chat-list-item .chat-preview {\n display: -ms-inline-flexbox;\n display: inline-flex;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: 0.35em 0;\n color: #b9b9ba;\n color: var(--faint, #b9b9ba);\n width: 100%;\n}\n.chat-list-item a {\n color: var(--faintLink, #d8a070);\n text-decoration: none;\n pointer-events: none;\n}\n.chat-list-item:hover .animated.avatar canvas {\n display: none;\n}\n.chat-list-item:hover .animated.avatar img {\n visibility: visible;\n}\n.chat-list-item .Avatar {\n border-radius: 10px;\n border-radius: var(--avatarAltRadius, 10px);\n}\n.chat-list-item .chat-preview-body {\n --emoji-size: 1.4em;\n}\n.chat-list-item .time-wrapper {\n line-height: var(--post-line-height);\n}\n.chat-list-item .chat-preview-body {\n padding-right: 1em;\n}",".basic-user-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n}\n.basic-user-card-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n -ms-flex: 1;\n flex: 1;\n min-width: 0;\n}\n.basic-user-card-user-name img {\n -o-object-fit: contain;\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n}\n.basic-user-card-user-name-value, .basic-user-card-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.basic-user-card-expanded-content {\n -ms-flex: 1;\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n}",".chat-new .input-wrap {\n display: -ms-flexbox;\n display: flex;\n margin: 0.7em 0.5em 0.7em 0.5em;\n}\n.chat-new .input-wrap input {\n width: 100%;\n}\n.chat-new .search-icon {\n margin-right: 0.3em;\n}\n.chat-new .member-list {\n padding-bottom: 0.7rem;\n}\n.chat-new .basic-user-card:hover {\n cursor: pointer;\n background-color: var(--selectedPost, #151e2a);\n}\n.chat-new .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n -ms-flex-item-align: start;\n -ms-grid-row-align: start;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n}",".chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n color: #b9b9ba;\n color: var(--faint, #b9b9ba);\n}",".chat-message-wrapper.hovered-message-chain .animated.Avatar canvas {\n display: none;\n}\n.chat-message-wrapper.hovered-message-chain .animated.Avatar img {\n visibility: visible;\n}\n.chat-message-wrapper .chat-message-menu {\n transition: opacity 0.1s;\n opacity: 0;\n position: absolute;\n top: -0.8em;\n}\n.chat-message-wrapper .chat-message-menu button {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n}\n.chat-message-wrapper .menu-icon {\n cursor: pointer;\n}\n.chat-message-wrapper .menu-icon:hover, .extra-button-popover.open .chat-message-wrapper .menu-icon {\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.chat-message-wrapper .popover {\n width: 12em;\n}\n.chat-message-wrapper .chat-message {\n display: -ms-flexbox;\n display: flex;\n padding-bottom: 0.5em;\n}\n.chat-message-wrapper .chat-message .status-body:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n}\n.chat-message-wrapper .avatar-wrapper {\n margin-right: 0.72em;\n width: 32px;\n}\n.chat-message-wrapper .link-preview, .chat-message-wrapper .attachments {\n margin-bottom: 1em;\n}\n.chat-message-wrapper .chat-message-inner {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n max-width: 80%;\n min-width: 10em;\n width: 100%;\n}\n.chat-message-wrapper .chat-message-inner.with-media {\n width: 100%;\n}\n.chat-message-wrapper .chat-message-inner.with-media .status {\n width: 100%;\n}\n.chat-message-wrapper .status {\n border-radius: 10px;\n border-radius: var(--chatMessageRadius, 10px);\n display: -ms-flexbox;\n display: flex;\n padding: 0.75em;\n}\n.chat-message-wrapper .created-at {\n position: relative;\n float: right;\n font-size: 0.8em;\n margin: -1em 0 -0.5em 0;\n font-style: italic;\n opacity: 0.8;\n}\n.chat-message-wrapper .without-attachment .message-content .RichContent::after {\n margin-right: 5.4em;\n content: \" \";\n display: inline-block;\n}\n.chat-message-wrapper .pending .status-content.media-body, .chat-message-wrapper .pending .created-at {\n color: var(--faint);\n}\n.chat-message-wrapper .error .status-content.media-body, .chat-message-wrapper .error .created-at {\n color: #ff0000;\n color: var(--badgeNotification, #ff0000);\n}\n.chat-message-wrapper .incoming a {\n color: var(--chatMessageIncomingLink, #d8a070);\n}\n.chat-message-wrapper .incoming .status {\n color: var(--chatMessageIncomingText, #b9b9ba);\n background-color: var(--chatMessageIncomingBg, #121a24);\n border: 1px solid var(--chatMessageIncomingBorder, --border);\n}\n.chat-message-wrapper .incoming .created-at a {\n color: var(--chatMessageIncomingText, #b9b9ba);\n}\n.chat-message-wrapper .incoming .chat-message-menu {\n left: 0.4rem;\n}\n.chat-message-wrapper .outgoing {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-line-pack: end;\n align-content: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.chat-message-wrapper .outgoing a {\n color: var(--chatMessageOutgoingLink, #d8a070);\n}\n.chat-message-wrapper .outgoing .status {\n color: var(--chatMessageOutgoingText, #b9b9ba);\n background-color: var(--chatMessageOutgoingBg, #151e2a);\n border: 1px solid var(--chatMessageOutgoingBorder, --lightBg);\n}\n.chat-message-wrapper .outgoing .chat-message-inner {\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.chat-message-wrapper .outgoing .chat-message-menu {\n right: 0.4rem;\n}\n.chat-message-wrapper .visible {\n opacity: 1;\n}\n.chat-message-date-separator {\n text-align: center;\n margin: 1.4em 0;\n font-size: 0.9em;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n color: #b9b9ba;\n color: var(--faintedText, #b9b9ba);\n}",".chat-view {\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n}\n.chat-view .chat-view-inner {\n height: auto;\n width: 100%;\n overflow: visible;\n display: -ms-flexbox;\n display: flex;\n}\n.chat-view .chat-view-body {\n box-sizing: border-box;\n background-color: var(--chatBg, #121a24);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n overflow: visible;\n min-height: calc(100vh - var(--navbar-height));\n margin: 0 0 0 0;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n}\n.chat-view .chat-view-body::after {\n border-radius: 0;\n}\n.chat-view .message-list {\n padding: 0 0.8em;\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: end;\n justify-content: end;\n}\n.chat-view .footer {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n background-color: #121a24;\n background-color: var(--bg, #121a24);\n z-index: 1;\n}\n.chat-view .chat-view-heading {\n -ms-grid-columns: auto minmax(50%, 1fr);\n grid-template-columns: auto minmax(50%, 1fr);\n}\n.chat-view .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n -ms-flex-item-align: start;\n -ms-grid-row-align: start;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n}\n.chat-view .jump-to-bottom-button {\n width: 2.5em;\n height: 2.5em;\n border-radius: 100%;\n position: absolute;\n right: 1.3em;\n top: -3.2em;\n background-color: #182230;\n background-color: var(--btn, #182230);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.3);\n z-index: 10;\n transition: 0.35s all;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n opacity: 0;\n visibility: hidden;\n cursor: pointer;\n}\n.chat-view .jump-to-bottom-button.visible {\n opacity: 1;\n visibility: visible;\n}\n.chat-view .jump-to-bottom-button i {\n font-size: 1em;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}\n.chat-view .jump-to-bottom-button .unread-message-count {\n font-size: 0.8em;\n left: 50%;\n margin-top: -1rem;\n padding: 0.1em;\n border-radius: 50px;\n position: absolute;\n}\n.chat-view .jump-to-bottom-button .chat-loading-error {\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: end;\n align-items: flex-end;\n height: 100%;\n}\n.chat-view .jump-to-bottom-button .chat-loading-error .error {\n width: 100%;\n}",".follow-card-content-container {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n line-height: 1.5em;\n}\n.follow-card-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n}",".with-load-more-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: #222;\n border-top-color: var(--border, #222);\n}\n.with-load-more-footer .error {\n font-size: 1rem;\n}\n.with-load-more-footer a {\n cursor: pointer;\n}",".user-profile {\n -ms-flex: 2;\n flex: 2;\n -ms-flex-preferred-size: 500px;\n flex-basis: 500px;\n --currentPanelStack: 1;\n}\n.user-profile .user-profile-fields {\n margin: 0 0.5em;\n}\n.user-profile .user-profile-fields img {\n -o-object-fit: contain;\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n}\n.user-profile .user-profile-fields img.emoji {\n width: 18px;\n height: 18px;\n}\n.user-profile .user-profile-fields .user-profile-field {\n display: -ms-flexbox;\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, #222);\n border-radius: 4px;\n border-radius: var(--inputRadius, 4px);\n}\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name {\n -ms-flex: 0 1 30%;\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, #222);\n}\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\n -ms-flex: 1 1 70%;\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n}\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name, .user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n}\n.user-profile .userlist-placeholder {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: middle;\n align-items: middle;\n padding: 2em;\n}\n.user-profile-placeholder .panel-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: middle;\n align-items: middle;\n padding: 7em;\n}",".search-result-heading {\n color: rgba(185, 185, 186, 0.5);\n color: var(--faint, rgba(185, 185, 186, 0.5));\n padding: 0.75rem;\n text-align: center;\n}\n@media all and (max-width: 800px) {\n.search-nav-heading .tab-switcher .tabs .tab-wrapper {\n display: block;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n}\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: #222;\n border-color: var(--border, #222);\n}\n.search-result-footer {\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, #222);\n padding: 10px;\n background-color: #182230;\n background-color: var(--panel, #182230);\n}\n.search-input-container {\n padding: 0.8rem;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.search-input-container .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n}\n.search-input-container .search-button {\n margin-left: 0.5em;\n}\n.loading-icon {\n padding: 1em;\n}\n.trend {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n.trend .hashtag {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.trend .count {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: #b9b9ba;\n color: var(--text, #b9b9ba);\n}","@charset \"UTF-8\";\n.registration-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0.6em;\n}\n.registration-form .container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.registration-form .container > * {\n min-width: 0;\n}\n.registration-form .terms-of-service {\n -ms-flex: 0 1 50%;\n flex: 0 1 50%;\n margin: 0.8em;\n}\n.registration-form .text-fields {\n margin-top: 0.6em;\n -ms-flex: 1 0;\n flex: 1 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.registration-form textarea {\n min-height: 100px;\n resize: vertical;\n}\n.registration-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n}\n.registration-form .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n}\n.registration-form .form-group--error .form--label {\n color: #f04124;\n color: var(--cRed, #f04124);\n}\n.registration-form .form-error {\n margin-top: -0.7em;\n text-align: left;\n}\n.registration-form .form-error span {\n font-size: 0.85em;\n}\n.registration-form .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n}\n.registration-form .form-error ul li::before {\n content: \"\\2022 \";\n}\n.registration-form form textarea {\n line-height: 16px;\n resize: vertical;\n}\n.registration-form .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n}\n.registration-form .btn {\n margin-top: 0.6em;\n height: 2em;\n}\n.registration-form .error {\n text-align: center;\n}\n@media all and (max-width: 800px) {\n.registration-form .container {\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n}\n}",".password-reset-form {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n margin: 0.6em;\n}\n.password-reset-form .container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0;\n flex: 1 0;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n}\n.password-reset-form .container > * {\n min-width: 0;\n}\n.password-reset-form .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n}\n.password-reset-form .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n}\n.password-reset-form .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n}\n.password-reset-form .password-reset-required {\n background-color: var(--alertError, rgba(211, 16, 20, 0.5));\n padding: 10px 0;\n}\n.password-reset-form .notice-dismissible {\n padding-right: 2rem;\n}\n.password-reset-form .dismiss {\n cursor: pointer;\n}",".follow-request-card-content-container {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.follow-request-card-content-container button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n -ms-flex: 1 1;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n}\n.follow-request-card-content-container button:last-child {\n margin-right: 0;\n}",".tos-content {\n margin: 1em;\n}",".staff-group {\n padding-left: 1em;\n padding-top: 1em;\n}\n.staff-group .basic-user-card {\n padding-left: 0;\n}",".mrf-section {\n margin: 1em;\n}\n.mrf-section table {\n width: 100%;\n text-align: left;\n padding-left: 10px;\n padding-bottom: 20px;\n}\n.mrf-section table th, .mrf-section table td {\n width: 180px;\n max-width: 360px;\n overflow: hidden;\n vertical-align: text-top;\n}\n.mrf-section table th + th, .mrf-section table td + td {\n width: auto;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/js/app.699e9674d3b0bea12ca5.js b/priv/static/static/js/app.699e9674d3b0bea12ca5.js new file mode 100644 index 000000000..e90f3c4bf --- /dev/null +++ b/priv/static/static/js/app.699e9674d3b0bea12ca5.js @@ -0,0 +1,2 @@ +!function(e){function t(t){for(var r,i,a=t[0],c=t[1],l=t[2],u=0,p=[];u]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){var i=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,i&&(t.relationship=i),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member"}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var o=t.screen_name.split("@"),a=u.a.toUnicode(o[1]);a!==o[1]&&(a="🌏"+a,t.screen_name_ui=[o[0],a].join("@"))}return t},b=function(e){var t={};return!e.hasOwnProperty("oembed")?(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id):t.mimetype=e.mimetype,t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},m=function e(t){var n={},r=t.hasOwnProperty("account");if(r){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,t.pleroma){var i=t.pleroma;n.text=i.content?t.pleroma.content["text/plain"]:t.content,n.summary=i.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=i.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=i.thread_muted,n.emoji_reactions=i.emoji_reactions,n.parent_visible=void 0===i.parent_visible||i.parent_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=s()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return p(p({},e),{},{title_html:s()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=function(e){return e.is_post_verb?"status":e.retweeted_status?"retweet":"string"==typeof e.uri&&e.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof e.text&&e.text.match(/favorited/)?"favorite":e.text.match(/deleted notice {{tag/)||e.qvitter_delete_notice?"deletion":e.text.match(/started following/)||"follow"===e.activity_type?"follow":"unknown"}(t),void 0===t.nsfw?(n.nsfw=O(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=h(r?t.account:t.user),n.attentions=((r?t.mentions:t.attentions)||[]).map(h),n.attachments=((r?t.media_attachments:t.attachments)||[]).map(b);var o=r?t.reblog:t.retweeted_status;return o&&(n.retweeted_status=e(o)),n.favoritedBy=[],n.rebloggedBy=[],n},f=function(e){var t={};if(!e.hasOwnProperty("ntype"))t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=Object(l.b)(t.type)?m(e.status):null,t.action=t.status,t.target="move"!==t.type?null:h(e.target),t.from_profile=h(e.account),t.emoji=e.emoji,t.emoji_url=e.emoji_url;else{var n=m(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?m(e.notice.favorited_status):n,t.action=n,t.from_profile="pleroma:chat_mention"===t.type?h(e.account):h(e.from_profile)}return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},O=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)},j=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flakeId,r=c()(e);if(r){var i=r.next.max_id,o=r.prev.min_id;return{maxId:n?i:parseInt(i,10),minId:n?o:parseInt(o,10)}}},g=function(e){var t={};return t.id=e.id,t.account=h(e.account),t.unread=e.unread,t.lastMessage=v(e.last_message),t.updated_at=new Date(e.updated_at),t},v=function(e){if(e){if(e.isNormalized)return e;var t=e;return t.id=e.id,t.created_at=new Date(e.created_at),t.chat_id=e.chat_id,t.emojis=e.emojis,t.content=e.content,e.attachment?t.attachments=[b(e.attachment)]:t.attachments=[],t.pending=!!e.pending,t.error=!1,t.idempotency_key=e.idempotency_key,t.isNormalized=!0,t}}},function(e,t,n){"use strict";n.d(t,"d",(function(){return De})),n.d(t,"a",(function(){return Ie})),n.d(t,"b",(function(){return ze}));var r=n(13),i=n.n(r),o=n(49),s=n.n(o),a=n(11),c=n.n(a),l=n(5),u=n.n(l),d=n(16),p=n.n(d),h=n(45),b=n.n(h),m=n(96),f=n.n(m),O=n(21),j=n.n(O),g=n(29),v=n.n(g),y=n(10),w=n.n(y),k=n(14),_=n(28),S=n.n(_),C=n(127),P=n.n(C),D=n(128),x=n.n(D),T=n(164),I=n.n(T),$=n(312),z=n.n($),M=n(313),U=n.n(M),F=n(129),E=n.n(F),L=n(314),R=n.n(L),A=n(12),N=n.n(A),B=n(165),V=n.n(B);function H(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E()(e);if(t){var i=E()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return U()(this,n)}}function J(e,t,n,r){this.name="StatusCodeError",this.statusCode=e,this.message=e+" - "+(JSON&&JSON.stringify?JSON.stringify(t):t),this.error=t,this.options=n,this.response=r,Error.captureStackTrace&&Error.captureStackTrace(this)}J.prototype=Object.create(Error.prototype),J.prototype.constructor=J;var q=function(e){z()(n,e);var t=H(n);function n(e){var r,i;x()(this,n),r=t.call(this),Error.captureStackTrace&&Error.captureStackTrace(I()(r));try{if("string"==typeof e&&(e=JSON.parse(e)).hasOwnProperty("error")&&(e=JSON.parse(e.error)),"object"===S()(e)){var o=JSON.parse(e.error);o.ap_id&&(o.username=o.ap_id,delete o.ap_id),r.message=(i=o,Object.entries(i).reduce((function(e,t){var n=c()(t,2),r=n[0],i=n[1].reduce((function(e,t){return e+[V()(r.replace(/_/g," ")),t].join(" ")+". "}),"");return[].concat(N()(e),[i])}),[]))}else r.message=e}catch(t){r.message=e}return r}return P()(n)}(R()(Error)),W=["nickname"],Y=["id","credentials"];function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:function(e){return e};e.addEventListener(t,(function(e){s.dispatchEvent(new CustomEvent(t,{detail:n(e)}))}))};return a.addEventListener("open",(function(e){console.debug("[WS][".concat(o,"] Socket connected"),e)})),a.addEventListener("error",(function(e){console.debug("[WS][".concat(o,"] Socket errored"),e)})),a.addEventListener("close",(function(e){console.debug("[WS][".concat(o,"] Socket disconnected with code ").concat(e.code),e)})),c(a,"open"),c(a,"close"),c(a,"message",r),c(a,"error"),s.close=function(){a.close(1e3,"Shutting down socket")},s.getState=function(){return a.readyState},s},$e=function(e){var t=e.data;if(t){var n=JSON.parse(t),r=n.event,i=n.payload;if(!xe.has(r)&&!Te.has(r))return console.warn("Unknown event",e),null;if("delete"===r)return{event:r,id:i};var o=i?JSON.parse(i):null;return"update"===r?{event:r,status:Object(k.f)(o)}:"notification"===r?{event:r,notification:Object(k.e)(o)}:"pleroma:chat_update"===r?{event:r,chatUpdate:Object(k.b)(o)}:void 0}},ze=Object.freeze({JOINED:1,CLOSED:2,ERROR:3,DISABLED:4,STARTING:5,STARTING_INITIAL:6}),Me={verifyCredentials:function(e){return _e("/api/v1/accounts/verify_credentials",{headers:Ce(e)}).then((function(e){return e.ok?e.json():{error:e}})).then((function(e){return e.error?e:Object(k.g)(e)}))},fetchTimeline:function(e){var t=e.timeline,n=e.credentials,r=e.since,i=void 0!==r&&r,o=e.until,s=void 0!==o&&o,a=e.userId,c=void 0!==a&&a,l=e.tag,u=void 0!==l&&l,d=e.withMuted,p=void 0!==d&&d,h=e.replyVisibility,b=void 0===h?"all":h,m="notifications"===t,f=[],O={public:"/api/v1/timelines/public",friends:"/api/v1/timelines/home",dms:"/api/v1/timelines/direct",notifications:"/api/v1/notifications",publicAndExternal:"/api/v1/timelines/public",user:re,media:re,favorites:"/api/v1/favourites",tag:ie,bookmarks:"/api/v1/bookmarks"}[t];"user"!==t&&"media"!==t||(O=O(c)),i&&f.push(["since_id",i]),s&&f.push(["max_id",s]),u&&(O=O(u)),"media"===t&&f.push(["only_media",1]),"public"===t&&f.push(["local",!0]),"public"!==t&&"publicAndExternal"!==t||f.push(["only_media",!1]),"favorites"!==t&&"bookmarks"!==t&&f.push(["with_muted",p]),"all"!==b&&f.push(["reply_visibility",b]),f.push(["limit",20]);var g=j()(f,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");O+="?".concat(g);var v="",y="",w={};return _e(O,{headers:Ce(n)}).then((function(e){return v=e.status,y=e.statusText,w=Object(k.d)(e.headers.get("Link"),{flakeId:"bookmarks"!==t&&"notifications"!==t}),e})).then((function(e){return e.json()})).then((function(e){return e.errors?(e.status=v,e.statusText=y,e):{data:e.map(m?k.e:k.f),pagination:w}}))},fetchPinnedStatuses:function(e){var t=e.id,n=e.credentials,r=re(t)+"?pinned=true";return Se({url:r,credentials:n}).then((function(e){return e.map(k.f)}))},fetchConversation:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/statuses/".concat(e,"/context")}(t);return _e(r,{headers:Ce(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){var t=e.ancestors,n=e.descendants;return{ancestors:t.map(k.f),descendants:n.map(k.f)}}))},fetchStatus:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/statuses/".concat(e)}(t);return _e(r,{headers:Ce(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){return Object(k.f)(e)}))},fetchFriends:Pe,exportFriends:function(e){var t,n=e.id,r=e.credentials;return new Promise((t=i()(w.a.mark((function e(t,i){var o,s,a,c;return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,o=[],s=!0;case 3:if(!s){e.next=12;break}return a=o.length>0?b()(o).id:void 0,e.next=7,Pe({id:n,maxId:a,credentials:r});case 7:c=e.sent,o=f()(o,c),0===c.length&&(s=!1),e.next=3;break;case 12:t(o),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),i(e.t0);case 18:case"end":return e.stop()}}),e,null,[[0,15]])}))),function(e,n){return t.apply(this,arguments)}))},fetchFollowers:function(e){var t=e.id,n=e.maxId,r=e.sinceId,i=e.limit,o=void 0===i?20:i,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/followers")}(t),c=[n&&"max_id=".concat(n),r&&"since_id=".concat(r),o&&"limit=".concat(o),"with_relationships=true"].filter((function(e){return e})).join("&");return _e(a+=c?"?"+c:"",{headers:Ce(s)}).then((function(e){return e.json()})).then((function(e){return e.map(k.g)}))},followUser:function(e){var t=e.id,n=e.credentials,r=s()(e,Y),i=function(e){return"/api/v1/accounts/".concat(e,"/follow")}(t),o={};return void 0!==r.reblogs&&(o.reblogs=r.reblogs),_e(i,{body:JSON.stringify(o),headers:K(K({},Ce(n)),{},{"Content-Type":"application/json"}),method:"POST"}).then((function(e){return e.json()}))},unfollowUser:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/accounts/".concat(e,"/unfollow")}(t);return _e(r,{headers:Ce(n),method:"POST"}).then((function(e){return e.json()}))},pinOwnStatus:function(e){var t=e.id,n=e.credentials;return Se({url:he(t),credentials:n,method:"POST"}).then((function(e){return Object(k.f)(e)}))},unpinOwnStatus:function(e){var t=e.id,n=e.credentials;return Se({url:be(t),credentials:n,method:"POST"}).then((function(e){return Object(k.f)(e)}))},muteConversation:function(e){var t=e.id,n=e.credentials;return Se({url:me(t),credentials:n,method:"POST"}).then((function(e){return Object(k.f)(e)}))},unmuteConversation:function(e){var t=e.id,n=e.credentials;return Se({url:fe(t),credentials:n,method:"POST"}).then((function(e){return Object(k.f)(e)}))},blockUser:function(e){var t=e.id,n=e.credentials;return _e(function(e){return"/api/v1/accounts/".concat(e,"/block")}(t),{headers:Ce(n),method:"POST"}).then((function(e){return e.json()}))},unblockUser:function(e){var t=e.id,n=e.credentials;return _e(function(e){return"/api/v1/accounts/".concat(e,"/unblock")}(t),{headers:Ce(n),method:"POST"}).then((function(e){return e.json()}))},fetchUser:function(e){var t=e.id,n=e.credentials,r="".concat("/api/v1/accounts","/").concat(t);return Se({url:r,credentials:n}).then((function(e){return Object(k.g)(e)}))},fetchUserRelationship:function(e){var t=e.id,n=e.credentials,r="".concat("/api/v1/accounts/relationships","/?id=").concat(t);return _e(r,{headers:Ce(n)}).then((function(e){return new Promise((function(t,n){return e.json().then((function(i){return e.ok?t(i):n(new J(e.status,i,{url:r},e))}))}))}))},favorite:function(e){var t=e.id,n=e.credentials;return Se({url:Q(t),method:"POST",credentials:n}).then((function(e){return Object(k.f)(e)}))},unfavorite:function(e){var t=e.id,n=e.credentials;return Se({url:ee(t),method:"POST",credentials:n}).then((function(e){return Object(k.f)(e)}))},retweet:function(e){var t=e.id,n=e.credentials;return Se({url:te(t),method:"POST",credentials:n}).then((function(e){return Object(k.f)(e)}))},unretweet:function(e){var t=e.id,n=e.credentials;return Se({url:ne(t),method:"POST",credentials:n}).then((function(e){return Object(k.f)(e)}))},bookmarkStatus:function(e){var t=e.id,n=e.credentials;return Se({url:le(t),headers:Ce(n),method:"POST"})},unbookmarkStatus:function(e){var t=e.id,n=e.credentials;return Se({url:ue(t),headers:Ce(n),method:"POST"})},postStatus:function(e){var t=e.credentials,n=e.status,r=e.spoilerText,i=e.visibility,o=e.sensitive,s=e.poll,a=e.mediaIds,c=void 0===a?[]:a,l=e.inReplyToStatusId,u=e.contentType,d=e.preview,p=e.idempotencyKey,h=new FormData,b=s.options||[];if(h.append("status",n),h.append("source","Pleroma FE"),r&&h.append("spoiler_text",r),i&&h.append("visibility",i),o&&h.append("sensitive",o),u&&h.append("content_type",u),c.forEach((function(e){h.append("media_ids[]",e)})),b.some((function(e){return""!==e}))){var m={expires_in:s.expiresIn,multiple:s.multiple};Object.keys(m).forEach((function(e){h.append("poll[".concat(e,"]"),m[e])})),b.forEach((function(e){h.append("poll[options][]",e)}))}l&&h.append("in_reply_to_id",l),d&&h.append("preview","true");var f=Ce(t);return p&&(f["idempotency-key"]=p),_e("/api/v1/statuses",{body:h,method:"POST",headers:f}).then((function(e){return e.json()})).then((function(e){return e.error?e:Object(k.f)(e)}))},deleteStatus:function(e){var t=e.id,n=e.credentials;return _e(function(e){return"/api/v1/statuses/".concat(e)}(t),{headers:Ce(n),method:"DELETE"})},uploadMedia:function(e){var t=e.formData,n=e.credentials;return _e("/api/v1/media",{body:t,method:"POST",headers:Ce(n)}).then((function(e){return e.json()})).then((function(e){return Object(k.a)(e)}))},setMediaDescription:function(e){var t=e.id,n=e.description,r=e.credentials;return Se({url:"".concat("/api/v1/media","/").concat(t),method:"PUT",headers:Ce(r),payload:{description:n}}).then((function(e){return Object(k.a)(e)}))},fetchMutes:function(e){var t=e.credentials;return Se({url:"/api/v1/mutes/",credentials:t}).then((function(e){return e.map(k.g)}))},muteUser:function(e){var t=e.id,n=e.credentials;return Se({url:oe(t),credentials:n,method:"POST"})},unmuteUser:function(e){var t=e.id,n=e.credentials;return Se({url:se(t),credentials:n,method:"POST"})},subscribeUser:function(e){var t=e.id,n=e.credentials;return Se({url:ae(t),credentials:n,method:"POST"})},unsubscribeUser:function(e){var t=e.id,n=e.credentials;return Se({url:ce(t),credentials:n,method:"POST"})},fetchBlocks:function(e){var t=e.credentials;return Se({url:"/api/v1/blocks/",credentials:t}).then((function(e){return e.map(k.g)}))},fetchOAuthTokens:function(e){var t=e.credentials;return _e("/api/oauth_tokens.json",{headers:Ce(t)}).then((function(e){if(e.ok)return e.json();throw new Error("Error fetching auth tokens",e)}))},revokeOAuthToken:function(e){var t=e.id,n=e.credentials,r="/api/oauth_tokens/".concat(t);return _e(r,{headers:Ce(n),method:"DELETE"})},tagUser:function(e){var t=e.tag,n=e.credentials,r={nicknames:[e.user.screen_name],tags:[t]},i=Ce(n);return i["Content-Type"]="application/json",_e("/api/pleroma/admin/users/tag",{method:"PUT",headers:i,body:JSON.stringify(r)})},untagUser:function(e){var t=e.tag,n=e.credentials,r={nicknames:[e.user.screen_name],tags:[t]},i=Ce(n);return i["Content-Type"]="application/json",_e("/api/pleroma/admin/users/tag",{method:"DELETE",headers:i,body:JSON.stringify(r)})},deleteUser:function(e){var t=e.credentials,n=e.user.screen_name,r=Ce(t);return _e("".concat("/api/pleroma/admin/users","?nickname=").concat(n),{method:"DELETE",headers:r})},addRight:function(e){var t=e.right,n=e.credentials,r=e.user.screen_name;return _e(X(r,t),{method:"POST",headers:Ce(n),body:{}})},deleteRight:function(e){var t=e.right,n=e.credentials,r=e.user.screen_name;return _e(X(r,t),{method:"DELETE",headers:Ce(n),body:{}})},activateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Se({url:"/api/pleroma/admin/users/activate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return p()(e,"users.0")}))},deactivateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Se({url:"/api/pleroma/admin/users/deactivate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return p()(e,"users.0")}))},register:function(e){var t=e.params,n=e.credentials,r=t.nickname,i=s()(t,W);return _e("/api/v1/accounts",{method:"POST",headers:K(K({},Ce(n)),{},{"Content-Type":"application/json"}),body:JSON.stringify(K({nickname:r,locale:"en_US",agreement:!0},i))}).then((function(e){return e.ok?e.json():e.json().then((function(e){throw new q(e)}))}))},getCaptcha:function(){return _e("/api/pleroma/captcha").then((function(e){return e.json()}))},updateProfileImages:function(e){var t=e.credentials,n=e.avatar,r=void 0===n?null:n,i=e.avatarName,o=void 0===i?null:i,s=e.banner,a=void 0===s?null:s,c=e.background,l=void 0===c?null:c,u=new FormData;return null!==r&&(null!==o?u.append("avatar",r,o):u.append("avatar",r)),null!==a&&u.append("header",a),null!==l&&u.append("pleroma_background_image",l),_e("/api/v1/accounts/update_credentials",{headers:Ce(t),method:"PATCH",body:u}).then((function(e){return e.json()})).then((function(e){if(e.error)throw new Error(e.error);return Object(k.g)(e)}))},updateProfile:function(e){var t=e.credentials,n=e.params;return Se({url:"/api/v1/accounts/update_credentials",method:"PATCH",payload:n,credentials:t}).then((function(e){return Object(k.g)(e)}))},importMutes:function(e){var t=e.file,n=e.credentials,r=new FormData;return r.append("list",t),_e("/api/pleroma/mutes_import",{body:r,method:"POST",headers:Ce(n)}).then((function(e){return e.ok}))},importBlocks:function(e){var t=e.file,n=e.credentials,r=new FormData;return r.append("list",t),_e("/api/pleroma/blocks_import",{body:r,method:"POST",headers:Ce(n)}).then((function(e){return e.ok}))},importFollows:function(e){var t=e.file,n=e.credentials,r=new FormData;return r.append("list",t),_e("/api/pleroma/follow_import",{body:r,method:"POST",headers:Ce(n)}).then((function(e){return e.ok}))},deleteAccount:function(e){var t=e.credentials,n=e.password,r=new FormData;return r.append("password",n),_e("/api/pleroma/delete_account",{body:r,method:"POST",headers:Ce(t)}).then((function(e){return e.json()}))},changeEmail:function(e){var t=e.credentials,n=e.email,r=e.password,i=new FormData;return i.append("email",n),i.append("password",r),_e("/api/pleroma/change_email",{body:i,method:"POST",headers:Ce(t)}).then((function(e){return e.json()}))},changePassword:function(e){var t=e.credentials,n=e.password,r=e.newPassword,i=e.newPasswordConfirmation,o=new FormData;return o.append("password",n),o.append("new_password",r),o.append("new_password_confirmation",i),_e("/api/pleroma/change_password",{body:o,method:"POST",headers:Ce(t)}).then((function(e){return e.json()}))},settingsMFA:function(e){var t=e.credentials;return _e("/api/pleroma/accounts/mfa",{headers:Ce(t),method:"GET"}).then((function(e){return e.json()}))},mfaDisableOTP:function(e){var t=e.credentials,n=e.password,r=new FormData;return r.append("password",n),_e("/api/pleroma/accounts/mfa/totp",{body:r,method:"DELETE",headers:Ce(t)}).then((function(e){return e.json()}))},generateMfaBackupCodes:function(e){var t=e.credentials;return _e("/api/pleroma/accounts/mfa/backup_codes",{headers:Ce(t),method:"GET"}).then((function(e){return e.json()}))},mfaSetupOTP:function(e){var t=e.credentials;return _e("/api/pleroma/accounts/mfa/setup/totp",{headers:Ce(t),method:"GET"}).then((function(e){return e.json()}))},mfaConfirmOTP:function(e){var t=e.credentials,n=e.password,r=e.token,i=new FormData;return i.append("password",n),i.append("code",r),_e("/api/pleroma/accounts/mfa/confirm/totp",{body:i,headers:Ce(t),method:"POST"}).then((function(e){return e.json()}))},fetchFollowRequests:function(e){var t=e.credentials;return _e("/api/v1/follow_requests",{headers:Ce(t)}).then((function(e){return e.json()})).then((function(e){return e.map(k.g)}))},approveUser:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/follow_requests/".concat(e,"/authorize")}(t);return _e(r,{headers:Ce(n),method:"POST"}).then((function(e){return e.json()}))},denyUser:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/follow_requests/".concat(e,"/reject")}(t);return _e(r,{headers:Ce(n),method:"POST"}).then((function(e){return e.json()}))},suggestions:function(e){var t=e.credentials;return _e("/api/v1/suggestions",{headers:Ce(t)}).then((function(e){return e.json()}))},markNotificationsAsSeen:function(e){var t=e.id,n=e.credentials,r=e.single,i=void 0!==r&&r,o=new FormData;return i?o.append("id",t):o.append("max_id",t),_e("/api/v1/pleroma/notifications/read",{body:o,headers:Ce(n),method:"POST"}).then((function(e){return e.json()}))},dismissNotification:function(e){var t=e.credentials,n=e.id;return Se({url:Z(n),method:"POST",payload:{id:n},credentials:t})},vote:function(e){var t,n=e.pollId,r=e.choices,i=e.credentials;return(new FormData).append("choices",r),Se({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t,"/votes")),method:"POST",credentials:i,payload:{choices:r}})},fetchPoll:function(e){var t,n=e.pollId,r=e.credentials;return Se({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t)),method:"GET",credentials:r})},fetchFavoritedByUsers:function(e){var t=e.id,n=e.credentials;return Se({url:de(t),method:"GET",credentials:n}).then((function(e){return e.map(k.g)}))},fetchRebloggedByUsers:function(e){var t=e.id,n=e.credentials;return Se({url:pe(t),method:"GET",credentials:n}).then((function(e){return e.map(k.g)}))},fetchMascot:function(e){var t=e.credentials;return Se({url:"/api/v1/pleroma/mascot",credentials:t})},updateMascot:function(e){var t=e.mascot,n=e.credentials,r=new FormData;return r.append("file",t),_e("/api/v1/pleroma/mascot",{headers:Ce(n),method:"PUT",body:r}).then((function(e){return e.json()}))},fetchEmojiReactions:function(e){var t=e.id,n=e.credentials;return Se({url:Oe(t),credentials:n}).then((function(e){return e.map((function(e){return e.accounts=e.accounts.map(k.g),e}))}))},reactWithEmoji:function(e){var t=e.id,n=e.emoji,r=e.credentials;return Se({url:je(t,n),method:"PUT",credentials:r}).then(k.f)},unreactWithEmoji:function(e){var t=e.id,n=e.emoji,r=e.credentials;return Se({url:ge(t,n),method:"DELETE",credentials:r}).then(k.f)},reportUser:function(e){var t=e.credentials,n=e.userId,r=e.statusIds,i=e.comment,o=e.forward;return Se({url:"/api/v1/reports",method:"POST",payload:{account_id:n,status_ids:r,comment:i,forward:o},credentials:t})},updateNotificationSettings:function(e){var t=e.credentials,n=e.settings,r=new FormData;return v()(n,(function(e,t){r.append(t,e)})),_e("/api/pleroma/notification_settings",{headers:Ce(t),method:"PUT",body:r}).then((function(e){return e.json()}))},search2:function(e){var t=e.credentials,n=e.q,r=e.resolve,i=e.limit,o=e.offset,s=e.following,a="/api/v2/search",c=[];n&&c.push(["q",encodeURIComponent(n)]),r&&c.push(["resolve",r]),i&&c.push(["limit",i]),o&&c.push(["offset",o]),s&&c.push(["following",!0]),c.push(["with_relationships",!0]);var l=j()(c,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return a+="?".concat(l),_e(a,{headers:Ce(t)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching search result",e)})).then((function(e){return e.json()})).then((function(e){return e.accounts=e.accounts.slice(0,i).map((function(e){return Object(k.g)(e)})),e.statuses=e.statuses.slice(0,i).map((function(e){return Object(k.f)(e)})),e}))},searchUsers:function(e){var t=e.credentials,n=e.query;return Se({url:"/api/v1/accounts/search",params:{q:n,resolve:!0},credentials:t}).then((function(e){return e.map(k.g)}))},fetchKnownDomains:function(e){var t=e.credentials;return Se({url:"/api/v1/instance/peers",credentials:t})},fetchDomainMutes:function(e){var t=e.credentials;return Se({url:"/api/v1/domain_blocks",credentials:t})},muteDomain:function(e){var t=e.domain,n=e.credentials;return Se({url:"/api/v1/domain_blocks",method:"POST",payload:{domain:t},credentials:n})},unmuteDomain:function(e){var t=e.domain,n=e.credentials;return Se({url:"/api/v1/domain_blocks",method:"DELETE",payload:{domain:t},credentials:n})},chats:function(e){var t=e.credentials;return _e("/api/v1/pleroma/chats",{headers:Ce(t)}).then((function(e){return e.json()})).then((function(e){return{chats:e.map(k.b).filter((function(e){return e}))}}))},getOrCreateChat:function(e){var t,n=e.accountId,r=e.credentials;return Se({url:(t=n,"/api/v1/pleroma/chats/by-account-id/".concat(t)),method:"POST",credentials:r})},chatMessages:function(e){var t=e.id,n=e.credentials,r=e.maxId,i=e.sinceId,o=e.limit,s=void 0===o?20:o,a=ve(t),c=[r&&"max_id=".concat(r),i&&"since_id=".concat(i),s&&"limit=".concat(s)].filter((function(e){return e})).join("&");return Se({url:a+=c?"?"+c:"",method:"GET",credentials:n})},sendChatMessage:function(e){var t=e.id,n=e.content,r=e.mediaId,i=void 0===r?null:r,o=e.idempotencyKey,s=e.credentials,a={content:n};i&&(a.media_id=i);var c={};return o&&(c["idempotency-key"]=o),Se({url:ve(t),method:"POST",payload:a,credentials:s,headers:c})},readChat:function(e){var t=e.id,n=e.lastReadId,r=e.credentials;return Se({url:ye(t),method:"POST",payload:{last_read_id:n},credentials:r})},deleteChatMessage:function(e){var t=e.chatId,n=e.messageId,r=e.credentials;return Se({url:we(t,n),method:"DELETE",credentials:r})}};t.c=Me},,,function(e,t,n){"use strict";n.d(t,"i",(function(){return p})),n.d(t,"h",(function(){return b})),n.d(t,"c",(function(){return f})),n.d(t,"a",(function(){return O})),n.d(t,"b",(function(){return j})),n.d(t,"f",(function(){return g})),n.d(t,"g",(function(){return v})),n.d(t,"j",(function(){return y})),n.d(t,"e",(function(){return w})),n.d(t,"d",(function(){return k}));var r=n(5),i=n.n(r),o=n(11),s=n.n(o),a=n(28),c=n.n(a),l=n(20);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t255?255:e})),o=s()(i,3);return e=o[0],t=o[1],n=o[2],"#".concat(((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1))}},h=function(e){return"rgb".split("").reduce((function(t,n){return t[n]=function(e){var t=e/255;return t<.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}(e[n]),t}),{})},b=function(e){var t=h(e);return.2126*t.r+.7152*t.g+.0722*t.b},m=function(e,t){var n=b(e),r=b(t),i=n>r?[n,r]:[r,n],o=s()(i,2);return(o[0]+.05)/(o[1]+.05)},f=function(e,t,n){return m(j(n,t),e)},O=function(e,t,n){return 1===t||void 0===t?e:"rgb".split("").reduce((function(r,i){return r[i]=e[i]*t+n[i]*(1-t),r}),{})},j=function(e,t){return t.reduce((function(e,t){var n=s()(t,2),r=n[0],i=n[1];return O(r,i,e)}),e)},g=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},v=function(e,t){return"rgb".split("").reduce((function(n,r){return n[r]=(e[r]+t[r])/2,n}),{})},y=function(e){return"rgba(".concat(Math.floor(e.r),", ").concat(Math.floor(e.g),", ").concat(Math.floor(e.b),", ").concat(e.a,")")},w=function(e,t,n){if(m(e,t)<4.5){var r=void 0!==t.a?{a:t.a}:{},i=Object.assign(r,Object(l.invertLightness)(t).rgb);return!n&&m(e,i)<4.5?Object(l.contrastRatio)(e,t).rgb:i}return t},k=function(e,t){var n={};if("object"===c()(e))n=e;else if("string"==typeof e){if(!e.startsWith("#"))return e;n=g(e)}return y(d(d({},n),{},{a:t}))}},,,,function(e,t,n){"use strict";n.r(t);var r=n(0);var i=n(50),o=n(6),s=n(3);o.c.add(s.ab);var a={props:["user","betterShadow","compact","bot"],data:function(){return{showPlaceholder:!1,defaultAvatar:"".concat(this.$store.state.instance.server+this.$store.state.instance.defaultAvatar)}},components:{StillImage:i.a},methods:{imgSrc:function(e){return!e||this.showPlaceholder?this.defaultAvatar:e},imageLoadError:function(){this.showPlaceholder=!0}}},c=(n(509),n(4));const l=n.n(c)()(a,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("StillImage"),c=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("span",{class:Object(r.w)(["Avatar",{"-compact":e.compact}])},[e.user?(Object(r.D)(),Object(r.h)(a,{key:0,class:Object(r.w)(["avatar",{"-compact":e.compact,"-better-shadow":e.betterShadow}]),alt:e.user.screen_name_ui,title:e.user.screen_name_ui,src:e.imgSrc(e.user.profile_image_url_original),"image-load-error":e.imageLoadError},null,8,["alt","title","src","image-load-error","class"])):(Object(r.D)(),Object(r.j)("div",{key:1,class:Object(r.w)(["avatar -placeholder",{"-compact":e.compact}])},null,2)),e.bot?(Object(r.D)(),Object(r.h)(c,{key:2,icon:"robot",class:"bot-indicator"})):Object(r.i)("",!0)],2)}]]);t.default=l},function(e,t,n){"use strict";var r=n(123),i=n.n(r),o=function(e){return e&&e.includes("@")};t.a=function(e,t,n){var r=!t||o(t)||i()(n,t);return{name:r?"external-user-profile":"user-profile",params:r?{id:e}:{name:t}}}},function(e,t,n){"use strict";n.r(t);var r=n(0);var i={name:"Popover",props:{trigger:String,placement:String,boundTo:Object,boundToSelector:String,margin:Object,offset:Object,popoverClass:String,removePadding:Boolean},data:function(){return{hidden:!0,styles:{opacity:0},oldSize:{width:0,height:0}}},methods:{containerBoundingClientRect:function(){return(this.boundToSelector?this.$el.closest(this.boundToSelector):this.$el.offsetParent).getBoundingClientRect()},updateStyles:function(){if(this.hidden)this.styles={opacity:0};else{var e=this.$refs.trigger&&this.$refs.trigger.children[0]||this.$el,t=e.offsetWidth||e.clientWidth,n=e.offsetHeight||e.clientHeight,r=e.getBoundingClientRect(),i=r.left+.5*r.width,o=r.top,s=this.$refs.content,a=this.boundTo&&("container"===this.boundTo.x||"container"===this.boundTo.y)&&this.containerBoundingClientRect(),c=this.margin||{},l=this.boundTo&&"container"===this.boundTo.x?{min:a.left+(c.left||0),max:a.right-(c.right||0)}:{min:0+(c.left||10),max:window.innerWidth-(c.right||10)},u=this.boundTo&&"container"===this.boundTo.y?{min:a.top+(c.top||0),max:a.bottom-(c.bottom||0)}:{min:0+(c.top||50),max:window.innerHeight-(c.bottom||5)},d=0;i-.5*s.offsetWidthl.max&&(d-=i+d+.5*s.offsetWidth-l.max);var p="bottom"!==this.placement;o+s.offsetHeight>u.max&&(p=!0),o-s.offsetHeighte.onMouseenter&&e.onMouseenter(...t)),onMouseleave:t[2]||(t[2]=(...t)=>e.onMouseleave&&e.onMouseleave(...t))},[Object(r.k)("button",{ref:"trigger",class:"button-unstyled popover-trigger-button",type:"button",onClick:t[0]||(t[0]=(...t)=>e.onClick&&e.onClick(...t))},[Object(r.I)(e.$slots,"trigger")],512),e.hidden?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",{key:0,ref:"content",style:Object(r.x)(e.styles),class:Object(r.w)(["popover",e.popoverClass||"popover-default"])},[Object(r.I)(e.$slots,"content",{class:"popover-inner",close:e.hidePopover})],6))],32)}]]);t.default=s},function(e,t,n){"use strict";var r=n(11),i=n.n(r),o=n(12),s=n.n(o),a=n(49),c=n.n(a),l=n(326),u=n.n(l),d=n(75),p=n.n(d),h=n(0);function b(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n|<(\w+)\s?.*?\/?>)/gi.exec(e);return t&&(t[1]||t[2])},O=function(e){var t=e.substring(1,e.length-1).replace(new RegExp("^"+f(e)),"").replace(/\/?$/,"").trim(),n=Array.from(t.matchAll(/([a-z0-9-]+)(?:=("[^"]+?"|'[^']+?'))?/gi)).map((function(e){var t=i()(e,3);t[0];return[t[1],t[2]]})).map((function(e){var t=i()(e,2),n=t[0],r=t[1];return r?[n,r.substring(1,r.length-1)]:[n,!0]}));return Object.fromEntries(n)},j=function(e,t,n){for(var r=[],i="",o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.onClick&&e.onClick(...t),["prevent"])),innerHTML:e.content},null,8,_)])}]]),D=(n(513),["index"]);t.a={name:"RichContent",components:{MentionsLine:w.b,HashtagLink:P},props:{html:{required:!0,type:String},attentions:{required:!1,default:function(){return[]}},emoji:{required:!0,type:Array},handleLinks:{required:!1,type:Boolean,default:!1},greentext:{required:!1,type:Boolean,default:!1}},render:function(){var e=this,t=T(this.html,this.greentext).newHtml,n=null,r="",o=[],a=[],l=[],u=[],d=0,b=0,m=!1,g=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),n=[],r=[["",n]],i="",o=null,s=function(){return r[r.length-1][1]},a=function(){""!==i&&(s().push(i),i="")},c=function(e){s().push([e])},l=function(e){var t=s(),n=[p()(e),[]];r.push(n),t.push(n)},u=function(e){var t=r[r.length-1];f(r[r.length-1][0])===f(e)?(t.push(e),r.pop()):s().push(e)},d=0;d"!==h&&null!==o)o+=h;else if(">"===h&&null!==o){var b=o+=h;o=null;var m=f(b);"/"===b[1]?u(b):t.has(m)||"/"===b[b.length-2]?c(b):l(b)}else i+=h}return o&&(i+=o),a(),n}(t).map((function t(o,c,u,p){if("string"==typeof o){var b=""===o.trim();return o.includes("\n")&&(n=null),b?(r=o,c!==u.length-1&&null!==n?o.trim():o):(n=null,o.includes(":")&&(o=["",j(o,e.emoji,(function(e){var t=e.shortcode,n=e.url;return Object(h.m)(y.a,{class:"emoji img",src:n,title:":".concat(t,":"),alt:":".concat(t,":")},null)}))]),o)}if(Array.isArray(o)){var m=o,g=i()(m,3),v=g[0],k=g[1],_=g[2],S=f(v),C=O(v),P=!(null!==n)||k&&"string"==typeof k[0]&&k[0].match(/^\s/)?"":r;switch(S){case"br":n=null;break;case"img":return["",[P,(D=v,Object(h.m)(y.a,Object(h.u)(O(D),{class:"img"}),null))],""];case"a":if(!e.handleLinks)break;if(C.class&&C.class.includes("mention"))return function(t,r){var i=x(t,r,d++);return i.notifying=e.attentions.some((function(e){return e.statusnet_profile_url===i.url})),a.push(i),null===n&&(n=[]),n.push(i),n.length>w.a&&l.push(i),1===n.length?Object(h.m)(w.b,{mentions:n},null):""}(C,k);if(n=null,C.href)return function(e,t){var n=e.href.replace(/&/g,"&"),r=t.map((function(t){return"string"==typeof t?t.replace(e.href,n):""===t[0]?Object(h.m)("span",null,[t[1]]):t[1]}));return Object(h.m)("a",Object(h.u)({attrs:e},{href:n}),s()(r))}(C,k);break;case"span":if(e.handleLinks&&C.class&&C.class.includes("h-card"))return["",k.map(t),""]}return void 0!==k?["",[P,[v,k.map(t),_]],""]:["",[P,o],""]}var D})),v=s()(g).reverse().map((function t(n,r,a,l){var d;if("string"==typeof n)return""===n.trim()?n:(m||(m=!0),p()(n));if(Array.isArray(n)){var j=i()(n,2),g=j[0],v=j[1],y=""===g?"":f(g);switch(y){case"a":if(!e.handleLinks)break;var w=O(g);if(w.class&&w.class.includes("hashtag")||"tag"===w.rel)return function(e,t,n){var r=x(e,t,b++),i=(r.index,c()(r,D));u.push(i),n||o.push(i);var s=i.url,a=i.tag,l=i.content;return Object(h.m)(P,{url:s,tag:a,content:l},null)}(w,v,m);w.target="_blank";var k=s()(v).reverse().map(t).reverse();return Object(h.m)("a",w,[k]);case"":return s()(v).reverse().map(t).reverse()}if(void 0!==v){var _=Array.isArray(v)?s()(v).reverse().map(t).reverse():v;return Object(h.m)(y,O(g),"function"==typeof(d=_)||"[object Object]"===Object.prototype.toString.call(d)&&!Object(h.t)(d)?_:{default:function(){return[_]}})}return Object(h.m)(y,null,null)}return n})).reverse(),k=Object(h.m)("span",{class:"RichContent"},[v]),_={lastTags:o,writtenMentions:a,writtenTags:u,invisibleMentions:l};return this.$emit("parseReady",_),k}};var x=function(e,t,n){var r=t.map((function e(t){return"string"==typeof t?t:t[1].map(e).join("")})).join("");return{index:n,url:e.href,tag:e["data-tag"],content:u()(t).join(""),textContent:r}},T=function(e,t){var n=new Set(["p","div"]);return{newHtml:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),r=new Set(["address","article","aside","blockquote","details","dialog","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","ol","p","pre","section","table","ul"]),i=new Set(["br"]),o=new Set([].concat(s()(r.values()),s()(i.values()))),a=new Set(o),c=g(n);try{for(c.s();!(e=c.n()).done;){var l=e.value;a.delete(l)}}catch(e){c.e(e)}finally{c.f()}for(var u=new Set([].concat(s()(a.values()),s()(n.values()))),d=[],p=[],h="",b=null,m=function(){h.trim().length>0?d.push({level:[].concat(p),text:h}):d.push(h),h=""},O=function(e){m(),d.push(e)},j=function(e){m(),d.push(e),p.unshift(f(e))},v=function(e){p[0]===f(e)?(m(),d.push(e),p.shift()):h+=e},y=0;y"!==w&&null!==b)b+=w;else if(">"===w&&null!==b){var k=b+=w;b=null;var _=f(k);u.has(_)?i.has(_)?O(k):a.has(_)?"/"===k[1]?v(k):"/"===k[k.length-2]?O(k):j(k):h+=k:h+=k}else"\n"===w?O(w):h+=w}return b&&(h+=b),m(),d}(e).reverse().map((function(e,r,i){if(!e.text)return e;var o=e.text;if(t&&e.level.every((function(e){return n.has(e)}))&&(o.includes(">")||o.includes("<"))){var s=o.replace(/<[^>]+?>/gi,"").replace(/@\w+/gi,"").trim();if(s.startsWith(">"))return"".concat(o,"");if(s.startsWith("<"))return"".concat(o,"")}return o})).reverse().join("")}}},function(e,t,n){"use strict";n.d(t,"e",(function(){return d})),n.d(t,"b",(function(){return b})),n.d(t,"c",(function(){return m})),n.d(t,"d",(function(){return O})),n.d(t,"a",(function(){return j})),n.d(t,"f",(function(){return g}));var r=n(123),i=n.n(r),o=n(124),s=n.n(o),a=n(48),c=n.n(a),l=n(125),u=n(126),d=function(e){return e.state.statuses.notifications.data},p=function(e){var t=e.rootState||e.state;return[t.config.notificationVisibility.likes&&"like",t.config.notificationVisibility.mentions&&"mention",t.config.notificationVisibility.repeats&&"repeat",t.config.notificationVisibility.follows&&"follow",t.config.notificationVisibility.followRequest&&"follow_request",t.config.notificationVisibility.moves&&"move",t.config.notificationVisibility.emojiReactions&&"pleroma:emoji_reaction",t.config.notificationVisibility.polls&&"poll"].filter((function(e){return e}))},h=["like","mention","repeat","pleroma:emoji_reaction","poll"],b=function(e){return i()(h,e)},m=function(e){return!(b(e.type)&&!e.status)},f=function(e,t){var n=Number(e.id),r=Number(t.id),i=!Number.isNaN(n),o=!Number.isNaN(r);return i&&o?n>r?-1:1:i&&!o?1:!i&&o||e.id>t.id?-1:1},O=function(e,t){var n=e.rootState||e.state;if(!t.seen&&p(e).includes(t.type)&&("mention"!==t.type||!function(e,t){if(t.status)return t.status.muted||Object(l.a)(t.status,e.rootGetters.mergedConfig.muteWords).length>0}(e,t))){var r=v(t,e.rootGetters.i18n);Object(u.a)(n,r)}},j=function(e,t){var n=d(e).map((function(e){return e})).sort(f);return(n=s()(n,"seen")).filter((function(n){return(t||p(e)).includes(n.type)}))},g=function(e){return c()(j(e),(function(e){return!e.seen}))},v=function(e,t){var n,r={tag:e.id},i=e.status,o=e.from_profile.name;switch(r.title=o,r.icon=e.from_profile.profile_image_url,e.type){case"like":n="favorited_you";break;case"repeat":n="repeated_you";break;case"follow":n="followed_you";break;case"move":n="migrated_to";break;case"follow_request":n="follow_request";break;case"poll":n="poll_ended"}return"pleroma:emoji_reaction"===e.type?r.body=t.t("notifications.reacted_with",[e.emoji]):n?r.body=t.t("notifications."+n):b(e.type)&&(r.body=e.status.text),i&&i.attachments&&i.attachments.length>0&&!i.nsfw&&i.attachments[0].mimetype.startsWith("image/")&&(r.image=i.attachments[0].url),r}},,,,,,function(e,t,n){"use strict";var r=function(e){return e.match(/flash/)?"flash":e.match(/text\/html/)?"html":e.match(/image/)?"image":e.match(/video/)?"video":e.match(/audio/)?"audio":"unknown"},i={fileType:r,fileMatchesSomeType:function(e,t){return e.some((function(e){return r(t.mimetype)===e}))}};t.a=i},function(e,t,n){"use strict";n.r(t);var r=n(0);const i={key:0,class:"alert error"},o={key:1,class:"status-container muted"},s={class:"status-username"},a={key:0,class:"mute-thread"},c={key:1,class:"mute-thread"},l=["title"],u={key:0,class:"pin"},d={class:"faint"},p={class:"right-side faint"},h=["title"],b=Object(r.l)(" "+Object(r.O)(" ")+" "),m=["data-tags"],f={key:0,class:"left-side"},O=["href"],j={class:"right-side"},g={key:1,class:"status-heading"},v={class:"heading-name-row"},y={class:"heading-left"},w=["title"],k=["title"],_=["src"],S={class:"heading-right"},C=["title"],P=["title"],D=["title","aria-expanded"],x=["title"],T={key:0,class:"heading-reply-row"},I={key:0,class:"glued-label reply-glued-label"},$=["aria-label"],z=Object(r.l)(" "+Object(r.O)(" ")+" "),M={class:"reply-to-text"},U={key:1,class:"reply-to-no-popover"},F={class:"reply-to-text"},E={key:1,class:"glued-label"},L=["aria-label"],R={class:"mentions-text"},A={key:2,class:"replies"},N=["title"],B={key:1,class:"faint"},V=["onClick"],H={key:0,class:"favs-repeated-users"},J={class:"stats"},q={class:"stat-count"},W={class:"stat-title"},Y={class:"stat-number"},G={class:"stat-count"},K={class:"stat-title"},X={class:"stat-number"},Z={class:"avatar-row"},Q={key:4,class:"status-actions"},ee={key:3,class:"gravestone"},te={class:"left-side"},ne={class:"right-side"},re={class:"deleted-text"},ie={key:4,class:"status-container reply-form"};var oe=n(5),se=n.n(oe),ae=n(135),ce=n.n(ae),le=n(75),ue=n.n(le);const de={class:"ReplyButton"},pe=["title"],he={key:1},be={key:2,class:"action-counter"};var me=n(6),fe=n(3);me.c.add(fe.Y);var Oe={name:"ReplyButton",props:["status","replying"],computed:{loggedIn:function(){return!!this.$store.state.users.currentUser}}},je=(n(540),n(4)),ge=n.n(je);var ve=ge()(Oe,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("div",de,[e.loggedIn?(Object(r.D)(),Object(r.j)("button",{key:0,class:Object(r.w)(["button-unstyled interactive",{"-active":e.replying}]),title:e.$t("tool_tip.reply"),onClick:t[0]||(t[0]=Object(r.Y)(t=>e.$emit("toggle"),["prevent"]))},[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:"reply"})],10,pe)):(Object(r.D)(),Object(r.j)("span",he,[Object(r.m)(a,{icon:"reply",class:"fa-scale-110 fa-old-padding",title:e.$t("tool_tip.reply")},null,8,["title"])])),e.status.replies_count>0?(Object(r.D)(),Object(r.j)("span",be,Object(r.O)(e.status.replies_count),1)):Object(r.i)("",!0)])}]]);const ye={class:"FavoriteButton"},we=["title"],ke={key:1},_e={key:2,class:"action-counter"};var Se=n(8),Ce=n(39);function Pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}me.c.add(fe.jb,Ce.d);var De={props:["status","loggedIn"],data:function(){return{animated:!1}},methods:{favorite:function(){var e=this;this.status.favorited?this.$store.dispatch("unfavorite",{id:this.status.id}):this.$store.dispatch("favorite",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:function(e){for(var t=1;te.favorite(),["prevent"]))},[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:[e.status.favorited?"fas":"far","star"],spin:e.animated},null,8,["icon","spin"])],10,we)):(Object(r.D)(),Object(r.j)("span",ke,[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",title:e.$t("tool_tip.favorite"),icon:["far","star"]},null,8,["title"])])),!e.mergedConfig.hidePostStats&&e.status.fave_num>0?(Object(r.D)(),Object(r.j)("span",_e,Object(r.O)(e.status.fave_num),1)):Object(r.i)("",!0)])}]]);const Te={class:"reaction-picker-filter"},Ie=["placeholder"],$e={class:"reaction-picker"},ze=["title","onClick"],Me=Object(r.k)("div",{class:"reaction-picker-divider"},null,-1),Ue=["title","onClick"],Fe=["src"],Ee={key:1},Le=Object(r.k)("div",{class:"reaction-bottom-fader"},null,-1),Re=["title"];var Ae=n(12),Ne=n.n(Ae),Be=n(24);me.c.add(Ce.c);var Ve={props:["status"],data:function(){return{filterWord:""}},components:{Popover:Be.default},methods:{addReaction:function(e,t,n){var r=this.status.emoji_reactions.find((function(e){return e.name===t}));r&&r.me?this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:t}):this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:t}),n()},focusInput:function(){var e=this;this.$nextTick((function(){var t=e.$el.querySelector("input");t&&t.focus()}))}},computed:{commonEmojis:function(){return[{displayText:"thumbsup",replacement:"👍"},{displayText:"angry",replacement:"😠"},{displayText:"eyes",replacement:"👀"},{displayText:"joy",replacement:"😂"},{displayText:"fire",replacement:"🔥"}]},emojis:function(){if(""!==this.filterWord){for(var e=this.filterWord.toLowerCase(),t=[],n=0,r=[].concat(Ne()(this.$store.state.instance.emoji),Ne()(this.$store.state.instance.customEmoji));n-1&&(Array.isArray(t[o])||(t[o]=[]),t[o].push(i))}return t.flat()}return[].concat(Ne()(this.$store.state.instance.emoji),Ne()(this.$store.state.instance.customEmoji))||[]},mergedConfig:function(){return this.$store.getters.mergedConfig}}};n(542);var He=ge()(Ve,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon"),c=Object(r.J)("Popover");return Object(r.D)(),Object(r.h)(c,{trigger:"click",class:"ReactButton",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"",onShow:e.focusInput},{content:Object(r.V)(({close:n})=>[Object(r.k)("div",Te,[Object(r.W)(Object(r.k)("input",{"onUpdate:modelValue":t[0]||(t[0]=t=>e.filterWord=t),size:"1",placeholder:e.$t("emoji.search_emoji")},null,8,Ie),[[r.S,e.filterWord]])]),Object(r.k)("div",$e,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.commonEmojis,t=>(Object(r.D)(),Object(r.j)("span",{key:t.replacement,class:"emoji-button",title:t.displayText,onClick:r=>e.addReaction(r,t.replacement,n)},Object(r.O)(t.replacement),9,ze))),128)),Me,(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.emojis,(t,i)=>(Object(r.D)(),Object(r.j)("span",{key:i,class:"emoji-button",title:t.displayText,onClick:r=>e.addReaction(r,t.replacement,n)},[!1!==t.imageUrl?(Object(r.D)(),Object(r.j)("img",{key:0,src:t.imageUrl,width:"30px",class:"custom-reaction"},null,8,Fe)):(Object(r.D)(),Object(r.j)("span",Ee,Object(r.O)(t.replacement),1))],8,Ue))),128)),Le])]),trigger:Object(r.V)(()=>[Object(r.k)("button",{class:"button-unstyled popover-trigger",title:e.$t("tool_tip.add_reaction")},[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:["far","smile-beam"]})],8,Re)]),_:1},8,["onShow"])}]]);const Je={class:"RetweetButton"},qe=["title"],We={key:1},Ye={key:2},Ge={key:3,class:"no-event"};me.c.add(fe.Z);var Ke={props:["status","loggedIn","visibility"],data:function(){return{animated:!1}},methods:{retweet:function(){var e=this;this.status.repeated?this.$store.dispatch("unretweet",{id:this.status.id}):this.$store.dispatch("retweet",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig}}};n(543);var Xe=ge()(Ke,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("div",Je,["private"!==e.visibility&&"direct"!==e.visibility&&e.loggedIn?(Object(r.D)(),Object(r.j)("button",{key:0,class:Object(r.w)(["button-unstyled interactive",e.status.repeated&&"-repeated"]),title:e.$t("tool_tip.repeat"),onClick:t[0]||(t[0]=Object(r.Y)(t=>e.retweet(),["prevent"]))},[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:"retweet",spin:e.animated},null,8,["spin"])],10,qe)):e.loggedIn?(Object(r.D)(),Object(r.j)("span",We,[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:"lock",title:e.$t("timeline.no_retweet_hint")},null,8,["title"])])):(Object(r.D)(),Object(r.j)("span",Ye,[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"])])),!e.mergedConfig.hidePostStats&&e.status.repeat_num>0?(Object(r.D)(),Object(r.j)("span",Ge,Object(r.O)(e.status.repeat_num),1)):Object(r.i)("",!0)])}]]);const Ze={class:"dropdown-menu"},Qe=["onClick"],et=["onClick"],tt=["onClick"],nt=["onClick"],rt=["onClick"],it=["onClick"],ot=["href"],st=["onClick"],at={class:"button-unstyled popover-trigger"};me.c.add(fe.w,fe.j,Ce.a,fe.C,fe.qb,fe.fb,fe.A,Ce.b);var ct={props:["status"],components:{Popover:Be.default},methods:{deleteStatus:function(){window.confirm(this.$t("status.delete_confirm"))&&this.$store.dispatch("deleteStatus",{id:this.status.id})},pinStatus:function(){var e=this;this.$store.dispatch("pinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unpinStatus:function(){var e=this;this.$store.dispatch("unpinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},muteConversation:function(){var e=this;this.$store.dispatch("muteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unmuteConversation:function(){var e=this;this.$store.dispatch("unmuteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},copyLink:function(){var e=this;navigator.clipboard.writeText(this.statusLink).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},bookmarkStatus:function(){var e=this;this.$store.dispatch("bookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unbookmarkStatus:function(){var e=this;this.$store.dispatch("unbookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},reportStatus:function(){this.$store.dispatch("openUserReportingModal",{userId:this.status.user.id,statusIds:[this.status.id]})}},computed:{currentUser:function(){return this.$store.state.users.currentUser},canDelete:function(){if(this.currentUser)return this.currentUser.rights.moderator||this.currentUser.rights.admin||this.status.user.id===this.currentUser.id},ownStatus:function(){return this.status.user.id===this.currentUser.id},canPin:function(){return this.ownStatus&&("public"===this.status.visibility||"unlisted"===this.status.visibility)},canMute:function(){return!!this.currentUser},statusLink:function(){return"".concat(this.$store.state.instance.server).concat(this.$router.resolve({name:"conversation",params:{id:this.status.id}}).href)}}};n(544);var lt=ge()(ct,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon"),c=Object(r.J)("Popover");return Object(r.D)(),Object(r.h)(c,{class:"ExtraButtons",trigger:"click",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":""},{content:Object(r.V)(({close:n})=>[Object(r.k)("div",Ze,[e.canMute&&!e.status.thread_muted?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=Object(r.Y)((...t)=>e.muteConversation&&e.muteConversation(...t),["prevent"]))},[Object(r.m)(a,{"fixed-width":"",icon:"eye-slash"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.mute_conversation")),1)])):Object(r.i)("",!0),e.canMute&&e.status.thread_muted?(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:t[1]||(t[1]=Object(r.Y)((...t)=>e.unmuteConversation&&e.unmuteConversation(...t),["prevent"]))},[Object(r.m)(a,{"fixed-width":"",icon:"eye-slash"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.unmute_conversation")),1)])):Object(r.i)("",!0),!e.status.pinned&&e.canPin?(Object(r.D)(),Object(r.j)("button",{key:2,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[2]||(t[2]=Object(r.Y)((...t)=>e.pinStatus&&e.pinStatus(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:"thumbtack"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.pin")),1)],8,Qe)):Object(r.i)("",!0),e.status.pinned&&e.canPin?(Object(r.D)(),Object(r.j)("button",{key:3,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=Object(r.Y)((...t)=>e.unpinStatus&&e.unpinStatus(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:"thumbtack"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.unpin")),1)],8,et)):Object(r.i)("",!0),e.status.bookmarked?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("button",{key:4,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=Object(r.Y)((...t)=>e.bookmarkStatus&&e.bookmarkStatus(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:["far","bookmark"]}),Object(r.k)("span",null,Object(r.O)(e.$t("status.bookmark")),1)],8,tt)),e.status.bookmarked?(Object(r.D)(),Object(r.j)("button",{key:5,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=Object(r.Y)((...t)=>e.unbookmarkStatus&&e.unbookmarkStatus(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:"bookmark"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.unbookmark")),1)],8,nt)):Object(r.i)("",!0),e.canDelete?(Object(r.D)(),Object(r.j)("button",{key:6,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[6]||(t[6]=Object(r.Y)((...t)=>e.deleteStatus&&e.deleteStatus(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:"times"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.delete")),1)],8,rt)):Object(r.i)("",!0),Object(r.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[7]||(t[7]=Object(r.Y)((...t)=>e.copyLink&&e.copyLink(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:"share-alt"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.copy_link")),1)],8,it),e.status.is_local?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("a",{key:7,class:"button-default dropdown-item dropdown-item-icon",title:"Source",href:e.status.external_url,target:"_blank"},[Object(r.m)(a,{"fixed-width":"",icon:"external-link-alt"}),Object(r.k)("span",null,Object(r.O)(e.$t("status.external_source")),1)],8,ot)),Object(r.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[8]||(t[8]=Object(r.Y)((...t)=>e.reportStatus&&e.reportStatus(...t),["prevent"])),n]},[Object(r.m)(a,{"fixed-width":"",icon:["far","flag"]}),Object(r.k)("span",null,Object(r.O)(e.$t("user_card.report")),1)],8,st)])]),trigger:Object(r.V)(()=>[Object(r.k)("button",at,[Object(r.m)(a,{class:"fa-scale-110 fa-old-padding",icon:"ellipsis-h"})])]),_:1})}]]),ut=n(57),dt=n(34),pt=n(22),ht=n(144),bt=n(59),mt=n(44),ft=n(25);const Ot={key:1,class:"status-preview-no-content faint"},jt={key:2,class:"status-preview-no-content"};var gt=n(30),vt=n.n(gt);me.c.add(fe.r);var yt={name:"StatusPopover",props:["statusId"],data:function(){return{error:!1}},computed:{status:function(){return vt()(this.$store.state.statuses.allStatuses,{id:this.statusId})}},components:{Status:Object(r.n)((function(){return Promise.resolve().then(n.bind(null,33))})),Popover:Object(r.n)((function(){return Promise.resolve().then(n.bind(null,24))}))},methods:{enter:function(){var e=this;if(!this.status){if(!this.statusId)return void(this.error=!0);this.$store.dispatch("fetchStatus",this.statusId).then((function(t){return e.error=!1})).catch((function(t){return e.error=!0}))}}}};n(546);var wt=ge()(yt,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("Status"),c=Object(r.J)("FAIcon"),l=Object(r.J)("Popover");return Object(r.D)(),Object(r.h)(l,{trigger:"hover","popover-class":"popover-default status-popover","bound-to":{x:"container"},onShow:e.enter},{trigger:Object(r.V)(()=>[Object(r.I)(e.$slots,"default")]),content:Object(r.V)(()=>[e.status?(Object(r.D)(),Object(r.h)(a,{key:0,"is-preview":!0,statusoid:e.status,compact:!0},null,8,["statusoid"])):e.error?(Object(r.D)(),Object(r.j)("div",Ot,Object(r.O)(e.$t("status.status_unavailable")),1)):(Object(r.D)(),Object(r.j)("div",jt,[Object(r.m)(c,{icon:"circle-notch",spin:"",size:"2x"})]))]),_:3},8,["onShow"])}]]);const kt={class:"user-list-popover"},_t={class:"user-list-names"},St={class:"user-list-screen-name"};me.c.add(fe.r);var Ct={name:"UserListPopover",props:["users"],components:{RichContent:ft.a,Popover:Object(r.n)((function(){return Promise.resolve().then(n.bind(null,24))})),UserAvatar:Object(r.n)((function(){return Promise.resolve().then(n.bind(null,22))}))},computed:{usersCapped:function(){return this.users.slice(0,16)}}};n(547);var Pt=ge()(Ct,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("UserAvatar"),c=Object(r.J)("RichContent"),l=Object(r.J)("FAIcon"),u=Object(r.J)("Popover");return Object(r.D)(),Object(r.h)(u,{trigger:"hover",placement:"top",offset:{y:5}},{trigger:Object(r.V)(()=>[Object(r.I)(e.$slots,"default")]),content:Object(r.V)(()=>[Object(r.k)("div",kt,[e.users.length?(Object(r.D)(!0),Object(r.j)(r.a,{key:0},Object(r.H)(e.usersCapped,e=>(Object(r.D)(),Object(r.j)("div",{key:e.id,class:"user-list-row"},[Object(r.m)(a,{user:e,class:"avatar-small",compact:!0},null,8,["user"]),Object(r.k)("div",_t,[Object(r.m)(c,{class:"username",title:"@"+e.screen_name_ui,html:e.name_html,emoji:e.emoji},null,8,["title","html","emoji"]),Object(r.k)("span",St,Object(r.O)(e.screen_name_ui),1)])]))),128)):(Object(r.D)(),Object(r.h)(l,{key:1,icon:"circle-notch",spin:"",size:"3x"}))])]),_:3})}]]);const Dt={class:"emoji-reactions"},xt=["onClick"],Tt={key:0},It=["src","title"],$t={key:1},zt={class:"reaction-emoji unicode-emoji"};var Mt={name:"EmojiReactions",components:{UserAvatar:pt.default,UserListPopover:Pt},props:["status"],data:function(){return{showAll:!1}},computed:{tooManyReactions:function(){return this.status.emoji_reactions.length>12},emojiReactions:function(){return this.showAll?this.status.emoji_reactions:this.status.emoji_reactions.slice(0,12)},showMoreString:function(){return"+".concat(this.status.emoji_reactions.length-12)},accountsForEmoji:function(){return this.status.emoji_reactions.reduce((function(e,t){return e[t.name]=t.accounts||[],e}),{})},loggedIn:function(){return!!this.$store.state.users.currentUser}},methods:{toggleShowAll:function(){this.showAll=!this.showAll},reactedWith:function(e){return this.status.emoji_reactions.find((function(t){return t.name===e})).me},fetchEmojiReactionsByIfMissing:function(){this.status.emoji_reactions.find((function(e){return!e.accounts}))&&this.$store.dispatch("fetchEmojiReactionsBy",this.status.id)},reactWith:function(e){this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:e})},unreact:function(e){this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:e})},emojiOnClick:function(e,t){this.loggedIn&&(this.reactedWith(e)?this.unreact(e):this.reactWith(e))}}};n(548);var Ut=ge()(Mt,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("UserListPopover");return Object(r.D)(),Object(r.j)("div",Dt,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.emojiReactions,n=>(Object(r.D)(),Object(r.h)(a,{key:n.name,users:e.accountsForEmoji[n.name]},{default:Object(r.V)(()=>[Object(r.k)("button",{class:Object(r.w)(["emoji-reaction btn button-default",{"picked-reaction":e.reactedWith(n.name),"not-clickable":!e.loggedIn}]),onClick:t=>e.emojiOnClick(n.name,t),onMouseenter:t[0]||(t[0]=t=>e.fetchEmojiReactionsByIfMissing())},[null!==n.url?(Object(r.D)(),Object(r.j)("span",Tt,[Object(r.k)("img",{src:n.url,title:n.name,class:"reaction-emoji",width:"2.55em"},null,8,It),Object(r.l)(" "+Object(r.O)(n.count),1)])):(Object(r.D)(),Object(r.j)("span",$t,[Object(r.k)("span",zt,Object(r.O)(n.name),1),Object(r.k)("span",null,Object(r.O)(n.count),1)]))],42,xt)]),_:2},1032,["users"]))),128)),e.tooManyReactions?(Object(r.D)(),Object(r.j)("a",{key:0,class:"emoji-reaction-expand faint",href:"javascript:void(0)",onClick:t[1]||(t[1]=(...t)=>e.toggleShowAll&&e.toggleShowAll(...t))},Object(r.O)(e.showAll?e.$t("general.show_less"):e.showMoreString),1)):Object(r.i)("",!0)])}]]),Ft=n(80),Et=n(141),Lt=n(23),Rt=n(40),At=n(125);function Nt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Bt(e){for(var t=1;t0},muted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.userIsMuted||status.thread_muted||this.muteWordHits.length>0||this.muteBotStatuses&&this.botStatus&&!this.compact;return!this.unmuted&&!this.shouldNotMute&&e},userIsMuted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.status,t=e.reblog,n=this.$store.getters.relationship(e.user.id),r=t&&this.$store.getters.relationship(t.user.id);return e.muted||t&&t.muted||n.muting||r&&r.muting},shouldNotMute:function(){var e=this.status,t=e.reblog;return(this.inProfile&&(!t&&e.user.id===this.profileUserId||t&&t.user.id===this.profileUserId)||this.inConversation&&e.thread_muted)&&!this.muteWordHits.length>0},hideMutedUsers:function(){return this.mergedConfig.hideMutedPosts},hideMutedThreads:function(){return this.mergedConfig.hideMutedThreads},hideFilteredStatuses:function(){return this.mergedConfig.hideFilteredStatuses},hideWordFilteredPosts:function(){return this.mergedConfig.hideWordFilteredPosts},hideStatus:function(){return!this.shouldNotMute&&(this.muted&&this.hideFilteredStatuses||this.userIsMuted&&this.hideMutedUsers||this.status.thread_muted&&this.hideMutedThreads||this.muteWordHits.length>0&&this.hideWordFilteredPosts)},isFocused:function(){return!!this.focused||!!this.inConversation&&this.status.id===this.highlight},isReply:function(){return!(!this.status.in_reply_to_status_id||!this.status.in_reply_to_user_id)},replyToName:function(){if(this.status.in_reply_to_screen_name)return this.status.in_reply_to_screen_name;var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e&&e.screen_name_ui},replySubject:function(){if(!this.status.summary)return"";var e=ue()(this.status.summary),t=this.mergedConfig.subjectLineBehavior,n=e.match(/^re[: ]/i);return"noop"!==t&&n||"masto"===t?e:"email"===t?"re: ".concat(e):"noop"===t?"":void 0},combinedFavsAndRepeatsUsers:function(){var e=[].concat(this.statusFromGlobalRepository.favoritedBy,this.statusFromGlobalRepository.rebloggedBy);return ce()(e,"id")},tags:function(){return this.status.tags.filter((function(e){return e.hasOwnProperty("name")})).map((function(e){return e.name})).join(" ")},hidePostStats:function(){return this.mergedConfig.hidePostStats},muteBotStatuses:function(){return this.mergedConfig.muteBotStatuses},hideBotIndication:function(){return this.mergedConfig.hideBotIndication},currentUser:function(){return this.$store.state.users.currentUser},betterShadow:function(){return this.$store.state.interface.browserSupport.cssFilter},mergedConfig:function(){return this.$store.getters.mergedConfig},isSuspendable:function(){return!this.replying&&0===this.mediaPlaying.length},inThreadForest:function(){return!!this.controlledThreadDisplayStatus},threadShowing:function(){return"showing"===this.controlledThreadDisplayStatus},visibilityLocalized:function(){return this.$i18n.t("general.scope_in_timeline."+this.status.visibility)}}),methods:{visibilityIcon:function(e){switch(e){case"private":return"lock";case"unlisted":return"lock-open";case"direct":return"envelope";case"local":return"users";default:return"globe"}},showError:function(e){this.error=e},clearError:function(){this.error=void 0},toggleReplying:function(){!function(e,t){var n=Ht(t),r="controlledToggle".concat(n),i="uncontrolled".concat(n);e[r]?e[r]():e[i]=!e[i]}(this,"replying")},gotoOriginal:function(e){this.inConversation&&this.$emit("goto",e)},toggleExpanded:function(){this.$emit("toggleExpanded")},toggleMute:function(){this.unmuted=!this.unmuted},toggleUserExpanded:function(){this.userExpanded=!this.userExpanded},generateUserProfileLink:function(e,t){return Object(Lt.a)(e,t,this.$store.state.instance.restrictedNicknames)},addMediaPlaying:function(e){Jt(this,"mediaPlaying",this.mediaPlaying.concat(e))},removeMediaPlaying:function(e){Jt(this,"mediaPlaying",this.mediaPlaying.filter((function(t){return t!==e})))},setHeadTailLinks:function(e){this.headTailLinks=e},toggleThreadDisplay:function(){this.controlledToggleThreadDisplay()},scrollIfHighlighted:function(e){var t=e;if(this.status.id===t){var n=this.$el.getBoundingClientRect();n.top<100||n.height>=window.innerHeight-50?window.scrollBy(0,n.top-100):n.bottom>window.innerHeight-50&&window.scrollBy(0,n.bottom-window.innerHeight+50)}}},watch:{highlight:function(e){this.scrollIfHighlighted(e)},"status.repeat_num":function(e){this.isFocused&&this.statusFromGlobalRepository.rebloggedBy&&this.statusFromGlobalRepository.rebloggedBy.length!==e&&this.$store.dispatch("fetchRepeats",this.status.id)},"status.fave_num":function(e){this.isFocused&&this.statusFromGlobalRepository.favoritedBy&&this.statusFromGlobalRepository.favoritedBy.length!==e&&this.$store.dispatch("fetchFavs",this.status.id)},isSuspendable:function(e){this.suspendable=e}}};n(549);const Wt=ge()(qt,[["render",function(e,t,n,oe,se,ae){const ce=Object(r.J)("FAIcon"),le=Object(r.J)("router-link"),ue=Object(r.J)("UserAvatar"),de=Object(r.J)("RichContent"),pe=Object(r.J)("UserCard"),he=Object(r.J)("Timeago"),be=Object(r.J)("StatusPopover"),me=Object(r.J)("MentionLink"),fe=Object(r.J)("MentionsLine"),Oe=Object(r.J)("StatusContent"),je=Object(r.J)("UserListPopover"),ge=Object(r.J)("AvatarList"),ve=Object(r.J)("EmojiReactions"),ye=Object(r.J)("reply-button"),we=Object(r.J)("retweet-button"),ke=Object(r.J)("favorite-button"),_e=Object(r.J)("ReactButton"),Se=Object(r.J)("extra-buttons"),Ce=Object(r.J)("PostStatusForm");return e.hideStatus?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",{key:0,ref:"root",class:Object(r.w)(["Status",[{"-focused":e.isFocused},{"-conversation":e.inlineExpanded}]])},[e.error?(Object(r.D)(),Object(r.j)("div",i,[Object(r.l)(Object(r.O)(e.error)+" ",1),Object(r.k)("span",{class:"fa-scale-110 fa-old-padding",onClick:t[0]||(t[0]=(...t)=>e.clearError&&e.clearError(...t))},[Object(r.m)(ce,{icon:"times"})])])):Object(r.i)("",!0),e.muted&&!e.isPreview?(Object(r.D)(),Object(r.j)("div",o,[Object(r.k)("small",s,[e.muted&&e.retweet?(Object(r.D)(),Object(r.h)(ce,{key:0,class:"fa-scale-110 fa-old-padding repeat-icon",icon:"retweet"})):Object(r.i)("",!0),Object(r.m)(le,{to:e.userProfileLink},{default:Object(r.V)(()=>[Object(r.l)(Object(r.O)(e.status.user.screen_name_ui),1)]),_:1},8,["to"])]),e.showReasonMutedThread?(Object(r.D)(),Object(r.j)("small",a,Object(r.O)(e.$t("status.thread_muted")),1)):Object(r.i)("",!0),e.showReasonMutedThread&&e.muteWordHits.length>0?(Object(r.D)(),Object(r.j)("small",c,Object(r.O)(e.$t("status.thread_muted_and_words")),1)):Object(r.i)("",!0),Object(r.k)("small",{class:"mute-words",title:e.muteWordHits.join(", ")},Object(r.O)(e.muteWordHits.join(", ")),9,l),Object(r.k)("button",{class:"unmute button-unstyled",onClick:t[1]||(t[1]=Object(r.Y)((...t)=>e.toggleMute&&e.toggleMute(...t),["prevent"]))},[Object(r.m)(ce,{icon:"eye-slash",class:"fa-scale-110 fa-old-padding"})])])):(Object(r.D)(),Object(r.j)(r.a,{key:2},[e.showPinned?(Object(r.D)(),Object(r.j)("div",u,[Object(r.m)(ce,{icon:"thumbtack",class:"faint"}),Object(r.k)("span",d,Object(r.O)(e.$t("status.pinned")),1)])):Object(r.i)("",!0),!e.retweet||e.noHeading||e.inConversation?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",{key:1,class:Object(r.w)([[e.repeaterClass,{highlighted:e.repeaterStyle}],"status-container repeat-info"]),style:Object(r.x)([e.repeaterStyle])},[e.retweet?(Object(r.D)(),Object(r.h)(ue,{key:0,class:"left-side repeater-avatar",bot:e.rtBotIndicator,"better-shadow":e.betterShadow,user:e.statusoid.user},null,8,["bot","better-shadow","user"])):Object(r.i)("",!0),Object(r.k)("div",p,[Object(r.k)("span",{class:"status-username repeater-name",title:e.retweeter},[e.retweeterHtml?(Object(r.D)(),Object(r.h)(le,{key:0,to:e.retweeterProfileLink},{default:Object(r.V)(()=>[Object(r.m)(de,{html:e.retweeterHtml,emoji:e.retweeterUser.emoji},null,8,["html","emoji"])]),_:1},8,["to"])):(Object(r.D)(),Object(r.h)(le,{key:1,to:e.retweeterProfileLink},{default:Object(r.V)(()=>[Object(r.l)(Object(r.O)(e.retweeter),1)]),_:1},8,["to"]))],8,h),b,Object(r.m)(ce,{icon:"retweet",class:"repeat-icon",title:e.$t("tool_tip.repeat")},null,8,["title"]),Object(r.l)(" "+Object(r.O)(e.$t("timeline.repeated")),1)])],6)),e.deleted?(Object(r.D)(),Object(r.j)("div",ee,[Object(r.k)("div",te,[Object(r.m)(ue,{class:"post-avatar",compact:e.compact,bot:e.botIndicator},null,8,["compact","bot"])]),Object(r.k)("div",ne,[Object(r.k)("div",re,Object(r.O)(e.$t("status.status_deleted")),1),e.replying?(Object(r.D)(),Object(r.h)(ye,{key:0,replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"])):Object(r.i)("",!0)])])):(Object(r.D)(),Object(r.j)("div",{key:2,class:Object(r.w)([[e.userClass,{highlighted:e.userStyle,"-repeat":e.retweet&&!e.inConversation}],"status-container"]),style:Object(r.x)([e.userStyle]),"data-tags":e.tags},[e.noHeading?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",f,[Object(r.k)("a",{href:e.$router.resolve(e.userProfileLink).href,onClickCapture:t[2]||(t[2]=Object(r.Y)((...t)=>e.toggleUserExpanded&&e.toggleUserExpanded(...t),["stop","prevent"]))},[Object(r.m)(ue,{class:"post-avatar",bot:e.botIndicator,compact:e.compact,"better-shadow":e.betterShadow,user:e.status.user},null,8,["bot","compact","better-shadow","user"])],40,O)])),Object(r.k)("div",j,[e.userExpanded?(Object(r.D)(),Object(r.h)(pe,{key:0,"user-id":e.status.user.id,rounded:!0,bordered:!0,class:"usercard"},null,8,["user-id"])):Object(r.i)("",!0),e.noHeading?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",g,[Object(r.k)("div",v,[Object(r.k)("div",y,[e.status.user.name_html?(Object(r.D)(),Object(r.j)("h4",{key:0,class:"status-username",title:e.status.user.name},[Object(r.m)(de,{html:e.status.user.name,emoji:e.status.user.emoji},null,8,["html","emoji"])],8,w)):(Object(r.D)(),Object(r.j)("h4",{key:1,class:"status-username",title:e.status.user.name},Object(r.O)(e.status.user.name),9,k)),Object(r.m)(le,{class:"account-name",title:e.status.user.screen_name_ui,to:e.userProfileLink},{default:Object(r.V)(()=>[Object(r.l)(Object(r.O)(e.status.user.screen_name_ui),1)]),_:1},8,["title","to"]),e.status.user&&e.status.user.favicon?(Object(r.D)(),Object(r.j)("img",{key:2,class:"status-favicon",src:e.status.user.favicon},null,8,_)):Object(r.i)("",!0)]),Object(r.k)("span",S,[Object(r.m)(le,{class:"timeago faint-link",to:{name:"conversation",params:{id:e.status.id}}},{default:Object(r.V)(()=>[Object(r.m)(he,{time:e.status.created_at,"auto-update":60},null,8,["time"])]),_:1},8,["to"]),e.status.visibility?(Object(r.D)(),Object(r.j)("span",{key:0,class:"visibility-icon",title:e.visibilityLocalized},[Object(r.m)(ce,{"fixed-width":"",class:"fa-scale-110",icon:e.visibilityIcon(e.status.visibility)},null,8,["icon"])],8,C)):Object(r.i)("",!0),e.expandable&&!e.isPreview?(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-unstyled",title:e.$t("status.expand"),onClick:t[3]||(t[3]=Object(r.Y)((...t)=>e.toggleExpanded&&e.toggleExpanded(...t),["prevent"]))},[Object(r.m)(ce,{"fixed-width":"",class:"fa-scale-110",icon:"plus-square"})],8,P)):Object(r.i)("",!0),e.unmuted?(Object(r.D)(),Object(r.j)("button",{key:2,class:"button-unstyled",onClick:t[4]||(t[4]=Object(r.Y)((...t)=>e.toggleMute&&e.toggleMute(...t),["prevent"]))},[Object(r.m)(ce,{"fixed-width":"",icon:"eye-slash",class:"fa-scale-110"})])):Object(r.i)("",!0),e.inThreadForest&&e.replies&&e.replies.length&&!e.simpleTree?(Object(r.D)(),Object(r.j)("button",{key:3,class:"button-unstyled",title:e.threadShowing?e.$t("status.thread_hide"):e.$t("status.thread_show"),"aria-expanded":e.threadShowing?"true":"false",onClick:t[5]||(t[5]=Object(r.Y)((...t)=>e.toggleThreadDisplay&&e.toggleThreadDisplay(...t),["prevent"]))},[Object(r.m)(ce,{"fixed-width":"",class:"fa-scale-110",icon:e.threadShowing?"chevron-up":"chevron-down"},null,8,["icon"])],8,D)):Object(r.i)("",!0),e.dive&&!e.simpleTree?(Object(r.D)(),Object(r.j)("button",{key:4,class:"button-unstyled",title:e.$t("status.show_only_conversation_under_this"),onClick:t[6]||(t[6]=Object(r.Y)((...t)=>e.dive&&e.dive(...t),["prevent"]))},[Object(r.m)(ce,{"fixed-width":"",class:"fa-scale-110",icon:"angle-double-right"})],8,x)):Object(r.i)("",!0)])]),e.isReply||e.hasMentionsLine?(Object(r.D)(),Object(r.j)("div",T,[e.isReply?(Object(r.D)(),Object(r.j)("span",I,[e.isPreview?(Object(r.D)(),Object(r.j)("span",U,[Object(r.k)("span",F,Object(r.O)(e.$t("status.reply_to")),1)])):(Object(r.D)(),Object(r.h)(be,{key:0,"status-id":e.status.parent_visible&&e.status.in_reply_to_status_id,class:Object(r.w)(["reply-to-popover",{"-strikethrough":!e.status.parent_visible}]),style:{"min-width":"0"}},{default:Object(r.V)(()=>[Object(r.k)("button",{class:"button-unstyled reply-to","aria-label":e.$t("tool_tip.reply"),onClick:t[7]||(t[7]=Object(r.Y)(t=>e.gotoOriginal(e.status.in_reply_to_status_id),["prevent"]))},[Object(r.m)(ce,{class:"fa-scale-110 fa-old-padding",icon:"reply",flip:"horizontal"}),z,Object(r.k)("span",M,Object(r.O)(e.$t("status.reply_to")),1)],8,$)]),_:1},8,["status-id","class"])),Object(r.m)(me,{content:e.replyToName,url:e.replyProfileLink,"user-id":e.status.in_reply_to_user_id,"user-screen-name":e.status.in_reply_to_screen_name},null,8,["content","url","user-id","user-screen-name"])])):Object(r.i)("",!0),e.hasMentionsLine?(Object(r.D)(),Object(r.j)("span",E,[Object(r.k)("span",{class:"mentions","aria-label":e.$t("tool_tip.mentions"),onClick:t[8]||(t[8]=Object(r.Y)(t=>e.gotoOriginal(e.status.in_reply_to_status_id),["prevent"]))},[Object(r.k)("span",R,Object(r.O)(e.$t("status.mentions")),1)],8,L),e.hasMentionsLine?(Object(r.D)(),Object(r.h)(fe,{key:0,mentions:e.mentionsLine.slice(0,1),class:"mentions-line-first"},null,8,["mentions"])):Object(r.i)("",!0)])):Object(r.i)("",!0),e.hasMentionsLine?(Object(r.D)(),Object(r.h)(fe,{key:2,mentions:e.mentionsLine.slice(1),class:"mentions-line"},null,8,["mentions"])):Object(r.i)("",!0)])):Object(r.i)("",!0)])),Object(r.m)(Oe,{ref:"content",status:e.status,"no-heading":e.noHeading,highlight:e.highlight,focused:e.isFocused,"controlled-showing-tall":e.controlledShowingTall,"controlled-expanding-subject":e.controlledExpandingSubject,"controlled-showing-long-subject":e.controlledShowingLongSubject,"controlled-toggle-showing-tall":e.controlledToggleShowingTall,"controlled-toggle-expanding-subject":e.controlledToggleExpandingSubject,"controlled-toggle-showing-long-subject":e.controlledToggleShowingLongSubject,onMediaplay:t[9]||(t[9]=t=>e.addMediaPlaying(t)),onMediapause:t[10]||(t[10]=t=>e.removeMediaPlaying(t)),onParseReady:e.setHeadTailLinks},null,8,["status","no-heading","highlight","focused","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","onParseReady"]),e.inConversation&&!e.isPreview&&e.replies&&e.replies.length?(Object(r.D)(),Object(r.j)("div",A,[e.showOtherRepliesAsButton&&e.replies.length>1?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-unstyled -link faint",title:e.$tc("status.ancestor_follow",e.replies.length-1,{numReplies:e.replies.length-1}),onClick:t[11]||(t[11]=Object(r.Y)((...t)=>e.dive&&e.dive(...t),["prevent"]))},Object(r.O)(e.$tc("status.replies_list_with_others",e.replies.length-1,{numReplies:e.replies.length-1})),9,N)):(Object(r.D)(),Object(r.j)("span",B,Object(r.O)(e.$t("status.replies_list")),1)),(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.replies,t=>(Object(r.D)(),Object(r.h)(be,{key:t.id,"status-id":t.id},{default:Object(r.V)(()=>[Object(r.k)("button",{class:"button-unstyled -link reply-link",onClick:Object(r.Y)(n=>e.gotoOriginal(t.id),["prevent"])},Object(r.O)(t.name),9,V)]),_:2},1032,["status-id"]))),128))])):Object(r.i)("",!0),Object(r.m)(r.e,{name:"fade"},{default:Object(r.V)(()=>[!e.hidePostStats&&e.isFocused&&e.combinedFavsAndRepeatsUsers.length>0?(Object(r.D)(),Object(r.j)("div",H,[Object(r.k)("div",J,[e.statusFromGlobalRepository.rebloggedBy&&e.statusFromGlobalRepository.rebloggedBy.length>0?(Object(r.D)(),Object(r.h)(je,{key:0,users:e.statusFromGlobalRepository.rebloggedBy},{default:Object(r.V)(()=>[Object(r.k)("div",q,[Object(r.k)("a",W,Object(r.O)(e.$t("status.repeats")),1),Object(r.k)("div",Y,Object(r.O)(e.statusFromGlobalRepository.rebloggedBy.length),1)])]),_:1},8,["users"])):Object(r.i)("",!0),e.statusFromGlobalRepository.favoritedBy&&e.statusFromGlobalRepository.favoritedBy.length>0?(Object(r.D)(),Object(r.h)(je,{key:1,users:e.statusFromGlobalRepository.favoritedBy},{default:Object(r.V)(()=>[Object(r.k)("div",G,[Object(r.k)("a",K,Object(r.O)(e.$t("status.favorites")),1),Object(r.k)("div",X,Object(r.O)(e.statusFromGlobalRepository.favoritedBy.length),1)])]),_:1},8,["users"])):Object(r.i)("",!0),Object(r.k)("div",Z,[Object(r.m)(ge,{users:e.combinedFavsAndRepeatsUsers},null,8,["users"])])])])):Object(r.i)("",!0)]),_:1}),!e.mergedConfig.emojiReactionsOnTimeline&&!e.isFocused||e.noHeading||e.isPreview?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(ve,{key:3,status:e.status},null,8,["status"])),e.noHeading||e.isPreview?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",Q,[Object(r.m)(ye,{replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"]),Object(r.m)(we,{visibility:e.status.visibility,"logged-in":e.loggedIn,status:e.status},null,8,["visibility","logged-in","status"]),Object(r.m)(ke,{"logged-in":e.loggedIn,status:e.status},null,8,["logged-in","status"]),e.loggedIn?(Object(r.D)(),Object(r.h)(_e,{key:0,status:e.status},null,8,["status"])):Object(r.i)("",!0),Object(r.m)(Se,{status:e.status,onOnError:e.showError,onOnSuccess:e.clearError},null,8,["status","onOnError","onOnSuccess"])]))])],14,m)),e.replying?(Object(r.D)(),Object(r.j)("div",ie,[Object(r.m)(Ce,{class:"reply-body","reply-to":e.status.id,attentions:e.status.attentions,"replied-user":e.status.user,"copy-message-scope":e.status.visibility,subject:e.replySubject,onPosted:e.toggleReplying},null,8,["reply-to","attentions","replied-user","copy-message-scope","subject","onPosted"])])):Object(r.i)("",!0)],64))],2))}]]);t.default=Wt},function(e,t,n){"use strict";var r=n(0);const i={class:"panel-heading -flexible-height"},o={class:"user-info"},s={class:"container"},a={class:"user-info-avatar-link-overlay"},c={class:"user-summary"},l={class:"top-line"},u=["href"],d={class:"bottom-line"},p={key:0,class:"alert user-role"},h={key:1,class:"alert user-role"},b={key:2,class:"alert user-role"},m={key:1},f={key:2,class:"dailyAvg"},O={class:"user-meta"},j={key:0,class:"following"},g={key:1,class:"highlighter"},v=["id"],y=["id"],w=Object(r.l)(" "+Object(r.O)(" ")+" "),k={value:"disabled"},_={value:"solid"},S={value:"striped"},C={value:"side"},P={key:0,class:"user-interactions"},D={class:"btn-group"},x=["disabled"],T=["disabled"],I=["disabled"],$={key:1,class:"user-interactions"},z={key:0,class:"panel-body"},M={key:0,class:"user-counts"},U=Object(r.k)("br",null,null,-1);var F=n(5),E=n.n(F),L=n(22),R=n(143),A=n(103),N=n(139);const B={class:"dropdown-menu"},V={key:0},H=Object(r.k)("div",{role:"separator",class:"dropdown-divider"},null,-1),J={key:1,role:"separator",class:"dropdown-divider"},q={key:2};var W=n(6),Y=n(3);const G={class:"panel-heading dialog-modal-heading"},K={class:"title"},X={class:"dialog-modal-content"},Z={class:"dialog-modal-footer user-interactions panel-footer"};var Q={props:{darkOverlay:{default:!0,type:Boolean},onCancel:{default:function(){},type:Function}}},ee=(n(520),n(4)),te=n.n(ee);var ne=te()(Q,[["render",function(e,t,n,i,o,s){return Object(r.D)(),Object(r.j)("span",{class:Object(r.w)({"dark-overlay":e.darkOverlay}),onClick:t[1]||(t[1]=Object(r.Y)(t=>e.onCancel(),["self","stop"]))},[Object(r.k)("div",{class:"dialog-modal panel panel-default",onClick:t[0]||(t[0]=Object(r.Y)(()=>{},["stop"]))},[Object(r.k)("div",G,[Object(r.k)("div",K,[Object(r.I)(e.$slots,"header")])]),Object(r.k)("div",X,[Object(r.I)(e.$slots,"default")]),Object(r.k)("div",Z,[Object(r.I)(e.$slots,"footer")])])],2)}]]),re=n(24);W.c.add(Y.n);var ie={props:["user"],data:function(){return{tags:{FORCE_NSFW:"mrf_tag:media-force-nsfw",STRIP_MEDIA:"mrf_tag:media-strip",FORCE_UNLISTED:"mrf_tag:force-unlisted",DISABLE_REMOTE_SUBSCRIPTION:"mrf_tag:disable-remote-subscription",DISABLE_ANY_SUBSCRIPTION:"mrf_tag:disable-any-subscription",SANDBOX:"mrf_tag:sandbox",QUARANTINE:"mrf_tag:quarantine"},showDeleteUserDialog:!1,toggled:!1}},components:{DialogModal:ne,Popover:re.default},computed:{tagsSet:function(){return new Set(this.user.tags)},hasTagPolicy:function(){return this.$store.state.instance.tagPolicyAvailable}},methods:{hasTag:function(e){return this.tagsSet.has(e)},toggleTag:function(e){var t=this,n=this.$store;this.tagsSet.has(e)?n.state.api.backendInteractor.untagUser({user:this.user,tag:e}).then((function(r){r.ok&&n.commit("untagUser",{user:t.user,tag:e})})):n.state.api.backendInteractor.tagUser({user:this.user,tag:e}).then((function(r){r.ok&&n.commit("tagUser",{user:t.user,tag:e})}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(r){r.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(r){r.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,r=n.id,i=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var o="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===i||e.$route.params.id===r;o&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}};n(522);var oe=te()(ie,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon"),c=Object(r.J)("Popover"),l=Object(r.J)("DialogModal");return Object(r.D)(),Object(r.j)("div",null,[Object(r.m)(c,{trigger:"click",class:"moderation-tools-popover",placement:"bottom",offset:{y:5},onShow:t[11]||(t[11]=t=>e.setToggled(!0)),onClose:t[12]||(t[12]=t=>e.setToggled(!1))},{content:Object(r.V)(()=>[Object(r.k)("div",B,[e.user.is_local?(Object(r.D)(),Object(r.j)("span",V,[Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=t=>e.toggleRight("admin"))},Object(r.O)(e.$t(e.user.rights.admin?"user_card.admin_menu.revoke_admin":"user_card.admin_menu.grant_admin")),1),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=t=>e.toggleRight("moderator"))},Object(r.O)(e.$t(e.user.rights.moderator?"user_card.admin_menu.revoke_moderator":"user_card.admin_menu.grant_moderator")),1),H])):Object(r.i)("",!0),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=t=>e.toggleActivationStatus())},Object(r.O)(e.$t(e.user.deactivated?"user_card.admin_menu.activate_account":"user_card.admin_menu.deactivate_account")),1),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=t=>e.deleteUserDialog(!0))},Object(r.O)(e.$t("user_card.admin_menu.delete_account")),1),e.hasTagPolicy?(Object(r.D)(),Object(r.j)("div",J)):Object(r.i)("",!0),e.hasTagPolicy?(Object(r.D)(),Object(r.j)("span",q,[Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=t=>e.toggleTag(e.tags.FORCE_NSFW))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_NSFW)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.force_nsfw")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=t=>e.toggleTag(e.tags.STRIP_MEDIA))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.STRIP_MEDIA)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.strip_media")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=t=>e.toggleTag(e.tags.FORCE_UNLISTED))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_UNLISTED)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.force_unlisted")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[7]||(t[7]=t=>e.toggleTag(e.tags.SANDBOX))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.SANDBOX)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.sandbox")),1)]),e.user.is_local?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-default dropdown-item",onClick:t[8]||(t[8]=t=>e.toggleTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.disable_remote_subscription")),1)])):Object(r.i)("",!0),e.user.is_local?(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-default dropdown-item",onClick:t[9]||(t[9]=t=>e.toggleTag(e.tags.DISABLE_ANY_SUBSCRIPTION))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_ANY_SUBSCRIPTION)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.disable_any_subscription")),1)])):Object(r.i)("",!0),e.user.is_local?(Object(r.D)(),Object(r.j)("button",{key:2,class:"button-default dropdown-item",onClick:t[10]||(t[10]=t=>e.toggleTag(e.tags.QUARANTINE))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.QUARANTINE)}])},null,2),Object(r.l)(" "+Object(r.O)(e.$t("user_card.admin_menu.quarantine")),1)])):Object(r.i)("",!0)])):Object(r.i)("",!0)])]),trigger:Object(r.V)(()=>[Object(r.k)("button",{class:Object(r.w)(["btn button-default btn-block moderation-tools-button",{toggled:e.toggled}])},[Object(r.l)(Object(r.O)(e.$t("user_card.admin_menu.moderation"))+" ",1),Object(r.m)(a,{icon:"chevron-down"})],2)]),_:1}),(Object(r.D)(),Object(r.h)(r.c,{to:"#modal"},[e.showDeleteUserDialog?(Object(r.D)(),Object(r.h)(l,{key:0,"on-cancel":e.deleteUserDialog.bind(this,!1)},{header:Object(r.V)(()=>[Object(r.l)(Object(r.O)(e.$t("user_card.admin_menu.delete_user")),1)]),footer:Object(r.V)(()=>[Object(r.k)("button",{class:"btn button-default",onClick:t[13]||(t[13]=t=>e.deleteUserDialog(!1))},Object(r.O)(e.$t("general.cancel")),1),Object(r.k)("button",{class:"btn button-default danger",onClick:t[14]||(t[14]=t=>e.deleteUser())},Object(r.O)(e.$t("user_card.admin_menu.delete_user")),1)]),default:Object(r.V)(()=>[Object(r.k)("p",null,Object(r.O)(e.$t("user_card.admin_menu.delete_user_confirmation")),1)]),_:1},8,["on-cancel"])):Object(r.i)("",!0)]))])}]]);const se={class:"AccountActions"},ae={class:"dropdown-menu"},ce=Object(r.k)("div",{role:"separator",class:"dropdown-divider"},null,-1),le={class:"button-unstyled ellipsis-button"};var ue=n(8);function de(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}W.c.add(Y.x);var pe={props:["user","relationship"],data:function(){return{}},components:{ProgressButton:A.a,Popover:re.default},methods:{showRepeats:function(){this.$store.dispatch("showReblogs",this.user.id)},hideRepeats:function(){this.$store.dispatch("hideReblogs",this.user.id)},blockUser:function(){this.$store.dispatch("blockUser",this.user.id)},unblockUser:function(){this.$store.dispatch("unblockUser",this.user.id)},reportUser:function(){this.$store.dispatch("openUserReportingModal",{userId:this.user.id})},openChat:function(){this.$router.push({name:"chat",params:{username:this.$store.state.users.currentUser.screen_name,recipient_id:this.user.id}})}},computed:function(e){for(var t=1;t[Object(r.k)("div",ae,[e.relationship.following?(Object(r.D)(),Object(r.j)(r.a,{key:0},[e.relationship.showing_reblogs?(Object(r.D)(),Object(r.j)("button",{key:0,class:"btn button-default dropdown-item",onClick:t[0]||(t[0]=(...t)=>e.hideRepeats&&e.hideRepeats(...t))},Object(r.O)(e.$t("user_card.hide_repeats")),1)):Object(r.i)("",!0),e.relationship.showing_reblogs?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("button",{key:1,class:"btn button-default dropdown-item",onClick:t[1]||(t[1]=(...t)=>e.showRepeats&&e.showRepeats(...t))},Object(r.O)(e.$t("user_card.show_repeats")),1)),ce],64)):Object(r.i)("",!0),e.relationship.blocking?(Object(r.D)(),Object(r.j)("button",{key:1,class:"btn button-default btn-block dropdown-item",onClick:t[2]||(t[2]=(...t)=>e.unblockUser&&e.unblockUser(...t))},Object(r.O)(e.$t("user_card.unblock")),1)):(Object(r.D)(),Object(r.j)("button",{key:2,class:"btn button-default btn-block dropdown-item",onClick:t[3]||(t[3]=(...t)=>e.blockUser&&e.blockUser(...t))},Object(r.O)(e.$t("user_card.block")),1)),Object(r.k)("button",{class:"btn button-default btn-block dropdown-item",onClick:t[4]||(t[4]=(...t)=>e.reportUser&&e.reportUser(...t))},Object(r.O)(e.$t("user_card.report")),1),e.pleromaChatMessagesAvailable?(Object(r.D)(),Object(r.j)("button",{key:3,class:"btn button-default btn-block dropdown-item",onClick:t[5]||(t[5]=(...t)=>e.openChat&&e.openChat(...t))},Object(r.O)(e.$t("user_card.message")),1)):Object(r.i)("",!0)])]),trigger:Object(r.V)(()=>[Object(r.k)("button",le,[Object(r.m)(a,{class:"icon",icon:"ellipsis-v"})])]),_:1})])}]]),be=n(52),me=n(25),fe=n(23);function Oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function je(e){for(var t=1;te.zoomAvatar&&e.zoomAvatar(...t))},[Object(r.m)(R,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"]),Object(r.k)("div",a,[Object(r.m)(A,{class:"fa-scale-110 fa-old-padding",icon:"search-plus"})])])):(Object(r.D)(),Object(r.h)(N,{key:1,to:e.userProfileLink(e.user)},{default:Object(r.V)(()=>[Object(r.m)(R,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"])]),_:1},8,["to"])),Object(r.k)("div",c,[Object(r.k)("div",l,[Object(r.m)(B,{title:e.user.name,class:"user-name",html:e.user.name,emoji:e.user.emoji},null,8,["title","html","emoji"]),!e.isOtherUser&&e.user.is_local?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-unstyled edit-profile-button",onClick:t[1]||(t[1]=Object(r.Y)((...t)=>e.openProfileTab&&e.openProfileTab(...t),["stop"]))},[Object(r.m)(A,{"fixed-width":"",class:"icon",icon:"edit",title:e.$t("user_card.edit_profile")},null,8,["title"])])):Object(r.i)("",!0),e.isOtherUser&&!e.user.is_local?(Object(r.D)(),Object(r.j)("a",{key:1,href:e.user.statusnet_profile_url,target:"_blank",class:"button-unstyled external-link-button"},[Object(r.m)(A,{class:"icon",icon:"external-link-alt"})],8,u)):Object(r.i)("",!0),e.isOtherUser&&e.loggedIn?(Object(r.D)(),Object(r.h)(V,{key:2,user:e.user,relationship:e.relationship},null,8,["user","relationship"])):Object(r.i)("",!0)]),Object(r.k)("div",d,[Object(r.m)(N,{class:"user-screen-name",title:e.user.screen_name_ui,to:e.userProfileLink(e.user)},{default:Object(r.V)(()=>[Object(r.l)(" @"+Object(r.O)(e.user.screen_name_ui),1)]),_:1},8,["title","to"]),e.hideBio?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)(r.a,{key:0},[e.user.deactivated?(Object(r.D)(),Object(r.j)("span",p,Object(r.O)(e.$t("user_card.deactivated")),1)):Object(r.i)("",!0),e.visibleRole?(Object(r.D)(),Object(r.j)("span",h,Object(r.O)(e.$t("general.role."+e.visibleRole)),1)):Object(r.i)("",!0),e.user.bot?(Object(r.D)(),Object(r.j)("span",b,Object(r.O)(e.$t("user_card.bot")),1)):Object(r.i)("",!0)],64)),e.user.locked?(Object(r.D)(),Object(r.j)("span",m,[Object(r.m)(A,{class:"lock-icon",icon:"lock",size:"sm"})])):Object(r.i)("",!0),e.mergedConfig.hideUserStats||e.hideBio?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("span",f,Object(r.O)(e.dailyAvg)+" "+Object(r.O)(e.$t("user_card.per_day")),1))])])]),Object(r.k)("div",O,[e.relationship.followed_by&&e.loggedIn&&e.isOtherUser?(Object(r.D)(),Object(r.j)("div",j,Object(r.O)(e.$t("user_card.follows_you")),1)):Object(r.i)("",!0),!e.isOtherUser||!e.loggedIn&&e.switcher?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",g,["disabled"!==e.userHighlightType?Object(r.W)((Object(r.D)(),Object(r.j)("input",{key:0,id:"userHighlightColorTx"+e.user.id,"onUpdate:modelValue":t[2]||(t[2]=t=>e.userHighlightColor=t),class:"userHighlightText",type:"text"},null,8,v)),[[r.S,e.userHighlightColor]]):Object(r.i)("",!0),"disabled"!==e.userHighlightType?Object(r.W)((Object(r.D)(),Object(r.j)("input",{key:1,id:"userHighlightColor"+e.user.id,"onUpdate:modelValue":t[3]||(t[3]=t=>e.userHighlightColor=t),class:"userHighlightCl",type:"color"},null,8,y)),[[r.S,e.userHighlightColor]]):Object(r.i)("",!0),w,Object(r.m)(H,{id:"userHighlightSel"+e.user.id,modelValue:e.userHighlightType,"onUpdate:modelValue":t[4]||(t[4]=t=>e.userHighlightType=t),class:"userHighlightSel"},{default:Object(r.V)(()=>[Object(r.k)("option",k,Object(r.O)(e.$t("user_card.highlight.disabled")),1),Object(r.k)("option",_,Object(r.O)(e.$t("user_card.highlight.solid")),1),Object(r.k)("option",S,Object(r.O)(e.$t("user_card.highlight.striped")),1),Object(r.k)("option",C,Object(r.O)(e.$t("user_card.highlight.side")),1)]),_:1},8,["id","modelValue"])]))]),e.loggedIn&&e.isOtherUser?(Object(r.D)(),Object(r.j)("div",P,[Object(r.k)("div",D,[Object(r.m)(J,{relationship:e.relationship,user:e.user},null,8,["relationship","user"]),e.relationship.following?(Object(r.D)(),Object(r.j)(r.a,{key:0},[e.relationship.subscribing?(Object(r.D)(),Object(r.h)(q,{key:1,class:"btn button-default toggled",click:e.unsubscribeUser,title:e.$t("user_card.unsubscribe")},{default:Object(r.V)(()=>[Object(r.m)(W,null,{default:Object(r.V)(()=>[Object(r.m)(A,{icon:"rss",transform:"left-5 shrink-6 up-3 rotate-20",flip:"horizontal"}),Object(r.m)(A,{icon:"rss",transform:"right-5 shrink-6 up-3 rotate-20"}),Object(r.m)(A,{icon:"bell"})]),_:1})]),_:1},8,["click","title"])):(Object(r.D)(),Object(r.h)(q,{key:0,class:"btn button-default",click:e.subscribeUser,title:e.$t("user_card.subscribe")},{default:Object(r.V)(()=>[Object(r.m)(A,{icon:"bell"})]),_:1},8,["click","title"]))],64)):Object(r.i)("",!0)]),Object(r.k)("div",null,[e.relationship.muting?(Object(r.D)(),Object(r.j)("button",{key:0,class:"btn button-default btn-block toggled",disabled:e.user.deactivated,onClick:t[5]||(t[5]=(...t)=>e.unmuteUser&&e.unmuteUser(...t))},Object(r.O)(e.$t("user_card.muted")),9,x)):(Object(r.D)(),Object(r.j)("button",{key:1,class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[6]||(t[6]=(...t)=>e.muteUser&&e.muteUser(...t))},Object(r.O)(e.$t("user_card.mute")),9,T))]),Object(r.k)("div",null,[e.relationship.domain_blocking?(Object(r.D)(),Object(r.j)("button",{key:0,class:"btn button-default btn-block toggled",onClick:t[7]||(t[7]=(...t)=>e.unmuteDomain&&e.unmuteDomain(...t))},Object(r.O)(e.$t("user_card.domain_muted")),1)):(Object(r.D)(),Object(r.j)("button",{key:1,class:"btn button-default btn-block",onClick:t[8]||(t[8]=(...t)=>e.muteDomain&&e.muteDomain(...t))},Object(r.O)(e.$t("user_card.mute_domain")),1))]),Object(r.k)("div",null,[Object(r.k)("button",{class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[9]||(t[9]=(...t)=>e.mentionUser&&e.mentionUser(...t))},Object(r.O)(e.$t("user_card.mention")),9,I)]),"admin"===e.loggedIn.role?(Object(r.D)(),Object(r.h)(Y,{key:0,user:e.user},null,8,["user"])):Object(r.i)("",!0)])):Object(r.i)("",!0),!e.loggedIn&&e.user.is_local?(Object(r.D)(),Object(r.j)("div",$,[Object(r.m)(G,{user:e.user},null,8,["user"])])):Object(r.i)("",!0)])]),e.hideBio?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",z,[!e.mergedConfig.hideUserStats&&e.switcher?(Object(r.D)(),Object(r.j)("div",M,[Object(r.k)("div",{class:"user-count",onClick:t[10]||(t[10]=Object(r.Y)(t=>e.setProfileView("statuses"),["prevent"]))},[Object(r.k)("h5",null,Object(r.O)(e.$t("user_card.statuses")),1),Object(r.k)("span",null,[Object(r.l)(Object(r.O)(e.user.statuses_count)+" ",1),U])]),Object(r.k)("div",{class:"user-count",onClick:t[11]||(t[11]=Object(r.Y)(t=>e.setProfileView("friends"),["prevent"]))},[Object(r.k)("h5",null,Object(r.O)(e.$t("user_card.followees")),1),Object(r.k)("span",null,Object(r.O)(e.hideFollowsCount?e.$t("user_card.hidden"):e.user.friends_count),1)]),Object(r.k)("div",{class:"user-count",onClick:t[12]||(t[12]=Object(r.Y)(t=>e.setProfileView("followers"),["prevent"]))},[Object(r.k)("h5",null,Object(r.O)(e.$t("user_card.followers")),1),Object(r.k)("span",null,Object(r.O)(e.hideFollowersCount?e.$t("user_card.hidden"):e.user.followers_count),1)])])):Object(r.i)("",!0),e.hideBio?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(B,{key:1,class:"user-card-bio",html:e.user.description_html,emoji:e.user.emoji,"handle-links":!0},null,8,["html","emoji"]))]))],2)}]]);t.a=ve},function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return s})),n.d(t,"c",(function(){return a}));var r=n(20),i=n(18),o={undelay:null,topBar:null,badge:null,profileTint:null,fg:null,bg:"underlay",highlight:"bg",panel:"bg",popover:"bg",selectedMenu:"popover",btn:"bg",btnPanel:"panel",btnTopBar:"topBar",input:"bg",inputPanel:"panel",inputTopBar:"topBar",alert:"bg",alertPanel:"panel",poll:"bg",chatBg:"underlay",chatMessage:"chatBg"},s={profileTint:.5,alert:.5,input:.5,faint:.5,underlay:.15,alertPopup:.95},a={bg:{depends:[],opacity:"bg",priority:1},wallpaper:{depends:["bg"],color:function(e,t){return Object(r.brightness)(-2*e,t).rgb}},fg:{depends:[],priority:1},text:{depends:[],layer:"bg",opacity:null,priority:1},underlay:{default:"#000000",opacity:"underlay"},link:{depends:["accent"],priority:1},accent:{depends:["link"],priority:1},faint:{depends:["text"],opacity:"faint"},faintLink:{depends:["link"],opacity:"faint"},postFaintLink:{depends:["postLink"],opacity:"faint"},cBlue:"#0000ff",cRed:"#FF0000",cGreen:"#00FF00",cOrange:"#E3FF00",profileBg:{depends:["bg"],color:function(e,t){return{r:Math.floor(.53*t.r),g:Math.floor(.56*t.g),b:Math.floor(.59*t.b)}}},profileTint:{depends:["bg"],layer:"profileTint",opacity:"profileTint"},highlight:{depends:["bg"],color:function(e,t){return Object(r.brightness)(5*e,t).rgb}},highlightLightText:{depends:["lightText"],layer:"highlight",textColor:!0},highlightPostLink:{depends:["postLink"],layer:"highlight",textColor:"preserve"},highlightFaintText:{depends:["faint"],layer:"highlight",textColor:!0},highlightFaintLink:{depends:["faintLink"],layer:"highlight",textColor:"preserve"},highlightPostFaintLink:{depends:["postFaintLink"],layer:"highlight",textColor:"preserve"},highlightText:{depends:["text"],layer:"highlight",textColor:!0},highlightLink:{depends:["link"],layer:"highlight",textColor:"preserve"},highlightIcon:{depends:["highlight","highlightText"],color:function(e,t,n){return Object(i.g)(t,n)}},popover:{depends:["bg"],opacity:"popover"},popoverLightText:{depends:["lightText"],layer:"popover",textColor:!0},popoverPostLink:{depends:["postLink"],layer:"popover",textColor:"preserve"},popoverFaintText:{depends:["faint"],layer:"popover",textColor:!0},popoverFaintLink:{depends:["faintLink"],layer:"popover",textColor:"preserve"},popoverPostFaintLink:{depends:["postFaintLink"],layer:"popover",textColor:"preserve"},popoverText:{depends:["text"],layer:"popover",textColor:!0},popoverLink:{depends:["link"],layer:"popover",textColor:"preserve"},popoverIcon:{depends:["popover","popoverText"],color:function(e,t,n){return Object(i.g)(t,n)}},selectedPost:"--highlight",selectedPostFaintText:{depends:["highlightFaintText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLightText:{depends:["highlightLightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostPostLink:{depends:["highlightPostLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostFaintLink:{depends:["highlightFaintLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostText:{depends:["highlightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLink:{depends:["highlightLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostIcon:{depends:["selectedPost","selectedPostText"],color:function(e,t,n){return Object(i.g)(t,n)}},selectedMenu:{depends:["bg"],color:function(e,t){return Object(r.brightness)(5*e,t).rgb}},selectedMenuLightText:{depends:["highlightLightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintText:{depends:["highlightFaintText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintLink:{depends:["highlightFaintLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuText:{depends:["highlightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuLink:{depends:["highlightLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuIcon:{depends:["selectedMenu","selectedMenuText"],color:function(e,t,n){return Object(i.g)(t,n)}},selectedMenuPopover:{depends:["popover"],color:function(e,t){return Object(r.brightness)(5*e,t).rgb}},selectedMenuPopoverLightText:{depends:["selectedMenuLightText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintText:{depends:["selectedMenuFaintText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintLink:{depends:["selectedMenuFaintLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverText:{depends:["selectedMenuText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverLink:{depends:["selectedMenuLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverIcon:{depends:["selectedMenuPopover","selectedMenuText"],color:function(e,t,n){return Object(i.g)(t,n)}},lightText:{depends:["text"],layer:"bg",textColor:"preserve",color:function(e,t){return Object(r.brightness)(20*e,t).rgb}},postLink:{depends:["link"],layer:"bg",textColor:"preserve"},postGreentext:{depends:["cGreen"],layer:"bg",textColor:"preserve"},postCyantext:{depends:["cBlue"],layer:"bg",textColor:"preserve"},border:{depends:["fg"],opacity:"border",color:function(e,t){return Object(r.brightness)(2*e,t).rgb}},poll:{depends:["accent","bg"],copacity:"poll",color:function(e,t,n){return Object(i.a)(t,.4,n)}},pollText:{depends:["text"],layer:"poll",textColor:!0},icon:{depends:["bg","text"],inheritsOpacity:!1,color:function(e,t,n){return Object(i.g)(t,n)}},fgText:{depends:["text"],layer:"fg",textColor:!0},fgLink:{depends:["link"],layer:"fg",textColor:"preserve"},panel:{depends:["fg"],opacity:"panel"},panelText:{depends:["text"],layer:"panel",textColor:!0},panelFaint:{depends:["fgText"],layer:"panel",opacity:"faint",textColor:!0},panelLink:{depends:["fgLink"],layer:"panel",textColor:"preserve"},topBar:"--fg",topBarText:{depends:["fgText"],layer:"topBar",textColor:!0},topBarLink:{depends:["fgLink"],layer:"topBar",textColor:"preserve"},tab:{depends:["btn"]},tabText:{depends:["btnText"],layer:"btn",textColor:!0},tabActiveText:{depends:["text"],layer:"bg",textColor:!0},btn:{depends:["fg"],variant:"btn",opacity:"btn"},btnText:{depends:["fgText"],layer:"btn",textColor:!0},btnPanelText:{depends:["btnText"],layer:"btnPanel",variant:"btn",textColor:!0},btnTopBarText:{depends:["btnText"],layer:"btnTopBar",variant:"btn",textColor:!0},btnPressed:{depends:["btn"],layer:"btn"},btnPressedText:{depends:["btnText"],layer:"btn",variant:"btnPressed",textColor:!0},btnPressedPanel:{depends:["btnPressed"],layer:"btn"},btnPressedPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnPressed",textColor:!0},btnPressedTopBar:{depends:["btnPressed"],layer:"btn"},btnPressedTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnPressed",textColor:!0},btnToggled:{depends:["btn"],layer:"btn",color:function(e,t){return Object(r.brightness)(20*e,t).rgb}},btnToggledText:{depends:["btnText"],layer:"btn",variant:"btnToggled",textColor:!0},btnToggledPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnToggled",textColor:!0},btnToggledTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnToggled",textColor:!0},btnDisabled:{depends:["btn","bg"],color:function(e,t,n){return Object(i.a)(t,.25,n)}},btnDisabledText:{depends:["btnText","btnDisabled"],layer:"btn",variant:"btnDisabled",color:function(e,t,n){return Object(i.a)(t,.25,n)}},btnDisabledPanelText:{depends:["btnPanelText","btnDisabled"],layer:"btnPanel",variant:"btnDisabled",color:function(e,t,n){return Object(i.a)(t,.25,n)}},btnDisabledTopBarText:{depends:["btnTopBarText","btnDisabled"],layer:"btnTopBar",variant:"btnDisabled",color:function(e,t,n){return Object(i.a)(t,.25,n)}},input:{depends:["fg"],opacity:"input"},inputText:{depends:["text"],layer:"input",textColor:!0},inputPanelText:{depends:["panelText"],layer:"inputPanel",variant:"input",textColor:!0},inputTopbarText:{depends:["topBarText"],layer:"inputTopBar",variant:"input",textColor:!0},alertError:{depends:["cRed"],opacity:"alert"},alertErrorText:{depends:["text"],layer:"alert",variant:"alertError",textColor:!0},alertErrorPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertError",textColor:!0},alertWarning:{depends:["cOrange"],opacity:"alert"},alertWarningText:{depends:["text"],layer:"alert",variant:"alertWarning",textColor:!0},alertWarningPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertWarning",textColor:!0},alertSuccess:{depends:["cGreen"],opacity:"alert"},alertSuccessText:{depends:["text"],layer:"alert",variant:"alertSuccess",textColor:!0},alertSuccessPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertSuccess",textColor:!0},alertNeutral:{depends:["text"],opacity:"alert"},alertNeutralText:{depends:["text"],layer:"alert",variant:"alertNeutral",color:function(e,t){return Object(r.invertLightness)(t).rgb},textColor:!0},alertNeutralPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertNeutral",textColor:!0},alertPopupError:{depends:["alertError"],opacity:"alertPopup"},alertPopupErrorText:{depends:["alertErrorText"],layer:"popover",variant:"alertPopupError",textColor:!0},alertPopupWarning:{depends:["alertWarning"],opacity:"alertPopup"},alertPopupWarningText:{depends:["alertWarningText"],layer:"popover",variant:"alertPopupWarning",textColor:!0},alertPopupSuccess:{depends:["alertSuccess"],opacity:"alertPopup"},alertPopupSuccessText:{depends:["alertSuccessText"],layer:"popover",variant:"alertPopupSuccess",textColor:!0},alertPopupNeutral:{depends:["alertNeutral"],opacity:"alertPopup"},alertPopupNeutralText:{depends:["alertNeutralText"],layer:"popover",variant:"alertPopupNeutral",textColor:!0},badgeNotification:"--cRed",badgeNotificationText:{depends:["text","badgeNotification"],layer:"badge",variant:"badgeNotification",textColor:"bw"},chatBg:{depends:["bg"]},chatMessageIncomingBg:{depends:["chatBg"]},chatMessageIncomingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:!0},chatMessageIncomingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:"preserve"},chatMessageIncomingBorder:{depends:["border"],opacity:"border",color:function(e,t){return Object(r.brightness)(2*e,t).rgb}},chatMessageOutgoingBg:{depends:["chatMessageIncomingBg"],color:function(e,t){return Object(r.brightness)(5*e,t).rgb}},chatMessageOutgoingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:!0},chatMessageOutgoingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:"preserve"},chatMessageOutgoingBorder:{depends:["chatMessageOutgoingBg"],opacity:"border",color:function(e,t){return Object(r.brightness)(2*e,t).rgb}}}},,function(e,t,n){"use strict";var r=n(21),i=n.n(r),o=n(70),s=n(333),a={ja_easy:"ja",zh_Hant:"zh-HANT",zh:"zh-Hans"},c=function(e){return a[e]||e},l=function(e){var t={ja_easy:"やさしいにほんご",zh:"简体中文",zh_Hant:"繁體中文"}[e]||s.a.getNativeName(e),n=c(e);return t.charAt(0).toLocaleUpperCase(n)+t.slice(1)},u=i()(o.a.languages,(function(e){return{code:e,name:l(e)}})).sort((function(e,t){return e.name.localeCompare(t.name)})),d={internalToBrowserLocale:c,internalToBackendLocale:function(e){return c(e).replace("_","-")},languages:u,getLanguageName:l};t.a=d},,,function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return c}));var r=n(5),i=n.n(r),o=n(18);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t(Object(r.D)(),Object(r.j)("div",{key:n,class:"poll-option"},[e.showResults?(Object(r.D)(),Object(r.j)("div",{key:0,title:e.resultTitle(t),class:"option-result"},[Object(r.k)("div",d,[Object(r.k)("span",p,Object(r.O)(e.percentageForOption(t.votes_count))+"% ",1),Object(r.m)(a,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])]),Object(r.k)("div",{class:"result-fill",style:Object(r.x)({width:e.percentageForOption(t.votes_count)+"%"})},null,4)],8,u)):(Object(r.D)(),Object(r.j)("div",{key:1,onClick:t=>e.activateOption(n)},[e.poll.multiple?(Object(r.D)(),Object(r.j)("input",{key:0,type:"checkbox",disabled:e.loading,value:n},null,8,b)):(Object(r.D)(),Object(r.j)("input",{key:1,type:"radio",disabled:e.loading,value:n},null,8,m)),Object(r.k)("label",f,[Object(r.m)(a,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])])],8,h))]))),128)),Object(r.k)("div",O,[e.showResults?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("button",{key:0,class:"btn button-default poll-vote-button",type:"button",disabled:e.isDisabled,onClick:t[0]||(t[0]=(...t)=>e.vote&&e.vote(...t))},Object(r.O)(e.$t("polls.vote")),9,j)),Object(r.k)("div",g,["number"==typeof e.poll.voters_count?(Object(r.D)(),Object(r.j)(r.a,{key:0},[Object(r.l)(Object(r.O)(e.$tc("polls.people_voted_count",e.poll.voters_count,{count:e.poll.voters_count}))+" ·  ",1)],64)):(Object(r.D)(),Object(r.j)(r.a,{key:1},[Object(r.l)(Object(r.O)(e.$tc("polls.votes_count",e.poll.votes_count,{count:e.poll.votes_count}))+" ·  ",1)],64))]),Object(r.k)("span",null,[Object(r.m)(l,{scope:"global",keypath:e.expired?"polls.expired":"polls.expires_in"},{default:Object(r.V)(()=>[Object(r.m)(c,{time:e.expiresAt,"auto-update":60,"now-threshold":0},null,8,["time"])]),_:1},8,["keypath"])])])],2)}]]),T=n(78);const I={class:"body"};var $=n(32),z=n(8),M=n(6),U=n(3);function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}M.c.add(U.D,U.Q,U.K,U.N,U.X);var E={name:"StatusContent",props:["compact","status","focused","noHeading","fullContent","singleLine","showingTall","expandingSubject","showingLongSubject","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject"],data:function(){return{postLength:this.status.text.length,parseReadyDone:!1}},computed:function(e){for(var t=1;t20},longSubject:function(){return this.status.summary.length>240},mightHideBecauseSubject:function(){return!!this.status.summary&&this.localCollapseSubjectDefault},mightHideBecauseTall:function(){return this.tallStatus&&!(this.status.summary&&this.localCollapseSubjectDefault)},hideSubjectStatus:function(){return this.mightHideBecauseSubject&&!this.expandingSubject},hideTallStatus:function(){return this.mightHideBecauseTall&&!this.showingTall},showingMore:function(){return this.mightHideBecauseTall&&this.showingTall||this.mightHideBecauseSubject&&this.expandingSubject},attachmentTypes:function(){return this.status.attachments.map((function(e){return $.a.fileType(e.mimetype)}))}},Object(z.c)(["mergedConfig"])),components:{RichContent:S.a},mounted:function(){var e=this;this.status.attentions&&this.status.attentions.forEach((function(t){var n=t.id;e.$store.dispatch("fetchUserIfMissing",n)}))},methods:{onParseReady:function(e){var t=this;if(!this.parseReadyDone){this.parseReadyDone=!0,this.$emit("parseReady",e);var n=e.writtenMentions,r=e.invisibleMentions;n.filter((function(e){return!e.notifying})).forEach((function(e){var n=e.content,r=e.url,i=n.replace(/<[^>]+?>/gi,"");if(i.startsWith("@")){var o=i.slice(1),s=r.replace(/^https?:\/\//,"").replace(/\/.+?$/,"");t.$store.dispatch("fetchUserIfMissing","".concat(o,"@").concat(s))}})),this.postLength=r.reduce((function(e,t){return e-t.textContent.length-1}),this.postLength)}},toggleShowMore:function(){this.mightHideBecauseTall?this.toggleShowingTall():this.mightHideBecauseSubject&&this.toggleExpandingSubject()},generateTagLink:function(e){return"/tag/".concat(e)}}};n(515);var L=D()(E,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("RichContent"),c=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("div",{class:Object(r.w)(["StatusBody",{"-compact":e.compact}])},[Object(r.k)("div",I,[e.status.summary_raw_html?(Object(r.D)(),Object(r.j)("div",{key:0,class:Object(r.w)(["summary-wrapper",{"-tall":e.longSubject&&!e.showingLongSubject}])},[Object(r.m)(a,{class:"media-body summary",html:e.status.summary_raw_html,emoji:e.status.emojis},null,8,["html","emoji"]),Object(r.W)(Object(r.k)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[0]||(t[0]=Object(r.Y)((...t)=>e.toggleShowingLongSubject&&e.toggleShowingLongSubject(...t),["prevent"]))},Object(r.O)(e.$t("status.hide_full_subject")),513),[[r.T,e.longSubject&&e.showingLongSubject]]),Object(r.W)(Object(r.k)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[1]||(t[1]=Object(r.Y)((...t)=>e.toggleShowingLongSubject&&e.toggleShowingLongSubject(...t),["prevent"]))},Object(r.O)(e.$t("status.show_full_subject")),513),[[r.T,e.longSubject&&!e.showingLongSubject]])],2)):Object(r.i)("",!0),Object(r.k)("div",{class:Object(r.w)([{"-tall-status":e.hideTallStatus},"text-wrapper"])},[Object(r.W)(Object(r.k)("button",{class:Object(r.w)(["button-unstyled -link tall-status-hider",{"-focused":e.focused}]),onClick:t[2]||(t[2]=Object(r.Y)((...t)=>e.toggleShowMore&&e.toggleShowMore(...t),["prevent"]))},Object(r.O)(e.$t("general.show_more")),3),[[r.T,e.hideTallStatus]]),e.hideSubjectStatus||e.singleLine&&e.status.summary_raw_html?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(a,{key:0,class:Object(r.w)([{"-single-line":e.singleLine},"text media-body"]),html:e.status.raw_html,emoji:e.status.emojis,"handle-links":!0,greentext:e.mergedConfig.greentext,attentions:e.status.attentions,onParseReady:e.onParseReady},null,8,["class","html","emoji","greentext","attentions","onParseReady"])),Object(r.W)(Object(r.k)("button",{class:"button-unstyled -link cw-status-hider",onClick:t[3]||(t[3]=Object(r.Y)((...t)=>e.toggleShowMore&&e.toggleShowMore(...t),["prevent"]))},[Object(r.l)(Object(r.O)(e.$t("status.show_content"))+" ",1),e.attachmentTypes.includes("image")?(Object(r.D)(),Object(r.h)(c,{key:0,icon:"image"})):Object(r.i)("",!0),e.attachmentTypes.includes("video")?(Object(r.D)(),Object(r.h)(c,{key:1,icon:"video"})):Object(r.i)("",!0),e.attachmentTypes.includes("audio")?(Object(r.D)(),Object(r.h)(c,{key:2,icon:"music"})):Object(r.i)("",!0),e.attachmentTypes.includes("unknown")?(Object(r.D)(),Object(r.h)(c,{key:3,icon:"file"})):Object(r.i)("",!0),e.status.poll&&e.status.poll.options?(Object(r.D)(),Object(r.h)(c,{key:4,icon:"poll-h"})):Object(r.i)("",!0),e.status.card?(Object(r.D)(),Object(r.h)(c,{key:5,icon:"link"})):Object(r.i)("",!0)],512),[[r.T,e.hideSubjectStatus]]),Object(r.W)(Object(r.k)("button",{class:"button-unstyled -link status-unhider",onClick:t[4]||(t[4]=Object(r.Y)((...t)=>e.toggleShowMore&&e.toggleShowMore(...t),["prevent"]))},Object(r.O)(e.tallStatus?e.$t("general.show_less"):e.$t("status.hide_content")),513),[[r.T,e.showingMore&&!e.fullContent]])],2)]),e.hideSubjectStatus?Object(r.i)("",!0):Object(r.I)(e.$slots,"default",{key:0})],2)}]]),R=n(142);function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;tthis.maxThumbnails?"hide":"normal"},maxThumbnails:function(){return this.mergedConfig.maxThumbnails}},Object(z.c)(["mergedConfig"])),Object(z.e)({currentUser:function(e){return e.users.currentUser}})),components:{Attachment:l.a,Poll:x,Gallery:T.a,LinkPreview:R.a,StatusBody:L},methods:{toggleShowingTall:function(){H(this,"showingTall")},toggleExpandingSubject:function(){H(this,"expandingSubject")},toggleShowingLongSubject:function(){H(this,"showingLongSubject")},setMedia:function(){var e=this,t="hide"===this.attachmentSize?this.status.attachments:this.galleryAttachments;return function(){return e.$store.dispatch("setMedia",t)}}}};n(517);const q=D()(J,[["render",function(e,t,n,a,c,l){const u=Object(r.J)("Poll"),d=Object(r.J)("FAIcon"),p=Object(r.J)("gallery"),h=Object(r.J)("link-preview"),b=Object(r.J)("StatusBody");return Object(r.D)(),Object(r.j)("div",{class:Object(r.w)(["StatusContent",{"-compact":e.compact}])},[Object(r.I)(e.$slots,"header"),Object(r.m)(b,{status:e.status,compact:e.compact,"single-line":e.singleLine,"showing-tall":e.showingTall,"expanding-subject":e.expandingSubject,"showing-long-subject":e.showingLongSubject,"toggle-showing-tall":e.toggleShowingTall,"toggle-expanding-subject":e.toggleExpandingSubject,"toggle-showing-long-subject":e.toggleShowingLongSubject,onParseReady:t[2]||(t[2]=t=>e.$emit("parseReady",t))},{default:Object(r.V)(()=>[e.status.poll&&e.status.poll.options&&!e.compact?(Object(r.D)(),Object(r.j)("div",i,[Object(r.m)(u,{"base-poll":e.status.poll,emoji:e.status.emojis},null,8,["base-poll","emoji"])])):e.status.poll&&e.status.poll.options&&e.compact?(Object(r.D)(),Object(r.j)("div",o,[Object(r.m)(d,{icon:"poll-h",size:"2x"})])):Object(r.i)("",!0),0!==e.status.attachments.length?(Object(r.D)(),Object(r.h)(p,{key:2,class:"attachments media-body",nsfw:e.nsfwClickthrough,attachments:e.status.attachments,limit:e.compact?1:0,size:e.attachmentSize,onPlay:t[0]||(t[0]=t=>e.$emit("mediaplay",e.attachment.id)),onPause:t[1]||(t[1]=t=>e.$emit("mediapause",e.attachment.id))},null,8,["nsfw","attachments","limit","size"])):Object(r.i)("",!0),!e.status.card||e.noHeading||e.compact?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",s,[Object(r.m)(h,{card:e.status.card,size:e.attachmentSize,nsfw:e.nsfwClickthrough},null,8,["card","size","nsfw"])]))]),_:1},8,["status","compact","single-line","showing-tall","expanding-subject","showing-long-subject","toggle-showing-tall","toggle-expanding-subject","toggle-showing-long-subject"]),Object(r.I)(e.$slots,"footer")],2)}]]);t.a=q},,function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return l})),n.d(t,"e",(function(){return u}));var r=6e4,i=60*r,o=24*i,s=7*o,a=30*o,c=365.25*o,l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;"string"==typeof e&&(e=Date.parse(e));var n=Date.now()>e?Math.floor:Math.ceil,l=Math.abs(Date.now()-e),u={num:n(l/c),key:"time.years"};return l<1e3*t?(u.num=0,u.key="time.now"):l1&&void 0!==arguments[1]?arguments[1]:1,n=l(e,t);return n.key+="_short",n}},,,,function(e,t,n){"use strict";var r=n(0);const i={key:0,ref:"canvas"},o=["alt","title","src","referrerpolicy"];var s={props:["src","referrerpolicy","mimetype","imageLoadError","imageLoadHandler","alt","height","width"],data:function(){return{stopGifs:this.$store.getters.mergedConfig.stopGifs}},computed:{animated:function(){return this.stopGifs&&("image/gif"===this.mimetype||this.src.endsWith(".gif"))},style:function(){var e=function(e){return/\d$/.test(e)?e+"px":e};return{height:this.height?e(this.height):null,width:this.width?e(this.width):null}}},methods:{onLoad:function(){var e=this.$refs.src;if(e){this.imageLoadHandler&&this.imageLoadHandler(e);var t=this.$refs.canvas;if(t){var n=e.naturalWidth,r=e.naturalHeight;t.width=n,t.height=r,t.getContext("2d").drawImage(e,0,0,n,r)}}},onError:function(){this.imageLoadError&&this.imageLoadError()}}},a=(n(504),n(4));const c=n.n(a)()(s,[["render",function(e,t,n,s,a,c){return Object(r.D)(),Object(r.j)("div",{class:Object(r.w)(["still-image",{animated:e.animated}]),style:Object(r.x)(e.style)},[e.animated?(Object(r.D)(),Object(r.j)("canvas",i,null,512)):Object(r.i)("",!0),(Object(r.D)(),Object(r.j)("img",{ref:"src",key:e.src,alt:e.alt,title:e.alt,src:e.src,referrerpolicy:e.referrerpolicy,onLoad:t[0]||(t[0]=(...t)=>e.onLoad&&e.onLoad(...t)),onError:t[1]||(t[1]=(...t)=>e.onError&&e.onError(...t))},null,40,o)),Object(r.I)(e.$slots,"default")],6)}]]);t.a=c},function(e,t,n){"use strict";var r=n(0);const i=["disabled","checked","indeterminate"],o=Object(r.k)("i",{class:"checkbox-indicator"},null,-1),s={key:0,class:"label"};var a={emits:["update:modelValue"],props:["modelValue","indeterminate","disabled"]},c=(n(499),n(4));const l=n.n(c)()(a,[["render",function(e,t,n,a,c,l){return Object(r.D)(),Object(r.j)("label",{class:Object(r.w)(["checkbox",{disabled:n.disabled,indeterminate:n.indeterminate}])},[Object(r.k)("input",{type:"checkbox",disabled:n.disabled,checked:n.modelValue,indeterminate:n.indeterminate,onChange:t[0]||(t[0]=t=>e.$emit("update:modelValue",t.target.checked))},null,40,i),o,e.$slots.default?(Object(r.D)(),Object(r.j)("span",s,[Object(r.I)(e.$slots,"default")])):Object(r.i)("",!0)],2)}]]);t.a=l},function(e,t,n){"use strict";var r=n(0);const i=["disabled","value"],o=Object(r.l)(" "+Object(r.O)(" ")+" ");var s=n(6),a=n(3);s.c.add(a.n);var c={emits:["update:modelValue"],props:["modelValue","disabled","unstyled","kind"]},l=(n(502),n(4));const u=n.n(l)()(c,[["render",function(e,t,n,s,a,c){const l=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("label",{class:Object(r.w)(["Select input",{disabled:e.disabled,unstyled:e.unstyled}])},[Object(r.k)("select",{disabled:e.disabled,value:e.modelValue,onChange:t[0]||(t[0]=t=>e.$emit("update:modelValue",t.target.value))},[Object(r.I)(e.$slots,"default")],40,i),o,Object(r.m)(l,{class:"select-down-icon",icon:"chevron-down"})],2)}]]);t.a=u},function(e,t,n){"use strict";var r=n(0);const i={class:"basic-user-card"},o={key:0,class:"basic-user-card-expanded-content"},s={key:1,class:"basic-user-card-collapsed-content"},a=["title"];var c=n(34),l=n(22),u=n(25),d=n(23),p={props:["user"],data:function(){return{userExpanded:!1}},components:{UserCard:c.a,UserAvatar:l.default,RichContent:u.a},methods:{toggleUserExpanded:function(){this.userExpanded=!this.userExpanded},userProfileLink:function(e){return Object(d.a)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},h=(n(571),n(4));const b=n.n(h)()(p,[["render",function(e,t,n,c,l,u){const d=Object(r.J)("UserAvatar"),p=Object(r.J)("router-link"),h=Object(r.J)("UserCard"),b=Object(r.J)("RichContent");return Object(r.D)(),Object(r.j)("div",i,[Object(r.m)(p,{to:e.userProfileLink(e.user)},{default:Object(r.V)(()=>[Object(r.m)(d,{class:"avatar",user:e.user,onClick:Object(r.Y)(e.toggleUserExpanded,["prevent"])},null,8,["user","onClick"])]),_:1},8,["to"]),e.userExpanded?(Object(r.D)(),Object(r.j)("div",o,[Object(r.m)(h,{"user-id":e.user.id,rounded:!0,bordered:!0},null,8,["user-id"])])):(Object(r.D)(),Object(r.j)("div",s,[Object(r.k)("div",{title:e.user.name,class:"basic-user-card-user-name"},[Object(r.m)(b,{class:"basic-user-card-user-name-value",html:e.user.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,a),Object(r.k)("div",null,[Object(r.m)(p,{class:"basic-user-card-screen-name",to:e.userProfileLink(e.user)},{default:Object(r.V)(()=>[Object(r.l)(" @"+Object(r.O)(e.user.screen_name_ui),1)]),_:1},8,["to"])]),Object(r.I)(e.$slots,"default")]))])}]]);t.a=b},function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"e",(function(){return j})),n.d(t,"f",(function(){return y})),n.d(t,"b",(function(){return _})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return C}));var r=n(5),i=n.n(r),o=n(11),s=n.n(o),a=n(28),c=n.n(a),l=n(12),u=n.n(l),d=n(20),p=n(18),h=n(35);function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:h.b,n=[e],r=t[e];r;)n.unshift(r),r=t[r];return n},j=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return O(e).map((function(o){return[o===e?r[t]:r[o],o===e?i[n]||1:i[o]]}))},g=function(e,t){var n=t[e];if("string"==typeof n&&n.startsWith("--"))return[n.substring(2)];if(null===n)return[];var r=n.depends,i=n.layer,o=n.variant,s=i?O(i).map((function(e){return e===i?o||i:e})):[];return Array.isArray(r)?[].concat(u()(r),u()(s)):u()(s)},v=function(e){return"object"===c()(e)?e:{depends:e.startsWith("--")?[e.substring(2)]:[],default:e.startsWith("#")?e:void 0}},y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.c,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g,r=v(t[e]);if(null!==r.opacity){if(r.opacity)return r.opacity;var i=function r(i){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],s=n(i,t)[0];if(void 0!==s){var a=t[s];if(void 0!==a)return a.opacity||null===a?a.opacity:a.depends&&o.includes(s)?r(s,[].concat(u()(o),[s])):null}};return r.depends?i(e):void 0}},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.c,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g,r=v(t[e]);if(h.b[e])return e;if(null!==r.layer){if(r.layer)return r.layer;var i=function r(i){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],s=n(i,t)[0];if(void 0!==s){var a=t[s];if(void 0!==a)return a.layer||null===a?a.layer:a.depends?r(a,[].concat(u()(o),[s])):null}};return r.depends?i(e):void 0}},k=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h.c,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g,n=Object.keys(e),r=new Set(n),i=new Set,o=new Set,s=u()(n),a=[],c=function n(s){if(r.has(s))r.delete(s),i.add(s),t(s,e).forEach(n),i.delete(s),o.add(s),a.push(s);else if(i.has(s))console.debug("Cyclic depenency in topoSort, ignoring"),a.push(s);else if(!o.has(s))throw new Error("Unintended condition in topoSort!")};s.length>0;)c(s.pop());return a.map((function(e,t){return{data:e,index:t}})).sort((function(n,r){var i=n.data,o=n.index,s=r.data,a=r.index,c=t(i,e).length,l=t(s,e).length;return c===l||0!==l&&0!==c?o-a:0===c&&0!==l?-1:0===l&&0!==c?1:void 0})).map((function(e){return e.data}))}(Object.entries(h.c).sort((function(e,t){var n=s()(e,2),r=(n[0],n[1]),i=s()(t,2),o=(i[0],i[1]);return(r&&r.priority||0)-(o&&o.priority||0)})).reduce((function(e,t){var n=s()(t,2),r=n[0],o=n[1];return m(m({},e),{},i()({},r,o))}),{})),_=Object.entries(h.c).reduce((function(e,t){var n=s()(t,2),r=n[0],o=(n[1],y(r,h.c,g));return o?m(m({},e),{},i()({},o,{defaultValue:h.a[o]||1,affectedSlots:[].concat(u()(e[o]&&e[o].affectedSlots||[]),[r])})):e}),{}),S=function(e,t,n){if("string"!=typeof e||!e.startsWith("--"))return e;var r=null,i=e.split(/,/g).map((function(e){return e.trim()})),o=s()(i,2),a=o[0],c=o[1];return r=t(a.substring(2)),c&&(r=Object(d.brightness)(Number.parseFloat(c)*n,r).rgb),r},C=function(e,t){return k.reduce((function(n,r){var o=n.colors,s=n.opacity,a=e[r],c=v(h.c[r]),l=g(r,h.c),b=!!c.textColor,f=c.variant||c.layer,O=null;O=b?Object(p.b)(m({},o[l[0]]||Object(d.convert)(e[r]||"#FF00FF").rgb),j(w(r)||"bg",f||"bg",y(f),o,s)):f&&f!==r?o[f]||Object(d.convert)(e[f]).rgb:o.bg||Object(d.convert)(e.bg);var k=Object(p.h)(O)<.5?1:-1,C=null;if(a){var P=a;if("transparent"===P){var D=j(w(r),r,y(r)||r,o,s).slice(0,-1);P=m(m({},Object(p.b)(Object(d.convert)("#FF00FF").rgb,D)),{},{a:0})}else"string"==typeof a&&a.startsWith("--")?P=S(a,(function(t){return o[t]||e[t]}),k):"string"==typeof a&&a.startsWith("#")&&(P=Object(d.convert)(P).rgb);C=m({},P)}else if(c.default)C=Object(d.convert)(c.default).rgb;else{var x=c.color||function(e,t){return m({},t)};if(c.textColor)if("bw"===c.textColor)C=Object(d.contrastRatio)(O).rgb;else{var T=m({},o[l[0]]);c.color&&(T=x.apply(void 0,[k].concat(u()(l.map((function(e){return m({},o[e])})))))),C=Object(p.e)(O,m({},T),"preserve"===c.textColor)}else C=x.apply(void 0,[k].concat(u()(l.map((function(e){return m({},o[e])})))))}if(!C)throw new Error("Couldn't generate color for "+r);var I=c.opacity||y(r),$=c.opacity;if(null===$)C.a=1;else if("transparent"===a)C.a=0;else{var z=$&&void 0!==t[I],M=l[0],U=M&&o[M];$||!U||c.textColor||null===$?U||I?U&&0===U.a?C.a=0:C.a=Number(z?t[I]:(_[I]||{}).defaultValue):delete C.a:C.a=U.a}return(Number.isNaN(C.a)||void 0===C.a)&&(C.a=1),I?{colors:m(m({},o),{},i()({},r,C)),opacity:m(m({},s),{},i()({},I,C.a))}:{colors:m(m({},o),{},i()({},r,C)),opacity:s}}),{colors:{},opacity:{}})}},,,function(e,t,n){"use strict";var r=n(0);const i={ref:"form",class:"post-status-form"},o={class:"form-group"},s={key:1,class:"visibility-notice notice-dismissible"},a={key:2,class:"visibility-notice notice-dismissible"},c={key:3,class:"visibility-notice notice-dismissible"},l={key:4,class:"visibility-notice"},u={key:0},d={key:1},p={key:5,class:"preview-heading faint"},h={class:"preview-spinner"},b={key:6,class:"preview-container"},m={key:0,class:"preview-status"},f={key:1,class:"preview-status preview-error"},O=["placeholder","disabled"],j=["placeholder","disabled"],g={key:8,class:"visibility-tray"},v={key:0,class:"text-format"},y=["value"],w={key:1,class:"text-format"},k={class:"only-format"},_={ref:"bottom",class:"form-bottom"},S={class:"form-bottom-left"},C=["title"],P=["title"],D={key:0,disabled:"",class:"btn button-default"},x={key:1,disabled:"",class:"btn button-default"},T=["disabled"],I={key:1,class:"alert error"},$={key:3,class:"upload_settings"};var z=n(13),M=n.n(z),U=n(5),F=n.n(U),E=n(12),L=n.n(E),R=n(56),A=n.n(R),N=n(135),B=n.n(N),V=n(21),H=n.n(V),J=n(223),q=n.n(J),W=n(10),Y=n.n(W),G=n(76);const K=["title"],X=["disabled"];var Z=n(95),Q=n(6),ee=n(3);function te(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ne(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ne(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0}},methods:{uploadFile:function(e){var t=this,n=this.$store;if(e.size>n.state.instance.uploadlimit){var r=Z.a.fileSizeFormat(e.size),i=Z.a.fileSizeFormat(n.state.instance.uploadlimit);t.$emit("upload-failed","file_too_big",{filesize:r.num,filesizeunit:r.unit,allowedsize:i.num,allowedsizeunit:i.unit})}else{var o=new FormData;o.append("file",e),t.$emit("uploading"),t.uploadCount++,G.a.uploadMedia({store:n,formData:o}).then((function(e){t.$emit("uploaded",e),t.decreaseUploadCount()}),(function(e){t.$emit("upload-failed","default"),t.decreaseUploadCount()}))}},decreaseUploadCount:function(){this.uploadCount--,0===this.uploadCount&&this.$emit("all-uploaded")},clearFile:function(){var e=this;this.uploadReady=!1,this.$nextTick((function(){e.uploadReady=!0}))},multiUpload:function(e){var t,n=te(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.uploadFile(r)}}catch(e){n.e(e)}finally{n.f()}},change:function(e){var t=e.target;this.multiUpload(t.files)}},props:["dropFiles","disabled"],watch:{dropFiles:function(e){this.uploading||this.multiUpload(e)}}},ie=(n(497),n(4)),oe=n.n(ie);var se=oe()(re,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("label",{class:Object(r.w)(["media-upload",{disabled:e.disabled}]),title:e.$t("tool_tip.media_upload")},[e.uploading?(Object(r.D)(),Object(r.h)(a,{key:0,class:"progress-icon",icon:"circle-notch",spin:""})):Object(r.i)("",!0),e.uploading?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(a,{key:1,class:"new-icon",icon:"upload"})),e.uploadReady?(Object(r.D)(),Object(r.j)("input",{key:2,class:"hidden-input-file",disabled:e.disabled,type:"file",multiple:"true",onChange:t[0]||(t[0]=(...t)=>e.change&&e.change(...t))},null,40,X)):Object(r.i)("",!0)],10,K)}]]),ae=n(174),ce=n(308);const le={key:0,class:"poll-form"},ue={class:"input-container"},de=["id","onUpdate:modelValue","placeholder","maxlength","onKeydown"],pe=["onClick"],he={class:"poll-type-expiry"},be=["title"],me={value:"single"},fe={value:"multiple"},Oe=["title"],je=["min","max"],ge=Object(r.l)(" "+Object(r.O)(" ")+" "),ve=["value"];var ye=n(97),we=n.n(ye),ke=n(46),_e=n(52);Q.c.add(ee.rb,ee.V);var Se={components:{Select:_e.a},name:"PollForm",props:["visible"],data:function(){return{pollType:"single",options:["",""],expiryAmount:10,expiryUnit:"minutes"}},computed:{pollLimits:function(){return this.$store.state.instance.pollLimits},maxOptions:function(){return this.pollLimits.max_options},maxLength:function(){return this.pollLimits.max_option_chars},expiryUnits:function(){var e=this,t=this.convertExpiryFromUnit;return["minutes","hours","days"].filter((function(n){return e.pollLimits.max_expiration>=t(n,1)}))},minExpirationInCurrentUnit:function(){return Math.ceil(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.min_expiration))},maxExpirationInCurrentUnit:function(){return Math.floor(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.max_expiration))}},methods:{clear:function(){this.pollType="single",this.options=["",""],this.expiryAmount=10,this.expiryUnit="minutes"},nextOption:function(e){var t=this.$el.querySelector("#poll-".concat(e+1));t?t.focus():this.addOption()&&this.$nextTick((function(){this.nextOption(e)}))},addOption:function(){return this.options.length2&&(this.options.splice(e,1),this.updatePollToParent())},convertExpiryToUnit:function(e,t){switch(e){case"minutes":return 1e3*t/ke.c;case"hours":return 1e3*t/ke.b;case"days":return 1e3*t/ke.a}},convertExpiryFromUnit:function(e,t){switch(e){case"minutes":return.001*t*ke.c;case"hours":return.001*t*ke.b;case"days":return.001*t*ke.a}},expiryAmountChange:function(){this.expiryAmount=Math.max(this.minExpirationInCurrentUnit,this.expiryAmount),this.expiryAmount=Math.min(this.maxExpirationInCurrentUnit,this.expiryAmount),this.updatePollToParent()},updatePollToParent:function(){var e=this.convertExpiryFromUnit(this.expiryUnit,this.expiryAmount),t=we()(this.options.filter((function(e){return""!==e})));t.length<2?this.$emit("update-poll",{error:this.$t("polls.not_enough_options")}):this.$emit("update-poll",{options:t,multiple:"multiple"===this.pollType,expiresIn:e})}}};n(503);var Ce=oe()(Se,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon"),c=Object(r.J)("Select");return e.visible?(Object(r.D)(),Object(r.j)("div",le,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.options,(n,i)=>(Object(r.D)(),Object(r.j)("div",{key:i,class:"poll-option"},[Object(r.k)("div",ue,[Object(r.W)(Object(r.k)("input",{id:"poll-"+i,"onUpdate:modelValue":t=>e.options[i]=t,size:"1",class:"poll-option-input",type:"text",placeholder:e.$t("polls.option"),maxlength:e.maxLength,onChange:t[0]||(t[0]=(...t)=>e.updatePollToParent&&e.updatePollToParent(...t)),onKeydown:Object(r.X)(Object(r.Y)(t=>e.nextOption(i),["stop","prevent"]),["enter"])},null,40,de),[[r.S,e.options[i]]])]),e.options.length>2?(Object(r.D)(),Object(r.j)("button",{key:0,class:"delete-option button-unstyled -hover-highlight",onClick:t=>e.deleteOption(i)},[Object(r.m)(a,{icon:"times"})],8,pe)):Object(r.i)("",!0)]))),128)),e.options.lengthe.addOption&&e.addOption(...t))},[Object(r.m)(a,{icon:"plus",size:"sm"}),Object(r.l)(" "+Object(r.O)(e.$t("polls.add_option")),1)])):Object(r.i)("",!0),Object(r.k)("div",he,[Object(r.k)("div",{class:"poll-type",title:e.$t("polls.type")},[Object(r.m)(c,{modelValue:e.pollType,"onUpdate:modelValue":t[2]||(t[2]=t=>e.pollType=t),class:"poll-type-select",unstyled:"true",onChange:e.updatePollToParent},{default:Object(r.V)(()=>[Object(r.k)("option",me,Object(r.O)(e.$t("polls.single_choice")),1),Object(r.k)("option",fe,Object(r.O)(e.$t("polls.multiple_choices")),1)]),_:1},8,["modelValue","onChange"])],8,be),Object(r.k)("div",{class:"poll-expiry",title:e.$t("polls.expiry")},[Object(r.W)(Object(r.k)("input",{"onUpdate:modelValue":t[3]||(t[3]=t=>e.expiryAmount=t),type:"number",class:"expiry-amount hide-number-spinner",min:e.minExpirationInCurrentUnit,max:e.maxExpirationInCurrentUnit,onChange:t[4]||(t[4]=(...t)=>e.expiryAmountChange&&e.expiryAmountChange(...t))},null,40,je),[[r.S,e.expiryAmount]]),ge,Object(r.m)(c,{modelValue:e.expiryUnit,"onUpdate:modelValue":t[5]||(t[5]=t=>e.expiryUnit=t),unstyled:"true",class:"expiry-unit",onChange:e.expiryAmountChange},{default:Object(r.V)(()=>[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.expiryUnits,t=>(Object(r.D)(),Object(r.j)("option",{key:t,value:t},Object(r.O)(e.$t(`time.${t}_short`,[""])),9,ve))),128))]),_:1},8,["modelValue","onChange"])],8,Oe)])])):Object(r.i)("",!0)}]]),Pe=n(58),De=n(78),xe=n(44),Te=n(32),Ie=n(136),$e=n(166),ze=n(8),Me=n(51);function Ue(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Fe(e){for(var t=1;t0?s.join(" ")+" ":""}({user:this.repliedUser,attentions:this.attentions},n)}var r=this.copyMessageScope&&t||"direct"===this.copyMessageScope?this.copyMessageScope:this.$store.state.users.currentUser.default_scope,i=this.$store.getters.mergedConfig,o=i.postContentType,s=i.sensitiveByDefault,a=i.sensitiveIfSubject;return{dropFiles:[],uploadingFiles:!1,error:null,posting:!1,highlighted:0,newStatus:{spoilerText:this.subject||"",status:e,sensitiveIfSubject:a,nsfw:!!s,files:[],poll:{},mediaDescriptions:{},visibility:r,contentType:o},caret:0,pollFormVisible:!1,showDropIcon:"hide",dropStopTimeout:null,preview:null,previewLoading:!1,emojiInputShown:!1,idempotencyKey:""}},computed:Fe(Fe({users:function(){return this.$store.state.users.users},userDefaultScope:function(){return this.$store.state.users.currentUser.default_scope},showAllScopes:function(){return!this.mergedConfig.minimalScopesMode},emojiUserSuggestor:function(){return Object($e.a)({emoji:[].concat(L()(this.$store.state.instance.emoji),L()(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return Object($e.a)({emoji:[].concat(L()(this.$store.state.instance.emoji),L()(this.$store.state.instance.customEmoji))})},emoji:function(){return this.$store.state.instance.emoji||[]},customEmoji:function(){return this.$store.state.instance.customEmoji||[]},statusLength:function(){return this.newStatus.status.length},spoilerTextLength:function(){return this.newStatus.spoilerText.length},statusLengthLimit:function(){return this.$store.state.instance.textlimit},hasStatusLengthLimit:function(){return this.statusLengthLimit>0},charactersLeft:function(){return this.statusLengthLimit-(this.statusLength+this.spoilerTextLength)},isOverLengthLimit:function(){return this.hasStatusLengthLimit&&this.charactersLeft<0},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},alwaysShowSubject:function(){return this.mergedConfig.alwaysShowSubjectInput},postFormats:function(){return this.$store.state.instance.postFormats||[]},safeDMEnabled:function(){return this.$store.state.instance.safeDM},pollsAvailable:function(){return this.$store.state.instance.pollsAvailable&&this.$store.state.instance.pollLimits.max_options>=2&&!0!==this.disablePolls},hideScopeNotice:function(){return this.disableNotice||this.$store.getters.mergedConfig.hideScopeNotice},pollContentError:function(){return this.pollFormVisible&&this.newStatus.poll&&this.newStatus.poll.error},showPreview:function(){return!this.disablePreview&&(!!this.preview||this.previewLoading)},emptyStatus:function(){return""===this.newStatus.status.trim()&&0===this.newStatus.files.length},uploadFileLimitReached:function(){return this.newStatus.files.length>=this.fileLimit}},Object(ze.c)(["mergedConfig"])),Object(ze.e)({mobileLayout:function(e){return e.interface.mobileLayout}})),watch:{newStatus:{deep:!0,handler:function(){this.statusChanged()}}},methods:{statusChanged:function(){this.autoPreview(),this.updateIdempotencyKey()},clearStatus:function(){var e=this,t=this.newStatus;this.newStatus={status:"",spoilerText:"",files:[],visibility:t.visibility,contentType:t.contentType,poll:{},mediaDescriptions:{}},this.pollFormVisible=!1,this.$refs.mediaUpload&&this.$refs.mediaUpload.clearFile(),this.clearPollForm(),this.preserveFocus&&this.$nextTick((function(){e.$refs.textarea.focus()}));var n=this.$el.querySelector("textarea");n.style.height="auto",n.style.height=void 0,this.error=null,this.preview&&this.previewStatus()},postStatus:function(e,t){var n=arguments,r=this;return M()(Y.a.mark((function i(){var o,s,a;return Y.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(n.length>2&&void 0!==n[2]?n[2]:{},o=r.$store.getters.mergedConfig.sensitiveIfSubject,!r.posting||r.optimisticPosting){i.next=4;break}return i.abrupt("return");case 4:if(!r.disableSubmit){i.next=6;break}return i.abrupt("return");case 6:if(!r.emojiInputShown){i.next=8;break}return i.abrupt("return");case 8:if(r.submitOnEnter&&(e.stopPropagation(),e.preventDefault()),!r.optimisticPosting||!r.emptyStatus&&!r.isOverLengthLimit){i.next=11;break}return i.abrupt("return");case 11:if(!r.emptyStatus){i.next=14;break}return r.error=r.$t("post_status.empty_status_error"),i.abrupt("return");case 14:if(s=r.pollFormVisible?r.newStatus.poll:{},!r.pollContentError){i.next=18;break}return r.error=r.pollContentError,i.abrupt("return");case 18:return r.posting=!0,i.prev=19,i.next=22,r.setAllMediaDescriptions();case 22:i.next=29;break;case 24:return i.prev=24,i.t0=i.catch(19),r.error=r.$t("post_status.media_description_error"),r.posting=!1,i.abrupt("return");case 29:a={status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw||o&&t.spoilerText,media:t.files,store:r.$store,inReplyToStatusId:r.replyTo,contentType:t.contentType,poll:s,idempotencyKey:r.idempotencyKey},(r.postHandler?r.postHandler:G.a.postStatus)(a).then((function(e){e.error?r.error=e.error:(r.clearStatus(),r.$emit("posted",e)),r.posting=!1}));case 32:case"end":return i.stop()}}),i,null,[[19,24]])})))()},previewStatus:function(){var e=this;if(this.emptyStatus&&""===this.newStatus.spoilerText.trim())return this.preview={error:this.$t("post_status.preview_empty")},void(this.previewLoading=!1);var t=this.newStatus;this.previewLoading=!0,G.a.postStatus({status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:[],store:this.$store,inReplyToStatusId:this.replyTo,contentType:t.contentType,poll:{},preview:!0}).then((function(t){e.previewLoading&&(t.error?e.preview={error:t.error}:e.preview=t)})).catch((function(t){e.preview={error:t}})).finally((function(){e.previewLoading=!1}))},debouncePreviewStatus:A()((function(){this.previewStatus()}),500),autoPreview:function(){this.preview&&(this.previewLoading=!0,this.debouncePreviewStatus())},closePreview:function(){this.preview=null,this.previewLoading=!1},togglePreview:function(){this.showPreview?this.closePreview():this.previewStatus()},addMediaFile:function(e){this.newStatus.files.push(e),this.$emit("resize",{delayed:!0})},removeMediaFile:function(e){var t=this.newStatus.files.indexOf(e);this.newStatus.files.splice(t,1),this.$emit("resize")},editAttachment:function(e,t){this.newStatus.mediaDescriptions[e.id]=t},shiftUpMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n-1,0,e)},shiftDnMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n+1,0,e)},uploadFailed:function(e,t){t=t||{},this.error=this.$t("upload.error.base")+" "+this.$t("upload.error."+e,t)},startedUploadingFiles:function(){this.uploadingFiles=!0},finishedUploadingFiles:function(){this.$emit("resize"),this.uploadingFiles=!1},type:function(e){return Te.a.fileType(e.mimetype)},paste:function(e){this.autoPreview(),this.resize(e),e.clipboardData.files.length>0&&(e.preventDefault(),this.dropFiles=[e.clipboardData.files[0]])},fileDrop:function(e){e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),this.dropFiles=e.dataTransfer.files,clearTimeout(this.dropStopTimeout),this.showDropIcon="hide")},fileDragStop:function(e){var t=this;clearTimeout(this.dropStopTimeout),this.showDropIcon="fade",this.dropStopTimeout=setTimeout((function(){return t.showDropIcon="hide"}),500)},fileDrag:function(e){e.dataTransfer.dropEffect=this.uploadFileLimitReached?"none":"copy",e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(clearTimeout(this.dropStopTimeout),this.showDropIcon="show")},onEmojiInputInput:function(e){var t=this;this.$nextTick((function(){t.resize(t.$refs.textarea)}))},resize:function(e){var t=e.target||e;if(t instanceof window.Element){if(""===t.value)return t.style.height=null,this.$emit("resize"),void this.$refs["emoji-input"].resize();var n=this.$refs.form,r=this.$refs.bottom,i=window.getComputedStyle(r)["padding-bottom"],o=Ee(i),s=this.$el.closest(".column.-scrollable")||this.$el.closest(".post-form-modal-view")||window,a=window.getComputedStyle(t)["padding-top"],c=window.getComputedStyle(t)["padding-bottom"],l=Ee(a)+Ee(c),u=Ee(t.style.height),d=s===window?s.scrollY:s.scrollTop,p=s===window?s.innerHeight:s.offsetHeight,h=d+p;t.style.height="auto";var b=Math.floor(t.scrollHeight-l),m=this.maxHeight?Math.min(b,this.maxHeight):b;Math.abs(m-u)<=1&&(m=u),t.style.height="".concat(m,"px"),this.$emit("resize",m);var f=r.offsetHeight+Object(Ie.a)(r,s).top+o,O=h{},["prevent"])),onDragover:t[27]||(t[27]=Object(r.Y)((...t)=>e.fileDrag&&e.fileDrag(...t),["prevent"]))},[Object(r.k)("div",o,[e.$store.state.users.currentUser.locked||"private"!=e.newStatus.visibility||e.disableLockWarning?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(F,{key:0,keypath:"post_status.account_not_locked_warning",tag:"p",class:"visibility-notice",scope:"global"},{default:Object(r.V)(()=>[Object(r.k)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=(...t)=>e.openProfileTab&&e.openProfileTab(...t))},Object(r.O)(e.$t("post_status.account_not_locked_warning_link")),1)]),_:1})),e.hideScopeNotice||"public"!==e.newStatus.visibility?e.hideScopeNotice||"unlisted"!==e.newStatus.visibility?!e.hideScopeNotice&&"private"===e.newStatus.visibility&&e.$store.state.users.currentUser.locked?(Object(r.D)(),Object(r.j)("p",c,[Object(r.k)("span",null,Object(r.O)(e.$t("post_status.scope_notice.private")),1),Object(r.k)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[3]||(t[3]=Object(r.Y)(t=>e.dismissScopeNotice(),["prevent"]))},[Object(r.m)(E,{icon:"times"})])])):"direct"===e.newStatus.visibility?(Object(r.D)(),Object(r.j)("p",l,[e.safeDMEnabled?(Object(r.D)(),Object(r.j)("span",u,Object(r.O)(e.$t("post_status.direct_warning_to_first_only")),1)):(Object(r.D)(),Object(r.j)("span",d,Object(r.O)(e.$t("post_status.direct_warning_to_all")),1))])):Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("p",a,[Object(r.k)("span",null,Object(r.O)(e.$t("post_status.scope_notice.unlisted")),1),Object(r.k)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[2]||(t[2]=Object(r.Y)(t=>e.dismissScopeNotice(),["prevent"]))},[Object(r.m)(E,{icon:"times"})])])):(Object(r.D)(),Object(r.j)("p",s,[Object(r.k)("span",null,Object(r.O)(e.$t("post_status.scope_notice.public")),1),Object(r.k)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=Object(r.Y)(t=>e.dismissScopeNotice(),["prevent"]))},[Object(r.m)(E,{icon:"times"})])])),e.disablePreview?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",p,[Object(r.k)("a",{class:"preview-toggle faint",onClick:t[4]||(t[4]=Object(r.Y)((...t)=>e.togglePreview&&e.togglePreview(...t),["stop","prevent"]))},[Object(r.l)(Object(r.O)(e.$t("post_status.preview"))+" ",1),Object(r.m)(E,{icon:e.showPreview?"chevron-left":"chevron-right"},null,8,["icon"])]),Object(r.W)(Object(r.k)("div",h,[Object(r.m)(E,{class:"fa-old-padding",spin:"",icon:"circle-notch"})],512),[[r.T,e.previewLoading]])])),e.showPreview?(Object(r.D)(),Object(r.j)("div",b,[e.preview?e.preview.error?(Object(r.D)(),Object(r.j)("div",f,Object(r.O)(e.preview.error),1)):(Object(r.D)(),Object(r.h)(L,{key:2,status:e.preview,class:"preview-status"},null,8,["status"])):(Object(r.D)(),Object(r.j)("div",m,Object(r.O)(e.$t("general.loading")),1))])):Object(r.i)("",!0),e.disableSubject||!e.newStatus.spoilerText&&!e.alwaysShowSubject?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(R,{key:7,modelValue:e.newStatus.spoilerText,"onUpdate:modelValue":t[6]||(t[6]=t=>e.newStatus.spoilerText=t),"enable-emoji-picker":"",suggest:e.emojiSuggestor,class:"form-control"},{default:Object(r.V)(()=>[Object(r.W)(Object(r.k)("input",{"onUpdate:modelValue":t[5]||(t[5]=t=>e.newStatus.spoilerText=t),type:"text",placeholder:e.$t("post_status.content_warning"),disabled:e.posting&&!e.optimisticPosting,size:"1",class:"form-post-subject"},null,8,O),[[r.S,e.newStatus.spoilerText]])]),_:1},8,["modelValue","suggest"])),Object(r.m)(R,{ref:"emoji-input",modelValue:e.newStatus.status,"onUpdate:modelValue":t[14]||(t[14]=t=>e.newStatus.status=t),suggest:e.emojiUserSuggestor,placement:e.emojiPickerPlacement,class:"form-control main-input","enable-emoji-picker":"","hide-emoji-button":"","newline-on-ctrl-enter":e.submitOnEnter,"enable-sticker-picker":"",onInput:e.onEmojiInputInput,onStickerUploaded:e.addMediaFile,onStickerUploadFailed:e.uploadFailed,onShown:e.handleEmojiInputShow},{default:Object(r.V)(()=>[Object(r.W)(Object(r.k)("textarea",{ref:"textarea","onUpdate:modelValue":t[7]||(t[7]=t=>e.newStatus.status=t),placeholder:e.placeholder||e.$t("post_status.default"),rows:"1",cols:"1",disabled:e.posting&&!e.optimisticPosting,class:Object(r.w)(["form-post-body",{"scrollable-form":!!e.maxHeight}]),onKeydown:[t[8]||(t[8]=Object(r.X)(Object(r.Y)(t=>e.submitOnEnter&&e.postStatus(t,e.newStatus),["exact"]),["enter"])),t[9]||(t[9]=Object(r.X)(Object(r.Y)(t=>e.postStatus(t,e.newStatus),["meta"]),["enter"])),t[10]||(t[10]=Object(r.X)(Object(r.Y)(t=>!e.submitOnEnter&&e.postStatus(t,e.newStatus),["ctrl"]),["enter"]))],onInput:t[11]||(t[11]=(...t)=>e.resize&&e.resize(...t)),onCompositionupdate:t[12]||(t[12]=(...t)=>e.resize&&e.resize(...t)),onPaste:t[13]||(t[13]=(...t)=>e.paste&&e.paste(...t))},null,42,j),[[r.S,e.newStatus.status]]),e.hasStatusLengthLimit?(Object(r.D)(),Object(r.j)("p",{key:0,class:Object(r.w)(["character-counter faint",{error:e.isOverLengthLimit}])},Object(r.O)(e.charactersLeft),3)):Object(r.i)("",!0)]),_:1},8,["modelValue","suggest","placement","newline-on-ctrl-enter","onInput","onStickerUploaded","onStickerUploadFailed","onShown"]),e.disableScopeSelector?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",g,[Object(r.m)(A,{"show-all":e.showAllScopes,"user-default":e.userDefaultScope,"original-scope":e.copyMessageScope,"initial-scope":e.newStatus.visibility,"on-scope-change":e.changeVis},null,8,["show-all","user-default","original-scope","initial-scope","on-scope-change"]),e.postFormats.length>1?(Object(r.D)(),Object(r.j)("div",v,[Object(r.m)(N,{id:"post-content-type",modelValue:e.newStatus.contentType,"onUpdate:modelValue":t[15]||(t[15]=t=>e.newStatus.contentType=t),class:"form-control"},{default:Object(r.V)(()=>[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.postFormats,t=>(Object(r.D)(),Object(r.j)("option",{key:t,value:t},Object(r.O)(e.$t(`post_status.content_type["${t}"]`)),9,y))),128))]),_:1},8,["modelValue"])])):Object(r.i)("",!0),1===e.postFormats.length&&"text/plain"!==e.postFormats[0]?(Object(r.D)(),Object(r.j)("div",w,[Object(r.k)("span",k,Object(r.O)(e.$t(`post_status.content_type["${e.postFormats[0]}"]`)),1)])):Object(r.i)("",!0)]))]),e.pollsAvailable?(Object(r.D)(),Object(r.h)(B,{key:0,ref:"pollForm",visible:e.pollFormVisible,onUpdatePoll:e.setPoll},null,8,["visible","onUpdatePoll"])):Object(r.i)("",!0),Object(r.k)("div",_,[Object(r.k)("div",S,[Object(r.m)(V,{ref:"mediaUpload",class:"media-upload-icon","drop-files":e.dropFiles,disabled:e.uploadFileLimitReached,onUploading:e.startedUploadingFiles,onUploaded:e.addMediaFile,onUploadFailed:e.uploadFailed,onAllUploaded:e.finishedUploadingFiles},null,8,["drop-files","disabled","onUploading","onUploaded","onUploadFailed","onAllUploaded"]),Object(r.k)("button",{class:"emoji-icon button-unstyled",title:e.$t("emoji.add_emoji"),onClick:t[16]||(t[16]=(...t)=>e.showEmojiPicker&&e.showEmojiPicker(...t))},[Object(r.m)(E,{icon:"smile-beam"})],8,C),e.pollsAvailable?(Object(r.D)(),Object(r.j)("button",{key:0,class:Object(r.w)(["poll-icon button-unstyled",{selected:e.pollFormVisible}]),title:e.$t("polls.add_poll"),onClick:t[17]||(t[17]=(...t)=>e.togglePollForm&&e.togglePollForm(...t))},[Object(r.m)(E,{icon:"poll-h"})],10,P)):Object(r.i)("",!0)]),e.posting?(Object(r.D)(),Object(r.j)("button",D,Object(r.O)(e.$t("post_status.posting")),1)):e.isOverLengthLimit?(Object(r.D)(),Object(r.j)("button",x,Object(r.O)(e.$t("post_status.post")),1)):(Object(r.D)(),Object(r.j)("button",{key:2,disabled:e.uploadingFiles||e.disableSubmit,class:"btn button-default",onTouchstart:t[18]||(t[18]=Object(r.Y)(t=>e.postStatus(t,e.newStatus),["stop","prevent"])),onClick:t[19]||(t[19]=Object(r.Y)(t=>e.postStatus(t,e.newStatus),["stop","prevent"]))},Object(r.O)(e.$t("post_status.post")),41,T))],512),Object(r.W)(Object(r.k)("div",{style:Object(r.x)({animation:"show"===e.showDropIcon?"fade-in 0.25s":"fade-out 0.5s"}),class:"drop-indicator",onDragleave:t[20]||(t[20]=(...t)=>e.fileDragStop&&e.fileDragStop(...t)),onDrop:t[21]||(t[21]=Object(r.Y)((...t)=>e.fileDrop&&e.fileDrop(...t),["stop"]))},[Object(r.m)(E,{icon:e.uploadFileLimitReached?"ban":"upload"},null,8,["icon"])],36),[[r.T,"hide"!==e.showDropIcon]]),e.error?(Object(r.D)(),Object(r.j)("div",I,[Object(r.l)(" Error: "+Object(r.O)(e.error)+" ",1),Object(r.k)("button",{class:"button-unstyled",onClick:t[22]||(t[22]=(...t)=>e.clearError&&e.clearError(...t))},[Object(r.m)(E,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])):Object(r.i)("",!0),e.newStatus.files&&e.newStatus.files.length>0?(Object(r.D)(),Object(r.h)(H,{key:2,class:"attachments",grid:!0,nsfw:!1,attachments:e.newStatus.files,descriptions:e.newStatus.mediaDescriptions,"set-media":()=>e.$store.dispatch("setMedia",e.newStatus.files),editable:!0,"edit-attachment":e.editAttachment,"remove-attachment":e.removeMediaFile,"shift-up-attachment":e.newStatus.files.length>1&&e.shiftUpMediaFile,"shift-dn-attachment":e.newStatus.files.length>1&&e.shiftDnMediaFile,onPlay:t[23]||(t[23]=t=>e.$emit("mediaplay",e.attachment.id)),onPause:t[24]||(t[24]=t=>e.$emit("mediapause",e.attachment.id))},null,8,["attachments","descriptions","set-media","edit-attachment","remove-attachment","shift-up-attachment","shift-dn-attachment"])):Object(r.i)("",!0),e.newStatus.files.length>0&&!e.disableSensitivityCheckbox?(Object(r.D)(),Object(r.j)("div",$,[Object(r.m)(J,{modelValue:e.newStatus.nsfw,"onUpdate:modelValue":t[25]||(t[25]=t=>e.newStatus.nsfw=t)},{default:Object(r.V)(()=>[Object(r.l)(Object(r.O)(e.$t("post_status.attachments_sensitive")),1)]),_:1},8,["modelValue"])])):Object(r.i)("",!0)],32)],512)}]]);t.a=Re},function(e,t,n){"use strict";var r=n(0);const i=["href","alt","title"],o={key:1,class:"attachment-buttons"},s=["placeholder"],a={key:1},c={class:"attachment-wrapper"},l=["href","alt","title"],u=["src"],d={key:1,class:"attachment-buttons"},p=["title"],h=["title"],b=["title"],m=["title"],f=["title"],O=["title"],j=["title"],g=["href"],v=["href"],y=["href"],w=["src","alt","title"],k={key:0,class:"image"},_=["src"],S={class:"text"},C=["href"],P=["innerHTML"],D=["href"],x=["placeholder"],T={key:1};var I=n(5),$=n.n(I),z=n(50),M=n(138),U=n(140),F=n(325),E=n.n(F),L=n(32),R=n(8),A=n(6),N=n(3);function B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}A.c.add(N.D,N.Q,N.K,N.xb,N.U,N.rb,N.lb,N.db,N.sb,N.T,N.b);var V={props:["attachment","description","hideDescription","nsfw","size","setMedia","remove","shiftUp","shiftDn","edit"],data:function(){return{localDescription:this.description||this.attachment.description,nsfwImage:this.$store.state.instance.nsfwCensorImage||E.a,hideNsfwLocal:this.$store.getters.mergedConfig.hideNsfw,preloadImage:this.$store.getters.mergedConfig.preloadImage,loading:!1,img:"image"===L.a.fileType(this.attachment.mimetype)&&document.createElement("img"),modalOpen:!1,showHidden:!1,flashLoaded:!1,showDescription:!1}},components:{Flash:M.a,StillImage:z.a,VideoAttachment:U.a},computed:function(e){for(var t=1;te.openModal&&e.openModal(...t))},["html"!==e.type?(Object(r.D)(),Object(r.j)("a",{key:0,class:"placeholder",target:"_blank",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[0]||(t[0]=Object(r.Y)(()=>{},["prevent"]))},[Object(r.m)(M,{icon:e.placeholderIconClass},null,8,["icon"]),Object(r.k)("b",null,Object(r.O)(e.nsfw?"NSFW / ":""),1),Object(r.l)(Object(r.O)(e.edit?"":e.placeholderName),1)],8,i)):Object(r.i)("",!0),e.edit||e.remove?(Object(r.D)(),Object(r.j)("div",o,[e.remove?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-unstyled attachment-button",onClick:t[1]||(t[1]=Object(r.Y)((...t)=>e.onRemove&&e.onRemove(...t),["prevent"]))},[Object(r.m)(M,{icon:"trash-alt"})])):Object(r.i)("",!0)])):Object(r.i)("",!0),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription||e.showDescription)?(Object(r.D)(),Object(r.j)("div",{key:2,class:Object(r.w)(["description-container",{"-static":!e.edit}])},[e.edit?Object(r.W)((Object(r.D)(),Object(r.j)("input",{key:0,"onUpdate:modelValue":t[2]||(t[2]=t=>e.localDescription=t),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[3]||(t[3]=Object(r.X)(Object(r.Y)(()=>{},["prevent"]),["enter"]))},null,40,s)),[[r.S,e.localDescription]]):(Object(r.D)(),Object(r.j)("p",a,Object(r.O)(e.localDescription),1))],2)):Object(r.i)("",!0)],2)):(Object(r.D)(),Object(r.j)("div",{key:1,class:Object(r.w)(["Attachment",e.classNames])},[Object(r.W)(Object(r.k)("div",c,[e.hidden?(Object(r.D)(),Object(r.j)("a",{key:0,class:"image-container",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[5]||(t[5]=Object(r.Y)((...t)=>e.toggleHidden&&e.toggleHidden(...t),["prevent","stop"]))},[(Object(r.D)(),Object(r.j)("img",{key:e.nsfwImage,class:"nsfw",src:e.nsfwImage},null,8,u)),"video"===e.type?(Object(r.D)(),Object(r.h)(M,{key:0,class:"play-icon",icon:"play-circle"})):Object(r.i)("",!0)],8,l)):Object(r.i)("",!0),e.hidden?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",d,["flash"===e.type&&e.flashLoaded?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-unstyled attachment-button",title:e.$t("status.attachment_stop_flash"),onClick:t[6]||(t[6]=Object(r.Y)((...t)=>e.stopFlash&&e.stopFlash(...t),["prevent"]))},[Object(r.m)(M,{icon:"stop"})],8,p)):Object(r.i)("",!0),e.attachment.description&&"small"!==e.size&&!e.edit&&"unknown"!==e.type?(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_description"),onClick:t[7]||(t[7]=Object(r.Y)((...t)=>e.toggleDescription&&e.toggleDescription(...t),["prevent"]))},[Object(r.m)(M,{icon:"align-right"})],8,h)):Object(r.i)("",!0),e.useModal||"unknown"===e.type?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("button",{key:2,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_in_modal"),onClick:t[8]||(t[8]=Object(r.Y)((...t)=>e.openModalForce&&e.openModalForce(...t),["prevent"]))},[Object(r.m)(M,{icon:"search-plus"})],8,b)),e.nsfw&&e.hideNsfwLocal?(Object(r.D)(),Object(r.j)("button",{key:3,class:"button-unstyled attachment-button",title:e.$t("status.hide_attachment"),onClick:t[9]||(t[9]=Object(r.Y)((...t)=>e.toggleHidden&&e.toggleHidden(...t),["prevent"]))},[Object(r.m)(M,{icon:"times"})],8,m)):Object(r.i)("",!0),e.shiftUp?(Object(r.D)(),Object(r.j)("button",{key:4,class:"button-unstyled attachment-button",title:e.$t("status.move_up"),onClick:t[10]||(t[10]=Object(r.Y)((...t)=>e.onShiftUp&&e.onShiftUp(...t),["prevent"]))},[Object(r.m)(M,{icon:"chevron-left"})],8,f)):Object(r.i)("",!0),e.shiftDn?(Object(r.D)(),Object(r.j)("button",{key:5,class:"button-unstyled attachment-button",title:e.$t("status.move_down"),onClick:t[11]||(t[11]=Object(r.Y)((...t)=>e.onShiftDn&&e.onShiftDn(...t),["prevent"]))},[Object(r.m)(M,{icon:"chevron-right"})],8,O)):Object(r.i)("",!0),e.remove?(Object(r.D)(),Object(r.j)("button",{key:6,class:"button-unstyled attachment-button",title:e.$t("status.remove_attachment"),onClick:t[12]||(t[12]=Object(r.Y)((...t)=>e.onRemove&&e.onRemove(...t),["prevent"]))},[Object(r.m)(M,{icon:"trash-alt"})],8,j)):Object(r.i)("",!0)])),"image"!==e.type||e.hidden&&!e.preloadImage?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("a",{key:2,class:Object(r.w)(["image-container",{"-hidden":e.hidden&&e.preloadImage}]),href:e.attachment.url,target:"_blank",onClick:t[13]||(t[13]=Object(r.Y)((...t)=>e.openModal&&e.openModal(...t),["stop","prevent"]))},[Object(r.m)(U,{class:"image",referrerpolicy:e.referrerpolicy,mimetype:e.attachment.mimetype,src:e.attachment.large_thumb_url||e.attachment.url,"image-load-handler":e.onImageLoad,alt:e.attachment.description},null,8,["referrerpolicy","mimetype","src","image-load-handler","alt"])],10,g)),"unknown"!==e.type||e.hidden?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("a",{key:3,class:"placeholder-container",href:e.attachment.url,target:"_blank"},[Object(r.m)(M,{size:"5x",icon:e.placeholderIconClass},null,8,["icon"]),Object(r.k)("p",null,Object(r.O)(e.localDescription),1)],8,v)),"video"!==e.type||e.hidden?Object(r.i)("",!0):(Object(r.D)(),Object(r.h)(Object(r.L)(e.videoTag),{key:4,class:Object(r.w)(["video-container",{"button-unstyled":"isModal"}]),href:e.attachment.url,onClick:Object(r.Y)(e.openModal,["stop","prevent"])},{default:Object(r.V)(()=>[Object(r.m)(F,{class:"video",attachment:e.attachment,controls:!e.useModal,onPlay:t[14]||(t[14]=t=>e.$emit("play")),onPause:t[15]||(t[15]=t=>e.$emit("pause"))},null,8,["attachment","controls"]),e.useModal?(Object(r.D)(),Object(r.h)(M,{key:0,class:"play-icon",icon:"play-circle"})):Object(r.i)("",!0)]),_:1},8,["href","onClick"])),"audio"!==e.type||e.hidden?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("span",{key:5,class:"audio-container",href:e.attachment.url,onClick:t[18]||(t[18]=Object(r.Y)((...t)=>e.openModal&&e.openModal(...t),["stop","prevent"]))},["audio"===e.type?(Object(r.D)(),Object(r.j)("audio",{key:0,src:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,controls:"",onPlay:t[16]||(t[16]=t=>e.$emit("play")),onPause:t[17]||(t[17]=t=>e.$emit("pause"))},null,40,w)):Object(r.i)("",!0)],8,y)),"html"===e.type&&e.attachment.oembed?(Object(r.D)(),Object(r.j)("div",{key:6,class:"oembed-container",onClick:t[19]||(t[19]=Object(r.Y)((...t)=>e.linkClicked&&e.linkClicked(...t),["prevent"]))},[e.attachment.thumb_url?(Object(r.D)(),Object(r.j)("div",k,[Object(r.k)("img",{src:e.attachment.thumb_url},null,8,_)])):Object(r.i)("",!0),Object(r.k)("div",S,[Object(r.k)("h1",null,[Object(r.k)("a",{href:e.attachment.url},Object(r.O)(e.attachment.oembed.title),9,C)]),Object(r.k)("div",{innerHTML:e.attachment.oembed.oembedHTML},null,8,P)])])):Object(r.i)("",!0),"flash"!==e.type||e.hidden?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("span",{key:7,class:"flash-container",href:e.attachment.url,onClick:t[22]||(t[22]=Object(r.Y)((...t)=>e.openModal&&e.openModal(...t),["stop","prevent"]))},[Object(r.m)(E,{ref:"flash",class:"flash",src:e.attachment.large_thumb_url||e.attachment.url,onPlayerOpened:t[20]||(t[20]=t=>e.setFlashLoaded(!0)),onPlayerClosed:t[21]||(t[21]=t=>e.setFlashLoaded(!1))},null,8,["src"])],8,D))],512),[[r.T,!e.isEmpty]]),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription&&e.showDescription)?(Object(r.D)(),Object(r.j)("div",{key:0,class:Object(r.w)(["description-container",{"-static":!e.edit}])},[e.edit?Object(r.W)((Object(r.D)(),Object(r.j)("input",{key:0,"onUpdate:modelValue":t[23]||(t[23]=t=>e.localDescription=t),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[24]||(t[24]=Object(r.X)(Object(r.Y)(()=>{},["prevent"]),["enter"]))},null,40,x)),[[r.S,e.localDescription]]):(Object(r.D)(),Object(r.j)("p",T,Object(r.O)(e.localDescription),1))],2)):Object(r.i)("",!0)],2))}]]);t.a=J},function(e,t,n){"use strict";var r=n(0);const i=["datetime","title"];var o=n(46),s=n(37),a={name:"Timeago",props:["time","autoUpdate","longFormat","nowThreshold"],data:function(){return{relativeTime:{key:"time.now",num:0},interval:null}},computed:{localeDateString:function(){var e=s.a.internalToBrowserLocale(this.$i18n.locale);return"string"==typeof this.time?new Date(Date.parse(this.time)).toLocaleString(e):this.time.toLocaleString(e)}},created:function(){this.refreshRelativeTimeObject()},unmounted:function(){clearTimeout(this.interval)},methods:{refreshRelativeTimeObject:function(){var e="number"==typeof this.nowThreshold?this.nowThreshold:1;this.relativeTime=this.longFormat?o.d(this.time,e):o.e(this.time,e),this.autoUpdate&&(this.interval=setTimeout(this.refreshRelativeTimeObject,1e3*this.autoUpdate))}}},c=n(4);const l=n.n(c)()(a,[["render",function(e,t,n,o,s,a){return Object(r.D)(),Object(r.j)("time",{datetime:n.time,title:a.localeDateString},Object(r.O)(e.$t(s.relativeTime.key,[s.relativeTime.num])),9,i)}]]);t.a=l},,,,,,,,,,function(e,t,n){"use strict";var r=n(0);const i={class:"list"},o={key:0,class:"list-empty-content faint"};var s={props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}}},a=(n(556),n(4));const c=n.n(a)()(s,[["render",function(e,t,n,s,a,c){return Object(r.D)(),Object(r.j)("div",i,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(n.items,t=>(Object(r.D)(),Object(r.j)("div",{key:n.getKey(t),class:"list-item"},[Object(r.I)(e.$slots,"item",{item:t})]))),128)),0===n.items.length&&e.$slots.empty?(Object(r.D)(),Object(r.j)("div",o,[Object(r.I)(e.$slots,"empty")])):Object(r.i)("",!0)])}]]);t.a=c},function(e,t,n){"use strict";var r,i=n(13),o=n.n(i),s=n(12),a=n.n(s),c=n(10),l=n.n(c),u={ar:function(){return n.e(5).then(n.bind(null,589))},ca:function(){return n.e(6).then(n.bind(null,590))},cs:function(){return n.e(7).then(n.bind(null,591))},de:function(){return n.e(8).then(n.bind(null,592))},eo:function(){return n.e(9).then(n.bind(null,593))},es:function(){return n.e(10).then(n.bind(null,594))},et:function(){return n.e(11).then(n.bind(null,595))},eu:function(){return n.e(12).then(n.bind(null,596))},fi:function(){return n.e(13).then(n.bind(null,597))},fr:function(){return n.e(14).then(n.bind(null,598))},ga:function(){return n.e(15).then(n.bind(null,599))},he:function(){return n.e(16).then(n.bind(null,600))},hu:function(){return n.e(17).then(n.bind(null,601))},it:function(){return n.e(18).then(n.bind(null,602))},ja:function(){return n.e(20).then(n.bind(null,603))},ja_easy:function(){return n.e(19).then(n.bind(null,604))},ko:function(){return n.e(21).then(n.bind(null,605))},nb:function(){return n.e(22).then(n.bind(null,606))},nl:function(){return n.e(23).then(n.bind(null,607))},oc:function(){return n.e(24).then(n.bind(null,608))},pl:function(){return n.e(25).then(n.bind(null,609))},pt:function(){return n.e(26).then(n.bind(null,610))},ro:function(){return n.e(27).then(n.bind(null,611))},ru:function(){return n.e(28).then(n.bind(null,612))},te:function(){return n.e(29).then(n.bind(null,613))},uk:function(){return n.e(30).then(n.bind(null,614))},zh:function(){return n.e(31).then(n.bind(null,615))},zh_Hant:function(){return n.e(32).then(n.bind(null,616))}},d={languages:["en"].concat(a()(Object.keys(u))),default:{en:n(439).default},setLanguage:(r=o()(l.a.mark((function e(t,n){var r;return l.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!u[n]){e.next=5;break}return e.next=3,u[n]();case 3:r=e.sent,t.setLocaleMessage(n,r.default);case 5:t.locale=n;case 6:case"end":return e.stop()}}),e)}))),function(e,t){return r.apply(this,arguments)})};t.a=d},function(e,t,n){"use strict";var r=n(5),i=n.n(r),o=n(0),s=n(8),a=n(68);n(568);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var l=function(e){return e.findIndex((function(e){return e.props}))};t.a={name:"TabSwitcher",props:{renderOnlyFocused:{required:!1,type:Boolean,default:!1},onSwitch:{required:!1,type:Function,default:void 0},activeTab:{required:!1,type:String,default:void 0},scrollableTabs:{required:!1,type:Boolean,default:!1},sideTabBar:{required:!1,type:Boolean,default:!1},bodyScrollLock:{required:!1,type:Boolean,default:!1}},data:function(){return{active:l(this.slots())}},computed:function(e){for(var t=1;t[Object(r.l)(Object(r.O)(e.notification.from_profile.screen_name_ui),1)]),_:1},8,["to"])]),Object(r.k)("button",{class:"button-unstyled unmute",onClick:t[0]||(t[0]=Object(r.Y)((...t)=>e.toggleMute&&e.toggleMute(...t),["prevent"]))},[Object(r.m)(l,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})])])):(Object(r.D)(),Object(r.j)("div",{key:1,class:Object(r.w)(["Notification non-mention",[e.userClass,{highlighted:e.userStyle},"-type--"+e.notification.type]]),style:Object(r.x)([e.userStyle])},[Object(r.k)("a",{class:"avatar-container",href:e.$router.resolve(e.userProfileLink).href,onClickCapture:t[1]||(t[1]=Object(r.Y)((...t)=>e.toggleUserExpanded&&e.toggleUserExpanded(...t),["stop","prevent"]))},[Object(r.m)(u,{compact:!0,"better-shadow":e.betterShadow,user:e.notification.from_profile},null,8,["better-shadow","user"])],40,j),Object(r.k)("div",g,[e.userExpanded?(Object(r.D)(),Object(r.h)(d,{key:0,"user-id":e.getUser(e.notification).id,rounded:!0,bordered:!0},null,8,["user-id"])):Object(r.i)("",!0),Object(r.k)("span",v,[Object(r.k)("div",y,[e.notification.from_profile.name_html?(Object(r.D)(),Object(r.j)("bdi",w,[Object(r.m)(p,{class:"username",title:"@"+e.notification.from_profile.screen_name_ui,html:e.notification.from_profile.name_html,emoji:e.notification.from_profile.emoji},null,8,["title","html","emoji"])])):(Object(r.D)(),Object(r.j)("span",{key:1,class:"username",title:"@"+e.notification.from_profile.screen_name_ui},Object(r.O)(e.notification.from_profile.name),9,k)),_,"like"===e.notification.type?(Object(r.D)(),Object(r.j)("span",S,[Object(r.m)(l,{class:"type-icon",icon:"star"}),C,Object(r.k)("small",null,Object(r.O)(e.$t("notifications.favorited_you")),1)])):Object(r.i)("",!0),"repeat"===e.notification.type?(Object(r.D)(),Object(r.j)("span",P,[Object(r.m)(l,{class:"type-icon",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"]),D,Object(r.k)("small",null,Object(r.O)(e.$t("notifications.repeated_you")),1)])):Object(r.i)("",!0),"follow"===e.notification.type?(Object(r.D)(),Object(r.j)("span",x,[Object(r.m)(l,{class:"type-icon",icon:"user-plus"}),T,Object(r.k)("small",null,Object(r.O)(e.$t("notifications.followed_you")),1)])):Object(r.i)("",!0),"follow_request"===e.notification.type?(Object(r.D)(),Object(r.j)("span",I,[Object(r.m)(l,{class:"type-icon",icon:"user"}),$,Object(r.k)("small",null,Object(r.O)(e.$t("notifications.follow_request")),1)])):Object(r.i)("",!0),"move"===e.notification.type?(Object(r.D)(),Object(r.j)("span",z,[Object(r.m)(l,{class:"type-icon",icon:"suitcase-rolling"}),M,Object(r.k)("small",null,Object(r.O)(e.$t("notifications.migrated_to")),1)])):Object(r.i)("",!0),"pleroma:emoji_reaction"===e.notification.type?(Object(r.D)(),Object(r.j)("span",U,[Object(r.k)("small",null,[Object(r.m)(h,{scope:"global",keypath:"notifications.reacted_with"},{default:Object(r.V)(()=>[null!==e.notification.emoji_url?(Object(r.D)(),Object(r.j)("img",{key:0,src:e.notification.emoji_url,title:e.notification.emoji,class:"reaction-emoji"},null,8,F)):(Object(r.D)(),Object(r.j)("span",E,Object(r.O)(e.notification.emoji),1))]),_:1})])])):Object(r.i)("",!0),"poll"===e.notification.type?(Object(r.D)(),Object(r.j)("span",L,[Object(r.m)(l,{class:"type-icon",icon:"poll-h"}),R,Object(r.k)("small",null,Object(r.O)(e.$t("notifications.poll_ended")),1)])):Object(r.i)("",!0)]),e.isStatusNotification?(Object(r.D)(),Object(r.j)("div",A,[e.notification.status?(Object(r.D)(),Object(r.h)(c,{key:0,to:{name:"conversation",params:{id:e.notification.status.id}},class:"faint-link"},{default:Object(r.V)(()=>[Object(r.m)(b,{time:e.notification.created_at,"auto-update":240},null,8,["time"])]),_:1},8,["to"])):Object(r.i)("",!0)])):(Object(r.D)(),Object(r.j)("div",N,[Object(r.k)("span",B,[Object(r.m)(b,{time:e.notification.created_at,"auto-update":240},null,8,["time"])])])),e.needMute?(Object(r.D)(),Object(r.j)("button",{key:2,class:"button-unstyled",onClick:t[2]||(t[2]=Object(r.Y)((...t)=>e.toggleMute&&e.toggleMute(...t),["prevent"]))},[Object(r.m)(l,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})])):Object(r.i)("",!0)]),"follow"===e.notification.type||"follow_request"===e.notification.type?(Object(r.D)(),Object(r.j)("div",V,[Object(r.m)(c,{to:e.userProfileLink,class:"follow-name"},{default:Object(r.V)(()=>[Object(r.l)(" @"+Object(r.O)(e.notification.from_profile.screen_name_ui),1)]),_:1},8,["to"]),"follow_request"===e.notification.type?(Object(r.D)(),Object(r.j)("div",H,[Object(r.k)("button",{class:"button-unstyled",title:e.$t("tool_tip.accept_follow_request"),onClick:t[3]||(t[3]=t=>e.approveUser())},[Object(r.m)(l,{icon:"check",class:"fa-scale-110 fa-old-padding follow-request-accept"})],8,J),Object(r.k)("button",{class:"button-unstyled",title:e.$t("tool_tip.reject_follow_request"),onClick:t[4]||(t[4]=t=>e.denyUser())},[Object(r.m)(l,{icon:"times",class:"fa-scale-110 fa-old-padding follow-request-reject"})],8,q)])):Object(r.i)("",!0)])):"move"===e.notification.type?(Object(r.D)(),Object(r.j)("div",W,[Object(r.m)(c,{to:e.targetUserProfileLink},{default:Object(r.V)(()=>[Object(r.l)(" @"+Object(r.O)(e.notification.target.screen_name_ui),1)]),_:1},8,["to"])])):(Object(r.D)(),Object(r.h)(m,{key:3,class:"faint",compact:!0,status:e.notification.action},null,8,["status"]))])],6))]))}]]);const ue={class:"dropdown-menu"},de={class:"filter-trigger-button button-unstyled"};var pe=n(24);function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;t[Object(r.k)("div",ue,[Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=e=>s.toggleNotificationFilter("likes"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.likes}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_likes")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=e=>s.toggleNotificationFilter("repeats"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.repeats}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_repeats")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=e=>s.toggleNotificationFilter("follows"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.follows}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_follows")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=e=>s.toggleNotificationFilter("mentions"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.mentions}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_mentions")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=e=>s.toggleNotificationFilter("emojiReactions"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.emojiReactions}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_emoji_reactions")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=e=>s.toggleNotificationFilter("moves"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.moves}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_moves")),1)]),Object(r.k)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=e=>s.toggleNotificationFilter("polls"))},[Object(r.k)("span",{class:Object(r.w)(["menu-checkbox",{"menu-checkbox-checked":s.filters.polls}])},null,2),Object(r.l)(Object(r.O)(e.$t("settings.notification_visibility_polls")),1)])])]),trigger:Object(r.V)(()=>[Object(r.k)("button",de,[Object(r.m)(a,{icon:"filter"})])]),_:1})}]]),Oe=n(98),je=n(100);function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}re.c.add(ie.r);var ve={components:{Notification:le,NotificationFilters:fe},props:{minimalMode:Boolean,filterMode:Array,disableTeleport:Boolean},data:function(){return{bottomedOut:!1,seenToDisplayCount:30}},computed:function(e){for(var t=1;t0?(je.a.drawFaviconBadge(),this.$store.dispatch("setPageTitle","(".concat(e,")"))):(je.a.clearFaviconBadge(),this.$store.dispatch("setPageTitle",""))}},methods:{markAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen"),this.seenToDisplayCount=30},fetchOlderNotifications:function(){var e=this;if(!this.loading){var t=this.filteredNotifications.length-this.unseenCount;if(this.seenToDisplayCountt&&(this.seenToDisplayCount=t);var n=this.$store,r=n.state.users.currentUser.credentials;n.commit("setNotificationsLoading",{value:!0}),Oe.a.fetchAndUpdate({store:n,credentials:r,older:!0}).then((function(t){n.commit("setNotificationsLoading",{value:!1}),0===t.length&&(e.bottomedOut=!0),e.seenToDisplayCount+=t.length}))}}}}};n(552);const ye=ce()(ve,[["render",function(e,t,n,h,b,m){const f=Object(r.J)("NotificationFilters"),O=Object(r.J)("notification"),j=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.h)(r.c,{disabled:e.minimalMode||e.disableTeleport,to:e.teleportTarget},[Object(r.k)("div",{class:Object(r.w)([{minimal:e.minimalMode},"Notifications"])},[Object(r.k)("div",{class:Object(r.w)(e.mainClass)},[e.noHeading?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",i,[Object(r.k)("div",o,[Object(r.l)(Object(r.O)(e.$t("notifications.notifications"))+" ",1),e.unseenCount?(Object(r.D)(),Object(r.j)("span",s,Object(r.O)(e.unseenCount),1)):Object(r.i)("",!0)]),e.unseenCount?(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-default read-button",onClick:t[0]||(t[0]=Object(r.Y)((...t)=>e.markAsSeen&&e.markAsSeen(...t),["prevent"]))},Object(r.O)(e.$t("notifications.read")),1)):Object(r.i)("",!0),Object(r.m)(f)])),Object(r.k)("div",a,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.notificationsToDisplay,t=>(Object(r.D)(),Object(r.j)("div",{key:t.id,class:Object(r.w)(["notification",{unseen:!e.minimalMode&&!t.seen}])},[c,Object(r.m)(O,{notification:t},null,8,["notification"])],2))),128))]),Object(r.k)("div",l,[e.bottomedOut?(Object(r.D)(),Object(r.j)("div",u,Object(r.O)(e.$t("notifications.no_more_notifications")),1)):e.loading?(Object(r.D)(),Object(r.j)("div",p,[Object(r.m)(j,{icon:"circle-notch",spin:"",size:"lg"})])):(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-unstyled -link -fullwidth",onClick:t[1]||(t[1]=Object(r.Y)(t=>e.fetchOlderNotifications(),["prevent"]))},[Object(r.k)("div",d,Object(r.O)(e.minimalMode?e.$t("interactions.load_older"):e.$t("notifications.load_older")),1)]))])],2)],2)],8,["disabled","to"])}]]);t.default=ye},function(e,t,n){"use strict";var r=n(0);const i={class:"gallery-rows"},o={key:0,class:"many-attachments"},s={class:"many-attachments-text"},a={class:"many-attachments-buttons"},c={key:0,class:"many-attachments-button"},l={key:1,class:"many-attachments-button"},u={key:2,class:"many-attachments-button"};var d=n(12),p=n.n(d),h=n(38),b=n.n(h),m=n(133),f=n.n(m),O={props:["attachments","limitRows","descriptions","limit","nsfw","setMedia","size","editable","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","grid"],data:function(){return{sizes:{},hidingLong:!0}},components:{Attachment:n(58).a},computed:{rows:function(){var e=this;if(!this.attachments)return[];var t=this.limit>0?this.attachments.slice(0,this.limit):this.attachments;if("hide"===this.size)return t.map((function(e){return{minimal:!0,items:[e]}}));var n=this.grid?[{grid:!0,items:t}]:t.reduce((function(t,n,r){if(n.mimetype.includes("audio"))return[].concat(p()(t),[{audio:!0,items:[n]},{items:[]}]);if(!(n.mimetype.includes("image")||n.mimetype.includes("video")||n.mimetype.includes("flash")))return[].concat(p()(t),[{minimal:!0,items:[n]},{items:[]}]);var i=e.attachments.length-r+1,o=t[t.length-1].items;return o.push(n),o.length>=3&&i>3?[].concat(p()(t),[{items:[]}]):t}),[{items:[]}]).filter((function(e){return e.items.length>0}));return n},attachmentsDimensionalScore:function(){return this.rows.reduce((function(e,t){var n=0;return t.minimal?n+=1/8:t.audio?n+=1/4:n+=1/(t.items.length+.6),e+n}),0)},tooManyAttachments:function(){return!this.editable&&"small"!==this.size&&("hide"===this.size?this.attachments.length>8:this.attachmentsDimensionalScore>1)}},methods:{onNaturalSizeLoad:function(e){var t=e.id,n=e.width,r=e.height;b()(this.sizes,t,{width:n,height:r})},rowStyle:function(e){return e.audio?{"padding-bottom":"25%"}:e.minimal||e.grid?void 0:{"padding-bottom":"".concat(100/(e.items.length+.6),"%")}},itemStyle:function(e,t){var n=this,r=f()(t,(function(e){return n.getAspectRatio(e.id)}));return{flex:"".concat(this.getAspectRatio(e)/r," 1 0%")}},getAspectRatio:function(e){var t=this.sizes[e];return t?t.width/t.height:1},toggleHidingLong:function(e){this.hidingLong=e},openGallery:function(){this.$store.dispatch("setMedia",this.attachments),this.$store.dispatch("setCurrentMedia",this.attachments[0])},onMedia:function(){this.$store.dispatch("setMedia",this.attachments)}}},j=(n(507),n(4));const g=n.n(j)()(O,[["render",function(e,t,n,d,p,h){const b=Object(r.J)("Attachment");return Object(r.D)(),Object(r.j)("div",{ref:"galleryContainer",class:Object(r.w)(["Gallery",{"-long":e.tooManyAttachments&&e.hidingLong}])},[Object(r.k)("div",i,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.rows,(t,n)=>(Object(r.D)(),Object(r.j)("div",{key:n,class:Object(r.w)(["gallery-row",{"-audio":t.audio,"-minimal":t.minimal,"-grid":e.grid}]),style:Object(r.x)(e.rowStyle(t))},[Object(r.k)("div",{class:Object(r.w)(["gallery-row-inner",{"-grid":e.grid}])},[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(t.items,(i,o)=>(Object(r.D)(),Object(r.h)(b,{key:i.id,class:"gallery-item",nsfw:e.nsfw,attachment:i,size:e.size,editable:e.editable,remove:e.removeAttachment,"shift-up":!(0===o&&0===n)&&e.shiftUpAttachment,"shift-dn":!(o===t.items.length-1&&n===e.rows.length-1)&&e.shiftDnAttachment,edit:e.editAttachment,description:e.descriptions&&e.descriptions[i.id],"hide-description":"small"===e.size||e.tooManyAttachments&&e.hidingLong,style:Object(r.x)(e.itemStyle(i.id,t.items)),onSetMedia:e.onMedia,onNaturalSizeLoad:e.onNaturalSizeLoad},null,8,["nsfw","attachment","size","editable","remove","shift-up","shift-dn","edit","description","hide-description","style","onSetMedia","onNaturalSizeLoad"]))),128))],2)],6))),128))]),e.tooManyAttachments?(Object(r.D)(),Object(r.j)("div",o,[Object(r.k)("div",s,Object(r.O)(e.$t("status.many_attachments",{number:e.attachments.length})),1),Object(r.k)("div",a,[e.hidingLong?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("span",c,[Object(r.k)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=t=>e.toggleHidingLong(!0))},Object(r.O)(e.$t("status.collapse_attachments")),1)])),e.hidingLong?(Object(r.D)(),Object(r.j)("span",l,[Object(r.k)("button",{class:"button-unstyled -link",onClick:t[1]||(t[1]=t=>e.toggleHidingLong(!1))},Object(r.O)(e.$t("status.show_all_attachments")),1)])):Object(r.i)("",!0),e.hidingLong?(Object(r.D)(),Object(r.j)("span",u,[Object(r.k)("button",{class:"button-unstyled -link",onClick:t[2]||(t[2]=(...t)=>e.openGallery&&e.openGallery(...t))},Object(r.O)(e.$t("status.open_gallery")),1)])):Object(r.i)("",!0)])])):Object(r.i)("",!0)],2)}]]);t.a=g},,function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var r=n(0);const i={class:"MentionsLine"},o={key:0,class:"extraMentions"},s={key:0,class:"fullExtraMentions"};var a=n(5),c=n.n(a),l=n(141),u=n(8);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var p=5,h={name:"MentionsLine",props:{mentions:{required:!0,type:Array}},data:function(){return{expanded:!1}},components:{MentionLink:l.a},computed:function(e){for(var t=1;t0}},Object(u.c)(["mergedConfig"])),methods:{toggleShowMore:function(){this.expanded=!this.expanded}}},b=(n(511),n(4));const m=n.n(b)()(h,[["render",function(e,t,n,a,c,l){const u=Object(r.J)("MentionLink");return Object(r.D)(),Object(r.j)("span",i,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.mentionsComputed,e=>(Object(r.D)(),Object(r.h)(u,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"]))),128)),e.manyMentions?(Object(r.D)(),Object(r.j)("span",o,[e.expanded?(Object(r.D)(),Object(r.j)("span",s,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.extraMentions,e=>(Object(r.D)(),Object(r.h)(u,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"]))),128))])):Object(r.i)("",!0),e.expanded?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-unstyled showMoreLess",onClick:t[0]||(t[0]=(...t)=>e.toggleShowMore&&e.toggleShowMore(...t))},Object(r.O)(e.$t("status.plus_more",{number:e.extraMentions.length})),1)),e.expanded?(Object(r.D)(),Object(r.j)("button",{key:2,class:"button-unstyled showMoreLess",onClick:t[1]||(t[1]=(...t)=>e.toggleShowMore&&e.toggleShowMore(...t))},Object(r.O)(e.$t("general.show_less")),1)):Object(r.i)("",!0)])):Object(r.i)("",!0)])}]]);t.b=m},,,,,,,,,,,,,,,function(e,t,n){"use strict";var r={fileSizeFormat:function(e){var t,n=["B","KiB","MiB","GiB","TiB"];return e<1?e+" "+n[0]:(t=Math.min(Math.floor(Math.log(e)/Math.log(1024)),n.length-1),{num:e=1*(e/Math.pow(1024,t)).toFixed(2),unit:n[t]})}};t.a=r},,,function(e,t,n){"use strict";var r=n(12),i=n.n(r),o=n(15),s=n(43),a=function(e){var t=e.store,n=e.credentials,r=e.older,o=void 0!==r&&r,s=e.since,a={credentials:n},l=t.getters,u=(t.rootState||t.state).statuses.notifications,d=l.mergedConfig.hideMutedPosts;if(a.withMuted=!d,a.timeline="notifications",o)return u.minId!==Number.POSITIVE_INFINITY&&(a.until=u.minId),c({store:t,args:a,older:o});void 0===s&&u.maxId!==Number.POSITIVE_INFINITY?a.since=u.maxId:null!==s&&(a.since=s);var p=c({store:t,args:a,older:o}),h=u.data,b=h.filter((function(e){return e.seen})).map((function(e){return e.id}));return h.length-b.length>0&&b.length>0&&(a.since=Math.max.apply(Math,i()(b)),c({store:t,args:a,older:o})),p},c=function(e){var t=e.store,n=e.args,r=e.older;return o.c.fetchTimeline(n).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data;return function(e){var t=e.store,n=e.notifications,r=e.older;t.dispatch("addNewNotifications",{notifications:n,older:r})}({store:t,notifications:n,older:r}),n})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"notifications.error",messageArgs:[e.message],timeout:5e3})}))},l={fetchAndUpdate:a,startFetching:function(e){var t=e.credentials,n=e.store;setTimeout((function(){return n.dispatch("setNotificationsSilence",!1)}),1e4);var r=function(){return a({credentials:t,store:n})};return r(),Object(s.a)(r,2e4)}};t.a=l},,function(e,t,n){"use strict";var r,i,o,s=(r=[],i=function(e){return e.complete&&0!==e.naturalHeight},{initFaviconService:function(){document.querySelectorAll('link[rel="icon"]').forEach((function(e){if(e){var t=document.createElement("canvas");t.width=128,t.height=128;var n=new Image;n.crossOrigin="anonymous",n.src=e.href;var i=t.getContext("2d");r.push({favcanvas:t,favimg:n,favcontext:i,favicon:e})}}))},clearFaviconBadge:o=function(){0!==r.length&&r.forEach((function(e){var t=e.favimg,n=e.favcanvas,r=e.favcontext,o=e.favicon;t&&r&&o&&(r.clearRect(0,0,128,128),i(t)&&r.drawImage(t,0,0,t.width,t.height,0,0,128,128),o.href=n.toDataURL("image/png"))}))},drawFaviconBadge:function(){0!==r.length&&(o(),r.forEach((function(e){var t=e.favimg,n=e.favcanvas,r=e.favcontext,o=e.favicon;if(t&&r&&r){var s=getComputedStyle(document.body),a="".concat(s.getPropertyValue("--badgeNotification")||"rgb(240, 100, 100)");i(t)&&r.drawImage(t,0,0,t.width,t.height,0,0,128,128),r.fillStyle=a,r.beginPath(),r.arc(96,32,32,0,2*Math.PI,!1),r.fill(),o.href=n.toDataURL("image/png")}})))}});t.a=s},,,function(e,t,n){"use strict";var r=n(0);const i=["disabled"];var o={props:{disabled:{type:Boolean},click:{type:Function,default:function(){return Promise.resolve()}}},data:function(){return{progress:!1}},methods:{onClick:function(){var e=this;this.progress=!0,this.click().then((function(){e.progress=!1}))}}},s=n(4);const a=n.n(s)()(o,[["render",function(e,t,n,o,s,a){return Object(r.D)(),Object(r.j)("button",{disabled:s.progress||n.disabled,onClick:t[0]||(t[0]=(...e)=>a.onClick&&a.onClick(...e))},[s.progress&&e.$slots.progress?Object(r.I)(e.$slots,"progress",{key:0}):Object(r.I)(e.$slots,"default",{key:1})],8,i)}]]);t.a=a},,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"b",(function(){return f})),n.d(t,"c",(function(){return O}));var r=n(5),i=n.n(r),o=n(11),s=n.n(o),a=n(315),c=n.n(a),l=n(42),u=n(70),d=n(37);function p(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{},o=r.top,s=void 0===o?0:o,a=r.left,c=void 0===a?0:a,l=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u={top:s+t.offsetTop,left:c+t.offsetLeft};if(!l&&t!==window){var d=i(t),p=d.topPadding,h=d.leftPadding;u.top+=l?0:p,u.left+=l?0:h}if(t.offsetParent&&"sticky"!==window.getComputedStyle(t.offsetParent).position&&(n===window||n.contains(t.offsetParent)||n===t.offsetParent))return e(t.offsetParent,n,u,!1);if(n!==window){var b=i(n),m=b.topPadding,f=b.leftPadding;u.top+=m,u.left+=f}return u},i=function(e){var t=window.getComputedStyle(e)["padding-top"],n=Number(t.substring(0,t.length-2)),r=window.getComputedStyle(e)["padding-left"];return{topPadding:n,leftPadding:Number(r.substring(0,r.length-2))}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i}));var r=function(e){var t=e.filename,n=void 0===t?"data":t,r=e.getExportedObject;return{exportData:function(){var e=JSON.stringify(r(),null,2),t=document.createElement("a");t.setAttribute("download","".concat(n,".json")),t.setAttribute("href","data:application/json;base64,"+window.btoa(e)),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}}},i=function(e){var t=e.onImport,n=e.onImportFailure,r=e.validator,i=void 0===r?function(){return!0}:r;return{importData:function(){var e=document.createElement("input");e.setAttribute("type","file"),e.setAttribute("accept",".json"),e.addEventListener("change",(function(e){if(e.target.files[0]){var r=new FileReader;r.onload=function(e){var r=e.target;try{var o=JSON.parse(r.result),s=i(o);!0===s?t(o):n({validationResult:s})}catch(e){n({error:e})}},r.readAsText(e.target.files[0])}})),document.body.appendChild(e),e.click(),document.body.removeChild(e)}}}},function(e,t,n){"use strict";var r=n(0);const i={class:"Flash"},o={key:0,class:"label"},s={key:1,class:"label"},a={key:2,class:"label"};var c,l=(c=null,{getRuffle:function(){return new Promise((function(e,t){if(c)e(c);else{window.RufflePlayer={},window.RufflePlayer.config={polyfills:!1,publicPath:"/static/ruffle"};var n=document.createElement("script");n.src="/static/ruffle/ruffle.js",n.type="text/javascript",n.onerror=function(e){t(e)},n.onabort=function(e){t(e)},n.oncancel=function(e){t(e)},n.onload=function(){c=window.RufflePlayer,e(c)},document.body.appendChild(n)}}))}}),u=n(6),d=n(3);u.c.add(d.lb,d.z);var p={props:["src"],data:function(){return{player:!1,loaded:!1,ruffleInstance:null}},methods:{openPlayer:function(){var e=this;this.player||(this.player="hidden",l.getRuffle().then((function(t){var n=t.newest().createPlayer();n.config={letterbox:"on"},e.$refs.container.appendChild(n),n.style.width="100%",n.style.height="100%",n.load(e.src).then((function(){e.player=!0})).catch((function(t){console.error("Error loading ruffle",t),e.player="error"})),e.ruffleInstance=n,e.$emit("playerOpened")})))},closePlayer:function(){this.ruffleInstance&&this.ruffleInstance.remove(),this.player=!1,this.$emit("playerClosed")}}},h=(n(505),n(4));const b=n.n(h)()(p,[["render",function(e,t,n,c,l,u){const d=Object(r.J)("FAIcon");return Object(r.D)(),Object(r.j)("div",i,[!0===e.player||"hidden"===e.player?(Object(r.D)(),Object(r.j)("div",{key:0,ref:"container",class:Object(r.w)(["player",{hidden:"hidden"===e.player}])},null,2)):Object(r.i)("",!0),!0!==e.player?(Object(r.D)(),Object(r.j)("button",{key:1,class:"button-unstyled placeholder",onClick:t[0]||(t[0]=(...t)=>e.openPlayer&&e.openPlayer(...t))},["hidden"===e.player?(Object(r.D)(),Object(r.j)("span",o,Object(r.O)(e.$t("general.loading")),1)):Object(r.i)("",!0),"error"===e.player?(Object(r.D)(),Object(r.j)("span",s,Object(r.O)(e.$t("general.flash_fail")),1)):(Object(r.D)(),Object(r.j)("span",a,[Object(r.k)("p",null,Object(r.O)(e.$t("general.flash_content")),1),Object(r.k)("p",null,[Object(r.m)(d,{icon:"exclamation-triangle"}),Object(r.l)(" "+Object(r.O)(e.$t("general.flash_security")),1)])]))])):Object(r.i)("",!0)])}]]);t.a=b},function(e,t,n){"use strict";var r=n(0);const i=["disabled","title"];var o=n(11),s=n.n(o),a=function(e,t){return new Promise((function(n,r){t.state.api.backendInteractor.followUser({id:e}).then((function(e){if(t.commit("updateUserRelationship",[e]),!(e.following||e.locked&&e.requested))return function e(t,n,r){return new Promise((function(e,i){setTimeout((function(){r.state.api.backendInteractor.fetchUserRelationship({id:n}).then((function(e){return r.commit("updateUserRelationship",[e]),e})).then((function(n){return e([n.following,n.requested,n.locked,t])})).catch((function(e){return i(e)}))}),500)})).then((function(t){var i=s()(t,4),o=i[0],a=i[1],c=i[2],l=i[3];o||c&&a||!(l<=3)||e(++l,n,r)}))}(1,e,t).then((function(){n()}));n()}))}))},c={props:["relationship","user","labelFollowing","buttonClass"],data:function(){return{inProgress:!1}},computed:{isPressed:function(){return this.inProgress||this.relationship.following},title:function(){return this.inProgress||this.relationship.following?this.$t("user_card.follow_unfollow"):this.relationship.requested?this.$t("user_card.follow_cancel"):this.$t("user_card.follow")},label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.relationship.following?this.labelFollowing||this.$t("user_card.following"):this.relationship.requested?this.$t("user_card.follow_sent"):this.$t("user_card.follow")},disabled:function(){return this.inProgress||this.user.deactivated}},methods:{onClick:function(){this.relationship.following||this.relationship.requested?this.unfollow():this.follow()},follow:function(){var e=this;this.inProgress=!0,a(this.relationship.id,this.$store).then((function(){e.inProgress=!1}))},unfollow:function(){var e=this,t=this.$store;this.inProgress=!0,function(e,t){return new Promise((function(n,r){t.state.api.backendInteractor.unfollowUser({id:e}).then((function(e){t.commit("updateUserRelationship",[e]),n({updated:e})}))}))}(this.relationship.id,t).then((function(){e.inProgress=!1,t.commit("removeStatus",{timeline:"friends",userId:e.relationship.id})}))}}},l=n(4);const u=n.n(l)()(c,[["render",function(e,t,n,o,s,a){return Object(r.D)(),Object(r.j)("button",{class:Object(r.w)(["btn button-default follow-button",{toggled:e.isPressed}]),disabled:e.disabled,title:e.title,onClick:t[0]||(t[0]=(...t)=>e.onClick&&e.onClick(...t))},Object(r.O)(e.label),11,i)}]]);t.a=u},function(e,t,n){"use strict";var r=n(0);const i=["src","loop","controls","alt","title"];var o={props:["attachment","controls"],data:function(){return{blocksSuspend:!1,hasAudio:!0}},computed:{loopVideo:function(){return this.$store.getters.mergedConfig.loopVideoSilentOnly?!this.hasAudio:this.$store.getters.mergedConfig.loopVideo}},methods:{onPlaying:function(e){this.setHasAudio(e),this.loopVideo?this.$emit("play",{looping:!0}):this.$emit("play")},onPaused:function(e){this.$emit("pause")},setHasAudio:function(e){var t=e.srcElement||e.target;this.hasAudio&&(void 0!==t.webkitAudioDecodedByteCount&&t.webkitAudioDecodedByteCount>0||void 0!==t.mozHasAudio&&t.mozHasAudio||void 0!==t.audioTracks&&t.audioTracks.length>0||(this.hasAudio=!1))}}},s=n(4);const a=n.n(s)()(o,[["render",function(e,t,n,o,s,a){return Object(r.D)(),Object(r.j)("video",{class:"video",preload:"metadata",src:e.attachment.url,loop:e.loopVideo,controls:e.controls,alt:e.attachment.description,title:e.attachment.description,playsinline:"",onPlaying:t[0]||(t[0]=(...t)=>e.onPlaying&&e.onPlaying(...t)),onPause:t[1]||(t[1]=(...t)=>e.onPaused&&e.onPaused(...t))},null,40,i)}]]);t.a=a},function(e,t,n){"use strict";var r=n(0);const i={class:"MentionLink"},o=["href","innerHTML"],s=["href"],a={class:"shortName"},c=Object(r.l)("@"),l=["innerHTML"],u=["innerHTML"],d={class:"userNameFull"},p=Object(r.l)(" @"),h=["innerHTML"],b=["innerHTML"];var m=n(49),f=n.n(m),O=n(5),j=n.n(O),g=n(23),v=n(8),y=n(40),w=n(22),k=n(6),_=n(3),S=["backgroundColor","backgroundPosition","backgroundImage"];function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;te.onClick&&e.onClick(...t),["prevent"]))},[Object(r.k)("span",a,[c,Object(r.k)("span",{class:"userName",innerHTML:e.userName},null,8,l),e.shouldShowFullUserName?(Object(r.D)(),Object(r.j)("span",{key:0,class:Object(r.w)(["serverName",{"-faded":e.shouldFadeDomain}]),innerHTML:"@"+e.serverName},null,10,u)):Object(r.i)("",!0)]),e.isYou&&e.shouldShowYous?(Object(r.D)(),Object(r.j)("span",{key:0,class:Object(r.w)({"-you":e.shouldBoldenYou})},Object(r.O)(" "+e.$t("status.you")),3)):Object(r.i)("",!0)],10,s),e.shouldShowTooltip?(Object(r.D)(),Object(r.j)("span",{key:0,class:Object(r.w)(["full popover-default",[e.highlightType]])},[Object(r.k)("span",d,[p,Object(r.k)("span",{class:"userName",innerHTML:e.userName},null,8,h),Object(r.k)("span",{class:Object(r.w)(["serverName",{"-faded":e.shouldFadeDomain}]),innerHTML:"@"+e.serverName},null,10,b)])],2)):Object(r.i)("",!0)],6)):Object(r.i)("",!0)])}]]);t.a=T},function(e,t,n){"use strict";var r=n(0);const i=["href"],o={key:0,class:"card-image"},s=["src"],a={class:"card-content"},c={class:"card-host faint"},l={key:0,class:"nsfw-alert alert warning"},u={class:"card-title"},d={key:0,class:"card-description"};var p=n(5),h=n.n(p),b=n(8);function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var f={name:"LinkPreview",props:["card","size","nsfw"],data:function(){return{imageLoaded:!1}},computed:function(e){for(var t=1;t(Object(r.D)(),Object(r.h)(l,{key:t.id,to:e.userProfileLink(t),class:"avatars-item"},{default:Object(r.V)(()=>[Object(r.m)(c,{user:t,class:"avatar-small"},null,8,["user"])]),_:2},1032,["to"]))),128))])}]]);t.a=l},,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=n(13),i=n.n(r),o=n(10),s=n.n(o);t.a=function(e){var t=a(e.emoji),n=e.store&&c(e.store);return function(r){var i=r[0];return":"===i&&e.emoji?t(r):"@"===i&&n?n(r):[]}};var a=function(e){return function(t){var n=t.toLowerCase().substr(1);return e.filter((function(e){return e.displayText.toLowerCase().match(n)})).sort((function(e,t){var r=0,i=0;return r+=e.displayText.toLowerCase()===n?200:0,i+=t.displayText.toLowerCase()===n?200:0,r+=e.imageUrl?100:0,i+=t.imageUrl?100:0,r+=e.displayText.toLowerCase().startsWith(n)?10:0,i+=t.displayText.toLowerCase().startsWith(n)?10:0,r-=e.displayText.length,(i-=t.displayText.length)-r+(e.displayText>t.displayText?.5:-.5)}))}},c=function(e){var t,n=e.dispatch,r=e.state,o=[],a="",c=null,l=null,u=function(e){return l&&l(),new Promise((function(t,r){c=setTimeout((function(){(function(e){return n("searchUsers",{query:e})})(e).then(t).catch(r)}),300),l=function(){clearTimeout(c),t([])}}))};return t=i()(s.a.mark((function e(t){var n,i;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.toLowerCase().substr(1),a!==n){e.next=3;break}return e.abrupt("return",o);case 3:if(o=[],a=n,n.includes("@")){e.next=8;break}return e.next=8,u(n);case 8:return i=r.users.users.filter((function(e){return e.screen_name.toLowerCase().startsWith(n)||e.name.toLowerCase().startsWith(n)})).slice(0,20).sort((function(e,t){var r=0,i=0;return r+=e.screen_name.toLowerCase().startsWith(n)?2:0,i+=t.screen_name.toLowerCase().startsWith(n)?2:0,r+=e.name.toLowerCase().startsWith(n)?1:0,10*((i+=t.name.toLowerCase().startsWith(n)?1:0)-r)+(e.name>t.name?1:-1)+(e.screen_name>t.screen_name?1:-1)})).map((function(e){var t=e.screen_name;return{displayText:e.screen_name_ui,detailText:e.name,imageUrl:e.profile_image_url_original,replacement:"@"+t+" "}})),o=i||[],e.abrupt("return",o);case 11:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)}}},,,,,,,function(e,t,n){"use strict";var r=n(0);const i={for:"interface-language-switcher"},o=Object(r.l)(" "+Object(r.O)(" ")+" "),s=["value"];var a=n(37),c={components:{Select:n(52).a},props:{promptText:{type:String,required:!0},language:{type:String,required:!0},setLanguage:{type:Function,required:!0}},computed:{languages:function(){return a.a.languages},controlledLanguage:{get:function(){return this.language},set:function(e){this.setLanguage(e)}}},methods:{getLanguageName:function(e){return a.a.getLanguageName(e)}}},l=n(4);const u=n.n(l)()(c,[["render",function(e,t,n,a,c,l){const u=Object(r.J)("Select");return Object(r.D)(),Object(r.j)("div",null,[Object(r.k)("label",i,Object(r.O)(n.promptText),1),o,Object(r.m)(u,{id:"interface-language-switcher",modelValue:l.controlledLanguage,"onUpdate:modelValue":t[0]||(t[0]=e=>l.controlledLanguage=e)},{default:Object(r.V)(()=>[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(l.languages,e=>(Object(r.D)(),Object(r.j)("option",{key:e.code,value:e.code},Object(r.O)(e.name),9,s))),128))]),_:1},8,["modelValue"])])}]]);t.a=u},function(e,t,n){"use strict";var r=n(0);const i={key:0,class:"ScopeSelector"},o=["title"],s=Object(r.l)(" "+Object(r.O)(" ")+" "),a=["title"],c=Object(r.l)(" "+Object(r.O)(" ")+" "),l=["title"],u=Object(r.l)(" "+Object(r.O)(" ")+" "),d=["title"],p=["title"];var h=n(6),b=n(3);h.c.add(b.y,b.I,b.O,b.P);var m={props:["showAll","userDefault","originalScope","initialScope","onScopeChange"],data:function(){return{currentScope:this.initialScope}},computed:{showNothing:function(){return!(this.showPublic||this.showUnlisted||this.showPrivate||this.showDirect)},showPublic:function(){return"direct"!==this.originalScope&&this.shouldShow("public")},showLocal:function(){return"direct"!==this.originalScope&&this.shouldShow("local")},showUnlisted:function(){return"direct"!==this.originalScope&&this.shouldShow("unlisted")},showPrivate:function(){return"direct"!==this.originalScope&&this.shouldShow("private")},showDirect:function(){return this.shouldShow("direct")},css:function(){return{public:{selected:"public"===this.currentScope},unlisted:{selected:"unlisted"===this.currentScope},private:{selected:"private"===this.currentScope},direct:{selected:"direct"===this.currentScope},local:{selected:"local"===this.currentScope}}}},methods:{shouldShow:function(e){return this.showAll||this.currentScope===e||this.originalScope===e||this.userDefault===e||"direct"===e},changeVis:function(e){this.currentScope=e,this.onScopeChange&&this.onScopeChange(e)}}},f=(n(498),n(4));const O=n.n(f)()(m,[["render",function(e,t,n,h,b,m){const f=Object(r.J)("FAIcon");return e.showNothing?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("div",i,[e.showDirect?(Object(r.D)(),Object(r.j)("button",{key:0,class:Object(r.w)(["button-unstyled scope",e.css.direct]),title:e.$t("post_status.scope.direct"),type:"button",onClick:t[0]||(t[0]=t=>e.changeVis("direct"))},[Object(r.m)(f,{icon:"envelope",class:"fa-scale-110 fa-old-padding"})],10,o)):Object(r.i)("",!0),s,e.showPrivate?(Object(r.D)(),Object(r.j)("button",{key:1,class:Object(r.w)(["button-unstyled scope",e.css.private]),title:e.$t("post_status.scope.private"),type:"button",onClick:t[1]||(t[1]=t=>e.changeVis("private"))},[Object(r.m)(f,{icon:"lock",class:"fa-scale-110 fa-old-padding"})],10,a)):Object(r.i)("",!0),c,e.showUnlisted?(Object(r.D)(),Object(r.j)("button",{key:2,class:Object(r.w)(["button-unstyled scope",e.css.unlisted]),title:e.$t("post_status.scope.unlisted"),type:"button",onClick:t[2]||(t[2]=t=>e.changeVis("unlisted"))},[Object(r.m)(f,{icon:"lock-open",class:"fa-scale-110 fa-old-padding"})],10,l)):Object(r.i)("",!0),u,e.showPublic?(Object(r.D)(),Object(r.j)("button",{key:3,class:Object(r.w)(["button-unstyled scope",e.css.public]),title:e.$t("post_status.scope.public"),type:"button",onClick:t[3]||(t[3]=t=>e.changeVis("public"))},[Object(r.m)(f,{icon:"globe",class:"fa-scale-110 fa-old-padding"})],10,d)):Object(r.i)("",!0),e.showLocal?(Object(r.D)(),Object(r.j)("button",{key:4,class:Object(r.w)(["button-unstyled scope",e.css.local]),title:e.$t("post_status.scope.local"),type:"button",onClick:t[4]||(t[4]=t=>e.changeVis("local"))},[Object(r.m)(f,{icon:"users",class:"fa-scale-110 fa-old-padding"})],10,p)):Object(r.i)("",!0)]))}]]);t.a=O},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"b",(function(){return m}));var r=n(11),i=n.n(r),o=n(5),s=n.n(o),a=n(38),c=n.n(a),l=n(16),u=n.n(l);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var p=function(e,t){var n=e.rootState,r=e.commit,i=t.path,o=t.value,s={};return c()(s,i,o),n.api.backendInteractor.updateProfile({params:s}).then((function(e){r("addNewUsers",[e]),r("setCurrentUser",e)}))},h=function(e,t){var n=e.rootState,r=e.commit,i=t.path,o=t.value,s=t.oldValue,a={};return c()(a,i,o),n.api.backendInteractor.updateNotificationSettings({settings:a}).then((function(e){"success"===e.status?r("confirmServerSideOption",{name:name,value:o}):r("confirmServerSideOption",{name:name,value:s})}))},b={defaultScope:"source.privacy",defaultNSFW:"source.sensitive",stripRichContent:{get:"source.pleroma.no_rich_text",set:"no_rich_text"},locked:"locked",acceptChatMessages:{get:"pleroma.accepts_chat_messages",set:"accepts_chat_messages"},allowFollowingMove:{get:"pleroma.allow_following_move",set:"allow_following_move"},discoverable:{get:"source.pleroma.discoverable",set:"discoverable"},hideFavorites:{get:"pleroma.hide_favorites",set:"hide_favorites"},hideFollowers:{get:"pleroma.hide_followers",set:"hide_followers"},hideFollows:{get:"pleroma.hide_follows",set:"hide_follows"},hideFollowersCount:{get:"pleroma.hide_followers_count",set:"hide_followers_count"},hideFollowsCount:{get:"pleroma.hide_follows_count",set:"hide_follows_count"},webPushHideContents:{get:"pleroma.notification_settings.hide_notification_contents",set:"hide_notification_contents",api:h},blockNotificationsFromStrangers:{get:"pleroma.notification_settings.block_from_strangers",set:"block_from_strangers",api:h}},m=Object.fromEntries(Object.keys(b).map((function(e){return[e,null]}))),f={state:function(e){for(var t=1;t0){var r=e.pop();n.start+=r.end,n.end+=r.end,e.push(r)}return e.push(n),e}),[])},P=function(e){for(var t=[],n="",r=0;rt}))},addPositionToWords:C,splitByWhitespaceBoundary:P,replaceWord:function(e,t,n){return e.slice(0,t.start)+n+e.slice(t.end)}};const x={class:"emoji-picker panel panel-default panel-body"},T={class:"heading"},I={class:"emoji-tabs"},$=["title","onClick"],z={key:0,class:"additional-tabs"},M=["title"],U={class:"content"},F={class:"emoji-search"},E=["placeholder"],L=["title","onClick"],R={key:0},A=["src"],N={class:"keep-open"},B={key:0,class:"stickers-content"};var V=n(51),H=n(6),J=n(3);function q(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return W(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return W(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function W(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:"";if(""===t)return e;var n,r=t.toLowerCase(),i=[],o=q(e);try{for(o.s();!(n=o.n()).done;){var s=n.value,a=s.displayText.toLowerCase().indexOf(r);a>-1&&(Array.isArray(i[a])||(i[a]=[]),i[a].push(s))}}catch(e){o.e(e)}finally{o.f()}return i.flat()},G={props:{enableStickerPicker:{required:!1,type:Boolean,default:!1}},data:function(){return{keyword:"",activeGroup:"custom",showingStickers:!1,groupsScrolledClass:"scrolled-top",keepOpen:!1,customEmojiBufferSlice:60,customEmojiTimeout:null,customEmojiLoadAllConfirmed:!1}},components:{StickerPicker:Object(r.n)((function(){return n.e(4).then(n.bind(null,703))})),Checkbox:V.a},methods:{onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-failed",e)},onEmoji:function(e){var t=e.imageUrl?":".concat(e.displayText,":"):e.replacement;this.$emit("emoji",{insertion:t,keepOpen:this.keepOpen})},onScroll:function(e){var t=e&&e.target||this.$refs["emoji-groups"];this.updateScrolledClass(t),this.scrolledGroup(t),this.triggerLoadMore(t)},highlight:function(e){var t=this,n=this.$refs["group-"+e].offsetTop;this.setShowStickers(!1),this.activeGroup=e,this.$nextTick((function(){t.$refs["emoji-groups"].scrollTop=n+1}))},updateScrolledClass:function(e){e.scrollTop<=5?this.groupsScrolledClass="scrolled-top":e.scrollTop>=e.scrollTopMax-5?this.groupsScrolledClass="scrolled-bottom":this.groupsScrolledClass="scrolled-middle"},triggerLoadMore:function(e){var t=this.$refs["group-end-custom"];if(t){var n=t.offsetTop+t.offsetHeight,r=e.scrollTop+e.clientHeight,i=e.scrollTop,o=e.scrollHeight;n0&&void 0!==arguments[0]&&arguments[0];t||(this.keyword=""),this.$nextTick((function(){e.$refs["emoji-groups"].scrollTop=0}));var n=this.customEmojiBuffer.length,r=n===this.filteredEmoji.length;r&&!t||(this.customEmojiBufferSlice=60)},toggleStickers:function(){this.showingStickers=!this.showingStickers},setShowStickers:function(e){this.showingStickers=e}},watch:{keyword:function(){this.customEmojiLoadAllConfirmed=!1,this.onScroll(),this.startEmojiLoad(!0)}},computed:{activeGroupView:function(){return this.showingStickers?"":this.activeGroup},stickersAvailable:function(){return this.$store.state.instance.stickers?this.$store.state.instance.stickers.length>0:0},filteredEmoji:function(){return Y(this.$store.state.instance.customEmoji||[],this.keyword)},customEmojiBuffer:function(){return this.filteredEmoji.slice(0,this.customEmojiBufferSlice)},emojis:function(){var e=this.$store.state.instance.emoji||[],t=this.customEmojiBuffer;return[{id:"custom",text:this.$t("emoji.custom"),icon:"smile-beam",emojis:t},{id:"standard",text:this.$t("emoji.unicode"),icon:"box-open",emojis:Y(e,this.keyword)}]},emojisView:function(){return this.emojis.filter((function(e){return e.emojis.length>0}))},stickerPickerEnabled:function(){return 0!==(this.$store.state.instance.stickers||[]).length}}},K=(n(500),n(4)),X=n.n(K);var Z=X()(G,[["render",function(e,t,n,i,o,s){const a=Object(r.J)("FAIcon"),c=Object(r.J)("Checkbox"),l=Object(r.J)("sticker-picker");return Object(r.D)(),Object(r.j)("div",x,[Object(r.k)("div",T,[Object(r.k)("span",I,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.emojis,t=>(Object(r.D)(),Object(r.j)("span",{key:t.id,class:Object(r.w)(["emoji-tabs-item",{active:e.activeGroupView===t.id,disabled:0===t.emojis.length}]),title:t.text,onClick:Object(r.Y)(n=>e.highlight(t.id),["prevent"])},[Object(r.m)(a,{icon:t.icon,"fixed-width":""},null,8,["icon"])],10,$))),128))]),e.stickerPickerEnabled?(Object(r.D)(),Object(r.j)("span",z,[Object(r.k)("span",{class:Object(r.w)(["stickers-tab-icon additional-tabs-item",{active:e.showingStickers}]),title:e.$t("emoji.stickers"),onClick:t[0]||(t[0]=Object(r.Y)((...t)=>e.toggleStickers&&e.toggleStickers(...t),["prevent"]))},[Object(r.m)(a,{icon:"sticky-note","fixed-width":""})],10,M)])):Object(r.i)("",!0)]),Object(r.k)("div",U,[Object(r.k)("div",{class:Object(r.w)(["emoji-content",{hidden:e.showingStickers}])},[Object(r.k)("div",F,[Object(r.W)(Object(r.k)("input",{"onUpdate:modelValue":t[1]||(t[1]=t=>e.keyword=t),type:"text",class:"form-control",placeholder:e.$t("emoji.search_emoji")},null,8,E),[[r.S,e.keyword]])]),Object(r.k)("div",{ref:"emoji-groups",class:Object(r.w)(["emoji-groups",e.groupsScrolledClass]),onScroll:t[2]||(t[2]=(...t)=>e.onScroll&&e.onScroll(...t))},[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.emojisView,t=>(Object(r.D)(),Object(r.j)("div",{key:t.id,class:"emoji-group"},[Object(r.k)("h6",{ref_for:!0,ref:"group-"+t.id,class:"emoji-group-title"},Object(r.O)(t.text),513),(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(t.emojis,n=>(Object(r.D)(),Object(r.j)("span",{key:t.id+n.displayText,title:n.displayText,class:"emoji-item",onClick:Object(r.Y)(t=>e.onEmoji(n),["stop","prevent"])},[n.imageUrl?(Object(r.D)(),Object(r.j)("img",{key:1,src:n.imageUrl},null,8,A)):(Object(r.D)(),Object(r.j)("span",R,Object(r.O)(n.replacement),1))],8,L))),128)),Object(r.k)("span",{ref_for:!0,ref:"group-end-"+t.id},null,512)]))),128))],34),Object(r.k)("div",N,[Object(r.m)(c,{modelValue:e.keepOpen,"onUpdate:modelValue":t[3]||(t[3]=t=>e.keepOpen=t)},{default:Object(r.V)(()=>[Object(r.l)(Object(r.O)(e.$t("emoji.keep_open")),1)]),_:1},8,["modelValue"])])],2),e.showingStickers?(Object(r.D)(),Object(r.j)("div",B,[Object(r.m)(l,{onUploaded:e.onStickerUploaded,onUploadFailed:e.onStickerUploadFailed},null,8,["onUploaded","onUploadFailed"])])):Object(r.i)("",!0)])])}]]),Q=n(136),ee=n(39),te=["imageUrl"];function ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function re(e){for(var t=1;t0&&!this.showPicker&&!this.temporarilyHideSuggestions},textAtCaret:function(){return(this.wordAtCaret||{}).word||""},wordAtCaret:function(){if(this.modelValue&&this.caret)return D.wordAtPosition(this.modelValue,this.caret-1)||{}}},mounted:function(){var e=this.$refs.root,t=e.querySelector(".emoji-input > input")||e.querySelector(".emoji-input > textarea");t&&(this.input=t,this.resize(),t.addEventListener("blur",this.onBlur),t.addEventListener("focus",this.onFocus),t.addEventListener("paste",this.onPaste),t.addEventListener("keyup",this.onKeyUp),t.addEventListener("keydown",this.onKeyDown),t.addEventListener("click",this.onClickInput),t.addEventListener("transitionend",this.onTransition),t.addEventListener("input",this.onInput))},unmounted:function(){var e=this.input;e&&(e.removeEventListener("blur",this.onBlur),e.removeEventListener("focus",this.onFocus),e.removeEventListener("paste",this.onPaste),e.removeEventListener("keyup",this.onKeyUp),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("click",this.onClickInput),e.removeEventListener("transitionend",this.onTransition),e.removeEventListener("input",this.onInput))},watch:{showSuggestions:function(e){this.$emit("shown",e)},textAtCaret:(ie=O()(y.a.mark((function e(t){var n,r;return y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.charAt(0),this.suggestions=[],t!==n){e.next=4;break}return e.abrupt("return");case 4:return e.next=6,this.suggest(t);case 6:if(r=e.sent,this.textAtCaret===t){e.next=9;break}return e.abrupt("return");case 9:if(!(r.length<=0)){e.next=11;break}return e.abrupt("return");case 11:this.suggestions=g()(r,5).map((function(e){var t=e.imageUrl;return re(re({},m()(e,te)),{},{img:t||""})}));case 12:case"end":return e.stop()}}),e,this)}))),function(e){return ie.apply(this,arguments)}),suggestions:{handler:function(e){this.$nextTick(this.resize)},deep:!0}},methods:{focusPickerInput:function(){var e=this.$refs.picker.$el;if(e){var t=e.querySelector("input");t&&t.focus()}},triggerShowPicker:function(){var e=this;this.showPicker=!0,this.$refs.picker.startEmojiLoad(),this.$nextTick((function(){e.scrollIntoView(),e.focusPickerInput()})),this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0)},togglePicker:function(){this.input.focus(),this.showPicker=!this.showPicker,this.showPicker&&(this.scrollIntoView(),this.$refs.picker.startEmojiLoad(),this.$nextTick(this.focusPickerInput))},replace:function(e){var t=D.replaceWord(this.modelValue,this.wordAtCaret,e);this.$emit("update:modelValue",t),this.caret=0},insert:function(e){var t=e.insertion,n=e.keepOpen,r=e.surroundingSpace,i=void 0===r||r,o=this.modelValue.substring(0,this.caret)||"",s=this.modelValue.substring(this.caret)||"",a=/\s/,c=i&&!a.exec(o.slice(-1))&&o.length&&this.padEmoji>0?" ":"",l=i&&!a.exec(s[0])&&this.padEmoji?" ":"",u=[o,c,t,l,s].join("");this.keepOpen=n,this.$emit("update:modelValue",u);var d=this.caret+(t+l+c).length;n||this.input.focus(),this.$nextTick((function(){this.input.setSelectionRange(d,d),this.caret=d}))},replaceText:function(e,t){var n=this.suggestions.length||0;if(1!==this.textAtCaret.length&&(n>0||t)){var r=(t||this.suggestions[this.highlighted]).replacement,i=D.replaceWord(this.modelValue,this.wordAtCaret,r);this.$emit("update:modelValue",i),this.highlighted=0;var o=this.wordAtCaret.start+r.length;this.$nextTick((function(){this.input.focus(),this.input.setSelectionRange(o,o),this.caret=o})),e.preventDefault()}},cycleBackward:function(e){(this.suggestions.length||0)>1?(this.highlighted-=1,this.highlighted<0&&(this.highlighted=this.suggestions.length-1),e.preventDefault()):this.highlighted=0},cycleForward:function(e){var t=this.suggestions.length||0;t>1?(this.highlighted+=1,this.highlighted>=t&&(this.highlighted=0),e.preventDefault()):this.highlighted=0},scrollIntoView:function(){var e=this,t=this.$refs.picker.$el,n=this.$el.closest(".sidebar-scroller")||this.$el.closest(".post-form-modal-view")||window,r=n===window?n.scrollY:n.scrollTop,i=r+(n===window?n.innerHeight:n.offsetHeight),o=t.offsetHeight+Object(Q.a)(t,n).top,s=r+Math.max(0,o-i);n===window?n.scroll(0,s):n.scrollTop=s,this.$nextTick((function(){var t=e.input.offsetHeight,n=e.$refs.picker;n.$el.getBoundingClientRect().bottom>window.innerHeight&&(n.$el.style.top="auto",n.$el.style.bottom=t+"px")}))},onTransition:function(e){this.resize()},onBlur:function(e){var t=this;this.blurTimeout=setTimeout((function(){t.focused=!1,t.setCaret(e),t.resize()}),200)},onClick:function(e,t){this.replaceText(e,t)},onFocus:function(e){this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.keepOpen||(this.showPicker=!1),this.focused=!0,this.setCaret(e),this.resize(),this.temporarilyHideSuggestions=!1},onKeyUp:function(e){var t=e.key;this.setCaret(e),this.resize(),this.temporarilyHideSuggestions="Escape"===t},onPaste:function(e){this.setCaret(e),this.resize()},onKeyDown:function(e){var t=this,n=e.ctrlKey,r=e.shiftKey,i=e.key;this.newlineOnCtrlEnter&&n&&"Enter"===i&&(this.insert({insertion:"\n",surroundingSpace:!1}),e.stopPropagation(),e.preventDefault(),this.$nextTick((function(){t.input.blur(),t.input.focus()}))),this.temporarilyHideSuggestions||("Tab"===i&&(r?this.cycleBackward(e):this.cycleForward(e)),"ArrowUp"===i?this.cycleBackward(e):"ArrowDown"===i&&this.cycleForward(e),"Enter"===i&&(n||this.replaceText(e))),"Escape"===i&&(this.temporarilyHideSuggestions||this.input.focus()),this.showPicker=!1,this.resize()},onInput:function(e){this.showPicker=!1,this.setCaret(e),this.resize(),this.$emit("update:modelValue",e.target.value)},onClickInput:function(e){this.showPicker=!1},onClickOutside:function(e){this.disableClickOutside||(this.showPicker=!1)},onStickerUploaded:function(e){this.showPicker=!1,this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.showPicker=!1,this.$emit("sticker-upload-Failed",e)},setCaret:function(e){var t=e.target.selectionStart;this.caret=t},resize:function(){var e=this.$refs.panel;if(e){var t=this.$refs.picker.$el,n=this.$refs["panel-body"],r=this.input,i=r.offsetHeight,o=r.offsetTop+i;this.setPlacement(n,e,o),this.setPlacement(t,t,o)}},setPlacement:function(e,t,n){e&&t&&(t.style.top=n+"px",t.style.bottom="auto",("top"===this.placement||"auto"===this.placement&&this.overflowsBottom(e))&&(t.style.top="auto",t.style.bottom=this.input.offsetHeight+"px"))},overflowsBottom:function(e){return e.getBoundingClientRect().bottom>window.innerHeight}}};n(501);const se=X()(oe,[["render",function(e,t,n,p,h,b){const m=Object(r.J)("FAIcon"),f=Object(r.J)("EmojiPicker"),O=Object(r.K)("click-outside");return Object(r.W)((Object(r.D)(),Object(r.j)("div",{ref:"root",class:Object(r.w)(["emoji-input",{"with-picker":!e.hideEmojiButton}])},[Object(r.I)(e.$slots,"default"),e.enableEmojiPicker?(Object(r.D)(),Object(r.j)(r.a,{key:0},[e.hideEmojiButton?Object(r.i)("",!0):(Object(r.D)(),Object(r.j)("button",{key:0,class:"button-unstyled emoji-picker-icon",type:"button",onClick:t[0]||(t[0]=Object(r.Y)((...t)=>e.togglePicker&&e.togglePicker(...t),["prevent"]))},[Object(r.m)(m,{icon:["far","smile-beam"]})])),e.enableEmojiPicker?(Object(r.D)(),Object(r.h)(f,{key:1,ref:"picker",class:Object(r.w)([{hide:!e.showPicker},"emoji-picker-panel"]),"enable-sticker-picker":e.enableStickerPicker,onEmoji:e.insert,onStickerUploaded:e.onStickerUploaded,onStickerUploadFailed:e.onStickerUploadFailed},null,8,["class","enable-sticker-picker","onEmoji","onStickerUploaded","onStickerUploadFailed"])):Object(r.i)("",!0)],64)):Object(r.i)("",!0),Object(r.k)("div",{ref:"panel",class:Object(r.w)(["autocomplete-panel",{hide:!e.showSuggestions}])},[Object(r.k)("div",i,[(Object(r.D)(!0),Object(r.j)(r.a,null,Object(r.H)(e.suggestions,(t,n)=>(Object(r.D)(),Object(r.j)("div",{key:n,class:Object(r.w)(["autocomplete-item",{highlighted:n===e.highlighted}]),onClick:Object(r.Y)(n=>e.onClick(n,t),["stop","prevent"])},[Object(r.k)("span",s,[t.img?(Object(r.D)(),Object(r.j)("img",{key:0,src:t.img},null,8,a)):(Object(r.D)(),Object(r.j)("span",c,Object(r.O)(t.replacement),1))]),Object(r.k)("div",l,[Object(r.k)("span",u,Object(r.O)(t.displayText),1),Object(r.k)("span",d,Object(r.O)(t.detailText),1)])],10,o))),128))],512)],2)],2)),[[O,e.onClickOutside]])}]]);t.a=se},,,,,,,,,,,,,,,,,function(e,t,n){e.exports=n.p+"static/img/nsfw.ca95de9.png"},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),t.default={about:{mrf:{federation:e=>{const{normalize:t}=e;return t(["Federation"])},keyword:{keyword_policies:e=>{const{normalize:t}=e;return t(["Keyword policies"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "The Whole Known Network" Timeline'])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},replace:e=>{const{normalize:t}=e;return t(["Replace"])},is_replaced_by:e=>{const{normalize:t}=e;return t(["→"])}},mrf_policies:e=>{const{normalize:t}=e;return t(["Enabled MRF policies"])},mrf_policies_desc:e=>{const{normalize:t}=e;return t(["MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:"])},simple:{simple_policies:e=>{const{normalize:t}=e;return t(["Instance-specific policies"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},reason:e=>{const{normalize:t}=e;return t(["Reason"])},not_applicable:e=>{const{normalize:t}=e;return t(["N/A"])},accept:e=>{const{normalize:t}=e;return t(["Accept"])},accept_desc:e=>{const{normalize:t}=e;return t(["This instance only accepts messages from the following instances:"])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},reject_desc:e=>{const{normalize:t}=e;return t(["This instance will not accept messages from the following instances:"])},quarantine:e=>{const{normalize:t}=e;return t(["Quarantine"])},quarantine_desc:e=>{const{normalize:t}=e;return t(["This instance will send only public posts to the following instances:"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "Known Network" Timeline'])},ftl_removal_desc:e=>{const{normalize:t}=e;return t(['This instance removes these instances from "Known Network" timeline:'])},media_removal:e=>{const{normalize:t}=e;return t(["Media Removal"])},media_removal_desc:e=>{const{normalize:t}=e;return t(["This instance removes media from posts on the following instances:"])},media_nsfw:e=>{const{normalize:t}=e;return t(["Media force-set as sensitive"])},media_nsfw_desc:e=>{const{normalize:t}=e;return t(["This instance forces media to be set sensitive in posts on the following instances:"])}}},staff:e=>{const{normalize:t}=e;return t(["Staff"])}},shoutbox:{title:e=>{const{normalize:t}=e;return t(["Shoutbox"])}},domain_mute_card:{mute:e=>{const{normalize:t}=e;return t(["Mute"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])}},exporter:{export:e=>{const{normalize:t}=e;return t(["Export"])},processing:e=>{const{normalize:t}=e;return t(["Processing, you'll soon be asked to download your file"])}},features_panel:{shout:e=>{const{normalize:t}=e;return t(["Shoutbox"])},pleroma_chat_messages:e=>{const{normalize:t}=e;return t(["Pleroma Chat"])},gopher:e=>{const{normalize:t}=e;return t(["Gopher"])},media_proxy:e=>{const{normalize:t}=e;return t(["Media proxy"])},scope_options:e=>{const{normalize:t}=e;return t(["Scope options"])},text_limit:e=>{const{normalize:t}=e;return t(["Text limit"])},title:e=>{const{normalize:t}=e;return t(["Features"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},upload_limit:e=>{const{normalize:t}=e;return t(["Upload limit"])}},finder:{error_fetching_user:e=>{const{normalize:t}=e;return t(["Error fetching user"])},find_user:e=>{const{normalize:t}=e;return t(["Find user"])}},general:{apply:e=>{const{normalize:t}=e;return t(["Apply"])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},more:e=>{const{normalize:t}=e;return t(["More"])},loading:e=>{const{normalize:t}=e;return t(["Loading…"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occured"])},error_retry:e=>{const{normalize:t}=e;return t(["Please try again"])},retry:e=>{const{normalize:t}=e;return t(["Try again"])},optional:e=>{const{normalize:t}=e;return t(["optional"])},show_more:e=>{const{normalize:t}=e;return t(["Show more"])},show_less:e=>{const{normalize:t}=e;return t(["Show less"])},dismiss:e=>{const{normalize:t}=e;return t(["Dismiss"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])},disable:e=>{const{normalize:t}=e;return t(["Disable"])},enable:e=>{const{normalize:t}=e;return t(["Enable"])},confirm:e=>{const{normalize:t}=e;return t(["Confirm"])},verify:e=>{const{normalize:t}=e;return t(["Verify"])},close:e=>{const{normalize:t}=e;return t(["Close"])},peek:e=>{const{normalize:t}=e;return t(["Peek"])},role:{admin:e=>{const{normalize:t}=e;return t(["Admin"])},moderator:e=>{const{normalize:t}=e;return t(["Moderator"])}},flash_content:e=>{const{normalize:t}=e;return t(["Click to show Flash content using Ruffle (Experimental, may not work)."])},flash_security:e=>{const{normalize:t}=e;return t(["Note that this can be potentially dangerous since Flash content is still arbitrary code."])},flash_fail:e=>{const{normalize:t}=e;return t(["Failed to load flash content, see console for details."])},scope_in_timeline:{direct:e=>{const{normalize:t}=e;return t(["Direct"])},private:e=>{const{normalize:t}=e;return t(["Followers-only"])},public:e=>{const{normalize:t}=e;return t(["Public"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted"])}}},image_cropper:{crop_picture:e=>{const{normalize:t}=e;return t(["Crop picture"])},save:e=>{const{normalize:t}=e;return t(["Save"])},save_without_cropping:e=>{const{normalize:t}=e;return t(["Save without cropping"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},importer:{submit:e=>{const{normalize:t}=e;return t(["Submit"])},success:e=>{const{normalize:t}=e;return t(["Imported successfully."])},error:e=>{const{normalize:t}=e;return t(["An error occured while importing this file."])}},login:{login:e=>{const{normalize:t}=e;return t(["Log in"])},description:e=>{const{normalize:t}=e;return t(["Log in with OAuth"])},logout:e=>{const{normalize:t}=e;return t(["Log out"])},password:e=>{const{normalize:t}=e;return t(["Password"])},placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},register:e=>{const{normalize:t}=e;return t(["Register"])},username:e=>{const{normalize:t}=e;return t(["Username"])},hint:e=>{const{normalize:t}=e;return t(["Log in to join the discussion"])},authentication_code:e=>{const{normalize:t}=e;return t(["Authentication code"])},enter_recovery_code:e=>{const{normalize:t}=e;return t(["Enter a recovery code"])},enter_two_factor_code:e=>{const{normalize:t}=e;return t(["Enter a two-factor code"])},recovery_code:e=>{const{normalize:t}=e;return t(["Recovery code"])},heading:{totp:e=>{const{normalize:t}=e;return t(["Two-factor authentication"])},recovery:e=>{const{normalize:t}=e;return t(["Two-factor recovery"])}}},media_modal:{previous:e=>{const{normalize:t}=e;return t(["Previous"])},next:e=>{const{normalize:t}=e;return t(["Next"])},counter:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("current"))," / ",n(r("total"))])},hide:e=>{const{normalize:t}=e;return t(["Close media viewer"])}},nav:{about:e=>{const{normalize:t}=e;return t(["About"])},administration:e=>{const{normalize:t}=e;return t(["Administration"])},back:e=>{const{normalize:t}=e;return t(["Back"])},friend_requests:e=>{const{normalize:t}=e;return t(["Follow requests"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},interactions:e=>{const{normalize:t}=e;return t(["Interactions"])},dms:e=>{const{normalize:t}=e;return t(["Direct messages"])},public_tl:e=>{const{normalize:t}=e;return t(["Public timeline"])},timeline:e=>{const{normalize:t}=e;return t(["Timeline"])},home_timeline:e=>{const{normalize:t}=e;return t(["Home timeline"])},twkn:e=>{const{normalize:t}=e;return t(["Known Network"])},bookmarks:e=>{const{normalize:t}=e;return t(["Bookmarks"])},user_search:e=>{const{normalize:t}=e;return t(["User Search"])},search:e=>{const{normalize:t}=e;return t(["Search"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},preferences:e=>{const{normalize:t}=e;return t(["Preferences"])},timelines:e=>{const{normalize:t}=e;return t(["Timelines"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])}},notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Error fetching notifications: ",n(r(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["reacted with ",n(r(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}},polls:{add_poll:e=>{const{normalize:t}=e;return t(["Add poll"])},add_option:e=>{const{normalize:t}=e;return t(["Add option"])},option:e=>{const{normalize:t}=e;return t(["Option"])},votes:e=>{const{normalize:t}=e;return t(["votes"])},people_voted_count:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t([n(r("count"))," person voted"]),t([n(r("count"))," people voted"])])},votes_count:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t([n(r("count"))," vote"]),t([n(r("count"))," votes"])])},vote:e=>{const{normalize:t}=e;return t(["Vote"])},type:e=>{const{normalize:t}=e;return t(["Poll type"])},single_choice:e=>{const{normalize:t}=e;return t(["Single choice"])},multiple_choices:e=>{const{normalize:t}=e;return t(["Multiple choices"])},expiry:e=>{const{normalize:t}=e;return t(["Poll age"])},expires_in:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Poll ends in ",n(r(0))])},expired:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Poll ended ",n(r(0))," ago"])},not_enough_options:e=>{const{normalize:t}=e;return t(["Too few unique options in poll"])}},emoji:{stickers:e=>{const{normalize:t}=e;return t(["Stickers"])},emoji:e=>{const{normalize:t}=e;return t(["Emoji"])},keep_open:e=>{const{normalize:t}=e;return t(["Keep picker open"])},search_emoji:e=>{const{normalize:t}=e;return t(["Search for an emoji"])},add_emoji:e=>{const{normalize:t}=e;return t(["Insert emoji"])},custom:e=>{const{normalize:t}=e;return t(["Custom emoji"])},unicode:e=>{const{normalize:t}=e;return t(["Unicode emoji"])},load_all_hint:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Loaded first ",n(r("saneAmount"))," emoji, loading all emoji may cause performance issues."])},load_all:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Loading all ",n(r("emojiAmount"))," emoji"])}},errors:{storage_unavailable:e=>{const{normalize:t}=e;return t(["Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."])}},interactions:{favs_repeats:e=>{const{normalize:t}=e;return t(["Repeats and favorites"])},follows:e=>{const{normalize:t}=e;return t(["New follows"])},moves:e=>{const{normalize:t}=e;return t(["User migrates"])},load_older:e=>{const{normalize:t}=e;return t(["Load older interactions"])}},post_status:{new_status:e=>{const{normalize:t}=e;return t(["Post new status"])},account_not_locked_warning:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your account is not ",n(r(0)),". Anyone can follow you to view your follower-only posts."])},account_not_locked_warning_link:e=>{const{normalize:t}=e;return t(["locked"])},attachments_sensitive:e=>{const{normalize:t}=e;return t(["Mark attachments as sensitive"])},media_description:e=>{const{normalize:t}=e;return t(["Media description"])},content_type:{"text/plain":e=>{const{normalize:t}=e;return t(["Plain text"])},"text/html":e=>{const{normalize:t}=e;return t(["HTML"])},"text/markdown":e=>{const{normalize:t}=e;return t(["Markdown"])},"text/bbcode":e=>{const{normalize:t}=e;return t(["BBCode"])}},content_warning:e=>{const{normalize:t}=e;return t(["Subject (optional)"])},default:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},direct_warning_to_all:e=>{const{normalize:t}=e;return t(["This post will be visible to all the mentioned users."])},direct_warning_to_first_only:e=>{const{normalize:t}=e;return t(["This post will only be visible to the mentioned users at the beginning of the message."])},posting:e=>{const{normalize:t}=e;return t(["Posting"])},post:e=>{const{normalize:t}=e;return t(["Post"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},preview_empty:e=>{const{normalize:t}=e;return t(["Empty"])},empty_status_error:e=>{const{normalize:t}=e;return t(["Can't post an empty status with no files"])},media_description_error:e=>{const{normalize:t}=e;return t(["Failed to update media, try again"])},scope_notice:{public:e=>{const{normalize:t}=e;return t(["This post will be visible to everyone"])},private:e=>{const{normalize:t}=e;return t(["This post will be visible to your followers only"])},unlisted:e=>{const{normalize:t}=e;return t(["This post will not be visible in Public Timeline and The Whole Known Network"])},local:e=>{const{normalize:t}=e;return t(["This post won't be visible outside of IHBA"])}},scope:{direct:e=>{const{normalize:t}=e;return t(["Direct - post to mentioned users only"])},private:e=>{const{normalize:t}=e;return t(["Followers-only - post to followers only"])},public:e=>{const{normalize:t}=e;return t(["Public - post to public timelines"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted - do not post to public timelines"])},local:e=>{const{normalize:t}=e;return t(["Local - do not federate this post"])}}},registration:{bio:e=>{const{normalize:t}=e;return t(["Bio"])},email:e=>{const{normalize:t}=e;return t(["Email"])},fullname:e=>{const{normalize:t}=e;return t(["Display name"])},password_confirm:e=>{const{normalize:t}=e;return t(["Password confirmation"])},registration:e=>{const{normalize:t}=e;return t(["Registration"])},token:e=>{const{normalize:t}=e;return t(["Invite token"])},captcha:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},new_captcha:e=>{const{normalize:t}=e;return t(["Click the image to get a new captcha"])},username_placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},fullname_placeholder:e=>{const{normalize:t}=e;return t(["e.g. Lain Iwakura"])},bio_placeholder:e=>{const{normalize:t}=e;return t(["e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired."])},reason:e=>{const{normalize:t}=e;return t(["Reason to register"])},reason_placeholder:e=>{const{normalize:t}=e;return t(["This instance approves registrations manually.\nLet the administration know why you want to register."])},register:e=>{const{normalize:t}=e;return t(["Register"])},validations:{username_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},fullname_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},email_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_match:e=>{const{normalize:t}=e;return t(["should be the same as password"])}},email_language:e=>{const{normalize:t}=e;return t(["In which language do you want to receive emails from the server?"])}},remote_user_resolver:{remote_user_resolver:e=>{const{normalize:t}=e;return t(["Remote user resolver"])},searching_for:e=>{const{normalize:t}=e;return t(["Searching for"])},error:e=>{const{normalize:t}=e;return t(["Not found."])}},selectable_list:{select_all:e=>{const{normalize:t}=e;return t(["Select all"])}},settings:{app_name:e=>{const{normalize:t}=e;return t(["App name"])},expert_mode:e=>{const{normalize:t}=e;return t(["Show advanced"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},security:e=>{const{normalize:t}=e;return t(["Security"])},setting_changed:e=>{const{normalize:t}=e;return t(["Setting is different from default"])},setting_server_side:e=>{const{normalize:t}=e;return t(["This setting is tied to your profile and affects all sessions and clients"])},enter_current_password_to_confirm:e=>{const{normalize:t}=e;return t(["Enter your current password to confirm your identity"])},post_look_feel:e=>{const{normalize:t}=e;return t(["Posts Look & Feel"])},mention_links:e=>{const{normalize:t}=e;return t(["Mention links"])},mfa:{otp:e=>{const{normalize:t}=e;return t(["OTP"])},setup_otp:e=>{const{normalize:t}=e;return t(["Setup OTP"])},wait_pre_setup_otp:e=>{const{normalize:t}=e;return t(["presetting OTP"])},confirm_and_enable:e=>{const{normalize:t}=e;return t(["Confirm & enable OTP"])},title:e=>{const{normalize:t}=e;return t(["Two-factor Authentication"])},generate_new_recovery_codes:e=>{const{normalize:t}=e;return t(["Generate new recovery codes"])},warning_of_generate_new_codes:e=>{const{normalize:t}=e;return t(["When you generate new recovery codes, your old codes won’t work anymore."])},recovery_codes:e=>{const{normalize:t}=e;return t(["Recovery codes."])},waiting_a_recovery_codes:e=>{const{normalize:t}=e;return t(["Receiving backup codes…"])},recovery_codes_warning:e=>{const{normalize:t}=e;return t(["Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account."])},authentication_methods:e=>{const{normalize:t}=e;return t(["Authentication methods"])},scan:{title:e=>{const{normalize:t}=e;return t(["Scan"])},desc:e=>{const{normalize:t}=e;return t(["Using your two-factor app, scan this QR code or enter text key:"])},secret_code:e=>{const{normalize:t}=e;return t(["Key"])}},verify:{desc:e=>{const{normalize:t}=e;return t(["To enable two-factor authentication, enter the code from your two-factor app:"])}}},allow_following_move:e=>{const{normalize:t}=e;return t(["Allow auto-follow when following account moves"])},attachmentRadius:e=>{const{normalize:t}=e;return t(["Attachments"])},attachments:e=>{const{normalize:t}=e;return t(["Attachments"])},avatar:e=>{const{normalize:t}=e;return t(["Avatar"])},avatarAltRadius:e=>{const{normalize:t}=e;return t(["Avatars (notifications)"])},avatarRadius:e=>{const{normalize:t}=e;return t(["Avatars"])},background:e=>{const{normalize:t}=e;return t(["Background"])},bio:e=>{const{normalize:t}=e;return t(["Bio"])},email_language:e=>{const{normalize:t}=e;return t(["Language for receiving emails from the server"])},block_export:e=>{const{normalize:t}=e;return t(["Block export"])},block_export_button:e=>{const{normalize:t}=e;return t(["Export your blocks to a csv file"])},block_import:e=>{const{normalize:t}=e;return t(["Block import"])},block_import_error:e=>{const{normalize:t}=e;return t(["Error importing blocks"])},blocks_imported:e=>{const{normalize:t}=e;return t(["Blocks imported! Processing them will take a while."])},mute_export:e=>{const{normalize:t}=e;return t(["Mute export"])},mute_export_button:e=>{const{normalize:t}=e;return t(["Export your mutes to a csv file"])},mute_import:e=>{const{normalize:t}=e;return t(["Mute import"])},mute_import_error:e=>{const{normalize:t}=e;return t(["Error importing mutes"])},mutes_imported:e=>{const{normalize:t}=e;return t(["Mutes imported! Processing them will take a while."])},import_mutes_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import mutes from a csv file"])},blocks_tab:e=>{const{normalize:t}=e;return t(["Blocks"])},bot:e=>{const{normalize:t}=e;return t(["This is a bot account"])},btnRadius:e=>{const{normalize:t}=e;return t(["Buttons"])},cBlue:e=>{const{normalize:t}=e;return t(["Blue (Reply, follow)"])},cGreen:e=>{const{normalize:t}=e;return t(["Green (Retweet)"])},cOrange:e=>{const{normalize:t}=e;return t(["Orange (Favorite)"])},cRed:e=>{const{normalize:t}=e;return t(["Red (Cancel)"])},change_email:e=>{const{normalize:t}=e;return t(["Change email"])},change_email_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your email."])},changed_email:e=>{const{normalize:t}=e;return t(["Email changed successfully!"])},change_password:e=>{const{normalize:t}=e;return t(["Change password"])},change_password_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your password."])},changed_password:e=>{const{normalize:t}=e;return t(["Password changed successfully!"])},chatMessageRadius:e=>{const{normalize:t}=e;return t(["Chat message"])},collapse_subject:e=>{const{normalize:t}=e;return t(["Collapse posts with subjects"])},composing:e=>{const{normalize:t}=e;return t(["Composing"])},confirm_new_password:e=>{const{normalize:t}=e;return t(["Confirm new password"])},current_avatar:e=>{const{normalize:t}=e;return t(["Your current avatar"])},current_mascot:e=>{const{normalize:t}=e;return t(["Your current mascot"])},current_password:e=>{const{normalize:t}=e;return t(["Current password"])},mutes_and_blocks:e=>{const{normalize:t}=e;return t(["Mutes and Blocks"])},data_import_export_tab:e=>{const{normalize:t}=e;return t(["Data import / export"])},default_vis:e=>{const{normalize:t}=e;return t(["Default visibility scope"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},delete_account_description:e=>{const{normalize:t}=e;return t(["Permanently delete your data and deactivate your account."])},delete_account_error:e=>{const{normalize:t}=e;return t(["There was an issue deleting your account. If this persists please contact your instance administrator."])},delete_account_instructions:e=>{const{normalize:t}=e;return t(["Type your password in the input below to confirm account deletion."])},discoverable:e=>{const{normalize:t}=e;return t(["Allow discovery of this account in search results and other services"])},domain_mutes:e=>{const{normalize:t}=e;return t(["Domains"])},avatar_size_instruction:e=>{const{normalize:t}=e;return t(["The recommended minimum size for avatar images is 150x150 pixels."])},pad_emoji:e=>{const{normalize:t}=e;return t(["Pad emoji with spaces when adding from picker"])},emoji_reactions_on_timeline:e=>{const{normalize:t}=e;return t(["Show emoji reactions on timeline"])},export_theme:e=>{const{normalize:t}=e;return t(["Save preset"])},filtering:e=>{const{normalize:t}=e;return t(["Filtering"])},wordfilter:e=>{const{normalize:t}=e;return t(["Wordfilter"])},filtering_explanation:e=>{const{normalize:t}=e;return t(["All statuses containing these words will be muted, one per line"])},word_filter:e=>{const{normalize:t}=e;return t(["Word filter"])},follow_export:e=>{const{normalize:t}=e;return t(["Follow export"])},follow_export_button:e=>{const{normalize:t}=e;return t(["Export your follows to a csv file"])},follow_import:e=>{const{normalize:t}=e;return t(["Follow import"])},follow_import_error:e=>{const{normalize:t}=e;return t(["Error importing followers"])},follows_imported:e=>{const{normalize:t}=e;return t(["Follows imported! Processing them will take a while."])},accent:e=>{const{normalize:t}=e;return t(["Accent"])},foreground:e=>{const{normalize:t}=e;return t(["Foreground"])},general:e=>{const{normalize:t}=e;return t(["General"])},hide_attachments_in_convo:e=>{const{normalize:t}=e;return t(["Hide attachments in conversations"])},hide_attachments_in_tl:e=>{const{normalize:t}=e;return t(["Hide attachments in timeline"])},hide_media_previews:e=>{const{normalize:t}=e;return t(["Hide media previews"])},hide_muted_posts:e=>{const{normalize:t}=e;return t(["Hide posts of muted users"])},mute_bot_posts:e=>{const{normalize:t}=e;return t(["Mute bot posts"])},hide_bot_indication:e=>{const{normalize:t}=e;return t(["Hide bot indication in posts"])},hide_all_muted_posts:e=>{const{normalize:t}=e;return t(["Hide muted posts"])},max_thumbnails:e=>{const{normalize:t}=e;return t(["Maximum amount of thumbnails per post (empty = no limit)"])},hide_isp:e=>{const{normalize:t}=e;return t(["Hide instance-specific panel"])},hide_shoutbox:e=>{const{normalize:t}=e;return t(["Hide instance shoutbox"])},right_sidebar:e=>{const{normalize:t}=e;return t(["Reverse order of columns"])},always_show_post_button:e=>{const{normalize:t}=e;return t(["Always show floating New Post button"])},hide_wallpaper:e=>{const{normalize:t}=e;return t(["Hide instance wallpaper"])},preload_images:e=>{const{normalize:t}=e;return t(["Preload images"])},use_one_click_nsfw:e=>{const{normalize:t}=e;return t(["Open NSFW attachments with just one click"])},hide_post_stats:e=>{const{normalize:t}=e;return t(["Hide post statistics (e.g. the number of favorites)"])},hide_user_stats:e=>{const{normalize:t}=e;return t(["Hide user statistics (e.g. the number of followers)"])},hide_filtered_statuses:e=>{const{normalize:t}=e;return t(["Hide all filtered posts"])},hide_wordfiltered_statuses:e=>{const{normalize:t}=e;return t(["Hide word-filtered statuses"])},hide_muted_threads:e=>{const{normalize:t}=e;return t(["Hide muted threads"])},import_blocks_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import blocks from a csv file"])},import_followers_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import follows from a csv file"])},import_theme:e=>{const{normalize:t}=e;return t(["Load preset"])},inputRadius:e=>{const{normalize:t}=e;return t(["Input fields"])},checkboxRadius:e=>{const{normalize:t}=e;return t(["Checkboxes"])},instance_default:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["(default: ",n(r("value")),")"])},instance_default_simple:e=>{const{normalize:t}=e;return t(["(default)"])},interface:e=>{const{normalize:t}=e;return t(["Interface"])},interfaceLanguage:e=>{const{normalize:t}=e;return t(["Interface language"])},invalid_theme_imported:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma theme. No changes to your theme were made."])},limited_availability:e=>{const{normalize:t}=e;return t(["Unavailable in your browser"])},links:e=>{const{normalize:t}=e;return t(["Links"])},lock_account_description:e=>{const{normalize:t}=e;return t(["Restrict your account to approved followers only"])},loop_video:e=>{const{normalize:t}=e;return t(["Loop videos"])},loop_video_silent_only:e=>{const{normalize:t}=e;return t(['Loop only videos without sound (i.e. Mastodon\'s "gifs")'])},mutes_tab:e=>{const{normalize:t}=e;return t(["Mutes"])},play_videos_in_modal:e=>{const{normalize:t}=e;return t(["Play videos in a popup frame"])},file_export_import:{backup_restore:e=>{const{normalize:t}=e;return t(["Settings backup"])},backup_settings:e=>{const{normalize:t}=e;return t(["Backup settings to file"])},backup_settings_theme:e=>{const{normalize:t}=e;return t(["Backup settings and theme to file"])},restore_settings:e=>{const{normalize:t}=e;return t(["Restore settings from file"])},errors:{invalid_file:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma settings backup. No changes were made."])},file_too_new:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Incompatile major version: ",n(r("fileMajor")),", this PleromaFE (settings ver ",n(r("feMajor")),") is too old to handle it"])},file_too_old:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Incompatile major version: ",n(r("fileMajor")),", file version is too old and not supported (min. set. ver. ",n(r("feMajor")),")"])},file_slightly_new:e=>{const{normalize:t}=e;return t(["File minor version is different, some settings might not load"])}}},profile_fields:{label:e=>{const{normalize:t}=e;return t(["Profile metadata"])},add_field:e=>{const{normalize:t}=e;return t(["Add field"])},name:e=>{const{normalize:t}=e;return t(["Label"])},value:e=>{const{normalize:t}=e;return t(["Content"])}},account_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},use_contain_fit:e=>{const{normalize:t}=e;return t(["Don't crop the attachment in thumbnails"])},name:e=>{const{normalize:t}=e;return t(["Name"])},name_bio:e=>{const{normalize:t}=e;return t(["Name & bio"])},new_email:e=>{const{normalize:t}=e;return t(["New email"])},new_password:e=>{const{normalize:t}=e;return t(["New password"])},posts:e=>{const{normalize:t}=e;return t(["Posts"])},user_profiles:e=>{const{normalize:t}=e;return t(["User Profiles"])},notification_visibility:e=>{const{normalize:t}=e;return t(["Types of notifications to show"])},notification_visibility_follows:e=>{const{normalize:t}=e;return t(["Follows"])},notification_visibility_likes:e=>{const{normalize:t}=e;return t(["Favorites"])},notification_visibility_mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},notification_visibility_repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},notification_visibility_moves:e=>{const{normalize:t}=e;return t(["User Migrates"])},notification_visibility_emoji_reactions:e=>{const{normalize:t}=e;return t(["Reactions"])},notification_visibility_polls:e=>{const{normalize:t}=e;return t(["Ends of polls you voted in"])},no_rich_text_description:e=>{const{normalize:t}=e;return t(["Strip rich text formatting from all posts"])},no_blocks:e=>{const{normalize:t}=e;return t(["No blocks"])},no_mutes:e=>{const{normalize:t}=e;return t(["No mutes"])},hide_favorites_description:e=>{const{normalize:t}=e;return t(["Don't show list of my favorites (people still get notified)"])},hide_follows_description:e=>{const{normalize:t}=e;return t(["Don't show who I'm following"])},hide_followers_description:e=>{const{normalize:t}=e;return t(["Don't show who's following me"])},hide_follows_count_description:e=>{const{normalize:t}=e;return t(["Don't show follow count"])},hide_followers_count_description:e=>{const{normalize:t}=e;return t(["Don't show follower count"])},show_admin_badge:e=>{const{normalize:t}=e;return t(['Show "Admin" badge in my profile'])},show_moderator_badge:e=>{const{normalize:t}=e;return t(['Show "Moderator" badge in my profile'])},nsfw_clickthrough:e=>{const{normalize:t}=e;return t(["Hide sensitive/NSFW media"])},oauth_tokens:e=>{const{normalize:t}=e;return t(["OAuth tokens"])},token:e=>{const{normalize:t}=e;return t(["Token"])},refresh_token:e=>{const{normalize:t}=e;return t(["Refresh token"])},valid_until:e=>{const{normalize:t}=e;return t(["Valid until"])},revoke_token:e=>{const{normalize:t}=e;return t(["Revoke"])},panelRadius:e=>{const{normalize:t}=e;return t(["Panels"])},pause_on_unfocused:e=>{const{normalize:t}=e;return t(["Pause when tab is not focused"])},presets:e=>{const{normalize:t}=e;return t(["Presets"])},profile_background:e=>{const{normalize:t}=e;return t(["Profile background"])},profile_banner:e=>{const{normalize:t}=e;return t(["Profile banner"])},profile_tab:e=>{const{normalize:t}=e;return t(["Profile"])},radii_help:e=>{const{normalize:t}=e;return t(["Set up interface edge rounding (in pixels)"])},replies_in_timeline:e=>{const{normalize:t}=e;return t(["Replies in timeline"])},reply_visibility_all:e=>{const{normalize:t}=e;return t(["Show all replies"])},reply_visibility_following:e=>{const{normalize:t}=e;return t(["Only show replies directed at me or users I'm following"])},reply_visibility_self:e=>{const{normalize:t}=e;return t(["Only show replies directed at me"])},reply_visibility_following_short:e=>{const{normalize:t}=e;return t(["Show replies to my follows"])},reply_visibility_self_short:e=>{const{normalize:t}=e;return t(["Show replies to self only"])},autohide_floating_post_button:e=>{const{normalize:t}=e;return t(["Automatically hide New Post button (mobile)"])},saving_err:e=>{const{normalize:t}=e;return t(["Error saving settings"])},saving_ok:e=>{const{normalize:t}=e;return t(["Settings saved"])},search_user_to_block:e=>{const{normalize:t}=e;return t(["Search whom you want to block"])},search_user_to_mute:e=>{const{normalize:t}=e;return t(["Search whom you want to mute"])},security_tab:e=>{const{normalize:t}=e;return t(["Security"])},scope_copy:e=>{const{normalize:t}=e;return t(["Copy scope when replying (DMs are always copied)"])},mascot:e=>{const{normalize:t}=e;return t(["Mastodon FE Mascot"])},minimal_scopes_mode:e=>{const{normalize:t}=e;return t(["Minimize post scope selection options"])},set_new_avatar:e=>{const{normalize:t}=e;return t(["Set new avatar"])},set_new_mascot:e=>{const{normalize:t}=e;return t(["Set new mascot"])},set_new_profile_background:e=>{const{normalize:t}=e;return t(["Set new profile background"])},set_new_profile_banner:e=>{const{normalize:t}=e;return t(["Set new profile banner"])},reset_avatar:e=>{const{normalize:t}=e;return t(["Reset avatar"])},reset_profile_background:e=>{const{normalize:t}=e;return t(["Reset profile background"])},reset_profile_banner:e=>{const{normalize:t}=e;return t(["Reset profile banner"])},reset_avatar_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the avatar?"])},reset_banner_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the banner?"])},reset_background_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the background?"])},settings:e=>{const{normalize:t}=e;return t(["Settings"])},subject_input_always_show:e=>{const{normalize:t}=e;return t(["Always show subject field"])},subject_line_behavior:e=>{const{normalize:t}=e;return t(["Copy subject when replying"])},subject_line_email:e=>{const{normalize:t}=e;return t(['Like email: "re: subject"'])},subject_line_mastodon:e=>{const{normalize:t}=e;return t(["Like mastodon: copy as is"])},subject_line_noop:e=>{const{normalize:t}=e;return t(["Do not copy"])},conversation_display:e=>{const{normalize:t}=e;return t(["Conversation display style"])},conversation_display_tree:e=>{const{normalize:t}=e;return t(["Tree-style"])},disable_sticky_headers:e=>{const{normalize:t}=e;return t(["Don't stick column headers to top of the screen"])},show_scrollbars:e=>{const{normalize:t}=e;return t(["Show side column's scrollbars"])},third_column_mode:e=>{const{normalize:t}=e;return t(["When there's enough space, show third column containing"])},third_column_mode_none:e=>{const{normalize:t}=e;return t(["Don't show third column at all"])},third_column_mode_notifications:e=>{const{normalize:t}=e;return t(["Notifications column"])},third_column_mode_postform:e=>{const{normalize:t}=e;return t(["Main post form and navigation"])},tree_advanced:e=>{const{normalize:t}=e;return t(["Allow more flexible navigation in tree view"])},tree_fade_ancestors:e=>{const{normalize:t}=e;return t(["Display ancestors of the current status in faint text"])},conversation_display_linear:e=>{const{normalize:t}=e;return t(["Linear-style"])},conversation_other_replies_button:e=>{const{normalize:t}=e;return t(['Show the "other replies" button'])},conversation_other_replies_button_below:e=>{const{normalize:t}=e;return t(["Below statuses"])},conversation_other_replies_button_inside:e=>{const{normalize:t}=e;return t(["Inside statuses"])},max_depth_in_thread:e=>{const{normalize:t}=e;return t(["Maximum number of levels in thread to display by default"])},post_status_content_type:e=>{const{normalize:t}=e;return t(["Post status content type"])},sensitive_by_default:e=>{const{normalize:t}=e;return t(["Mark posts as sensitive by default"])},sensitive_if_subject:e=>{const{normalize:t}=e;return t(["Automatically mark images as sensitive if a subject line is specified"])},useStreamingApiWarning:e=>{const{normalize:t}=e;return t(["It's cool use it. If it breaks refresh I guess?"])},stop_gifs:e=>{const{normalize:t}=e;return t(["Pause animated images until you hover on them"])},streaming:e=>{const{normalize:t}=e;return t(["Automatically show new posts when scrolled to the top"])},user_mutes:e=>{const{normalize:t}=e;return t(["Users"])},useStreamingApi:e=>{const{normalize:t}=e;return t(["Receive posts and notifications real-time"])},text:e=>{const{normalize:t}=e;return t(["Text"])},theme:e=>{const{normalize:t}=e;return t(["Theme"])},theme_help:e=>{const{normalize:t}=e;return t(["Use hex color codes (#rrggbb) to customize your color theme."])},theme_help_v2_1:e=>{const{normalize:t}=e;return t(['You can also override certain component\'s colors and opacity by toggling the checkbox, use "Clear all" button to clear all overrides.'])},theme_help_v2_2:e=>{const{normalize:t}=e;return t(["Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case."])},tooltipRadius:e=>{const{normalize:t}=e;return t(["Tooltips/alerts"])},type_domains_to_mute:e=>{const{normalize:t}=e;return t(["Search domains to mute"])},upload_a_photo:e=>{const{normalize:t}=e;return t(["Upload a photo"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},values:{false:e=>{const{normalize:t}=e;return t(["no"])},true:e=>{const{normalize:t}=e;return t(["yes"])}},virtual_scrolling:e=>{const{normalize:t}=e;return t(["Optimize timeline rendering"])},use_at_icon:e=>{const{normalize:t}=e;return t(["Display ","@"," symbol as an icon instead of text"])},mention_link_display:e=>{const{normalize:t}=e;return t(["Display mention links"])},mention_link_display_short:e=>{const{normalize:t}=e;return t(["always as short names (e.g. ","@","foo)"])},mention_link_display_full_for_remote:e=>{const{normalize:t}=e;return t(["as full names only for remote users (e.g. ","@","foo","@","example.org)"])},mention_link_display_full:e=>{const{normalize:t}=e;return t(["always as full names (e.g. ","@","foo","@","example.org)"])},mention_link_show_tooltip:e=>{const{normalize:t}=e;return t(["Show full user names as tooltip for remote users"])},mention_link_show_avatar:e=>{const{normalize:t}=e;return t(["Show user avatar beside the link"])},mention_link_fade_domain:e=>{const{normalize:t}=e;return t(["Fade domains (e.g. ","@","example.org in ","@","foo","@","example.org)"])},mention_link_bolden_you:e=>{const{normalize:t}=e;return t(["Highlight mention of you when you are mentioned"])},fun:e=>{const{normalize:t}=e;return t(["Fun"])},greentext:e=>{const{normalize:t}=e;return t(["Meme arrows"])},show_yous:e=>{const{normalize:t}=e;return t(["Show (You)s"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},notification_setting_filters:e=>{const{normalize:t}=e;return t(["Filters"])},notification_setting_block_from_strangers:e=>{const{normalize:t}=e;return t(["Block notifications from users who you do not follow"])},notification_setting_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},notification_setting_hide_notification_contents:e=>{const{normalize:t}=e;return t(["Hide the sender and contents of push notifications"])},notification_mutes:e=>{const{normalize:t}=e;return t(["To stop receiving notifications from a specific user, use a mute."])},notification_blocks:e=>{const{normalize:t}=e;return t(["Blocking a user stops all notifications as well as unsubscribes them."])},enable_web_push_notifications:e=>{const{normalize:t}=e;return t(["Enable web push notifications"])},more_settings:e=>{const{normalize:t}=e;return t(["More settings"])},style:{switcher:{keep_color:e=>{const{normalize:t}=e;return t(["Keep colors"])},keep_shadows:e=>{const{normalize:t}=e;return t(["Keep shadows"])},keep_opacity:e=>{const{normalize:t}=e;return t(["Keep opacity"])},keep_roundness:e=>{const{normalize:t}=e;return t(["Keep roundness"])},keep_fonts:e=>{const{normalize:t}=e;return t(["Keep fonts"])},save_load_hint:e=>{const{normalize:t}=e;return t(['"Keep" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.'])},reset:e=>{const{normalize:t}=e;return t(["Reset"])},clear_all:e=>{const{normalize:t}=e;return t(["Clear all"])},clear_opacity:e=>{const{normalize:t}=e;return t(["Clear opacity"])},load_theme:e=>{const{normalize:t}=e;return t(["Load theme"])},keep_as_is:e=>{const{normalize:t}=e;return t(["Keep as is"])},use_snapshot:e=>{const{normalize:t}=e;return t(["Old version"])},use_source:e=>{const{normalize:t}=e;return t(["New version"])},help:{upgraded_from_v2:e=>{const{normalize:t}=e;return t(["PleromaFE has been upgraded, theme could look a little bit different than you remember."])},v2_imported:e=>{const{normalize:t}=e;return t(["File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."])},future_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in newer version of FE."])},older_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in older version of FE."])},snapshot_present:e=>{const{normalize:t}=e;return t(["Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead."])},snapshot_missing:e=>{const{normalize:t}=e;return t(["No theme snapshot was in the file so it could look different than originally envisioned."])},fe_upgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's theme engine upgraded after version update."])},fe_downgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's version rolled back."])},migration_snapshot_ok:e=>{const{normalize:t}=e;return t(["Just to be safe, theme snapshot loaded. You can try loading theme data."])},migration_napshot_gone:e=>{const{normalize:t}=e;return t(["For whatever reason snapshot was missing, some stuff could look different than you remember."])},snapshot_source_mismatch:e=>{const{normalize:t}=e;return t(["Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version."])}}},common:{color:e=>{const{normalize:t}=e;return t(["Color"])},opacity:e=>{const{normalize:t}=e;return t(["Opacity"])},contrast:{hint:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Contrast ratio is ",n(r("ratio")),", it ",n(r("level"))," ",n(r("context"))])},level:{aa:e=>{const{normalize:t}=e;return t(["meets Level AA guideline (minimal)"])},aaa:e=>{const{normalize:t}=e;return t(["meets Level AAA guideline (recommended)"])},bad:e=>{const{normalize:t}=e;return t(["doesn't meet any accessibility guidelines"])}},context:{"18pt":e=>{const{normalize:t}=e;return t(["for large (18pt+) text"])},text:e=>{const{normalize:t}=e;return t(["for text"])}}}},common_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Common"])},main:e=>{const{normalize:t}=e;return t(["Common colors"])},foreground_hint:e=>{const{normalize:t}=e;return t(['See "Advanced" tab for more detailed control'])},rgbo:e=>{const{normalize:t}=e;return t(["Icons, accents, badges"])}},advanced_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Advanced"])},alert:e=>{const{normalize:t}=e;return t(["Alert background"])},alert_error:e=>{const{normalize:t}=e;return t(["Error"])},alert_warning:e=>{const{normalize:t}=e;return t(["Warning"])},alert_neutral:e=>{const{normalize:t}=e;return t(["Neutral"])},post:e=>{const{normalize:t}=e;return t(["Posts/User bios"])},badge:e=>{const{normalize:t}=e;return t(["Badge background"])},popover:e=>{const{normalize:t}=e;return t(["Tooltips, menus, popovers"])},badge_notification:e=>{const{normalize:t}=e;return t(["Notification"])},panel_header:e=>{const{normalize:t}=e;return t(["Panel header"])},top_bar:e=>{const{normalize:t}=e;return t(["Top bar"])},borders:e=>{const{normalize:t}=e;return t(["Borders"])},buttons:e=>{const{normalize:t}=e;return t(["Buttons"])},inputs:e=>{const{normalize:t}=e;return t(["Input fields"])},faint_text:e=>{const{normalize:t}=e;return t(["Faded text"])},underlay:e=>{const{normalize:t}=e;return t(["Underlay"])},wallpaper:e=>{const{normalize:t}=e;return t(["Wallpaper"])},poll:e=>{const{normalize:t}=e;return t(["Poll graph"])},icons:e=>{const{normalize:t}=e;return t(["Icons"])},highlight:e=>{const{normalize:t}=e;return t(["Highlighted elements"])},pressed:e=>{const{normalize:t}=e;return t(["Pressed"])},selectedPost:e=>{const{normalize:t}=e;return t(["Selected post"])},selectedMenu:e=>{const{normalize:t}=e;return t(["Selected menu item"])},disabled:e=>{const{normalize:t}=e;return t(["Disabled"])},toggled:e=>{const{normalize:t}=e;return t(["Toggled"])},tabs:e=>{const{normalize:t}=e;return t(["Tabs"])},chat:{incoming:e=>{const{normalize:t}=e;return t(["Incoming"])},outgoing:e=>{const{normalize:t}=e;return t(["Outgoing"])},border:e=>{const{normalize:t}=e;return t(["Border"])}}},radii:{_tab_label:e=>{const{normalize:t}=e;return t(["Roundness"])}},shadows:{_tab_label:e=>{const{normalize:t}=e;return t(["Shadow and lighting"])},component:e=>{const{normalize:t}=e;return t(["Component"])},override:e=>{const{normalize:t}=e;return t(["Override"])},shadow_id:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Shadow #",n(r("value"))])},blur:e=>{const{normalize:t}=e;return t(["Blur"])},spread:e=>{const{normalize:t}=e;return t(["Spread"])},inset:e=>{const{normalize:t}=e;return t(["Inset"])},hintV3:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["For shadows you can also use the ",n(r(0))," notation to use other color slot."])},filter_hint:{always_drop_shadow:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Warning, this shadow always uses ",n(r(0))," when browser supports it."])},drop_shadow_syntax:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," does not support ",n(r(1))," parameter and ",n(r(2))," keyword."])},avatar_inset:e=>{const{normalize:t}=e;return t(["Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars."])},spread_zero:e=>{const{normalize:t}=e;return t(["Shadows with spread > 0 will appear as if it was set to zero"])},inset_classic:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Inset shadows will be using ",n(r(0))])}},components:{panel:e=>{const{normalize:t}=e;return t(["Panel"])},panelHeader:e=>{const{normalize:t}=e;return t(["Panel header"])},topBar:e=>{const{normalize:t}=e;return t(["Top bar"])},avatar:e=>{const{normalize:t}=e;return t(["User avatar (in profile view)"])},avatarStatus:e=>{const{normalize:t}=e;return t(["User avatar (in post display)"])},popup:e=>{const{normalize:t}=e;return t(["Popups and tooltips"])},button:e=>{const{normalize:t}=e;return t(["Button"])},buttonHover:e=>{const{normalize:t}=e;return t(["Button (hover)"])},buttonPressed:e=>{const{normalize:t}=e;return t(["Button (pressed)"])},buttonPressedHover:e=>{const{normalize:t}=e;return t(["Button (pressed+hover)"])},input:e=>{const{normalize:t}=e;return t(["Input field"])}}},fonts:{_tab_label:e=>{const{normalize:t}=e;return t(["Fonts"])},help:e=>{const{normalize:t}=e;return t(['Select font to use for elements of UI. For "custom" you have to enter exact font name as it appears in system.'])},components:{interface:e=>{const{normalize:t}=e;return t(["Interface"])},input:e=>{const{normalize:t}=e;return t(["Input fields"])},post:e=>{const{normalize:t}=e;return t(["Post text"])},postCode:e=>{const{normalize:t}=e;return t(["Monospaced text in a post (rich text)"])}},family:e=>{const{normalize:t}=e;return t(["Font name"])},size:e=>{const{normalize:t}=e;return t(["Size (in px)"])},weight:e=>{const{normalize:t}=e;return t(["Weight (boldness)"])},custom:e=>{const{normalize:t}=e;return t(["Custom"])}},preview:{header:e=>{const{normalize:t}=e;return t(["Preview"])},content:e=>{const{normalize:t}=e;return t(["Content"])},error:e=>{const{normalize:t}=e;return t(["Example error"])},button:e=>{const{normalize:t}=e;return t(["Button"])},text:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["A bunch of more ",n(r(0))," and ",n(r(1))])},mono:e=>{const{normalize:t}=e;return t(["content"])},input:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},faint_link:e=>{const{normalize:t}=e;return t(["helpful manual"])},fine_print:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Read our ",n(r(0))," to learn nothing useful!"])},header_faint:e=>{const{normalize:t}=e;return t(["This is fine"])},checkbox:e=>{const{normalize:t}=e;return t(["I have skimmed over terms and conditions"])},link:e=>{const{normalize:t}=e;return t(["a nice lil' link"])}}},version:{title:e=>{const{normalize:t}=e;return t(["Version"])},backend_version:e=>{const{normalize:t}=e;return t(["Backend version"])},frontend_version:e=>{const{normalize:t}=e;return t(["Frontend version"])}}},time:{day:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," day"])},days:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," days"])},day_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"d"])},days_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"d"])},hour:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," hour"])},hours:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," hours"])},hour_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"h"])},hours_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"h"])},in_future:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["in ",n(r(0))])},in_past:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," ago"])},minute:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," minute"])},minutes:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," minutes"])},minute_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"min"])},minutes_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"min"])},month:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," month"])},months:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," months"])},month_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"mo"])},months_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"mo"])},now:e=>{const{normalize:t}=e;return t(["just now"])},now_short:e=>{const{normalize:t}=e;return t(["now"])},second:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," second"])},seconds:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," seconds"])},second_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"s"])},seconds_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"s"])},week:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," week"])},weeks:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," weeks"])},week_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"w"])},weeks_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"w"])},year:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," year"])},years:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," years"])},year_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"y"])},years_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"y"])}},timeline:{collapse:e=>{const{normalize:t}=e;return t(["Collapse"])},conversation:e=>{const{normalize:t}=e;return t(["Conversation"])},error:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Error fetching timeline: ",n(r(0))])},load_older:e=>{const{normalize:t}=e;return t(["Load older statuses"])},no_retweet_hint:e=>{const{normalize:t}=e;return t(["Post is marked as followers-only or direct and cannot be repeated"])},repeated:e=>{const{normalize:t}=e;return t(["repeated"])},show_new:e=>{const{normalize:t}=e;return t(["Show new"])},reload:e=>{const{normalize:t}=e;return t(["Reload"])},up_to_date:e=>{const{normalize:t}=e;return t(["Up-to-date"])},no_more_statuses:e=>{const{normalize:t}=e;return t(["No more statuses"])},no_statuses:e=>{const{normalize:t}=e;return t(["No statuses"])},socket_reconnected:e=>{const{normalize:t}=e;return t(["Realtime connection established"])},socket_broke:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Realtime connection lost: CloseEvent code ",n(r(0))])}},status:{favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},delete:e=>{const{normalize:t}=e;return t(["Delete status"])},pin:e=>{const{normalize:t}=e;return t(["Pin on profile"])},unpin:e=>{const{normalize:t}=e;return t(["Unpin from profile"])},pinned:e=>{const{normalize:t}=e;return t(["Pinned"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},unbookmark:e=>{const{normalize:t}=e;return t(["Unbookmark"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this status?"])},reply_to:e=>{const{normalize:t}=e;return t(["Reply to"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},replies_list:e=>{const{normalize:t}=e;return t(["Replies:"])},replies_list_with_others:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t(["Replies (+",n(r("numReplies"))," other):"]),t(["Replies (+",n(r("numReplies"))," others):"])])},mute_conversation:e=>{const{normalize:t}=e;return t(["Mute conversation"])},unmute_conversation:e=>{const{normalize:t}=e;return t(["Unmute conversation"])},status_unavailable:e=>{const{normalize:t}=e;return t(["Status unavailable"])},copy_link:e=>{const{normalize:t}=e;return t(["Copy link to status"])},external_source:e=>{const{normalize:t}=e;return t(["External source"])},thread_muted:e=>{const{normalize:t}=e;return t(["Thread muted"])},thread_muted_and_words:e=>{const{normalize:t}=e;return t([", has words:"])},show_full_subject:e=>{const{normalize:t}=e;return t(["Show full subject"])},hide_full_subject:e=>{const{normalize:t}=e;return t(["Hide full subject"])},show_content:e=>{const{normalize:t}=e;return t(["Show content"])},hide_content:e=>{const{normalize:t}=e;return t(["Hide content"])},status_deleted:e=>{const{normalize:t}=e;return t(["This post was deleted"])},nsfw:e=>{const{normalize:t}=e;return t(["NSFW"])},expand:e=>{const{normalize:t}=e;return t(["Expand"])},you:e=>{const{normalize:t}=e;return t(["(You)"])},plus_more:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["+",n(r("number"))," more"])},many_attachments:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Post has ",n(r("number"))," attachment(s)"])},collapse_attachments:e=>{const{normalize:t}=e;return t(["Collapse attachments"])},show_all_attachments:e=>{const{normalize:t}=e;return t(["Show all attachments"])},show_attachment_in_modal:e=>{const{normalize:t}=e;return t(["Show in media modal"])},show_attachment_description:e=>{const{normalize:t}=e;return t(["Preview description (open attachment for full description)"])},hide_attachment:e=>{const{normalize:t}=e;return t(["Hide attachment"])},remove_attachment:e=>{const{normalize:t}=e;return t(["Remove attachment"])},attachment_stop_flash:e=>{const{normalize:t}=e;return t(["Stop Flash player"])},move_up:e=>{const{normalize:t}=e;return t(["Shift attachment left"])},move_down:e=>{const{normalize:t}=e;return t(["Shift attachment right"])},open_gallery:e=>{const{normalize:t}=e;return t(["Open gallery"])},thread_hide:e=>{const{normalize:t}=e;return t(["Hide this thread"])},thread_show:e=>{const{normalize:t}=e;return t(["Show this thread"])},thread_show_full:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t(["Show everything under this thread (",n(r("numStatus"))," status in total, max depth ",n(r("depth")),")"]),t(["Show everything under this thread (",n(r("numStatus"))," statuses in total, max depth ",n(r("depth")),")"])])},thread_show_full_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},thread_follow:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t(["See the remaining part of this thread (",n(r("numStatus"))," status in total)"]),t(["See the remaining part of this thread (",n(r("numStatus"))," statuses in total)"])])},thread_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},ancestor_follow:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t(["See ",n(r("numReplies"))," other reply under this status"]),t(["See ",n(r("numReplies"))," other replies under this status"])])},ancestor_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},show_all_conversation_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},show_all_conversation:e=>{const{normalize:t,interpolate:n,named:r,plural:i}=e;return i([t(["Show full conversation (",n(r("numStatus"))," other status)"]),t(["Show full conversation (",n(r("numStatus"))," other statuses)"])])},show_only_conversation_under_this:e=>{const{normalize:t}=e;return t(["Only show replies to this status"])}},user_card:{approve:e=>{const{normalize:t}=e;return t(["Approve"])},block:e=>{const{normalize:t}=e;return t(["Block"])},blocked:e=>{const{normalize:t}=e;return t(["Blocked!"])},deactivated:e=>{const{normalize:t}=e;return t(["Deactivated"])},deny:e=>{const{normalize:t}=e;return t(["Deny"])},edit_profile:e=>{const{normalize:t}=e;return t(["Edit profile"])},favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},follow:e=>{const{normalize:t}=e;return t(["Follow"])},follow_cancel:e=>{const{normalize:t}=e;return t(["Cancel request"])},follow_sent:e=>{const{normalize:t}=e;return t(["Request sent!"])},follow_progress:e=>{const{normalize:t}=e;return t(["Requesting…"])},follow_unfollow:e=>{const{normalize:t}=e;return t(["Unfollow"])},followees:e=>{const{normalize:t}=e;return t(["Following"])},followers:e=>{const{normalize:t}=e;return t(["Followers"])},following:e=>{const{normalize:t}=e;return t(["Following!"])},follows_you:e=>{const{normalize:t}=e;return t(["Follows you!"])},hidden:e=>{const{normalize:t}=e;return t(["Hidden"])},its_you:e=>{const{normalize:t}=e;return t(["It's you!"])},media:e=>{const{normalize:t}=e;return t(["Media"])},mention:e=>{const{normalize:t}=e;return t(["Mention"])},message:e=>{const{normalize:t}=e;return t(["Message"])},mute:e=>{const{normalize:t}=e;return t(["Mute"])},muted:e=>{const{normalize:t}=e;return t(["Muted"])},per_day:e=>{const{normalize:t}=e;return t(["per day"])},remote_follow:e=>{const{normalize:t}=e;return t(["Remote follow"])},report:e=>{const{normalize:t}=e;return t(["Report"])},statuses:e=>{const{normalize:t}=e;return t(["Statuses"])},subscribe:e=>{const{normalize:t}=e;return t(["Subscribe"])},unsubscribe:e=>{const{normalize:t}=e;return t(["Unsubscribe"])},unblock:e=>{const{normalize:t}=e;return t(["Unblock"])},unblock_progress:e=>{const{normalize:t}=e;return t(["Unblocking…"])},block_progress:e=>{const{normalize:t}=e;return t(["Blocking…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},hide_repeats:e=>{const{normalize:t}=e;return t(["Hide repeats"])},show_repeats:e=>{const{normalize:t}=e;return t(["Show repeats"])},domain_muted:e=>{const{normalize:t}=e;return t(["Unblock domain"])},mute_domain:e=>{const{normalize:t}=e;return t(["Block domain"])},bot:e=>{const{normalize:t}=e;return t(["Bot"])},admin_menu:{moderation:e=>{const{normalize:t}=e;return t(["Moderation"])},grant_admin:e=>{const{normalize:t}=e;return t(["Grant Admin"])},revoke_admin:e=>{const{normalize:t}=e;return t(["Revoke Admin"])},grant_moderator:e=>{const{normalize:t}=e;return t(["Grant Moderator"])},revoke_moderator:e=>{const{normalize:t}=e;return t(["Revoke Moderator"])},activate_account:e=>{const{normalize:t}=e;return t(["Activate account"])},deactivate_account:e=>{const{normalize:t}=e;return t(["Deactivate account"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},force_nsfw:e=>{const{normalize:t}=e;return t(["Mark all posts as NSFW"])},strip_media:e=>{const{normalize:t}=e;return t(["Remove media from posts"])},force_unlisted:e=>{const{normalize:t}=e;return t(["Force posts to be unlisted"])},sandbox:e=>{const{normalize:t}=e;return t(["Force posts to be followers-only"])},disable_remote_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user from remote instances"])},disable_any_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user at all"])},quarantine:e=>{const{normalize:t}=e;return t(["Disallow user posts from federating"])},delete_user:e=>{const{normalize:t}=e;return t(["Delete user"])},delete_user_confirmation:e=>{const{normalize:t}=e;return t(["Are you absolutely sure? This action cannot be undone."])}},highlight:{disabled:e=>{const{normalize:t}=e;return t(["No highlight"])},solid:e=>{const{normalize:t}=e;return t(["Solid bg"])},striped:e=>{const{normalize:t}=e;return t(["Striped bg"])},side:e=>{const{normalize:t}=e;return t(["Side stripe"])}}},user_profile:{timeline_title:e=>{const{normalize:t}=e;return t(["User timeline"])},profile_does_not_exist:e=>{const{normalize:t}=e;return t(["Sorry, this profile does not exist."])},profile_loading_error:e=>{const{normalize:t}=e;return t(["Sorry, there was an error loading this profile."])}},user_reporting:{title:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Reporting ",n(r(0))])},add_comment_description:e=>{const{normalize:t}=e;return t(["The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:"])},additional_comments:e=>{const{normalize:t}=e;return t(["Additional comments"])},forward_description:e=>{const{normalize:t}=e;return t(["The account is from another server. Send a copy of the report there as well?"])},forward_to:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Forward to ",n(r(0))])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occurred while processing your request."])}},who_to_follow:{more:e=>{const{normalize:t}=e;return t(["More"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])}},tool_tip:{media_upload:e=>{const{normalize:t}=e;return t(["Upload media"])},repeat:e=>{const{normalize:t}=e;return t(["Repeat"])},reply:e=>{const{normalize:t}=e;return t(["Reply"])},favorite:e=>{const{normalize:t}=e;return t(["Favorite"])},add_reaction:e=>{const{normalize:t}=e;return t(["Add Reaction"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},accept_follow_request:e=>{const{normalize:t}=e;return t(["Accept follow request"])},reject_follow_request:e=>{const{normalize:t}=e;return t(["Reject follow request"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])}},upload:{error:{base:e=>{const{normalize:t}=e;return t(["Upload failed."])},message:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Upload failed: ",n(r(0))])},file_too_big:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["File too big [",n(r("filesize")),n(r("filesizeunit"))," / ",n(r("allowedsize")),n(r("allowedsizeunit")),"]"])},default:e=>{const{normalize:t}=e;return t(["Try again later"])}},file_size_units:{B:e=>{const{normalize:t}=e;return t(["B"])},KiB:e=>{const{normalize:t}=e;return t(["KiB"])},MiB:e=>{const{normalize:t}=e;return t(["MiB"])},GiB:e=>{const{normalize:t}=e;return t(["GiB"])},TiB:e=>{const{normalize:t}=e;return t(["TiB"])}}},search:{people:e=>{const{normalize:t}=e;return t(["People"])},hashtags:e=>{const{normalize:t}=e;return t(["Hashtags"])},person_talking:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("count"))," person talking"])},people_talking:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("count"))," people talking"])},no_results:e=>{const{normalize:t}=e;return t(["No results"])}},password_reset:{forgot_password:e=>{const{normalize:t}=e;return t(["Forgot password?"])},password_reset:e=>{const{normalize:t}=e;return t(["Password reset"])},instruction:e=>{const{normalize:t}=e;return t(["Enter your email address or username. We will send you a link to reset your password."])},placeholder:e=>{const{normalize:t}=e;return t(["Your email or username"])},check_email:e=>{const{normalize:t}=e;return t(["Check your email for a link to reset your password."])},return_home:e=>{const{normalize:t}=e;return t(["Return to the home page"])},too_many_requests:e=>{const{normalize:t}=e;return t(["You have reached the limit of attempts, try again later."])},password_reset_disabled:e=>{const{normalize:t}=e;return t(["Password reset is disabled. Please contact your instance administrator."])},password_reset_required:e=>{const{normalize:t}=e;return t(["You must reset your password to log in."])},password_reset_required_but_mailer_is_disabled:e=>{const{normalize:t}=e;return t(["You must reset your password, but password reset is disabled. Please contact your instance administrator."])}},chats:{you:e=>{const{normalize:t}=e;return t(["You:"])},message_user:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Message ",n(r("nickname"))])},delete:e=>{const{normalize:t}=e;return t(["Delete"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},new:e=>{const{normalize:t}=e;return t(["New Chat"])},empty_message_error:e=>{const{normalize:t}=e;return t(["Cannot post empty message"])},more:e=>{const{normalize:t}=e;return t(["More"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this message?"])},error_loading_chat:e=>{const{normalize:t}=e;return t(["Something went wrong when loading the chat."])},error_sending_message:e=>{const{normalize:t}=e;return t(["Something went wrong when sending the message."])},empty_chat_list_placeholder:e=>{const{normalize:t}=e;return t(["You don't have any chats yet. Start a new chat!"])}},file_type:{audio:e=>{const{normalize:t}=e;return t(["Audio"])},video:e=>{const{normalize:t}=e;return t(["Video"])},image:e=>{const{normalize:t}=e;return t(["Image"])},file:e=>{const{normalize:t}=e;return t(["File"])}},display_date:{today:e=>{const{normalize:t}=e;return t(["Today"])}}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n(222)},,function(e,t,n){"use strict";n(224)},function(e,t,n){"use strict";n(225)},function(e,t,n){"use strict";n(226)},function(e,t,n){"use strict";n(227)},function(e,t,n){"use strict";n(228)},function(e,t,n){"use strict";n(229)},function(e,t,n){"use strict";n(230)},function(e,t,n){"use strict";n(231)},function(e,t,n){"use strict";n(232)},function(e,t,n){"use strict";n(233)},function(e,t,n){"use strict";n(234)},,function(e,t,n){"use strict";n(235)},function(e,t,n){"use strict";n(236)},function(e,t,n){"use strict";n(237)},function(e,t,n){"use strict";n(238)},function(e,t,n){},function(e,t,n){"use strict";n(239)},function(e,t,n){"use strict";n(240)},function(e,t,n){"use strict";n(241)},function(e,t,n){"use strict";n(242)},function(e,t,n){"use strict";n(243)},function(e,t,n){"use strict";n(244)},function(e,t,n){"use strict";n(245)},function(e,t,n){"use strict";n(246)},function(e,t,n){"use strict";n(247)},function(e,t,n){"use strict";n(248)},function(e,t,n){"use strict";n(249)},function(e,t,n){"use strict";n(250)},function(e,t,n){"use strict";n(251)},function(e,t,n){"use strict";n(252)},,,,function(e,t,n){"use strict";n(254)},function(e,t,n){"use strict";n(255)},function(e,t,n){"use strict";n(256)},function(e,t,n){"use strict";n(257)},function(e,t,n){"use strict";n(258)},function(e,t,n){"use strict";n(259)},function(e,t,n){"use strict";n(260)},function(e,t,n){"use strict";n(261)},function(e,t,n){"use strict";n(262)},function(e,t,n){"use strict";n(263)},function(e,t,n){"use strict";n(264)},function(e,t,n){"use strict";n(265)},function(e,t,n){"use strict";n(266)},function(e,t,n){"use strict";n(267)},function(e,t,n){"use strict";n(268)},function(e,t,n){"use strict";n(269)},function(e,t,n){"use strict";n(270)},function(e,t,n){"use strict";n(271)},function(e,t,n){"use strict";n(272)},function(e,t,n){"use strict";n(273)},function(e,t,n){"use strict";n(274)},function(e,t,n){"use strict";n(275)},function(e,t,n){"use strict";n(276)},function(e,t,n){"use strict";n(277)},function(e,t,n){"use strict";n(278)},function(e,t,n){"use strict";n(279)},function(e,t,n){"use strict";n(280)},function(e,t,n){"use strict";n(281)},function(e,t,n){"use strict";n(282)},function(e,t,n){"use strict";n(283)},,,function(e,t,n){"use strict";n(285)},function(e,t,n){"use strict";n(286)},function(e,t,n){"use strict";n(287)},function(e,t,n){"use strict";n(288)},function(e,t,n){"use strict";n(289)},function(e,t,n){},function(e,t,n){"use strict";n(290)},function(e,t,n){"use strict";n(291)},function(e,t,n){"use strict";n(292)},function(e,t,n){"use strict";n(293)},function(e,t,n){"use strict";n(294)},function(e,t,n){"use strict";n(295)},function(e,t,n){"use strict";n(296)},function(e,t,n){"use strict";n(297)},function(e,t,n){},function(e,t,n){"use strict";n(300)},function(e,t,n){"use strict";n(301)},,function(e,t,n){"use strict";n(302)},function(e,t,n){"use strict";n(303)},function(e,t,n){"use strict";n(304)},function(e,t,n){"use strict";n(305)},function(e,t,n){"use strict";n(306)},function(e,t,n){"use strict";n(307)},function(e,t,n){"use strict";n.r(t);var r=n(13),i=n.n(r),o=n(10),s=n.n(o),a=n(8),c=(n(345),n(309));try{new EventTarget}catch(e){window.EventTarget=c.a}var l={state:{settingsModalState:"hidden",settingsModalLoaded:!1,settingsModalTargetTab:null,settings:{currentSaveStateNotice:null,noticeClearTimeout:null,notificationPermission:null},browserSupport:{cssFilter:window.CSS&&window.CSS.supports&&(window.CSS.supports("filter","drop-shadow(0 0)")||window.CSS.supports("-webkit-filter","drop-shadow(0 0)"))},layoutType:"normal",globalNotices:[],layoutHeight:0,lastTimeline:null},mutations:{settingsSaved:function(e,t){var n=t.success,r=t.error;n?(e.noticeClearTimeout&&clearTimeout(e.noticeClearTimeout),e.settings.currentSaveStateNotice={error:!1,data:n},e.settings.noticeClearTimeout=setTimeout((function(){return delete e.settings.currentSaveStateNotice}),2e3)):e.settings.currentSaveStateNotice={error:!0,errorData:r}},setNotificationPermission:function(e,t){e.notificationPermission=t},setLayoutType:function(e,t){e.layoutType=t},closeSettingsModal:function(e){e.settingsModalState="hidden"},togglePeekSettingsModal:function(e){switch(e.settingsModalState){case"minimized":return void(e.settingsModalState="visible");case"visible":return void(e.settingsModalState="minimized");default:throw new Error("Illegal minimization state of settings modal")}},openSettingsModal:function(e){e.settingsModalState="visible",e.settingsModalLoaded||(e.settingsModalLoaded=!0)},setSettingsModalTargetTab:function(e,t){e.settingsModalTargetTab=t},pushGlobalNotice:function(e,t){e.globalNotices.push(t)},removeGlobalNotice:function(e,t){e.globalNotices=e.globalNotices.filter((function(e){return e!==t}))},setLayoutHeight:function(e,t){e.layoutHeight=t},setLayoutWidth:function(e,t){e.layoutWidth=t},setLastTimeline:function(e,t){e.lastTimeline=t}},actions:{setPageTitle:function(e){var t=e.rootState,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.title="".concat(n," ").concat(t.instance.name)},settingsSaved:function(e,t){var n=e.commit;e.dispatch;n("settingsSaved",{success:t.success,error:t.error})},setNotificationPermission:function(e,t){(0,e.commit)("setNotificationPermission",t)},closeSettingsModal:function(e){(0,e.commit)("closeSettingsModal")},openSettingsModal:function(e){(0,e.commit)("openSettingsModal")},togglePeekSettingsModal:function(e){(0,e.commit)("togglePeekSettingsModal")},clearSettingsModalTargetTab:function(e){(0,e.commit)("setSettingsModalTargetTab",null)},openSettingsModalTab:function(e,t){var n=e.commit;n("setSettingsModalTargetTab",t),n("openSettingsModal")},pushGlobalNotice:function(e,t){var n=e.commit,r=e.dispatch,i=e.state,o=t.messageKey,s=t.messageArgs,a=void 0===s?{}:s,c=t.level,l=void 0===c?"error":c,u=t.timeout,d=void 0===u?0:u;n("pushGlobalNotice",{messageKey:o,messageArgs:a,level:l});var p=i.globalNotices[i.globalNotices.length-1];return d&&setTimeout((function(){return r("removeGlobalNotice",p)}),d),p},removeGlobalNotice:function(e,t){(0,e.commit)("removeGlobalNotice",t)},setLayoutHeight:function(e,t){(0,e.commit)("setLayoutHeight",t)},setLayoutWidth:function(e,t){var n=e.commit,r=e.state,i=e.rootGetters,o=e.rootState,s=t;void 0!==t?n("setLayoutWidth",t):s=r.layoutWidth;var a=s<=800?"mobile":"normal";"none"!==i.mergedConfig.thirdColumnMode&&o.users.currentUser?n("setLayoutType",s>=1300?"wide":a):n("setLayoutType",a)},setLastTimeline:function(e,t){(0,e.commit)("setLastTimeline",t)}}},u=n(12),d=n.n(u),p=n(5),h=n.n(p),b=n(11),m=n.n(b),f=n(42),O=n(54),j=n(15),g=n(120);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;tt.name?1:-1})),n("setInstanceOption",{name:"emoji",value:o}),t.next=14;break;case 13:throw r;case 14:t.next=20;break;case 16:t.prev=16,t.t0=t.catch(1),console.warn("Can't load static emoji"),console.warn(t.t0);case 20:case"end":return t.stop()}}),t,null,[[1,16]])})))()},getCustomEmoji:function(e){return i()(s.a.mark((function t(){var n,r,i,o,a,c;return s.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,r=e.state,t.prev=1,t.next=4,window.fetch("/api/pleroma/emoji.json");case 4:if(!(i=t.sent).ok){t.next=14;break}return t.next=8,i.json();case 8:o=t.sent,a=Array.isArray(o)?Object.assign.apply(Object,[{}].concat(d()(o))):o,c=Object.entries(a).map((function(e){var t=m()(e,2),n=t[0],i=t[1],o=i.image_url;return{displayText:n,imageUrl:o?r.server+o:i,tags:o?i.tags.sort((function(e,t){return e>t?1:0})):["utf"],replacement:":".concat(n,": ")}})).sort((function(e,t){return e.displayText.toLowerCase()>t.displayText.toLowerCase()?1:-1})),n("setInstanceOption",{name:"customEmoji",value:c}),t.next=15;break;case 14:throw i;case 15:t.next=21;break;case 17:t.prev=17,t.t0=t.catch(1),console.warn("Can't load custom emojis"),console.warn(t.t0);case 21:case"end":return t.stop()}}),t,null,[[1,17]])})))()},setTheme:function(e,t){var n=e.commit,r=e.rootState;n("setInstanceOption",{name:"theme",value:t}),Object(f.j)(t).then((function(e){if(n("setInstanceOption",{name:"themeData",value:e}),!r.config.customTheme){var t=e.source;!e.theme||t&&t.themeEngineVersion===O.a?Object(f.b)(t):Object(f.b)(e.theme)}}))},fetchEmoji:function(e){var t=e.dispatch,n=e.state;n.customEmojiFetched||(n.customEmojiFetched=!0,t("getCustomEmoji")),n.emojiFetched||(n.emojiFetched=!0,t("getStaticEmoji"))},getKnownDomains:function(e){return i()(s.a.mark((function t(){var n,r,i;return s.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,r=e.rootState,t.prev=1,t.next=4,j.c.fetchKnownDomains({credentials:r.users.currentUser.credentials});case 4:i=t.sent,n("setKnownDomains",i),t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.warn("Can't load known domains"),console.warn(t.t0);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))()}}},k=n(130),_=n.n(k),S=n(19),C=n.n(S),P=n(45),D=n.n(P),x=n(316),T=n.n(x),I=n(121),$=n.n(I),z=n(131),M=n.n(z),U=n(132),F=n.n(U),E=n(30),L=n.n(E),R=n(60),A=n.n(R),N=n(29),B=n.n(N),V=n(317),H=n.n(V),J=n(61),q=n.n(J),W=n(26);function Y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function G(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:0;return{statuses:[],statusesObject:{},faves:[],visibleStatuses:[],visibleStatusesObject:{},newStatusCount:0,maxId:0,minId:0,minVisibleId:0,loading:!1,followers:[],friends:[],userId:e,flushMarker:0}},X=function(){return{desktopNotificationSilence:!0,maxId:0,minId:Number.POSITIVE_INFINITY,data:[],idStore:{},loading:!1}},Z=function(){return{allStatuses:[],allStatusesObject:{},conversationsObject:{},maxId:0,notifications:X(),favorites:new Set,timelines:{mentions:K(),public:K(),user:K(),favorites:K(),media:K(),publicAndExternal:K(),friends:K(),tag:K(),dms:K(),bookmarks:K()}}},Q=function(e,t,n){var r=t[n.id];return r?($()(r,_()(n,(function(e,t){return null===e||"user"===t}))),r.attachments.splice(r.attachments.length),{item:r,new:!1}):(function(e){e.deleted=!1,e.attachments=e.attachments||[]}(n),e.push(n),t[n.id]=n,{item:n,new:!0})},ee=function(e,t){var n=Number(e.id),r=Number(t.id),i=!Number.isNaN(n),o=!Number.isNaN(r);return i&&o?n>r?-1:1:i&&!o?1:!i&&o||e.id>t.id?-1:1},te=function(e){return e.visibleStatuses=e.visibleStatuses.sort(ee),e.statuses=e.statuses.sort(ee),e.minVisibleId=(D()(e.visibleStatuses)||{}).id,e},ne=function(e,t){var n=Q(e.allStatuses,e.allStatusesObject,t);if(n.new){var r=n.item,i=e.conversationsObject,o=r.statusnet_conversation_id;i[o]?i[o].push(r):i[o]=[r]}return n},re=function(e,t){e.notifications.maxId=t.id>e.notifications.maxId?t.id:e.notifications.maxId,e.notifications.minId=t.id0?M()(n,"id").id:0),f=p.minId||(n.length>0?F()(n,"id").id:0),O=o&&(f>b.maxId||0===b.maxId)&&n.length>0,j=o&&(m0;if(!l&&O&&(b.maxId=f),!l&&j&&(b.minId=m),"user"!==o&&"media"!==o||b.userId===u){var g=function(t,n){var r,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=ne(e,t),c=s.item;if(s.new){if("status"===c.type&&L()(c.attentions,{id:a.id})){var l=e.timelines.mentions;b!==l&&(Q(l.statuses,l.statusesObject,c),l.newStatusCount+=1,te(l))}if("direct"===c.visibility){var u=e.timelines.dms;Q(u.statuses,u.statusesObject,c),u.newStatusCount+=1,te(u)}}return o&&i&&(r=Q(b.statuses,b.statusesObject,c)),o&&n?Q(b.visibleStatuses,b.visibleStatusesObject,c):o&&i&&r.new&&(b.newStatusCount+=1),c},v={status:function(e){g(e,i)},retweet:function(e){var t,n=g(e.retweeted_status,!1,!1);t=o&&L()(b.statuses,(function(e){return e.retweeted_status?e.id===n.id||e.retweeted_status.id===n.id:e.id===n.id}))?g(e,!1,!1):g(e,i),t.retweeted_status=n},favorite:function(t){e.favorites.has(t.id)||(e.favorites.add(t.id),function(e,t){var n=L()(h,{id:e.in_reply_to_status_id});n&&(e.user.id===a.id?n.favorited=!0:n.fave_num+=1)}(t))},deletion:function(t){var n=t.uri,r=L()(h,{uri:n});r&&(!function(e,t){q()(e.allStatuses,{id:t.id}),q()(e.notifications.data,(function(e){return e.action.id===t.id}));var n=t.statusnet_conversation_id;e.conversationsObject[n]&&q()(e.conversationsObject[n],{id:t.id})}(e,r),o&&(q()(b.statuses,{uri:n}),q()(b.visibleStatuses,{uri:n})))},follow:function(e){},default:function(e){console.log("unknown status type"),console.log(e)}};B()(n,(function(e){var t=e.type;(v[t]||v.default)(e)})),o&&"bookmarks"!==o&&te(b)}},addNewNotifications:function(e,t){var n=t.dispatch,r=t.notifications,i=(t.older,t.visibleNotificationTypes,t.rootGetters,t.newNotificationSideEffects);B()(r,(function(t){if(!Object(W.c)(t))return console.error("Invalid notification:",t),void re(e,t);Object(W.b)(t.type)&&(t.action=ne(e,t.action).item,t.status=t.status&&ne(e,t.status).item),"pleroma:emoji_reaction"===t.type&&n("fetchEmojiReactionsBy",t.status.id),e.notifications.idStore.hasOwnProperty(t.id)?t.seen&&(e.notifications.idStore[t.id].seen=!0):(re(e,t),e.notifications.data.push(t),e.notifications.idStore[t.id]=t,i(t))}))},removeStatus:function(e,t){var n=t.timeline,r=t.userId,i=e.timelines[n];r&&(q()(i.statuses,{user:{id:r}}),q()(i.visibleStatuses,{user:{id:r}}),i.minVisibleId=i.visibleStatuses.length>0?D()(i.visibleStatuses).id:0,i.maxId=i.statuses.length>0?T()(i.statuses).id:0)},showNewStatuses:function(e,t){var n=t.timeline,r=e.timelines[n];r.newStatusCount=0,r.visibleStatuses=H()(r.statuses,0,50),r.minVisibleId=D()(r.visibleStatuses).id,r.minId=r.minVisibleId,r.visibleStatusesObject={},B()(r.visibleStatuses,(function(e){r.visibleStatusesObject[e.id]=e}))},resetStatuses:function(e){var t=Z();Object.entries(t).forEach((function(t){var n=m()(t,2),r=n[0],i=n[1];e[r]=i}))},clearTimeline:function(e,t){var n=t.timeline,r=t.excludeUserId,i=void 0!==r&&r?e.timelines[n].userId:void 0;e.timelines[n]=K(i)},clearNotifications:function(e){e.notifications=X()},setFavorited:function(e,t){var n=t.status,r=t.value,i=e.allStatusesObject[n.id];i.favorited!==r&&(r?i.fave_num++:i.fave_num--),i.favorited=r},setFavoritedConfirm:function(e,t){var n=t.status,r=t.user,i=e.allStatusesObject[n.id];i.favorited=n.favorited,i.fave_num=n.fave_num;var o=A()(i.favoritedBy,{id:r.id});-1===o||i.favorited?-1===o&&i.favorited&&i.favoritedBy.push(r):i.favoritedBy.splice(o,1)},setMutedStatus:function(e,t){var n=e.allStatusesObject[t.id];n.thread_muted=t.thread_muted,void 0!==n.thread_muted&&e.conversationsObject[n.statusnet_conversation_id].forEach((function(e){e.thread_muted=n.thread_muted}))},setRetweeted:function(e,t){var n=t.status,r=t.value,i=e.allStatusesObject[n.id];i.repeated!==r&&(r?i.repeat_num++:i.repeat_num--),i.repeated=r},setRetweetedConfirm:function(e,t){var n=t.status,r=t.user,i=e.allStatusesObject[n.id];i.repeated=n.repeated,i.repeat_num=n.repeat_num;var o=A()(i.rebloggedBy,{id:r.id});-1===o||i.repeated?-1===o&&i.repeated&&i.rebloggedBy.push(r):i.rebloggedBy.splice(o,1)},setBookmarked:function(e,t){var n=t.status,r=t.value;e.allStatusesObject[n.id].bookmarked=r},setBookmarkedConfirm:function(e,t){var n=t.status;e.allStatusesObject[n.id].bookmarked=n.bookmarked},setDeleted:function(e,t){var n=t.status,r=e.allStatusesObject[n.id];r&&(r.deleted=!0)},setManyDeleted:function(e,t){Object.values(e.allStatusesObject).forEach((function(e){t(e)&&(e.deleted=!0)}))},setLoading:function(e,t){var n=t.timeline,r=t.value;e.timelines[n].loading=r},setNsfw:function(e,t){var n=t.id,r=t.nsfw;e.allStatusesObject[n].nsfw=r},setNotificationsLoading:function(e,t){var n=t.value;e.notifications.loading=n},setNotificationsSilence:function(e,t){var n=t.value;e.notifications.desktopNotificationSilence=n},markNotificationsAsSeen:function(e){B()(e.notifications.data,(function(e){e.seen=!0}))},markSingleNotificationAsSeen:function(e,t){var n=t.id,r=L()(e.notifications.data,(function(e){return e.id===n}));r&&(r.seen=!0)},dismissNotification:function(e,t){var n=t.id;e.notifications.data=e.notifications.data.filter((function(e){return e.id!==n}))},dismissNotifications:function(e,t){var n=t.finder;e.notifications.data=e.notifications.data.filter((function(e){return n}))},updateNotification:function(e,t){var n=t.id,r=t.updater,i=L()(e.notifications.data,(function(e){return e.id===n}));i&&r(i)},queueFlush:function(e,t){var n=t.timeline,r=t.id;e.timelines[n].flushMarker=r},queueFlushAll:function(e){Object.keys(e.timelines).forEach((function(t){e.timelines[t].flushMarker=e.timelines[t].maxId}))},addRepeats:function(e,t){var n=t.id,r=t.rebloggedByUsers,i=t.currentUser,o=e.allStatusesObject[n];o.rebloggedBy=r.filter((function(e){return e})),o.repeat_num=o.rebloggedBy.length,o.repeated=!!o.rebloggedBy.find((function(e){var t=e.id;return i.id===t}))},addFavs:function(e,t){var n=t.id,r=t.favoritedByUsers,i=t.currentUser,o=e.allStatusesObject[n];o.favoritedBy=r.filter((function(e){return e})),o.fave_num=o.favoritedBy.length,o.favorited=!!o.favoritedBy.find((function(e){var t=e.id;return i.id===t}))},addEmojiReactionsBy:function(e,t){var n=t.id,r=t.emojiReactions;t.currentUser;e.allStatusesObject[n].emoji_reactions=r},addOwnReaction:function(e,t){var n=t.id,r=t.emoji,i=t.currentUser,o=e.allStatusesObject[n],s=A()(o.emoji_reactions,{name:r}),a=o.emoji_reactions[s]||{name:r,count:0,accounts:[]},c=G(G({},a),{},{count:a.count+1,me:!0,accounts:[].concat(d()(a.accounts),[i])});s>=0?o.emoji_reactions[s]=c:o.emoji_reactions=[].concat(d()(o.emoji_reactions),[c])},removeOwnReaction:function(e,t){var n=t.id,r=t.emoji,i=t.currentUser,o=e.allStatusesObject[n],s=A()(o.emoji_reactions,{name:r});if(!(s<0)){var a=o.emoji_reactions[s],c=a.accounts||[],l=G(G({},a),{},{count:a.count-1,me:!1,accounts:c.filter((function(e){return e.id!==i.id}))});l.count>0?o.emoji_reactions[s]=l:o.emoji_reactions=o.emoji_reactions.filter((function(e){return e.name!==r}))}},updateStatusWithPoll:function(e,t){var n=t.id,r=t.poll;e.allStatusesObject[n].poll=r},setVirtualHeight:function(e,t){var n=t.statusId,r=t.height;e.allStatusesObject[n].virtualHeight=r}},oe={state:Z(),actions:{addNewStatuses:function(e,t){var n=e.rootState,r=e.commit,i=t.statuses,o=t.showImmediately,s=void 0!==o&&o,a=t.timeline,c=void 0!==a&&a,l=t.noIdUpdate,u=void 0!==l&&l,d=t.userId,p=t.pagination;r("addNewStatuses",{statuses:i,showImmediately:s,timeline:c,noIdUpdate:u,user:n.users.currentUser,userId:d,pagination:p})},addNewNotifications:function(e,t){var n=t.notifications,r=t.older;(0,e.commit)("addNewNotifications",{dispatch:e.dispatch,notifications:n,older:r,rootGetters:e.rootGetters,newNotificationSideEffects:function(t){Object(W.d)(e,t)}})},setNotificationsLoading:function(e,t){e.rootState;(0,e.commit)("setNotificationsLoading",{value:t.value})},setNotificationsSilence:function(e,t){e.rootState;(0,e.commit)("setNotificationsSilence",{value:t.value})},fetchStatus:function(e,t){var n=e.rootState,r=e.dispatch;return n.api.backendInteractor.fetchStatus({id:t}).then((function(e){return r("addNewStatuses",{statuses:[e]})}))},deleteStatus:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:t}),j.c.deleteStatus({id:t.id,credentials:n.users.currentUser.credentials})},deleteStatusById:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:n.statuses.allStatusesObject[t]})},markStatusesAsDeleted:function(e,t){(0,e.commit)("setManyDeleted",t)},favorite:function(e,t){var n=e.rootState,r=e.commit;r("setFavorited",{status:t,value:!0}),n.api.backendInteractor.favorite({id:t.id}).then((function(e){return r("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},unfavorite:function(e,t){var n=e.rootState,r=e.commit;r("setFavorited",{status:t,value:!1}),n.api.backendInteractor.unfavorite({id:t.id}).then((function(e){return r("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},fetchPinnedStatuses:function(e,t){var n=e.rootState,r=e.dispatch;n.api.backendInteractor.fetchPinnedStatuses({id:t}).then((function(e){return r("addNewStatuses",{statuses:e,timeline:"user",userId:t,showImmediately:!0,noIdUpdate:!0})}))},pinStatus:function(e,t){var n=e.rootState,r=e.dispatch;return n.api.backendInteractor.pinOwnStatus({id:t}).then((function(e){return r("addNewStatuses",{statuses:[e]})}))},unpinStatus:function(e,t){var n=e.rootState,r=e.dispatch;n.api.backendInteractor.unpinOwnStatus({id:t}).then((function(e){return r("addNewStatuses",{statuses:[e]})}))},muteConversation:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.muteConversation({id:t}).then((function(e){return r("setMutedStatus",e)}))},unmuteConversation:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.unmuteConversation({id:t}).then((function(e){return r("setMutedStatus",e)}))},retweet:function(e,t){var n=e.rootState,r=e.commit;r("setRetweeted",{status:t,value:!0}),n.api.backendInteractor.retweet({id:t.id}).then((function(e){return r("setRetweetedConfirm",{status:e.retweeted_status,user:n.users.currentUser})}))},unretweet:function(e,t){var n=e.rootState,r=e.commit;r("setRetweeted",{status:t,value:!1}),n.api.backendInteractor.unretweet({id:t.id}).then((function(e){return r("setRetweetedConfirm",{status:e,user:n.users.currentUser})}))},bookmark:function(e,t){var n=e.rootState,r=e.commit;r("setBookmarked",{status:t,value:!0}),n.api.backendInteractor.bookmarkStatus({id:t.id}).then((function(e){r("setBookmarkedConfirm",{status:e})}))},unbookmark:function(e,t){var n=e.rootState,r=e.commit;r("setBookmarked",{status:t,value:!1}),n.api.backendInteractor.unbookmarkStatus({id:t.id}).then((function(e){r("setBookmarkedConfirm",{status:e})}))},queueFlush:function(e,t){e.rootState;(0,e.commit)("queueFlush",{timeline:t.timeline,id:t.id})},queueFlushAll:function(e){e.rootState;(0,e.commit)("queueFlushAll")},markNotificationsAsSeen:function(e){var t=e.rootState;(0,e.commit)("markNotificationsAsSeen"),j.c.markNotificationsAsSeen({id:t.statuses.notifications.maxId,credentials:t.users.currentUser.credentials})},markSingleNotificationAsSeen:function(e,t){var n=e.rootState,r=e.commit,i=t.id;r("markSingleNotificationAsSeen",{id:i}),j.c.markNotificationsAsSeen({single:!0,id:i,credentials:n.users.currentUser.credentials})},dismissNotificationLocal:function(e,t){e.rootState;(0,e.commit)("dismissNotification",{id:t.id})},dismissNotification:function(e,t){var n=e.rootState,r=e.commit,i=t.id;r("dismissNotification",{id:i}),n.api.backendInteractor.dismissNotification({id:i})},updateNotification:function(e,t){e.rootState;(0,e.commit)("updateNotification",{id:t.id,updater:t.updater})},fetchFavsAndRepeats:function(e,t){var n=e.rootState,r=e.commit;Promise.all([n.api.backendInteractor.fetchFavoritedByUsers({id:t}),n.api.backendInteractor.fetchRebloggedByUsers({id:t})]).then((function(e){var i=m()(e,2),o=i[0],s=i[1];r("addFavs",{id:t,favoritedByUsers:o,currentUser:n.users.currentUser}),r("addRepeats",{id:t,rebloggedByUsers:s,currentUser:n.users.currentUser})}))},reactWithEmoji:function(e,t){var n=e.rootState,r=e.dispatch,i=e.commit,o=t.id,s=t.emoji,a=n.users.currentUser;a&&(i("addOwnReaction",{id:o,emoji:s,currentUser:a}),n.api.backendInteractor.reactWithEmoji({id:o,emoji:s}).then((function(e){r("fetchEmojiReactionsBy",o)})))},unreactWithEmoji:function(e,t){var n=e.rootState,r=e.dispatch,i=e.commit,o=t.id,s=t.emoji,a=n.users.currentUser;a&&(i("removeOwnReaction",{id:o,emoji:s,currentUser:a}),n.api.backendInteractor.unreactWithEmoji({id:o,emoji:s}).then((function(e){r("fetchEmojiReactionsBy",o)})))},fetchEmojiReactionsBy:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.fetchEmojiReactions({id:t}).then((function(e){r("addEmojiReactionsBy",{id:t,emojiReactions:e,currentUser:n.users.currentUser})}))},fetchFavs:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.fetchFavoritedByUsers({id:t}).then((function(e){return r("addFavs",{id:t,favoritedByUsers:e,currentUser:n.users.currentUser})}))},fetchRepeats:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.fetchRebloggedByUsers({id:t}).then((function(e){return r("addRepeats",{id:t,rebloggedByUsers:e,currentUser:n.users.currentUser})}))},search:function(e,t){var n=t.q,r=t.resolve,i=t.limit,o=t.offset,s=t.following;return e.rootState.api.backendInteractor.search2({q:n,resolve:r,limit:i,offset:o,following:s}).then((function(t){return e.commit("addNewUsers",t.accounts),e.commit("addNewStatuses",{statuses:t.statuses}),t}))},setVirtualHeight:function(e,t){(0,e.commit)("setVirtualHeight",{statusId:t.statusId,height:t.height})}},mutations:ie},se=n(97),ae=n.n(se),ce=n(96),le=n.n(ce),ue=n(145),de=n.n(ue),pe=n(21),he=n.n(pe),be=n(167),me=n.n(be),fe=n(146),Oe=n.n(fe),je=n(43),ge=function(e){var t=e.store,n=e.credentials,r=e.timeline,i=void 0===r?"friends":r,o=e.older,s=void 0!==o&&o,a=e.showImmediately,c=void 0!==a&&a,l=e.userId,u=void 0!==l&&l,d=e.tag,p=void 0!==d&&d,h=e.until,b=e.since,m={timeline:i,credentials:n},f=t.rootState||t.state,O=t.getters,g=f.statuses.timelines[Oe()(i)],v=O.mergedConfig,y=v.hideMutedPosts,w=v.replyVisibility,k=!!f.users.currentUser;s?m.until=h||g.minId:void 0===b?m.since=g.maxId:null!==b&&(m.since=b),m.userId=u,m.tag=p,m.withMuted=!y,k&&["friends","public","publicAndExternal"].includes(i)&&(m.replyVisibility=w);var _=g.statuses.length;return j.c.fetchTimeline(m).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data,r=e.pagination;return!s&&n.length>=20&&!g.loading&&_>0&&t.dispatch("queueFlush",{timeline:i,id:g.maxId}),function(e){var t=e.store,n=e.statuses,r=e.timeline,i=e.showImmediately,o=e.userId,s=e.pagination,a=Oe()(r);t.dispatch("addNewStatuses",{timeline:a,userId:o,statuses:n,showImmediately:i,pagination:s})}({store:t,statuses:n,timeline:i,showImmediately:c,userId:u,pagination:r}),{statuses:n,pagination:r}})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"timeline.error",messageArgs:[e.message],timeout:5e3})}))},ve={fetchAndUpdate:ge,startFetching:function(e){var t=e.timeline,n=void 0===t?"friends":t,r=e.credentials,i=e.store,o=e.userId,s=void 0!==o&&o,a=e.tag,c=void 0!==a&&a,l=(i.rootState||i.state).statuses.timelines[Oe()(n)],u=0===l.visibleStatuses.length;l.userId=s,ge({timeline:n,credentials:r,store:i,showImmediately:u,userId:s,tag:c});return Object(je.a)((function(){return ge({timeline:n,credentials:r,store:i,userId:s,tag:c})}),2e4)}},ye=n(98),we={startFetching:function(e){var t=e.credentials,n=e.store,r=function(){return function(e){var t=e.store,n=e.credentials;return j.c.fetchFollowRequests({credentials:n}).then((function(e){t.commit("setFollowRequests",e),t.commit("addNewUsers",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return r(),Object(je.a)(r,24e4)}};function ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _e(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Ve(e,t)})))},unblockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return He(e,t)})))},fetchMutes:function(e){return e.rootState.api.backendInteractor.fetchMutes().then((function(t){return e.commit("saveMuteIds",he()(t,"id")),e.commit("addNewUsers",t),t}))},muteUser:function(e,t){return Je(e,t)},unmuteUser:function(e,t){return qe(e,t)},hideReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!1}).then((function(t){e.commit("updateUserRelationship",[t])}))}(e,t)},showReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!0}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},muteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Je(e,t)})))},unmuteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return qe(e,t)})))},fetchMascot:function(e){return function(e){return e.rootState.api.backendInteractor.fetchMascot().then((function(t){var n=t.url;return e.commit("updateMascot",n)}))}(e)},fetchDomainMutes:function(e){return e.rootState.api.backendInteractor.fetchDomainMutes().then((function(t){return e.commit("saveDomainMutes",t),t}))},muteDomain:function(e,t){return We(e,t)},unmuteDomain:function(e,t){return Ye(e,t)},muteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return We(e,t)})))},unmuteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Ye(e,t)})))},fetchFriends:function(e,t){var n=e.rootState,r=e.commit,i=n.users.usersObject[t],o=D()(i.friendIds);return n.api.backendInteractor.fetchFriends({id:t,maxId:o}).then((function(e){return r("addNewUsers",e),r("saveFriendIds",{id:t,friendIds:he()(e,"id")}),e}))},fetchFollowers:function(e,t){var n=e.rootState,r=e.commit,i=n.users.usersObject[t],o=D()(i.followerIds);return n.api.backendInteractor.fetchFollowers({id:t,maxId:o}).then((function(e){return r("addNewUsers",e),r("saveFollowerIds",{id:t,followerIds:he()(e,"id")}),e}))},clearFriends:function(e,t){(0,e.commit)("clearFriends",t)},clearFollowers:function(e,t){(0,e.commit)("clearFollowers",t)},subscribeUser:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.subscribeUser({id:t}).then((function(e){return r("updateUserRelationship",[e])}))},unsubscribeUser:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.unsubscribeUser({id:t}).then((function(e){return r("updateUserRelationship",[e])}))},toggleActivationStatus:function(e,t){var n=e.rootState,r=e.commit,i=t.user;(i.deactivated?n.api.backendInteractor.activateUser:n.api.backendInteractor.deactivateUser)({user:i}).then((function(e){var t=!e.is_active;r("updateActivationStatus",{user:e,deactivated:t})}))},registerPushNotifications:function(e){var t=e.state.currentUser.credentials,n=e.rootState.instance.vapidPublicKey;Re(e.rootState.config.webPushNotifications,n,t,e.rootState.config.notificationVisibility)},unregisterPushNotifications:function(e){!function(e){Fe()&&Promise.all([Le(e),Ee().then((function(e){return function(e){return e.pushManager.getSubscription().then((function(e){if(null!==e)return e.unsubscribe()}))}(e).then((function(t){return[e,t]}))})).then((function(e){var t=m()(e,2),n=t[0];return t[1]||console.warn("Push subscription cancellation wasn't successful, killing SW anyway..."),n.unregister().then((function(e){e||console.warn("Failed to kill SW")}))}))]).catch((function(e){return console.warn("Failed to disable Web Push Notifications: ".concat(e.message))}))}(e.state.currentUser.credentials)},addNewUsers:function(e,t){(0,e.commit)("addNewUsers",t)},addNewStatuses:function(e,t){var n=t.statuses,r=he()(n,"user"),i=me()(he()(n,"retweeted_status.user"));e.commit("addNewUsers",r),e.commit("addNewUsers",i),B()(n,(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)})),B()(me()(he()(n,"retweeted_status")),(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)}))},addNewNotifications:function(e,t){var n=t.notifications,r=he()(n,"from_profile"),i=he()(n,"target").filter((function(e){return e})),o=n.map((function(e){return e.id}));e.commit("addNewUsers",r),e.commit("addNewUsers",i);var s=e.rootState.statuses.notifications.idStore,a=Object.entries(s).filter((function(e){var t=m()(e,2),n=t[0];t[1];return o.includes(n)})).map((function(e){var t=m()(e,2);t[0];return t[1]}));B()(a,(function(t){e.commit("setUserForNotification",t)}))},searchUsers:function(e,t){var n=e.rootState,r=e.commit,i=t.query;return n.api.backendInteractor.searchUsers({query:i}).then((function(e){return r("addNewUsers",e),e}))},signUp:function(e,t){return i()(s.a.mark((function n(){var r,i,o;return s.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.commit("signUpPending"),r=e.rootState,n.prev=2,n.next=5,r.api.backendInteractor.register({params:Ne({},t)});case 5:i=n.sent,e.commit("signUpSuccess"),e.commit("setToken",i.access_token),e.dispatch("loginUser",i.access_token),n.next=16;break;case 11:throw n.prev=11,n.t0=n.catch(2),o=n.t0.message,e.commit("signUpFailure",o),n.t0;case 16:case"end":return n.stop()}}),n,null,[[2,11]])})))()},getCaptcha:function(e){return i()(s.a.mark((function t(){return s.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.rootState.api.backendInteractor.getCaptcha());case 1:case"end":return t.stop()}}),t)})))()},logout:function(e){var t=e.rootState,n=t.oauth,r=t.instance,i=Ne(Ne({},n),{},{commit:e.commit,instance:r.server});return ze.getOrCreateApp(i).then((function(e){var t={app:e,instance:i.instance,token:n.userToken};return ze.revokeToken(t)})).then((function(){e.commit("clearCurrentUser"),e.dispatch("disconnectFromSocket"),e.commit("clearToken"),e.dispatch("stopFetchingTimeline","friends"),e.commit("setBackendInteractor",Se(e.getters.getToken())),e.dispatch("stopFetchingNotifications"),e.dispatch("stopFetchingFollowRequests"),e.commit("clearNotifications"),e.commit("resetStatuses"),e.dispatch("resetChats"),e.dispatch("setLastTimeline","public-timeline"),e.dispatch("setLayoutWidth",Ce()),e.dispatch("setLayoutHeight",Pe())}))},loginUser:function(e,t){return new Promise((function(n,r){var i=e.commit;i("beginLogin"),e.rootState.api.backendInteractor.verifyCredentials(t).then((function(o){if(o.error){var s=o.error;i("endLogin"),401===s.status?r(new Error("Wrong username or password")):r(new Error("An error occurred, please try again"))}else{var a=o;a.credentials=t,a.blockIds=[],a.muteIds=[],a.domainMutes=[],i("setCurrentUser",a),i("addNewUsers",[a]),e.dispatch("fetchEmoji"),(c=window.Notification,c?"default"===c.permission?c.requestPermission():Promise.resolve(c.permission):Promise.resolve(null)).then((function(e){return i("setNotificationPermission",e)})),i("setBackendInteractor",Se(t)),a.token&&(e.dispatch("setWsToken",a.token),e.dispatch("initializeSocket"));e.getters.mergedConfig.useStreamingApi?(e.dispatch("fetchTimeline","friends",{since:null}),e.dispatch("fetchNotifications",{since:null}),e.dispatch("enableMastoSockets",!0).catch((function(e){console.error("Failed initializing MastoAPI Streaming socket",e)})).then((function(){e.dispatch("fetchChats",{latest:!0}),setTimeout((function(){return e.dispatch("setNotificationsSilence",!1)}),1e4)}))):(e.dispatch("startFetchingTimeline",{timeline:"friends"}),e.dispatch("startFetchingNotifications"),e.dispatch("startFetchingChats")),e.dispatch("fetchMutes"),e.dispatch("setLayoutWidth",Ce()),e.dispatch("setLayoutHeight",Pe()),e.rootState.api.backendInteractor.fetchFriends({id:a.id}).then((function(e){return i("addNewUsers",e)}))}var c;i("endLogin"),n()})).catch((function(e){console.log(e),i("endLogin"),r(new Error("Failed to connect to server, try again"))}))}))}}},Ke=n(168),Xe=n.n(Ke),Ze=n(126),Qe=function(e,t){if(t.lastMessage&&(e.rootState.chats.currentChatId!==t.id||document.hidden)&&e.rootState.users.currentUser.id!==t.lastMessage.account_id){var n={tag:t.lastMessage.id,title:t.account.name,icon:t.account.profile_image_url,body:t.lastMessage.content};t.lastMessage.attachment&&"image"===t.lastMessage.attachment.type&&(n.image=t.lastMessage.attachment.preview_url),Object(Ze.a)(e.rootState,n)}},et=n(319);function tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nt(e){for(var t=1;tDate.parse(t.expires_at),e.pollsObject[t.id]=n?$()(n,t):t},trackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n+1:1},untrackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n-1:0}},actions:{mergeOrAddPoll:function(e,t){(0,e.commit)("mergeOrAddPoll",t)},updateTrackedPoll:function(e,t){var n=e.rootState,r=e.dispatch,i=e.commit;n.api.backendInteractor.fetchPoll({pollId:t}).then((function(e){setTimeout((function(){n.polls.trackedPolls[t]&&r("updateTrackedPoll",t)}),3e4),i("mergeOrAddPoll",e)}))},trackPoll:function(e,t){var n=e.rootState,r=e.commit,i=e.dispatch;n.polls.trackedPolls[t]||setTimeout((function(){return i("updateTrackedPoll",t)}),3e4),r("trackPoll",t)},untrackPoll:function(e,t){(0,e.commit)("untrackPoll",t)},votePoll:function(e,t){var n=e.rootState,r=e.commit,i=(t.id,t.pollId),o=t.choices;return n.api.backendInteractor.vote({pollId:i,choices:o}).then((function(e){return r("mergeOrAddPoll",e),e}))}}},Ot={state:{params:null,modalActivated:!1},mutations:{openPostStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closePostStatusModal:function(e){e.modalActivated=!1}},actions:{openPostStatusModal:function(e,t){(0,e.commit)("openPostStatusModal",t)},closePostStatusModal:function(e){(0,e.commit)("closePostStatusModal")}}},jt=n(133),gt=n.n(jt),vt=n(99),yt=n.n(vt),wt=n(0),kt=n(28),_t=n.n(kt),St=n(320),Ct=n.n(St),Pt=n(124),Dt=n.n(Pt);function xt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Tt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tt(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function Tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.maxId)&&i&&(e.maxId=r.id),e.idIndex[r.id]||It(e,r)||(e.lastSeenMessageId0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=void 0===t?"vuex-lz":t,r=e.paths,i=void 0===r?[]:r,o=e.getState,s=void 0===o?function(e,t){return t.getItem(e)}:o,a=e.setState,c=void 0===a?function(e,t,n){return Gt?n.setItem(e,t):(console.log("waiting for old state to be loaded..."),Promise.resolve())}:a,l=e.reducer,u=void 0===l?Kt:l,d=e.storage,p=void 0===d?Zt:d,h=e.subscriber,b=void 0===h?function(e){return function(t){return e.subscribe(t)}}:h;return s(n,p).then((function(e){return function(t){try{if(null!==e&&"object"===_t()(e)){var r=e.users||{};r.usersObject={};var o=r.users||[];B()(o,(function(e){r.usersObject[e.id]=e})),e.users=r,t.replaceState(Wt()({},t.state,e))}Gt=!0}catch(e){console.log("Couldn't load state"),console.error(e),Gt=!0}b(t)((function(e,r){try{Xt.includes(e.type)&&c(n,u(Nt()(r),i),p).then((function(n){void 0!==n&&("setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{success:n}))}),(function(n){"setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{error:n})}))}catch(e){console.log("Couldn't persist state:"),console.log(e)}}))}}))}var en=function(e){e.subscribe((function(t,n){var r=n.instance.vapidPublicKey,i=n.config.webPushNotifications,o="granted"===n.interface.notificationPermission,s=n.users.currentUser,a="setCurrentUser"===t.type,c="setInstanceOption"===t.type&&"vapidPublicKey"===t.payload.name,l="setNotificationPermission"===t.type&&"granted"===t.payload,u="setOption"===t.type&&"webPushNotifications"===t.payload.name,d="setOption"===t.type&&"notificationVisibility"===t.payload.name;if(a||c||l||u||d){if(s&&r&&o&&i)return e.dispatch("registerPushNotifications");if(u&&!i)return e.dispatch("unregisterPushNotifications")}}))},tn=n(70),nn=n(170),rn=n(323),on=n.n(rn),sn=n(68);const an=Object(wt.k)("div",{id:"app_bg_wrapper",class:"app-bg-wrapper"},null,-1),cn=Object(wt.k)("div",{class:"underlay"},null,-1),ln=Object(wt.k)("div",{id:"notifs-sidebar"},null,-1),un={key:0,class:"login-hint panel panel-default"},dn=Object(wt.k)("div",{id:"modal"},null,-1);const pn={class:"user-panel"},hn={key:"user-panel-signed",class:"panel panel-default signed-in"};const bn={class:"login panel panel-default"},mn={class:"panel-heading"},fn={class:"panel-body"},On={class:"form-group"},jn={for:"username"},gn=["disabled","placeholder"],vn={class:"form-group"},yn={for:"password"},wn=["disabled"],kn={class:"form-group"},_n={key:1,class:"form-group"},Sn={class:"form-group"},Cn={class:"login-bottom"},Pn=["disabled"],Dn={key:0,class:"form-group"},xn={class:"alert error"};var Tn=n(6),In=n(3);function $n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zn(e){for(var t=1;te.submit&&e.submit(...t),["prevent"]))},[e.isPasswordAuth?(Object(wt.D)(),Object(wt.j)(wt.a,{key:0},[Object(wt.k)("div",On,[Object(wt.k)("label",jn,Object(wt.O)(e.$t("login.username")),1),Object(wt.W)(Object(wt.k)("input",{id:"username","onUpdate:modelValue":t[0]||(t[0]=t=>e.user.username=t),disabled:e.loggingIn,class:"form-control",placeholder:e.$t("login.placeholder")},null,8,gn),[[wt.S,e.user.username]])]),Object(wt.k)("div",vn,[Object(wt.k)("label",yn,Object(wt.O)(e.$t("login.password")),1),Object(wt.W)(Object(wt.k)("input",{id:"password",ref:"passwordInput","onUpdate:modelValue":t[1]||(t[1]=t=>e.user.password=t),disabled:e.loggingIn,class:"form-control",type:"password"},null,8,wn),[[wt.S,e.user.password]])]),Object(wt.k)("div",kn,[Object(wt.m)(s,{to:{name:"password-reset"}},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.$t("password_reset.forgot_password")),1)]),_:1})])],64)):Object(wt.i)("",!0),e.isTokenAuth?(Object(wt.D)(),Object(wt.j)("div",_n,[Object(wt.k)("p",null,Object(wt.O)(e.$t("login.description")),1)])):Object(wt.i)("",!0),Object(wt.k)("div",Sn,[Object(wt.k)("div",Cn,[Object(wt.k)("div",null,[e.registrationOpen?(Object(wt.D)(),Object(wt.h)(s,{key:0,to:{name:"registration"},class:"register"},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.$t("login.register")),1)]),_:1})):Object(wt.i)("",!0)]),Object(wt.k)("button",{disabled:e.loggingIn,type:"submit",class:"btn button-default"},Object(wt.O)(e.$t("login.login")),9,Pn)])])],32)]),e.error?(Object(wt.D)(),Object(wt.j)("div",Dn,[Object(wt.k)("div",xn,[Object(wt.l)(Object(wt.O)(e.error)+" ",1),Object(wt.k)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=(...t)=>e.clearError&&e.clearError(...t))},[Object(wt.m)(a,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):Object(wt.i)("",!0)])}]]);const Ln={class:"login panel panel-default"},Rn={class:"panel-heading"},An={class:"panel-body"},Nn={class:"form-group"},Bn={for:"code"},Vn={class:"form-group"},Hn={class:"login-bottom"},Jn=Object(wt.k)("br",null,null,-1),qn={type:"submit",class:"btn button-default"},Wn={key:0,class:"form-group"},Yn={class:"alert error"};var Gn={verifyOTPCode:function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,i=e.mfaToken,o=e.code,s="".concat(r,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",i),a.append("code",o),a.append("challenge_type","totp"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,i=e.mfaToken,o=e.code,s="".concat(r,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",i),a.append("code",o),a.append("challenge_type","recovery"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))}};function Kn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xn(e){for(var t=1;te.submit&&e.submit(...t),["prevent"]))},[Object(wt.k)("div",Nn,[Object(wt.k)("label",Bn,Object(wt.O)(e.$t("login.recovery_code")),1),Object(wt.W)(Object(wt.k)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=t=>e.code=t),class:"form-control"},null,512),[[wt.S,e.code]])]),Object(wt.k)("div",Vn,[Object(wt.k)("div",Hn,[Object(wt.k)("div",null,[Object(wt.k)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=Object(wt.Y)((...t)=>e.requireTOTP&&e.requireTOTP(...t),["prevent"]))},Object(wt.O)(e.$t("login.enter_two_factor_code")),1),Jn,Object(wt.k)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=Object(wt.Y)((...t)=>e.abortMFA&&e.abortMFA(...t),["prevent"]))},Object(wt.O)(e.$t("general.cancel")),1)]),Object(wt.k)("button",qn,Object(wt.O)(e.$t("general.verify")),1)])])],32)]),e.error?(Object(wt.D)(),Object(wt.j)("div",Wn,[Object(wt.k)("div",Yn,[Object(wt.l)(Object(wt.O)(e.error)+" ",1),Object(wt.k)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=(...t)=>e.clearError&&e.clearError(...t))},[Object(wt.m)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):Object(wt.i)("",!0)])}]]);const er={class:"login panel panel-default"},tr={class:"panel-heading"},nr={class:"panel-body"},rr={class:"form-group"},ir={for:"code"},or={class:"form-group"},sr={class:"login-bottom"},ar=Object(wt.k)("br",null,null,-1),cr={type:"submit",class:"btn button-default"},lr={key:0,class:"form-group"},ur={class:"alert error"};function dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pr(e){for(var t=1;te.submit&&e.submit(...t),["prevent"]))},[Object(wt.k)("div",rr,[Object(wt.k)("label",ir,Object(wt.O)(e.$t("login.authentication_code")),1),Object(wt.W)(Object(wt.k)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=t=>e.code=t),class:"form-control"},null,512),[[wt.S,e.code]])]),Object(wt.k)("div",or,[Object(wt.k)("div",sr,[Object(wt.k)("div",null,[Object(wt.k)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=Object(wt.Y)((...t)=>e.requireRecovery&&e.requireRecovery(...t),["prevent"]))},Object(wt.O)(e.$t("login.enter_recovery_code")),1),ar,Object(wt.k)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=Object(wt.Y)((...t)=>e.abortMFA&&e.abortMFA(...t),["prevent"]))},Object(wt.O)(e.$t("general.cancel")),1)]),Object(wt.k)("button",cr,Object(wt.O)(e.$t("general.verify")),1)])])],32)]),e.error?(Object(wt.D)(),Object(wt.j)("div",lr,[Object(wt.k)("div",ur,[Object(wt.l)(Object(wt.O)(e.error)+" ",1),Object(wt.k)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=(...t)=>e.clearError&&e.clearError(...t))},[Object(wt.m)(s,{size:"lg",class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):Object(wt.i)("",!0)])}]]);function mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var fr={name:"AuthForm",render:function(){return Object(wt.q)(Object(wt.J)(this.authForm))},computed:function(e){for(var t=1;t[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"home"}),Object(wt.l)(Object(wt.O)(e.$t("nav.home_timeline")),1)]),_:1})])):Object(wt.i)("",!0),e.currentUser||!e.privateMode?(Object(wt.D)(),Object(wt.j)("li",$r,[Object(wt.m)(a,{class:"menu-item",to:{name:"public-timeline"}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"users"}),Object(wt.l)(Object(wt.O)(e.$t("nav.public_tl")),1)]),_:1})])):Object(wt.i)("",!0),!e.federating||!e.currentUser&&e.privateMode?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",zr,[Object(wt.m)(a,{class:"menu-item",to:{name:"public-external-timeline"}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"globe"}),Object(wt.l)(Object(wt.O)(e.$t("nav.twkn")),1)]),_:1})])),e.currentUser?(Object(wt.D)(),Object(wt.j)("li",Mr,[Object(wt.m)(a,{class:"menu-item",to:{name:"bookmarks"}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bookmark"}),Object(wt.l)(Object(wt.O)(e.$t("nav.bookmarks")),1)]),_:1})])):Object(wt.i)("",!0),e.currentUser?(Object(wt.D)(),Object(wt.j)("li",Ur,[Object(wt.m)(a,{class:"menu-item",to:{name:"dms",params:{username:e.currentUser.screen_name}}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"envelope"}),Object(wt.l)(Object(wt.O)(e.$t("nav.dms")),1)]),_:1},8,["to"])])):Object(wt.i)("",!0)])}]]);function Rr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ar(e){for(var t=1;te.toggleTimelines&&e.toggleTimelines(...t))},[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110",icon:"stream"}),Object(wt.l)(Object(wt.O)(e.$t("nav.timelines"))+" ",1),Object(wt.m)(s,{class:"timelines-chevron","fixed-width":"",icon:e.showTimelines?"chevron-up":"chevron-down"},null,8,["icon"])]),Object(wt.W)(Object(wt.k)("div",Sr,[Object(wt.m)(a,{class:"timelines"})],512),[[wt.T,e.showTimelines]])])):Object(wt.i)("",!0),e.currentUser?(Object(wt.D)(),Object(wt.j)("li",Cr,[Object(wt.m)(c,{class:"menu-item",to:{name:"interactions",params:{username:e.currentUser.screen_name}}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110",icon:"bell"}),Object(wt.l)(Object(wt.O)(e.$t("nav.interactions")),1)]),_:1},8,["to"])])):Object(wt.i)("",!0),e.currentUser&&e.pleromaChatMessagesAvailable?(Object(wt.D)(),Object(wt.j)("li",Pr,[Object(wt.m)(c,{class:"menu-item",to:{name:"chats",params:{username:e.currentUser.screen_name}}},{default:Object(wt.V)(()=>[e.unreadChatCount?(Object(wt.D)(),Object(wt.j)("div",Dr,Object(wt.O)(e.unreadChatCount),1)):Object(wt.i)("",!0),Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110",icon:"comments"}),Object(wt.l)(Object(wt.O)(e.$t("nav.chats")),1)]),_:1},8,["to"])])):Object(wt.i)("",!0),e.currentUser&&e.currentUser.locked?(Object(wt.D)(),Object(wt.j)("li",xr,[Object(wt.m)(c,{class:"menu-item",to:{name:"friend-requests"}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110",icon:"user-plus"}),Object(wt.l)(Object(wt.O)(e.$t("nav.friend_requests"))+" ",1),e.followRequestCount>0?(Object(wt.D)(),Object(wt.j)("span",Tr,Object(wt.O)(e.followRequestCount),1)):Object(wt.i)("",!0)]),_:1})])):Object(wt.i)("",!0),Object(wt.k)("li",null,[Object(wt.m)(c,{class:"menu-item",to:{name:"about"}},{default:Object(wt.V)(()=>[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110",icon:"info-circle"}),Object(wt.l)(Object(wt.O)(e.$t("nav.about")),1)]),_:1})])])])])}]]);const Vr={class:"instance-specific-panel"},Hr={class:"panel panel-default"},Jr={class:"panel-body"},qr=["innerHTML"];var Wr={computed:{instanceSpecificPanelContent:function(){return this.$store.state.instance.instanceSpecificPanelContent}}};var Yr=Fn()(Wr,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("div",Vr,[Object(wt.k)("div",Hr,[Object(wt.k)("div",Jr,[Object(wt.k)("div",{innerHTML:e.instanceSpecificPanelContent},null,8,qr)])])])}]]);const Gr={class:"features-panel"},Kr={class:"panel panel-default base01-background"},Xr={class:"panel-heading timeline-heading base02-background base04"},Zr={class:"title"},Qr={class:"panel-body features-panel"},ei={key:0},ti={key:1},ni={key:2},ri={key:3},ii={key:4};var oi=n(95),si={computed:{shout:function(){return this.$store.state.instance.shoutAvailable},pleromaChatMessages:function(){return this.$store.state.instance.pleromaChatMessagesAvailable},gopher:function(){return this.$store.state.instance.gopherAvailable},whoToFollow:function(){return this.$store.state.instance.suggestionsEnabled},mediaProxy:function(){return this.$store.state.instance.mediaProxyAvailable},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},textlimit:function(){return this.$store.state.instance.textlimit},uploadlimit:function(){return oi.a.fileSizeFormat(this.$store.state.instance.uploadlimit)}}};n(527);var ai=Fn()(si,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("div",Gr,[Object(wt.k)("div",Kr,[Object(wt.k)("div",Xr,[Object(wt.k)("div",Zr,Object(wt.O)(e.$t("features_panel.title")),1)]),Object(wt.k)("div",Qr,[Object(wt.k)("ul",null,[e.shout?(Object(wt.D)(),Object(wt.j)("li",ei,Object(wt.O)(e.$t("features_panel.shout")),1)):Object(wt.i)("",!0),e.pleromaChatMessages?(Object(wt.D)(),Object(wt.j)("li",ti,Object(wt.O)(e.$t("features_panel.pleroma_chat_messages")),1)):Object(wt.i)("",!0),e.gopher?(Object(wt.D)(),Object(wt.j)("li",ni,Object(wt.O)(e.$t("features_panel.gopher")),1)):Object(wt.i)("",!0),e.whoToFollow?(Object(wt.D)(),Object(wt.j)("li",ri,Object(wt.O)(e.$t("features_panel.who_to_follow")),1)):Object(wt.i)("",!0),e.mediaProxy?(Object(wt.D)(),Object(wt.j)("li",ii,Object(wt.O)(e.$t("features_panel.media_proxy")),1)):Object(wt.i)("",!0),Object(wt.k)("li",null,Object(wt.O)(e.$t("features_panel.scope_options")),1),Object(wt.k)("li",null,Object(wt.O)(e.$t("features_panel.text_limit"))+" = "+Object(wt.O)(e.textlimit),1),Object(wt.k)("li",null,Object(wt.O)(e.$t("features_panel.upload_limit"))+" = "+Object(wt.O)(e.uploadlimit.num)+" "+Object(wt.O)(e.$t("upload.file_size_units."+e.uploadlimit.unit)),1)])])])])}]]);const ci={class:"who-to-follow-panel"},li={class:"panel panel-default base01-background"},ui={class:"panel-heading timeline-heading base02-background base04"},di={class:"title"},pi={class:"who-to-follow"},hi=["src"],bi=Object(wt.k)("br",null,null,-1),mi={class:"who-to-follow-more"};var fi=n(327),Oi=n.n(fi),ji=n(23);function gi(e){var t=e.$store.state.users.currentUser.credentials;t&&(e.usersToFollow.forEach((function(e){e.name="Loading..."})),j.c.suggestions({credentials:t}).then((function(t){!function(e,t){var n=this,r=Oi()(t);e.usersToFollow.forEach((function(t,i){var o=r[i],s=o.avatar||n.$store.state.instance.defaultAvatar,a=o.acct;t.img=s,t.name=a,e.$store.state.api.backendInteractor.fetchUser({id:a}).then((function(n){n.error||(e.$store.commit("addNewUsers",[n]),t.id=n.id)}))}))}(e,t)})))}var vi={data:function(){return{usersToFollow:[]}},computed:{user:function(){return this.$store.state.users.currentUser.screen_name},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled}},methods:{userProfileLink:function(e,t){return Object(ji.a)(e,t,this.$store.state.instance.restrictedNicknames)}},watch:{user:function(e,t){this.suggestionsEnabled&&gi(this)}},mounted:function(){var e=this;this.usersToFollow=new Array(3).fill().map((function(t){return{img:e.$store.state.instance.defaultAvatar,name:"",id:0}})),this.suggestionsEnabled&&gi(this)}};n(531);var yi=Fn()(vi,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("router-link");return Object(wt.D)(),Object(wt.j)("div",ci,[Object(wt.k)("div",li,[Object(wt.k)("div",ui,[Object(wt.k)("div",di,Object(wt.O)(e.$t("who_to_follow.who_to_follow")),1)]),Object(wt.k)("div",pi,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.usersToFollow,t=>(Object(wt.D)(),Object(wt.j)("p",{key:t.id,class:"who-to-follow-items"},[Object(wt.k)("img",{src:t.img},null,8,hi),Object(wt.m)(s,{to:e.userProfileLink(t.id,t.name)},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(t.name),1)]),_:2},1032,["to"]),bi]))),128)),Object(wt.k)("p",mi,[Object(wt.m)(s,{to:{name:"who-to-follow"}},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.$t("who_to_follow.more")),1)]),_:1})])])])])}]]);const wi={key:0,class:"shout-panel"},ki={class:"panel panel-default"},_i={class:"title"},Si={class:"shout-window"},Ci={class:"shout-avatar"},Pi=["src"],Di={class:"shout-content"},xi=Object(wt.k)("br",null,null,-1),Ti={class:"shout-text"},Ii={class:"shout-input"},$i={key:1,class:"shout-panel"},zi={class:"panel panel-default"},Mi={class:"title"};Tn.c.add(In.l,In.rb);var Ui={props:["floating"],data:function(){return{currentMessage:"",channel:null,collapsed:!0}},computed:{messages:function(){return this.$store.state.shout.messages}},methods:{submit:function(e){this.$store.state.shout.channel.push("new_msg",{text:e},1e4),this.currentMessage=""},togglePanel:function(){this.collapsed=!this.collapsed},userProfileLink:function(e){return Object(ji.a)(e.id,e.username,this.$store.state.instance.restrictedNicknames)}},watch:{messages:function(e){var t=this.$el.querySelector(".chat-window");t&&t.scrollTop+t.offsetHeight+20>t.scrollHeight&&this.$nextTick((function(){t&&(t.scrollTop=t.scrollHeight-t.offsetHeight)}))}}};n(532);var Fi=Fn()(Ui,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon"),a=Object(wt.J)("router-link");return e.collapsed&&e.floating?(Object(wt.D)(),Object(wt.j)("div",$i,[Object(wt.k)("div",zi,[Object(wt.k)("div",{class:"panel-heading -stub timeline-heading shout-heading",onClick:t[3]||(t[3]=Object(wt.Y)((...t)=>e.togglePanel&&e.togglePanel(...t),["stop","prevent"]))},[Object(wt.k)("div",Mi,[Object(wt.m)(s,{class:"icon",icon:"bullhorn"}),Object(wt.l)(" "+Object(wt.O)(e.$t("shoutbox.title")),1)])])])])):(Object(wt.D)(),Object(wt.j)("div",wi,[Object(wt.k)("div",ki,[Object(wt.k)("div",{class:Object(wt.w)(["panel-heading timeline-heading",{"shout-heading":e.floating}]),onClick:t[0]||(t[0]=Object(wt.Y)((...t)=>e.togglePanel&&e.togglePanel(...t),["stop","prevent"]))},[Object(wt.k)("div",_i,[Object(wt.l)(Object(wt.O)(e.$t("shoutbox.title"))+" ",1),e.floating?(Object(wt.D)(),Object(wt.h)(s,{key:0,icon:"times",class:"close-icon"})):Object(wt.i)("",!0)])],2),Object(wt.k)("div",Si,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.messages,t=>(Object(wt.D)(),Object(wt.j)("div",{key:t.id,class:"shout-message"},[Object(wt.k)("span",Ci,[Object(wt.k)("img",{src:t.author.avatar},null,8,Pi)]),Object(wt.k)("div",Di,[Object(wt.m)(a,{class:"shout-name",to:e.userProfileLink(t.author)},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(t.author.username),1)]),_:2},1032,["to"]),xi,Object(wt.k)("span",Ti,Object(wt.O)(t.text),1)])]))),128))]),Object(wt.k)("div",Ii,[Object(wt.W)(Object(wt.k)("textarea",{"onUpdate:modelValue":t[1]||(t[1]=t=>e.currentMessage=t),class:"shout-input-textarea",rows:"1",onKeyup:t[2]||(t[2]=Object(wt.X)(t=>e.submit(e.currentMessage),["enter"]))},null,544),[[wt.S,e.currentMessage]])])])]))}]]);const Ei={class:"settings-modal-panel panel"},Li={class:"panel-heading"},Ri={class:"title"},Ai=["title"],Ni=["title"],Bi={class:"panel-body"},Vi={class:"panel-footer settings-footer"},Hi=["title"],Ji=Object(wt.l)(" "+Object(wt.O)(" ")+" "),qi={class:"dropdown-menu"},Wi=["onClick"],Yi=["onClick"],Gi=["onClick"],Ki=Object(wt.k)("span",{id:"unscrolled-content",class:"extra-content"},null,-1);var Xi={props:{isOpen:{type:Boolean,default:!0},noBackground:{type:Boolean,default:!1}},computed:{classes:function(){return{"modal-background":!this.noBackground,open:this.isOpen}}}};n(533);var Zi=Fn()(Xi,[["render",function(e,t,n,r,i,o){const s=Object(wt.K)("body-scroll-lock");return Object(wt.W)((Object(wt.D)(),Object(wt.j)("div",{class:Object(wt.w)(["modal-view",o.classes]),onClick:t[0]||(t[0]=Object(wt.Y)(t=>e.$emit("backdropClicked"),["self"]))},[Object(wt.I)(e.$slots,"default")],2)),[[wt.T,n.isOpen],[s,n.isOpen&&!n.noBackground]])}]]);const Qi={class:"panel-loading"},eo={class:"loading-text"};Tn.c.add(In.r);var to={};n(534);var no=Fn()(to,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon");return Object(wt.D)(),Object(wt.j)("div",Qi,[Object(wt.k)("span",eo,[Object(wt.m)(s,{icon:"circle-notch",spin:"",size:"3x"}),Object(wt.l)(" "+Object(wt.O)(e.$t("general.loading")),1)])])}]]);const ro={class:"async-component-error"};var io={emits:["resetAsyncComponent"],methods:{retry:function(){this.$emit("resetAsyncComponent")}}};n(535);var oo=Fn()(io,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("div",ro,[Object(wt.k)("div",null,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("general.generic_error")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("general.error_retry")),1),Object(wt.k)("button",{class:"btn button-default",onClick:t[0]||(t[0]=(...e)=>o.retry&&o.retry(...e))},Object(wt.O)(e.$t("general.retry")),1)])])}]]);function so(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var ao=function(e,t){var n=function(){return function(){return Object(wt.n)(function(e){for(var t=1;t1?{messageKey:"settings.file_export_import.errors.file_too_new",messageArgs:{fileMajor:n,feMajor:1}}:n<1?{messageKey:"settings.file_export_import.errors.file_too_old",messageArgs:{fileMajor:n,feMajor:1}}:(r>0&&this.$store.dispatch("pushGlobalNotice",{level:"warning",messageKey:"settings.file_export_import.errors.file_slightly_new"}),!0)},onImportFailure:function(e){e.error?this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_settings_imported",level:"error"}):this.$store.dispatch("pushGlobalNotice",bo(bo({},e.validationResult),{},{level:"error"}))},onImport:function(e){e&&this.$store.dispatch("loadSettings",e)},restore:function(){this.dataImporter.importData()},backup:function(){this.dataExporter.exportData()},backupWithTheme:function(){this.dataThemeExporter.exportData()},generateExport:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$store.state.config,n=t;if(!e){var r=new Set(["customTheme","customThemeSource","colors"]);n=Object.fromEntries(Object.entries(n).filter((function(e){var t=m()(e,1)[0];return!r.has(t)})))}var i=Nt()(n);return i._pleroma_settings_version=[1,0],i}},computed:{currentSaveStateNotice:function(){return this.$store.state.interface.settings.currentSaveStateNotice},modalActivated:function(){return"hidden"!==this.$store.state.interface.settingsModalState},modalOpenedOnce:function(){return this.$store.state.interface.settingsModalLoaded},modalPeeked:function(){return"minimized"===this.$store.state.interface.settingsModalState},expertLevel:{get:function(){return this.$store.state.config.expertLevel>0},set:function(e){console.log(e),this.$store.dispatch("setOption",{name:"expertLevel",value:e?1:0})}}}};n(536);var fo=Fn()(mo,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon"),a=Object(wt.J)("SettingsModalContent"),c=Object(wt.J)("Popover"),l=Object(wt.J)("Checkbox"),u=Object(wt.J)("Modal");return Object(wt.D)(),Object(wt.h)(u,{"is-open":e.modalActivated,class:Object(wt.w)(["settings-modal",{peek:e.modalPeeked}]),"no-background":e.modalPeeked},{default:Object(wt.V)(()=>[Object(wt.k)("div",Ei,[Object(wt.k)("div",Li,[Object(wt.k)("span",Ri,Object(wt.O)(e.$t("settings.settings")),1),Object(wt.m)(wt.e,{name:"fade"},{default:Object(wt.V)(()=>[e.currentSaveStateNotice?(Object(wt.D)(),Object(wt.j)("div",{key:0,class:Object(wt.w)(["alert",{transparent:!e.currentSaveStateNotice.error,error:e.currentSaveStateNotice.error}]),onClick:t[0]||(t[0]=Object(wt.Y)(()=>{},["prevent"]))},Object(wt.O)(e.currentSaveStateNotice.error?e.$t("settings.saving_err"):e.$t("settings.saving_ok")),3)):Object(wt.i)("",!0)]),_:1}),Object(wt.k)("button",{class:"btn button-default",title:e.$t("general.peek"),onClick:t[1]||(t[1]=(...t)=>e.peekModal&&e.peekModal(...t))},[Object(wt.m)(s,{icon:["far","window-minimize"],"fixed-width":""})],8,Ai),Object(wt.k)("button",{class:"btn button-default",title:e.$t("general.close"),onClick:t[2]||(t[2]=(...t)=>e.closeModal&&e.closeModal(...t))},[Object(wt.m)(s,{icon:"times","fixed-width":""})],8,Ni)]),Object(wt.k)("div",Bi,[e.modalOpenedOnce?(Object(wt.D)(),Object(wt.h)(a,{key:0})):Object(wt.i)("",!0)]),Object(wt.k)("div",Vi,[Object(wt.m)(c,{class:"export",trigger:"click",placement:"top",offset:{y:5,x:5},"bound-to":{x:"container"},"remove-padding":""},{trigger:Object(wt.V)(()=>[Object(wt.k)("button",{class:"btn button-default",title:e.$t("general.close")},[Object(wt.k)("span",null,Object(wt.O)(e.$t("settings.file_export_import.backup_restore")),1),Ji,Object(wt.m)(s,{icon:"chevron-down"})],8,Hi)]),content:Object(wt.V)(({close:n})=>[Object(wt.k)("div",qi,[Object(wt.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=Object(wt.Y)((...t)=>e.backup&&e.backup(...t),["prevent"])),n]},[Object(wt.m)(s,{icon:"file-download","fixed-width":""}),Object(wt.k)("span",null,Object(wt.O)(e.$t("settings.file_export_import.backup_settings")),1)],8,Wi),Object(wt.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=Object(wt.Y)((...t)=>e.backupWithTheme&&e.backupWithTheme(...t),["prevent"])),n]},[Object(wt.m)(s,{icon:"file-download","fixed-width":""}),Object(wt.k)("span",null,Object(wt.O)(e.$t("settings.file_export_import.backup_settings_theme")),1)],8,Yi),Object(wt.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=Object(wt.Y)((...t)=>e.restore&&e.restore(...t),["prevent"])),n]},[Object(wt.m)(s,{icon:"file-upload","fixed-width":""}),Object(wt.k)("span",null,Object(wt.O)(e.$t("settings.file_export_import.restore_settings")),1)],8,Gi)])]),_:1}),Object(wt.m)(l,{"model-value":!!e.expertLevel,"onUpdate:modelValue":t[6]||(t[6]=t=>e.expertLevel=Number(t))},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.$t("settings.expert_mode")),1)]),_:1},8,["model-value"]),Ki])])]),_:1},8,["is-open","class","no-background"])}]]);const Oo=["src","alt","title"],jo=["src","alt","title"],go=["title"],vo=["title"],yo=["title"],wo={key:6,class:"description"},ko={class:"counter"},_o={key:7,class:"loading-spinner"};var So=n(50),Co=n(140);var Po=n(334),Do={methods:{setTransform:function(e){var t=e.scale,n=e.x,r=e.y;this.$el.setTransform({scale:t,x:n,y:r})}},created:function(){Po.a}};var xo=Fn()(Do,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("pinch-zoom");return Object(wt.D)(),Object(wt.h)(s,Object(wt.u)({class:"pinch-zoom-parent"},e.$attrs,Object(wt.P)(e.$listeners)),{default:Object(wt.V)(()=>[Object(wt.I)(e.$slots,"default")]),_:3},16)}]]);var To=n(128),Io=n.n(To),$o=n(127),zo=n.n($o),Mo=function(e,t){return[t[0]-e[0],t[1]-e[1]]},Uo=function(e){return[(t=e.touches[0]).screenX,t.screenY];var t},Fo=function(e){return[e.clientX,e.clientY]},Eo=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},Lo=function(e){return[e[1],-e[0]]},Ro=function(e,t){return e[0]*t[0]+e[1]*t[1]},Ao=function(e,t){var n=Ro(e,t)/Ro(t,t);return[n*t[0],n*t[1]]},No={DIRECTION_LEFT:[-1,0],DIRECTION_RIGHT:[1,0],DIRECTION_UP:[0,-1],DIRECTION_DOWN:[0,1],swipeGesture:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{direction:e,onSwipe:t,threshold:n,perpendicularTolerance:r,_startPos:[0,0],_swiping:!1}},beginSwipe:function(e,t){t._startPos=Uo(e),t._swiping=!0},updateSwipe:function(e,t){if(t._swiping){var n=Mo(t._startPos,Uo(e));if(!(Eo(n)0,n=Ao(r,t.direction),i=Lo(t.direction),o=Ao(r,i);return Eo(n)*t.perpendicularTolerance=this.disableClickThreshold()&&"mouse"===e.pointerType&&(this._preventNextClick=!0)}}},{key:"click",value:function(e){this._preventNextClick||this.swipelessClickCallback(),this._reset()}}]),e}()},Bo={props:{direction:{type:Array},threshold:{type:Function,default:function(){return 30}},perpendicularTolerance:{type:Number,default:1}},methods:{handlePointerDown:function(e){this.$gesture.start(e)},handlePointerMove:function(e){this.$gesture.move(e)},handlePointerUp:function(e){this.$gesture.end(e)},handlePointerCancel:function(e){this.$gesture.cancel(e)},handleNativeClick:function(e){this.$gesture.click(e)},preview:function(e){this.$emit("preview-requested",e)},end:function(e){this.$emit("swipe-finished",e)},click:function(){this.$emit("swipeless-clicked")},cancel:function(){this.$emit("swipe-canceled")}},created:function(){this.$gesture=new No.SwipeAndClickGesture({direction:this.direction,threshold:this.threshold,perpendicularTolerance:this.perpendicularTolerance,swipePreviewCallback:this.preview,swipeEndCallback:this.end,swipeCancelCallback:this.cancel,swipelessClickCallback:this.click})}};var Vo=Fn()(Bo,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("div",Object(wt.u)(e.$attrs,{onPointerdown:t[0]||(t[0]=(...t)=>e.handlePointerDown&&e.handlePointerDown(...t)),onPointermove:t[1]||(t[1]=(...t)=>e.handlePointerMove&&e.handlePointerMove(...t)),onPointerup:t[2]||(t[2]=(...t)=>e.handlePointerUp&&e.handlePointerUp(...t)),onPointercancel:t[3]||(t[3]=(...t)=>e.handlePointerCancel&&e.handlePointerCancel(...t)),onClick:t[4]||(t[4]=(...t)=>e.handleNativeClick&&e.handleNativeClick(...t))}),[Object(wt.I)(e.$slots,"default")],16)}]]),Ho=n(138);Tn.c.add(In.o,In.p,In.r,In.rb);var Jo={components:{StillImage:So.a,VideoAttachment:Co.a,PinchZoom:xo,SwipeClick:Vo,Modal:Zi,Flash:Ho.a},data:function(){return{loading:!1,swipeDirection:No.DIRECTION_LEFT,swipeThreshold:function(){return window.innerWidth*(1/4)},pinchZoomMinScale:1,pinchZoomScaleResetLimit:1.2}},computed:{showing:function(){return this.$store.state.mediaViewer.activated},media:function(){return this.$store.state.mediaViewer.media},description:function(){return this.currentMedia.description},currentIndex:function(){return this.$store.state.mediaViewer.currentIndex},currentMedia:function(){return this.media[this.currentIndex]},canNavigate:function(){return this.media.length>1},type:function(){return this.currentMedia?this.getType(this.currentMedia):null}},methods:{getType:function(e){return lt.a.fileType(e.mimetype)},hide:function(){var e=this;setTimeout((function(){e.$store.dispatch("closeMediaViewer")}),100)},hideIfNotSwiped:function(e){var t=this.$refs.swipeClick;t?t.$gesture.click(e):this.hide()},goPrev:function(){if(this.canNavigate){var e=0===this.currentIndex?this.media.length-1:this.currentIndex-1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},goNext:function(){if(this.canNavigate){var e=this.currentIndex===this.media.length-1?0:this.currentIndex+1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},onImageLoaded:function(){this.loading=!1},handleSwipePreview:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:e[0],y:0})},handleSwipeEnd:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:0,y:0}),e>0?this.goNext():e<0&&this.goPrev()},handleKeyupEvent:function(e){this.showing&&27===e.keyCode&&this.hide()},handleKeydownEvent:function(e){this.showing&&(39===e.keyCode?this.goNext():37===e.keyCode&&this.goPrev())}},mounted:function(){window.addEventListener("popstate",this.hide),document.addEventListener("keyup",this.handleKeyupEvent),document.addEventListener("keydown",this.handleKeydownEvent)},unmounted:function(){window.removeEventListener("popstate",this.hide),document.removeEventListener("keyup",this.handleKeyupEvent),document.removeEventListener("keydown",this.handleKeydownEvent)}};n(537);var qo=Fn()(Jo,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("PinchZoom"),a=Object(wt.J)("SwipeClick"),c=Object(wt.J)("VideoAttachment"),l=Object(wt.J)("Flash"),u=Object(wt.J)("FAIcon"),d=Object(wt.J)("Modal");return e.showing?(Object(wt.D)(),Object(wt.h)(d,{key:0,class:"media-modal-view",onBackdropClicked:e.hideIfNotSwiped},{default:Object(wt.V)(()=>["image"===e.type?(Object(wt.D)(),Object(wt.h)(a,{key:0,ref:"swipeClick",class:"modal-image-container",direction:e.swipeDirection,threshold:e.swipeThreshold,onPreviewRequested:e.handleSwipePreview,onSwipeFinished:e.handleSwipeEnd,onSwipelessClicked:e.hide},{default:Object(wt.V)(()=>[Object(wt.m)(s,{ref:"pinchZoom",class:"modal-image-container-inner",selector:".modal-image","reach-min-scale-strategy":"reset","stop-propagate-handled":"stop-propgate-handled","allow-pan-min-scale":e.pinchZoomMinScale,"min-scale":e.pinchZoomMinScale,"reset-to-min-scale-limit":e.pinchZoomScaleResetLimit},{default:Object(wt.V)(()=>[Object(wt.k)("img",{class:Object(wt.w)([{loading:e.loading},"modal-image"]),src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,onLoad:t[0]||(t[0]=(...t)=>e.onImageLoaded&&e.onImageLoaded(...t))},null,42,Oo)]),_:1},8,["allow-pan-min-scale","min-scale","reset-to-min-scale-limit"])]),_:1},8,["direction","threshold","onPreviewRequested","onSwipeFinished","onSwipelessClicked"])):Object(wt.i)("",!0),"video"===e.type?(Object(wt.D)(),Object(wt.h)(c,{key:1,class:"modal-image",attachment:e.currentMedia,controls:!0},null,8,["attachment"])):Object(wt.i)("",!0),"audio"===e.type?(Object(wt.D)(),Object(wt.j)("audio",{key:2,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,controls:""},null,8,jo)):Object(wt.i)("",!0),"flash"===e.type?(Object(wt.D)(),Object(wt.h)(l,{key:3,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description},null,8,["src","alt","title"])):Object(wt.i)("",!0),e.canNavigate?(Object(wt.D)(),Object(wt.j)("button",{key:4,title:e.$t("media_modal.previous"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev",onClick:t[1]||(t[1]=Object(wt.Y)((...t)=>e.goPrev&&e.goPrev(...t),["stop","prevent"]))},[Object(wt.m)(u,{class:"button-icon arrow-icon",icon:"chevron-left"})],8,go)):Object(wt.i)("",!0),e.canNavigate?(Object(wt.D)(),Object(wt.j)("button",{key:5,title:e.$t("media_modal.next"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--next",onClick:t[2]||(t[2]=Object(wt.Y)((...t)=>e.goNext&&e.goNext(...t),["stop","prevent"]))},[Object(wt.m)(u,{class:"button-icon arrow-icon",icon:"chevron-right"})],8,vo)):Object(wt.i)("",!0),Object(wt.k)("button",{class:"modal-view-button modal-view-button-hide",title:e.$t("media_modal.hide"),onClick:t[3]||(t[3]=Object(wt.Y)((...t)=>e.hide&&e.hide(...t),["stop","prevent"]))},[Object(wt.m)(u,{class:"button-icon",icon:"times"})],8,yo),e.description?(Object(wt.D)(),Object(wt.j)("span",wo,Object(wt.O)(e.description),1)):Object(wt.i)("",!0),Object(wt.k)("span",ko,Object(wt.O)(e.$tc("media_modal.counter",e.currentIndex+1,{current:e.currentIndex+1,total:e.media.length})),1),e.loading?(Object(wt.D)(),Object(wt.j)("span",_o,[Object(wt.m)(u,{spin:"",icon:"circle-notch",size:"5x"})])):Object(wt.i)("",!0)]),_:1},8,["onBackdropClicked"])):Object(wt.i)("",!0)}]]);const Wo={key:1,class:"side-drawer-logo-wrapper"},Yo=["src"],Go={key:0},Ko={key:0,class:"badge badge-notification"},Xo={key:0},Zo={key:0,class:"badge badge-notification"},Qo={href:"/pleroma/admin/#/login-pleroma",target:"_blank"};function es(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ts(e){for(var t=1;te.touchStart&&e.touchStart(...t)),onTouchmove:t[16]||(t[16]=(...t)=>e.touchMove&&e.touchMove(...t))},[Object(wt.k)("div",{class:"side-drawer-heading",onClick:t[0]||(t[0]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[e.currentUser?(Object(wt.D)(),Object(wt.h)(s,{key:0,"user-id":e.currentUser.id,"hide-bio":!0},null,8,["user-id"])):(Object(wt.D)(),Object(wt.j)("div",Wo,[Object(wt.k)("img",{src:e.logo},null,8,Yo),e.hideSitename?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("span",Go,Object(wt.O)(e.sitename),1))]))]),Object(wt.k)("ul",null,[e.currentUser?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",{key:0,onClick:t[1]||(t[1]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"login"}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-in-alt"}),Object(wt.l)(" "+Object(wt.O)(e.$t("login.login")),1)]),_:1})])),e.currentUser||!e.privateMode?(Object(wt.D)(),Object(wt.j)("li",{key:1,onClick:t[2]||(t[2]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:e.timelinesRoute}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"home"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.timelines")),1)]),_:1},8,["to"])])):Object(wt.i)("",!0),e.currentUser&&e.pleromaChatMessagesAvailable?(Object(wt.D)(),Object(wt.j)("li",{key:2,onClick:t[3]||(t[3]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"chats",params:{username:e.currentUser.screen_name}},style:{position:"relative"}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"comments"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.chats"))+" ",1),e.unreadChatCount?(Object(wt.D)(),Object(wt.j)("span",Ko,Object(wt.O)(e.unreadChatCount),1)):Object(wt.i)("",!0)]),_:1},8,["to"])])):Object(wt.i)("",!0)]),e.currentUser?(Object(wt.D)(),Object(wt.j)("ul",Xo,[Object(wt.k)("li",{onClick:t[4]||(t[4]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"interactions",params:{username:e.currentUser.screen_name}}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bell"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.interactions")),1)]),_:1},8,["to"])]),e.currentUser.locked?(Object(wt.D)(),Object(wt.j)("li",{key:0,onClick:t[5]||(t[5]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:"/friend-requests"},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.friend_requests"))+" ",1),e.followRequestCount>0?(Object(wt.D)(),Object(wt.j)("span",Zo,Object(wt.O)(e.followRequestCount),1)):Object(wt.i)("",!0)]),_:1})])):Object(wt.i)("",!0),e.shout?(Object(wt.D)(),Object(wt.j)("li",{key:1,onClick:t[6]||(t[6]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"shout-panel"}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),Object(wt.l)(" "+Object(wt.O)(e.$t("shoutbox.title")),1)]),_:1})])):Object(wt.i)("",!0)])):Object(wt.i)("",!0),Object(wt.k)("ul",null,[e.currentUser||!e.privateMode?(Object(wt.D)(),Object(wt.j)("li",{key:0,onClick:t[7]||(t[7]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"search"}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.search")),1)]),_:1})])):Object(wt.i)("",!0),e.currentUser&&e.suggestionsEnabled?(Object(wt.D)(),Object(wt.j)("li",{key:1,onClick:t[8]||(t[8]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"who-to-follow"}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.who_to_follow")),1)]),_:1})])):Object(wt.i)("",!0),Object(wt.k)("li",{onClick:t[10]||(t[10]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.k)("button",{class:"button-unstyled -link -fullwidth",onClick:t[9]||(t[9]=(...t)=>e.openSettingsModal&&e.openSettingsModal(...t))},[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"}),Object(wt.l)(" "+Object(wt.O)(e.$t("settings.settings")),1)])]),Object(wt.k)("li",{onClick:t[11]||(t[11]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.m)(c,{to:{name:"about"}},{default:Object(wt.V)(()=>[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"info-circle"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.about")),1)]),_:1})]),e.currentUser&&"admin"===e.currentUser.role?(Object(wt.D)(),Object(wt.j)("li",{key:2,onClick:t[12]||(t[12]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.k)("a",Qo,[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"}),Object(wt.l)(" "+Object(wt.O)(e.$t("nav.administration")),1)])])):Object(wt.i)("",!0),e.currentUser?(Object(wt.D)(),Object(wt.j)("li",{key:3,onClick:t[14]||(t[14]=(...t)=>e.toggleDrawer&&e.toggleDrawer(...t))},[Object(wt.k)("button",{class:"button-unstyled -link -fullwidth",onClick:t[13]||(t[13]=(...t)=>e.doLogout&&e.doLogout(...t))},[Object(wt.m)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"}),Object(wt.l)(" "+Object(wt.O)(e.$t("login.logout")),1)])])):Object(wt.i)("",!0)])],34),Object(wt.k)("div",{class:Object(wt.w)(["side-drawer-click-outside",{"side-drawer-click-outside-closed":e.closed}]),onClick:t[17]||(t[17]=Object(wt.Y)((...t)=>e.toggleDrawer&&e.toggleDrawer(...t),["stop","prevent"]))},null,2)],2)}]]);var is=n(56),os=n.n(is);Tn.c.add(In.S);var ss=new Set(["chats","chat"]),as={data:function(){return{hidden:!1,scrollingDown:!1,inputActive:!1,oldScrollPos:0,amountScrolled:0}},created:function(){this.autohideFloatingPostButton&&this.activateFloatingPostButtonAutohide(),window.addEventListener("resize",this.handleOSK)},unmounted:function(){this.autohideFloatingPostButton&&this.deactivateFloatingPostButtonAutohide(),window.removeEventListener("resize",this.handleOSK)},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},isHidden:function(){return!!ss.has(this.$route.name)||this.autohideFloatingPostButton&&(this.hidden||this.inputActive)},isPersistent:function(){return!!this.$store.getters.mergedConfig.alwaysShowNewPostButton},autohideFloatingPostButton:function(){return!!this.$store.getters.mergedConfig.autohideFloatingPostButton}},watch:{autohideFloatingPostButton:function(e){e?this.activateFloatingPostButtonAutohide():this.deactivateFloatingPostButtonAutohide()}},methods:{activateFloatingPostButtonAutohide:function(){window.addEventListener("scroll",this.handleScrollStart),window.addEventListener("scroll",this.handleScrollEnd)},deactivateFloatingPostButtonAutohide:function(){window.removeEventListener("scroll",this.handleScrollStart),window.removeEventListener("scroll",this.handleScrollEnd)},openPostForm:function(){this.$store.dispatch("openPostStatusModal")},handleOSK:function(){var e=window.innerWidth<350,t=e&&window.innerHeight<345,n=!e&&window.innerWidth<450&&window.innerHeight<560;this.inputActive=!(!t&&!n)},handleScrollStart:os()((function(){window.scrollY>this.oldScrollPos?this.hidden=!0:this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!0,trailing:!1}),handleScrollEnd:os()((function(){this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!1,trailing:!0})}};n(539);var cs=Fn()(as,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon");return e.isLoggedIn?(Object(wt.D)(),Object(wt.j)("button",{key:0,class:Object(wt.w)(["MobilePostButton button-default new-status-button",{hidden:e.isHidden,"always-show":e.isPersistent}]),onClick:t[0]||(t[0]=(...t)=>e.openPostForm&&e.openPostForm(...t))},[Object(wt.m)(s,{icon:"pen"})],2)):Object(wt.i)("",!0)}]]);const ls={class:"MobileNav"},us={class:"item"},ds={key:0,class:"alert-dot"},ps={class:"item right"},hs={key:0,class:"alert-dot"},bs={class:"mobile-notifications-header"},ms={class:"title"};var fs=n(77);function Os(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}Tn.c.add(In.rb,In.i,In.h);var js={components:{SideDrawer:rs,Notifications:fs.default},data:function(){return{notificationsCloseGesture:void 0,notificationsOpen:!1}},created:function(){this.notificationsCloseGesture=No.swipeGesture(No.DIRECTION_RIGHT,this.closeMobileNotifications,50)},computed:function(e){for(var t=1;t=t.scrollHeight&&this.$refs.notifications.fetchOlderNotifications()}},watch:{$route:function(){this.closeMobileNotifications()}}};n(553);var gs=Fn()(js,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon"),a=Object(wt.J)("router-link"),c=Object(wt.J)("SideDrawer");return Object(wt.D)(),Object(wt.j)("div",ls,[Object(wt.k)("nav",{id:"nav",class:"mobile-nav",onClick:t[2]||(t[2]=t=>e.scrollToTop())},[Object(wt.k)("div",us,[Object(wt.k)("button",{class:"button-unstyled mobile-nav-button",onClick:t[0]||(t[0]=Object(wt.Y)(t=>e.toggleMobileSidebar(),["stop","prevent"]))},[Object(wt.m)(s,{class:"fa-scale-110 fa-old-padding",icon:"bars"}),e.unreadChatCount?(Object(wt.D)(),Object(wt.j)("div",ds)):Object(wt.i)("",!0)]),e.hideSitename?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.h)(a,{key:0,class:"site-name",to:{name:"root"},"active-class":"home"},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.sitename),1)]),_:1}))]),Object(wt.k)("div",ps,[e.currentUser?(Object(wt.D)(),Object(wt.j)("button",{key:0,class:"button-unstyled mobile-nav-button",onClick:t[1]||(t[1]=Object(wt.Y)(t=>e.openMobileNotifications(),["stop","prevent"]))},[Object(wt.m)(s,{class:"fa-scale-110 fa-old-padding",icon:"bell"}),e.unseenNotificationsCount?(Object(wt.D)(),Object(wt.j)("div",hs)):Object(wt.i)("",!0)])):Object(wt.i)("",!0)])]),e.currentUser?(Object(wt.D)(),Object(wt.j)("div",{key:0,class:Object(wt.w)(["mobile-notifications-drawer",{"-closed":!e.notificationsOpen}]),onTouchstart:t[5]||(t[5]=Object(wt.Y)((...t)=>e.notificationsTouchStart&&e.notificationsTouchStart(...t),["stop"])),onTouchmove:t[6]||(t[6]=Object(wt.Y)((...t)=>e.notificationsTouchMove&&e.notificationsTouchMove(...t),["stop"]))},[Object(wt.k)("div",bs,[Object(wt.k)("span",ms,Object(wt.O)(e.$t("notifications.notifications")),1),Object(wt.k)("a",{class:"mobile-nav-button",onClick:t[3]||(t[3]=Object(wt.Y)(t=>e.closeMobileNotifications(),["stop","prevent"]))},[Object(wt.m)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})])]),Object(wt.k)("div",{class:"mobile-notifications",id:"mobile-notifications",onScroll:t[4]||(t[4]=(...t)=>e.onScroll&&e.onScroll(...t))},null,32)],34)):Object(wt.i)("",!0),Object(wt.m)(c,{ref:"sideDrawer",logout:e.logout},null,8,["logout"])])}]]);const vs={class:"inner-nav"},ys={class:"item sitename"},ws=["src"],ks={class:"item right actions"};const _s=["title"],Ss=["placeholder"];Tn.c.add(In.rb,In.cb);var Cs={data:function(){return{searchTerm:void 0,hidden:!0,error:!1}},watch:{$route:function(e){"search"===e.name&&(this.searchTerm=e.query.query)}},methods:{find:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},toggleHidden:function(){var e=this;this.hidden=!this.hidden,this.$emit("toggled",this.hidden),this.$nextTick((function(){e.hidden||e.$refs.searchInput.focus()}))}}};n(554);var Ps=Fn()(Cs,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon");return Object(wt.D)(),Object(wt.j)("div",{class:Object(wt.w)(["SearchBar",{"-expanded":!e.hidden}])},[e.hidden?(Object(wt.D)(),Object(wt.j)("button",{key:0,class:"button-unstyled nav-icon",title:e.$t("nav.search"),type:"button",onClick:t[0]||(t[0]=Object(wt.Y)((...t)=>e.toggleHidden&&e.toggleHidden(...t),["prevent","stop"]))},[Object(wt.m)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"})],8,_s)):(Object(wt.D)(),Object(wt.j)(wt.a,{key:1},[Object(wt.W)(Object(wt.k)("input",{id:"search-bar-input",ref:"searchInput","onUpdate:modelValue":t[1]||(t[1]=t=>e.searchTerm=t),class:"search-bar-input",placeholder:e.$t("nav.search"),type:"text",onKeyup:t[2]||(t[2]=Object(wt.X)(t=>e.find(e.searchTerm),["enter"]))},null,40,Ss),[[wt.S,e.searchTerm]]),Object(wt.k)("button",{class:"button-default search-button",type:"submit",onClick:t[3]||(t[3]=t=>e.find(e.searchTerm))},[Object(wt.m)(s,{"fixed-width":"",icon:"search"})]),Object(wt.k)("button",{class:"button-unstyled cancel-search",type:"button",onClick:t[4]||(t[4]=Object(wt.Y)((...t)=>e.toggleHidden&&e.toggleHidden(...t),["prevent","stop"]))},[Object(wt.m)(s,{"fixed-width":"",icon:"times",class:"cancel-icon fa-scale-110 fa-old-padding"})])],64))],2)}]]);Tn.c.add(In.gb,In.hb,In.J,In.t,In.i,In.vb,In.l,In.cb,In.ob,In.s,In.M);var Ds={components:{SearchBar:Ps},data:function(){return{searchBarHidden:!0,supportsMask:window.CSS&&window.CSS.supports&&(window.CSS.supports("mask-size","contain")||window.CSS.supports("-webkit-mask-size","contain")||window.CSS.supports("-moz-mask-size","contain")||window.CSS.supports("-ms-mask-size","contain")||window.CSS.supports("-o-mask-size","contain"))}},computed:{enableMask:function(){return this.supportsMask&&this.$store.state.instance.logoMask},logoStyle:function(){return{visibility:this.enableMask?"hidden":"visible"}},logoMaskStyle:function(){return this.enableMask?{"mask-image":"url(".concat(this.$store.state.instance.logo,")")}:{"background-color":this.enableMask?"":"transparent"}},logoBgStyle:function(){return Object.assign({margin:"".concat(this.$store.state.instance.logoMargin," 0"),opacity:this.searchBarHidden?1:0},this.enableMask?{}:{"background-color":this.enableMask?"":"transparent"})},logo:function(){return this.$store.state.instance.logo},sitename:function(){return this.$store.state.instance.name},hideSitename:function(){return this.$store.state.instance.hideSitename},logoLeft:function(){return this.$store.state.instance.logoLeft},currentUser:function(){return this.$store.state.users.currentUser},privateMode:function(){return this.$store.state.instance.private}},methods:{scrollToTop:function(){window.scrollTo(0,0)},logout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout")},onSearchBarToggled:function(e){this.searchBarHidden=e},openSettingsModal:function(){this.$store.dispatch("openSettingsModal")}}};n(555);var xs=Fn()(Ds,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("router-link"),a=Object(wt.J)("search-bar"),c=Object(wt.J)("FAIcon");return Object(wt.D)(),Object(wt.j)("nav",{id:"nav",class:Object(wt.w)(["DesktopNav",{"-logoLeft":e.logoLeft}]),onClick:t[4]||(t[4]=t=>e.scrollToTop())},[Object(wt.k)("div",vs,[Object(wt.k)("div",ys,[e.hideSitename?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.h)(s,{key:0,class:"site-name",to:{name:"root"},"active-class":"home"},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.sitename),1)]),_:1}))]),Object(wt.m)(s,{class:"logo",to:{name:"root"},style:Object(wt.x)(e.logoBgStyle)},{default:Object(wt.V)(()=>[Object(wt.k)("div",{class:"mask",style:Object(wt.x)(e.logoMaskStyle)},null,4),Object(wt.k)("img",{src:e.logo,style:Object(wt.x)(e.logoStyle)},null,12,ws)]),_:1},8,["style"]),Object(wt.k)("div",ks,[e.currentUser||!e.privateMode?(Object(wt.D)(),Object(wt.h)(a,{key:0,onToggled:e.onSearchBarToggled,onClick:t[0]||(t[0]=Object(wt.Y)(()=>{},["stop"]))},null,8,["onToggled"])):Object(wt.i)("",!0),Object(wt.k)("button",{class:"button-unstyled nav-icon",onClick:t[1]||(t[1]=Object(wt.Y)((...t)=>e.openSettingsModal&&e.openSettingsModal(...t),["stop"]))},[Object(wt.m)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog",title:e.$t("nav.preferences")},null,8,["title"])]),e.currentUser&&"admin"===e.currentUser.role?(Object(wt.D)(),Object(wt.j)("a",{key:1,href:"/pleroma/admin/#/login-pleroma",class:"nav-icon",target:"_blank",onClick:t[2]||(t[2]=Object(wt.Y)(()=>{},["stop"]))},[Object(wt.m)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt",title:e.$t("nav.administration")},null,8,["title"])])):Object(wt.i)("",!0),e.currentUser?(Object(wt.D)(),Object(wt.j)("button",{key:2,class:"button-unstyled nav-icon",onClick:t[3]||(t[3]=Object(wt.Y)((...t)=>e.logout&&e.logout(...t),["prevent"]))},[Object(wt.m)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt",title:e.$t("login.logout")},null,8,["title"])])):Object(wt.i)("",!0)])])],2)}]]);const Ts={class:"user-reporting-panel panel"},Is={class:"panel-heading"},$s={class:"title"},zs={class:"panel-body"},Ms={class:"user-reporting-panel-left"},Us=["placeholder"],Fs={key:0},Es=["disabled"],Ls={key:0,class:"alert error"},Rs={class:"user-reporting-panel-right"},As={class:"status-fadein user-reporting-panel-sitem"};var Ns=n(33),Bs=n(69);function Vs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Hs={components:{Status:Ns.default,List:Bs.a,Checkbox:lo.a,Modal:Zi},data:function(){return{comment:"",forward:!1,statusIdsToReport:[],processing:!1,error:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},isOpen:function(){return this.isLoggedIn&&this.$store.state.reports.modalActivated},userId:function(){return this.$store.state.reports.userId},user:function(){return this.$store.getters.findUser(this.userId)},remoteInstance:function(){return!this.user.is_local&&this.user.screen_name.substr(this.user.screen_name.indexOf("@")+1)},statuses:function(){return this.$store.state.reports.statuses},preTickedIds:function(){return this.$store.state.reports.preTickedIds}},watch:{userId:"resetState",preTickedIds:function(e){this.statusIdsToReport=e}},methods:{resetState:function(){this.comment="",this.forward=!1,this.statusIdsToReport=this.preTickedIds,this.processing=!1,this.error=!1},closeModal:function(){this.$store.dispatch("closeUserReportingModal")},reportUser:function(){var e=this;this.processing=!0,this.error=!1;var t={userId:this.userId,comment:this.comment,forward:this.forward,statusIds:this.statusIdsToReport};this.$store.state.api.backendInteractor.reportUser(function(e){for(var t=1;t[Object(wt.k)("div",Ts,[Object(wt.k)("div",Is,[Object(wt.k)("div",$s,Object(wt.O)(e.$t("user_reporting.title",[e.user.screen_name_ui])),1)]),Object(wt.k)("div",zs,[Object(wt.k)("div",Ms,[Object(wt.k)("div",null,[Object(wt.k)("p",null,Object(wt.O)(e.$t("user_reporting.add_comment_description")),1),Object(wt.W)(Object(wt.k)("textarea",{"onUpdate:modelValue":t[0]||(t[0]=t=>e.comment=t),class:"form-control",placeholder:e.$t("user_reporting.additional_comments"),rows:"1",onInput:t[1]||(t[1]=(...t)=>e.resize&&e.resize(...t))},null,40,Us),[[wt.S,e.comment]])]),e.user.is_local?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("div",Fs,[Object(wt.k)("p",null,Object(wt.O)(e.$t("user_reporting.forward_description")),1),Object(wt.m)(s,{modelValue:e.forward,"onUpdate:modelValue":t[2]||(t[2]=t=>e.forward=t)},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.$t("user_reporting.forward_to",[e.remoteInstance])),1)]),_:1},8,["modelValue"])])),Object(wt.k)("div",null,[Object(wt.k)("button",{class:"btn button-default",disabled:e.processing,onClick:t[3]||(t[3]=(...t)=>e.reportUser&&e.reportUser(...t))},Object(wt.O)(e.$t("user_reporting.submit")),9,Es),e.error?(Object(wt.D)(),Object(wt.j)("div",Ls,Object(wt.O)(e.$t("user_reporting.generic_error")),1)):Object(wt.i)("",!0)])]),Object(wt.k)("div",Rs,[Object(wt.m)(c,{items:e.statuses},{item:Object(wt.V)(({item:t})=>[Object(wt.k)("div",As,[Object(wt.m)(a,{"in-conversation":!1,focused:!1,statusoid:t},null,8,["statusoid"]),Object(wt.m)(s,{"model-value":e.isChecked(t.id),"onUpdate:modelValue":n=>e.toggleStatus(n,t.id)},null,8,["model-value","onUpdate:modelValue"])])]),_:1},8,["items"])])])])]),_:1},8,["onBackdropClicked"])):Object(wt.i)("",!0)}]]);const qs={class:"post-form-modal-panel panel"},Ws={class:"panel-heading"};var Ys={components:{PostStatusForm:Or.a,Modal:Zi},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.postStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.postStatus.params||{}}},watch:{params:function(e,t){var n=this;Jt()(e,"repliedUser.id")!==Jt()(t,"repliedUser.id")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{closeModal:function(){this.$store.dispatch("closePostStatusModal")}}};n(558);var Gs=Fn()(Ys,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("PostStatusForm"),a=Object(wt.J)("Modal");return e.isLoggedIn&&!e.resettingForm?(Object(wt.D)(),Object(wt.h)(a,{key:0,"is-open":e.modalActivated,class:"post-form-modal-view",onBackdropClicked:e.closeModal},{default:Object(wt.V)(()=>[Object(wt.k)("div",qs,[Object(wt.k)("div",Ws,Object(wt.O)(e.$t("post_status.new_status")),1),Object(wt.m)(s,Object(wt.u)({class:"panel-body"},e.params,{onPosted:e.closeModal}),null,16,["onPosted"])])]),_:1},8,["is-open","onBackdropClicked"])):Object(wt.i)("",!0)}]]);const Ks={class:"global-notice-list"},Xs={class:"notice-message"},Zs=["onClick"];Tn.c.add(In.rb);var Qs={computed:{notices:function(){return this.$store.state.interface.globalNotices}},methods:{closeNotice:function(e){this.$store.dispatch("removeGlobalNotice",e)}}};n(559);var ea=Fn()(Qs,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon");return Object(wt.D)(),Object(wt.j)("div",Ks,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.notices,(t,n)=>(Object(wt.D)(),Object(wt.j)("div",{key:n,class:Object(wt.w)(["alert global-notice",{["global-"+t.level]:!0}])},[Object(wt.k)("div",Xs,Object(wt.O)(e.$t(t.messageKey,t.messageArgs)),1),Object(wt.k)("button",{class:"button-unstyled close-notice",onClick:n=>e.closeNotice(t)},[Object(wt.m)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,Zs)],2))),128))])}]]);function ta(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var na={name:"app",components:{UserPanel:yr,NavPanel:Br,Notifications:Object(wt.n)((function(){return Promise.resolve().then(n.bind(null,77))})),InstanceSpecificPanel:Yr,FeaturesPanel:ai,WhoToFollowPanel:yi,ShoutPanel:Fi,MediaModal:qo,SideDrawer:rs,MobilePostStatusButton:cs,MobileNav:gs,DesktopNav:xs,SettingsModal:fo,UserReportingModal:Js,PostStatusModal:Gs,GlobalNoticeList:ea},data:function(){return{mobileActivePanel:"timeline"}},created:function(){var e=this.$store.getters.mergedConfig.interfaceLanguage;this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e}),window.addEventListener("resize",this.updateMobileState)},unmounted:function(){window.removeEventListener("resize",this.updateMobileState)},computed:function(e){for(var t=1;t[Object(wt.l)(Object(wt.O)(e.$t("login.hint")),1)]),_:1})])),Object(wt.m)(m)],2),Object(wt.k)("div",{id:"notifs-column",class:Object(wt.w)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},null,2)],2),Object(wt.m)(f),e.currentUser&&e.shout&&!e.hideShoutbox?(Object(wt.D)(),Object(wt.h)(O,{key:3,floating:!0,class:Object(wt.w)(["floating-shout mobile-hidden",{"-left":e.shoutboxPosition}])},null,8,["class"])):Object(wt.i)("",!0),Object(wt.m)(j),Object(wt.m)(g),Object(wt.m)(v),Object(wt.m)(y),dn,Object(wt.m)(w)],4)}]]);const ia={ref:"timeline",class:"timeline"},oa={key:0,class:"new-status-notification text-center faint"},sa={key:1,class:"new-status-notification text-center faint"},aa={class:"new-status-notification text-center"},ca={key:3,class:"new-status-notification text-center"};var la=n(328),ua=n.n(la),da=n(101),pa=n.n(da);const ha={key:0,class:"panel-heading conversation-heading -sticky"},ba={class:"title"},ma={class:"conversation-body panel-body"},fa={key:0,class:"thread-body"},Oa={key:0,class:"conversation-dive-to-top-level-box"},ja={key:1,class:"thread-ancestors"},ga={key:0,class:"thread-ancestor-dive-box"},va={class:"thread-ancestor-dive-box-inner"},ya={key:1,class:"thread-body"};var wa=n(329),ka=n.n(wa);const _a={class:"thread-tree"},Sa={key:0,class:"thread-tree-replies"},Ca={key:1,class:"thread-tree-replies thread-tree-replies-hidden"};Tn.c.add(In.c,In.e);var Pa={components:{Status:Ns.default},name:"ThreadTree",props:{depth:Number,status:Object,inProfile:Boolean,conversation:Array,collapsable:Boolean,isExpanded:Boolean,pinnedStatusIdsObject:Object,profileUserId:String,focused:Function,highlight:String,getReplies:Function,setHighlight:Function,toggleExpanded:Function,simple:Boolean,toggleThreadDisplay:Function,threadDisplayStatus:Object,showThreadRecursively:Function,totalReplyCount:Object,totalReplyDepth:Object,statusContentProperties:Object,setStatusContentProperty:Function,toggleStatusContentProperty:Function,dive:Function},computed:{suspendable:function(){var e=!this.$refs.statusComponent||this.$refs.statusComponent.suspendable;return this.$refs.childComponent?e&&this.$refs.childComponent.every((function(e){return e.suspendable})):e},reverseLookupTable:function(){return this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{})},currentReplies:function(){var e=this;return this.getReplies(this.status.id).map((function(t){var n=t.id;return e.statusById(n)}))},threadShowing:function(){return"showing"===this.threadDisplayStatus[this.status.id]},currentProp:function(){return this.statusContentProperties[this.status.id]}},methods:{statusById:function(e){return this.conversation[this.reverseLookupTable[e]]},collapseThread:function(){},showThread:function(){},showAllSubthreads:function(){},toggleCurrentProp:function(e){this.toggleStatusContentProperty(this.status.id,e)},setCurrentProp:function(e,t){this.setStatusContentProperty(this.status.id,e)}}};n(563);var Da=Fn()(Pa,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("status"),a=Object(wt.J)("thread-tree"),c=Object(wt.J)("FAIcon"),l=Object(wt.J)("i18n-t");return Object(wt.D)(),Object(wt.j)("div",_a,[(Object(wt.D)(),Object(wt.h)(s,{key:e.status.id,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:e.status,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[e.status.id],focused:e.focused(e.status.id),"in-conversation":e.isExpanded,highlight:e.highlight,replies:e.getReplies(e.status.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status conversation-status-treeview status-fadein panel-body","simple-tree":e.simple,"controlled-thread-display-status":e.threadDisplayStatus[e.status.id],"controlled-toggle-thread-display":()=>e.toggleThreadDisplay(e.status.id),"controlled-showing-tall":e.currentProp.showingTall,"controlled-expanding-subject":e.currentProp.expandingSubject,"controlled-showing-long-subject":e.currentProp.showingLongSubject,"controlled-replying":e.currentProp.replying,"controlled-media-playing":e.currentProp.mediaPlaying,"controlled-toggle-showing-tall":()=>e.toggleCurrentProp("showingTall"),"controlled-toggle-expanding-subject":()=>e.toggleCurrentProp("expandingSubject"),"controlled-toggle-showing-long-subject":()=>e.toggleCurrentProp("showingLongSubject"),"controlled-toggle-replying":()=>e.toggleCurrentProp("replying"),"controlled-set-media-playing":t=>e.setCurrentProp("mediaPlaying",t),dive:e.dive?()=>e.dive(e.status.id):void 0,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","controlled-thread-display-status","controlled-toggle-thread-display","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","dive","onGoto","onToggleExpanded"])),e.currentReplies.length&&e.threadShowing?(Object(wt.D)(),Object(wt.j)("div",Sa,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.currentReplies,t=>(Object(wt.D)(),Object(wt.h)(a,{key:t.id,ref_for:!0,ref:"childComponent",depth:e.depth+1,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.highlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.simple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.dive},null,8,["depth","status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"]))),128))])):Object(wt.i)("",!0),e.currentReplies.length&&!e.threadShowing?(Object(wt.D)(),Object(wt.j)("div",Ca,[e.simple?(Object(wt.D)(),Object(wt.h)(l,{key:0,scope:"global",tag:"button",keypath:"status.thread_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[0]||(t[0]=Object(wt.Y)(t=>e.dive(e.status.id),["prevent"]))},{icon:Object(wt.V)(()=>[Object(wt.m)(c,{icon:"angle-double-right"})]),text:Object(wt.V)(()=>[Object(wt.k)("span",null,Object(wt.O)(e.$tc("status.thread_follow",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id]})),1)]),_:1})):(Object(wt.D)(),Object(wt.h)(l,{key:1,scope:"global",tag:"button",keypath:"status.thread_show_full_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[1]||(t[1]=Object(wt.Y)(t=>e.showThreadRecursively(e.status.id),["prevent"]))},{icon:Object(wt.V)(()=>[Object(wt.m)(c,{icon:"angle-double-down"})]),text:Object(wt.V)(()=>[Object(wt.k)("span",null,Object(wt.O)(e.$tc("status.thread_show_full",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id],depth:e.totalReplyDepth[e.status.id]})),1)]),_:1}))])):Object(wt.i)("",!0)])}]]);function xa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ta(e){for(var t=1;t=1?e:1},displayStyle:function(){return this.$store.getters.mergedConfig.conversationDisplay},isTreeView:function(){return!this.isLinearView},treeViewIsSimple:function(){return!this.$store.getters.mergedConfig.conversationTreeAdvanced},isLinearView:function(){return"linear"===this.displayStyle},shouldFadeAncestors:function(){return this.$store.getters.mergedConfig.conversationTreeFadeAncestors},otherRepliesButtonPosition:function(){return this.$store.getters.mergedConfig.conversationOtherRepliesButton},showOtherRepliesButtonBelowStatus:function(){return"below"===this.otherRepliesButtonPosition},showOtherRepliesButtonInsideStatus:function(){return"inside"===this.otherRepliesButtonPosition},suspendable:function(){return this.isTreeView?Object.entries(this.statusContentProperties).every((function(e){var t=m()(e,2),n=(t[0],t[1]);return!n.replying&&0===n.mediaPlaying.length})):!this.$refs.statusComponent||!this.$refs.statusComponent[0]||this.$refs.statusComponent.every((function(e){return e.suspendable}))},hideStatus:function(){return this.virtualHidden&&this.suspendable},status:function(){return this.$store.state.statuses.allStatusesObject[this.statusId]},originalStatusId:function(){return this.status.retweeted_status?this.status.retweeted_status.id:this.statusId},conversationId:function(){return this.getConversationId(this.statusId)},conversation:function(){if(!this.status)return[];if(!this.isExpanded)return[this.status];var e=ka()(this.$store.state.statuses.conversationsObject[this.conversationId]),t=A()(e,{id:this.originalStatusId});return-1!==t&&(e[t]=this.status),function(e,t){return(e="retweet"===t.type?bt()(e,(function(e){return"retweet"===e.type||e.id!==t.retweeted_status.id})):bt()(e,(function(e){return"retweet"!==e.type}))).filter((function(e){return e})).sort(Ia)}(e,this.status)},statusMap:function(){return this.conversation.reduce((function(e,t){return e[t.id]=t,e}),{})},threadTree:function(){var e=this,t=this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{});return function n(r,i){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return i.map((function(i){return s[i]?[]:(s[i]=!0,[{status:e.conversation[t[i]],id:i,depth:o},n(r,r[i],o+1,s)].reduce((function(e,t){return e.concat(t)}),[]))})).reduce((function(e,t){return e.concat(t)}),[])}(this.conversation.reduce((function(t,n){var r=n.id;return t.forest[r]=e.getReplies(r).map((function(e){return e.id})),t}),{forest:{}}).forest,this.topLevel.map((function(e){return e.id})))},replyIds:function(){var e=this;return this.conversation.map((function(e){return e.id})).reduce((function(t,n){return t[n]=(e.replies[n]||[]).map((function(e){return e.id})),t}),{})},totalReplyCount:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(r){return t[r]||(t[r]=1+e.replyIds[r].map((function(e){return n(e)})).reduce((function(e,t){return e+t}),0)),t[r]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},totalReplyDepth:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(r){return t[r]||(t[r]=1+e.replyIds[r].map((function(e){return n(e)})).reduce((function(e,t){return e>t?e:t}),0)),t[r]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},depths:function(){return this.threadTree.reduce((function(e,t){return e[t.id]=t.depth,e}),{})},topLevel:function(){var e=this,t=this.conversation.reduce((function(t,n){return t.filter((function(t){return-1===e.getReplies(n.id).map((function(e){return e.id})).indexOf(t.id)}))}),this.conversation);return t},otherTopLevelCount:function(){return this.topLevel.length-1},showingTopLevel:function(){return this.canDive&&this.diveRoot?[this.statusMap[this.diveRoot]]:this.topLevel},diveRoot:function(){var e=this.inlineDivePosition||this.statusId;return!this.parentOf(e)?null:e},diveDepth:function(){return this.canDive&&this.diveRoot?this.depths[this.diveRoot]:0},diveMode:function(){return this.canDive&&!!this.diveRoot},shouldShowAllConversationButton:function(){return this.isTreeView&&this.isExpanded&&this.diveMode&&this.topLevel.length>1},shouldShowAncestors:function(){return this.isTreeView&&this.isExpanded&&this.ancestorsOf(this.diveRoot).length},replies:function(){var e=1;return xe()(this.conversation,(function(t,n){var r=n.id,i=n.in_reply_to_status_id;return i&&(t[i]=t[i]||[],t[i].push({name:"#".concat(e),id:r})),e++,t}),{})},isExpanded:function(){return!(!this.expanded&&!this.isPage)},hiddenStyle:function(){var e=this.status&&this.status.virtualHeight||"120px";return this.virtualHidden?{height:e}:{}},threadDisplayStatus:function(){var e=this;return this.conversation.reduce((function(t,n){var r=n.id,i=e.depths[r],o=e.threadDisplayStatusObject[r]?e.threadDisplayStatusObject[r]:i-e.diveDepth<=e.maxDepthToShowByDefault?"showing":"hidden";return t[r]=o,t}),{})},statusContentProperties:function(){var e=this;return this.conversation.reduce((function(t,n){var r,i=n.id,o=(r={showingTall:!1,expandingSubject:!1,showingLongSubject:!1,isReplying:!1,mediaPlaying:[]},e.statusContentPropertiesObject[i]?Ta(Ta({},r),e.statusContentPropertiesObject[i]):r);return t[i]=o,t}),{})},canDive:function(){return this.isTreeView&&this.isExpanded},focused:function(){var e=this;return function(t){return e.isExpanded&&t===e.highlight}},maybeHighlight:function(){return this.isExpanded?this.highlight:null}},components:{Status:Ns.default,ThreadTree:Da},watch:{statusId:function(e,t){var n=this.getConversationId(e),r=this.getConversationId(t);n&&r&&n===r?this.setHighlight(this.originalStatusId):this.fetchConversation()},expanded:function(e){e?this.fetchConversation():this.resetDisplayState()},virtualHidden:function(e){this.$store.dispatch("setVirtualHeight",{statusId:this.statusId,height:"".concat(this.$el.clientHeight,"px")})}},methods:{fetchConversation:function(){var e=this;this.status?this.$store.state.api.backendInteractor.fetchConversation({id:this.statusId}).then((function(t){var n=t.ancestors,r=t.descendants;e.$store.dispatch("addNewStatuses",{statuses:n}),e.$store.dispatch("addNewStatuses",{statuses:r}),e.setHighlight(e.originalStatusId)})):this.$store.state.api.backendInteractor.fetchStatus({id:this.statusId}).then((function(t){e.$store.dispatch("addNewStatuses",{statuses:[t]}),e.fetchConversation()}))},getReplies:function(e){return this.replies[e]||[]},getHighlight:function(){return this.isExpanded?this.highlight:null},setHighlight:function(e){e&&(this.highlight=e,this.$store.dispatch("fetchFavsAndRepeats",e),this.$store.dispatch("fetchEmojiReactionsBy",e))},toggleExpanded:function(){this.expanded=!this.expanded},getConversationId:function(e){var t=this.$store.state.statuses.allStatusesObject[e];return Jt()(t,"retweeted_status.statusnet_conversation_id",Jt()(t,"statusnet_conversation_id"))},setThreadDisplay:function(e,t){this.threadDisplayStatusObject=Ta(Ta({},this.threadDisplayStatusObject),{},h()({},e,t))},toggleThreadDisplay:function(e){var t="showing"===this.threadDisplayStatus[e]?"hidden":"showing";this.setThreadDisplay(e,t)},setThreadDisplayRecursively:function(e,t){var n=this;this.setThreadDisplay(e,t),this.getReplies(e).map((function(e){return e.id})).map((function(e){return n.setThreadDisplayRecursively(e,t)}))},showThreadRecursively:function(e){this.setThreadDisplayRecursively(e,"showing")},setStatusContentProperty:function(e,t,n){this.statusContentPropertiesObject=Ta(Ta({},this.statusContentPropertiesObject),{},h()({},e,Ta(Ta({},this.statusContentPropertiesObject[e]),{},h()({},t,n))))},toggleStatusContentProperty:function(e,t){this.setStatusContentProperty(e,t,!this.statusContentProperties[e][t])},leastVisibleAncestor:function(e){for(var t=e,n=this.parentOf(t);t;){if("showing"===this.threadDisplayStatus[n])return t;n=this.parentOf(n),t=this.parentOf(t)}return this.topLevel[0]?this.topLevel[0].id:void 0},diveIntoStatus:function(e,t){this.tryScrollTo(e)},diveToTopLevel:function(){this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot)||this.topLevel[0].id)},undive:function(){this.inlineDivePosition=null,this.setHighlight(this.statusId)},tryScrollTo:function(e){var t=this;e&&(this.isPage?this.$router.push({name:"conversation",params:{id:e}}):this.inlineDivePosition=e,this.$nextTick((function(){t.setHighlight(e)})))},goToCurrent:function(){this.tryScrollTo(this.diveRoot||this.topLevel[0].id)},statusById:function(e){return this.statusMap[e]},parentOf:function(e){var t=this.statusById(e);if(t){var n=t.in_reply_to_status_id;if(this.statusMap[n])return n}},parentOrSelf:function(e){return this.parentOf(e)||e},ancestorsOf:function(e){for(var t=[],n=this.parentOf(e);n;)t.unshift(this.statusMap[n]),n=this.parentOf(n);return t},topLevelAncestorOrSelfId:function(e){for(var t=e,n=this.parentOf(e);n;)t=this.parentOf(t),n=this.parentOf(n);return t},resetDisplayState:function(){this.undive(),this.threadDisplayStatusObject={}}}};n(564);var za=Fn()($a,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon"),a=Object(wt.J)("i18n-t"),c=Object(wt.J)("status"),l=Object(wt.J)("thread-tree");return e.hideStatus?(Object(wt.D)(),Object(wt.j)("div",{key:1,style:Object(wt.x)(e.hiddenStyle)},null,4)):(Object(wt.D)(),Object(wt.j)("div",{key:0,style:Object(wt.x)(e.hiddenStyle),class:Object(wt.w)(["Conversation",{"-expanded":e.isExpanded,panel:e.isExpanded}])},[e.isExpanded?(Object(wt.D)(),Object(wt.j)("div",ha,[Object(wt.k)("span",ba,Object(wt.O)(e.$t("timeline.conversation")),1),e.collapsable?(Object(wt.D)(),Object(wt.j)("button",{key:0,class:"button-unstyled -link",onClick:t[0]||(t[0]=Object(wt.Y)((...t)=>e.toggleExpanded&&e.toggleExpanded(...t),["prevent"]))},Object(wt.O)(e.$t("timeline.collapse")),1)):Object(wt.i)("",!0)])):Object(wt.i)("",!0),Object(wt.k)("div",ma,[e.isTreeView?(Object(wt.D)(),Object(wt.j)("div",fa,[e.shouldShowAllConversationButton?(Object(wt.D)(),Object(wt.j)("div",Oa,[Object(wt.m)(a,{keypath:"status.show_all_conversation_with_icon",tag:"button",class:"button-unstyled -link",onClick:Object(wt.Y)(e.diveToTopLevel,["prevent"]),scope:"global"},{icon:Object(wt.V)(()=>[Object(wt.m)(s,{icon:"angle-double-left"})]),text:Object(wt.V)(()=>[Object(wt.k)("span",null,Object(wt.O)(e.$tc("status.show_all_conversation",e.otherTopLevelCount,{numStatus:e.otherTopLevelCount})),1)]),_:1},8,["onClick"])])):Object(wt.i)("",!0),e.shouldShowAncestors?(Object(wt.D)(),Object(wt.j)("div",ja,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.ancestorsOf(e.diveRoot),t=>(Object(wt.D)(),Object(wt.j)("div",{key:t.id,class:Object(wt.w)(["thread-ancestor",{"thread-ancestor-has-other-replies":e.getReplies(t.id).length>1,"-faded":e.shouldFadeAncestors}])},[Object(wt.m)(c,{ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","simple-tree":e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"show-other-replies-as-button":e.showOtherRepliesButtonInsideStatus,dive:()=>e.diveIntoStatus(t.id),"controlled-showing-tall":e.statusContentProperties[t.id].showingTall,"controlled-expanding-subject":e.statusContentProperties[t.id].expandingSubject,"controlled-showing-long-subject":e.statusContentProperties[t.id].showingLongSubject,"controlled-replying":e.statusContentProperties[t.id].replying,"controlled-media-playing":e.statusContentProperties[t.id].mediaPlaying,"controlled-toggle-showing-tall":()=>e.toggleStatusContentProperty(t.id,"showingTall"),"controlled-toggle-expanding-subject":()=>e.toggleStatusContentProperty(t.id,"expandingSubject"),"controlled-toggle-showing-long-subject":()=>e.toggleStatusContentProperty(t.id,"showingLongSubject"),"controlled-toggle-replying":()=>e.toggleStatusContentProperty(t.id,"replying"),"controlled-set-media-playing":n=>e.toggleStatusContentProperty(t.id,"mediaPlaying",n),onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","show-other-replies-as-button","dive","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","onGoto","onToggleExpanded"]),e.showOtherRepliesButtonBelowStatus&&e.getReplies(t.id).length>1?(Object(wt.D)(),Object(wt.j)("div",ga,[Object(wt.k)("div",va,[Object(wt.m)(a,{tag:"button",scope:"global",keypath:"status.ancestor_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:Object(wt.Y)(n=>e.diveIntoStatus(t.id),["prevent"])},{icon:Object(wt.V)(()=>[Object(wt.m)(s,{icon:"angle-double-right"})]),text:Object(wt.V)(()=>[Object(wt.k)("span",null,Object(wt.O)(e.$tc("status.ancestor_follow",e.getReplies(t.id).length-1,{numReplies:e.getReplies(t.id).length-1})),1)]),_:2},1032,["onClick"])])])):Object(wt.i)("",!0)],2))),128))])):Object(wt.i)("",!0),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.showingTopLevel,t=>(Object(wt.D)(),Object(wt.h)(l,{key:t.id,ref_for:!0,ref:"statusComponent",depth:0,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.maybeHighlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.canDive?e.diveIntoStatus:void 0},null,8,["status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"]))),128))])):Object(wt.i)("",!0),e.isLinearView?(Object(wt.D)(),Object(wt.j)("div",ya,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.conversation,t=>(Object(wt.D)(),Object(wt.h)(c,{key:t.id,ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","onGoto","onToggleExpanded"]))),128))])):Object(wt.i)("",!0)])],6))}]]);const Ma={class:"timeline-menu-popover popover-default"},Ua={class:"button-unstyled title timeline-menu-title"},Fa={class:"timeline-title"};Tn.c.add(In.n);var Ea={components:{Popover:co.default,TimelineMenuContent:Lr},data:function(){return{isOpen:!1}},created:function(){({friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"})[this.$route.name]&&this.$store.dispatch("setLastTimeline",this.$route.name)},methods:{openMenu:function(){var e=this;setTimeout((function(){e.isOpen=!0}),25)},blockOpen:function(e){this.isOpen||e.stopPropagation()},timelineName:function(){var e=this.$route.name;if("tag-timeline"===e)return"#"+this.$route.params.tag;var t={friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"}[this.$route.name];return t?this.$t(t):e}}};n(565);var La=Fn()(Ea,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("TimelineMenuContent"),a=Object(wt.J)("FAIcon"),c=Object(wt.J)("Popover");return Object(wt.D)(),Object(wt.h)(c,{trigger:"click",class:Object(wt.w)(["TimelineMenu",{open:e.isOpen}]),margin:{left:-15,right:-200},"bound-to":{x:"container"},"popover-class":"timeline-menu-popover-wrap",onShow:e.openMenu,onClose:t[1]||(t[1]=()=>e.isOpen=!1)},{content:Object(wt.V)(()=>[Object(wt.k)("div",Ma,[Object(wt.m)(s)])]),trigger:Object(wt.V)(()=>[Object(wt.k)("button",Ua,[Object(wt.k)("span",Fa,Object(wt.O)(e.timelineName()),1),Object(wt.k)("span",null,[Object(wt.m)(a,{size:"sm",icon:"chevron-down"})]),Object(wt.k)("span",{class:"click-blocker",onClick:t[0]||(t[0]=(...t)=>e.blockOpen&&e.blockOpen(...t))})])]),_:1},8,["class","onShow"])}]]);const Ra={class:"dropdown-menu"},Aa={key:0},Na=Object(wt.k)("div",{role:"separator",class:"dropdown-divider"},null,-1),Ba={class:"button-unstyled"};function Va(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ha(e){for(var t=1;t[Object(wt.k)("div",Ra,[e.loggedIn?(Object(wt.D)(),Object(wt.j)("div",Aa,[Object(wt.k)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=t=>e.replyVisibilityAll=!0)},[Object(wt.k)("span",{class:Object(wt.w)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityAll}])},null,2),Object(wt.l)(Object(wt.O)(e.$t("settings.reply_visibility_all")),1)]),Object(wt.k)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=t=>e.replyVisibilityFollowing=!0)},[Object(wt.k)("span",{class:Object(wt.w)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityFollowing}])},null,2),Object(wt.l)(Object(wt.O)(e.$t("settings.reply_visibility_following_short")),1)]),Object(wt.k)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=t=>e.replyVisibilitySelf=!0)},[Object(wt.k)("span",{class:Object(wt.w)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilitySelf}])},null,2),Object(wt.l)(Object(wt.O)(e.$t("settings.reply_visibility_self_short")),1)]),Na])):Object(wt.i)("",!0),Object(wt.k)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=t=>e.muteBotStatuses=!e.muteBotStatuses)},[Object(wt.k)("span",{class:Object(wt.w)(["menu-checkbox",{"menu-checkbox-checked":e.muteBotStatuses}])},null,2),Object(wt.l)(Object(wt.O)(e.$t("settings.mute_bot_posts")),1)]),Object(wt.k)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=t=>e.hideMedia=!e.hideMedia)},[Object(wt.k)("span",{class:Object(wt.w)(["menu-checkbox",{"menu-checkbox-checked":e.hideMedia}])},null,2),Object(wt.l)(Object(wt.O)(e.$t("settings.hide_media_previews")),1)]),Object(wt.k)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=t=>e.hideMutedPosts=!e.hideMutedPosts)},[Object(wt.k)("span",{class:Object(wt.w)(["menu-checkbox",{"menu-checkbox-checked":e.hideMutedPosts}])},null,2),Object(wt.l)(Object(wt.O)(e.$t("settings.hide_all_muted_posts")),1)]),Object(wt.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[6]||(t[6]=t=>e.openTab("filtering"))},[Object(wt.m)(s,{icon:"font"}),Object(wt.l)(Object(wt.O)(e.$t("settings.word_filter")),1)]),Object(wt.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[7]||(t[7]=t=>e.openTab("general"))},[Object(wt.m)(s,{icon:"wrench"}),Object(wt.l)(Object(wt.O)(e.$t("settings.more_settings")),1)])])]),trigger:Object(wt.V)(()=>[Object(wt.k)("button",Ba,[Object(wt.m)(s,{icon:"filter"})])]),_:1})}]]);Tn.c.add(In.r,In.s);var Wa={props:["timeline","timelineName","title","userId","tag","embedded","count","pinnedStatusIds","inProfile","footerSlipgate"],data:function(){return{paused:!1,unfocused:!1,bottomedOut:!1,virtualScrollIndex:0,blockingClicks:!1}},components:{Status:Ns.default,Conversation:za,TimelineMenu:La,TimelineQuickSettings:qa},computed:{filteredVisibleStatuses:function(){var e=this;return this.timeline.visibleStatuses.filter((function(t){return"user"!==e.timelineName||t.id>=e.timeline.minId&&t.id<=e.timeline.maxId}))},filteredPinnedStatusIds:function(){var e=this;return(this.pinnedStatusIds||[]).filter((function(t){return e.timeline.statusesObject[t]}))},newStatusCount:function(){return this.timeline.newStatusCount},showLoadButton:function(){return this.timeline.newStatusCount>0||0!==this.timeline.flushMarker},loadButtonString:function(){return 0!==this.timeline.flushMarker?this.$t("timeline.reload"):"".concat(this.$t("timeline.show_new")," (").concat(this.newStatusCount,")")},classes:function(){var e=this.embedded?["-nonpanel"]:["panel","panel-default"];return this.blockingClicks&&(e=e.concat(["-blocked","_misclick-prevention"])),{root:e,header:["timeline-heading"].concat(this.embedded?[]:["panel-heading","-sticky"]),body:["timeline-body"].concat(this.embedded?[]:["panel-body"]),footer:["timeline-footer"].concat(this.embedded?[]:["panel-footer"])}},pinnedStatusIdsObject:function(){return ua()(this.pinnedStatusIds)},statusesToDisplay:function(){var e=this.timeline.visibleStatuses.length,t=Math.ceil(Math.max(3,window.innerHeight/80)),n=this.virtualScrollIndex-this.filteredPinnedStatusIds.length,r=Math.max(0,n-t),i=Math.min(e,n+t);return this.timeline.visibleStatuses.slice(r,i).map((function(e){return e.id}))},virtualScrollingEnabled:function(){return this.$store.getters.mergedConfig.virtualScrolling}},created:function(){var e=this.$store,t=e.state.users.currentUser.credentials,n=0===this.timeline.visibleStatuses.length;if(window.addEventListener("scroll",this.handleScroll),e.state.api.fetchers[this.timelineName])return!1;ve.fetchAndUpdate({store:e,credentials:t,timeline:this.timelineName,showImmediately:n,userId:this.userId,tag:this.tag})},mounted:function(){void 0!==document.hidden&&(document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.unfocused=document.hidden),window.addEventListener("keydown",this.handleShortKey),setTimeout(this.determineVisibleStatuses,250)},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("keydown",this.handleShortKey),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.commit("setLoading",{timeline:this.timelineName,value:!1})},methods:{stopBlockingClicks:os()((function(){this.blockingClicks=!1}),1e3),blockClicksTemporarily:function(){this.blockingClicks||(this.blockingClicks=!0),this.stopBlockingClicks()},handleShortKey:function(e){["textarea","input"].includes(e.target.tagName.toLowerCase())||"."===e.key&&this.showNewStatuses()},showNewStatuses:function(){0!==this.timeline.flushMarker?(this.$store.commit("clearTimeline",{timeline:this.timelineName,excludeUserId:!0}),this.$store.commit("queueFlush",{timeline:this.timelineName,id:0}),this.fetchOlderStatuses()):(this.blockClicksTemporarily(),this.$store.commit("showNewStatuses",{timeline:this.timelineName}),this.paused=!1),window.scrollTo({top:0})},fetchOlderStatuses:pa()((function(){var e=this,t=this.$store,n=t.state.users.currentUser.credentials;t.commit("setLoading",{timeline:this.timelineName,value:!0}),ve.fetchAndUpdate({store:t,credentials:n,timeline:this.timelineName,older:!0,showImmediately:!0,userId:this.userId,tag:this.tag}).then((function(t){var n=t.statuses;n&&0===n.length&&(e.bottomedOut=!0)})).finally((function(){return t.commit("setLoading",{timeline:e.timelineName,value:!1})}))}),1e3,void 0),determineVisibleStatuses:function(){if(this.$refs.timeline&&this.virtualScrollingEnabled){var e=this.$refs.timeline.children,t=Math.max(0,Math.min(this.virtualScrollIndex,e.length-1));if(0!==e.length){var n=Math.max(document.body.offsetHeight,window.pageYOffset),r=window.pageYOffset+.5*window.innerHeight,i=Math.floor(e.length*(r/n)),o=e[i].getBoundingClientRect().y,s=e[t].getBoundingClientRect().y;for(Math.abs(o)>s&&(i=t,o=s);o<-20&&iwindow.innerHeight+100&&i>0;)o-=e[--i].offsetHeight;this.virtualScrollIndex=i}}},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.timeline.loading&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchOlderStatuses()},handleScroll:pa()((function(e){this.determineVisibleStatuses(),this.scrollLoad(e)}),200),handleVisibilityChange:function(){this.unfocused=document.hidden}},watch:{newStatusCount:function(e){if(this.$store.getters.mergedConfig.streaming&&e>0){var t=document.documentElement;!((window.pageYOffset||t.scrollTop)-(t.clientTop||0)<15)||this.paused||this.unfocused&&this.$store.getters.mergedConfig.pauseOnUnfocused?this.paused=!0:this.showNewStatuses()}}}};n(567);var Ya=Fn()(Wa,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("TimelineMenu"),a=Object(wt.J)("TimelineQuickSettings"),c=Object(wt.J)("conversation"),l=Object(wt.J)("FAIcon");return Object(wt.D)(),Object(wt.j)("div",{class:Object(wt.w)(["Timeline",e.classes.root])},[Object(wt.k)("div",{class:Object(wt.w)(e.classes.header)},[e.embedded?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.h)(s,{key:0})),e.showLoadButton?(Object(wt.D)(),Object(wt.j)("button",{key:1,class:"button-default loadmore-button",onClick:t[0]||(t[0]=Object(wt.Y)((...t)=>e.showNewStatuses&&e.showNewStatuses(...t),["prevent"]))},Object(wt.O)(e.loadButtonString),1)):e.embedded?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("div",{key:2,class:"loadmore-text faint",onClick:t[1]||(t[1]=Object(wt.Y)(()=>{},["prevent"]))},Object(wt.O)(e.$t("timeline.up_to_date")),1)),e.embedded?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.h)(a,{key:3}))],2),Object(wt.k)("div",{class:Object(wt.w)(e.classes.body)},[Object(wt.k)("div",ia,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.filteredPinnedStatusIds,t=>(Object(wt.D)(),Object(wt.h)(c,{key:t+"-pinned",class:"status-fadein","status-id":t,collapsable:!0,"pinned-status-ids-object":e.pinnedStatusIdsObject,"in-profile":e.inProfile,"profile-user-id":e.userId},null,8,["status-id","pinned-status-ids-object","in-profile","profile-user-id"]))),128)),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.filteredVisibleStatuses,t=>(Object(wt.D)(),Object(wt.h)(c,{key:t.id,class:"status-fadein","status-id":t.id,collapsable:!0,"in-profile":e.inProfile,"profile-user-id":e.userId,"virtual-hidden":e.virtualScrollingEnabled&&!e.statusesToDisplay.includes(t.id)},null,8,["status-id","in-profile","profile-user-id","virtual-hidden"]))),128))],512)],2),Object(wt.k)("div",{class:Object(wt.w)(e.classes.footer)},[(Object(wt.D)(),Object(wt.h)(wt.c,{to:e.footerSlipgate,disabled:!e.embedded||!e.footerSlipgate},[0===e.count?(Object(wt.D)(),Object(wt.j)("div",oa,Object(wt.O)(e.$t("timeline.no_statuses")),1)):e.bottomedOut?(Object(wt.D)(),Object(wt.j)("div",sa,Object(wt.O)(e.$t("timeline.no_more_statuses")),1)):e.timeline.loading?(Object(wt.D)(),Object(wt.j)("div",ca,[Object(wt.m)(l,{icon:"circle-notch",spin:"",size:"lg"})])):(Object(wt.D)(),Object(wt.j)("button",{key:2,class:"button-unstyled -link",onClick:t[2]||(t[2]=Object(wt.Y)(t=>e.fetchOlderStatuses(),["prevent"]))},[Object(wt.k)("div",aa,Object(wt.O)(e.$t("timeline.load_older")),1)]))],8,["to","disabled"]))],2)],2)}]]),Ga={components:{Timeline:Ya},computed:{timeline:function(){return this.$store.state.statuses.timelines.public}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"public"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","public")}};var Ka=Fn()(Ga,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("Timeline");return Object(wt.D)(),Object(wt.h)(s,{title:e.$t("nav.public_tl"),timeline:e.timeline,"timeline-name":"public"},null,8,["title","timeline"])}]]);var Xa={components:{Timeline:Ya},computed:{timeline:function(){return this.$store.state.statuses.timelines.publicAndExternal}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"publicAndExternal"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","publicAndExternal")}};var Za=Fn()(Xa,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("Timeline");return Object(wt.D)(),Object(wt.h)(s,{title:e.$t("nav.twkn"),timeline:e.timeline,"timeline-name":"publicAndExternal"},null,8,["title","timeline"])}]]);var Qa={components:{Timeline:Ya},computed:{timeline:function(){return this.$store.state.statuses.timelines.friends}}};var ec=Fn()(Qa,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("Timeline");return Object(wt.D)(),Object(wt.h)(s,{title:e.$t("nav.timeline"),timeline:e.timeline,"timeline-name":"friends"},null,8,["title","timeline"])}]]);var tc={created:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})},components:{Timeline:Ya},computed:{tag:function(){return this.$route.params.tag},timeline:function(){return this.$store.state.statuses.timelines.tag}},watch:{tag:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})}},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","tag")}};var nc=Fn()(tc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("Timeline");return Object(wt.D)(),Object(wt.h)(s,{title:e.tag,timeline:e.timeline,"timeline-name":"tag",tag:e.tag},null,8,["title","timeline","tag"])}]]);var rc={computed:{timeline:function(){return this.$store.state.statuses.timelines.bookmarks}},components:{Timeline:Ya},unmounted:function(){this.$store.commit("clearTimeline",{timeline:"bookmarks"})}};var ic=Fn()(rc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("Timeline");return Object(wt.D)(),Object(wt.h)(s,{title:e.$t("nav.bookmarks"),timeline:e.timeline,"timeline-name":"bookmarks"},null,8,["title","timeline"])}]]);var oc={components:{Conversation:za},computed:{statusId:function(){return this.$route.params.id}}};var sc=Fn()(oc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("conversation");return Object(wt.D)(),Object(wt.h)(s,{collapsable:!1,"is-page":"true","status-id":e.statusId},null,8,["status-id"])}]]);const ac={class:"panel panel-default"},cc={class:"panel-heading"},lc={class:"title"},uc=["label"],dc=["label"],pc=["label"],hc=["label"];var bc=n(71),mc={mentions:["mention"],"likes+repeats":["repeat","like"],follows:["follow"],moves:["move"]},fc={data:function(){return{allowFollowingMove:this.$store.state.users.currentUser.allow_following_move,filterMode:mc.mentions}},methods:{onModeSwitch:function(e){this.filterMode=mc[e]}},components:{Notifications:fs.default,TabSwitcher:bc.a}};var Oc=Fn()(fc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("tab-switcher"),a=Object(wt.J)("Notifications");return Object(wt.D)(),Object(wt.j)("div",ac,[Object(wt.k)("div",cc,[Object(wt.k)("div",lc,Object(wt.O)(e.$t("nav.interactions")),1)]),Object(wt.m)(s,{ref:"tabSwitcher","on-switch":e.onModeSwitch},{default:Object(wt.V)(()=>[Object(wt.k)("span",{key:"mentions",label:e.$t("nav.mentions")},null,8,uc),Object(wt.k)("span",{key:"likes+repeats",label:e.$t("interactions.favs_repeats")},null,8,dc),Object(wt.k)("span",{key:"follows",label:e.$t("interactions.follows")},null,8,pc),e.allowFollowingMove?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("span",{key:"moves",label:e.$t("interactions.moves")},null,8,hc))]),_:1},8,["on-switch"]),Object(wt.m)(a,{ref:"notifications","no-heading":!0,"minimal-mode":!0,"filter-mode":e.filterMode},null,8,["filter-mode"])])}]]);var jc={computed:{timeline:function(){return this.$store.state.statuses.timelines.dms}},components:{Timeline:Ya}};var gc=Fn()(jc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("Timeline");return Object(wt.D)(),Object(wt.h)(s,{title:e.$t("nav.dms"),timeline:e.timeline,"timeline-name":"dms"},null,8,["title","timeline"])}]]);const vc={key:0},yc={key:1,class:"chat-list panel panel-default"},wc={class:"panel-heading -sticky"},kc={class:"title"},_c={class:"panel-body"},Sc={key:0,class:"timeline"},Cc={key:1,class:"emtpy-chat-list-alert"};const Pc={class:"chat-list-item-left"},Dc={class:"chat-list-item-center"},xc={class:"heading"},Tc={key:0,class:"name-and-account-name"},Ic=Object(wt.k)("span",{class:"heading-right"},null,-1),$c={class:"time-wrapper"},zc={class:"chat-preview"},Mc={key:0,class:"badge badge-notification unread-chat-count"};var Uc=n(44),Fc=n(22),Ec=n(144),Lc=n(59);const Rc=["title"];var Ac=n(25),Nc={name:"ChatTitle",components:{UserAvatar:Fc.default,RichContent:Ac.a},props:["user","withAvatar"],computed:{title:function(){return this.user?this.user.screen_name_ui:""},htmlTitle:function(){return this.user?this.user.name_html:""}},methods:{getUserProfileLink:function(e){return Object(ji.a)(e.id,e.screen_name)}}};n(569);var Bc=Fn()(Nc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("UserAvatar"),a=Object(wt.J)("router-link"),c=Object(wt.J)("RichContent");return Object(wt.D)(),Object(wt.j)("div",{class:"chat-title",title:e.title},[e.withAvatar&&e.user?(Object(wt.D)(),Object(wt.h)(a,{key:0,class:"avatar-container",to:e.getUserProfileLink(e.user)},{default:Object(wt.V)(()=>[Object(wt.m)(s,{class:"titlebar-avatar",user:e.user},null,8,["user"])]),_:1},8,["to"])):Object(wt.i)("",!0),e.user?(Object(wt.D)(),Object(wt.h)(c,{key:1,class:"username",title:"@"+(e.user&&e.user.screen_name_ui),html:e.htmlTitle,emoji:e.user.emoji||[]},null,8,["title","html","emoji"])):Object(wt.i)("",!0)],8,Rc)}]]);function Vc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Hc(e){for(var t=1;t".concat(this.$t("chats.you")," ").concat(r):r;return{summary:"",emojis:t,raw_html:i,text:i,attachments:[]}}}),methods:{openChat:function(e){this.chat.id&&this.$router.push({name:"chat",params:{username:this.currentUser.screen_name,recipient_id:this.chat.account.id}})}}};n(570);var qc=Fn()(Jc,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("UserAvatar"),a=Object(wt.J)("ChatTitle"),c=Object(wt.J)("Timeago"),l=Object(wt.J)("StatusBody");return Object(wt.D)(),Object(wt.j)("div",{class:"chat-list-item",onClickCapture:t[0]||(t[0]=Object(wt.Y)((...t)=>e.openChat&&e.openChat(...t),["prevent"]))},[Object(wt.k)("div",Pc,[Object(wt.m)(s,{user:e.chat.account,height:"48px",width:"48px"},null,8,["user"])]),Object(wt.k)("div",Dc,[Object(wt.k)("div",xc,[e.chat.account?(Object(wt.D)(),Object(wt.j)("span",Tc,[Object(wt.m)(a,{user:e.chat.account},null,8,["user"])])):Object(wt.i)("",!0),Ic,Object(wt.k)("div",$c,[Object(wt.m)(c,{time:e.chat.updated_at,"auto-update":60},null,8,["time"])])]),Object(wt.k)("div",zc,[Object(wt.m)(l,{class:"chat-preview-body",status:e.messageForStatusContent,"single-line":!0},null,8,["status"]),e.chat.unread>0?(Object(wt.D)(),Object(wt.j)("div",Mc,Object(wt.O)(e.chat.unread),1)):Object(wt.i)("",!0)])])],32)}]]);const Wc={class:"panel-default panel chat-new"},Yc={ref:"header",class:"panel-heading"},Gc={class:"input-wrap"},Kc={class:"input-search"},Xc={class:"member-list"},Zc=["onClickCapture"];var Qc=n(53);function el(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tl(e){for(var t=1;te.goBack&&e.goBack(...t))},[Object(wt.m)(s,{size:"lg",icon:"chevron-left"})])],512),Object(wt.k)("div",Gc,[Object(wt.k)("div",Kc,[Object(wt.m)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),Object(wt.W)(Object(wt.k)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=t=>e.query=t),placeholder:"Search people",onInput:t[2]||(t[2]=(...t)=>e.onInput&&e.onInput(...t))},null,544),[[wt.S,e.query]])]),Object(wt.k)("div",Xc,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.availableUsers,t=>(Object(wt.D)(),Object(wt.j)("div",{key:t.id,class:"member"},[Object(wt.k)("div",{onClickCapture:Object(wt.Y)(n=>e.goToChat(t),["prevent"])},[Object(wt.m)(a,{user:t},null,8,["user"])],40,Zc)]))),128))])])}]]);function il(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ol(e){for(var t=1;te.newChat&&e.newChat(...t))},Object(wt.O)(e.$t("chats.new")),1)]),Object(wt.k)("div",_c,[e.sortedChatList.length>0?(Object(wt.D)(),Object(wt.j)("div",Sc,[Object(wt.m)(c,{items:e.sortedChatList},{item:Object(wt.V)(({item:e})=>[(Object(wt.D)(),Object(wt.h)(a,{key:e.id,compact:!1,chat:e},null,8,["chat"]))]),_:1},8,["items"])])):(Object(wt.D)(),Object(wt.j)("div",Cc,[Object(wt.k)("span",null,Object(wt.O)(e.$t("chats.empty_chat_list_placeholder")),1)]))])]))}]]);const cl={class:"chat-view"},ll={class:"chat-view-inner"},ul={ref:"inner",class:"panel-default panel chat-view-body"},dl={ref:"header",class:"panel-heading -sticky chat-view-heading"},pl={class:"title text-center"},hl={key:1,class:"chat-loading-error"},bl={class:"alert error"},ml={ref:"footer",class:"panel-body footer"},fl={key:0,class:"badge badge-notification unread-chat-count unread-message-count"};const Ol={key:0,class:"avatar-wrapper"},jl={class:"chat-message-inner"},gl={class:"dropdown-menu"},vl=["title"],yl={class:"created-at"},wl={key:1,class:"chat-message-date-separator"};var kl=n(58),_l=n(78),Sl=n(142);var Cl=n(37),Pl={name:"Timeago",props:["date"],computed:{displayDate:function(){var e=new Date;return e.setHours(0,0,0,0),this.date.getTime()===e.getTime()?this.$t("display_date.today"):this.date.toLocaleDateString(Cl.a.internalToBrowserLocale(this.$i18n.locale),{day:"numeric",month:"long"})}}};var Dl=Fn()(Pl,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("time",null,Object(wt.O)(o.displayDate),1)}]]);function xl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tl(e){for(var t=1;t0}},Object(a.e)({betterShadow:function(e){return e.interface.browserSupport.cssFilter},currentUser:function(e){return e.users.currentUser},restrictedNicknames:function(e){return e.instance.restrictedNicknames}})),{},{popoverMarginStyle:function(){return this.isCurrentUser?{}:{left:50}}},Object(a.c)(["mergedConfig","findUser"])),data:function(){return{hovered:!1,menuOpened:!1}},methods:{onHover:function(e){this.$emit("hover",{isHovered:e,messageChainId:this.chatViewItem.messageChainId})},deleteMessage:function(){var e=this;return i()(s.a.mark((function t(){return s.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.confirm(e.$t("chats.delete_confirm"))){t.next=4;break}return t.next=4,e.$store.dispatch("deleteChatMessage",{messageId:e.chatViewItem.data.id,chatId:e.chatViewItem.data.chat_id});case 4:e.hovered=!1,e.menuOpened=!1;case 6:case"end":return t.stop()}}),t)})))()}}};n(574);var $l=Fn()(Il,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("UserAvatar"),a=Object(wt.J)("router-link"),c=Object(wt.J)("FAIcon"),l=Object(wt.J)("Popover"),u=Object(wt.J)("StatusContent"),d=Object(wt.J)("ChatMessageDate");return e.isMessage?(Object(wt.D)(),Object(wt.j)("div",{key:0,class:Object(wt.w)(["chat-message-wrapper",{"hovered-message-chain":e.hoveredMessageChain}]),onMouseover:t[5]||(t[5]=t=>e.onHover(!0)),onMouseleave:t[6]||(t[6]=t=>e.onHover(!1))},[Object(wt.k)("div",{class:Object(wt.w)(["chat-message",[{outgoing:e.isCurrentUser,incoming:!e.isCurrentUser}]])},[e.isCurrentUser?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("div",Ol,[e.chatViewItem.isHead?(Object(wt.D)(),Object(wt.h)(a,{key:0,to:e.userProfileLink},{default:Object(wt.V)(()=>[Object(wt.m)(s,{compact:!0,"better-shadow":e.betterShadow,user:e.author},null,8,["better-shadow","user"])]),_:1},8,["to"])):Object(wt.i)("",!0)])),Object(wt.k)("div",jl,[Object(wt.k)("div",{class:"status-body",style:Object(wt.x)({"min-width":e.message.attachment?"80%":""})},[Object(wt.k)("div",{class:Object(wt.w)(["media status",{"without-attachment":!e.hasAttachment,pending:e.chatViewItem.data.pending,error:e.chatViewItem.data.error}]),style:{position:"relative"},onMouseenter:t[3]||(t[3]=t=>e.hovered=!0),onMouseleave:t[4]||(t[4]=t=>e.hovered=!1)},[Object(wt.k)("div",{class:Object(wt.w)(["chat-message-menu",{visible:e.hovered||e.menuOpened}])},[Object(wt.m)(l,{trigger:"click",placement:"top","bound-to-selector":e.isCurrentUser?"":".scrollable-message-list","bound-to":{x:"container"},margin:e.popoverMarginStyle,onShow:t[1]||(t[1]=t=>e.menuOpened=!0),onClose:t[2]||(t[2]=t=>e.menuOpened=!1)},{content:Object(wt.V)(()=>[Object(wt.k)("div",gl,[Object(wt.k)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=(...t)=>e.deleteMessage&&e.deleteMessage(...t))},[Object(wt.m)(c,{icon:"times"}),Object(wt.l)(" "+Object(wt.O)(e.$t("chats.delete")),1)])])]),trigger:Object(wt.V)(()=>[Object(wt.k)("button",{class:"button-default menu-icon",title:e.$t("chats.more")},[Object(wt.m)(c,{icon:"ellipsis-h"})],8,vl)]),_:1},8,["bound-to-selector","margin"])],2),Object(wt.m)(u,{class:"message-content",status:e.messageForStatusContent,"full-content":!0},{footer:Object(wt.V)(()=>[Object(wt.k)("span",yl,Object(wt.O)(e.createdAt),1)]),_:1},8,["status"])],34)],4)])],2)],34)):(Object(wt.D)(),Object(wt.j)("div",wl,[Object(wt.m)(d,{date:e.chatViewItem.date},null,8,["date"])]))}]]),zl=function(){return{scrollTop:window.scrollY,scrollHeight:document.documentElement.scrollHeight,offsetHeight:window.innerHeight}};function Ml(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ul(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=t.expand,r=void 0!==n&&n,i=t.delayed,o=void 0!==i&&i;o?setTimeout((function(){e.handleResize(Ul(Ul({},t),{},{delayed:!1}))}),100):this.$nextTick((function(){var t=zl().offsetHeight,n=void 0===t?void 0:t,i=e.lastScrollPosition.offsetHeight-n;(0!==i||!e.bottomedOut()&&r)&&e.$nextTick((function(){window.scrollTo({top:window.scrollY+i})})),e.lastScrollPosition=zl()}))},scrollDown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.behavior,n=void 0===t?"auto":t,r=e.forceRead,i=void 0!==r&&r;this.$nextTick((function(){window.scrollTo({top:document.documentElement.scrollHeight,behavior:n})})),i&&this.readChat()},readChat:function(){if(this.currentChatMessageService&&this.currentChatMessageService.maxId&&!document.hidden){var e=this.currentChatMessageService.maxId;this.$store.dispatch("readChat",{id:this.currentChat.id,lastReadId:e})}},bottomedOut:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=window.scrollY+e,n=document.documentElement.scrollHeight-window.innerHeight;return n<=t}(e)},reachedTop:function(){return window.scrollY<=0},cullOlderCheck:function(){var e=this;window.setTimeout((function(){e.bottomedOut(10)&&e.$store.dispatch("cullOlderMessages",e.currentChatMessageService.chatId)}),5e3)},handleScroll:pa()((function(){var e=this;this.currentChat&&(this.reachedTop()?this.fetchChat({maxId:this.currentChatMessageService.minId}):this.bottomedOut(10)?(this.jumpToBottomButtonVisible=!1,this.cullOlderCheck(),this.newMessageCount>0&&window.setTimeout((function(){e.$el&&e.readChat()}),1500)):this.jumpToBottomButtonVisible=!0)}),200),handleScrollUp:function(e){var t,n,r=zl();window.scrollTo({top:(t=e,n=r,t.scrollTop+(n.scrollHeight-t.scrollHeight))})},fetchChat:function(e){var t=this,n=e.isFirstFetch,r=void 0!==n&&n,i=e.fetchLatest,o=void 0!==i&&i,s=e.maxId,a=this.currentChatMessageService;if(a&&(!o||!this.streamingEnabled)){var c=a.chatId,l=!!s,u=o&&a.maxId;return this.backendInteractor.chatMessages({id:c,maxId:s,sinceId:u}).then((function(e){r&&$t.clear(a);var n=zl();t.$store.dispatch("addChatMessages",{chatId:c,messages:e}).then((function(){t.$nextTick((function(){l&&t.handleScrollUp(n),!(document.documentElement.scrollHeight>window.innerHeight)&&e.length>0&&t.fetchChat({maxId:t.currentChatMessageService.minId})}))}))}))}},startFetching:function(){var e=this;return i()(s.a.mark((function t(){var n;return s.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.findOpenedChatByRecipientId(e.recipientId)){t.next=12;break}return t.prev=2,t.next=5,e.backendInteractor.getOrCreateChat({accountId:e.recipientId});case 5:n=t.sent,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(2),console.error("Error creating or getting a chat",t.t0),e.errorLoadingChat=!0;case 12:n&&(e.$nextTick((function(){e.scrollDown({forceRead:!0})})),e.$store.dispatch("addOpenedChat",{chat:n}),e.doStartFetching());case 13:case"end":return t.stop()}}),t,null,[[2,8]])})))()},doStartFetching:function(){var e=this;this.$store.dispatch("startFetchingCurrentChat",{fetcher:function(){return Object(je.a)((function(){return e.fetchChat({fetchLatest:!0})}),5e3)}}),this.fetchChat({isFirstFetch:!0})},handleAttachmentPosting:function(){var e=this;this.$nextTick((function(){e.handleResize(),e.scrollDown({forceRead:!0})}))},sendMessage:function(e){var t=this,n=e.status,r=e.media,i=e.idempotencyKey,o={id:this.currentChat.id,content:n,idempotencyKey:i};r[0]&&(o.mediaId=r[0].id);var s=function(e){var t=e.content,n=e.chatId,r=e.attachments,i=e.userId,o=e.idempotencyKey,s={content:t,chat_id:n,created_at:new Date,id:"".concat((new Date).getTime()),attachments:r,account_id:i,idempotency_key:o,emojis:[],pending:!0,isNormalized:!0};return r[0]&&(s.attachment=r[0]),s}({attachments:r,chatId:this.currentChat.id,content:n,userId:this.currentUser.id,idempotencyKey:i});return this.$store.dispatch("addChatMessages",{chatId:this.currentChat.id,messages:[s]}).then((function(){t.handleAttachmentPosting()})),this.doSendMessage({params:o,fakeMessage:s,retriesLeft:10})},doSendMessage:function(e){var t=this,n=e.params,r=e.fakeMessage,i=e.retriesLeft,o=void 0===i?10:i;if(!(o<=0))return this.backendInteractor.sendChatMessage(n).then((function(e){return t.$store.dispatch("addChatMessages",{chatId:t.currentChat.id,updateMaxId:!1,messages:[Ul(Ul({},e),{},{fakeId:r.id})]}),e})).catch((function(e){return console.error("Error sending message",e),t.$store.dispatch("handleMessageError",{chatId:t.currentChat.id,fakeId:r.id,isRetry:10!==o}),(e.statusCode>=500&&e.statusCode<600||"Failed to fetch"===e.message)&&(t.messageRetriers[r.id]=setTimeout((function(){t.doSendMessage({params:n,fakeMessage:r,retriesLeft:o-1})}),1e3*Math.pow(2,10-o))),{}})),Promise.resolve(r)},goBack:function(){this.$router.push({name:"chats",params:{username:this.currentUser.screen_name}})}}};n(575);var El=Fn()(Fl,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon"),a=Object(wt.J)("ChatTitle"),c=Object(wt.J)("ChatMessage"),l=Object(wt.J)("PostStatusForm");return Object(wt.D)(),Object(wt.j)("div",cl,[Object(wt.k)("div",ll,[Object(wt.k)("div",ul,[Object(wt.k)("div",dl,[Object(wt.k)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=(...t)=>e.goBack&&e.goBack(...t))},[Object(wt.m)(s,{size:"lg",icon:"chevron-left"})]),Object(wt.k)("div",pl,[Object(wt.m)(a,{user:e.recipient,"with-avatar":!0},null,8,["user"])])],512),Object(wt.k)("div",{class:"message-list",style:Object(wt.x)({height:e.scrollableContainerHeight})},[e.errorLoadingChat?(Object(wt.D)(),Object(wt.j)("div",hl,[Object(wt.k)("div",bl,Object(wt.O)(e.$t("chats.error_loading_chat")),1)])):(Object(wt.D)(!0),Object(wt.j)(wt.a,{key:0},Object(wt.H)(e.chatViewItems,t=>(Object(wt.D)(),Object(wt.h)(c,{key:t.id,author:e.recipient,"chat-view-item":t,"hovered-message-chain":t.messageChainId===e.hoveredMessageChainId,onHover:e.onMessageHover},null,8,["author","chat-view-item","hovered-message-chain","onHover"]))),128))],4),Object(wt.k)("div",ml,[Object(wt.k)("div",{class:Object(wt.w)(["jump-to-bottom-button",{visible:e.jumpToBottomButtonVisible}]),onClick:t[1]||(t[1]=t=>e.scrollDown({behavior:"smooth"}))},[Object(wt.k)("span",null,[Object(wt.m)(s,{icon:"chevron-down"}),e.newMessageCount?(Object(wt.D)(),Object(wt.j)("div",fl,Object(wt.O)(e.newMessageCount),1)):Object(wt.i)("",!0)])],2),Object(wt.m)(l,{"disable-subject":!0,"disable-scope-selector":!0,"disable-notice":!0,"disable-lock-warning":!0,"disable-polls":!0,"disable-sensitivity-checkbox":!0,"disable-submit":e.errorLoadingChat||!e.currentChat,"disable-preview":!0,"optimistic-posting":!0,"post-handler":e.sendMessage,"submit-on-enter":!e.mobileLayout,"preserve-focus":!e.mobileLayout,"auto-focus":!e.mobileLayout,placeholder:e.formPlaceholder,"file-limit":1,"max-height":"160","emoji-picker-placement":"top",onResize:e.handleResize},null,8,["disable-submit","post-handler","submit-on-enter","preserve-focus","auto-focus","placeholder","onResize"])],512)],512)])])}]]);const Ll={key:0,class:"user-profile panel panel-default"},Rl={key:0,class:"user-profile-fields"},Al=["title"],Nl=["title"],Bl=["label","disabled"],Vl=["label","disabled"],Hl={key:1,class:"panel user-profile-placeholder"},Jl={class:"panel-heading"},ql={class:"title"},Wl={class:"panel-body"},Yl={key:0};const Gl={class:"follow-card-content-container"},Kl={key:0,class:"faint"},Xl={key:0,class:"follow-card-follow-button"};var Zl=n(143),Ql=n(139),eu={props:["user","noFollowsYou"],components:{BasicUserCard:Qc.a,RemoteFollow:Zl.a,FollowButton:Ql.a},computed:{isMe:function(){return this.$store.state.users.currentUser.id===this.user.id},loggedIn:function(){return this.$store.state.users.currentUser},relationship:function(){return this.$store.getters.relationship(this.user.id)}}};n(576);var tu=Fn()(eu,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("RemoteFollow"),a=Object(wt.J)("FollowButton"),c=Object(wt.J)("basic-user-card");return Object(wt.D)(),Object(wt.h)(c,{user:e.user},{default:Object(wt.V)(()=>[Object(wt.k)("div",Gl,[e.isMe||!e.noFollowsYou&&e.relationship.followed_by?(Object(wt.D)(),Object(wt.j)("span",Kl,Object(wt.O)(e.isMe?e.$t("user_card.its_you"):e.$t("user_card.follows_you")),1)):Object(wt.i)("",!0),e.loggedIn?e.isMe?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.h)(a,{key:2,relationship:e.relationship,"label-following":e.$t("user_card.follow_unfollow"),class:"follow-card-follow-button",user:e.user},null,8,["relationship","label-following","user"])):(Object(wt.D)(),Object(wt.j)(wt.a,{key:1},[e.relationship.following?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("div",Xl,[Object(wt.m)(s,{user:e.user},null,8,["user"])]))],64))])]),_:1},8,["user"])}]]),nu=n(298),ru=n.n(nu),iu=n(299);n(577);function ou(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function su(e){for(var t=1;t0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchEntries()}},render:function(){var t,n=su(su({},this.$props),{},h()({},o,this.entries)),r=this.$slots;return Object(wt.m)("div",{class:"with-load-more"},[Object(wt.m)(e,n,(t=r,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!Object(wt.t)(t)?r:{default:function(){return[r]}})),Object(wt.m)("div",{class:"with-load-more-footer"},[this.error&&Object(wt.m)("button",{onClick:this.fetchEntries,class:"button-unstyled -link -fullwidth alert error"},[this.$t("general.generic_error")]),!this.error&&this.loading&&Object(wt.m)(sn.a,{spin:!0,icon:"circle-notch"},null),!this.error&&!this.loading&&!this.bottomedOut&&Object(wt.m)("a",{onClick:this.fetchEntries},[this.$t("general.more")])])])}}}};Tn.c.add(In.r);var cu=au({fetch:function(e,t){return t.dispatch("fetchFollowers",e.userId)},select:function(e,t){return Jt()(t.getters.findUser(e.userId),"followerIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFollowers",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(Bs.a),lu=au({fetch:function(e,t){return t.dispatch("fetchFriends",e.userId)},select:function(e,t){return Jt()(t.getters.findUser(e.userId),"friendIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFriends",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(Bs.a),uu={data:function(){return{error:!1,userId:null,tab:"statuses",footerRef:null}},created:function(){var e=this.$route.params;this.load(e.name||e.id),this.tab=Jt()(this.$route,"query.tab","statuses")},unmounted:function(){this.stopFetching()},computed:{timeline:function(){return this.$store.state.statuses.timelines.user},favorites:function(){return this.$store.state.statuses.timelines.favorites},media:function(){return this.$store.state.statuses.timelines.media},isUs:function(){return this.userId&&this.$store.state.users.currentUser.id&&this.userId===this.$store.state.users.currentUser.id},user:function(){return this.$store.getters.findUser(this.userId)},isExternal:function(){return"external-user-profile"===this.$route.name},followsTabVisible:function(){return this.isUs||!this.user.hide_follows},followersTabVisible:function(){return this.isUs||!this.user.hide_followers}},methods:{setFooterRef:function(e){this.footerRef=e},load:function(e){var t=this,n=function(e,n){n!==t.$store.state.statuses.timelines[e].userId&&t.$store.commit("clearTimeline",{timeline:e}),t.$store.dispatch("startFetchingTimeline",{timeline:e,userId:n})},r=function(e){t.userId=e,n("user",e),n("media",e),t.isUs&&n("favorites",e),t.$store.dispatch("fetchPinnedStatuses",e)};this.userId=null,this.error=!1;var i=this.$store.getters.findUser(e);i?r(i.id):this.$store.dispatch("fetchUser",e).then((function(e){var t=e.id;return r(t)})).catch((function(e){var n=Jt()(e,"error.error");t.error="No user with such user_id"===n?t.$t("user_profile.profile_does_not_exist"):n||t.$t("user_profile.profile_loading_error")}))},stopFetching:function(){this.$store.dispatch("stopFetchingTimeline","user"),this.$store.dispatch("stopFetchingTimeline","favorites"),this.$store.dispatch("stopFetchingTimeline","media")},switchUser:function(e){this.stopFetching(),this.load(e)},onTabSwitch:function(e){this.tab=e,this.$router.replace({query:{tab:e}})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")}},watch:{"$route.params.id":function(e){e&&this.switchUser(e)},"$route.params.name":function(e){e&&this.switchUser(e)},"$route.query":function(e){this.tab=e.tab||"statuses"}},components:{UserCard:jr.a,Timeline:Ya,FollowerList:cu,FriendList:lu,FollowCard:tu,TabSwitcher:bc.a,Conversation:za,RichContent:Ac.a}};n(578);var du=Fn()(uu,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("UserCard"),a=Object(wt.J)("RichContent"),c=Object(wt.J)("Timeline"),l=Object(wt.J)("FollowCard"),u=Object(wt.J)("FriendList"),d=Object(wt.J)("FollowerList"),p=Object(wt.J)("tab-switcher"),h=Object(wt.J)("FAIcon");return Object(wt.D)(),Object(wt.j)("div",null,[e.user?(Object(wt.D)(),Object(wt.j)("div",Ll,[Object(wt.m)(s,{"user-id":e.userId,switcher:!0,selected:e.timeline.viewing,"allow-zooming-avatar":!0,rounded:"top"},null,8,["user-id","selected"]),e.user.fields_html&&e.user.fields_html.length>0?(Object(wt.D)(),Object(wt.j)("div",Rl,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.user.fields_html,(t,n)=>(Object(wt.D)(),Object(wt.j)("dl",{key:n,class:"user-profile-field"},[Object(wt.k)("dt",{title:e.user.fields_text[n].name,class:"user-profile-field-name"},[Object(wt.m)(a,{html:t.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,Al),Object(wt.k)("dd",{title:e.user.fields_text[n].value,class:"user-profile-field-value"},[Object(wt.m)(a,{html:t.value,emoji:e.user.emoji},null,8,["html","emoji"])],8,Nl)]))),128))])):Object(wt.i)("",!0),Object(wt.m)(p,{"active-tab":e.tab,"render-only-focused":!0,"on-switch":e.onTabSwitch},{default:Object(wt.V)(()=>[Object(wt.m)(c,{key:"statuses",label:e.$t("user_card.statuses"),count:e.user.statuses_count,embedded:!0,title:e.$t("user_profile.timeline_title"),timeline:e.timeline,"timeline-name":"user","user-id":e.userId,"pinned-status-ids":e.user.pinnedStatusIds,"in-profile":!0,footerSlipgate:e.footerRef},null,8,["label","count","title","timeline","user-id","pinned-status-ids","footerSlipgate"]),e.followsTabVisible?(Object(wt.D)(),Object(wt.j)("div",{key:"followees",label:e.$t("user_card.followees"),disabled:!e.user.friends_count},[Object(wt.m)(u,{"user-id":e.userId},{item:Object(wt.V)(({item:e})=>[Object(wt.m)(l,{user:e},null,8,["user"])]),_:1},8,["user-id"])],8,Bl)):Object(wt.i)("",!0),e.followersTabVisible?(Object(wt.D)(),Object(wt.j)("div",{key:"followers",label:e.$t("user_card.followers"),disabled:!e.user.followers_count},[Object(wt.m)(d,{"user-id":e.userId},{item:Object(wt.V)(({item:t})=>[Object(wt.m)(l,{user:t,"no-follows-you":e.isUs},null,8,["user","no-follows-you"])]),_:1},8,["user-id"])],8,Vl)):Object(wt.i)("",!0),Object(wt.m)(c,{key:"media",label:e.$t("user_card.media"),disabled:!e.media.visibleStatuses.length,embedded:!0,title:e.$t("user_card.media"),"timeline-name":"media",timeline:e.media,"user-id":e.userId,"in-profile":!0,footerSlipgate:e.footerRef},null,8,["label","disabled","title","timeline","user-id","footerSlipgate"]),e.isUs?(Object(wt.D)(),Object(wt.h)(c,{key:"favorites",label:e.$t("user_card.favorites"),disabled:!e.favorites.visibleStatuses.length,embedded:!0,title:e.$t("user_card.favorites"),"timeline-name":"favorites",timeline:e.favorites,"in-profile":!0,footerSlipgate:e.footerRef},null,8,["label","disabled","title","timeline","footerSlipgate"])):Object(wt.i)("",!0)]),_:1},8,["active-tab","on-switch"]),Object(wt.k)("div",{class:"panel-footer",ref:e.setFooterRef},null,512)])):(Object(wt.D)(),Object(wt.j)("div",Hl,[Object(wt.k)("div",Jl,[Object(wt.k)("div",ql,Object(wt.O)(e.$t("settings.profile_tab")),1)]),Object(wt.k)("div",Wl,[e.error?(Object(wt.D)(),Object(wt.j)("span",Yl,Object(wt.O)(e.error),1)):(Object(wt.D)(),Object(wt.h)(h,{key:1,spin:"",icon:"circle-notch"}))])]))])}]]);const pu={class:"panel panel-default"},hu={class:"panel-heading"},bu={class:"title"},mu={class:"search-input-container"},fu=["placeholder"],Ou={key:0,class:"text-center loading-icon"},ju={key:1},gu={class:"search-nav-heading"},vu=["label"],yu=["label"],wu=["label"],ku={class:"panel-body"},_u={key:0},Su={key:0,class:"search-result-heading"},Cu={key:1},Pu={key:0,class:"search-result-heading"},Du={key:2},xu={key:0,class:"search-result-heading"},Tu={class:"hashtag"},Iu={key:0},$u={key:0},zu={key:1},Mu={key:0,class:"count"},Uu=Object(wt.k)("div",{class:"search-result-footer text-center panel-footer faint"},null,-1);Tn.c.add(In.r,In.cb);var Fu={components:{FollowCard:tu,Conversation:za,Status:Ns.default,TabSwitcher:bc.a},props:["query"],data:function(){return{loaded:!1,loading:!1,searchTerm:this.query||"",userIds:[],statuses:[],hashtags:[],currenResultTab:"statuses"}},computed:{users:function(){var e=this;return this.userIds.map((function(t){return e.$store.getters.findUser(t)}))},visibleStatuses:function(){var e=this.$store.state.statuses.allStatusesObject;return this.statuses.filter((function(t){return e[t.id]&&!e[t.id].deleted}))}},mounted:function(){this.search(this.query)},watch:{query:function(e){this.searchTerm=e,this.search(e)}},methods:{newQuery:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},search:function(e){var t=this;e?(this.loading=!0,this.userIds=[],this.statuses=[],this.hashtags=[],this.$refs.searchInput.blur(),this.$store.dispatch("search",{q:e,resolve:!0}).then((function(e){t.loading=!1,t.userIds=he()(e.accounts,"id"),t.statuses=e.statuses,t.hashtags=e.hashtags,t.currenResultTab=t.getActiveTab(),t.loaded=!0}))):this.loading=!1},resultCount:function(e){var t=this[e].length;return 0===t?"":" (".concat(t,")")},onResultTabSwitch:function(e){this.currenResultTab=e},getActiveTab:function(){return this.visibleStatuses.length>0?"statuses":this.users.length>0?"people":this.hashtags.length>0?"hashtags":"statuses"},lastHistoryRecord:function(e){return e.history&&e.history[0]}}};n(579);var Eu=Fn()(Fu,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FAIcon"),a=Object(wt.J)("tab-switcher"),c=Object(wt.J)("Status"),l=Object(wt.J)("FollowCard"),u=Object(wt.J)("router-link");return Object(wt.D)(),Object(wt.j)("div",pu,[Object(wt.k)("div",hu,[Object(wt.k)("div",bu,Object(wt.O)(e.$t("nav.search")),1)]),Object(wt.k)("div",mu,[Object(wt.W)(Object(wt.k)("input",{ref:"searchInput","onUpdate:modelValue":t[0]||(t[0]=t=>e.searchTerm=t),class:"search-input",placeholder:e.$t("nav.search"),onKeyup:t[1]||(t[1]=Object(wt.X)(t=>e.newQuery(e.searchTerm),["enter"]))},null,40,fu),[[wt.S,e.searchTerm]]),Object(wt.k)("button",{class:"btn button-default search-button",type:"submit",onClick:t[2]||(t[2]=t=>e.newQuery(e.searchTerm))},[Object(wt.m)(s,{icon:"search"})])]),e.loading?(Object(wt.D)(),Object(wt.j)("div",Ou,[Object(wt.m)(s,{icon:"circle-notch",spin:"",size:"lg"})])):e.loaded?(Object(wt.D)(),Object(wt.j)("div",ju,[Object(wt.k)("div",gu,[Object(wt.m)(a,{ref:"tabSwitcher","on-switch":e.onResultTabSwitch,"active-tab":e.currenResultTab},{default:Object(wt.V)(()=>[Object(wt.k)("span",{key:"statuses",label:e.$t("user_card.statuses")+e.resultCount("visibleStatuses")},null,8,vu),Object(wt.k)("span",{key:"people",label:e.$t("search.people")+e.resultCount("users")},null,8,yu),Object(wt.k)("span",{key:"hashtags",label:e.$t("search.hashtags")+e.resultCount("hashtags")},null,8,wu)]),_:1},8,["on-switch","active-tab"])])])):Object(wt.i)("",!0),Object(wt.k)("div",ku,["statuses"===e.currenResultTab?(Object(wt.D)(),Object(wt.j)("div",_u,[0===e.visibleStatuses.length&&!e.loading&&e.loaded?(Object(wt.D)(),Object(wt.j)("div",Su,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("search.no_results")),1)])):Object(wt.i)("",!0),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.visibleStatuses,e=>(Object(wt.D)(),Object(wt.h)(c,{key:e.id,collapsable:!1,expandable:!1,compact:!1,class:"search-result",statusoid:e,"no-heading":!1},null,8,["statusoid"]))),128))])):"people"===e.currenResultTab?(Object(wt.D)(),Object(wt.j)("div",Cu,[0===e.users.length&&!e.loading&&e.loaded?(Object(wt.D)(),Object(wt.j)("div",Pu,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("search.no_results")),1)])):Object(wt.i)("",!0),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.users,e=>(Object(wt.D)(),Object(wt.h)(l,{key:e.id,user:e,class:"list-item search-result"},null,8,["user"]))),128))])):"hashtags"===e.currenResultTab?(Object(wt.D)(),Object(wt.j)("div",Du,[0===e.hashtags.length&&!e.loading&&e.loaded?(Object(wt.D)(),Object(wt.j)("div",xu,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("search.no_results")),1)])):Object(wt.i)("",!0),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.hashtags,t=>(Object(wt.D)(),Object(wt.j)("div",{key:t.url,class:"status trend search-result"},[Object(wt.k)("div",Tu,[Object(wt.m)(u,{to:{name:"tag-timeline",params:{tag:t.name}}},{default:Object(wt.V)(()=>[Object(wt.l)(" #"+Object(wt.O)(t.name),1)]),_:2},1032,["to"]),e.lastHistoryRecord(t)?(Object(wt.D)(),Object(wt.j)("div",Iu,[1==e.lastHistoryRecord(t).accounts?(Object(wt.D)(),Object(wt.j)("span",$u,Object(wt.O)(e.$t("search.person_talking",{count:e.lastHistoryRecord(t).accounts})),1)):(Object(wt.D)(),Object(wt.j)("span",zu,Object(wt.O)(e.$t("search.people_talking",{count:e.lastHistoryRecord(t).accounts})),1))])):Object(wt.i)("",!0)]),e.lastHistoryRecord(t)?(Object(wt.D)(),Object(wt.j)("div",Mu,Object(wt.O)(e.lastHistoryRecord(t).uses),1)):Object(wt.i)("",!0)]))),128))])):Object(wt.i)("",!0)]),Uu])}]]);const Lu={class:"settings panel panel-default"},Ru={class:"panel-heading"},Au={class:"panel-body"},Nu={class:"container"},Bu={class:"text-fields"},Vu={class:"form--label",for:"sign-up-username"},Hu=["disabled","placeholder"],Ju={key:0,class:"form-error"},qu={key:0},Wu={class:"form--label",for:"sign-up-fullname"},Yu=["disabled","placeholder"],Gu={key:1,class:"form-error"},Ku={key:0},Xu={class:"form--label",for:"email"},Zu=["disabled"],Qu={key:2,class:"form-error"},ed={key:0},td={class:"form-group"},nd={class:"form--label",for:"bio"},rd=["disabled","placeholder"],id={class:"form--label",for:"sign-up-password"},od=["disabled"],sd={key:3,class:"form-error"},ad={key:0},cd={class:"form--label",for:"sign-up-password-confirmation"},ld=["disabled"],ud={key:4,class:"form-error"},dd={key:0},pd={key:1},hd={key:5,class:"form-group"},bd={class:"form--label",for:"reason"},md=["disabled","placeholder"],fd={key:6,id:"captcha-group",class:"form-group"},Od={class:"form--label",for:"captcha-label"},jd=["src"],gd=["disabled"],vd={key:7,class:"form-group"},yd={for:"token"},wd={class:"form-group"},kd=["disabled"],_d=["innerHTML"],Sd={key:0,class:"form-group"},Cd={class:"alert error"};var Pd=n(330),Dd=n(62);function xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Td(e){for(var t=1;te.submit(e.user),["prevent"]))},[Object(wt.k)("div",Nu,[Object(wt.k)("div",Bu,[Object(wt.k)("div",{class:Object(wt.w)(["form-group",{"form-group--error":e.v$.user.username.$error}])},[Object(wt.k)("label",Vu,Object(wt.O)(e.$t("login.username")),1),Object(wt.W)(Object(wt.k)("input",{id:"sign-up-username","onUpdate:modelValue":t[0]||(t[0]=t=>e.v$.user.username.$model=t),disabled:e.isPending,class:"form-control",placeholder:e.$t("registration.username_placeholder")},null,8,Hu),[[wt.S,e.v$.user.username.$model,void 0,{trim:!0}]])],2),e.v$.user.username.$dirty?(Object(wt.D)(),Object(wt.j)("div",Ju,[Object(wt.k)("ul",null,[e.v$.user.username.required?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",qu,[Object(wt.k)("span",null,Object(wt.O)(e.$t("registration.validations.username_required")),1)]))])])):Object(wt.i)("",!0),Object(wt.k)("div",{class:Object(wt.w)(["form-group",{"form-group--error":e.v$.user.fullname.$error}])},[Object(wt.k)("label",Wu,Object(wt.O)(e.$t("registration.fullname")),1),Object(wt.W)(Object(wt.k)("input",{id:"sign-up-fullname","onUpdate:modelValue":t[1]||(t[1]=t=>e.v$.user.fullname.$model=t),disabled:e.isPending,class:"form-control",placeholder:e.$t("registration.fullname_placeholder")},null,8,Yu),[[wt.S,e.v$.user.fullname.$model,void 0,{trim:!0}]])],2),e.v$.user.fullname.$dirty?(Object(wt.D)(),Object(wt.j)("div",Gu,[Object(wt.k)("ul",null,[e.v$.user.fullname.required?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",Ku,[Object(wt.k)("span",null,Object(wt.O)(e.$t("registration.validations.fullname_required")),1)]))])])):Object(wt.i)("",!0),Object(wt.k)("div",{class:Object(wt.w)(["form-group",{"form-group--error":e.v$.user.email.$error}])},[Object(wt.k)("label",Xu,Object(wt.O)(e.$t("registration.email")),1),Object(wt.W)(Object(wt.k)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=t=>e.v$.user.email.$model=t),disabled:e.isPending,class:"form-control",type:"email"},null,8,Zu),[[wt.S,e.v$.user.email.$model]])],2),e.v$.user.email.$dirty?(Object(wt.D)(),Object(wt.j)("div",Qu,[Object(wt.k)("ul",null,[e.v$.user.email.required?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",ed,[Object(wt.k)("span",null,Object(wt.O)(e.$t("registration.validations.email_required")),1)]))])])):Object(wt.i)("",!0),Object(wt.k)("div",td,[Object(wt.k)("label",nd,Object(wt.O)(e.$t("registration.bio"))+" ("+Object(wt.O)(e.$t("general.optional"))+")",1),Object(wt.W)(Object(wt.k)("textarea",{id:"bio","onUpdate:modelValue":t[3]||(t[3]=t=>e.user.bio=t),disabled:e.isPending,class:"form-control",placeholder:e.bioPlaceholder},null,8,rd),[[wt.S,e.user.bio]])]),Object(wt.k)("div",{class:Object(wt.w)(["form-group",{"form-group--error":e.v$.user.password.$error}])},[Object(wt.k)("label",id,Object(wt.O)(e.$t("login.password")),1),Object(wt.W)(Object(wt.k)("input",{id:"sign-up-password","onUpdate:modelValue":t[4]||(t[4]=t=>e.user.password=t),disabled:e.isPending,class:"form-control",type:"password"},null,8,od),[[wt.S,e.user.password]])],2),e.v$.user.password.$dirty?(Object(wt.D)(),Object(wt.j)("div",sd,[Object(wt.k)("ul",null,[e.v$.user.password.required?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",ad,[Object(wt.k)("span",null,Object(wt.O)(e.$t("registration.validations.password_required")),1)]))])])):Object(wt.i)("",!0),Object(wt.k)("div",{class:Object(wt.w)(["form-group",{"form-group--error":e.v$.user.confirm.$error}])},[Object(wt.k)("label",cd,Object(wt.O)(e.$t("registration.password_confirm")),1),Object(wt.W)(Object(wt.k)("input",{id:"sign-up-password-confirmation","onUpdate:modelValue":t[5]||(t[5]=t=>e.user.confirm=t),disabled:e.isPending,class:"form-control",type:"password"},null,8,ld),[[wt.S,e.user.confirm]])],2),e.v$.user.confirm.$dirty?(Object(wt.D)(),Object(wt.j)("div",ud,[Object(wt.k)("ul",null,[e.v$.user.confirm.required?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",dd,[Object(wt.k)("span",null,Object(wt.O)(e.$t("registration.validations.password_confirmation_required")),1)])),e.v$.user.confirm.sameAsPassword?Object(wt.i)("",!0):(Object(wt.D)(),Object(wt.j)("li",pd,[Object(wt.k)("span",null,Object(wt.O)(e.$t("registration.validations.password_confirmation_match")),1)]))])])):Object(wt.i)("",!0),Object(wt.k)("div",{class:Object(wt.w)(["form-group",{"form-group--error":e.v$.user.language.$error}])},[Object(wt.m)(s,{for:"email-language","prompt-text":e.$t("registration.email_language"),language:e.v$.user.language.$model,"set-language":t=>e.v$.user.language.$model=t},null,8,["prompt-text","language","set-language"])],2),e.accountApprovalRequired?(Object(wt.D)(),Object(wt.j)("div",hd,[Object(wt.k)("label",bd,Object(wt.O)(e.$t("registration.reason")),1),Object(wt.W)(Object(wt.k)("textarea",{id:"reason","onUpdate:modelValue":t[6]||(t[6]=t=>e.user.reason=t),disabled:e.isPending,class:"form-control",placeholder:e.reasonPlaceholder},null,8,md),[[wt.S,e.user.reason]])])):Object(wt.i)("",!0),"none"!=e.captcha.type?(Object(wt.D)(),Object(wt.j)("div",fd,[Object(wt.k)("label",Od,Object(wt.O)(e.$t("registration.captcha")),1),["kocaptcha","native"].includes(e.captcha.type)?(Object(wt.D)(),Object(wt.j)(wt.a,{key:0},[Object(wt.k)("img",{src:e.captcha.url,onClick:t[7]||(t[7]=(...t)=>e.setCaptcha&&e.setCaptcha(...t))},null,8,jd),Object(wt.k)("sub",null,Object(wt.O)(e.$t("registration.new_captcha")),1),Object(wt.W)(Object(wt.k)("input",{id:"captcha-answer","onUpdate:modelValue":t[8]||(t[8]=t=>e.captcha.solution=t),disabled:e.isPending,class:"form-control",type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},null,8,gd),[[wt.S,e.captcha.solution]])],64)):Object(wt.i)("",!0)])):Object(wt.i)("",!0),e.token?(Object(wt.D)(),Object(wt.j)("div",vd,[Object(wt.k)("label",yd,Object(wt.O)(e.$t("registration.token")),1),Object(wt.W)(Object(wt.k)("input",{id:"token","onUpdate:modelValue":t[9]||(t[9]=t=>e.token=t),disabled:"true",class:"form-control",type:"text"},null,512),[[wt.S,e.token]])])):Object(wt.i)("",!0),Object(wt.k)("div",wd,[Object(wt.k)("button",{disabled:e.isPending,type:"submit",class:"btn button-default"},Object(wt.O)(e.$t("registration.register")),9,kd)])]),Object(wt.k)("div",{class:"terms-of-service",innerHTML:e.termsOfService},null,8,_d)]),e.serverValidationErrors.length?(Object(wt.D)(),Object(wt.j)("div",Sd,[Object(wt.k)("div",Cd,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.serverValidationErrors,e=>(Object(wt.D)(),Object(wt.j)("span",{key:e},Object(wt.O)(e),1))),128))])])):Object(wt.i)("",!0)],32)])])}]]);const zd={class:"settings panel panel-default"},Md={class:"panel-heading"},Ud={class:"panel-body"},Fd={class:"container"},Ed={key:0},Ld={key:0},Rd={key:1},Ad={key:1},Nd={key:0},Bd={class:"form-group text-center"},Vd={key:2},Hd={key:0,class:"password-reset-required error"},Jd={class:"form-group"},qd=["disabled","placeholder"],Wd={class:"form-group"},Yd=["disabled"],Gd={key:3,class:"alert error notice-dismissible"};var Kd=function(e){var t=e.instance,n={email:e.email},r=xe()(n,(function(e,t,n){var r="".concat(n,"=").concat(encodeURIComponent(t));return"".concat(e,"&").concat(r)}),""),i="".concat(t).concat("/auth/password","?").concat(r);return window.fetch(i,{method:"POST"})};function Xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zd(e){for(var t=1;te.submit&&e.submit(...t),["prevent"]))},[Object(wt.k)("div",Fd,[e.mailerEnabled?e.success||e.throttled?(Object(wt.D)(),Object(wt.j)("div",Ad,[e.success?(Object(wt.D)(),Object(wt.j)("p",Nd,Object(wt.O)(e.$t("password_reset.check_email")),1)):Object(wt.i)("",!0),Object(wt.k)("div",Bd,[Object(wt.m)(s,{to:{name:"root"}},{default:Object(wt.V)(()=>[Object(wt.l)(Object(wt.O)(e.$t("password_reset.return_home")),1)]),_:1})])])):(Object(wt.D)(),Object(wt.j)("div",Vd,[e.passwordResetRequested?(Object(wt.D)(),Object(wt.j)("p",Hd,Object(wt.O)(e.$t("password_reset.password_reset_required")),1)):Object(wt.i)("",!0),Object(wt.k)("p",null,Object(wt.O)(e.$t("password_reset.instruction")),1),Object(wt.k)("div",Jd,[Object(wt.W)(Object(wt.k)("input",{ref:"email","onUpdate:modelValue":t[0]||(t[0]=t=>e.user.email=t),disabled:e.isPending,placeholder:e.$t("password_reset.placeholder"),class:"form-control",type:"input"},null,8,qd),[[wt.S,e.user.email]])]),Object(wt.k)("div",Wd,[Object(wt.k)("button",{disabled:e.isPending,type:"submit",class:"btn button-default btn-block"},Object(wt.O)(e.$t("settings.save")),9,Yd)])])):(Object(wt.D)(),Object(wt.j)("div",Ed,[e.passwordResetRequested?(Object(wt.D)(),Object(wt.j)("p",Ld,Object(wt.O)(e.$t("password_reset.password_reset_required_but_mailer_is_disabled")),1)):(Object(wt.D)(),Object(wt.j)("p",Rd,Object(wt.O)(e.$t("password_reset.password_reset_disabled")),1))])),e.error?(Object(wt.D)(),Object(wt.j)("p",Gd,[Object(wt.k)("span",null,Object(wt.O)(e.error),1),Object(wt.k)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=Object(wt.Y)(t=>e.dismissError(),["prevent"]))},[Object(wt.m)(a,{icon:"times"})])])):Object(wt.i)("",!0)])],32)])])}]]);const tp={class:"settings panel panel-default"},np={class:"panel-heading"},rp={class:"title"},ip={class:"panel-body"};const op={class:"follow-request-card-content-container"};var sp={props:["user"],components:{BasicUserCard:Qc.a},methods:{findFollowRequestNotificationId:function(){var e=this,t=Object(W.e)(this.$store).find((function(t){return t.from_profile.id===e.user.id&&"follow_request"===t.type}));return t&&t.id},approveUser:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user);var e=this.findFollowRequestNotificationId();this.$store.dispatch("markSingleNotificationAsSeen",{id:e}),this.$store.dispatch("updateNotification",{id:e,updater:function(e){e.type="follow"}})},denyUser:function(){var e=this,t=this.findFollowRequestNotificationId();this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:t}),e.$store.dispatch("removeFollowRequest",e.user)}))}}};n(583);var ap={components:{FollowRequestCard:Fn()(sp,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("basic-user-card");return Object(wt.D)(),Object(wt.h)(s,{user:e.user},{default:Object(wt.V)(()=>[Object(wt.k)("div",op,[Object(wt.k)("button",{class:"btn button-default",onClick:t[0]||(t[0]=(...t)=>e.approveUser&&e.approveUser(...t))},Object(wt.O)(e.$t("user_card.approve")),1),Object(wt.k)("button",{class:"btn button-default",onClick:t[1]||(t[1]=(...t)=>e.denyUser&&e.denyUser(...t))},Object(wt.O)(e.$t("user_card.deny")),1)])]),_:1},8,["user"])}]])},computed:{requests:function(){return this.$store.state.api.followRequests}}};var cp=Fn()(ap,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FollowRequestCard");return Object(wt.D)(),Object(wt.j)("div",tp,[Object(wt.k)("div",np,[Object(wt.k)("div",rp,Object(wt.O)(e.$t("nav.friend_requests")),1)]),Object(wt.k)("div",ip,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.requests,e=>(Object(wt.D)(),Object(wt.h)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"]))),128))])])}]]);var lp={props:["code"],mounted:function(){var e=this;if(this.code){var t=this.$store.state.oauth,n=t.clientId,r=t.clientSecret;ze.getToken({clientId:n,clientSecret:r,instance:this.$store.state.instance.server,code:this.code}).then((function(t){e.$store.commit("setToken",t.access_token),e.$store.dispatch("loginUser",t.access_token),e.$router.push({name:"friends"})}))}}};var up=Fn()(lp,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("h1",null,"...")}]]);const dp={class:"panel panel-default"},pp={class:"panel-heading"},hp={class:"panel-body"};var bp={components:{FollowCard:tu},data:function(){return{users:[]}},mounted:function(){this.getWhoToFollow()},methods:{showWhoToFollow:function(e){var t=this;e.forEach((function(e,n){t.$store.state.api.backendInteractor.fetchUser({id:e.acct}).then((function(e){e.error||(t.$store.commit("addNewUsers",[e]),t.users.push(e))}))}))},getWhoToFollow:function(){var e=this,t=this.$store.state.users.currentUser.credentials;t&&j.c.suggestions({credentials:t}).then((function(t){e.showWhoToFollow(t)}))}}};var mp=Fn()(bp,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("FollowCard");return Object(wt.D)(),Object(wt.j)("div",dp,[Object(wt.k)("div",pp,Object(wt.O)(e.$t("who_to_follow.who_to_follow")),1),Object(wt.k)("div",hp,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.users,e=>(Object(wt.D)(),Object(wt.h)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"]))),128))])])}]]);const fp={class:"column-inner"};const Op={class:"panel panel-default"},jp={class:"panel-body"},gp=["innerHTML"];var vp={computed:{content:function(){return this.$store.state.instance.tos}}};n(584);var yp=Fn()(vp,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("div",null,[Object(wt.k)("div",Op,[Object(wt.k)("div",jp,[Object(wt.k)("div",{class:"tos-content",innerHTML:e.content},null,8,gp)])])])}]]);const wp={class:"staff-panel"},kp={class:"panel panel-default base01-background"},_p={class:"panel-heading timeline-heading base02-background"},Sp={class:"title"},Cp={class:"panel-body"};var Pp=n(331),Dp=n.n(Pp);function xp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tp(e){for(var t=1;t(Object(wt.D)(),Object(wt.j)("div",{key:t.role,class:"staff-group"},[Object(wt.k)("h4",null,Object(wt.O)(e.$t("general.role."+t.role)),1),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(t.users,e=>(Object(wt.D)(),Object(wt.h)(s,{key:e.screen_name,user:e},null,8,["user"]))),128))]))),128))])])])}]]);const zp={key:0,class:"mrf-transparency-panel"},Mp={class:"panel panel-default base01-background"},Up={class:"panel-heading timeline-heading base02-background"},Fp={class:"title"},Ep={class:"panel-body"},Lp={class:"mrf-section"},Rp=["textContent"],Ap={key:0},Np={key:1},Bp={key:0},Vp={key:1},Hp={key:2},Jp={key:0},qp={key:1},Wp={key:3},Yp={key:0},Gp={key:1},Kp={key:4},Xp={key:0},Zp={key:1},Qp={key:5},eh={key:0},th={key:1},nh={key:6},rh={key:0},ih={key:1},oh={key:7},sh={key:8},ah=["textContent"],ch={key:9},lh=["textContent"],uh={key:10};function dh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ph(e){for(var t=1;t(Object(wt.D)(),Object(wt.j)("li",{key:e,textContent:Object(wt.O)(e)},null,8,Rp))),128))]),e.hasInstanceSpecificPolicies?(Object(wt.D)(),Object(wt.j)("h2",Ap,Object(wt.O)(e.$t("about.mrf.simple.simple_policies")),1)):Object(wt.i)("",!0),e.acceptInstances.length?(Object(wt.D)(),Object(wt.j)("div",Np,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.simple.accept")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("about.mrf.simple.accept_desc")),1),Object(wt.k)("table",null,[Object(wt.k)("tr",null,[Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.instance")),1),Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.reason")),1)]),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.acceptInstances,t=>(Object(wt.D)(),Object(wt.j)("tr",{key:t.instance+"_accept"},[Object(wt.k)("td",null,Object(wt.O)(t.instance),1),""===t.reason?(Object(wt.D)(),Object(wt.j)("td",Bp,Object(wt.O)(e.$t("about.mrf.simple.not_applicable")),1)):(Object(wt.D)(),Object(wt.j)("td",Vp,Object(wt.O)(t.reason),1))]))),128))])])):Object(wt.i)("",!0),e.rejectInstances.length?(Object(wt.D)(),Object(wt.j)("div",Hp,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.simple.reject")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("about.mrf.simple.reject_desc")),1),Object(wt.k)("table",null,[Object(wt.k)("tr",null,[Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.instance")),1),Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.reason")),1)]),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.rejectInstances,t=>(Object(wt.D)(),Object(wt.j)("tr",{key:t.instance+"_reject"},[Object(wt.k)("td",null,Object(wt.O)(t.instance),1),""===t.reason?(Object(wt.D)(),Object(wt.j)("td",Jp,Object(wt.O)(e.$t("about.mrf.simple.not_applicable")),1)):(Object(wt.D)(),Object(wt.j)("td",qp,Object(wt.O)(t.reason),1))]))),128))])])):Object(wt.i)("",!0),e.quarantineInstances.length?(Object(wt.D)(),Object(wt.j)("div",Wp,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.simple.quarantine")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("about.mrf.simple.quarantine_desc")),1),Object(wt.k)("table",null,[Object(wt.k)("tr",null,[Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.instance")),1),Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.reason")),1)]),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.quarantineInstances,t=>(Object(wt.D)(),Object(wt.j)("tr",{key:t.instance+"_quarantine"},[Object(wt.k)("td",null,Object(wt.O)(t.instance),1),""===t.reason?(Object(wt.D)(),Object(wt.j)("td",Yp,Object(wt.O)(e.$t("about.mrf.simple.not_applicable")),1)):(Object(wt.D)(),Object(wt.j)("td",Gp,Object(wt.O)(t.reason),1))]))),128))])])):Object(wt.i)("",!0),e.ftlRemovalInstances.length?(Object(wt.D)(),Object(wt.j)("div",Kp,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.simple.ftl_removal")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("about.mrf.simple.ftl_removal_desc")),1),Object(wt.k)("table",null,[Object(wt.k)("tr",null,[Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.instance")),1),Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.reason")),1)]),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.ftlRemovalInstances,t=>(Object(wt.D)(),Object(wt.j)("tr",{key:t.instance+"_ftl_removal"},[Object(wt.k)("td",null,Object(wt.O)(t.instance),1),""===t.reason?(Object(wt.D)(),Object(wt.j)("td",Xp,Object(wt.O)(e.$t("about.mrf.simple.not_applicable")),1)):(Object(wt.D)(),Object(wt.j)("td",Zp,Object(wt.O)(t.reason),1))]))),128))])])):Object(wt.i)("",!0),e.mediaNsfwInstances.length?(Object(wt.D)(),Object(wt.j)("div",Qp,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.simple.media_nsfw")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("about.mrf.simple.media_nsfw_desc")),1),Object(wt.k)("table",null,[Object(wt.k)("tr",null,[Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.instance")),1),Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.reason")),1)]),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.mediaNsfwInstances,t=>(Object(wt.D)(),Object(wt.j)("tr",{key:t.instance+"_media_nsfw"},[Object(wt.k)("td",null,Object(wt.O)(t.instance),1),""===t.reason?(Object(wt.D)(),Object(wt.j)("td",eh,Object(wt.O)(e.$t("about.mrf.simple.not_applicable")),1)):(Object(wt.D)(),Object(wt.j)("td",th,Object(wt.O)(t.reason),1))]))),128))])])):Object(wt.i)("",!0),e.mediaRemovalInstances.length?(Object(wt.D)(),Object(wt.j)("div",nh,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.simple.media_removal")),1),Object(wt.k)("p",null,Object(wt.O)(e.$t("about.mrf.simple.media_removal_desc")),1),Object(wt.k)("table",null,[Object(wt.k)("tr",null,[Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.instance")),1),Object(wt.k)("th",null,Object(wt.O)(e.$t("about.mrf.simple.reason")),1)]),(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.mediaRemovalInstances,t=>(Object(wt.D)(),Object(wt.j)("tr",{key:t.instance+"_media_removal"},[Object(wt.k)("td",null,Object(wt.O)(t.instance),1),""===t.reason?(Object(wt.D)(),Object(wt.j)("td",rh,Object(wt.O)(e.$t("about.mrf.simple.not_applicable")),1)):(Object(wt.D)(),Object(wt.j)("td",ih,Object(wt.O)(t.reason),1))]))),128))])])):Object(wt.i)("",!0),e.hasKeywordPolicies?(Object(wt.D)(),Object(wt.j)("h2",oh,Object(wt.O)(e.$t("about.mrf.keyword.keyword_policies")),1)):Object(wt.i)("",!0),e.keywordsFtlRemoval.length?(Object(wt.D)(),Object(wt.j)("div",sh,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.keyword.ftl_removal")),1),Object(wt.k)("ul",null,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.keywordsFtlRemoval,e=>(Object(wt.D)(),Object(wt.j)("li",{key:e,textContent:Object(wt.O)(e)},null,8,ah))),128))])])):Object(wt.i)("",!0),e.keywordsReject.length?(Object(wt.D)(),Object(wt.j)("div",ch,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.keyword.reject")),1),Object(wt.k)("ul",null,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.keywordsReject,e=>(Object(wt.D)(),Object(wt.j)("li",{key:e,textContent:Object(wt.O)(e)},null,8,lh))),128))])])):Object(wt.i)("",!0),e.keywordsReplace.length?(Object(wt.D)(),Object(wt.j)("div",uh,[Object(wt.k)("h4",null,Object(wt.O)(e.$t("about.mrf.keyword.replace")),1),Object(wt.k)("ul",null,[(Object(wt.D)(!0),Object(wt.j)(wt.a,null,Object(wt.H)(e.keywordsReplace,t=>(Object(wt.D)(),Object(wt.j)("li",{key:t},Object(wt.O)(t.pattern)+" "+Object(wt.O)(e.$t("about.mrf.keyword.is_replaced_by"))+" "+Object(wt.O)(t.replacement),1))),128))])])):Object(wt.i)("",!0)])])])])):Object(wt.i)("",!0)}]])},computed:{showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent}}};var fh=Fn()(mh,[["render",function(e,t,n,r,i,o){const s=Object(wt.J)("instance-specific-panel"),a=Object(wt.J)("staff-panel"),c=Object(wt.J)("terms-of-service-panel"),l=Object(wt.J)("MRFTransparencyPanel"),u=Object(wt.J)("features-panel");return Object(wt.D)(),Object(wt.j)("div",fp,[e.showInstanceSpecificPanel?(Object(wt.D)(),Object(wt.h)(s,{key:0})):Object(wt.i)("",!0),Object(wt.m)(a),Object(wt.m)(c),Object(wt.m)(l),e.showFeaturesPanel?(Object(wt.D)(),Object(wt.h)(u,{key:1})):Object(wt.i)("",!0)])}]]);const Oh={class:"panel panel-default"},jh={class:"panel-heading"},gh={class:"panel-body"},vh={key:0};var yh={data:function(){return{error:!1}},mounted:function(){this.redirect()},methods:{redirect:function(){var e=this,t=this.$route.params.username+"@"+this.$route.params.hostname;this.$store.state.api.backendInteractor.fetchUser({id:t}).then((function(t){if(t.error)e.error=!0;else{e.$store.commit("addNewUsers",[t]);var n=t.id;e.$router.replace({name:"external-user-profile",params:{id:n}})}})).catch((function(){e.error=!0}))}}};var wh,kh,_h=Fn()(yh,[["render",function(e,t,n,r,i,o){return Object(wt.D)(),Object(wt.j)("div",Oh,[Object(wt.k)("div",jh,Object(wt.O)(e.$t("remote_user_resolver.remote_user_resolver")),1),Object(wt.k)("div",gh,[Object(wt.k)("p",null,Object(wt.O)(e.$t("remote_user_resolver.searching_for"))+" @"+Object(wt.O)(e.$route.params.username)+"@"+Object(wt.O)(e.$route.params.hostname),1),e.error?(Object(wt.D)(),Object(wt.j)("p",vh,Object(wt.O)(e.$t("remote_user_resolver.error")),1)):Object(wt.i)("",!0)])])}]]),Sh=function(e){var t=function(t,n,r){e.state.users.currentUser?r():r(e.state.instance.redirectRootNoLogin||"/main/all")},n=[{name:"root",path:"/",redirect:function(t){return(e.state.users.currentUser?e.state.instance.redirectRootLogin:e.state.instance.redirectRootNoLogin)||"/main/all"}},{name:"public-external-timeline",path:"/main/all",component:Za},{name:"public-timeline",path:"/main/public",component:Ka},{name:"friends",path:"/main/friends",component:ec,beforeEnter:t},{name:"tag-timeline",path:"/tag/:tag",component:nc},{name:"bookmarks",path:"/bookmarks",component:ic},{name:"conversation",path:"/notice/:id",component:sc,meta:{dontScroll:!0}},{name:"remote-user-profile-acct",path:"/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)",component:_h,beforeEnter:t},{name:"remote-user-profile",path:"/remote-users/:hostname/:username",component:_h,beforeEnter:t},{name:"external-user-profile",path:"/users/:id",component:du},{name:"interactions",path:"/users/:username/interactions",component:Oc,beforeEnter:t},{name:"dms",path:"/users/:username/dms",component:gc,beforeEnter:t},{name:"registration",path:"/registration",component:$d},{name:"password-reset",path:"/password-reset",component:ep,props:!0},{name:"registration-token",path:"/registration/:token",component:$d},{name:"friend-requests",path:"/friend-requests",component:cp,beforeEnter:t},{name:"notifications",path:"/:username/notifications",component:fs.default,props:function(){return{disableTeleport:!0}},beforeEnter:t},{name:"login",path:"/login",component:fr},{name:"shout-panel",path:"/shout-panel",component:Fi,props:function(){return{floating:!1}}},{name:"oauth-callback",path:"/oauth-callback",component:up,props:function(e){return{code:e.query.code}}},{name:"search",path:"/search",component:Eu,props:function(e){return{query:e.query.query}}},{name:"who-to-follow",path:"/who-to-follow",component:mp,beforeEnter:t},{name:"about",path:"/about",component:fh},{name:"user-profile",path:"/:_(users)?/:name",component:du}];return e.state.instance.pleromaChatMessagesAvailable&&(n=n.concat([{name:"chat",path:"/users/:username/chats/:recipient_id",component:El,meta:{dontScroll:!1},beforeEnter:t},{name:"chats",path:"/users/:username/chats",component:al,meta:{dontScroll:!1},beforeEnter:t}])),n},Ch=n(169),Ph=new Set([]),Dh=function(e){var t=window.innerWidth-document.documentElement.clientWidth;Ch.disableBodyScroll(e,{reserveScrollBarGap:!0}),Ph.add(e),setTimeout((function(){if(Ph.size<=1){if(void 0===wh){var e=document.getElementById("nav");wh=window.getComputedStyle(e).getPropertyValue("padding-right"),e.style.paddingRight=wh?"calc(".concat(wh," + ").concat(t,"px)"):"".concat(t,"px")}if(void 0===kh){var n=document.getElementById("app_bg_wrapper");kh=window.getComputedStyle(n).getPropertyValue("right"),n.style.right=kh?"calc(".concat(kh," + ").concat(t,"px)"):"".concat(t,"px")}document.body.classList.add("scroll-locked")}}))},xh=function(e){Ph.delete(e),setTimeout((function(){0===Ph.size&&(void 0!==wh&&(document.getElementById("nav").style.paddingRight=wh,wh=void 0),void 0!==kh&&(document.getElementById("app_bg_wrapper").style.right=kh,kh=void 0),document.body.classList.remove("scroll-locked"))})),Ch.enableBodyScroll(e)},Th={mounted:function(e,t){t.value&&Dh(e)},updated:function(e,t){t.oldValue!==t.value&&(t.value?Dh(e):xh(e))},unmounted:function(e){xh(e)}},Ih=function(e){e.directive("body-scroll-lock",Th)},$h=n(100);function zh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mh(e){for(var t=1;t {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = data.hasOwnProperty('acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !data.hasOwnProperty('avatar')\n\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n let unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n unicodeDomain = '🌏' + unicodeDomain\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !data.hasOwnProperty('oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = data.hasOwnProperty('account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n 'favourite': 'like',\n 'reblog': 'repeat'\n }\n const masto = !data.hasOwnProperty('ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n output.emoji_url = data.emoji_url\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","import { humanizeErrors } from '../../modules/errors'\n\nexport function StatusCodeError (statusCode, body, options, response) {\n this.name = 'StatusCodeError'\n this.statusCode = statusCode\n this.message = statusCode + ' - ' + (JSON && JSON.stringify ? JSON.stringify(body) : body)\n this.error = body // legacy attribute\n this.options = options\n this.response = response\n\n if (Error.captureStackTrace) { // required for non-V8 environments\n Error.captureStackTrace(this)\n }\n}\nStatusCodeError.prototype = Object.create(Error.prototype)\nStatusCodeError.prototype.constructor = StatusCodeError\n\nexport class RegistrationError extends Error {\n constructor (error) {\n super()\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this)\n }\n\n try {\n // the error is probably a JSON object with a single key, \"errors\", whose value is another JSON object containing the real errors\n if (typeof error === 'string') {\n error = JSON.parse(error)\n if (error.hasOwnProperty('error')) {\n error = JSON.parse(error.error)\n }\n }\n\n if (typeof error === 'object') {\n const errorContents = JSON.parse(error.error)\n // keys will have the property that has the error, for example 'ap_id',\n // 'email' or 'captcha', the value will be an array of its error\n // like \"ap_id\": [\"has been taken\"] or \"captcha\": [\"Invalid CAPTCHA\"]\n\n // replace ap_id with username\n if (errorContents.ap_id) {\n errorContents.username = errorContents.ap_id\n delete errorContents.ap_id\n }\n\n this.message = humanizeErrors(errorContents)\n } else {\n this.message = error\n }\n } catch (e) {\n // can't parse it, so just treat it like a string\n this.message = error\n }\n }\n}\n","import { capitalize } from 'lodash'\n\nexport function humanizeErrors (errors) {\n return Object.entries(errors).reduce((errs, [k, val]) => {\n let message = val.reduce((acc, message) => {\n let key = capitalize(k.replace(/_/g, ' '))\n return acc + [key, message].join(' ') + '. '\n }, '')\n return [...errs, message]\n }, [])\n}\n","import { each, map, concat, last, get } from 'lodash'\nimport { parseStatus, parseUser, parseNotification, parseAttachment, parseChat, parseLinkHeaderPagination } from '../entity_normalizer/entity_normalizer.service.js'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\nconst MUTES_IMPORT_URL = '/api/pleroma/mutes_import'\nconst BLOCKS_IMPORT_URL = '/api/pleroma/blocks_import'\nconst FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'\nconst DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'\nconst CHANGE_EMAIL_URL = '/api/pleroma/change_email'\nconst CHANGE_PASSWORD_URL = '/api/pleroma/change_password'\nconst TAG_USER_URL = '/api/pleroma/admin/users/tag'\nconst PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${screenName}/permission_group/${right}`\nconst ACTIVATE_USER_URL = '/api/pleroma/admin/users/activate'\nconst DEACTIVATE_USER_URL = '/api/pleroma/admin/users/deactivate'\nconst ADMIN_USERS_URL = '/api/pleroma/admin/users'\nconst SUGGESTIONS_URL = '/api/v1/suggestions'\nconst NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'\nconst NOTIFICATION_READ_URL = '/api/v1/pleroma/notifications/read'\n\nconst MFA_SETTINGS_URL = '/api/pleroma/accounts/mfa'\nconst MFA_BACKUP_CODES_URL = '/api/pleroma/accounts/mfa/backup_codes'\n\nconst MFA_SETUP_OTP_URL = '/api/pleroma/accounts/mfa/setup/totp'\nconst MFA_CONFIRM_OTP_URL = '/api/pleroma/accounts/mfa/confirm/totp'\nconst MFA_DISABLE_OTP_URL = '/api/pleroma/accounts/mfa/totp'\n\nconst MASTODON_LOGIN_URL = '/api/v1/accounts/verify_credentials'\nconst MASTODON_REGISTRATION_URL = '/api/v1/accounts'\nconst MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'\nconst MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'\nconst MASTODON_DISMISS_NOTIFICATION_URL = id => `/api/v1/notifications/${id}/dismiss`\nconst MASTODON_FAVORITE_URL = id => `/api/v1/statuses/${id}/favourite`\nconst MASTODON_UNFAVORITE_URL = id => `/api/v1/statuses/${id}/unfavourite`\nconst MASTODON_RETWEET_URL = id => `/api/v1/statuses/${id}/reblog`\nconst MASTODON_UNRETWEET_URL = id => `/api/v1/statuses/${id}/unreblog`\nconst MASTODON_DELETE_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_FOLLOW_URL = id => `/api/v1/accounts/${id}/follow`\nconst MASTODON_UNFOLLOW_URL = id => `/api/v1/accounts/${id}/unfollow`\nconst MASTODON_FOLLOWING_URL = id => `/api/v1/accounts/${id}/following`\nconst MASTODON_FOLLOWERS_URL = id => `/api/v1/accounts/${id}/followers`\nconst MASTODON_FOLLOW_REQUESTS_URL = '/api/v1/follow_requests'\nconst MASTODON_APPROVE_USER_URL = id => `/api/v1/follow_requests/${id}/authorize`\nconst MASTODON_DENY_USER_URL = id => `/api/v1/follow_requests/${id}/reject`\nconst MASTODON_DIRECT_MESSAGES_TIMELINE_URL = '/api/v1/timelines/direct'\nconst MASTODON_PUBLIC_TIMELINE = '/api/v1/timelines/public'\nconst MASTODON_USER_HOME_TIMELINE_URL = '/api/v1/timelines/home'\nconst MASTODON_STATUS_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_STATUS_CONTEXT_URL = id => `/api/v1/statuses/${id}/context`\nconst MASTODON_USER_URL = '/api/v1/accounts'\nconst MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'\nconst MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`\nconst MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`\nconst MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'\nconst MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'\nconst MASTODON_USER_MUTES_URL = '/api/v1/mutes/'\nconst MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`\nconst MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`\nconst MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`\nconst MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`\nconst MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`\nconst MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`\nconst MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`\nconst MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`\nconst MASTODON_POST_STATUS_URL = '/api/v1/statuses'\nconst MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'\nconst MASTODON_VOTE_URL = id => `/api/v1/polls/${id}/votes`\nconst MASTODON_POLL_URL = id => `/api/v1/polls/${id}`\nconst MASTODON_STATUS_FAVORITEDBY_URL = id => `/api/v1/statuses/${id}/favourited_by`\nconst MASTODON_STATUS_REBLOGGEDBY_URL = id => `/api/v1/statuses/${id}/reblogged_by`\nconst MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'\nconst MASTODON_REPORT_USER_URL = '/api/v1/reports'\nconst MASTODON_PIN_OWN_STATUS = id => `/api/v1/statuses/${id}/pin`\nconst MASTODON_UNPIN_OWN_STATUS = id => `/api/v1/statuses/${id}/unpin`\nconst MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`\nconst MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`\nconst MASTODON_SEARCH_2 = `/api/v2/search`\nconst MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'\nconst MASTODON_MASCOT_URL = '/api/v1/pleroma/mascot'\nconst MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_STREAMING = '/api/v1/streaming'\nconst MASTODON_KNOWN_DOMAIN_LIST_URL = '/api/v1/instance/peers'\nconst PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`\nconst PLEROMA_EMOJI_REACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_EMOJI_UNREACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_CHATS_URL = `/api/v1/pleroma/chats`\nconst PLEROMA_CHAT_URL = id => `/api/v1/pleroma/chats/by-account-id/${id}`\nconst PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`\nconst PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`\nconst PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`\n\nconst oldfetch = window.fetch\n\nlet fetch = (url, options) => {\n options = options || {}\n const baseUrl = ''\n const fullUrl = baseUrl + url\n options.credentials = 'same-origin'\n return oldfetch(fullUrl, options)\n}\n\nconst promisedRequest = ({ method, url, params, payload, credentials, headers = {} }) => {\n const options = {\n method,\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n ...headers\n }\n }\n if (params) {\n url += '?' + Object.entries(params)\n .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))\n .join('&')\n }\n if (payload) {\n options.body = JSON.stringify(payload)\n }\n if (credentials) {\n options.headers = {\n ...options.headers,\n ...authHeaders(credentials)\n }\n }\n return fetch(url, options)\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url, options }, response))\n }\n return resolve(json)\n })\n .catch((error) => {\n return reject(new StatusCodeError(response.status, error, { url, options }, response))\n })\n )\n })\n}\n\nconst updateNotificationSettings = ({ credentials, settings }) => {\n const form = new FormData()\n\n each(settings, (value, key) => {\n form.append(key, value)\n })\n\n return fetch(NOTIFICATION_SETTINGS_URL, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst updateProfileImages = ({ credentials, avatar = null, avatarName = null, banner = null, background = null }) => {\n const form = new FormData()\n if (avatar !== null) {\n if (avatarName !== null) {\n form.append('avatar', avatar, avatarName)\n } else {\n form.append('avatar', avatar)\n }\n }\n if (banner !== null) form.append('header', banner)\n if (background !== null) form.append('pleroma_background_image', background)\n return fetch(MASTODON_PROFILE_UPDATE_URL, {\n headers: authHeaders(credentials),\n method: 'PATCH',\n body: form\n })\n .then((data) => data.json())\n .then((data) => {\n if (data.error) {\n throw new Error(data.error)\n }\n return parseUser(data)\n })\n}\n\nconst updateProfile = ({ credentials, params }) => {\n return promisedRequest({\n url: MASTODON_PROFILE_UPDATE_URL,\n method: 'PATCH',\n payload: params,\n credentials\n }).then((data) => parseUser(data))\n}\n\n// Params needed:\n// nickname\n// email\n// fullname\n// password\n// password_confirm\n//\n// Optional\n// bio\n// homepage\n// location\n// token\n// language\nconst register = ({ params, credentials }) => {\n const { nickname, ...rest } = params\n return fetch(MASTODON_REGISTRATION_URL, {\n method: 'POST',\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n nickname,\n locale: 'en_US',\n agreement: true,\n ...rest\n })\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.json().then((error) => { throw new RegistrationError(error) })\n }\n })\n}\n\nconst getCaptcha = () => fetch('/api/pleroma/captcha').then(resp => resp.json())\n\nconst authHeaders = (accessToken) => {\n if (accessToken) {\n return { 'Authorization': `Bearer ${accessToken}` }\n } else {\n return { }\n }\n}\n\nconst followUser = ({ id, credentials, ...options }) => {\n let url = MASTODON_FOLLOW_URL(id)\n const form = {}\n if (options.reblogs !== undefined) { form['reblogs'] = options.reblogs }\n return fetch(url, {\n body: JSON.stringify(form),\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst unfollowUser = ({ id, credentials }) => {\n let url = MASTODON_UNFOLLOW_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst pinOwnStatus = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_PIN_OWN_STATUS(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst unpinOwnStatus = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNPIN_OWN_STATUS(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst muteConversation = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_MUTE_CONVERSATION(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst unmuteConversation = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_CONVERSATION(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst blockUser = ({ id, credentials }) => {\n return fetch(MASTODON_BLOCK_USER_URL(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst unblockUser = ({ id, credentials }) => {\n return fetch(MASTODON_UNBLOCK_USER_URL(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst approveUser = ({ id, credentials }) => {\n let url = MASTODON_APPROVE_USER_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst denyUser = ({ id, credentials }) => {\n let url = MASTODON_DENY_USER_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUser = ({ id, credentials }) => {\n let url = `${MASTODON_USER_URL}/${id}`\n return promisedRequest({ url, credentials })\n .then((data) => parseUser(data))\n}\n\nconst fetchUserRelationship = ({ id, credentials }) => {\n let url = `${MASTODON_USER_RELATIONSHIPS_URL}/?id=${id}`\n return fetch(url, { headers: authHeaders(credentials) })\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url }, response))\n }\n return resolve(json)\n }))\n })\n}\n\nconst fetchFriends = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWING_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n `with_relationships=true`\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst exportFriends = ({ id, credentials }) => {\n return new Promise(async (resolve, reject) => {\n try {\n let friends = []\n let more = true\n while (more) {\n const maxId = friends.length > 0 ? last(friends).id : undefined\n const users = await fetchFriends({ id, maxId, credentials })\n friends = concat(friends, users)\n if (users.length === 0) {\n more = false\n }\n }\n resolve(friends)\n } catch (err) {\n reject(err)\n }\n })\n}\n\nconst fetchFollowers = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWERS_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n `with_relationships=true`\n ].filter(_ => _).join('&')\n\n url += args ? '?' + args : ''\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchFollowRequests = ({ credentials }) => {\n const url = MASTODON_FOLLOW_REQUESTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchConversation = ({ id, credentials }) => {\n let urlContext = MASTODON_STATUS_CONTEXT_URL(id)\n return fetch(urlContext, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching timeline', data)\n })\n .then((data) => data.json())\n .then(({ ancestors, descendants }) => ({\n ancestors: ancestors.map(parseStatus),\n descendants: descendants.map(parseStatus)\n }))\n}\n\nconst fetchStatus = ({ id, credentials }) => {\n let url = MASTODON_STATUS_URL(id)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching timeline', data)\n })\n .then((data) => data.json())\n .then((data) => parseStatus(data))\n}\n\nconst tagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const form = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'PUT',\n headers: headers,\n body: JSON.stringify(form)\n })\n}\n\nconst untagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const body = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'DELETE',\n headers: headers,\n body: JSON.stringify(body)\n })\n}\n\nconst addRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'POST',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst deleteRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'DELETE',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst activateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: ACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deactivateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: DEACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deleteUser = ({ credentials, user }) => {\n const screenName = user.screen_name\n const headers = authHeaders(credentials)\n\n return fetch(`${ADMIN_USERS_URL}?nickname=${screenName}`, {\n method: 'DELETE',\n headers: headers\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n tag = false,\n withMuted = false,\n replyVisibility = 'all'\n}) => {\n const timelineUrls = {\n public: MASTODON_PUBLIC_TIMELINE,\n friends: MASTODON_USER_HOME_TIMELINE_URL,\n dms: MASTODON_DIRECT_MESSAGES_TIMELINE_URL,\n notifications: MASTODON_USER_NOTIFICATIONS_URL,\n 'publicAndExternal': MASTODON_PUBLIC_TIMELINE,\n user: MASTODON_USER_TIMELINE_URL,\n media: MASTODON_USER_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL,\n bookmarks: MASTODON_BOOKMARK_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n if (timeline !== 'favorites' && timeline !== 'bookmarks') {\n params.push(['with_muted', withMuted])\n }\n if (replyVisibility !== 'all') {\n params.push(['reply_visibility', replyVisibility])\n }\n\n params.push(['limit', 20])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n let status = ''\n let statusText = ''\n\n let pagination = {}\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n status = data.status\n statusText = data.statusText\n pagination = parseLinkHeaderPagination(data.headers.get('Link'), {\n flakeId: timeline !== 'bookmarks' && timeline !== 'notifications'\n })\n return data\n })\n .then((data) => data.json())\n .then((data) => {\n if (!data.errors) {\n return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination }\n } else {\n data.status = status\n data.statusText = statusText\n return data\n }\n })\n}\n\nconst fetchPinnedStatuses = ({ id, credentials }) => {\n const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'\n return promisedRequest({ url, credentials })\n .then((data) => data.map(parseStatus))\n}\n\nconst verifyCredentials = (user) => {\n return fetch(MASTODON_LOGIN_URL, {\n headers: authHeaders(user)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseUser(data))\n}\n\nconst favorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_FAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unfavorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNFAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst retweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_RETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unretweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNRETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst bookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_BOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst unbookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_UNBOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst postStatus = ({\n credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n mediaIds = [],\n inReplyToStatusId,\n contentType,\n preview,\n idempotencyKey\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n form.append('source', 'Pleroma FE')\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (visibility) form.append('visibility', visibility)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: poll.expiresIn,\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n if (inReplyToStatusId) {\n form.append('in_reply_to_id', inReplyToStatusId)\n }\n if (preview) {\n form.append('preview', 'true')\n }\n\n let postHeaders = authHeaders(credentials)\n if (idempotencyKey) {\n postHeaders['idempotency-key'] = idempotencyKey\n }\n\n return fetch(MASTODON_POST_STATUS_URL, {\n body: form,\n method: 'POST',\n headers: postHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst deleteStatus = ({ id, credentials }) => {\n return fetch(MASTODON_DELETE_URL(id), {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst uploadMedia = ({ formData, credentials }) => {\n return fetch(MASTODON_MEDIA_UPLOAD_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((data) => data.json())\n .then((data) => parseAttachment(data))\n}\n\nconst setMediaDescription = ({ id, description, credentials }) => {\n return promisedRequest({\n url: `${MASTODON_MEDIA_UPLOAD_URL}/${id}`,\n method: 'PUT',\n headers: authHeaders(credentials),\n payload: {\n description\n }\n }).then((data) => parseAttachment(data))\n}\n\nconst importMutes = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(MUTES_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importBlocks = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(BLOCKS_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importFollows = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(FOLLOW_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst deleteAccount = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(DELETE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changeEmail = ({ credentials, email, password }) => {\n const form = new FormData()\n\n form.append('email', email)\n form.append('password', password)\n\n return fetch(CHANGE_EMAIL_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changePassword = ({ credentials, password, newPassword, newPasswordConfirmation }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('new_password', newPassword)\n form.append('new_password_confirmation', newPasswordConfirmation)\n\n return fetch(CHANGE_PASSWORD_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst settingsMFA = ({ credentials }) => {\n return fetch(MFA_SETTINGS_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst mfaDisableOTP = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(MFA_DISABLE_OTP_URL, {\n body: form,\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst mfaConfirmOTP = ({ credentials, password, token }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('code', token)\n\n return fetch(MFA_CONFIRM_OTP_URL, {\n body: form,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\nconst mfaSetupOTP = ({ credentials }) => {\n return fetch(MFA_SETUP_OTP_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\nconst generateMfaBackupCodes = ({ credentials }) => {\n return fetch(MFA_BACKUP_CODES_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst fetchMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_MUTES_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst muteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst unmuteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst fetchMascot = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_MASCOT_URL, credentials })\n}\n\nconst updateMascot = ({ mascot, credentials }) => {\n const form = new FormData()\n form.append('file', mascot)\n return fetch(MASTODON_MASCOT_URL, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_BLOCKS_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst fetchOAuthTokens = ({ credentials }) => {\n const url = '/api/oauth_tokens.json'\n\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => {\n if (data.ok) {\n return data.json()\n }\n throw new Error('Error fetching auth tokens', data)\n })\n}\n\nconst revokeOAuthToken = ({ id, credentials }) => {\n const url = `/api/oauth_tokens/${id}`\n\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst suggestions = ({ credentials }) => {\n return fetch(SUGGESTIONS_URL, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst markNotificationsAsSeen = ({ id, credentials, single = false }) => {\n const body = new FormData()\n\n if (single) {\n body.append('id', id)\n } else {\n body.append('max_id', id)\n }\n\n return fetch(NOTIFICATION_READ_URL, {\n body,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst vote = ({ pollId, choices, credentials }) => {\n const form = new FormData()\n form.append('choices', choices)\n\n return promisedRequest({\n url: MASTODON_VOTE_URL(encodeURIComponent(pollId)),\n method: 'POST',\n credentials,\n payload: {\n choices: choices\n }\n })\n}\n\nconst fetchPoll = ({ pollId, credentials }) => {\n return promisedRequest(\n {\n url: MASTODON_POLL_URL(encodeURIComponent(pollId)),\n method: 'GET',\n credentials\n }\n )\n}\n\nconst fetchFavoritedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_FAVORITEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchRebloggedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_REBLOGGEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchEmojiReactions = ({ id, credentials }) => {\n return promisedRequest({ url: PLEROMA_EMOJI_REACTIONS_URL(id), credentials })\n .then((reactions) => reactions.map(r => {\n r.accounts = r.accounts.map(parseUser)\n return r\n }))\n}\n\nconst reactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_REACT_URL(id, emoji),\n method: 'PUT',\n credentials\n }).then(parseStatus)\n}\n\nconst unreactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_UNREACT_URL(id, emoji),\n method: 'DELETE',\n credentials\n }).then(parseStatus)\n}\n\nconst reportUser = ({ credentials, userId, statusIds, comment, forward }) => {\n return promisedRequest({\n url: MASTODON_REPORT_USER_URL,\n method: 'POST',\n payload: {\n 'account_id': userId,\n 'status_ids': statusIds,\n comment,\n forward\n },\n credentials\n })\n}\n\nconst searchUsers = ({ credentials, query }) => {\n return promisedRequest({\n url: MASTODON_USER_SEARCH_URL,\n params: {\n q: query,\n resolve: true\n },\n credentials\n })\n .then((data) => data.map(parseUser))\n}\n\nconst search2 = ({ credentials, q, resolve, limit, offset, following }) => {\n let url = MASTODON_SEARCH_2\n let params = []\n\n if (q) {\n params.push(['q', encodeURIComponent(q)])\n }\n\n if (resolve) {\n params.push(['resolve', resolve])\n }\n\n if (limit) {\n params.push(['limit', limit])\n }\n\n if (offset) {\n params.push(['offset', offset])\n }\n\n if (following) {\n params.push(['following', true])\n }\n\n params.push(['with_relationships', true])\n\n let queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching search result', data)\n })\n .then((data) => { return data.json() })\n .then((data) => {\n data.accounts = data.accounts.slice(0, limit).map(u => parseUser(u))\n data.statuses = data.statuses.slice(0, limit).map(s => parseStatus(s))\n return data\n })\n}\n\nconst fetchKnownDomains = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_KNOWN_DOMAIN_LIST_URL, credentials })\n}\n\nconst fetchDomainMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_DOMAIN_BLOCKS_URL, credentials })\n}\n\nconst muteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'POST',\n payload: { domain },\n credentials\n })\n}\n\nconst unmuteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'DELETE',\n payload: { domain },\n credentials\n })\n}\n\nconst dismissNotification = ({ credentials, id }) => {\n return promisedRequest({\n url: MASTODON_DISMISS_NOTIFICATION_URL(id),\n method: 'POST',\n payload: { id },\n credentials\n })\n}\n\nexport const getMastodonSocketURI = ({ credentials, stream, args = {} }) => {\n return Object.entries({\n ...(credentials\n ? { access_token: credentials }\n : {}\n ),\n stream,\n ...args\n }).reduce((acc, [key, val]) => {\n return acc + `${key}=${val}&`\n }, MASTODON_STREAMING + '?')\n}\n\nconst MASTODON_STREAMING_EVENTS = new Set([\n 'update',\n 'notification',\n 'delete',\n 'filters_changed'\n])\n\nconst PLEROMA_STREAMING_EVENTS = new Set([\n 'pleroma:chat_update'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n eventTarget.getState = () => socket.readyState\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event) || PLEROMA_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n } else if (event === 'pleroma:chat_update') {\n return { event, chatUpdate: parseChat(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nexport const WSConnectionStatus = Object.freeze({\n 'JOINED': 1,\n 'CLOSED': 2,\n 'ERROR': 3,\n 'DISABLED': 4,\n 'STARTING': 5,\n 'STARTING_INITIAL': 6\n})\n\nconst chats = ({ credentials }) => {\n return fetch(PLEROMA_CHATS_URL, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => {\n return { chats: data.map(parseChat).filter(c => c) }\n })\n}\n\nconst getOrCreateChat = ({ accountId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_URL(accountId),\n method: 'POST',\n credentials\n })\n}\n\nconst chatMessages = ({ id, credentials, maxId, sinceId, limit = 20 }) => {\n let url = PLEROMA_CHAT_MESSAGES_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n\n return promisedRequest({\n url,\n method: 'GET',\n credentials\n })\n}\n\nconst sendChatMessage = ({ id, content, mediaId = null, idempotencyKey, credentials }) => {\n const payload = {\n 'content': content\n }\n\n if (mediaId) {\n payload['media_id'] = mediaId\n }\n\n const headers = {}\n\n if (idempotencyKey) {\n headers['idempotency-key'] = idempotencyKey\n }\n\n return promisedRequest({\n url: PLEROMA_CHAT_MESSAGES_URL(id),\n method: 'POST',\n payload: payload,\n credentials,\n headers\n })\n}\n\nconst readChat = ({ id, lastReadId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_READ_URL(id),\n method: 'POST',\n payload: {\n 'last_read_id': lastReadId\n },\n credentials\n })\n}\n\nconst deleteChatMessage = ({ chatId, messageId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_CHAT_MESSAGE_URL(chatId, messageId),\n method: 'DELETE',\n credentials\n })\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n fetchUser,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n bookmarkStatus,\n unbookmarkStatus,\n postStatus,\n deleteStatus,\n uploadMedia,\n setMediaDescription,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateProfileImages,\n updateProfile,\n importMutes,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n fetchFollowRequests,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n dismissNotification,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchMascot,\n updateMascot,\n fetchEmojiReactions,\n reactWithEmoji,\n unreactWithEmoji,\n reportUser,\n updateNotificationSettings,\n search2,\n searchUsers,\n fetchKnownDomains,\n fetchDomainMutes,\n muteDomain,\n unmuteDomain,\n chats,\n getOrCreateChat,\n chatMessages,\n sendChatMessage,\n readChat,\n deleteChatMessage\n}\n\nexport default apiService\n","import { invertLightness, contrastRatio } from 'chromatism'\n\n// useful for visualizing color when debugging\nexport const consoleColor = (color) => console.log('%c##########', 'background: ' + color + '; color: ' + color)\n\n/**\n * Convert r, g, b values into hex notation. All components are [0-255]\n *\n * @param {Number|String|Object} r - Either red component, {r,g,b} object, or hex string\n * @param {Number} [g] - Green component\n * @param {Number} [b] - Blue component\n */\nexport const rgb2hex = (r, g, b) => {\n if (r === null || typeof r === 'undefined') {\n return undefined\n }\n // TODO: clean up this mess\n if (r[0] === '#' || r === 'transparent') {\n return r\n }\n if (typeof r === 'object') {\n ({ r, g, b } = r)\n }\n [r, g, b] = [r, g, b].map(val => {\n val = Math.ceil(val)\n val = val < 0 ? 0 : val\n val = val > 255 ? 255 : val\n return val\n })\n return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`\n}\n\n/**\n * Converts 8-bit RGB component into linear component\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n * https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation\n *\n * @param {Number} bit - color component [0..255]\n * @returns {Number} linear component [0..1]\n */\nconst c2linear = (bit) => {\n // W3C gives 0.03928 while wikipedia states 0.04045\n // what those magical numbers mean - I don't know.\n // something about gamma-correction, i suppose.\n // Sticking with W3C example.\n const c = bit / 255\n if (c < 0.03928) {\n return c / 12.92\n } else {\n return Math.pow((c + 0.055) / 1.055, 2.4)\n }\n}\n\n/**\n * Converts sRGB into linear RGB\n * @param {Object} srgb - sRGB color\n * @returns {Object} linear rgb color\n */\nconst srgbToLinear = (srgb) => {\n return 'rgb'.split('').reduce((acc, c) => { acc[c] = c2linear(srgb[c]); return acc }, {})\n}\n\n/**\n * Calculates relative luminance for given color\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n *\n * @param {Object} srgb - sRGB color\n * @returns {Number} relative luminance\n */\nexport const relativeLuminance = (srgb) => {\n const { r, g, b } = srgbToLinear(srgb)\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n\n/**\n * Generates color ratio between two colors. Order is unimporant\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n *\n * @param {Object} a - sRGB color\n * @param {Object} b - sRGB color\n * @returns {Number} color ratio\n */\nexport const getContrastRatio = (a, b) => {\n const la = relativeLuminance(a)\n const lb = relativeLuminance(b)\n const [l1, l2] = la > lb ? [la, lb] : [lb, la]\n\n return (l1 + 0.05) / (l2 + 0.05)\n}\n\n/**\n * Same as `getContrastRatio` but for multiple layers in-between\n *\n * @param {Object} text - text color (topmost layer)\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n * @param {Object} bedrock - layer at the very bottom\n */\nexport const getContrastRatioLayers = (text, layers, bedrock) => {\n return getContrastRatio(alphaBlendLayers(bedrock, layers), text)\n}\n\n/**\n * This performs alpha blending between solid background and semi-transparent foreground\n *\n * @param {Object} fg - top layer color\n * @param {Number} fga - top layer's alpha\n * @param {Object} bg - bottom layer color\n * @returns {Object} sRGB of resulting color\n */\nexport const alphaBlend = (fg, fga, bg) => {\n if (fga === 1 || typeof fga === 'undefined') return fg\n return 'rgb'.split('').reduce((acc, c) => {\n // Simplified https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending\n // for opaque bg and transparent fg\n acc[c] = (fg[c] * fga + bg[c] * (1 - fga))\n return acc\n }, {})\n}\n\n/**\n * Same as `alphaBlend` but for multiple layers in-between\n *\n * @param {Object} bedrock - layer at the very bottom\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n */\nexport const alphaBlendLayers = (bedrock, layers) => layers.reduce((acc, [color, opacity]) => {\n return alphaBlend(color, opacity, acc)\n}, bedrock)\n\nexport const invert = (rgb) => {\n return 'rgb'.split('').reduce((acc, c) => {\n acc[c] = 255 - rgb[c]\n return acc\n }, {})\n}\n\n/**\n * Converts #rrggbb hex notation into an {r, g, b} object\n *\n * @param {String} hex - #rrggbb string\n * @returns {Object} rgb representation of the color, values are 0-255\n */\nexport const hex2rgb = (hex) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null\n}\n\n/**\n * Old somewhat weird function for mixing two colors together\n *\n * @param {Object} a - one color (rgb)\n * @param {Object} b - other color (rgb)\n * @returns {Object} result\n */\nexport const mixrgb = (a, b) => {\n return 'rgb'.split('').reduce((acc, k) => {\n acc[k] = (a[k] + b[k]) / 2\n return acc\n }, {})\n}\n/**\n * Converts rgb object into a CSS rgba() color\n *\n * @param {Object} color - rgb\n * @returns {String} CSS rgba() color\n */\nexport const rgba2css = function (rgba) {\n return `rgba(${Math.floor(rgba.r)}, ${Math.floor(rgba.g)}, ${Math.floor(rgba.b)}, ${rgba.a})`\n}\n\n/**\n * Get text color for given background color and intended text color\n * This checks if text and background don't have enough color and inverts\n * text color's lightness if needed. If text color is still not enough it\n * will fall back to black or white\n *\n * @param {Object} bg - background color\n * @param {Object} text - intended text color\n * @param {Boolean} preserve - try to preserve intended text color's hue/saturation (i.e. no BW)\n */\nexport const getTextColor = function (bg, text, preserve) {\n const contrast = getContrastRatio(bg, text)\n\n if (contrast < 4.5) {\n const base = typeof text.a !== 'undefined' ? { a: text.a } : {}\n const result = Object.assign(base, invertLightness(text).rgb)\n if (!preserve && getContrastRatio(bg, result) < 4.5) {\n // B&W\n return contrastRatio(bg, text).rgb\n }\n // Inverted color\n return result\n }\n return text\n}\n\n/**\n * Converts color to CSS Color value\n *\n * @param {Object|String} input - color\n * @param {Number} [a] - alpha value\n * @returns {String} a CSS Color value\n */\nexport const getCssColor = (input, a) => {\n let rgb = {}\n if (typeof input === 'object') {\n rgb = input\n } else if (typeof input === 'string') {\n if (input.startsWith('#')) {\n rgb = hex2rgb(input)\n } else {\n return input\n }\n }\n return rgba2css({ ...rgb, a })\n}\n","import StillImage from '../still-image/still-image.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\n\nimport {\n faRobot\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRobot\n)\n\nconst UserAvatar = {\n props: [\n 'user',\n 'betterShadow',\n 'compact',\n 'bot'\n ],\n data () {\n return {\n showPlaceholder: false,\n defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`\n }\n },\n components: {\n StillImage\n },\n methods: {\n imgSrc (src) {\n return (!src || this.showPlaceholder) ? this.defaultAvatar : src\n },\n imageLoadError () {\n this.showPlaceholder = true\n }\n }\n}\n\nexport default UserAvatar\n","import { render } from \"./user_avatar.vue?vue&type=template&id=764c87f9\"\nimport script from \"./user_avatar.js?vue&type=script&lang=js\"\nexport * from \"./user_avatar.js?vue&type=script&lang=js\"\n\nimport \"./user_avatar.vue?vue&type=style&index=0&id=764c87f9&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n","import { includes } from 'lodash'\n\nconst generateProfileLink = (id, screenName, restrictedNicknames) => {\n const complicated = !screenName || (isExternal(screenName) || includes(restrictedNicknames, screenName))\n return {\n name: (complicated ? 'external-user-profile' : 'user-profile'),\n params: (complicated ? { id } : { name: screenName })\n }\n}\n\nconst isExternal = screenName => screenName && screenName.includes('@')\n\nexport default generateProfileLink\n","const Popover = {\n name: 'Popover',\n props: {\n // Action to trigger popover: either 'hover' or 'click'\n trigger: String,\n\n // Either 'top' or 'bottom'\n placement: String,\n\n // Takes object with properties 'x' and 'y', values of these can be\n // 'container' for using offsetParent as boundaries for either axis\n // or 'viewport'\n boundTo: Object,\n\n // Takes a selector to use as a replacement for the parent container\n // for getting boundaries for x an y axis\n boundToSelector: String,\n\n // Takes a top/bottom/left/right object, how much space to leave\n // between boundary and popover element\n margin: Object,\n\n // Takes a x/y object and tells how many pixels to offset from\n // anchor point on either axis\n offset: Object,\n\n // Replaces the classes you may want for the popover container.\n // Use 'popover-default' in addition to get the default popover\n // styles with your custom class.\n popoverClass: String,\n\n // If true, subtract padding when calculating position for the popover,\n // use it when popover offset looks to be different on top vs bottom.\n removePadding: Boolean\n },\n data () {\n return {\n hidden: true,\n styles: { opacity: 0 },\n oldSize: { width: 0, height: 0 }\n }\n },\n methods: {\n containerBoundingClientRect () {\n const container = this.boundToSelector ? this.$el.closest(this.boundToSelector) : this.$el.offsetParent\n return container.getBoundingClientRect()\n },\n updateStyles () {\n if (this.hidden) {\n this.styles = {\n opacity: 0\n }\n return\n }\n\n // Popover will be anchored around this element, trigger ref is the container, so\n // its children are what are inside the slot. Expect only one v-slot:trigger.\n const anchorEl = (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\n // SVGs don't have offsetWidth/Height, use fallback\n const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth\n const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight\n const screenBox = anchorEl.getBoundingClientRect()\n // Screen position of the origin point for popover\n const origin = { x: screenBox.left + screenBox.width * 0.5, y: screenBox.top }\n const content = this.$refs.content\n // Minor optimization, don't call a slow reflow call if we don't have to\n const parentBounds = this.boundTo &&\n (this.boundTo.x === 'container' || this.boundTo.y === 'container') &&\n this.containerBoundingClientRect()\n\n const margin = this.margin || {}\n\n // What are the screen bounds for the popover? Viewport vs container\n // when using viewport, using default margin values to dodge the navbar\n const xBounds = this.boundTo && this.boundTo.x === 'container' ? {\n min: parentBounds.left + (margin.left || 0),\n max: parentBounds.right - (margin.right || 0)\n } : {\n min: 0 + (margin.left || 10),\n max: window.innerWidth - (margin.right || 10)\n }\n\n const yBounds = this.boundTo && this.boundTo.y === 'container' ? {\n min: parentBounds.top + (margin.top || 0),\n max: parentBounds.bottom - (margin.bottom || 0)\n } : {\n min: 0 + (margin.top || 50),\n max: window.innerHeight - (margin.bottom || 5)\n }\n\n let horizOffset = 0\n\n // If overflowing from left, move it so that it doesn't\n if ((origin.x - content.offsetWidth * 0.5) < xBounds.min) {\n horizOffset += -(origin.x - content.offsetWidth * 0.5) + xBounds.min\n }\n\n // If overflowing from right, move it so that it doesn't\n if ((origin.x + horizOffset + content.offsetWidth * 0.5) > xBounds.max) {\n horizOffset -= (origin.x + horizOffset + content.offsetWidth * 0.5) - xBounds.max\n }\n\n // Default to whatever user wished with placement prop\n let usingTop = this.placement !== 'bottom'\n\n // Handle special cases, first force to displaying on top if there's not space on bottom,\n // regardless of what placement value was. Then check if there's not space on top, and\n // force to bottom, again regardless of what placement value was.\n if (origin.y + content.offsetHeight > yBounds.max) usingTop = true\n if (origin.y - content.offsetHeight < yBounds.min) usingTop = false\n\n let vPadding = 0\n if (this.removePadding && usingTop) {\n const anchorStyle = getComputedStyle(anchorEl)\n vPadding = parseFloat(anchorStyle.paddingTop) + parseFloat(anchorStyle.paddingBottom)\n }\n\n const yOffset = (this.offset && this.offset.y) || 0\n const translateY = usingTop\n ? -anchorHeight + vPadding - yOffset - content.offsetHeight\n : yOffset\n\n const xOffset = (this.offset && this.offset.x) || 0\n const translateX = anchorWidth * 0.5 - content.offsetWidth * 0.5 + horizOffset + xOffset\n\n // Note, separate translateX and translateY avoids blurry text on chromium,\n // single translate or translate3d resulted in blurry text.\n this.styles = {\n opacity: 1,\n transform: `translateX(${Math.round(translateX)}px) translateY(${Math.round(translateY)}px)`\n }\n },\n showPopover () {\n const wasHidden = this.hidden\n this.hidden = false\n this.$nextTick(() => {\n if (wasHidden) this.$emit('show')\n this.updateStyles()\n })\n },\n hidePopover () {\n if (!this.hidden) this.$emit('close')\n this.hidden = true\n this.styles = { opacity: 0 }\n },\n onMouseenter (e) {\n if (this.trigger === 'hover') this.showPopover()\n },\n onMouseleave (e) {\n if (this.trigger === 'hover') this.hidePopover()\n },\n onClick (e) {\n if (this.trigger === 'click') {\n if (this.hidden) {\n this.showPopover()\n } else {\n this.hidePopover()\n }\n }\n },\n onClickOutside (e) {\n if (this.hidden) return\n if (this.$el.contains(e.target)) return\n this.hidePopover()\n }\n },\n updated () {\n // Monitor changes to content size, update styles only when content sizes have changed,\n // that should be the only time we need to move the popover box if we don't care about scroll\n // or resize\n const content = this.$refs.content\n if (!content) return\n if (this.oldSize.width !== content.offsetWidth || this.oldSize.height !== content.offsetHeight) {\n this.updateStyles()\n this.oldSize = { width: content.offsetWidth, height: content.offsetHeight }\n }\n },\n created () {\n document.addEventListener('click', this.onClickOutside)\n },\n unmounted () {\n document.removeEventListener('click', this.onClickOutside)\n this.hidePopover()\n }\n}\n\nexport default Popover\n","import { render } from \"./popover.vue?vue&type=template&id=24420bf0\"\nimport script from \"./popover.js?vue&type=script&lang=js\"\nexport * from \"./popover.js?vue&type=script&lang=js\"\n\nimport \"./popover.vue?vue&type=style&index=0&id=24420bf0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faReply } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faReply)\n\nconst ReplyButton = {\n name: 'ReplyButton',\n props: ['status', 'replying'],\n computed: {\n loggedIn () {\n return !!this.$store.state.users.currentUser\n }\n }\n}\n\nexport default ReplyButton\n","import { render } from \"./reply_button.vue?vue&type=template&id=56f413c0\"\nimport script from \"./reply_button.js?vue&type=script&lang=js\"\nexport * from \"./reply_button.js?vue&type=script&lang=js\"\n\nimport \"./reply_button.vue?vue&type=style&index=0&id=56f413c0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faStar } from '@fortawesome/free-solid-svg-icons'\nimport {\n faStar as faStarRegular\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faStar,\n faStarRegular\n)\n\nconst FavoriteButton = {\n props: ['status', 'loggedIn'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n favorite () {\n if (!this.status.favorited) {\n this.$store.dispatch('favorite', { id: this.status.id })\n } else {\n this.$store.dispatch('unfavorite', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig'])\n }\n}\n\nexport default FavoriteButton\n","import { render } from \"./favorite_button.vue?vue&type=template&id=21f861d8\"\nimport script from \"./favorite_button.js?vue&type=script&lang=js\"\nexport * from \"./favorite_button.js?vue&type=script&lang=js\"\n\nimport \"./favorite_button.vue?vue&type=style&index=0&id=21f861d8&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faSmileBeam } from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(faSmileBeam)\n\nconst ReactButton = {\n props: ['status'],\n data () {\n return {\n filterWord: ''\n }\n },\n components: {\n Popover\n },\n methods: {\n addReaction (event, emoji, close) {\n const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji)\n if (existingReaction && existingReaction.me) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n } else {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n }\n close()\n },\n focusInput () {\n this.$nextTick(() => {\n const input = this.$el.querySelector('input')\n if (input) input.focus()\n })\n }\n },\n computed: {\n commonEmojis () {\n return [\n { displayText: 'thumbsup', replacement: '👍' },\n { displayText: 'angry', replacement: '😠' },\n { displayText: 'eyes', replacement: '👀' },\n { displayText: 'joy', replacement: '😂' },\n { displayText: 'fire', replacement: '🔥' }\n ]\n },\n emojis () {\n if (this.filterWord !== '') {\n const filterWordLowercase = this.filterWord.toLowerCase()\n let orderedEmojiList = []\n for (const emoji of [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ]) {\n if (emoji.replacement === this.filterWord) return [emoji]\n\n const indexOfFilterWord = emoji.displayText.toLowerCase().indexOf(filterWordLowercase)\n if (indexOfFilterWord > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfFilterWord])) {\n orderedEmojiList[indexOfFilterWord] = []\n }\n orderedEmojiList[indexOfFilterWord].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n }\n return [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ] || []\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n }\n }\n}\n\nexport default ReactButton\n","import { render } from \"./react_button.vue?vue&type=template&id=0101edf8\"\nimport script from \"./react_button.js?vue&type=script&lang=js\"\nexport * from \"./react_button.js?vue&type=script&lang=js\"\n\nimport \"./react_button.vue?vue&type=style&index=0&id=0101edf8&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faRetweet } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faRetweet)\n\nconst RetweetButton = {\n props: ['status', 'loggedIn', 'visibility'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n retweet () {\n if (!this.status.repeated) {\n this.$store.dispatch('retweet', { id: this.status.id })\n } else {\n this.$store.dispatch('unretweet', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n }\n }\n}\n\nexport default RetweetButton\n","import { render } from \"./retweet_button.vue?vue&type=template&id=46fe49c4\"\nimport script from \"./retweet_button.js?vue&type=script&lang=js\"\nexport * from \"./retweet_button.js?vue&type=script&lang=js\"\n\nimport \"./retweet_button.vue?vue&type=style&index=0&id=46fe49c4&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH,\n faBookmark,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faBookmark as faBookmarkReg,\n faFlag\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faEllipsisH,\n faBookmark,\n faBookmarkReg,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faFlag\n)\n\nconst ExtraButtons = {\n props: [ 'status' ],\n components: { Popover },\n methods: {\n deleteStatus () {\n const confirmed = window.confirm(this.$t('status.delete_confirm'))\n if (confirmed) {\n this.$store.dispatch('deleteStatus', { id: this.status.id })\n }\n },\n pinStatus () {\n this.$store.dispatch('pinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unpinStatus () {\n this.$store.dispatch('unpinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n muteConversation () {\n this.$store.dispatch('muteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unmuteConversation () {\n this.$store.dispatch('unmuteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n copyLink () {\n navigator.clipboard.writeText(this.statusLink)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n bookmarkStatus () {\n this.$store.dispatch('bookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unbookmarkStatus () {\n this.$store.dispatch('unbookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n reportStatus () {\n this.$store.dispatch('openUserReportingModal', { userId: this.status.user.id, statusIds: [this.status.id] })\n }\n },\n computed: {\n currentUser () { return this.$store.state.users.currentUser },\n canDelete () {\n if (!this.currentUser) { return }\n const superuser = this.currentUser.rights.moderator || this.currentUser.rights.admin\n return superuser || this.status.user.id === this.currentUser.id\n },\n ownStatus () {\n return this.status.user.id === this.currentUser.id\n },\n canPin () {\n return this.ownStatus && (this.status.visibility === 'public' || this.status.visibility === 'unlisted')\n },\n canMute () {\n return !!this.currentUser\n },\n statusLink () {\n return `${this.$store.state.instance.server}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}`\n }\n }\n}\n\nexport default ExtraButtons\n","import { render } from \"./extra_buttons.vue?vue&type=template&id=3a956a44\"\nimport script from \"./extra_buttons.js?vue&type=script&lang=js\"\nexport * from \"./extra_buttons.js?vue&type=script&lang=js\"\n\nimport \"./extra_buttons.vue?vue&type=style&index=0&id=3a956a44&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { find } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\nimport { defineAsyncComponent } from 'vue'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst StatusPopover = {\n name: 'StatusPopover',\n props: [\n 'statusId'\n ],\n data () {\n return {\n error: false\n }\n },\n computed: {\n status () {\n return find(this.$store.state.statuses.allStatuses, { id: this.statusId })\n }\n },\n components: {\n Status: defineAsyncComponent(() => import('../status/status.vue')),\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n methods: {\n enter () {\n if (!this.status) {\n if (!this.statusId) {\n this.error = true\n return\n }\n this.$store.dispatch('fetchStatus', this.statusId)\n .then(data => (this.error = false))\n .catch(e => (this.error = true))\n }\n }\n }\n}\n\nexport default StatusPopover\n","import { render } from \"./status_popover.vue?vue&type=template&id=fa4a5d94\"\nimport script from \"./status_popover.js?vue&type=script&lang=js\"\nexport * from \"./status_popover.js?vue&type=script&lang=js\"\n\nimport \"./status_popover.vue?vue&type=style&index=0&id=fa4a5d94&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { defineAsyncComponent } from 'vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst UserListPopover = {\n name: 'UserListPopover',\n props: [\n 'users'\n ],\n components: {\n RichContent,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue')),\n UserAvatar: defineAsyncComponent(() => import('../user_avatar/user_avatar.vue'))\n },\n computed: {\n usersCapped () {\n return this.users.slice(0, 16)\n }\n }\n}\n\nexport default UserListPopover\n","import { render } from \"./user_list_popover.vue?vue&type=template&id=3dc0c2d4\"\nimport script from \"./user_list_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_list_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_list_popover.vue?vue&type=style&index=0&id=3dc0c2d4&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n name: 'EmojiReactions',\n components: {\n UserAvatar,\n UserListPopover\n },\n props: ['status'],\n data: () => ({\n showAll: false\n }),\n computed: {\n tooManyReactions () {\n return this.status.emoji_reactions.length > EMOJI_REACTION_COUNT_CUTOFF\n },\n emojiReactions () {\n return this.showAll\n ? this.status.emoji_reactions\n : this.status.emoji_reactions.slice(0, EMOJI_REACTION_COUNT_CUTOFF)\n },\n showMoreString () {\n return `+${this.status.emoji_reactions.length - EMOJI_REACTION_COUNT_CUTOFF}`\n },\n accountsForEmoji () {\n return this.status.emoji_reactions.reduce((acc, reaction) => {\n acc[reaction.name] = reaction.accounts || []\n return acc\n }, {})\n },\n loggedIn () {\n return !!this.$store.state.users.currentUser\n }\n },\n methods: {\n toggleShowAll () {\n this.showAll = !this.showAll\n },\n reactedWith (emoji) {\n return this.status.emoji_reactions.find(r => r.name === emoji).me\n },\n fetchEmojiReactionsByIfMissing () {\n const hasNoAccounts = this.status.emoji_reactions.find(r => !r.accounts)\n if (hasNoAccounts) {\n this.$store.dispatch('fetchEmojiReactionsBy', this.status.id)\n }\n },\n reactWith (emoji) {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n },\n unreact (emoji) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n },\n emojiOnClick (emoji, event) {\n if (!this.loggedIn) return\n\n if (this.reactedWith(emoji)) {\n this.unreact(emoji)\n } else {\n this.reactWith(emoji)\n }\n }\n }\n}\n\nexport default EmojiReactions\n","import { render } from \"./emoji_reactions.vue?vue&type=template&id=1bf35779\"\nimport script from \"./emoji_reactions.js?vue&type=script&lang=js\"\nexport * from \"./emoji_reactions.js?vue&type=script&lang=js\"\n\nimport \"./emoji_reactions.vue?vue&type=style&index=0&id=1bf35779&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ReplyButton from '../reply_button/reply_button.vue'\nimport FavoriteButton from '../favorite_button/favorite_button.vue'\nimport ReactButton from '../react_button/react_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport ExtraButtons from '../extra_buttons/extra_buttons.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport StatusPopover from '../status_popover/status_popover.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.vue'\nimport MentionsLine from 'src/components/mentions_line/mentions_line.vue'\nimport MentionLink from 'src/components/mention_link/mention_link.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { muteWordHits } from '../../services/status_parser/status_parser.js'\nimport { unescape, uniqBy } from 'lodash'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faSmileBeam,\n faEllipsisH,\n faStar,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faStar,\n faSmileBeam,\n faEllipsisH,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst controlledOrUncontrolledSet = (obj, name, val) => {\n const camelized = camelCase(name)\n const set = `controlledSet${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[set]) {\n obj[set](val)\n } else {\n obj[uncontrolledName] = val\n }\n}\n\nconst Status = {\n name: 'Status',\n components: {\n ReplyButton,\n FavoriteButton,\n ReactButton,\n RetweetButton,\n ExtraButtons,\n PostStatusForm,\n UserCard,\n UserAvatar,\n AvatarList,\n Timeago,\n StatusPopover,\n UserListPopover,\n EmojiReactions,\n StatusContent,\n RichContent,\n MentionLink,\n MentionsLine\n },\n props: [\n 'statusoid',\n 'expandable',\n 'inConversation',\n 'focused',\n 'highlight',\n 'compact',\n 'replies',\n 'isPreview',\n 'noHeading',\n 'inlineExpanded',\n 'showPinned',\n 'inProfile',\n 'profileUserId',\n\n 'simpleTree',\n 'controlledThreadDisplayStatus',\n 'controlledToggleThreadDisplay',\n 'showOtherRepliesAsButton',\n\n 'controlledShowingTall',\n 'controlledToggleShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject',\n 'controlledReplying',\n 'controlledToggleReplying',\n 'controlledMediaPlaying',\n 'controlledSetMediaPlaying',\n 'dive'\n ],\n data () {\n return {\n uncontrolledReplying: false,\n unmuted: false,\n userExpanded: false,\n uncontrolledMediaPlaying: [],\n suspendable: true,\n error: null,\n headTailLinks: null\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['replying', 'mediaPlaying']),\n muteWords () {\n return this.mergedConfig.muteWords\n },\n showReasonMutedThread () {\n return (\n this.status.thread_muted ||\n (this.status.reblog && this.status.reblog.thread_muted)\n ) && !this.inConversation\n },\n repeaterClass () {\n const user = this.statusoid.user\n return highlightClass(user)\n },\n userClass () {\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n return highlightClass(user)\n },\n deleted () {\n return this.statusoid.deleted\n },\n repeaterStyle () {\n const user = this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userStyle () {\n if (this.noHeading) return\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)\n },\n replyProfileLink () {\n if (this.isReply) {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n // FIXME Why user not found sometimes???\n return user ? user.statusnet_profile_url : 'NOT_FOUND'\n }\n },\n retweet () { return !!this.statusoid.retweeted_status },\n retweeterUser () { return this.statusoid.user },\n retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name_ui },\n retweeterHtml () { return this.statusoid.user.name },\n retweeterProfileLink () { return this.generateUserProfileLink(this.statusoid.user.id, this.statusoid.user.screen_name) },\n status () {\n if (this.retweet) {\n return this.statusoid.retweeted_status\n } else {\n return this.statusoid\n }\n },\n statusFromGlobalRepository () {\n // NOTE: Consider to replace status with statusFromGlobalRepository\n return this.$store.state.statuses.allStatusesObject[this.status.id]\n },\n loggedIn () {\n return !!this.currentUser\n },\n muteWordHits () {\n return muteWordHits(this.status, this.muteWords)\n },\n rtBotStatus () {\n return this.statusoid.user.bot\n },\n botStatus () {\n return this.status.user.bot\n },\n botIndicator () {\n return this.botStatus && !this.hideBotIndication\n },\n rtBotIndicator () {\n return this.rtBotStatus && !this.hideBotIndication\n },\n mentionsLine () {\n if (!this.headTailLinks) return []\n const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))\n return this.status.attentions.filter(attn => {\n // no reply user\n return attn.id !== this.status.in_reply_to_user_id &&\n // no self-replies\n attn.statusnet_profile_url !== this.status.user.statusnet_profile_url &&\n // don't include if mentions is written\n !writtenSet.has(attn.statusnet_profile_url)\n }).map(attn => ({\n url: attn.statusnet_profile_url,\n content: attn.screen_name,\n userId: attn.id\n }))\n },\n hasMentionsLine () {\n return this.mentionsLine.length > 0\n },\n muted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const reasonsToMute = this.userIsMuted ||\n // Thread is muted\n status.thread_muted ||\n // Wordfiltered\n this.muteWordHits.length > 0 ||\n // bot status\n (this.muteBotStatuses && this.botStatus && !this.compact)\n return !this.unmuted && !this.shouldNotMute && reasonsToMute\n },\n userIsMuted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const { status } = this\n const { reblog } = status\n const relationship = this.$store.getters.relationship(status.user.id)\n const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)\n return status.muted ||\n // Reprööt of a muted post according to BE\n (reblog && reblog.muted) ||\n // Muted user\n relationship.muting ||\n // Muted user of a reprööt\n (relationshipReblog && relationshipReblog.muting)\n },\n shouldNotMute () {\n const { status } = this\n const { reblog } = status\n return (\n (\n this.inProfile && (\n // Don't mute user's posts on user timeline (except reblogs)\n (!reblog && status.user.id === this.profileUserId) ||\n // Same as above but also allow self-reblogs\n (reblog && reblog.user.id === this.profileUserId)\n )\n ) ||\n // Don't mute statuses in muted conversation when said conversation is opened\n (this.inConversation && status.thread_muted)\n // No excuses if post has muted words\n ) && !this.muteWordHits.length > 0\n },\n hideMutedUsers () {\n return this.mergedConfig.hideMutedPosts\n },\n hideMutedThreads () {\n return this.mergedConfig.hideMutedThreads\n },\n hideFilteredStatuses () {\n return this.mergedConfig.hideFilteredStatuses\n },\n hideWordFilteredPosts () {\n return this.mergedConfig.hideWordFilteredPosts\n },\n hideStatus () {\n return (!this.shouldNotMute) && (\n (this.muted && this.hideFilteredStatuses) ||\n (this.userIsMuted && this.hideMutedUsers) ||\n (this.status.thread_muted && this.hideMutedThreads) ||\n (this.muteWordHits.length > 0 && this.hideWordFilteredPosts)\n )\n },\n isFocused () {\n // retweet or root of an expanded conversation\n if (this.focused) {\n return true\n } else if (!this.inConversation) {\n return false\n }\n // use conversation highlight only when in conversation\n return this.status.id === this.highlight\n },\n isReply () {\n return !!(this.status.in_reply_to_status_id && this.status.in_reply_to_user_id)\n },\n replyToName () {\n if (this.status.in_reply_to_screen_name) {\n return this.status.in_reply_to_screen_name\n } else {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n return user && user.screen_name_ui\n }\n },\n replySubject () {\n if (!this.status.summary) return ''\n const decodedSummary = unescape(this.status.summary)\n const behavior = this.mergedConfig.subjectLineBehavior\n const startsWithRe = decodedSummary.match(/^re[: ]/i)\n if ((behavior !== 'noop' && startsWithRe) || behavior === 'masto') {\n return decodedSummary\n } else if (behavior === 'email') {\n return 're: '.concat(decodedSummary)\n } else if (behavior === 'noop') {\n return ''\n }\n },\n combinedFavsAndRepeatsUsers () {\n // Use the status from the global status repository since favs and repeats are saved in it\n const combinedUsers = [].concat(\n this.statusFromGlobalRepository.favoritedBy,\n this.statusFromGlobalRepository.rebloggedBy\n )\n return uniqBy(combinedUsers, 'id')\n },\n tags () {\n return this.status.tags.filter(tagObj => tagObj.hasOwnProperty('name')).map(tagObj => tagObj.name).join(' ')\n },\n hidePostStats () {\n return this.mergedConfig.hidePostStats\n },\n muteBotStatuses () {\n return this.mergedConfig.muteBotStatuses\n },\n hideBotIndication () {\n return this.mergedConfig.hideBotIndication\n },\n currentUser () {\n return this.$store.state.users.currentUser\n },\n betterShadow () {\n return this.$store.state.interface.browserSupport.cssFilter\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n isSuspendable () {\n return !this.replying && this.mediaPlaying.length === 0\n },\n inThreadForest () {\n return !!this.controlledThreadDisplayStatus\n },\n threadShowing () {\n return this.controlledThreadDisplayStatus === 'showing'\n },\n visibilityLocalized () {\n return this.$i18n.t('general.scope_in_timeline.' + this.status.visibility)\n }\n },\n methods: {\n visibilityIcon (visibility) {\n switch (visibility) {\n case 'private':\n return 'lock'\n case 'unlisted':\n return 'lock-open'\n case 'direct':\n return 'envelope'\n case 'local':\n return 'users'\n default:\n return 'globe'\n }\n },\n showError (error) {\n this.error = error\n },\n clearError () {\n this.error = undefined\n },\n toggleReplying () {\n controlledOrUncontrolledToggle(this, 'replying')\n },\n gotoOriginal (id) {\n if (this.inConversation) {\n this.$emit('goto', id)\n }\n },\n toggleExpanded () {\n this.$emit('toggleExpanded')\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n },\n addMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.concat(id))\n },\n removeMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.filter(mediaId => mediaId !== id))\n },\n setHeadTailLinks (headTailLinks) {\n this.headTailLinks = headTailLinks\n },\n toggleThreadDisplay () {\n this.controlledToggleThreadDisplay()\n },\n scrollIfHighlighted (highlightId) {\n const id = highlightId\n if (this.status.id === id) {\n let rect = this.$el.getBoundingClientRect()\n if (rect.top < 100) {\n // Post is above screen, match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.height >= (window.innerHeight - 50)) {\n // Post we want to see is taller than screen so match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.bottom > window.innerHeight - 50) {\n // Post is below screen, match its bottom to screen bottom\n window.scrollBy(0, rect.bottom - window.innerHeight + 50)\n }\n }\n }\n },\n watch: {\n 'highlight': function (id) {\n this.scrollIfHighlighted(id)\n },\n 'status.repeat_num': function (num) {\n // refetch repeats when repeat_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.rebloggedBy && this.statusFromGlobalRepository.rebloggedBy.length !== num) {\n this.$store.dispatch('fetchRepeats', this.status.id)\n }\n },\n 'status.fave_num': function (num) {\n // refetch favs when fave_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.favoritedBy && this.statusFromGlobalRepository.favoritedBy.length !== num) {\n this.$store.dispatch('fetchFavs', this.status.id)\n }\n },\n 'isSuspendable': function (val) {\n this.suspendable = val\n }\n }\n}\n\nexport default Status\n","import { render } from \"./status.vue?vue&type=template&id=7387c01f\"\nimport script from \"./status.js?vue&type=script&lang=js\"\nexport * from \"./status.js?vue&type=script&lang=js\"\n\nimport \"./status.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","const DialogModal = {\n props: {\n darkOverlay: {\n default: true,\n type: Boolean\n },\n onCancel: {\n default: () => {},\n type: Function\n }\n }\n}\n\nexport default DialogModal\n","import { render } from \"./dialog_modal.vue?vue&type=template&id=202a26c4\"\nimport script from \"./dialog_modal.js?vue&type=script&lang=js\"\nexport * from \"./dialog_modal.js?vue&type=script&lang=js\"\n\nimport \"./dialog_modal.vue?vue&type=style&index=0&id=202a26c4&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronDown } from '@fortawesome/free-solid-svg-icons'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronDown)\n\nconst FORCE_NSFW = 'mrf_tag:media-force-nsfw'\nconst STRIP_MEDIA = 'mrf_tag:media-strip'\nconst FORCE_UNLISTED = 'mrf_tag:force-unlisted'\nconst DISABLE_REMOTE_SUBSCRIPTION = 'mrf_tag:disable-remote-subscription'\nconst DISABLE_ANY_SUBSCRIPTION = 'mrf_tag:disable-any-subscription'\nconst SANDBOX = 'mrf_tag:sandbox'\nconst QUARANTINE = 'mrf_tag:quarantine'\n\nconst ModerationTools = {\n props: [\n 'user'\n ],\n data () {\n return {\n tags: {\n FORCE_NSFW,\n STRIP_MEDIA,\n FORCE_UNLISTED,\n DISABLE_REMOTE_SUBSCRIPTION,\n DISABLE_ANY_SUBSCRIPTION,\n SANDBOX,\n QUARANTINE\n },\n showDeleteUserDialog: false,\n toggled: false\n }\n },\n components: {\n DialogModal,\n Popover\n },\n computed: {\n tagsSet () {\n return new Set(this.user.tags)\n },\n hasTagPolicy () {\n return this.$store.state.instance.tagPolicyAvailable\n }\n },\n methods: {\n hasTag (tagName) {\n return this.tagsSet.has(tagName)\n },\n toggleTag (tag) {\n const store = this.$store\n if (this.tagsSet.has(tag)) {\n store.state.api.backendInteractor.untagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default ModerationTools\n","import { render } from \"./moderation_tools.vue?vue&type=template&id=0ae1f97e\"\nimport script from \"./moderation_tools.js?vue&type=script&lang=js\"\nexport * from \"./moderation_tools.js?vue&type=script&lang=js\"\n\nimport \"./moderation_tools.vue?vue&type=style&index=0&id=0ae1f97e&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { mapState } from 'vuex'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisV\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisV\n)\n\nconst AccountActions = {\n props: [\n 'user', 'relationship'\n ],\n data () {\n return { }\n },\n components: {\n ProgressButton,\n Popover\n },\n methods: {\n showRepeats () {\n this.$store.dispatch('showReblogs', this.user.id)\n },\n hideRepeats () {\n this.$store.dispatch('hideReblogs', this.user.id)\n },\n blockUser () {\n this.$store.dispatch('blockUser', this.user.id)\n },\n unblockUser () {\n this.$store.dispatch('unblockUser', this.user.id)\n },\n reportUser () {\n this.$store.dispatch('openUserReportingModal', { userId: this.user.id })\n },\n openChat () {\n this.$router.push({\n name: 'chat',\n params: { username: this.$store.state.users.currentUser.screen_name, recipient_id: this.user.id }\n })\n }\n },\n computed: {\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable\n })\n }\n}\n\nexport default AccountActions\n","import { render } from \"./account_actions.vue?vue&type=template&id=cbff36f6\"\nimport script from \"./account_actions.js?vue&type=script&lang=js\"\nexport * from \"./account_actions.js?vue&type=script&lang=js\"\n\nimport \"./account_actions.vue?vue&type=style&index=0&id=cbff36f6&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\nimport ModerationTools from '../moderation_tools/moderation_tools.vue'\nimport AccountActions from '../account_actions/account_actions.vue'\nimport Select from '../select/select.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBell,\n faRss,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRss,\n faBell,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit\n)\n\nexport default {\n props: [\n 'userId', 'switcher', 'selected', 'hideBio', 'rounded', 'bordered', 'allowZoomingAvatar'\n ],\n data () {\n return {\n followRequestInProgress: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter\n }\n },\n created () {\n this.$store.dispatch('fetchUserRelationship', this.user.id)\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n classes () {\n return [{\n 'user-card-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius\n 'user-card-rounded': this.rounded === true, // set border-radius for all sides\n 'user-card-bordered': this.bordered === true // set border for all sides\n }]\n },\n style () {\n return {\n backgroundImage: [\n `linear-gradient(to bottom, var(--profileTint), var(--profileTint))`,\n `url(${this.user.cover_photo})`\n ].join(', ')\n }\n },\n isOtherUser () {\n return this.user.id !== this.$store.state.users.currentUser.id\n },\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n dailyAvg () {\n const days = Math.ceil((new Date() - new Date(this.user.created_at)) / (60 * 60 * 24 * 1000))\n return Math.round(this.user.statuses_count / days)\n },\n userHighlightType: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return (data && data.type) || 'disabled'\n },\n set (type) {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n if (type !== 'disabled') {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: (data && data.color) || '#FFFFFF', type })\n } else {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: undefined })\n }\n },\n ...mapGetters(['mergedConfig'])\n },\n userHighlightColor: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return data && data.color\n },\n set (color) {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color })\n }\n },\n visibleRole () {\n const rights = this.user.rights\n if (!rights) { return }\n const validRole = rights.admin || rights.moderator\n const roleTitle = rights.admin ? 'admin' : 'moderator'\n return validRole && roleTitle\n },\n hideFollowsCount () {\n return this.isOtherUser && this.user.hide_follows_count\n },\n hideFollowersCount () {\n return this.isOtherUser && this.user.hide_followers_count\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n UserAvatar,\n RemoteFollow,\n ModerationTools,\n AccountActions,\n ProgressButton,\n FollowButton,\n Select,\n RichContent\n },\n methods: {\n refetchRelationship () {\n return this.$store.dispatch('fetchUserRelationship', this.user.id)\n },\n muteUser () {\n this.$store.dispatch('muteUser', this.user.id)\n },\n unmuteUser () {\n this.$store.dispatch('unmuteUser', this.user.id)\n },\n muteDomain () {\n this.$store.dispatch('muteDomain', this.user.screen_name.split('@')[1])\n .then(() => this.refetchRelationship())\n },\n unmuteDomain () {\n this.$store.dispatch('unmuteDomain', this.user.screen_name.split('@')[1])\n .then(() => this.refetchRelationship())\n },\n subscribeUser () {\n return this.$store.dispatch('subscribeUser', this.user.id)\n },\n unsubscribeUser () {\n return this.$store.dispatch('unsubscribeUser', this.user.id)\n },\n setProfileView (v) {\n if (this.switcher) {\n const store = this.$store\n store.commit('setProfileView', { v })\n }\n },\n linkClicked ({ target }) {\n if (target.tagName === 'SPAN') {\n target = target.parentNode\n }\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n zoomAvatar () {\n const attachment = {\n url: this.user.profile_image_url_original,\n mimetype: 'image'\n }\n this.$store.dispatch('setMedia', [attachment])\n this.$store.dispatch('setCurrentMedia', attachment)\n },\n mentionUser () {\n this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n }\n }\n}\n","import { render } from \"./user_card.vue?vue&type=template&id=3cf2819d\"\nimport script from \"./user_card.js?vue&type=script&lang=js\"\nexport * from \"./user_card.js?vue&type=script&lang=js\"\n\nimport \"./user_card.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { invertLightness, brightness } from 'chromatism'\nimport { alphaBlend, mixrgb } from '../color_convert/color_convert.js'\n/* This is a definition of all layer combinations\n * each key is a topmost layer, each value represents layer underneath\n * this is essentially a simplified tree\n */\nexport const LAYERS = {\n undelay: null, // root\n topBar: null, // no transparency support\n badge: null, // no transparency support\n profileTint: null, // doesn't matter\n fg: null,\n bg: 'underlay',\n highlight: 'bg',\n panel: 'bg',\n popover: 'bg',\n selectedMenu: 'popover',\n btn: 'bg',\n btnPanel: 'panel',\n btnTopBar: 'topBar',\n input: 'bg',\n inputPanel: 'panel',\n inputTopBar: 'topBar',\n alert: 'bg',\n alertPanel: 'panel',\n poll: 'bg',\n chatBg: 'underlay',\n chatMessage: 'chatBg'\n}\n\n/* By default opacity slots have 1 as default opacity\n * this allows redefining it to something else\n */\nexport const DEFAULT_OPACITY = {\n profileTint: 0.5,\n alert: 0.5,\n input: 0.5,\n faint: 0.5,\n underlay: 0.15,\n alertPopup: 0.95\n}\n\n/** SUBJECT TO CHANGE IN THE FUTURE, this is all beta\n * Color and opacity slots definitions. Each key represents a slot.\n *\n * Short-hands:\n * String beginning with `--` - value after dashes treated as sole\n * dependency - i.e. `--value` equivalent to { depends: ['value']}\n * String beginning with `#` - value would be treated as solid color\n * defined in hexadecimal representation (i.e. #FFFFFF) and will be\n * used as default. `#FFFFFF` is equivalent to { default: '#FFFFFF'}\n *\n * Full definition:\n * @property {String[]} depends - color slot names this color depends ones.\n * cyclic dependencies are supported to some extent but not recommended.\n * @property {String} [opacity] - opacity slot used by this color slot.\n * opacity is inherited from parents. To break inheritance graph use null\n * @property {Number} [priority] - EXPERIMENTAL. used to pre-sort slots so\n * that slots with higher priority come earlier\n * @property {Function(mod, ...colors)} [color] - function that will be\n * used to determine the color. By default it just copies first color in\n * dependency list.\n * @argument {Number} mod - `1` (light-on-dark) or `-1` (dark-on-light)\n * depending on background color (for textColor)/given color.\n * @argument {...Object} deps - each argument after mod represents each\n * color from `depends` array. All colors take user customizations into\n * account and represented by { r, g, b } objects.\n * @returns {Object} resulting color, should be in { r, g, b } form\n *\n * @property {Boolean|String} [textColor] - true to mark color slot as text\n * color. This enables automatic text color generation for the slot. Use\n * 'preserve' string if you don't want text color to fall back to\n * black/white. Use 'bw' to only ever use black or white. This also makes\n * following properties required:\n * @property {String} [layer] - which layer the text sit on top on - used\n * to account for transparency in text color calculation\n * layer is inherited from parents. To break inheritance graph use null\n * @property {String} [variant] - which color slot is background (same as\n * above, used to account for transparency)\n */\nexport const SLOT_INHERITANCE = {\n bg: {\n depends: [],\n opacity: 'bg',\n priority: 1\n },\n wallpaper: {\n depends: ['bg'],\n color: (mod, bg) => brightness(-2 * mod, bg).rgb\n },\n fg: {\n depends: [],\n priority: 1\n },\n text: {\n depends: [],\n layer: 'bg',\n opacity: null,\n priority: 1\n },\n underlay: {\n default: '#000000',\n opacity: 'underlay'\n },\n link: {\n depends: ['accent'],\n priority: 1\n },\n accent: {\n depends: ['link'],\n priority: 1\n },\n faint: {\n depends: ['text'],\n opacity: 'faint'\n },\n faintLink: {\n depends: ['link'],\n opacity: 'faint'\n },\n postFaintLink: {\n depends: ['postLink'],\n opacity: 'faint'\n },\n\n cBlue: '#0000ff',\n cRed: '#FF0000',\n cGreen: '#00FF00',\n cOrange: '#E3FF00',\n\n profileBg: {\n depends: ['bg'],\n color: (mod, bg) => ({\n r: Math.floor(bg.r * 0.53),\n g: Math.floor(bg.g * 0.56),\n b: Math.floor(bg.b * 0.59)\n })\n },\n profileTint: {\n depends: ['bg'],\n layer: 'profileTint',\n opacity: 'profileTint'\n },\n\n highlight: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n highlightLightText: {\n depends: ['lightText'],\n layer: 'highlight',\n textColor: true\n },\n highlightPostLink: {\n depends: ['postLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightFaintText: {\n depends: ['faint'],\n layer: 'highlight',\n textColor: true\n },\n highlightFaintLink: {\n depends: ['faintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightText: {\n depends: ['text'],\n layer: 'highlight',\n textColor: true\n },\n highlightLink: {\n depends: ['link'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightIcon: {\n depends: ['highlight', 'highlightText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n popover: {\n depends: ['bg'],\n opacity: 'popover'\n },\n popoverLightText: {\n depends: ['lightText'],\n layer: 'popover',\n textColor: true\n },\n popoverPostLink: {\n depends: ['postLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverFaintText: {\n depends: ['faint'],\n layer: 'popover',\n textColor: true\n },\n popoverFaintLink: {\n depends: ['faintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverText: {\n depends: ['text'],\n layer: 'popover',\n textColor: true\n },\n popoverLink: {\n depends: ['link'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverIcon: {\n depends: ['popover', 'popoverText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedPost: '--highlight',\n selectedPostFaintText: {\n depends: ['highlightFaintText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLightText: {\n depends: ['highlightLightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostPostLink: {\n depends: ['highlightPostLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostText: {\n depends: ['highlightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLink: {\n depends: ['highlightLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostIcon: {\n depends: ['selectedPost', 'selectedPostText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenu: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuLightText: {\n depends: ['highlightLightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintText: {\n depends: ['highlightFaintText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuText: {\n depends: ['highlightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuLink: {\n depends: ['highlightLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuIcon: {\n depends: ['selectedMenu', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenuPopover: {\n depends: ['popover'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuPopoverLightText: {\n depends: ['selectedMenuLightText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintText: {\n depends: ['selectedMenuFaintText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintLink: {\n depends: ['selectedMenuFaintLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverText: {\n depends: ['selectedMenuText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverLink: {\n depends: ['selectedMenuLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverIcon: {\n depends: ['selectedMenuPopover', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n lightText: {\n depends: ['text'],\n layer: 'bg',\n textColor: 'preserve',\n color: (mod, text) => brightness(20 * mod, text).rgb\n },\n\n postLink: {\n depends: ['link'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postGreentext: {\n depends: ['cGreen'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postCyantext: {\n depends: ['cBlue'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n border: {\n depends: ['fg'],\n opacity: 'border',\n color: (mod, fg) => brightness(2 * mod, fg).rgb\n },\n\n poll: {\n depends: ['accent', 'bg'],\n copacity: 'poll',\n color: (mod, accent, bg) => alphaBlend(accent, 0.4, bg)\n },\n pollText: {\n depends: ['text'],\n layer: 'poll',\n textColor: true\n },\n\n icon: {\n depends: ['bg', 'text'],\n inheritsOpacity: false,\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n // Foreground\n fgText: {\n depends: ['text'],\n layer: 'fg',\n textColor: true\n },\n fgLink: {\n depends: ['link'],\n layer: 'fg',\n textColor: 'preserve'\n },\n\n // Panel header\n panel: {\n depends: ['fg'],\n opacity: 'panel'\n },\n panelText: {\n depends: ['text'],\n layer: 'panel',\n textColor: true\n },\n panelFaint: {\n depends: ['fgText'],\n layer: 'panel',\n opacity: 'faint',\n textColor: true\n },\n panelLink: {\n depends: ['fgLink'],\n layer: 'panel',\n textColor: 'preserve'\n },\n\n // Top bar\n topBar: '--fg',\n topBarText: {\n depends: ['fgText'],\n layer: 'topBar',\n textColor: true\n },\n topBarLink: {\n depends: ['fgLink'],\n layer: 'topBar',\n textColor: 'preserve'\n },\n\n // Tabs\n tab: {\n depends: ['btn']\n },\n tabText: {\n depends: ['btnText'],\n layer: 'btn',\n textColor: true\n },\n tabActiveText: {\n depends: ['text'],\n layer: 'bg',\n textColor: true\n },\n\n // Buttons\n btn: {\n depends: ['fg'],\n variant: 'btn',\n opacity: 'btn'\n },\n btnText: {\n depends: ['fgText'],\n layer: 'btn',\n textColor: true\n },\n btnPanelText: {\n depends: ['btnText'],\n layer: 'btnPanel',\n variant: 'btn',\n textColor: true\n },\n btnTopBarText: {\n depends: ['btnText'],\n layer: 'btnTopBar',\n variant: 'btn',\n textColor: true\n },\n\n // Buttons: pressed\n btnPressed: {\n depends: ['btn'],\n layer: 'btn'\n },\n btnPressedText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedPanel: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedTopBar: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnPressed',\n textColor: true\n },\n\n // Buttons: toggled\n btnToggled: {\n depends: ['btn'],\n layer: 'btn',\n color: (mod, btn) => brightness(mod * 20, btn).rgb\n },\n btnToggledText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnToggled',\n textColor: true\n },\n\n // Buttons: disabled\n btnDisabled: {\n depends: ['btn', 'bg'],\n color: (mod, btn, bg) => alphaBlend(btn, 0.25, bg)\n },\n btnDisabledText: {\n depends: ['btnText', 'btnDisabled'],\n layer: 'btn',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledPanelText: {\n depends: ['btnPanelText', 'btnDisabled'],\n layer: 'btnPanel',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledTopBarText: {\n depends: ['btnTopBarText', 'btnDisabled'],\n layer: 'btnTopBar',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n\n // Input fields\n input: {\n depends: ['fg'],\n opacity: 'input'\n },\n inputText: {\n depends: ['text'],\n layer: 'input',\n textColor: true\n },\n inputPanelText: {\n depends: ['panelText'],\n layer: 'inputPanel',\n variant: 'input',\n textColor: true\n },\n inputTopbarText: {\n depends: ['topBarText'],\n layer: 'inputTopBar',\n variant: 'input',\n textColor: true\n },\n\n alertError: {\n depends: ['cRed'],\n opacity: 'alert'\n },\n alertErrorText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertError',\n textColor: true\n },\n alertErrorPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertError',\n textColor: true\n },\n\n alertWarning: {\n depends: ['cOrange'],\n opacity: 'alert'\n },\n alertWarningText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertWarning',\n textColor: true\n },\n alertWarningPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertWarning',\n textColor: true\n },\n\n alertSuccess: {\n depends: ['cGreen'],\n opacity: 'alert'\n },\n alertSuccessText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertSuccess',\n textColor: true\n },\n alertSuccessPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertSuccess',\n textColor: true\n },\n\n alertNeutral: {\n depends: ['text'],\n opacity: 'alert'\n },\n alertNeutralText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertNeutral',\n color: (mod, text) => invertLightness(text).rgb,\n textColor: true\n },\n alertNeutralPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertNeutral',\n textColor: true\n },\n\n alertPopupError: {\n depends: ['alertError'],\n opacity: 'alertPopup'\n },\n alertPopupErrorText: {\n depends: ['alertErrorText'],\n layer: 'popover',\n variant: 'alertPopupError',\n textColor: true\n },\n\n alertPopupWarning: {\n depends: ['alertWarning'],\n opacity: 'alertPopup'\n },\n alertPopupWarningText: {\n depends: ['alertWarningText'],\n layer: 'popover',\n variant: 'alertPopupWarning',\n textColor: true\n },\n\n alertPopupSuccess: {\n depends: ['alertSuccess'],\n opacity: 'alertPopup'\n },\n alertPopupSuccessText: {\n depends: ['alertSuccessText'],\n layer: 'popover',\n variant: 'alertPopupSuccess',\n textColor: true\n },\n\n alertPopupNeutral: {\n depends: ['alertNeutral'],\n opacity: 'alertPopup'\n },\n alertPopupNeutralText: {\n depends: ['alertNeutralText'],\n layer: 'popover',\n variant: 'alertPopupNeutral',\n textColor: true\n },\n\n badgeNotification: '--cRed',\n badgeNotificationText: {\n depends: ['text', 'badgeNotification'],\n layer: 'badge',\n variant: 'badgeNotification',\n textColor: 'bw'\n },\n\n chatBg: {\n depends: ['bg']\n },\n\n chatMessageIncomingBg: {\n depends: ['chatBg']\n },\n\n chatMessageIncomingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: true\n },\n\n chatMessageIncomingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: 'preserve'\n },\n\n chatMessageIncomingBorder: {\n depends: ['border'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n },\n\n chatMessageOutgoingBg: {\n depends: ['chatMessageIncomingBg'],\n color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb\n },\n\n chatMessageOutgoingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: true\n },\n\n chatMessageOutgoingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: 'preserve'\n },\n\n chatMessageOutgoingBorder: {\n depends: ['chatMessageOutgoingBg'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n }\n}\n","import languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nconst specialLanguageCodes = {\n 'ja_easy': 'ja',\n 'zh_Hant': 'zh-HANT',\n 'zh': 'zh-Hans'\n}\n\nconst internalToBrowserLocale = code => specialLanguageCodes[code] || code\n\nconst internalToBackendLocale = code => internalToBrowserLocale(code).replace('_', '-')\n\nconst getLanguageName = (code) => {\n const specialLanguageNames = {\n 'ja_easy': 'やさしいにほんご',\n 'zh': '简体中文',\n 'zh_Hant': '繁體中文'\n }\n const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code)\n const browserLocale = internalToBrowserLocale(code)\n return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1)\n}\n\nconst languages = _.map(languagesObject.languages, (code) => ({ code: code, name: getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name))\n\nconst localeService = {\n internalToBrowserLocale,\n internalToBackendLocale,\n languages,\n getLanguageName\n}\n\nexport default localeService\n","import { hex2rgb } from '../color_convert/color_convert.js'\nconst highlightStyle = (prefs) => {\n if (prefs === undefined) return\n const { color, type } = prefs\n if (typeof color !== 'string') return\n const rgb = hex2rgb(color)\n if (rgb == null) return\n const solidColor = `rgb(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)})`\n const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .1)`\n const tintColor2 = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .2)`\n const customProps = {\n '--____highlight-solidColor': solidColor,\n '--____highlight-tintColor': tintColor,\n '--____highlight-tintColor2': tintColor2\n }\n if (type === 'striped') {\n return {\n backgroundImage: [\n 'repeating-linear-gradient(135deg,',\n `${tintColor} ,`,\n `${tintColor} 20px,`,\n `${tintColor2} 20px,`,\n `${tintColor2} 40px`\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n } else if (type === 'solid') {\n return {\n backgroundColor: tintColor2,\n ...customProps\n }\n } else if (type === 'side') {\n return {\n backgroundImage: [\n 'linear-gradient(to right,',\n `${solidColor} ,`,\n `${solidColor} 2px,`,\n `transparent 6px`\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n }\n}\n\nconst highlightClass = (user) => {\n return 'USER____' + user.screen_name\n .replace(/\\./g, '_')\n .replace(/@/g, '_AT_')\n}\n\nexport {\n highlightClass,\n highlightStyle\n}\n","import { convert } from 'chromatism'\nimport { rgb2hex, hex2rgb, rgba2css, getCssColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { getColors, computeDynamicColor, getOpacitySlot } from '../theme_data/theme_data.service.js'\n\nexport const applyTheme = (input) => {\n const { rules } = generatePreset(input)\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules.radii} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.colors} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.shadows} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.fonts} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nexport const getCssShadow = (input, usesDropShadow) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n .filter(_ => usesDropShadow ? _.inset : _)\n .map((shad) => [\n shad.x,\n shad.y,\n shad.blur,\n shad.spread\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha),\n shad.inset ? 'inset' : ''\n ]).join(' ')).join(', ')\n}\n\nconst getCssShadowFilter = (input) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n // drop-shadow doesn't support inset or spread\n .filter((shad) => !shad.inset && Number(shad.spread) === 0)\n .map((shad) => [\n shad.x,\n shad.y,\n // drop-shadow's blur is twice as strong compared to box-shadow\n shad.blur / 2\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha)\n ]).join(' '))\n .map(_ => `drop-shadow(${_})`)\n .join(' ')\n}\n\nexport const generateColors = (themeData) => {\n const sourceColors = !themeData.themeEngineVersion\n ? colors2to3(themeData.colors || themeData)\n : themeData.colors || themeData\n\n const { colors, opacity } = getColors(sourceColors, themeData.opacity || {})\n\n const htmlColors = Object.entries(colors)\n .reduce((acc, [k, v]) => {\n if (!v) return acc\n acc.solid[k] = rgb2hex(v)\n acc.complete[k] = typeof v.a === 'undefined' ? rgb2hex(v) : rgba2css(v)\n return acc\n }, { complete: {}, solid: {} })\n return {\n rules: {\n colors: Object.entries(htmlColors.complete)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`)\n .join(';')\n },\n theme: {\n colors: htmlColors.solid,\n opacity\n }\n }\n}\n\nexport const generateRadii = (input) => {\n let inputRadii = input.radii || {}\n // v1 -> v2\n if (typeof input.btnRadius !== 'undefined') {\n inputRadii = Object\n .entries(input)\n .filter(([k, v]) => k.endsWith('Radius'))\n .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {})\n }\n const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {\n btn: 4,\n input: 4,\n checkbox: 2,\n panel: 10,\n avatar: 5,\n avatarAlt: 50,\n tooltip: 2,\n attachment: 5,\n chatMessage: inputRadii.panel\n })\n\n return {\n rules: {\n radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';')\n },\n theme: {\n radii\n }\n }\n}\n\nexport const generateFonts = (input) => {\n const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, acc[k])\n return acc\n }, {\n interface: {\n family: 'sans-serif'\n },\n input: {\n family: 'inherit'\n },\n post: {\n family: 'inherit'\n },\n postCode: {\n family: 'monospace'\n }\n })\n\n return {\n rules: {\n fonts: Object\n .entries(fonts)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')\n },\n theme: {\n fonts\n }\n }\n}\n\nconst border = (top, shadow) => ({\n x: 0,\n y: top ? 1 : -1,\n blur: 0,\n spread: 0,\n color: shadow ? '#000000' : '#FFFFFF',\n alpha: 0.2,\n inset: true\n})\nconst buttonInsetFakeBorders = [border(true, false), border(false, true)]\nconst inputInsetFakeBorders = [border(true, true), border(false, false)]\nconst hoverGlow = {\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '--faint',\n alpha: 1\n}\n\nexport const DEFAULT_SHADOWS = {\n panel: [{\n x: 1,\n y: 1,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n topBar: [{\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n popup: [{\n x: 2,\n y: 2,\n blur: 3,\n spread: 0,\n color: '#000000',\n alpha: 0.5\n }],\n avatar: [{\n x: 0,\n y: 1,\n blur: 8,\n spread: 0,\n color: '#000000',\n alpha: 0.7\n }],\n avatarStatus: [],\n panelHeader: [],\n button: [{\n x: 0,\n y: 0,\n blur: 2,\n spread: 0,\n color: '#000000',\n alpha: 1\n }, ...buttonInsetFakeBorders],\n buttonHover: [hoverGlow, ...buttonInsetFakeBorders],\n buttonPressed: [hoverGlow, ...inputInsetFakeBorders],\n input: [...inputInsetFakeBorders, {\n x: 0,\n y: 0,\n blur: 2,\n inset: true,\n spread: 0,\n color: '#000000',\n alpha: 1\n }]\n}\nexport const generateShadows = (input, colors) => {\n // TODO this is a small hack for `mod` to work with shadows\n // this is used to get the \"context\" of shadow, i.e. for `mod` properly depend on background color of element\n const hackContextDict = {\n button: 'btn',\n panel: 'bg',\n top: 'topBar',\n popup: 'popover',\n avatar: 'bg',\n panelHeader: 'panel',\n input: 'input'\n }\n\n const cleanInputShadows = Object.fromEntries(\n Object.entries(input.shadows || {})\n .map(([name, shadowSlot]) => [\n name,\n // defaulting color to black to avoid potential problems\n shadowSlot.map(shadowDef => ({ color: '#000000', ...shadowDef }))\n ])\n )\n const inputShadows = cleanInputShadows && !input.themeEngineVersion\n ? shadows2to3(cleanInputShadows, input.opacity)\n : cleanInputShadows || {}\n const shadows = Object.entries({\n ...DEFAULT_SHADOWS,\n ...inputShadows\n }).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const slotFirstWord = slotName.replace(/[A-Z].*$/, '')\n const colorSlotName = hackContextDict[slotFirstWord]\n const isLightOnDark = relativeLuminance(convert(colors[colorSlotName]).rgb) < 0.5\n const mod = isLightOnDark ? 1 : -1\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n color: rgb2hex(computeDynamicColor(\n def.color,\n (variableSlot) => convert(colors[variableSlot]).rgb,\n mod\n ))\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n\n return {\n rules: {\n shadows: Object\n .entries(shadows)\n // TODO for v2.2: if shadow doesn't have non-inset shadows with spread > 0 - optionally\n // convert all non-inset shadows into filter: drop-shadow() to boost performance\n .map(([k, v]) => [\n `--${k}Shadow: ${getCssShadow(v)}`,\n `--${k}ShadowFilter: ${getCssShadowFilter(v)}`,\n `--${k}ShadowInset: ${getCssShadow(v, true)}`\n ].join(';'))\n .join(';')\n },\n theme: {\n shadows\n }\n }\n}\n\nexport const composePreset = (colors, radii, shadows, fonts) => {\n return {\n rules: {\n ...shadows.rules,\n ...colors.rules,\n ...radii.rules,\n ...fonts.rules\n },\n theme: {\n ...shadows.theme,\n ...colors.theme,\n ...radii.theme,\n ...fonts.theme\n }\n }\n}\n\nexport const generatePreset = (input) => {\n const colors = generateColors(input)\n return composePreset(\n colors,\n generateRadii(input),\n generateShadows(input, colors.theme.colors, colors.mod),\n generateFonts(input)\n )\n}\n\nexport const getThemes = () => {\n const cache = 'no-store'\n\n return window.fetch('/static/styles.json', { cache })\n .then((data) => data.json())\n .then((themes) => {\n return Object.entries(themes).map(([k, v]) => {\n let promise = null\n if (typeof v === 'object') {\n promise = Promise.resolve(v)\n } else if (typeof v === 'string') {\n promise = window.fetch(v, { cache })\n .then((data) => data.json())\n .catch((e) => {\n console.error(e)\n return null\n })\n }\n return [k, promise]\n })\n })\n .then((promises) => {\n return promises\n .reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {})\n })\n}\nexport const colors2to3 = (colors) => {\n return Object.entries(colors).reduce((acc, [slotName, color]) => {\n const btnPositions = ['', 'Panel', 'TopBar']\n switch (slotName) {\n case 'lightBg':\n return { ...acc, highlight: color }\n case 'btnText':\n return {\n ...acc,\n ...btnPositions\n .reduce(\n (statePositionAcc, position) =>\n ({ ...statePositionAcc, ['btn' + position + 'Text']: color })\n , {}\n )\n }\n default:\n return { ...acc, [slotName]: color }\n }\n }, {})\n}\n\n/**\n * This handles compatibility issues when importing v2 theme's shadows to current format\n *\n * Back in v2 shadows allowed you to use dynamic colors however those used pure CSS3 variables\n */\nexport const shadows2to3 = (shadows, opacity) => {\n return Object.entries(shadows).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const isDynamic = ({ color = '#000000' }) => color.startsWith('--')\n const getOpacity = ({ color }) => opacity[getOpacitySlot(color.substring(2).split(',')[0])]\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n alpha: isDynamic(def) ? getOpacity(def) || 1 : def.alpha\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n}\n\nexport const getPreset = (val) => {\n return getThemes()\n .then((themes) => themes[val] ? themes[val] : themes['pleroma-dark'])\n .then((theme) => {\n const isV1 = Array.isArray(theme)\n const data = isV1 ? {} : theme.theme\n\n if (isV1) {\n const bg = hex2rgb(theme[1])\n const fg = hex2rgb(theme[2])\n const text = hex2rgb(theme[3])\n const link = hex2rgb(theme[4])\n\n const cRed = hex2rgb(theme[5] || '#FF0000')\n const cGreen = hex2rgb(theme[6] || '#00FF00')\n const cBlue = hex2rgb(theme[7] || '#0000FF')\n const cOrange = hex2rgb(theme[8] || '#E3FF00')\n\n data.colors = { bg, fg, text, link, cRed, cBlue, cGreen, cOrange }\n }\n\n return { theme: data, source: theme.source }\n })\n}\n\nexport const setPreset = (val) => getPreset(val).then(data => applyTheme(data.theme))\n","\n// promiseInterval - replacement for setInterval for promises, starts counting\n// the interval only after a promise is done instead of immediately.\n// - promiseCall is a function that returns a promise, it's called the first\n// time after the first interval.\n// - interval is the interval delay in ms.\n\nexport const promiseInterval = (promiseCall, interval) => {\n let stopped = false\n let timeout = null\n\n const func = () => {\n const promise = promiseCall()\n // something unexpected happened and promiseCall did not\n // return a promise, abort the loop.\n if (!(promise && promise.finally)) {\n console.warn('promiseInterval: promise call did not return a promise, stopping interval.')\n return\n }\n promise.finally(() => {\n if (stopped) return\n timeout = window.setTimeout(func, interval)\n })\n }\n\n const stopFetcher = () => {\n stopped = true\n window.clearTimeout(timeout)\n }\n\n timeout = window.setTimeout(func, interval)\n\n return { stop: stopFetcher }\n}\n","\n\n\n\n","\n\n\n\n\n","import Timeago from 'components/timeago/timeago.vue'\nimport RichContent from 'components/rich_content/rich_content.jsx'\nimport { forEach, map } from 'lodash'\n\nexport default {\n name: 'Poll',\n props: ['basePoll', 'emoji'],\n components: {\n Timeago,\n RichContent\n },\n data () {\n return {\n loading: false,\n choices: []\n }\n },\n created () {\n if (!this.$store.state.polls.pollsObject[this.pollId]) {\n this.$store.dispatch('mergeOrAddPoll', this.basePoll)\n }\n this.$store.dispatch('trackPoll', this.pollId)\n },\n unmounted () {\n this.$store.dispatch('untrackPoll', this.pollId)\n },\n computed: {\n pollId () {\n return this.basePoll.id\n },\n poll () {\n const storePoll = this.$store.state.polls.pollsObject[this.pollId]\n return storePoll || {}\n },\n options () {\n return (this.poll && this.poll.options) || []\n },\n expiresAt () {\n return (this.poll && this.poll.expires_at) || 0\n },\n expired () {\n return (this.poll && this.poll.expired) || false\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n showResults () {\n return this.poll.voted || this.expired || !this.loggedIn\n },\n totalVotesCount () {\n return this.poll.votes_count\n },\n containerClass () {\n return {\n loading: this.loading\n }\n },\n choiceIndices () {\n // Convert array of booleans into an array of indices of the\n // items that were 'true', so [true, false, false, true] becomes\n // [0, 3].\n return this.choices\n .map((entry, index) => entry && index)\n .filter(value => typeof value === 'number')\n },\n isDisabled () {\n const noChoice = this.choiceIndices.length === 0\n return this.loading || noChoice\n }\n },\n methods: {\n percentageForOption (count) {\n return this.totalVotesCount === 0 ? 0 : Math.round(count / this.totalVotesCount * 100)\n },\n resultTitle (option) {\n return `${option.votes_count}/${this.totalVotesCount} ${this.$t('polls.votes')}`\n },\n fetchPoll () {\n this.$store.dispatch('refreshPoll', { id: this.statusId, pollId: this.poll.id })\n },\n activateOption (index) {\n // forgive me father: doing checking the radio/checkboxes\n // in code because of customized input elements need either\n // a) an extra element for the actual graphic, or b) use a\n // pseudo element for the label. We use b) which mandates\n // using \"for\" and \"id\" matching which isn't nice when the\n // same poll appears multiple times on the site (notifs and\n // timeline for example). With code we can make sure it just\n // works without altering the pseudo element implementation.\n const allElements = this.$el.querySelectorAll('input')\n const clickedElement = this.$el.querySelector(`input[value=\"${index}\"]`)\n if (this.poll.multiple) {\n // Checkboxes, toggle only the clicked one\n clickedElement.checked = !clickedElement.checked\n } else {\n // Radio button, uncheck everything and check the clicked one\n forEach(allElements, element => { element.checked = false })\n clickedElement.checked = true\n }\n this.choices = map(allElements, e => e.checked)\n },\n optionId (index) {\n return `poll${this.poll.id}-${index}`\n },\n vote () {\n if (this.choiceIndices.length === 0) return\n this.loading = true\n this.$store.dispatch(\n 'votePoll',\n { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices }\n ).then(poll => {\n this.loading = false\n })\n }\n }\n}\n","import { render } from \"./poll.vue?vue&type=template&id=5e9dea28\"\nimport script from \"./poll.js?vue&type=script&lang=js\"\nexport * from \"./poll.js?vue&type=script&lang=js\"\n\nimport \"./poll.vue?vue&type=style&index=0&id=5e9dea28&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","const StillImage = {\n props: [\n 'src',\n 'referrerpolicy',\n 'mimetype',\n 'imageLoadError',\n 'imageLoadHandler',\n 'alt',\n 'height',\n 'width'\n ],\n data () {\n return {\n stopGifs: this.$store.getters.mergedConfig.stopGifs\n }\n },\n computed: {\n animated () {\n return this.stopGifs && (this.mimetype === 'image/gif' || this.src.endsWith('.gif'))\n },\n style () {\n const appendPx = (str) => /\\d$/.test(str) ? str + 'px' : str\n return {\n height: this.height ? appendPx(this.height) : null,\n width: this.width ? appendPx(this.width) : null\n }\n }\n },\n methods: {\n onLoad () {\n const image = this.$refs.src\n if (!image) return\n this.imageLoadHandler && this.imageLoadHandler(image)\n const canvas = this.$refs.canvas\n if (!canvas) return\n const width = image.naturalWidth\n const height = image.naturalHeight\n canvas.width = width\n canvas.height = height\n canvas.getContext('2d').drawImage(image, 0, 0, width, height)\n },\n onError () {\n this.imageLoadError && this.imageLoadError()\n }\n }\n}\n\nexport default StillImage\n","import { render } from \"./still-image.vue?vue&type=template&id=4da90e4a\"\nimport script from \"./still-image.js?vue&type=script&lang=js\"\nexport * from \"./still-image.js?vue&type=script&lang=js\"\n\nimport \"./still-image.vue?vue&type=style&index=0&id=4da90e4a&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./checkbox.vue?vue&type=template&id=deb5bfe6\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=deb5bfe6&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown\n)\n\nexport default {\n emits: ['update:modelValue'],\n props: [\n 'modelValue',\n 'disabled',\n 'unstyled',\n 'kind'\n ]\n}\n","import { render } from \"./select.vue?vue&type=template&id=099d3e32\"\nimport script from \"./select.js?vue&type=script&lang=js\"\nexport * from \"./select.js?vue&type=script&lang=js\"\n\nimport \"./select.vue?vue&type=style&index=0&id=099d3e32&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import UserCard from '../user_card/user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst BasicUserCard = {\n props: [\n 'user'\n ],\n data () {\n return {\n userExpanded: false\n }\n },\n components: {\n UserCard,\n UserAvatar,\n RichContent\n },\n methods: {\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default BasicUserCard\n","import { render } from \"./basic_user_card.vue?vue&type=template&id=dd332bac\"\nimport script from \"./basic_user_card.js?vue&type=script&lang=js\"\nexport * from \"./basic_user_card.js?vue&type=script&lang=js\"\n\nimport \"./basic_user_card.vue?vue&type=style&index=0&id=dd332bac&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { convert, brightness, contrastRatio } from 'chromatism'\nimport { alphaBlendLayers, getTextColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { LAYERS, DEFAULT_OPACITY, SLOT_INHERITANCE } from './pleromafe.js'\n\n/*\n * # What's all this?\n * Here be theme engine for pleromafe. All of this supposed to ease look\n * and feel customization, making widget styles and make developer's life\n * easier when it comes to supporting themes. Like many other theme systems\n * it operates on color definitions, or \"slots\" - for example you define\n * \"button\" color slot and then in UI component Button's CSS you refer to\n * it as a CSS3 Variable.\n *\n * Some applications allow you to customize colors for certain things.\n * Some UI toolkits allow you to define colors for each type of widget.\n * Most of them are pretty barebones and have no assistance for common\n * problems and cases, and in general themes themselves are very hard to\n * maintain in all aspects. This theme engine tries to solve all of the\n * common problems with themes.\n *\n * You don't have redefine several similar colors if you just want to\n * change one color - all color slots are derived from other ones, so you\n * can have at least one or two \"basic\" colors defined and have all other\n * components inherit and modify basic ones.\n *\n * You don't have to test contrast ratio for colors or pick text color for\n * each element even if you have light-on-dark elements in dark-on-light\n * theme.\n *\n * You don't have to maintain order of code for inheriting slots from othet\n * slots - dependency graph resolving does it for you.\n */\n\n/* This indicates that this version of code outputs similar theme data and\n * should be incremented if output changes - for instance if getTextColor\n * function changes and older themes no longer render text colors as\n * author intended previously.\n */\nexport const CURRENT_VERSION = 3\n\nexport const getLayersArray = (layer, data = LAYERS) => {\n let array = [layer]\n let parent = data[layer]\n while (parent) {\n array.unshift(parent)\n parent = data[parent]\n }\n return array\n}\n\nexport const getLayers = (layer, variant = layer, opacitySlot, colors, opacity) => {\n return getLayersArray(layer).map((currentLayer) => ([\n currentLayer === layer\n ? colors[variant]\n : colors[currentLayer],\n currentLayer === layer\n ? opacity[opacitySlot] || 1\n : opacity[currentLayer]\n ]))\n}\n\nconst getDependencies = (key, inheritance) => {\n const data = inheritance[key]\n if (typeof data === 'string' && data.startsWith('--')) {\n return [data.substring(2)]\n } else {\n if (data === null) return []\n const { depends, layer, variant } = data\n const layerDeps = layer\n ? getLayersArray(layer).map(currentLayer => {\n return currentLayer === layer\n ? variant || layer\n : currentLayer\n })\n : []\n if (Array.isArray(depends)) {\n return [...depends, ...layerDeps]\n } else {\n return [...layerDeps]\n }\n }\n}\n\n/**\n * Sorts inheritance object topologically - dependant slots come after\n * dependencies\n *\n * @property {Object} inheritance - object defining the nodes\n * @property {Function} getDeps - function that returns dependencies for\n * given value and inheritance object.\n * @returns {String[]} keys of inheritance object, sorted in topological\n * order. Additionally, dependency-less nodes will always be first in line\n */\nexport const topoSort = (\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n // This is an implementation of https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\n\n const allKeys = Object.keys(inheritance)\n const whites = new Set(allKeys)\n const grays = new Set()\n const blacks = new Set()\n const unprocessed = [...allKeys]\n const output = []\n\n const step = (node) => {\n if (whites.has(node)) {\n // Make node \"gray\"\n whites.delete(node)\n grays.add(node)\n // Do step for each node connected to it (one way)\n getDeps(node, inheritance).forEach(step)\n // Make node \"black\"\n grays.delete(node)\n blacks.add(node)\n // Put it into the output list\n output.push(node)\n } else if (grays.has(node)) {\n console.debug('Cyclic depenency in topoSort, ignoring')\n output.push(node)\n } else if (blacks.has(node)) {\n // do nothing\n } else {\n throw new Error('Unintended condition in topoSort!')\n }\n }\n while (unprocessed.length > 0) {\n step(unprocessed.pop())\n }\n\n // The index thing is to make sorting stable on browsers\n // where Array.sort() isn't stable\n return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => {\n const depsA = getDeps(a, inheritance).length\n const depsB = getDeps(b, inheritance).length\n\n if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi\n if (depsA === 0 && depsB !== 0) return -1\n if (depsB === 0 && depsA !== 0) return 1\n }).map(({ data }) => data)\n}\n\nconst expandSlotValue = (value) => {\n if (typeof value === 'object') return value\n return {\n depends: value.startsWith('--') ? [value.substring(2)] : [],\n default: value.startsWith('#') ? value : undefined\n }\n}\n/**\n * retrieves opacity slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * TODO refactor this\n */\nexport const getOpacitySlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (value.opacity === null) return\n if (value.opacity) return value.opacity\n const findInheritedOpacity = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.opacity || dependency === null) {\n return dependency.opacity\n } else if (dependency.depends && visited.includes(depSlot)) {\n return findInheritedOpacity(depSlot, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedOpacity(k)\n }\n}\n\n/**\n * retrieves layer slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * this is basically copypaste of getOpacitySlot except it checks if key is\n * in LAYERS\n * TODO refactor this\n */\nexport const getLayerSlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (LAYERS[k]) return k\n if (value.layer === null) return\n if (value.layer) return value.layer\n const findInheritedLayer = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.layer || dependency === null) {\n return dependency.layer\n } else if (dependency.depends) {\n return findInheritedLayer(dependency, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedLayer(k)\n }\n}\n\n/**\n * topologically sorted SLOT_INHERITANCE\n */\nexport const SLOT_ORDERED = topoSort(\n Object.entries(SLOT_INHERITANCE)\n .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0))\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n)\n\n/**\n * All opacity slots used in color slots, their default values and affected\n * color slots.\n */\nexport const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => {\n const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies)\n if (opacity) {\n return {\n ...acc,\n [opacity]: {\n defaultValue: DEFAULT_OPACITY[opacity] || 1,\n affectedSlots: [...((acc[opacity] && acc[opacity].affectedSlots) || []), k]\n }\n }\n } else {\n return acc\n }\n}, {})\n\n/**\n * Handle dynamic color\n */\nexport const computeDynamicColor = (sourceColor, getColor, mod) => {\n if (typeof sourceColor !== 'string' || !sourceColor.startsWith('--')) return sourceColor\n let targetColor = null\n // Color references other color\n const [variable, modifier] = sourceColor.split(/,/g).map(str => str.trim())\n const variableSlot = variable.substring(2)\n targetColor = getColor(variableSlot)\n if (modifier) {\n targetColor = brightness(Number.parseFloat(modifier) * mod, targetColor).rgb\n }\n return targetColor\n}\n\n/**\n * THE function you want to use. Takes provided colors and opacities\n * value and uses inheritance data to figure out color needed for the slot.\n */\nexport const getColors = (sourceColors, sourceOpacity) => SLOT_ORDERED.reduce(({ colors, opacity }, key) => {\n const sourceColor = sourceColors[key]\n const value = expandSlotValue(SLOT_INHERITANCE[key])\n const deps = getDependencies(key, SLOT_INHERITANCE)\n const isTextColor = !!value.textColor\n const variant = value.variant || value.layer\n\n let backgroundColor = null\n\n if (isTextColor) {\n backgroundColor = alphaBlendLayers(\n { ...(colors[deps[0]] || convert(sourceColors[key] || '#FF00FF').rgb) },\n getLayers(\n getLayerSlot(key) || 'bg',\n variant || 'bg',\n getOpacitySlot(variant),\n colors,\n opacity\n )\n )\n } else if (variant && variant !== key) {\n backgroundColor = colors[variant] || convert(sourceColors[variant]).rgb\n } else {\n backgroundColor = colors.bg || convert(sourceColors.bg)\n }\n\n const isLightOnDark = relativeLuminance(backgroundColor) < 0.5\n const mod = isLightOnDark ? 1 : -1\n\n let outputColor = null\n if (sourceColor) {\n // Color is defined in source color\n let targetColor = sourceColor\n if (targetColor === 'transparent') {\n // We take only layers below current one\n const layers = getLayers(\n getLayerSlot(key),\n key,\n getOpacitySlot(key) || key,\n colors,\n opacity\n ).slice(0, -1)\n targetColor = {\n ...alphaBlendLayers(\n convert('#FF00FF').rgb,\n layers\n ),\n a: 0\n }\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('--')) {\n targetColor = computeDynamicColor(\n sourceColor,\n variableSlot => colors[variableSlot] || sourceColors[variableSlot],\n mod\n )\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('#')) {\n targetColor = convert(targetColor).rgb\n }\n outputColor = { ...targetColor }\n } else if (value.default) {\n // same as above except in object form\n outputColor = convert(value.default).rgb\n } else {\n // calculate color\n const defaultColorFunc = (mod, dep) => ({ ...dep })\n const colorFunc = value.color || defaultColorFunc\n\n if (value.textColor) {\n if (value.textColor === 'bw') {\n outputColor = contrastRatio(backgroundColor).rgb\n } else {\n let color = { ...colors[deps[0]] }\n if (value.color) {\n color = colorFunc(mod, ...deps.map((dep) => ({ ...colors[dep] })))\n }\n outputColor = getTextColor(\n backgroundColor,\n { ...color },\n value.textColor === 'preserve'\n )\n }\n } else {\n // background color case\n outputColor = colorFunc(\n mod,\n ...deps.map((dep) => ({ ...colors[dep] }))\n )\n }\n }\n if (!outputColor) {\n throw new Error('Couldn\\'t generate color for ' + key)\n }\n\n const opacitySlot = value.opacity || getOpacitySlot(key)\n const ownOpacitySlot = value.opacity\n\n if (ownOpacitySlot === null) {\n outputColor.a = 1\n } else if (sourceColor === 'transparent') {\n outputColor.a = 0\n } else {\n const opacityOverriden = ownOpacitySlot && sourceOpacity[opacitySlot] !== undefined\n\n const dependencySlot = deps[0]\n const dependencyColor = dependencySlot && colors[dependencySlot]\n\n if (!ownOpacitySlot && dependencyColor && !value.textColor && ownOpacitySlot !== null) {\n // Inheriting color from dependency (weird, i know)\n // except if it's a text color or opacity slot is set to 'null'\n outputColor.a = dependencyColor.a\n } else if (!dependencyColor && !opacitySlot) {\n // Remove any alpha channel if no dependency and no opacitySlot found\n delete outputColor.a\n } else {\n // Otherwise try to assign opacity\n if (dependencyColor && dependencyColor.a === 0) {\n // transparent dependency shall make dependents transparent too\n outputColor.a = 0\n } else {\n // Otherwise check if opacity is overriden and use that or default value instead\n outputColor.a = Number(\n opacityOverriden\n ? sourceOpacity[opacitySlot]\n : (OPACITIES[opacitySlot] || {}).defaultValue\n )\n }\n }\n }\n\n if (Number.isNaN(outputColor.a) || outputColor.a === undefined) {\n outputColor.a = 1\n }\n\n if (opacitySlot) {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity: { ...opacity, [opacitySlot]: outputColor.a }\n }\n } else {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity\n }\n }\n}, { colors: {}, opacity: {} })\n","\n\n\n\n\n","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faUpload, faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUpload,\n faCircleNotch\n)\n\nconst mediaUpload = {\n data () {\n return {\n uploadCount: 0,\n uploadReady: true\n }\n },\n computed: {\n uploading () {\n return this.uploadCount > 0\n }\n },\n methods: {\n uploadFile (file) {\n const self = this\n const store = this.$store\n if (file.size > store.state.instance.uploadlimit) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(store.state.instance.uploadlimit)\n self.$emit('upload-failed', 'file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n return\n }\n const formData = new FormData()\n formData.append('file', file)\n\n self.$emit('uploading')\n self.uploadCount++\n\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n self.$emit('uploaded', fileData)\n self.decreaseUploadCount()\n }, (error) => { // eslint-disable-line handle-callback-err\n self.$emit('upload-failed', 'default')\n self.decreaseUploadCount()\n })\n },\n decreaseUploadCount () {\n this.uploadCount--\n if (this.uploadCount === 0) {\n this.$emit('all-uploaded')\n }\n },\n clearFile () {\n this.uploadReady = false\n this.$nextTick(() => {\n this.uploadReady = true\n })\n },\n multiUpload (files) {\n for (const file of files) {\n this.uploadFile(file)\n }\n },\n change ({ target }) {\n this.multiUpload(target.files)\n }\n },\n props: [\n 'dropFiles',\n 'disabled'\n ],\n watch: {\n 'dropFiles': function (fileInfos) {\n if (!this.uploading) {\n this.multiUpload(fileInfos)\n }\n }\n }\n}\n\nexport default mediaUpload\n","import { render } from \"./media_upload.vue?vue&type=template&id=8e180d3a\"\nimport script from \"./media_upload.js?vue&type=script&lang=js\"\nexport * from \"./media_upload.js?vue&type=script&lang=js\"\n\nimport \"./media_upload.vue?vue&type=style&index=0&id=8e180d3a&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport { uniq } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport Select from '../select/select.vue'\nimport {\n faTimes,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus\n)\n\nexport default {\n components: {\n Select\n },\n name: 'PollForm',\n props: ['visible'],\n data: () => ({\n pollType: 'single',\n options: ['', ''],\n expiryAmount: 10,\n expiryUnit: 'minutes'\n }),\n computed: {\n pollLimits () {\n return this.$store.state.instance.pollLimits\n },\n maxOptions () {\n return this.pollLimits.max_options\n },\n maxLength () {\n return this.pollLimits.max_option_chars\n },\n expiryUnits () {\n const allUnits = ['minutes', 'hours', 'days']\n const expiry = this.convertExpiryFromUnit\n return allUnits.filter(\n unit => this.pollLimits.max_expiration >= expiry(unit, 1)\n )\n },\n minExpirationInCurrentUnit () {\n return Math.ceil(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.min_expiration\n )\n )\n },\n maxExpirationInCurrentUnit () {\n return Math.floor(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.max_expiration\n )\n )\n }\n },\n methods: {\n clear () {\n this.pollType = 'single'\n this.options = ['', '']\n this.expiryAmount = 10\n this.expiryUnit = 'minutes'\n },\n nextOption (index) {\n const element = this.$el.querySelector(`#poll-${index + 1}`)\n if (element) {\n element.focus()\n } else {\n // Try adding an option and try focusing on it\n const addedOption = this.addOption()\n if (addedOption) {\n this.$nextTick(function () {\n this.nextOption(index)\n })\n }\n }\n },\n addOption () {\n if (this.options.length < this.maxOptions) {\n this.options.push('')\n return true\n }\n return false\n },\n deleteOption (index, event) {\n if (this.options.length > 2) {\n this.options.splice(index, 1)\n this.updatePollToParent()\n }\n },\n convertExpiryToUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n switch (unit) {\n case 'minutes': return (1000 * amount) / DateUtils.MINUTE\n case 'hours': return (1000 * amount) / DateUtils.HOUR\n case 'days': return (1000 * amount) / DateUtils.DAY\n }\n },\n convertExpiryFromUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n switch (unit) {\n case 'minutes': return 0.001 * amount * DateUtils.MINUTE\n case 'hours': return 0.001 * amount * DateUtils.HOUR\n case 'days': return 0.001 * amount * DateUtils.DAY\n }\n },\n expiryAmountChange () {\n this.expiryAmount =\n Math.max(this.minExpirationInCurrentUnit, this.expiryAmount)\n this.expiryAmount =\n Math.min(this.maxExpirationInCurrentUnit, this.expiryAmount)\n this.updatePollToParent()\n },\n updatePollToParent () {\n const expiresIn = this.convertExpiryFromUnit(\n this.expiryUnit,\n this.expiryAmount\n )\n\n const options = uniq(this.options.filter(option => option !== ''))\n if (options.length < 2) {\n this.$emit('update-poll', { error: this.$t('polls.not_enough_options') })\n return\n }\n this.$emit('update-poll', {\n options,\n multiple: this.pollType === 'multiple',\n expiresIn\n })\n }\n }\n}\n","import { render } from \"./poll_form.vue?vue&type=template&id=21f5ba7b\"\nimport script from \"./poll_form.js?vue&type=script&lang=js\"\nexport * from \"./poll_form.js?vue&type=script&lang=js\"\n\nimport \"./poll_form.vue?vue&type=style&index=0&id=21f5ba7b&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import statusPoster from '../../services/status_poster/status_poster.service.js'\nimport MediaUpload from '../media_upload/media_upload.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport PollForm from '../poll/poll_form.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport Gallery from 'src/components/gallery/gallery.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { reject, map, uniqBy, debounce } from 'lodash'\nimport suggestor from '../emoji_input/suggestor.js'\nimport { mapGetters, mapState } from 'vuex'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Select from '../select/select.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n)\n\nconst buildMentionsString = ({ user, attentions = [] }, currentUser) => {\n let allAttentions = [...attentions]\n\n allAttentions.unshift(user)\n\n allAttentions = uniqBy(allAttentions, 'id')\n allAttentions = reject(allAttentions, { id: currentUser.id })\n\n let mentions = map(allAttentions, (attention) => {\n return `@${attention.screen_name}`\n })\n\n return mentions.length > 0 ? mentions.join(' ') + ' ' : ''\n}\n\n// Converts a string with px to a number like '2px' -> 2\nconst pxStringToNumber = (str) => {\n return Number(str.substring(0, str.length - 2))\n}\n\nconst PostStatusForm = {\n props: [\n 'replyTo',\n 'repliedUser',\n 'attentions',\n 'copyMessageScope',\n 'subject',\n 'disableSubject',\n 'disableScopeSelector',\n 'disableNotice',\n 'disableLockWarning',\n 'disablePolls',\n 'disableSensitivityCheckbox',\n 'disableSubmit',\n 'disablePreview',\n 'placeholder',\n 'maxHeight',\n 'postHandler',\n 'preserveFocus',\n 'autoFocus',\n 'fileLimit',\n 'submitOnEnter',\n 'emojiPickerPlacement',\n 'optimisticPosting'\n ],\n emits: [\n 'posted',\n 'resize',\n 'mediaplay',\n 'mediapause'\n ],\n components: {\n MediaUpload,\n EmojiInput,\n PollForm,\n ScopeSelector,\n Checkbox,\n Select,\n Attachment,\n StatusContent,\n Gallery\n },\n mounted () {\n this.updateIdempotencyKey()\n this.resize(this.$refs.textarea)\n\n if (this.replyTo) {\n const textLength = this.$refs.textarea.value.length\n this.$refs.textarea.setSelectionRange(textLength, textLength)\n }\n\n if (this.replyTo || this.autoFocus) {\n this.$refs.textarea.focus()\n }\n },\n data () {\n const preset = this.$route.query.message\n let statusText = preset || ''\n\n const { scopeCopy } = this.$store.getters.mergedConfig\n\n if (this.replyTo) {\n const currentUser = this.$store.state.users.currentUser\n statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)\n }\n\n const scope = ((this.copyMessageScope && scopeCopy) || this.copyMessageScope === 'direct')\n ? this.copyMessageScope\n : this.$store.state.users.currentUser.default_scope\n\n const { postContentType: contentType, sensitiveByDefault, sensitiveIfSubject } = this.$store.getters.mergedConfig\n\n return {\n dropFiles: [],\n uploadingFiles: false,\n error: null,\n posting: false,\n highlighted: 0,\n newStatus: {\n spoilerText: this.subject || '',\n status: statusText,\n sensitiveIfSubject,\n nsfw: !!sensitiveByDefault,\n files: [],\n poll: {},\n mediaDescriptions: {},\n visibility: scope,\n contentType\n },\n caret: 0,\n pollFormVisible: false,\n showDropIcon: 'hide',\n dropStopTimeout: null,\n preview: null,\n previewLoading: false,\n emojiInputShown: false,\n idempotencyKey: ''\n }\n },\n computed: {\n users () {\n return this.$store.state.users.users\n },\n userDefaultScope () {\n return this.$store.state.users.currentUser.default_scope\n },\n showAllScopes () {\n return !this.mergedConfig.minimalScopesMode\n },\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n emoji () {\n return this.$store.state.instance.emoji || []\n },\n customEmoji () {\n return this.$store.state.instance.customEmoji || []\n },\n statusLength () {\n return this.newStatus.status.length\n },\n spoilerTextLength () {\n return this.newStatus.spoilerText.length\n },\n statusLengthLimit () {\n return this.$store.state.instance.textlimit\n },\n hasStatusLengthLimit () {\n return this.statusLengthLimit > 0\n },\n charactersLeft () {\n return this.statusLengthLimit - (this.statusLength + this.spoilerTextLength)\n },\n isOverLengthLimit () {\n return this.hasStatusLengthLimit && (this.charactersLeft < 0)\n },\n minimalScopesMode () {\n return this.$store.state.instance.minimalScopesMode\n },\n alwaysShowSubject () {\n return this.mergedConfig.alwaysShowSubjectInput\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n safeDMEnabled () {\n return this.$store.state.instance.safeDM\n },\n pollsAvailable () {\n return this.$store.state.instance.pollsAvailable &&\n this.$store.state.instance.pollLimits.max_options >= 2 &&\n this.disablePolls !== true\n },\n hideScopeNotice () {\n return this.disableNotice || this.$store.getters.mergedConfig.hideScopeNotice\n },\n pollContentError () {\n return this.pollFormVisible &&\n this.newStatus.poll &&\n this.newStatus.poll.error\n },\n showPreview () {\n return !this.disablePreview && (!!this.preview || this.previewLoading)\n },\n emptyStatus () {\n return this.newStatus.status.trim() === '' && this.newStatus.files.length === 0\n },\n uploadFileLimitReached () {\n return this.newStatus.files.length >= this.fileLimit\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mobileLayout: state => state.interface.mobileLayout\n })\n },\n watch: {\n 'newStatus': {\n deep: true,\n handler () {\n this.statusChanged()\n }\n }\n },\n methods: {\n statusChanged () {\n this.autoPreview()\n this.updateIdempotencyKey()\n },\n clearStatus () {\n const newStatus = this.newStatus\n this.newStatus = {\n status: '',\n spoilerText: '',\n files: [],\n visibility: newStatus.visibility,\n contentType: newStatus.contentType,\n poll: {},\n mediaDescriptions: {}\n }\n this.pollFormVisible = false\n this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()\n this.clearPollForm()\n if (this.preserveFocus) {\n this.$nextTick(() => {\n this.$refs.textarea.focus()\n })\n }\n let el = this.$el.querySelector('textarea')\n el.style.height = 'auto'\n el.style.height = undefined\n this.error = null\n if (this.preview) this.previewStatus()\n },\n async postStatus (event, newStatus, opts = {}) {\n const { sensitiveIfSubject } = this.$store.getters.mergedConfig\n\n if (this.posting && !this.optimisticPosting) { return }\n if (this.disableSubmit) { return }\n if (this.emojiInputShown) { return }\n if (this.submitOnEnter) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n if (this.optimisticPosting && (this.emptyStatus || this.isOverLengthLimit)) { return }\n\n if (this.emptyStatus) {\n this.error = this.$t('post_status.empty_status_error')\n return\n }\n\n const poll = this.pollFormVisible ? this.newStatus.poll : {}\n if (this.pollContentError) {\n this.error = this.pollContentError\n return\n }\n\n this.posting = true\n\n try {\n await this.setAllMediaDescriptions()\n } catch (e) {\n this.error = this.$t('post_status.media_description_error')\n this.posting = false\n return\n }\n\n const postingOptions = {\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: (newStatus.nsfw || (sensitiveIfSubject && newStatus.spoilerText)),\n media: newStatus.files,\n store: this.$store,\n inReplyToStatusId: this.replyTo,\n contentType: newStatus.contentType,\n poll,\n idempotencyKey: this.idempotencyKey\n }\n\n const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus\n\n postHandler(postingOptions).then((data) => {\n if (!data.error) {\n this.clearStatus()\n this.$emit('posted', data)\n } else {\n this.error = data.error\n }\n this.posting = false\n })\n },\n previewStatus () {\n if (this.emptyStatus && this.newStatus.spoilerText.trim() === '') {\n this.preview = { error: this.$t('post_status.preview_empty') }\n this.previewLoading = false\n return\n }\n const newStatus = this.newStatus\n this.previewLoading = true\n statusPoster.postStatus({\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: [],\n store: this.$store,\n inReplyToStatusId: this.replyTo,\n contentType: newStatus.contentType,\n poll: {},\n preview: true\n }).then((data) => {\n // Don't apply preview if not loading, because it means\n // user has closed the preview manually.\n if (!this.previewLoading) return\n if (!data.error) {\n this.preview = data\n } else {\n this.preview = { error: data.error }\n }\n }).catch((error) => {\n this.preview = { error }\n }).finally(() => {\n this.previewLoading = false\n })\n },\n debouncePreviewStatus: debounce(function () { this.previewStatus() }, 500),\n autoPreview () {\n if (!this.preview) return\n this.previewLoading = true\n this.debouncePreviewStatus()\n },\n closePreview () {\n this.preview = null\n this.previewLoading = false\n },\n togglePreview () {\n if (this.showPreview) {\n this.closePreview()\n } else {\n this.previewStatus()\n }\n },\n addMediaFile (fileInfo) {\n this.newStatus.files.push(fileInfo)\n this.$emit('resize', { delayed: true })\n },\n removeMediaFile (fileInfo) {\n let index = this.newStatus.files.indexOf(fileInfo)\n this.newStatus.files.splice(index, 1)\n this.$emit('resize')\n },\n editAttachment (fileInfo, newText) {\n this.newStatus.mediaDescriptions[fileInfo.id] = newText\n },\n shiftUpMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index - 1, 0, fileInfo)\n },\n shiftDnMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index + 1, 0, fileInfo)\n },\n uploadFailed (errString, templateArgs) {\n templateArgs = templateArgs || {}\n this.error = this.$t('upload.error.base') + ' ' + this.$t('upload.error.' + errString, templateArgs)\n },\n startedUploadingFiles () {\n this.uploadingFiles = true\n },\n finishedUploadingFiles () {\n this.$emit('resize')\n this.uploadingFiles = false\n },\n type (fileInfo) {\n return fileTypeService.fileType(fileInfo.mimetype)\n },\n paste (e) {\n this.autoPreview()\n this.resize(e)\n if (e.clipboardData.files.length > 0) {\n // prevent pasting of file as text\n e.preventDefault()\n // Strangely, files property gets emptied after event propagation\n // Trying to wrap it in array doesn't work. Plus I doubt it's possible\n // to hold more than one file in clipboard.\n this.dropFiles = [e.clipboardData.files[0]]\n }\n },\n fileDrop (e) {\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n e.preventDefault() // allow dropping text like before\n this.dropFiles = e.dataTransfer.files\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'hide'\n }\n },\n fileDragStop (e) {\n // The false-setting is done with delay because just using leave-events\n // directly caused unwanted flickering, this is not perfect either but\n // much less noticable.\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'fade'\n this.dropStopTimeout = setTimeout(() => (this.showDropIcon = 'hide'), 500)\n },\n fileDrag (e) {\n e.dataTransfer.dropEffect = this.uploadFileLimitReached ? 'none' : 'copy'\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'show'\n }\n },\n onEmojiInputInput (e) {\n this.$nextTick(() => {\n this.resize(this.$refs['textarea'])\n })\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n\n // Reset to default height for empty form, nothing else to do here.\n if (target.value === '') {\n target.style.height = null\n this.$emit('resize')\n this.$refs['emoji-input'].resize()\n return\n }\n\n const formRef = this.$refs['form']\n const bottomRef = this.$refs['bottom']\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom']\n const bottomBottomPadding = pxStringToNumber(bottomBottomPaddingStr)\n\n const scrollerRef = this.$el.closest('.column.-scrollable') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n\n // Getting info about padding we have to account for, removing 'px' part\n const topPaddingStr = window.getComputedStyle(target)['padding-top']\n const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom']\n const topPadding = pxStringToNumber(topPaddingStr)\n const bottomPadding = pxStringToNumber(bottomPaddingStr)\n const vertPadding = topPadding + bottomPadding\n\n const oldHeight = pxStringToNumber(target.style.height)\n\n /* Explanation:\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n * scrollHeight returns element's scrollable content height, i.e. visible\n * element + overscrolled parts of it. We use it to determine when text\n * inside the textarea exceeded its height, so we can set height to prevent\n * overscroll, i.e. make textarea grow with the text. HOWEVER, since we\n * explicitly set new height, scrollHeight won't go below that, so we can't\n * SHRINK the textarea when there's extra space. To workaround that we set\n * height to 'auto' which makes textarea tiny again, so that scrollHeight\n * will match text height again. HOWEVER, shrinking textarea can screw with\n * the scroll since there might be not enough padding around form-bottom to even\n * warrant a scroll, so it will jump to 0 and refuse to move anywhere,\n * so we check current scroll position before shrinking and then restore it\n * with needed delta.\n */\n\n // this part has to be BEFORE the content size update\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n const scrollerBottomBorder = currentScroll + scrollerHeight\n\n // BEGIN content size update\n target.style.height = 'auto'\n const heightWithoutPadding = Math.floor(target.scrollHeight - vertPadding)\n let newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding\n // This is a bit of a hack to combat target.scrollHeight being different on every other input\n // on some browsers for whatever reason. Don't change the height if difference is 1px or less.\n if (Math.abs(newHeight - oldHeight) <= 1) {\n newHeight = oldHeight\n }\n target.style.height = `${newHeight}px`\n this.$emit('resize', newHeight)\n // END content size update\n\n // We check where the bottom border of form-bottom element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const bottomBottomBorder = bottomRef.offsetHeight + findOffset(bottomRef, scrollerRef).top + bottomBottomPadding\n\n const isBottomObstructed = scrollerBottomBorder < bottomBottomBorder\n const isFormBiggerThanScroller = scrollerHeight < formRef.offsetHeight\n const bottomChangeDelta = bottomBottomBorder - scrollerBottomBorder\n // The intention is basically this;\n // Keep form-bottom always visible so that submit button is in view EXCEPT\n // if form element bigger than scroller and caret isn't at the end, so that\n // if you scroll up and edit middle of text you won't get scrolled back to bottom\n const shouldScrollToBottom = isBottomObstructed &&\n !(isFormBiggerThanScroller &&\n this.$refs.textarea.selectionStart !== this.$refs.textarea.value.length)\n const totalDelta = shouldScrollToBottom ? bottomChangeDelta : 0\n const targetScroll = Math.round(currentScroll + totalDelta)\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n\n this.$refs['emoji-input'].resize()\n },\n showEmojiPicker () {\n this.$refs['textarea'].focus()\n this.$refs['emoji-input'].triggerShowPicker()\n },\n clearError () {\n this.error = null\n },\n changeVis (visibility) {\n this.newStatus.visibility = visibility\n },\n togglePollForm () {\n this.pollFormVisible = !this.pollFormVisible\n },\n setPoll (poll) {\n this.newStatus.poll = poll\n },\n clearPollForm () {\n if (this.$refs.pollForm) {\n this.$refs.pollForm.clear()\n }\n },\n dismissScopeNotice () {\n this.$store.dispatch('setOption', { name: 'hideScopeNotice', value: true })\n },\n setMediaDescription (id) {\n const description = this.newStatus.mediaDescriptions[id]\n if (!description || description.trim() === '') return\n return statusPoster.setMediaDescription({ store: this.$store, id, description })\n },\n setAllMediaDescriptions () {\n const ids = this.newStatus.files.map(file => file.id)\n return Promise.all(ids.map(id => this.setMediaDescription(id)))\n },\n handleEmojiInputShow (value) {\n this.emojiInputShown = value\n },\n updateIdempotencyKey () {\n this.idempotencyKey = Date.now().toString()\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n }\n }\n}\n\nexport default PostStatusForm\n","import { render } from \"./post_status_form.vue?vue&type=template&id=ae252da2\"\nimport script from \"./post_status_form.js?vue&type=script&lang=js\"\nexport * from \"./post_status_form.js?vue&type=script&lang=js\"\n\nimport \"./post_status_form.vue?vue&type=style&index=0&id=ae252da2&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import StillImage from '../still-image/still-image.vue'\nimport Flash from '../flash/flash.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport nsfwImage from '../../assets/nsfw.png'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n)\n\nconst Attachment = {\n props: [\n 'attachment',\n 'description',\n 'hideDescription',\n 'nsfw',\n 'size',\n 'setMedia',\n 'remove',\n 'shiftUp',\n 'shiftDn',\n 'edit'\n ],\n data () {\n return {\n localDescription: this.description || this.attachment.description,\n nsfwImage: this.$store.state.instance.nsfwCensorImage || nsfwImage,\n hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw,\n preloadImage: this.$store.getters.mergedConfig.preloadImage,\n loading: false,\n img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && document.createElement('img'),\n modalOpen: false,\n showHidden: false,\n flashLoaded: false,\n showDescription: false\n }\n },\n components: {\n Flash,\n StillImage,\n VideoAttachment\n },\n computed: {\n classNames () {\n return [\n {\n '-loading': this.loading,\n '-nsfw-placeholder': this.hidden,\n '-editable': this.edit !== undefined\n },\n '-type-' + this.type,\n this.size && '-size-' + this.size,\n `-${this.useContainFit ? 'contain' : 'cover'}-fit`\n ]\n },\n usePlaceholder () {\n return this.size === 'hide'\n },\n useContainFit () {\n return this.$store.getters.mergedConfig.useContainFit\n },\n placeholderName () {\n if (this.attachment.description === '' || !this.attachment.description) {\n return this.type.toUpperCase()\n }\n return this.attachment.description\n },\n placeholderIconClass () {\n if (this.type === 'image') return 'image'\n if (this.type === 'video') return 'video'\n if (this.type === 'audio') return 'music'\n return 'file'\n },\n referrerpolicy () {\n return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'\n },\n type () {\n return fileTypeService.fileType(this.attachment.mimetype)\n },\n hidden () {\n return this.nsfw && this.hideNsfwLocal && !this.showHidden\n },\n isEmpty () {\n return (this.type === 'html' && !this.attachment.oembed)\n },\n useModal () {\n let modalTypes = []\n switch (this.size) {\n case 'hide':\n case 'small':\n modalTypes = ['image', 'video', 'audio', 'flash']\n break\n default:\n modalTypes = this.mergedConfig.playVideosInModal\n ? ['image', 'video', 'flash']\n : ['image']\n break\n }\n return modalTypes.includes(this.type)\n },\n videoTag () {\n return this.useModal ? 'button' : 'span'\n },\n ...mapGetters(['mergedConfig'])\n },\n watch: {\n localDescription (newVal) {\n this.onEdit(newVal)\n }\n },\n methods: {\n linkClicked ({ target }) {\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n openModal (event) {\n if (this.useModal) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n } else if (this.type === 'unknown') {\n window.open(this.attachment.url)\n }\n },\n openModalForce (event) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n },\n onEdit (event) {\n this.edit && this.edit(this.attachment, event)\n },\n onRemove () {\n this.remove && this.remove(this.attachment)\n },\n onShiftUp () {\n this.shiftUp && this.shiftUp(this.attachment)\n },\n onShiftDn () {\n this.shiftDn && this.shiftDn(this.attachment)\n },\n stopFlash () {\n this.$refs.flash.closePlayer()\n },\n setFlashLoaded (event) {\n this.flashLoaded = event\n },\n toggleDescription () {\n this.showDescription = !this.showDescription\n },\n toggleHidden (event) {\n if (\n (this.mergedConfig.useOneClickNsfw && !this.showHidden) &&\n (this.type !== 'video' || this.mergedConfig.playVideosInModal)\n ) {\n this.openModal(event)\n return\n }\n if (this.img && !this.preloadImage) {\n if (this.img.onload) {\n this.img.onload()\n } else {\n this.loading = true\n this.img.src = this.attachment.url\n this.img.onload = () => {\n this.loading = false\n this.showHidden = !this.showHidden\n }\n }\n } else {\n this.showHidden = !this.showHidden\n }\n },\n onImageLoad (image) {\n const width = image.naturalWidth\n const height = image.naturalHeight\n this.$emit('naturalSizeLoad', { id: this.attachment.id, width, height })\n }\n }\n}\n\nexport default Attachment\n","import { render } from \"./attachment.vue?vue&type=template&id=1177e21f\"\nimport script from \"./attachment.js?vue&type=script&lang=js\"\nexport * from \"./attachment.js?vue&type=script&lang=js\"\n\nimport \"./attachment.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./timeago.vue?vue&type=template&id=4a007a5d\"\nimport script from \"./timeago.vue?vue&type=script&lang=js\"\nexport * from \"./timeago.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./list.vue?vue&type=template&id=c1790f52\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\n\nimport \"./list.vue?vue&type=style&index=0&id=c1790f52&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// When contributing, please sort JSON before committing so it would be easier to see what's missing and what's being added compared to English and other languages. It's not obligatory, but just an advice.\n// To sort json use jq https://stedolan.github.io/jq and invoke it like `jq -S . xx.json > xx.sorted.json`, AFAIK, there's no inplace edit option like in sed\n// Also, when adding a new language to \"messages\" variable, please do it alphabetically by language code so that users can search or check their custom language easily.\n\n// For anyone contributing to old huge messages.js and in need to quickly convert it to JSON\n// sed command for converting currently formatted JS to JSON:\n// sed -i -e \"s/'//gm\" -e 's/\"/\\\\\"/gm' -re 's/^( +)(.+?): ((.+?))?(,?)(\\{?)$/\\1\"\\2\": \"\\4\"/gm' -e 's/\\\"\\{\\\"/{/g' -e 's/,\"$/\",/g' file.json\n// There's only problem that apostrophe character ' gets replaced by \\\\ so you have to fix it manually, sorry.\n\nconst loaders = {\n ar: () => import('./ar.json'),\n ca: () => import('./ca.json'),\n cs: () => import('./cs.json'),\n de: () => import('./de.json'),\n eo: () => import('./eo.json'),\n es: () => import('./es.json'),\n et: () => import('./et.json'),\n eu: () => import('./eu.json'),\n fi: () => import('./fi.json'),\n fr: () => import('./fr.json'),\n ga: () => import('./ga.json'),\n he: () => import('./he.json'),\n hu: () => import('./hu.json'),\n it: () => import('./it.json'),\n ja: () => import('./ja_pedantic.json'),\n ja_easy: () => import('./ja_easy.json'),\n ko: () => import('./ko.json'),\n nb: () => import('./nb.json'),\n nl: () => import('./nl.json'),\n oc: () => import('./oc.json'),\n pl: () => import('./pl.json'),\n pt: () => import('./pt.json'),\n ro: () => import('./ro.json'),\n ru: () => import('./ru.json'),\n te: () => import('./te.json'),\n uk: () => import('./uk.json'),\n zh: () => import('./zh.json'),\n zh_Hant: () => import('./zh_Hant.json')\n}\n\nconst messages = {\n languages: ['en', ...Object.keys(loaders)],\n default: {\n en: require('./en.json').default\n },\n setLanguage: async (i18n, language) => {\n if (loaders[language]) {\n let messages = await loaders[language]()\n i18n.setLocaleMessage(language, messages.default)\n }\n i18n.locale = language\n }\n}\n\nexport default messages\n","// eslint-disable-next-line no-unused\nimport { h, Fragment } from 'vue'\nimport { mapState } from 'vuex'\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\n\nimport './tab_switcher.scss'\n\nconst findFirstUsable = (slots) => slots.findIndex(_ => _.props)\n\nexport default {\n name: 'TabSwitcher',\n props: {\n renderOnlyFocused: {\n required: false,\n type: Boolean,\n default: false\n },\n onSwitch: {\n required: false,\n type: Function,\n default: undefined\n },\n activeTab: {\n required: false,\n type: String,\n default: undefined\n },\n scrollableTabs: {\n required: false,\n type: Boolean,\n default: false\n },\n sideTabBar: {\n required: false,\n type: Boolean,\n default: false\n },\n bodyScrollLock: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n active: findFirstUsable(this.slots())\n }\n },\n computed: {\n activeIndex () {\n // In case of controlled component\n if (this.activeTab) {\n return this.slots().findIndex(slot => slot && slot.props && this.activeTab === slot.props.key)\n } else {\n return this.active\n }\n },\n isActive () {\n return tabName => {\n const isWanted = slot => slot.props && slot.props['data-tab-name'] === tabName\n return this.$slots.default().findIndex(isWanted) === this.activeIndex\n }\n },\n settingsModalVisible () {\n return this.settingsModalState === 'visible'\n },\n ...mapState({\n settingsModalState: state => state.interface.settingsModalState\n })\n },\n beforeUpdate () {\n const currentSlot = this.slots()[this.active]\n if (!currentSlot.props) {\n this.active = findFirstUsable(this.slots())\n }\n },\n methods: {\n clickTab (index) {\n return (e) => {\n e.preventDefault()\n this.setTab(index)\n }\n },\n // DO NOT put it to computed, it doesn't work (caching?)\n slots () {\n if (this.$slots.default()[0].type === Fragment) {\n return this.$slots.default()[0].children\n }\n return this.$slots.default()\n },\n setTab (index) {\n if (typeof this.onSwitch === 'function') {\n this.onSwitch.call(null, this.slots()[index].key)\n }\n this.active = index\n if (this.scrollableTabs) {\n this.$refs.contents.scrollTop = 0\n }\n }\n },\n render () {\n const tabs = this.slots()\n .map((slot, index) => {\n const props = slot.props\n if (!props) return\n const classesTab = ['tab', 'button-default']\n const classesWrapper = ['tab-wrapper']\n if (this.activeIndex === index) {\n classesTab.push('active')\n classesWrapper.push('active')\n }\n if (props.image) {\n return (\n
\n \n \n {props.label ? '' : props.label}\n \n
\n )\n }\n return (\n
\n \n {!props.icon ? '' : ()}\n \n {props.label}\n \n \n
\n )\n })\n\n const contents = this.slots().map((slot, index) => {\n const props = slot.props\n if (!props) return\n const active = this.activeIndex === index\n const classes = [ active ? 'active' : 'hidden' ]\n if (props.fullHeight) {\n classes.push('full-height')\n }\n const renderSlot = (!this.renderOnlyFocused || active)\n ? slot\n : ''\n\n return (\n
\n {\n this.sideTabBar\n ?

{props.label}

\n : ''\n }\n {renderSlot}\n
\n )\n })\n\n return (\n
\n
\n {tabs}\n
\n \n {contents}\n
\n \n )\n }\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({\n store,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n media = [],\n inReplyToStatusId = undefined,\n contentType = 'text/plain',\n preview = false,\n idempotencyKey = ''\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.postStatus({\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n mediaIds,\n inReplyToStatusId,\n contentType,\n poll,\n preview,\n idempotencyKey\n })\n .then((data) => {\n if (!data.error && !preview) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n return {\n error: err.message\n }\n })\n}\n\nconst uploadMedia = ({ store, formData }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.uploadMedia({ credentials, formData })\n}\n\nconst setMediaDescription = ({ store, id, description }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.setMediaDescription({ credentials, id, description })\n}\n\nconst statusPosterService = {\n postStatus,\n uploadMedia,\n setMediaDescription\n}\n\nexport default statusPosterService\n","\n\n\n\n","\n\n\n\n","import StatusContent from '../status_content/status_content.vue'\nimport { mapState } from 'vuex'\nimport Status from '../status/status.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { isStatusNotification } from '../../services/notification_utils/notification_utils.js'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faEyeSlash,\n faUser,\n faSuitcaseRolling\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faUser,\n faEyeSlash,\n faSuitcaseRolling\n)\n\nconst Notification = {\n data () {\n return {\n userExpanded: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n unmuted: false\n }\n },\n props: [ 'notification' ],\n components: {\n StatusContent,\n UserAvatar,\n UserCard,\n Timeago,\n Status,\n RichContent\n },\n methods: {\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n getUser (notification) {\n return this.$store.state.users.usersObject[notification.from_profile.id]\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n approveUser () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n this.$store.dispatch('markSingleNotificationAsSeen', { id: this.notification.id })\n this.$store.dispatch('updateNotification', {\n id: this.notification.id,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n },\n denyUser () {\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: this.notification.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n }\n },\n computed: {\n userClass () {\n return highlightClass(this.notification.from_profile)\n },\n userStyle () {\n const highlight = this.$store.getters.mergedConfig.highlight\n const user = this.notification.from_profile\n return highlightStyle(highlight[user.screen_name])\n },\n user () {\n return this.$store.getters.findUser(this.notification.from_profile.id)\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.user)\n },\n targetUser () {\n return this.$store.getters.findUser(this.notification.target.id)\n },\n targetUserProfileLink () {\n return this.generateUserProfileLink(this.targetUser)\n },\n needMute () {\n return this.$store.getters.relationship(this.user.id).muting\n },\n isStatusNotification () {\n return isStatusNotification(this.notification.type)\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default Notification\n","import { render } from \"./notification.vue?vue&type=template&id=fb5a0192\"\nimport script from \"./notification.js?vue&type=script&lang=js\"\nexport * from \"./notification.js?vue&type=script&lang=js\"\n\nimport \"./notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./notification_filters.vue?vue&type=template&id=afbf2f10\"\nimport script from \"./notification_filters.vue?vue&type=script&lang=js\"\nexport * from \"./notification_filters.vue?vue&type=script&lang=js\"\n\nimport \"./notification_filters.vue?vue&type=style&index=0&id=afbf2f10&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapGetters } from 'vuex'\nimport Notification from '../notification/notification.vue'\nimport NotificationFilters from './notification_filters.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\nimport FaviconService from '../../services/favicon_service/favicon_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n components: {\n Notification,\n NotificationFilters\n },\n props: {\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array,\n // Disable teleporting (i.e. for /users/user/notifications)\n disableTeleport: Boolean\n },\n data () {\n return {\n bottomedOut: false,\n // How many seen notifications to display in the list. The more there are,\n // the heavier the page becomes. This count is increased when loading\n // older notifications, and cut back to default whenever hitting \"Read!\".\n seenToDisplayCount: DEFAULT_SEEN_TO_DISPLAY_COUNT\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n unseenCountTitle () {\n return this.unseenCount + (this.unreadChatCount)\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n noHeading () {\n const { layoutType } = this.$store.state.interface\n return this.minimalMode || layoutType === 'mobile'\n },\n teleportTarget () {\n const { layoutType } = this.$store.state.interface\n const map = {\n wide: '#notifs-column',\n mobile: '#mobile-notifications'\n }\n return map[layoutType] || '#notifs-sidebar'\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n },\n ...mapGetters(['unreadChatCount'])\n },\n watch: {\n unseenCountTitle (count) {\n if (count > 0) {\n FaviconService.drawFaviconBadge()\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n FaviconService.clearFaviconBadge()\n this.$store.dispatch('setPageTitle', '')\n }\n }\n },\n methods: {\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","import { render } from \"./notifications.vue?vue&type=template&id=5c6b19b5\"\nimport script from \"./notifications.js?vue&type=script&lang=js\"\nexport * from \"./notifications.js?vue&type=script&lang=js\"\n\nimport \"./notifications.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import Attachment from '../attachment/attachment.vue'\nimport { sumBy, set } from 'lodash'\n\nconst Gallery = {\n props: [\n 'attachments',\n 'limitRows',\n 'descriptions',\n 'limit',\n 'nsfw',\n 'setMedia',\n 'size',\n 'editable',\n 'removeAttachment',\n 'shiftUpAttachment',\n 'shiftDnAttachment',\n 'editAttachment',\n 'grid'\n ],\n data () {\n return {\n sizes: {},\n hidingLong: true\n }\n },\n components: { Attachment },\n computed: {\n rows () {\n if (!this.attachments) {\n return []\n }\n const attachments = this.limit > 0\n ? this.attachments.slice(0, this.limit)\n : this.attachments\n if (this.size === 'hide') {\n return attachments.map(item => ({ minimal: true, items: [item] }))\n }\n const rows = this.grid\n ? [{ grid: true, items: attachments }]\n : attachments.reduce((acc, attachment, i) => {\n if (attachment.mimetype.includes('audio')) {\n return [...acc, { audio: true, items: [attachment] }, { items: [] }]\n }\n if (!(\n attachment.mimetype.includes('image') ||\n attachment.mimetype.includes('video') ||\n attachment.mimetype.includes('flash')\n )) {\n return [...acc, { minimal: true, items: [attachment] }, { items: [] }]\n }\n const maxPerRow = 3\n const attachmentsRemaining = this.attachments.length - i + 1\n const currentRow = acc[acc.length - 1].items\n currentRow.push(attachment)\n if (currentRow.length >= maxPerRow && attachmentsRemaining > maxPerRow) {\n return [...acc, { items: [] }]\n } else {\n return acc\n }\n }, [{ items: [] }]).filter(_ => _.items.length > 0)\n return rows\n },\n attachmentsDimensionalScore () {\n return this.rows.reduce((acc, row) => {\n let size = 0\n if (row.minimal) {\n size += 1 / 8\n } else if (row.audio) {\n size += 1 / 4\n } else {\n size += 1 / (row.items.length + 0.6)\n }\n return acc + size\n }, 0)\n },\n tooManyAttachments () {\n if (this.editable || this.size === 'small') {\n return false\n } else if (this.size === 'hide') {\n return this.attachments.length > 8\n } else {\n return this.attachmentsDimensionalScore > 1\n }\n }\n },\n methods: {\n onNaturalSizeLoad ({ id, width, height }) {\n set(this.sizes, id, { width, height })\n },\n rowStyle (row) {\n if (row.audio) {\n return { 'padding-bottom': '25%' } // fixed reduced height for audio\n } else if (!row.minimal && !row.grid) {\n return { 'padding-bottom': `${(100 / (row.items.length + 0.6))}%` }\n }\n },\n itemStyle (id, row) {\n const total = sumBy(row, item => this.getAspectRatio(item.id))\n return { flex: `${this.getAspectRatio(id) / total} 1 0%` }\n },\n getAspectRatio (id) {\n const size = this.sizes[id]\n return size ? size.width / size.height : 1\n },\n toggleHidingLong (event) {\n this.hidingLong = event\n },\n openGallery () {\n this.$store.dispatch('setMedia', this.attachments)\n this.$store.dispatch('setCurrentMedia', this.attachments[0])\n },\n onMedia () {\n this.$store.dispatch('setMedia', this.attachments)\n }\n }\n}\n\nexport default Gallery\n","import { render } from \"./gallery.vue?vue&type=template&id=2bf4ca36\"\nimport script from \"./gallery.js?vue&type=script&lang=js\"\nexport * from \"./gallery.js?vue&type=script&lang=js\"\n\nimport \"./gallery.vue?vue&type=style&index=0&id=2bf4ca36&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","const createRuffleService = () => {\n let ruffleInstance = null\n\n const getRuffle = () => new Promise((resolve, reject) => {\n if (ruffleInstance) {\n resolve(ruffleInstance)\n return\n }\n // Ruffle needs these to be set before it's loaded\n // https://github.com/ruffle-rs/ruffle/issues/3952\n window.RufflePlayer = {}\n window.RufflePlayer.config = {\n polyfills: false,\n publicPath: '/static/ruffle'\n }\n\n // Currently it's seems like a better way of loading ruffle\n // because it needs the wasm publically accessible, but it needs path to it\n // and filename of wasm seems to be pseudo-randomly generated (is it a hash?)\n const script = document.createElement('script')\n // see webpack config, using CopyPlugin to copy it from node_modules\n // provided via ruffle-mirror\n script.src = '/static/ruffle/ruffle.js'\n script.type = 'text/javascript'\n script.onerror = (e) => { reject(e) }\n script.onabort = (e) => { reject(e) }\n script.oncancel = (e) => { reject(e) }\n script.onload = () => {\n ruffleInstance = window.RufflePlayer\n resolve(ruffleInstance)\n }\n document.body.appendChild(script)\n })\n\n return { getRuffle }\n}\n\nconst RuffleService = createRuffleService()\n\nexport default RuffleService\n","import RuffleService from '../../services/ruffle_service/ruffle_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStop,\n faExclamationTriangle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faStop,\n faExclamationTriangle\n)\n\nconst Flash = {\n props: [ 'src' ],\n data () {\n return {\n player: false, // can be true, \"hidden\", false. hidden = element exists\n loaded: false,\n ruffleInstance: null\n }\n },\n methods: {\n openPlayer () {\n if (this.player) return // prevent double-loading, or re-loading on failure\n this.player = 'hidden'\n RuffleService.getRuffle().then((ruffle) => {\n const player = ruffle.newest().createPlayer()\n player.config = {\n letterbox: 'on'\n }\n const container = this.$refs.container\n container.appendChild(player)\n player.style.width = '100%'\n player.style.height = '100%'\n player.load(this.src).then(() => {\n this.player = true\n }).catch((e) => {\n console.error('Error loading ruffle', e)\n this.player = 'error'\n })\n this.ruffleInstance = player\n this.$emit('playerOpened')\n })\n },\n closePlayer () {\n this.ruffleInstance && this.ruffleInstance.remove()\n this.player = false\n this.$emit('playerClosed')\n }\n }\n}\n\nexport default Flash\n","import { render } from \"./flash.vue?vue&type=template&id=0dec384a\"\nimport script from \"./flash.js?vue&type=script&lang=js\"\nexport * from \"./flash.js?vue&type=script&lang=js\"\n\nimport \"./flash.vue?vue&type=style&index=0&id=0dec384a&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => {\n setTimeout(() => {\n store.state.api.backendInteractor.fetchUserRelationship({ id: userId })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n return relationship\n })\n .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt]))\n .catch((e) => reject(e))\n }, 500)\n}).then(([following, sent, locked, attempt]) => {\n if (!following && !(locked && sent) && attempt <= 3) {\n // If we BE reports that we still not following that user - retry,\n // increment attempts by one\n fetchRelationship(++attempt, userId, store)\n }\n})\n\nexport const requestFollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.followUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n\n if (updated.following || (updated.locked && updated.requested)) {\n // If we get result immediately or the account is locked, just stop.\n resolve()\n return\n }\n\n // But usually we don't get result immediately, so we ask server\n // for updated user profile to confirm if we are following them\n // Sometimes it takes several tries. Sometimes we end up not following\n // user anyway, probably because they locked themselves and we\n // don't know that yet.\n // Recursive Promise, it will call itself up to 3 times.\n\n return fetchRelationship(1, updated, store)\n .then(() => {\n resolve()\n })\n })\n})\n\nexport const requestUnfollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.unfollowUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n resolve({\n updated\n })\n })\n})\n","import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'\nexport default {\n props: ['relationship', 'user', 'labelFollowing', 'buttonClass'],\n data () {\n return {\n inProgress: false\n }\n },\n computed: {\n isPressed () {\n return this.inProgress || this.relationship.following\n },\n title () {\n if (this.inProgress || this.relationship.following) {\n return this.$t('user_card.follow_unfollow')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_cancel')\n } else {\n return this.$t('user_card.follow')\n }\n },\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else if (this.relationship.following) {\n return this.labelFollowing || this.$t('user_card.following')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_sent')\n } else {\n return this.$t('user_card.follow')\n }\n },\n disabled () {\n return this.inProgress || this.user.deactivated\n }\n },\n methods: {\n onClick () {\n this.relationship.following || this.relationship.requested ? this.unfollow() : this.follow()\n },\n follow () {\n this.inProgress = true\n requestFollow(this.relationship.id, this.$store).then(() => {\n this.inProgress = false\n })\n },\n unfollow () {\n const store = this.$store\n this.inProgress = true\n requestUnfollow(this.relationship.id, store).then(() => {\n this.inProgress = false\n store.commit('removeStatus', { timeline: 'friends', userId: this.relationship.id })\n })\n }\n }\n}\n","import { render } from \"./follow_button.vue?vue&type=template&id=2c877477\"\nimport script from \"./follow_button.js?vue&type=script&lang=js\"\nexport * from \"./follow_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n blocksSuspend: false,\n // Start from true because removing \"loop\" property seems buggy in Vue\n hasAudio: true\n }\n },\n computed: {\n loopVideo () {\n if (this.$store.getters.mergedConfig.loopVideoSilentOnly) {\n return !this.hasAudio\n }\n return this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onPlaying (e) {\n this.setHasAudio(e)\n if (this.loopVideo) {\n this.$emit('play', { looping: true })\n return\n }\n this.$emit('play')\n },\n onPaused (e) {\n this.$emit('pause')\n },\n setHasAudio (e) {\n const target = e.srcElement || e.target\n // If hasAudio is false, we've already marked this video to not have audio,\n // a video can't gain audio out of nowhere so don't bother checking again.\n if (!this.hasAudio) return\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) return\n }\n if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) return\n }\n if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) return\n }\n this.hasAudio = false\n }\n }\n}\n\nexport default VideoAttachment\n","import { render } from \"./video_attachment.vue?vue&type=template&id=dda2841a\"\nimport script from \"./video_attachment.js?vue&type=script&lang=js\"\nexport * from \"./video_attachment.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n\n\n","import { mapGetters } from 'vuex'\n\nconst LinkPreview = {\n name: 'LinkPreview',\n props: [\n 'card',\n 'size',\n 'nsfw'\n ],\n data () {\n return {\n imageLoaded: false\n }\n },\n computed: {\n useImage () {\n // Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid\n // as it makes sure to hide the image if somehow NSFW tagged preview can\n // exist.\n return this.card.image && !this.censored && this.size !== 'hide'\n },\n censored () {\n return this.nsfw && this.hideNsfwConfig\n },\n useDescription () {\n return this.card.description && /\\S/.test(this.card.description)\n },\n hideNsfwConfig () {\n return this.mergedConfig.hideNsfw\n },\n ...mapGetters([\n 'mergedConfig'\n ])\n },\n created () {\n if (this.useImage) {\n const newImg = new Image()\n newImg.onload = () => {\n this.imageLoaded = true\n }\n newImg.src = this.card.image\n }\n }\n}\n\nexport default LinkPreview\n","import { render } from \"./link-preview.vue?vue&type=template&id=03087feb\"\nimport script from \"./link-preview.js?vue&type=script&lang=js\"\nexport * from \"./link-preview.js?vue&type=script&lang=js\"\n\nimport \"./link-preview.vue?vue&type=style&index=0&id=03087feb&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","export default {\n props: [ 'user' ],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","import { render } from \"./remote_follow.vue?vue&type=template&id=2aed8421\"\nimport script from \"./remote_follow.js?vue&type=script&lang=js\"\nexport * from \"./remote_follow.js?vue&type=script&lang=js\"\n\nimport \"./remote_follow.vue?vue&type=style&index=0&id=2aed8421&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst AvatarList = {\n props: ['users'],\n computed: {\n slicedUsers () {\n return this.users ? this.users.slice(0, 15) : []\n }\n },\n components: {\n UserAvatar\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default AvatarList\n","import { render } from \"./avatar_list.vue?vue&type=template&id=4cea5bcf\"\nimport script from \"./avatar_list.js?vue&type=script&lang=js\"\nexport * from \"./avatar_list.js?vue&type=script&lang=js\"\n\nimport \"./avatar_list.vue?vue&type=style&index=0&id=4cea5bcf&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/**\n * suggest - generates a suggestor function to be used by emoji-input\n * data: object providing source information for specific types of suggestions:\n * data.emoji - optional, an array of all emoji available i.e.\n * (state.instance.emoji + state.instance.customEmoji)\n * data.users - optional, an array of all known users\n * updateUsersList - optional, a function to search and append to users\n *\n * Depending on data present one or both (or none) can be present, so if field\n * doesn't support user linking you can just provide only emoji.\n */\n\nexport default data => {\n const emojiCurry = suggestEmoji(data.emoji)\n const usersCurry = data.store && suggestUsers(data.store)\n return input => {\n const firstChar = input[0]\n if (firstChar === ':' && data.emoji) {\n return emojiCurry(input)\n }\n if (firstChar === '@' && usersCurry) {\n return usersCurry(input)\n }\n return []\n }\n}\n\nexport const suggestEmoji = emojis => input => {\n const noPrefix = input.toLowerCase().substr(1)\n return emojis\n .filter(({ displayText }) => displayText.toLowerCase().match(noPrefix))\n .sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // An exact match always wins\n aScore += a.displayText.toLowerCase() === noPrefix ? 200 : 0\n bScore += b.displayText.toLowerCase() === noPrefix ? 200 : 0\n\n // Prioritize custom emoji a lot\n aScore += a.imageUrl ? 100 : 0\n bScore += b.imageUrl ? 100 : 0\n\n // Prioritize prefix matches somewhat\n aScore += a.displayText.toLowerCase().startsWith(noPrefix) ? 10 : 0\n bScore += b.displayText.toLowerCase().startsWith(noPrefix) ? 10 : 0\n\n // Sort by length\n aScore -= a.displayText.length\n bScore -= b.displayText.length\n\n // Break ties alphabetically\n const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5\n\n return bScore - aScore + alphabetically\n })\n}\n\nexport const suggestUsers = ({ dispatch, state }) => {\n // Keep some persistent values in closure, most importantly for the\n // custom debounce to work. Lodash debounce does not return a promise.\n let suggestions = []\n let previousQuery = ''\n let timeout = null\n let cancelUserSearch = null\n\n const userSearch = (query) => dispatch('searchUsers', { query })\n const debounceUserSearch = (query) => {\n cancelUserSearch && cancelUserSearch()\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => {\n userSearch(query).then(resolve).catch(reject)\n }, 300)\n cancelUserSearch = () => {\n clearTimeout(timeout)\n resolve([])\n }\n })\n }\n\n return async input => {\n const noPrefix = input.toLowerCase().substr(1)\n if (previousQuery === noPrefix) return suggestions\n\n suggestions = []\n previousQuery = noPrefix\n // Fetch more and wait, don't fetch if there's the 2nd @ because\n // the backend user search can't deal with it.\n // Reference semantics make it so that we get the updated data after\n // the await.\n if (!noPrefix.includes('@')) {\n await debounceUserSearch(noPrefix)\n }\n\n const newSuggestions = state.users.users.filter(\n user =>\n user.screen_name.toLowerCase().startsWith(noPrefix) ||\n user.name.toLowerCase().startsWith(noPrefix)\n ).slice(0, 20).sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // Matches on screen name (i.e. user@instance) makes a priority\n aScore += a.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n bScore += b.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n\n // Matches on name takes second priority\n aScore += a.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n bScore += b.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n\n const diff = (bScore - aScore) * 10\n\n // Then sort alphabetically\n const nameAlphabetically = a.name > b.name ? 1 : -1\n const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1\n\n return diff + nameAlphabetically + screenNameAlphabetically\n /* eslint-disable camelcase */\n }).map(({ screen_name, screen_name_ui, name, profile_image_url_original }) => ({\n displayText: screen_name_ui,\n detailText: name,\n imageUrl: profile_image_url_original,\n replacement: '@' + screen_name + ' '\n }))\n /* eslint-enable camelcase */\n\n suggestions = newSuggestions || []\n return suggestions\n }\n}\n","\n\n\n","import { render } from \"./interface_language_switcher.vue?vue&type=template&id=25be3710\"\nimport script from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\nexport * from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen\n)\n\nconst ScopeSelector = {\n props: [\n 'showAll',\n 'userDefault',\n 'originalScope',\n 'initialScope',\n 'onScopeChange'\n ],\n data () {\n return {\n currentScope: this.initialScope\n }\n },\n computed: {\n showNothing () {\n return !this.showPublic && !this.showUnlisted && !this.showPrivate && !this.showDirect\n },\n showPublic () {\n return this.originalScope !== 'direct' && this.shouldShow('public')\n },\n showLocal () {\n return this.originalScope !== 'direct' && this.shouldShow('local')\n },\n showUnlisted () {\n return this.originalScope !== 'direct' && this.shouldShow('unlisted')\n },\n showPrivate () {\n return this.originalScope !== 'direct' && this.shouldShow('private')\n },\n showDirect () {\n return this.shouldShow('direct')\n },\n css () {\n return {\n public: { selected: this.currentScope === 'public' },\n unlisted: { selected: this.currentScope === 'unlisted' },\n private: { selected: this.currentScope === 'private' },\n direct: { selected: this.currentScope === 'direct' },\n local: { selected: this.currentScope === 'local' }\n }\n }\n },\n methods: {\n shouldShow (scope) {\n return this.showAll ||\n this.currentScope === scope ||\n this.originalScope === scope ||\n this.userDefault === scope ||\n scope === 'direct'\n },\n changeVis (scope) {\n this.currentScope = scope\n this.onScopeChange && this.onScopeChange(scope)\n }\n }\n}\n\nexport default ScopeSelector\n","import { render } from \"./scope_selector.vue?vue&type=template&id=4ebab9b5\"\nimport script from \"./scope_selector.js?vue&type=script&lang=js\"\nexport * from \"./scope_selector.js?vue&type=script&lang=js\"\n\nimport \"./scope_selector.vue?vue&type=style&index=0&id=4ebab9b5&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { get, set } from 'lodash'\n\nconst defaultApi = ({ rootState, commit }, { path, value }) => {\n const params = {}\n set(params, path, value)\n return rootState\n .api\n .backendInteractor\n .updateProfile({ params })\n .then(result => {\n commit('addNewUsers', [result])\n commit('setCurrentUser', result)\n })\n}\n\nconst notificationsApi = ({ rootState, commit }, { path, value, oldValue }) => {\n const settings = {}\n set(settings, path, value)\n return rootState\n .api\n .backendInteractor\n .updateNotificationSettings({ settings })\n .then(result => {\n if (result.status === 'success') {\n commit('confirmServerSideOption', { name, value })\n } else {\n commit('confirmServerSideOption', { name, value: oldValue })\n }\n })\n}\n\n/**\n * Map that stores relation between path for reading (from user profile),\n * for writing (into API) an what API to use.\n *\n * Shorthand - instead of { get, set, api? } object it's possible to use string\n * in case default api is used and get = set\n *\n * If no api is specified, defaultApi is used (see above)\n */\nexport const settingsMap = {\n 'defaultScope': 'source.privacy',\n 'defaultNSFW': 'source.sensitive', // BROKEN: pleroma/pleroma#2837\n 'stripRichContent': {\n get: 'source.pleroma.no_rich_text',\n set: 'no_rich_text'\n },\n // Privacy\n 'locked': 'locked',\n 'acceptChatMessages': {\n get: 'pleroma.accepts_chat_messages',\n set: 'accepts_chat_messages'\n },\n 'allowFollowingMove': {\n get: 'pleroma.allow_following_move',\n set: 'allow_following_move'\n },\n 'discoverable': {\n get: 'source.pleroma.discoverable',\n set: 'discoverable'\n },\n 'hideFavorites': {\n get: 'pleroma.hide_favorites',\n set: 'hide_favorites'\n },\n 'hideFollowers': {\n get: 'pleroma.hide_followers',\n set: 'hide_followers'\n },\n 'hideFollows': {\n get: 'pleroma.hide_follows',\n set: 'hide_follows'\n },\n 'hideFollowersCount': {\n get: 'pleroma.hide_followers_count',\n set: 'hide_followers_count'\n },\n 'hideFollowsCount': {\n get: 'pleroma.hide_follows_count',\n set: 'hide_follows_count'\n },\n // NotificationSettingsAPIs\n 'webPushHideContents': {\n get: 'pleroma.notification_settings.hide_notification_contents',\n set: 'hide_notification_contents',\n api: notificationsApi\n },\n 'blockNotificationsFromStrangers': {\n get: 'pleroma.notification_settings.block_from_strangers',\n set: 'block_from_strangers',\n api: notificationsApi\n }\n}\n\nexport const defaultState = Object.fromEntries(Object.keys(settingsMap).map(key => [key, null]))\n\nconst serverSideConfig = {\n state: { ...defaultState },\n mutations: {\n confirmServerSideOption (state, { name, value }) {\n set(state, name, value)\n },\n wipeServerSideOption (state, { name }) {\n set(state, name, null)\n },\n wipeAllServerSideOptions (state) {\n Object.keys(settingsMap).forEach(key => {\n set(state, key, null)\n })\n },\n // Set the settings based on their path location\n setCurrentUser (state, user) {\n Object.entries(settingsMap).forEach((map) => {\n const [name, value] = map\n const { get: path = value } = value\n set(state, name, get(user._original, path))\n })\n }\n },\n actions: {\n setServerSideOption ({ rootState, state, commit, dispatch }, { name, value }) {\n const oldValue = get(state, name)\n const map = settingsMap[name]\n if (!map) throw new Error('Invalid server-side setting')\n const { set: path = map, api = defaultApi } = map\n commit('wipeServerSideOption', { name })\n\n api({ rootState, commit }, { path, value, oldValue })\n .catch((e) => {\n console.warn('Error setting server-side option:', e)\n commit('confirmServerSideOption', { name, value: oldValue })\n })\n },\n logout ({ commit }) {\n commit('wipeAllServerSideOptions')\n }\n }\n}\n\nexport default serverSideConfig\n","import isFunction from 'lodash/isFunction'\n\nconst getComponentOptions = (Component) => (isFunction(Component)) ? Component.options : Component\n\nconst getComponentProps = (Component) => getComponentOptions(Component).props\n\nexport {\n getComponentOptions,\n getComponentProps\n}\n","\n\n\n\n\n","import { reduce, find } from 'lodash'\n\nexport const replaceWord = (str, toReplace, replacement) => {\n return str.slice(0, toReplace.start) + replacement + str.slice(toReplace.end)\n}\n\nexport const wordAtPosition = (str, pos) => {\n const words = splitByWhitespaceBoundary(str)\n const wordsWithPosition = addPositionToWords(words)\n\n return find(wordsWithPosition, ({ start, end }) => start <= pos && end > pos)\n}\n\nexport const addPositionToWords = (words) => {\n return reduce(words, (result, word) => {\n const data = {\n word,\n start: 0,\n end: word.length\n }\n\n if (result.length > 0) {\n const previous = result.pop()\n\n data.start += previous.end\n data.end += previous.end\n\n result.push(previous)\n }\n\n result.push(data)\n\n return result\n }, [])\n}\n\nexport const splitByWhitespaceBoundary = (str) => {\n let result = []\n let currentWord = ''\n for (let i = 0; i < str.length; i++) {\n const currentChar = str[i]\n // Starting a new word\n if (!currentWord) {\n currentWord = currentChar\n continue\n }\n // current character is whitespace while word isn't, or vice versa:\n // add our current word to results, start over the current word.\n if (!!currentChar.trim() !== !!currentWord.trim()) {\n result.push(currentWord)\n currentWord = currentChar\n continue\n }\n currentWord += currentChar\n }\n // Add the last word we were working on\n if (currentWord) {\n result.push(currentWord)\n }\n return result\n}\n\nconst completion = {\n wordAtPosition,\n addPositionToWords,\n splitByWhitespaceBoundary,\n replaceWord\n}\n\nexport default completion\n","\n\n\n\n","import { defineAsyncComponent } from 'vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBoxOpen,\n faStickyNote,\n faSmileBeam\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faBoxOpen,\n faStickyNote,\n faSmileBeam\n)\n\n// At widest, approximately 20 emoji are visible in a row,\n// loading 3 rows, could be overkill for narrow picker\nconst LOAD_EMOJI_BY = 60\n\n// When to start loading new batch emoji, in pixels\nconst LOAD_EMOJI_MARGIN = 64\n\nconst filterByKeyword = (list, keyword = '') => {\n if (keyword === '') return list\n\n const keywordLowercase = keyword.toLowerCase()\n let orderedEmojiList = []\n for (const emoji of list) {\n const indexOfKeyword = emoji.displayText.toLowerCase().indexOf(keywordLowercase)\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n}\n\nconst EmojiPicker = {\n props: {\n enableStickerPicker: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n keyword: '',\n activeGroup: 'custom',\n showingStickers: false,\n groupsScrolledClass: 'scrolled-top',\n keepOpen: false,\n customEmojiBufferSlice: LOAD_EMOJI_BY,\n customEmojiTimeout: null,\n customEmojiLoadAllConfirmed: false\n }\n },\n components: {\n StickerPicker: defineAsyncComponent(() => import('../sticker_picker/sticker_picker.vue')),\n Checkbox\n },\n methods: {\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-failed', e)\n },\n onEmoji (emoji) {\n const value = emoji.imageUrl ? `:${emoji.displayText}:` : emoji.replacement\n this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen })\n },\n onScroll (e) {\n const target = (e && e.target) || this.$refs['emoji-groups']\n this.updateScrolledClass(target)\n this.scrolledGroup(target)\n this.triggerLoadMore(target)\n },\n highlight (key) {\n const ref = this.$refs['group-' + key]\n const top = ref.offsetTop\n this.setShowStickers(false)\n this.activeGroup = key\n this.$nextTick(() => {\n this.$refs['emoji-groups'].scrollTop = top + 1\n })\n },\n updateScrolledClass (target) {\n if (target.scrollTop <= 5) {\n this.groupsScrolledClass = 'scrolled-top'\n } else if (target.scrollTop >= target.scrollTopMax - 5) {\n this.groupsScrolledClass = 'scrolled-bottom'\n } else {\n this.groupsScrolledClass = 'scrolled-middle'\n }\n },\n triggerLoadMore (target) {\n const ref = this.$refs['group-end-custom']\n if (!ref) return\n const bottom = ref.offsetTop + ref.offsetHeight\n\n const scrollerBottom = target.scrollTop + target.clientHeight\n const scrollerTop = target.scrollTop\n const scrollerMax = target.scrollHeight\n\n // Loads more emoji when they come into view\n const approachingBottom = bottom - scrollerBottom < LOAD_EMOJI_MARGIN\n // Always load when at the very top in case there's no scroll space yet\n const atTop = scrollerTop < 5\n // Don't load when looking at unicode category or at the very bottom\n const bottomAboveViewport = bottom < scrollerTop || scrollerBottom === scrollerMax\n if (!bottomAboveViewport && (approachingBottom || atTop)) {\n this.loadEmoji()\n }\n },\n scrolledGroup (target) {\n const top = target.scrollTop + 5\n this.$nextTick(() => {\n this.emojisView.forEach(group => {\n const ref = this.$refs['group-' + group.id]\n if (ref.offsetTop <= top) {\n this.activeGroup = group.id\n }\n })\n })\n },\n loadEmoji () {\n const allLoaded = this.customEmojiBuffer.length === this.filteredEmoji.length\n\n if (allLoaded) {\n return\n }\n\n this.customEmojiBufferSlice += LOAD_EMOJI_BY\n },\n startEmojiLoad (forceUpdate = false) {\n if (!forceUpdate) {\n this.keyword = ''\n }\n this.$nextTick(() => {\n this.$refs['emoji-groups'].scrollTop = 0\n })\n const bufferSize = this.customEmojiBuffer.length\n const bufferPrefilledAll = bufferSize === this.filteredEmoji.length\n if (bufferPrefilledAll && !forceUpdate) {\n return\n }\n this.customEmojiBufferSlice = LOAD_EMOJI_BY\n },\n toggleStickers () {\n this.showingStickers = !this.showingStickers\n },\n setShowStickers (value) {\n this.showingStickers = value\n }\n },\n watch: {\n keyword () {\n this.customEmojiLoadAllConfirmed = false\n this.onScroll()\n this.startEmojiLoad(true)\n }\n },\n computed: {\n activeGroupView () {\n return this.showingStickers ? '' : this.activeGroup\n },\n stickersAvailable () {\n if (this.$store.state.instance.stickers) {\n return this.$store.state.instance.stickers.length > 0\n }\n return 0\n },\n filteredEmoji () {\n return filterByKeyword(\n this.$store.state.instance.customEmoji || [],\n this.keyword\n )\n },\n customEmojiBuffer () {\n return this.filteredEmoji.slice(0, this.customEmojiBufferSlice)\n },\n emojis () {\n const standardEmojis = this.$store.state.instance.emoji || []\n const customEmojis = this.customEmojiBuffer\n\n return [\n {\n id: 'custom',\n text: this.$t('emoji.custom'),\n icon: 'smile-beam',\n emojis: customEmojis\n },\n {\n id: 'standard',\n text: this.$t('emoji.unicode'),\n icon: 'box-open',\n emojis: filterByKeyword(standardEmojis, this.keyword)\n }\n ]\n },\n emojisView () {\n return this.emojis.filter(value => value.emojis.length > 0)\n },\n stickerPickerEnabled () {\n return (this.$store.state.instance.stickers || []).length !== 0\n }\n }\n}\n\nexport default EmojiPicker\n","import { render } from \"./emoji_picker.vue?vue&type=template&id=50bb08b3\"\nimport script from \"./emoji_picker.js?vue&type=script&lang=js\"\nexport * from \"./emoji_picker.js?vue&type=script&lang=js\"\n\nimport \"./emoji_picker.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Completion from '../../services/completion/completion.js'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport { take } from 'lodash'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faSmileBeam\n)\n\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of and