logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma

app.b8f44da2ac716a701055.js.map (1819858B)


      1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/services/color_convert/color_convert.js","webpack:///./src/services/entity_normalizer/entity_normalizer.service.js","webpack:///./src/services/user_profile_link_generator/user_profile_link_generator.js","webpack:///./src/services/errors/errors.js","webpack:///./src/modules/errors.js","webpack:///./src/services/api/api.service.js","webpack:///src/components/checkbox/checkbox.vue","webpack:///./src/components/checkbox/checkbox.vue","webpack:///./src/components/checkbox/checkbox.vue?d842","webpack:///./src/services/notification_utils/notification_utils.js","webpack:///./src/services/file_type/file_type.service.js","webpack:///./src/components/user_avatar/user_avatar.js","webpack:///./src/components/user_avatar/user_avatar.vue","webpack:///./src/components/user_avatar/user_avatar.vue?7f9b","webpack:///./src/components/dialog_modal/dialog_modal.js","webpack:///./src/components/dialog_modal/dialog_modal.vue","webpack:///./src/components/dialog_modal/dialog_modal.vue?5301","webpack:///./src/components/moderation_tools/moderation_tools.js","webpack:///./src/components/moderation_tools/moderation_tools.vue","webpack:///./src/components/moderation_tools/moderation_tools.vue?ab91","webpack:///./src/components/account_actions/account_actions.js","webpack:///./src/components/account_actions/account_actions.vue","webpack:///./src/components/account_actions/account_actions.vue?8483","webpack:///./src/components/user_card/user_card.js","webpack:///./src/components/user_card/user_card.vue","webpack:///./src/components/user_card/user_card.vue?b2e3","webpack:///./src/components/popover/popover.js","webpack:///./src/components/popover/popover.vue","webpack:///./src/components/popover/popover.vue?46e2","webpack:///./src/components/favorite_button/favorite_button.js","webpack:///./src/components/favorite_button/favorite_button.vue","webpack:///./src/components/favorite_button/favorite_button.vue?d75b","webpack:///./src/components/react_button/react_button.js","webpack:///./src/components/react_button/react_button.vue","webpack:///./src/components/react_button/react_button.vue?875f","webpack:///./src/components/retweet_button/retweet_button.js","webpack:///./src/components/retweet_button/retweet_button.vue","webpack:///./src/components/retweet_button/retweet_button.vue?98e9","webpack:///./src/components/extra_buttons/extra_buttons.js","webpack:///./src/components/extra_buttons/extra_buttons.vue","webpack:///./src/components/extra_buttons/extra_buttons.vue?221f","webpack:///./src/components/status_popover/status_popover.js","webpack:///./src/components/status_popover/status_popover.vue","webpack:///./src/components/status_popover/status_popover.vue?1d9f","webpack:///./src/components/emoji_reactions/emoji_reactions.js","webpack:///./src/components/emoji_reactions/emoji_reactions.vue","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?c07b","webpack:///./src/components/status/status.js","webpack:///./src/components/status/status.vue","webpack:///./src/components/status/status.vue?05ba","webpack:///./src/services/date_utils/date_utils.js","webpack:///./src/components/media_upload/media_upload.js","webpack:///./src/components/media_upload/media_upload.vue","webpack:///./src/components/media_upload/media_upload.vue?fd49","webpack:///./src/components/poll/poll_form.js","webpack:///./src/components/poll/poll_form.vue","webpack:///./src/components/poll/poll_form.vue?41d8","webpack:///./src/components/post_status_form/post_status_form.js","webpack:///./src/components/post_status_form/post_status_form.vue","webpack:///./src/components/post_status_form/post_status_form.vue?4be2","webpack:///src/components/progress_button/progress_button.vue","webpack:///./src/components/progress_button/progress_button.vue","webpack:///./src/components/progress_button/progress_button.vue?6be4","webpack:///./src/components/still-image/still-image.js","webpack:///./src/components/still-image/still-image.vue","webpack:///./src/components/still-image/still-image.vue?cd25","webpack:///src/components/timeago/timeago.vue","webpack:///./src/components/timeago/timeago.vue","webpack:///./src/components/timeago/timeago.vue?d70d","webpack:///./src/services/user_highlighter/user_highlighter.js","webpack:///./src/components/tab_switcher/tab_switcher.js","webpack:///./src/components/poll/poll.js","webpack:///./src/components/poll/poll.vue","webpack:///./src/components/poll/poll.vue?8a30","webpack:///./src/components/status_content/status_content.js","webpack:///./src/services/tiny_post_html_processor/tiny_post_html_processor.service.js","webpack:///./src/services/matcher/matcher.service.js","webpack:///./src/components/status_content/status_content.vue","webpack:///./src/components/status_content/status_content.vue?ef1f","webpack:///./src/components/attachment/attachment.js","webpack:///./src/components/attachment/attachment.vue","webpack:///./src/components/attachment/attachment.vue?d008","webpack:///./src/services/file_size_format/file_size_format.js","webpack:///./src/components/emoji_input/suggestor.js","webpack:///./src/services/status_poster/status_poster.service.js","webpack:///./src/services/offset_finder/offset_finder.service.js","webpack:///./src/services/completion/completion.js","webpack:///./src/components/emoji_picker/emoji_picker.js","webpack:///./src/components/emoji_picker/emoji_picker.vue","webpack:///./src/components/emoji_picker/emoji_picker.vue?3a64","webpack:///./src/components/emoji_input/emoji_input.js","webpack:///./src/components/emoji_input/emoji_input.vue","webpack:///./src/components/emoji_input/emoji_input.vue?5e8c","webpack:///./src/services/follow_manipulate/follow_manipulate.js","webpack:///./src/components/follow_button/follow_button.js","webpack:///./src/components/follow_button/follow_button.vue","webpack:///./src/components/follow_button/follow_button.vue?8c95","webpack:///./src/components/scope_selector/scope_selector.js","webpack:///./src/components/scope_selector/scope_selector.vue","webpack:///./src/components/scope_selector/scope_selector.vue?4ef5","webpack:///./src/components/video_attachment/video_attachment.js","webpack:///./src/components/video_attachment/video_attachment.vue","webpack:///./src/components/video_attachment/video_attachment.vue?695e","webpack:///./src/components/remote_follow/remote_follow.js","webpack:///./src/components/remote_follow/remote_follow.vue","webpack:///./src/components/remote_follow/remote_follow.vue?deba","webpack:///./src/components/avatar_list/avatar_list.js","webpack:///./src/components/avatar_list/avatar_list.vue","webpack:///./src/components/avatar_list/avatar_list.vue?e3d4","webpack:///./src/components/gallery/gallery.js","webpack:///./src/components/gallery/gallery.vue","webpack:///./src/components/gallery/gallery.vue?7739","webpack:///./src/components/link-preview/link-preview.js","webpack:///./src/components/link-preview/link-preview.vue","webpack:///./src/components/link-preview/link-preview.vue?7d0d","webpack:///./src/assets/nsfw.png","webpack:///./src/components/timeline/timeline.vue?f674","webpack:///./src/components/timeline/timeline.vue?d6bb","webpack:///./src/components/status/status.vue?fa33","webpack:///./src/components/status/status.vue?733b","webpack:///./src/components/favorite_button/favorite_button.vue?0184","webpack:///./src/components/favorite_button/favorite_button.vue?9b9b","webpack:///./src/components/react_button/react_button.vue?f6fc","webpack:///./src/components/react_button/react_button.vue?5317","webpack:///./src/components/popover/popover.vue?1bf1","webpack:///./src/components/popover/popover.vue?333e","webpack:///./src/components/retweet_button/retweet_button.vue?8eee","webpack:///./src/components/retweet_button/retweet_button.vue?ecd9","webpack:///./src/components/extra_buttons/extra_buttons.vue?2134","webpack:///./src/components/extra_buttons/extra_buttons.vue?bef5","webpack:///./src/components/post_status_form/post_status_form.vue?fd6e","webpack:///./src/components/post_status_form/post_status_form.vue?5887","webpack:///./src/components/media_upload/media_upload.vue?d613","webpack:///./src/components/media_upload/media_upload.vue?1e11","webpack:///./src/components/scope_selector/scope_selector.vue?baf6","webpack:///./src/components/scope_selector/scope_selector.vue?341e","webpack:///./src/components/emoji_input/emoji_input.vue?88c6","webpack:///./src/components/emoji_input/emoji_input.vue?c0d0","webpack:///./src/components/emoji_picker/emoji_picker.scss?a54d","webpack:///./src/components/emoji_picker/emoji_picker.scss","webpack:///./src/components/checkbox/checkbox.vue?3599","webpack:///./src/components/checkbox/checkbox.vue?bf55","webpack:///./src/components/poll/poll_form.vue?43b8","webpack:///./src/components/poll/poll_form.vue?f333","webpack:///./src/components/user_card/user_card.vue?1920","webpack:///./src/components/user_card/user_card.vue?a3c0","webpack:///./src/components/user_avatar/user_avatar.vue?aac8","webpack:///./src/components/user_avatar/user_avatar.vue?6951","webpack:///./src/components/still-image/still-image.vue?21db","webpack:///./src/components/still-image/still-image.vue?da13","webpack:///./src/components/remote_follow/remote_follow.vue?44cd","webpack:///./src/components/remote_follow/remote_follow.vue?2689","webpack:///./src/components/moderation_tools/moderation_tools.vue?3b42","webpack:///./src/components/moderation_tools/moderation_tools.vue?870b","webpack:///./src/components/dialog_modal/dialog_modal.vue?66ca","webpack:///./src/components/dialog_modal/dialog_modal.vue?e653","webpack:///./src/components/account_actions/account_actions.vue?755f","webpack:///./src/components/account_actions/account_actions.vue?1dab","webpack:///./src/components/avatar_list/avatar_list.vue?83d0","webpack:///./src/components/avatar_list/avatar_list.vue?4546","webpack:///./src/components/status_content/status_content.vue?2f26","webpack:///./src/components/status_content/status_content.vue?6841","webpack:///./src/components/attachment/attachment.vue?4fa7","webpack:///./src/components/attachment/attachment.vue?5971","webpack:///./src/components/poll/poll.vue?7318","webpack:///./src/components/poll/poll.vue?192f","webpack:///./src/components/gallery/gallery.vue?ea2c","webpack:///./src/components/gallery/gallery.vue?759e","webpack:///./src/components/link-preview/link-preview.vue?95df","webpack:///./src/components/link-preview/link-preview.vue?40b7","webpack:///./src/components/status_popover/status_popover.vue?91c2","webpack:///./src/components/status_popover/status_popover.vue?2f11","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?bab1","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?6021","webpack:///./src/components/conversation/conversation.vue?e1e5","webpack:///./src/components/conversation/conversation.vue?e01a","webpack:///./src/components/notifications/notifications.scss?c04f","webpack:///./src/components/notifications/notifications.scss","webpack:///./src/components/chat_list/chat_list.vue?81f0","webpack:///./src/components/chat_list/chat_list.vue?e459","webpack:///./src/components/chat_list_item/chat_list_item.vue?5950","webpack:///./src/components/chat_list_item/chat_list_item.vue?c379","webpack:///./src/components/chat_avatar/chat_avatar.vue?ee05","webpack:///./src/components/chat_avatar/chat_avatar.vue?4917","webpack:///./src/components/chat_title/chat_title.vue?5034","webpack:///./src/components/chat_title/chat_title.vue?11d1","webpack:///./src/components/chat_new/chat_new.vue?b3ff","webpack:///./src/components/chat_new/chat_new.vue?4b23","webpack:///./src/components/basic_user_card/basic_user_card.vue?ba41","webpack:///./src/components/basic_user_card/basic_user_card.vue?0481","webpack:///./src/components/list/list.vue?17ca","webpack:///./src/components/list/list.vue?e2c8","webpack:///./src/components/chat/chat.vue?445e","webpack:///./src/components/chat/chat.vue?559d","webpack:///./src/components/chat_message/chat_message.vue?7fac","webpack:///./src/components/chat_message/chat_message.vue?9c38","webpack:///./src/components/user_profile/user_profile.vue?7fb4","webpack:///./src/components/user_profile/user_profile.vue?899c","webpack:///./src/components/follow_card/follow_card.vue?5688","webpack:///./src/components/follow_card/follow_card.vue?ad43","webpack:///./src/components/search/search.vue?9825","webpack:///./src/components/search/search.vue?e198","webpack:///./src/components/style_switcher/style_switcher.scss?411b","webpack:///./src/components/style_switcher/style_switcher.scss","webpack:///./src/components/color_input/color_input.scss?c457","webpack:///./src/components/color_input/color_input.scss","webpack:///./src/components/color_input/color_input.vue?6a4c","webpack:///./src/components/color_input/color_input.vue?bb22","webpack:///./src/components/shadow_control/shadow_control.vue?bfd4","webpack:///./src/components/shadow_control/shadow_control.vue?78ef","webpack:///./src/components/font_control/font_control.vue?5f33","webpack:///./src/components/font_control/font_control.vue?bef4","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?a340","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?32fa","webpack:///./src/components/style_switcher/preview.vue?9c8a","webpack:///./src/components/style_switcher/preview.vue?9b95","webpack:///./src/components/export_import/export_import.vue?5952","webpack:///./src/components/export_import/export_import.vue?aed6","webpack:///./src/components/registration/registration.vue?d518","webpack:///./src/components/registration/registration.vue?fd73","webpack:///./src/components/password_reset/password_reset.vue?d048","webpack:///./src/components/password_reset/password_reset.vue?5ec5","webpack:///./src/components/user_settings/user_settings.vue?1522","webpack:///./src/components/user_settings/user_settings.vue?6575","webpack:///./src/components/image_cropper/image_cropper.vue?f169","webpack:///./src/components/image_cropper/image_cropper.vue?6235","webpack:///./src/components/block_card/block_card.vue?7ad7","webpack:///./src/components/block_card/block_card.vue?ddc8","webpack:///./src/components/mute_card/mute_card.vue?c72f","webpack:///./src/components/mute_card/mute_card.vue?1268","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?a613","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?c85e","webpack:///./src/components/selectable_list/selectable_list.vue?a6e3","webpack:///./src/components/selectable_list/selectable_list.vue?c2f8","webpack:///./src/components/autosuggest/autosuggest.vue?9908","webpack:///./src/components/autosuggest/autosuggest.vue?9383","webpack:///./src/components/importer/importer.vue?7798","webpack:///./src/components/importer/importer.vue?6af6","webpack:///./src/components/exporter/exporter.vue?dea3","webpack:///./src/components/exporter/exporter.vue?cc2b","webpack:///./src/components/user_settings/mfa.vue?6a62","webpack:///./src/components/user_settings/mfa.vue?64d1","webpack:///./src/components/user_settings/mfa_backup_codes.vue?922c","webpack:///./src/components/user_settings/mfa_backup_codes.vue?4206","webpack:///./src/components/follow_request_card/follow_request_card.vue?c9e7","webpack:///./src/components/follow_request_card/follow_request_card.vue?b0bb","webpack:///./src/components/login_form/login_form.vue?99e8","webpack:///./src/components/login_form/login_form.vue?9c6d","webpack:///./src/components/chat_panel/chat_panel.vue?9dd9","webpack:///./src/components/chat_panel/chat_panel.vue?d094","webpack:///./src/components/who_to_follow/who_to_follow.vue?6f47","webpack:///./src/components/who_to_follow/who_to_follow.vue?4eb6","webpack:///./src/components/about/about.vue?47a2","webpack:///./src/components/about/about.vue?7cdd","webpack:///./src/components/features_panel/features_panel.vue?b8ab","webpack:///./src/components/features_panel/features_panel.vue?867d","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?7e97","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?7643","webpack:///./src/components/staff_panel/staff_panel.vue?020d","webpack:///./src/components/staff_panel/staff_panel.vue?a8d5","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?eece","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?6ed6","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue?7d1a","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue?f8d3","webpack:///./src/App.scss?b70d","webpack:///./src/App.scss","webpack:///./src/components/user_panel/user_panel.vue?e12b","webpack:///./src/components/user_panel/user_panel.vue?63b4","webpack:///./src/components/nav_panel/nav_panel.vue?7be9","webpack:///./src/components/nav_panel/nav_panel.vue?be5f","webpack:///./src/components/search_bar/search_bar.vue?269b","webpack:///./src/components/search_bar/search_bar.vue?0fb3","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?2f6b","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?1274","webpack:///./src/components/media_modal/media_modal.vue?2930","webpack:///./src/components/media_modal/media_modal.vue?1d79","webpack:///./src/components/modal/modal.vue?a37f","webpack:///./src/components/modal/modal.vue?328d","webpack:///./src/components/side_drawer/side_drawer.vue?472d","webpack:///./src/components/side_drawer/side_drawer.vue?fcf9","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?1868","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?7cf2","webpack:///./src/components/mobile_nav/mobile_nav.vue?46cb","webpack:///./src/components/mobile_nav/mobile_nav.vue?9a0e","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?7889","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?1af4","webpack:///./src/components/post_status_modal/post_status_modal.vue?892e","webpack:///./src/components/post_status_modal/post_status_modal.vue?b34c","webpack:///./src/lib/event_target_polyfill.js","webpack:///./src/modules/interface.js","webpack:///./src/services/theme_data/pleromafe.js","webpack:///./src/services/theme_data/theme_data.service.js","webpack:///./src/services/style_setter/style_setter.js","webpack:///./src/modules/config.js","webpack:///./src/modules/instance.js","webpack:///./src/modules/statuses.js","webpack:///./src/services/timeline_fetcher/timeline_fetcher.service.js","webpack:///./src/services/notifications_fetcher/notifications_fetcher.service.js","webpack:///./src/services/follow_request_fetcher/follow_request_fetcher.service.js","webpack:///./src/services/backend_interactor_service/backend_interactor_service.js","webpack:///./src/services/new_api/oauth.js","webpack:///./src/services/push/push.js","webpack:///./src/modules/users.js","webpack:///./src/modules/api.js","webpack:///./src/modules/chat.js","webpack:///./src/modules/oauth.js","webpack:///./src/modules/auth_flow.js","webpack:///./src/modules/media_viewer.js","webpack:///./src/modules/oauth_tokens.js","webpack:///./src/modules/reports.js","webpack:///./src/modules/polls.js","webpack:///./src/modules/postStatus.js","webpack:///./src/services/chat_service/chat_service.js","webpack:///./src/modules/chats.js","webpack:///./src/lib/persisted_state.js","webpack:///./src/lib/push_notifications_plugin.js","webpack:///./src/directives/body_scroll_lock.js","webpack:///./src/i18n/messages.js","webpack:///./src/components/conversation/conversation.js","webpack:///./src/components/conversation/conversation.vue","webpack:///./src/components/conversation/conversation.vue?84c4","webpack:///./src/components/timeline/timeline.js","webpack:///./src/components/timeline/timeline.vue","webpack:///./src/components/timeline/timeline.vue?c4eb","webpack:///./src/components/public_timeline/public_timeline.js","webpack:///./src/components/public_timeline/public_timeline.vue","webpack:///./src/components/public_timeline/public_timeline.vue?bba0","webpack:///./src/components/public_and_external_timeline/public_and_external_timeline.js","webpack:///./src/components/public_and_external_timeline/public_and_external_timeline.vue","webpack:///./src/components/public_and_external_timeline/public_and_external_timeline.vue?0d56","webpack:///./src/components/friends_timeline/friends_timeline.js","webpack:///./src/components/friends_timeline/friends_timeline.vue","webpack:///./src/components/friends_timeline/friends_timeline.vue?0810","webpack:///./src/components/tag_timeline/tag_timeline.js","webpack:///./src/components/tag_timeline/tag_timeline.vue","webpack:///./src/components/tag_timeline/tag_timeline.vue?ee38","webpack:///./src/components/conversation-page/conversation-page.js","webpack:///./src/components/conversation-page/conversation-page.vue","webpack:///./src/components/conversation-page/conversation-page.vue?d63c","webpack:///./src/components/notification/notification.js","webpack:///./src/components/notification/notification.vue","webpack:///./src/components/notification/notification.vue?f54c","webpack:///./src/components/notifications/notifications.js","webpack:///./src/components/notifications/notifications.vue","webpack:///./src/components/notifications/notifications.vue?a489","webpack:///./src/components/interactions/interactions.js","webpack:///./src/components/interactions/interactions.vue","webpack:///./src/components/interactions/interactions.vue?db62","webpack:///./src/components/dm_timeline/dm_timeline.js","webpack:///./src/components/dm_timeline/dm_timeline.vue","webpack:///./src/components/dm_timeline/dm_timeline.vue?4177","webpack:///./src/components/chat_avatar/chat_avatar.js","webpack:///./src/components/chat_avatar/chat_avatar.vue","webpack:///./src/components/chat_avatar/chat_avatar.vue?1494","webpack:///./src/components/chat_title/chat_title.js","webpack:///./src/components/chat_title/chat_title.vue","webpack:///./src/components/chat_title/chat_title.vue?b62f","webpack:///./src/components/chat_list_item/chat_list_item.js","webpack:///./src/components/chat_list_item/chat_list_item.vue","webpack:///./src/components/chat_list_item/chat_list_item.vue?e28e","webpack:///./src/components/basic_user_card/basic_user_card.js","webpack:///./src/components/basic_user_card/basic_user_card.vue","webpack:///./src/components/basic_user_card/basic_user_card.vue?78e9","webpack:///./src/components/chat_new/chat_new.js","webpack:///./src/components/chat_new/chat_new.vue","webpack:///./src/components/chat_new/chat_new.vue?a48f","webpack:///src/components/list/list.vue","webpack:///./src/components/list/list.vue","webpack:///./src/components/list/list.vue?c7b8","webpack:///./src/services/component_utils/component_utils.js","webpack:///./src/hocs/with_load_more/with_load_more.js","webpack:///./src/components/chat_list/chat_list.js","webpack:///./src/components/chat_list/chat_list.vue","webpack:///./src/components/chat_list/chat_list.vue?ff5c","webpack:///src/components/chat_message_date/chat_message_date.vue","webpack:///./src/components/chat_message_date/chat_message_date.vue","webpack:///./src/components/chat_message_date/chat_message_date.vue?cd05","webpack:///./src/components/chat_message/chat_message.js","webpack:///./src/components/chat_message/chat_message.vue","webpack:///./src/components/chat_message/chat_message.vue?5fb6","webpack:///./src/components/chat/chat.js","webpack:///./src/components/chat/chat.vue","webpack:///./src/components/chat/chat.vue?b2b3","webpack:///./src/components/follow_card/follow_card.js","webpack:///./src/components/follow_card/follow_card.vue","webpack:///./src/components/follow_card/follow_card.vue?49f0","webpack:///./src/components/user_profile/user_profile.js","webpack:///./src/components/user_profile/user_profile.vue","webpack:///./src/components/user_profile/user_profile.vue?38c6","webpack:///./src/components/search/search.js","webpack:///./src/components/search/search.vue","webpack:///./src/components/search/search.vue?ec9a","webpack:///src/components/color_input/color_input.vue","webpack:///./src/components/color_input/color_input.vue","webpack:///./src/components/color_input/color_input.vue?3d5b","webpack:///./src/components/range_input/range_input.vue","webpack:///src/components/range_input/range_input.vue","webpack:///./src/components/range_input/range_input.vue?202a","webpack:///src/components/opacity_input/opacity_input.vue","webpack:///./src/components/opacity_input/opacity_input.vue","webpack:///./src/components/opacity_input/opacity_input.vue?0078","webpack:///./src/components/shadow_control/shadow_control.js","webpack:///./src/components/shadow_control/shadow_control.vue","webpack:///./src/components/shadow_control/shadow_control.vue?c9d6","webpack:///./src/components/font_control/font_control.js","webpack:///./src/components/font_control/font_control.vue","webpack:///./src/components/font_control/font_control.vue?184b","webpack:///src/components/contrast_ratio/contrast_ratio.vue","webpack:///./src/components/contrast_ratio/contrast_ratio.vue","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?73bf","webpack:///./src/components/style_switcher/preview.vue","webpack:///./src/components/style_switcher/preview.vue?99be","webpack:///src/components/export_import/export_import.vue","webpack:///./src/components/export_import/export_import.vue","webpack:///./src/components/export_import/export_import.vue?9130","webpack:///./src/components/style_switcher/style_switcher.js","webpack:///./src/components/style_switcher/style_switcher.vue","webpack:///./src/components/style_switcher/style_switcher.vue?b96d","webpack:///src/components/interface_language_switcher/interface_language_switcher.vue","webpack:///./src/components/interface_language_switcher/interface_language_switcher.vue","webpack:///./src/components/interface_language_switcher/interface_language_switcher.vue?da5c","webpack:///./src/components/settings/settings.js","webpack:///./src/services/version/version.service.js","webpack:///./src/components/settings/settings.vue","webpack:///./src/components/settings/settings.vue?d83a","webpack:///./src/components/registration/registration.js","webpack:///./src/components/registration/registration.vue","webpack:///./src/components/registration/registration.vue?3c1d","webpack:///./src/services/new_api/password_reset.js","webpack:///./src/components/password_reset/password_reset.js","webpack:///./src/components/password_reset/password_reset.vue","webpack:///./src/components/password_reset/password_reset.vue?4c1d","webpack:///./src/components/image_cropper/image_cropper.js","webpack:///./src/components/image_cropper/image_cropper.vue","webpack:///./src/components/image_cropper/image_cropper.vue?017e","webpack:///./src/components/block_card/block_card.js","webpack:///./src/components/block_card/block_card.vue","webpack:///./src/components/block_card/block_card.vue?7b44","webpack:///./src/components/mute_card/mute_card.js","webpack:///./src/components/mute_card/mute_card.vue","webpack:///./src/components/mute_card/mute_card.vue?6bc9","webpack:///./src/components/domain_mute_card/domain_mute_card.js","webpack:///./src/components/domain_mute_card/domain_mute_card.vue","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?25b9","webpack:///./src/components/selectable_list/selectable_list.js","webpack:///./src/components/selectable_list/selectable_list.vue","webpack:///./src/components/selectable_list/selectable_list.vue?5686","webpack:///./src/components/autosuggest/autosuggest.js","webpack:///./src/components/autosuggest/autosuggest.vue","webpack:///./src/components/autosuggest/autosuggest.vue?b400","webpack:///./src/components/importer/importer.js","webpack:///./src/components/importer/importer.vue","webpack:///./src/components/importer/importer.vue?320c","webpack:///./src/components/exporter/exporter.js","webpack:///./src/components/exporter/exporter.vue","webpack:///./src/components/exporter/exporter.vue?7e42","webpack:///./src/hocs/with_subscription/with_subscription.js","webpack:///./src/components/user_settings/mfa_backup_codes.js","webpack:///./src/components/user_settings/mfa_backup_codes.vue","webpack:///./src/components/user_settings/mfa_backup_codes.vue?c289","webpack:///./src/components/user_settings/confirm.js","webpack:///./src/components/user_settings/confirm.vue","webpack:///./src/components/user_settings/confirm.vue?7c4c","webpack:///./src/components/user_settings/mfa_totp.js","webpack:///./src/components/user_settings/mfa.js","webpack:///./src/components/user_settings/mfa_totp.vue","webpack:///./src/components/user_settings/mfa_totp.vue?d10c","webpack:///./src/components/user_settings/mfa.vue","webpack:///./src/components/user_settings/mfa.vue?5102","webpack:///./src/components/user_settings/user_settings.js","webpack:///./src/components/user_settings/user_settings.vue","webpack:///./src/components/user_settings/user_settings.vue?ccbc","webpack:///./src/components/follow_request_card/follow_request_card.js","webpack:///./src/components/follow_request_card/follow_request_card.vue","webpack:///./src/components/follow_requests/follow_requests.js","webpack:///./src/components/follow_request_card/follow_request_card.vue?e2ae","webpack:///./src/components/follow_requests/follow_requests.vue","webpack:///./src/components/follow_requests/follow_requests.vue?6944","webpack:///./src/components/oauth_callback/oauth_callback.js","webpack:///./src/components/oauth_callback/oauth_callback.vue","webpack:///./src/components/oauth_callback/oauth_callback.vue?99e7","webpack:///./src/components/login_form/login_form.js","webpack:///./src/components/login_form/login_form.vue","webpack:///./src/components/login_form/login_form.vue?ec94","webpack:///./src/services/new_api/mfa.js","webpack:///./src/components/mfa_form/recovery_form.js","webpack:///./src/components/mfa_form/recovery_form.vue","webpack:///./src/components/mfa_form/recovery_form.vue?9df7","webpack:///./src/components/mfa_form/totp_form.js","webpack:///./src/components/mfa_form/totp_form.vue","webpack:///./src/components/mfa_form/totp_form.vue?2e19","webpack:///./src/components/auth_form/auth_form.js","webpack:///./src/components/chat_panel/chat_panel.js","webpack:///./src/components/chat_panel/chat_panel.vue","webpack:///./src/components/chat_panel/chat_panel.vue?3953","webpack:///./src/components/who_to_follow/who_to_follow.js","webpack:///./src/components/who_to_follow/who_to_follow.vue","webpack:///./src/components/who_to_follow/who_to_follow.vue?4a17","webpack:///./src/components/instance_specific_panel/instance_specific_panel.js","webpack:///./src/components/instance_specific_panel/instance_specific_panel.vue","webpack:///./src/components/instance_specific_panel/instance_specific_panel.vue?3490","webpack:///./src/components/features_panel/features_panel.js","webpack:///./src/components/features_panel/features_panel.vue","webpack:///./src/components/features_panel/features_panel.vue?33c8","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.js","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?25e4","webpack:///./src/components/staff_panel/staff_panel.js","webpack:///./src/components/staff_panel/staff_panel.vue","webpack:///./src/components/staff_panel/staff_panel.vue?0ab8","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.js","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue","webpack:///./src/components/about/about.js","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?8c91","webpack:///./src/components/about/about.vue","webpack:///./src/components/about/about.vue?7acf","webpack:///./src/components/remote_user_resolver/remote_user_resolver.js","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue?5c98","webpack:///./src/boot/routes.js","webpack:///./src/components/user_panel/user_panel.js","webpack:///./src/components/user_panel/user_panel.vue","webpack:///./src/components/user_panel/user_panel.vue?ecb6","webpack:///./src/components/nav_panel/nav_panel.js","webpack:///./src/components/nav_panel/nav_panel.vue","webpack:///./src/components/nav_panel/nav_panel.vue?26d3","webpack:///./src/components/search_bar/search_bar.js","webpack:///./src/components/search_bar/search_bar.vue","webpack:///./src/components/search_bar/search_bar.vue?fd14","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.js","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?3d0c","webpack:///src/components/modal/modal.vue","webpack:///./src/components/modal/modal.vue","webpack:///./src/components/modal/modal.vue?b865","webpack:///./src/services/gesture_service/gesture_service.js","webpack:///./src/components/media_modal/media_modal.js","webpack:///./src/components/media_modal/media_modal.vue","webpack:///./src/components/media_modal/media_modal.vue?edc8","webpack:///./src/components/side_drawer/side_drawer.js","webpack:///./src/components/side_drawer/side_drawer.vue","webpack:///./src/components/side_drawer/side_drawer.vue?1532","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.js","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?c48d","webpack:///./src/components/mobile_nav/mobile_nav.js","webpack:///./src/components/mobile_nav/mobile_nav.vue","webpack:///./src/components/mobile_nav/mobile_nav.vue?4e77","webpack:///./src/components/user_reporting_modal/user_reporting_modal.js","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?5d77","webpack:///./src/components/post_status_modal/post_status_modal.js","webpack:///./src/components/post_status_modal/post_status_modal.vue","webpack:///./src/components/post_status_modal/post_status_modal.vue?e267","webpack:///./src/services/window_utils/window_utils.js","webpack:///./src/App.js","webpack:///./src/App.vue","webpack:///./src/App.vue?9590","webpack:///./src/boot/after_store.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","2","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","rgb2hex","g","b","_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2___default","_r","_map","map","val","Math","ceil","_map2","_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default","concat","toString","srgbToLinear","srgb","split","reduce","acc","bit","pow","c2linear","relativeLuminance","_srgbToLinear","getContrastRatio","a","la","lb","_ref","_ref2","getContrastRatioLayers","text","layers","bedrock","alphaBlendLayers","alphaBlend","fg","fga","bg","_ref3","_ref4","color","opacity","hex2rgb","hex","exec","parseInt","mixrgb","k","rgba2css","rgba","floor","getTextColor","preserve","base","assign","invertLightness","rgb","contrastRatio","getCssColor","input","startsWith","_objectSpread","__webpack_exports__","parseUser","parseAttachment","parseStatus","parseNotification","parseChat","parseChatMessage","escape_html__WEBPACK_IMPORTED_MODULE_0__","escape_html__WEBPACK_IMPORTED_MODULE_0___default","_notification_utils_notification_utils_js__WEBPACK_IMPORTED_MODULE_1__","output","masto","mastoShort","id","String","screen_name","acct","statusnet_profile_url","url","display_name","name_html","addEmojis","escape","emojis","description","note","description_html","fields","fields_html","field","profile_image_url","avatar","profile_image_url_original","cover_photo","header","friends_count","following_count","bot","pleroma","relationship","background_image","favicon","token","chat_token","allow_following_move","hide_follows","hide_followers","hide_follows_count","hide_followers_count","rights","moderator","is_moderator","admin","is_admin","role","source","default_scope","privacy","no_rich_text","show_role","discoverable","is_local","includes","delete_others_notice","muting","muted","blocking","statusnet_blocking","followed_by","follows_you","following","created_at","Date","locked","followers_count","statuses_count","friendIds","followerIds","pinnedStatusIds","follow_request_count","tags","deactivated","notification_settings","unread_chat_count","mimetype","mime_type","meta","string","matchOperatorsRegex","emoji","regexSafeShortCode","shortcode","replace","RegExp","status","favorited","favourited","fave_num","favourites_count","repeated","reblogged","repeat_num","reblogs_count","reblog","nsfw","sensitive","statusnet_html","content","summary","spoiler_text","statusnet_conversation_id","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","thread_muted","emoji_reactions","in_reply_to_status_id","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","retweeted_status","summary_html","external_url","poll","pinned","is_post_verb","uri","match","qvitter_delete_notice","activity_type","isNsfw","visibility","card","user","account","attentions","mentions","attachments","media_attachments","retweetedStatus","favoritedBy","rebloggedBy","favourite","seen","is_seen","isStatusNotification","chatMessage","chat_message","action","from_profile","parsedNotice","notice","ntype","Boolean","favorited_status","chat","unread","lastMessage","last_message","updated_at","chat_id","attachment","isExternal","screenName","generateProfileLink","restrictedNicknames","complicated","lodash_includes__WEBPACK_IMPORTED_MODULE_0___default","params","StatusCodeError","statusCode","body","options","response","this","JSON","stringify","captureStackTrace","constructor","RegistrationError","_Error","_this","errors","classCallCheck_default","possibleConstructorReturn_default","getPrototypeOf_default","assertThisInitialized_default","parse","typeof_default","errorContents","ap_id","username","entries","errs","slicedToArray_default","capitalize_default","join","toConsumableArray_default","inherits_default","wrapNativeSuper_default","PERMISSION_GROUP_URL","right","MASTODON_DISMISS_NOTIFICATION_URL","MASTODON_FAVORITE_URL","MASTODON_UNFAVORITE_URL","MASTODON_RETWEET_URL","MASTODON_UNRETWEET_URL","MASTODON_USER_TIMELINE_URL","MASTODON_TAG_TIMELINE_URL","tag","MASTODON_MUTE_USER_URL","MASTODON_UNMUTE_USER_URL","MASTODON_SUBSCRIBE_USER","MASTODON_UNSUBSCRIBE_USER","MASTODON_STATUS_FAVORITEDBY_URL","MASTODON_STATUS_REBLOGGEDBY_URL","MASTODON_PIN_OWN_STATUS","MASTODON_UNPIN_OWN_STATUS","MASTODON_MUTE_CONVERSATION","MASTODON_UNMUTE_CONVERSATION","PLEROMA_EMOJI_REACTIONS_URL","PLEROMA_EMOJI_REACT_URL","PLEROMA_EMOJI_UNREACT_URL","PLEROMA_CHAT_MESSAGES_URL","PLEROMA_CHAT_READ_URL","PLEROMA_DELETE_CHAT_MESSAGE_URL","chatId","messageId","oldfetch","fetch","fullUrl","credentials","promisedRequest","method","payload","_ref$headers","headers","Accept","Content-Type","encodeURIComponent","authHeaders","then","json","ok","accessToken","Authorization","fetchFriends","_ref22","maxId","sinceId","_ref22$limit","limit","MASTODON_FOLLOWING_URL","args","filter","_","getMastodonSocketURI","_ref79","stream","_ref79$args","access_token","_ref80","_ref81","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","Set","ProcessedWS","_ref82","_ref82$preprocessor","preprocessor","handleMastoWS","_ref82$id","eventTarget","EventTarget","socket","WebSocket","proxy","original","eventName","processor","arguments","addEventListener","eventData","dispatchEvent","CustomEvent","detail","wsEvent","debug","code","close","parsedEvent","has","warn","notification","apiService","verifyCredentials","fetchTimeline","_ref36","timeline","_ref36$since","since","_ref36$until","until","_ref36$userId","userId","_ref36$tag","_ref36$withMuted","withMuted","isNotifications","public","friends","dms","notifications","publicAndExternal","media","favorites","queryString","map_default","param","statusText","fetchPinnedStatuses","_ref37","fetchConversation","_ref26","urlContext","MASTODON_STATUS_CONTEXT_URL","_ref27","ancestors","descendants","fetchStatus","_ref28","MASTODON_STATUS_URL","exportFriends","_ref23","more","users","regenerator_default","async","_context","prev","next","last_default","awrap","sent","concat_default","t0","stop","fetchFollowers","_ref24","_ref24$limit","MASTODON_FOLLOWERS_URL","followUser","_ref10","objectWithoutProperties_default","MASTODON_FOLLOW_URL","form","reblogs","unfollowUser","_ref11","MASTODON_UNFOLLOW_URL","pinOwnStatus","_ref12","unpinOwnStatus","_ref13","muteConversation","_ref14","unmuteConversation","_ref15","blockUser","_ref16","MASTODON_BLOCK_USER_URL","unblockUser","_ref17","MASTODON_UNBLOCK_USER_URL","fetchUser","_ref20","fetchUserRelationship","_ref21","favorite","_ref38","unfavorite","_ref39","retweet","_ref40","unretweet","_ref41","postStatus","_ref42","spoilerText","_ref42$mediaIds","mediaIds","inReplyToStatusId","contentType","FormData","pollOptions","append","forEach","some","option","normalizedPoll","expires_in","expiresIn","multiple","keys","deleteStatus","_ref43","MASTODON_DELETE_URL","uploadMedia","_ref44","formData","fetchMutes","_ref55","muteUser","_ref56","unmuteUser","_ref57","subscribeUser","_ref58","unsubscribeUser","_ref59","fetchBlocks","_ref60","fetchOAuthTokens","_ref61","revokeOAuthToken","_ref62","tagUser","_ref29","nicknames","untagUser","_ref30","deleteUser","_ref35","addRight","_ref31","deleteRight","_ref32","activateUser","_ref33","nickname","get_default","deactivateUser","_ref34","register","_ref9","rest","locale","agreement","getCaptcha","resp","updateAvatar","_ref5","updateBg","_ref6","background","updateProfile","_ref8","updateBanner","_ref7","banner","importBlocks","_ref45","file","importFollows","_ref46","deleteAccount","_ref47","password","changeEmail","_ref48","email","changePassword","_ref49","newPassword","newPasswordConfirmation","settingsMFA","_ref50","mfaDisableOTP","_ref51","generateMfaBackupCodes","_ref54","mfaSetupOTP","_ref53","mfaConfirmOTP","_ref52","fetchFollowRequests","_ref25","approveUser","_ref18","MASTODON_APPROVE_USER_URL","denyUser","_ref19","MASTODON_DENY_USER_URL","suggestions","_ref63","markNotificationsAsSeen","_ref64","_ref64$single","single","dismissNotification","_ref78","vote","_ref65","pollId","choices","fetchPoll","_ref66","fetchFavoritedByUsers","_ref67","fetchRebloggedByUsers","_ref68","fetchEmojiReactions","_ref69","reactions","accounts","reactWithEmoji","_ref70","unreactWithEmoji","_ref71","reportUser","_ref72","statusIds","comment","forward","account_id","status_ids","updateNotificationSettings","settings","each_default","search2","_ref74","q","offset","u","statuses","searchUsers","_ref73","query","fetchDomainMutes","_ref75","muteDomain","_ref76","domain","unmuteDomain","_ref77","chats","_ref83","_ref83$limit","getOrCreateChat","_ref84","accountId","chatMessages","_ref85","_ref85$limit","postChatMessage","_ref86","_ref86$mediaId","mediaId","readChat","_ref87","deleteChatMessage","_ref88","__vue_styles__","context","Component","component_normalizer","model","prop","props","_vm","_h","$createElement","_c","_self","staticClass","class","disabled","indeterminate","attrs","domProps","checked","on","change","$event","$emit","_v","$slots","default","_t","_e","notificationsFromStore","store","state","statusNotifications","sortById","seqA","Number","seqB","isSeqA","isNaN","isSeqB","filteredNotificationsFromStore","types","sortedNotifications","sort","lodash_sortBy__WEBPACK_IMPORTED_MODULE_1___default","config","notificationVisibility","likes","repeats","follows","followRequest","moves","emojiReactions","visibleTypes","unseenNotificationsFromStore","lodash_filter__WEBPACK_IMPORTED_MODULE_2___default","fileType","fileTypeService","fileMatchesSomeType","UserAvatar","showPlaceholder","components","StillImage","computed","imgSrc","methods","imageLoadError","watch","user_avatar","avatar-compact","compact","better-shadow","betterShadow","alt","title","image-load-error","DialogModal","darkOverlay","onCancel","Function","dialog_modal_dialog_modal","dialog_modal","dark-overlay","click","currentTarget","stopPropagation","ModerationTools","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","toggled","Popover","tagsSet","hasTagPolicy","$store","instance","tagPolicyAvailable","hasTag","tagName","toggleTag","api","backendInteractor","commit","toggleRight","_this2","toggleActivationStatus","dispatch","deleteUserDialog","show","_this3","isProfile","$route","isTargetUser","history","back","setToggled","moderation_tools_vue_styles_","moderation_tools_moderation_tools","moderation_tools","trigger","placement","y","slot","_s","$t","menu-checkbox-checked","to","on-cancel","AccountActions","ProgressButton","showRepeats","hideRepeats","openChat","$router","recipient_id","account_actions_vue_styles_","account_actions_account_actions","account_actions","showing_reblogs","user_card","followRequestInProgress","browserSupport","cssFilter","created","getters","findUser","classes","user-card-rounded-t","rounded","user-card-rounded","user-card-bordered","bordered","style","backgroundImage","isOtherUser","currentUser","subscribeUrl","serverUrl","URL","protocol","host","loggedIn","dailyAvg","days","round","userHighlightType","mergedConfig","highlight","set","mapGetters","userHighlightColor","visibleRole","validRole","roleTitle","hideFollowsCount","hideFollowersCount","RemoteFollow","FollowButton","setProfileView","v","switcher","linkClicked","parentNode","open","href","userProfileLink","zoomAvatar","mentionUser","replyTo","repliedUser","user_card_vue_styles_","user_card_Component","hide-bio","hideBio","_m","innerHTML","hideUserStats","directives","rawName","expression","composing","for","$$selectedVal","Array","selected","_value","subscribing","preventDefault","boundTo","margin","popoverClass","hidden","styles","oldSize","width","height","updateStyles","anchorEl","$refs","children","$el","screenBox","getBoundingClientRect","origin","left","top","parentBounds","x","offsetParent","xBounds","min","max","innerWidth","yBounds","bottom","innerHeight","horizOffset","offsetWidth","usingTop","offsetHeight","yOffset","translateY","xOffset","translateX","transform","showPopover","$nextTick","hidePopover","onMouseenter","onMouseleave","onClick","onClickOutside","contains","updated","destroyed","removeEventListener","popover","mouseenter","mouseleave","ref","FavoriteButton","animated","icon-star-empty","icon-star","animate-spin","favorite_button_favorite_button","favorite_button","hidePostStats","ReactButton","filterWord","addReaction","existingReaction","find","me","react_button_objectSpread","commonEmojis","displayText","react_button_vue_styles_","react_button_react_button","react_button","scopedSlots","_u","fn","placeholder","_l","replacement","RetweetButton","retweet_button_objectSpread","retweeted","retweeted-empty","retweet_button_vue_styles_","retweet_button_retweet_button","retweet_button","ExtraButtons","confirm","pinStatus","unpinStatus","_this4","copyLink","_this5","navigator","clipboard","writeText","statusLink","canDelete","ownStatus","canPin","canMute","server","extra_buttons_vue_styles_","extra_buttons_extra_buttons","extra_buttons","StatusPopover","find_default","allStatuses","statusId","Status","enter","status_popover_vue_styles_","status_popover_status_popover","status_popover","popover-class","bound-to","is-preview","statusoid","EmojiReactions","showAll","tooManyReactions","showMoreString","accountsForEmoji","reaction","toggleShowAll","reactedWith","fetchEmojiReactionsByIfMissing","reactWith","unreact","emojiOnClick","emoji_reactions_vue_styles_","emoji_reactions_emoji_reactions","picked-reaction","not-clickable","count","replying","unmuted","userExpanded","status_objectSpread","muteWords","repeaterClass","highlightClass","userClass","deleted","repeaterStyle","highlightStyle","userStyle","noHeading","generateUserProfileLink","replyProfileLink","isReply","replyToName","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","allStatusesObject","muteWordHits","toLowerCase","statusSummary","filter_default","muteWord","inProfile","profileUserId","inConversation","hideFilteredStatuses","hideStatus","hideReply","isFocused","focused","replyVisibility","checkFollowing","relationships","replySubject","decodedSummary","unescape_default","behavior","subjectLineBehavior","startsWithRe","combinedFavsAndRepeatsUsers","combinedUsers","uniqBy_default","tagObj","mapState","PostStatusForm","UserCard","AvatarList","Timeago","StatusContent","visibilityIcon","showError","clearError","toggleReplying","gotoOriginal","toggleExpanded","toggleMute","toggleUserExpanded","rect","scrollBy","status.repeat_num","num","status.fave_num","filters","capitalize","str","charAt","toUpperCase","status_vue_styles_","status_Component","status_status","status-el_focused","status-conversation","inlineExpanded","isPreview","highlighted","is-retweet","data-tags","nativeOn","!click","user-id","time","auto-update","_f","expandable","staticStyle","min-width","status-id","aria-label","replies","reply","no-heading","emojiReactionsOnTimeline","button-icon-active","logged-in","onError","onSuccess","reply-to","replied-user","copy-message-scope","subject","posted","MINUTE","HOUR","DAY","relativeTime","relativeTimeShort","WEEK","MONTH","YEAR","date","nowThreshold","now","abs","mediaUpload","uploading","uploadReady","uploadFile","self","size","uploadlimit","filesize","fileSizeFormatService","fileSizeFormat","allowedsize","filesizeunit","unit","allowedsizeunit","statusPosterService","fileData","fileDrop","dataTransfer","files","fileDrag","dropEffect","clearFile","dropFiles","fileInfos","media_upload_media_upload","media_upload","drop","dragover","position","poll_form","pollType","expiryAmount","expiryUnit","pollLimits","maxOptions","max_options","maxLength","max_option_chars","expiryUnits","expiry","convertExpiryFromUnit","max_expiration","minExpirationInCurrentUnit","convertExpiryToUnit","min_expiration","maxExpirationInCurrentUnit","clear","nextOption","index","element","querySelector","focus","addOption","deleteOption","amount","DateUtils","expiryAmountChange","updatePollToParent","uniq_default","poll_form_vue_styles_","poll_poll_form","maxlength","keydown","_k","keyCode","$set","MediaUpload","EmojiInput","PollForm","ScopeSelector","Checkbox","mounted","resize","textarea","textLength","setSelectionRange","autoFocus","scopeCopy","_ref$attentions","allAttentions","unshift","reject_default","attention","buildMentionsString","scope","copyMessageScope","postContentType","submitDisabled","posting","newStatus","caret","pollFormVisible","userDefaultScope","showAllScopes","minimalScopesMode","emojiUserSuggestor","suggestor","customEmoji","updateUsersList","emojiSuggestor","statusLength","spoilerTextLength","statusLengthLimit","textlimit","hasStatusLengthLimit","charactersLeft","isOverLengthLimit","alwaysShowSubject","alwaysShowSubjectInput","postFormats","safeDMEnabled","safeDM","pollsAvailable","disablePolls","hideScopeNotice","disableNotice","pollContentError","postingOptions","poster","statusPoster","clearPollForm","preserveFocus","el","addMediaFile","fileInfo","enableSubmit","removeMediaFile","indexOf","uploadFailed","errString","templateArgs","disableSubmit","paste","clipboardData","onEmojiInputInput","Element","formRef","bottomRef","bottomBottomPaddingStr","getComputedStyle","bottomBottomPadding","substring","scrollerRef","closest","topPaddingStr","bottomPaddingStr","vertPadding","currentScroll","scrollY","scrollTop","scrollerHeight","scrollerBottomBorder","heightWithoutPadding","scrollHeight","newHeight","maxHeight","bottomBottomBorder","findOffset","isBottomObstructed","isFormBiggerThanScroller","bottomChangeDelta","targetScroll","selectionStart","scroll","showEmojiPicker","triggerShowPicker","changeVis","togglePollForm","setPoll","pollForm","dismissScopeNotice","post_status_form_vue_styles_","post_status_form_Component","post_status_form","autocomplete","submit","path","disableSubject","enable-emoji-picker","suggest","callback","$$v","hide-emoji-button","enable-sticker-picker","sticker-uploaded","sticker-upload-failed","scrollable-form","rows","metaKey","keyup","ctrlKey","compositionupdate","disableScopeSelector","show-all","user-default","original-scope","initial-scope","on-scope-change","postFormat","visible","update-poll","drop-files","uploaded","upload-failed","controls","progress_button","progress","stopGifs","endsWith","onLoad","imageLoadHandler","canvas","naturalWidth","naturalHeight","getContext","drawImage","still_image","referrerpolicy","load","timeago","interval","localeDateString","toLocaleString","refreshRelativeTimeObject","longFormat","date_utils","autoUpdate","datetime","_color_convert_color_convert_js__WEBPACK_IMPORTED_MODULE_0__","prefs","solidColor","tintColor","tintColor2","backgroundPosition","backgroundColor","vue__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_0___default","Vue","component","renderOnlyFocused","required","onSwitch","activeTab","scrollableTabs","active","findIndex","activeIndex","beforeUpdate","activateTab","render","h","tabs","classesTab","classesWrapper","image","label","contents","loading","polls","pollsObject","basePoll","expiresAt","expires_at","expired","showResults","voted","totalVotesCount","votes_count","containerClass","choiceIndices","entry","isDisabled","noChoice","percentageForOption","resultTitle","activateOption","allElements","querySelectorAll","clickedElement","forEach_default","optionId","poll_poll","now-threshold","showingTall","fullContent","showingLongSubject","expandingSubject","collapseMessageWithSubject","localCollapseSubjectDefault","hideAttachments","hideAttachmentsInConv","tallStatus","longSubject","mightHideBecauseSubject","mightHideBecauseTall","hideSubjectStatus","hideTallStatus","showingMore","nsfwClickthrough","attachmentSize","maxThumbnails","galleryTypes","playVideosInModal","galleryAttachments","nonGalleryAttachments","hasImageAttachments","hasVideoAttachments","postBodyHtml","html","greentext","handledTags","openCloseTags","buffer","level","textBuffer","tagBuffer","flush","trim","handleBr","handleOpen","handleClose","pop","char","tagFull","processHtml","contentHtml","Attachment","Poll","Gallery","LinkPreview","className","attn","_attention$screen_nam","_attention$screen_nam2","namepart","instancepart","matchstring","mentionMatchesUrl","link","rel","generateTagLink","toggleShowMore","setMedia","status_content_vue_styles_","status_content_Component","status_content","tall-status","tall-status-hider_focused","base-poll","allow-play","set-media","nsfwImage","nsfwCensorImage","hideNsfwLocal","hideNsfw","preloadImage","img","modalOpen","showHidden","VideoAttachment","usePlaceHolder","mediaProxyAvailable","isEmpty","oembed","isSmall","fullwidth","openModal","modalTypes","toggleHidden","useOneClickNsfw","onImageLoad","naturalSizeLoad","_obj","small","large_thumb_url","image-load-handler","allowPlay","thumb_url","oembedHTML","exponent","units","log","toFixed","debounceUserSearch","lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default","leading","trailing","firstChar","suggestEmoji","suggestUsers","noPrefix","substr","aScore","bScore","imageUrl","newUsers","detailText","_ref$media","_ref$inReplyToStatusI","_ref$contentType","lodash_map__WEBPACK_IMPORTED_MODULE_0___default","showImmediately","noIdUpdate","child","parent","_ref$top","_ref$left","ignorePadding","offsetTop","offsetLeft","_findPadding","findPadding","topPadding","leftPadding","_findPadding2","leftPaddingStr","addPositionToWords","words","reduce_default","word","start","end","previous","splitIntoWords","triggers","matches","completion","wordAtPosition","pos","wordsWithPosition","replaceWord","toReplace","filterByKeyword","list","keyword","EmojiPicker","enableStickerPicker","activeGroup","showingStickers","groupsScrolledClass","keepOpen","customEmojiBufferSlice","customEmojiTimeout","customEmojiLoadAllConfirmed","StickerPicker","onStickerUploaded","onStickerUploadFailed","onEmoji","insertion","onScroll","updateScrolledClass","scrolledGroup","triggerLoadMore","setShowStickers","scrollTopMax","scrollerBottom","clientHeight","scrollerTop","scrollerMax","loadEmoji","emojisView","group","customEmojiBuffer","filteredEmoji","startEmojiLoad","forceUpdate","toggleStickers","activeGroupView","stickersAvailable","stickers","standardEmojis","customEmojis","icon","stickerPickerEnabled","emoji_picker_emoji_picker","emoji_picker","refInFor","enableEmojiPicker","hideEmojiButton","blurTimeout","showPicker","temporarilyHideSuggestions","disableClickOutside","padEmoji","firstchar","textAtCaret","matchedSuggestions","take_default","showSuggestions","wordAtCaret","Completion","slots","elm","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","onInput","unmounted","picker","scrollIntoView","togglePicker","newValue","insert","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","len","cycleBackward","cycleForward","rootRef","rootBottomBorder","setCaret","shiftKey","_this$$refs","panel","_this$input$elm","offsetBottom","emoji_input_vue_styles_","emoji_input_Component","emoji_input","with-picker","hide","requestFollow","requested","fetchRelationship","attempt","follow_button","inProgress","isPressed","labelFollowing","unfollow","follow","requestUnfollow","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","userDefault","onScopeChange","scope_selector","loopVideo","onVideoDataLoad","srcElement","webkitAudioDecodedByteCount","loopVideoSilentOnly","mozHasAudio","audioTracks","video_attachment","loop","playsinline","loadeddata","remote_follow","slicedUsers","avatar_list","sizes","chunk_default","lastAttachment","allButLastRow","dropRight_default","useContainFit","onNaturalSizeLoad","rowStyle","itemsPerRow","padding-bottom","itemStyle","row","total","sumBy_default","item","getAspectRatio","flex","gallery","contain-fit","cover-fit","natural-size-load","imageLoaded","useImage","useDescription","test","newImg","Image","link_preview","small-image","provider_name","locals","add","EventTargetPolyfill","interfaceMod","currentSaveStateNotice","noticeClearTimeout","notificationPermission","CSS","supports","mobileLayout","mutations","settingsSaved","success","del","errorData","setNotificationPermission","permission","setMobileLayout","actions","setPageTitle","rootState","LAYERS","undelay","topBar","badge","profileTint","selectedMenu","btn","btnPanel","btnTopBar","inputPanel","inputTopBar","alert","alertPanel","DEFAULT_OPACITY","faint","underlay","SLOT_INHERITANCE","depends","priority","layer","accent","faintLink","postFaintLink","cBlue","cRed","cGreen","cOrange","profileBg","mod","brightness","highlightLightText","textColor","highlightPostLink","highlightFaintText","highlightFaintLink","highlightPostFaintLink","highlightText","highlightLink","highlightIcon","popoverLightText","popoverPostLink","popoverFaintText","popoverFaintLink","popoverPostFaintLink","popoverText","popoverLink","popoverIcon","selectedPost","selectedPostFaintText","variant","selectedPostLightText","selectedPostPostLink","selectedPostFaintLink","selectedPostText","selectedPostLink","selectedPostIcon","selectedMenuLightText","selectedMenuFaintText","selectedMenuFaintLink","selectedMenuText","selectedMenuLink","selectedMenuIcon","selectedMenuPopover","selectedMenuPopoverLightText","selectedMenuPopoverFaintText","selectedMenuPopoverFaintLink","selectedMenuPopoverText","selectedMenuPopoverLink","selectedMenuPopoverIcon","lightText","postLink","border","copacity","pollText","inheritsOpacity","fgText","fgLink","panelText","panelFaint","panelLink","topBarText","topBarLink","tab","tabText","tabActiveText","btnText","btnPanelText","btnTopBarText","btnPressed","btnPressedText","btnPressedPanel","btnPressedPanelText","btnPressedTopBar","btnPressedTopBarText","btnToggled","btnToggledText","btnToggledPanelText","btnToggledTopBarText","btnDisabled","btnDisabledText","btnDisabledPanelText","btnDisabledTopBarText","inputText","inputPanelText","inputTopbarText","alertError","alertErrorText","alertErrorPanelText","alertWarning","alertWarningText","alertWarningPanelText","alertNeutral","alertNeutralText","alertNeutralPanelText","badgeNotification","badgeNotificationText","chatBg","chatMessageIncomingBg","chatMessageIncomingText","chatMessageIncomingLink","chatMessageIncomingBorder","chatMessageOutgoingBg","chatMessageOutgoingText","chatMessageOutgoingLink","chatMessageOutgoingBorder","getLayersArray","array","getLayers","opacitySlot","colors","currentLayer","getDependencies","inheritance","layerDeps","isArray","expandSlotValue","getOpacitySlot","getDeps","findInheritedOpacity","visited","depSlot","dependency","getLayerSlot","findInheritedLayer","SLOT_ORDERED","allKeys","whites","grays","blacks","unprocessed","step","node","depsA","depsB","topoSort","aV","bV","defineProperty_default","OPACITIES","defaultValue","affectedSlots","computeDynamicColor","sourceColor","getColor","targetColor","_sourceColor$split$ma","_sourceColor$split$ma2","variable","modifier","parseFloat","applyTheme","rules","generatePreset","classList","styleEl","styleSheet","sheet","insertRule","radii","shadows","fonts","remove","getCssShadow","usesDropShadow","inset","shad","blur","spread","alpha","generateColors","themeData","_getColors","sourceColors","sourceOpacity","deps","isTextColor","convert","outputColor","variableSlot","colorFunc","dep","ownOpacitySlot","opacityOverriden","dependencySlot","dependencyColor","getColors","themeEngineVersion","colors2to3","htmlColors","solid","complete","theme","generateRadii","inputRadii","btnRadius","checkbox","avatarAlt","tooltip","generateFonts","interface","family","post","postCode","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","DEFAULT_SHADOWS","popup","avatarStatus","panelHeader","button","buttonHover","buttonPressed","generateShadows","hackContextDict","inputShadows","shadows2to3","style_setter_objectSpread","shadowsAcc","slotName","shadowDefs","slotFirstWord","colorSlotName","newShadow","shadowAcc","def","composePreset","getThemes","cache","themes","statePositionAcc","getPreset","isV1","defaultState","customTheme","customThemeSource","hideISP","hideMutedPosts","autoLoad","streaming","hoverPreview","autohideFloatingPostButton","pauseOnUnfocused","chatMention","webPushNotifications","interfaceLanguage","language","useStreamingApi","instanceDefaultProperties","rootGetters","config_objectSpread","setOption","setHighlight","registrationOpen","vapidPublicKey","disableChat","hideSitename","loginMethod","logo","logoMargin","logoMask","redirectRootLogin","redirectRootNoLogin","showFeaturesPanel","showInstanceSpecificPanel","customEmojiFetched","emojiFetched","pleromaBackend","chatAvailable","gopherAvailable","suggestionsEnabled","suggestionsWeb","instanceSpecificPanelContent","tos","backendVersion","frontendVersion","setInstanceOption","instanceDefaultConfig","instance_objectSpread","getStaticEmoji","res","values","getCustomEmoji","_context2","image_url","setTheme","themeName","themeSource","fetchEmoji","emptyTl","statusesObject","faves","visibleStatuses","visibleStatusesObject","newStatusCount","minId","minVisibleId","followers","flushMarker","emptyNotifications","desktopNotificationSilence","POSITIVE_INFINITY","idStore","conversationsObject","timelines","visibleNotificationTypes","mergeOrAdd","arr","obj","oldItem","merge_default","omitBy_default","new","sortTimeline","addStatusToGlobalStorage","conversationId","addNewStatuses","_ref2$showImmediately","_ref2$user","_ref2$noIdUpdate","isArray_default","timelineObject","maxNew","maxBy_default","minNew","minBy_default","newer","older","addStatus","resultForCurrentTimeline","addToTimeline","processors","counter","favoriteStatus","deletion","remove_default","removeStatusFromGlobalStorage","unknown","addNewNotifications","messages","Notification","i18nString","notifObj","i18n","desktopNotification","removeStatus","first_default","showNewStatuses","oldTimeline","slice_default","resetStatuses","emptyState","clearTimeline","_ref8$excludeUserId","excludeUserId","clearNotifications","setFavorited","setFavoritedConfirm","findIndex_default","setMutedStatus","setRetweeted","setRetweetedConfirm","setDeleted","setManyDeleted","condition","setLoading","setNsfw","setError","setErrorData","setNotificationsLoading","setNotificationsError","setNotificationsSilence","markSingleNotificationAsSeen","dismissNotifications","finder","updateNotification","updater","queueFlush","addRepeats","rebloggedByUsers","addFavs","favoritedByUsers","addEmojiReactionsBy","addOwnReaction","reactionIndex","newReaction","statuses_objectSpread","removeOwnReaction","updateStatusWithPoll","unreadChatCount","currentChat","_ref35$showImmediatel","_ref35$timeline","_ref35$noIdUpdate","markStatusesAsDeleted","dismissNotificationLocal","markMultipleNotificationsAsSeen","fetchFavsAndRepeats","fetchEmojiReactionsBy","fetchFavs","fetchRepeats","search","fetchAndUpdate","_ref2$timeline","_ref2$older","_ref2$userId","_ref2$tag","timelineData","camelCase_default","numStatusesBeforeFetch","ccTimeline","update","timelineFetcher","startFetching","_ref3$timeline","_ref3$userId","_ref3$tag","setInterval","fetchNotifications","readNotifsIds","notificationsFetcher","requests","followRequestFetcher","backendInteractorService","backend_interactor_service_objectSpread","startFetchingTimeline","_ref$userId","timelineFetcherService","startFetchingNotifications","fetchAndUpdateNotifications","startFetchingFollowRequests","startUserSocket","func","REDIRECT_URI","location","getOrCreateApp","clientId","clientSecret","___pleromafe_commit_hash","toISOString","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","dataString","encoded","getToken","getTokenWithCredentials","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","isPushSupported","getOrCreateServiceWorker","runtime","deleteSubscriptionFromBackEnd","registerPushNotifications","isEnabled","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","from","charCodeAt","pushManager","subscribe","subscribePush","subscription","alerts","mention","move","responseData","sendSubscriptionToBackEnd","predictedRelationship","loggingIn","lastLoginName","usersObject","signUpPending","signUpErrors","newTags","updateRight","newRights","updateActivationStatus","setCurrentUser","clearCurrentUser","beginLogin","endLogin","saveFriendIds","saveFollowerIds","clearFriends","clearFollowers","addNewUsers","updateUserRelationship","saveBlockIds","blockIds","addBlockId","blockId","saveMuteIds","muteIds","addMuteId","muteId","saveDomainMutes","domainMutes","addDomainMute","removeDomainMute","setPinnedToUser","setUserForStatus","setUserForNotification","setColor","signUpSuccess","signUpFailure","updateUnreadChatCount","blocks","blockUsers","ids","unblockUsers","mutes","hideReblogs","showReblogs","muteUsers","unmuteUsers","muteDomains","domains","unmuteDomains","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","compact_default","targetUsers","notificationIds","notificationsObject","relevantNotifications","signUp","userInfo","users_objectSpread","abrupt","logout","_store$rootState","oauthApi","userToken","loginUser","requestPermission","startPolling","fetchers","mastoUserSocket","followRequests","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","clearInterval","setWsToken","wsToken","setSocket","setFollowRequests","enableMastoSockets","disableMastoSockets","startMastoUserSocket","closeEvent","ignoreCodes","restartMastoUserSocket","stopMastoUserSocket","_ref8$timeline","_ref8$tag","_ref8$userId","stopFetchingTimeline","stopFetchingNotifications","stopFetchingFollowRequests","removeFollowRequest","it","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","channel","setChannel","addMessage","setMessages","initializeChat","msg","appToken","setClientData","setAppToken","setToken","clearToken","getUserToken","resetState","strategy","initStrategy","auth_flow","namespaced","requiredPassword","requiredToken","requiredTOTP","requiredRecovery","setInitialStrategy","requirePassword","requireToken","requireMFA","requireRecovery","requireTOTP","abortMFA","root","mediaViewer","currentIndex","activated","setCurrent","current","closeMediaViewer","oauthTokens","tokens","fetchTokens","swapTokens","reports","modalActivated","openUserReportingModal","closeUserReportingModal","trackedPolls","mergeOrAddPoll","existingPoll","trackPoll","currentValue","untrackPoll","updateTrackedPoll","votePoll","openPostStatusModal","closePostStatusModal","ChatService","storage","newMessages","idIndex","lastSeenTimestamp","newMessageCount","empty","getView","currentSequenceId","sortBy_default","firstMessages","setHours","getTime","afterDate","nextMessage","sequenceId","uniqueId_default","deleteMessage","resetNewMessageCount","getChatById","chatList","chats_objectSpread","pagination","openedChats","openedChatMessageServices","chatFocused","currentChatId","currentChatMessageService","findOpenedChatByRecipientId","recipientId","sortedChatList","orderBy_default","startFetchingChats","reset","fetchChats","opts","addNewChats","updateChatByAccountId","debounce_default","startFetchingCurrentChat","setCurrentChatFetcher","addOpenedChat","addChatMessages","setChatFocused","resetChatNewMessageCount","removeFromCurrentChatStatuses","clearCurrentChat","prevFetcher","_dispatch","chatService","setCurrentChatId","_rootGetters","updatedChat","updateChat","deleteChat","conversation","last_status","resetChats","setChatsLoading","chatMessageService","refreshLastMessage","loaded","defaultReducer","paths","substate","objectPath","saveImmedeatelyActions","defaultStorage","localforage","createPersistedState","_ref$key","_ref$paths","_ref$getState","getState","getItem","_ref$setState","setState","setItem","_ref$reducer","reducer","_ref$storage","_ref$subscriber","subscriber","handler","savedState","usersState","replaceState","merge","mutation","previousNavPaddingRight","previousAppBgWrapperRight","push_notifications_plugin","webPushNotification","isUserMutation","isVapidMutation","isPermMutation","isUserConfigMutation","isVisibilityMutation","ar","require","ca","cs","de","en","eo","es","et","eu","fi","fr","ga","he","hu","ja","ja_easy","ko","nb","nl","oc","pl","pt","ro","ru","te","zh","lockerEls","disableBodyScroll","scrollBarGap","documentElement","clientWidth","bodyScrollLock","reserveScrollBarGap","navEl","getElementById","getPropertyValue","paddingRight","appBgWrapperEl","enableBodyScroll","directive","inserted","binding","componentUpdated","oldValue","unbind","idA","idB","expanded","isPage","originalStatusId","getConversationId","isExpanded","clone_default","statusIndex","sortAndFilterConversation","irid","newVal","oldVal","newConversationId","oldConversationId","getReplies","getHighlight","src_components_conversation_conversation","components_conversation_conversation","inline-expanded","collapsable","show-pinned","pinnedStatusIdsObject","in-conversation","in-profile","profile-user-id","goto","Timeline","paused","unfocused","bottomedOut","timelineError","newStatusCountStr","embedded","footer","excludedStatusIdsObject","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","done","getExcludedStatusIdsByPinning","keyBy_default","Conversation","scrollLoad","timelineName","handleVisibilityChange","handleShortKey","fetchOlderStatuses","throttle_default","bodyBRect","pageYOffset","doc","clientTop","timeline_vue_styles_","components_timeline_timeline","timeline_timeline","pinned-status-ids-object","PublicTimeline","public_timeline_public_timeline","public_timeline","timeline-name","PublicAndExternalTimeline","public_and_external_timeline_public_and_external_timeline","public_and_external_timeline","FriendsTimeline","friends_timeline_friends_timeline","friends_timeline","TagTimeline","tag_timeline_tag_timeline","tag_timeline","conversationPage","conversation_page_conversation_page","conversation_page","is-page","getUser","notification_objectSpread","targetUser","targetUserProfileLink","needMute","messageForStatusContent","components_notification_notification","notification_notification","white-space","Notifications","minimalMode","filterMode","seenToDisplayCount","mainClass","unseenNotifications","filteredNotifications","unseenCount","notificationsToDisplay","markAsSeen","fetchOlderNotifications","seenCount","notifs","notifications_vue_styles_","components_notifications_notifications","notifications_notifications","minimal","unseen","tabModeDict","likes+repeats","Interactions","allowFollowingMove","onModeSwitch","interactions_interactions","interactions","on-switch","minimal-mode","filter-mode","DMs","dm_timeline_dm_timeline","dm_timeline","ChatAvatar","getUserProfileLink","chat_avatar_objectSpread","firstUser","fallbackUser","secondUser","thirdUser","fourthUser","chat_avatar_vue_styles_","chat_avatar_chat_avatar","chat_avatar","error-src","chat_title_objectSpread","otherUsersTruncated","otherUsers","recipient","restCount","chat_title_vue_styles_","chat_title_chat_title","chat_title","fallback-user","margin-right","ChatListItem","ChatTitle","chat_list_item_objectSpread","attachmentInfo","chat_list_item_vue_styles_","chat_list_item_chat_list_item","chat_list_item","with-links","float","text-align","BasicUserCard","basic_user_card_vue_styles_","basic_user_card_basic_user_card","basic_user_card","chatNew","userIds","chat_new_objectSpread","availableUsers","goBack","goToNewChat","addUser","selectedUserIds","removeUser","chat_new_vue_styles_","chat_new_chat_new","chat_new","cursor","items","getKey","list_vue_styles_","list_list","getComponentProps","isFunction","getComponentOptions","withLoadMore","select","destroy","_ref$childPropName","childPropName","_ref$additionalPropNa","additionalPropNames","WrappedComponent","$props","fetchEntries","newEntries","with_load_more_objectSpread","$listeners","$scopedSlots","helper_default","ChatList","Chats","List","ChatNew","chat_list_objectSpread","isNew","cancelNewChat","newChat","chat_list_vue_styles_","chat_list_chat_list","chat_list","cancel","min-height","margin-bottom","border-bottom-left-radius","border-bottom-right-radius","chat_message_date","displayDate","today","lang","toLocaleDateString","day","month","chat_message_date_chat_message_date","ChatMessage","ChatMessageDate","chat_message_objectSpread","createdAt","chatViewItem","toLocaleTimeString","hour","minute","hour12","isCurrentUser","author","isMessage","wrapperStyle","hovered","menuOpened","onHover","bool","chat_message_vue_styles_","chat_message_chat_message","sequence-hovered","sequenceHovered","mouseover","outgoing","incoming","full-content","Chat","loadingOlderMessages","loadingMessages","loadingChat","editedStatusId","jumpToBottomButtonVisible","hoveredSequenceId","handleLayoutChange","scrollable","handleScroll","updateSize","isMobileLayout","setMobileChatLayout","unsetMobileChatLayout","chat_objectSpread","chatParticipants","formPlaceholder","chatViewItems","scrollDown","forceRead","onStatusHover","onPosted","onFilesDropped","_this6","overflow","overscrollBehavior","minHeight","appBgWrapper","main","getElementsByClassName","paddingTop","handleResize","_diff","f","inner","_options$behavior","_options$forceRead","container","doScrollDown","scrollTo","getPosition","totalHeight","reachedTop","fetchChat","isFirstFetch","_this7","previousScrollTop","positionBeforeLoading","positionAfterLoading","_this8","doStartFetching","_this9","chat_vue_styles_","src_components_chat_chat","components_chat_chat","with-avatar","chat-view-item","hover","disable-subject","disable-scope-selector","disable-notice","disable-polls","preserve-focus","polls-available","auto-focus","max-height","FollowCard","isMe","follow_card_vue_styles_","follow_card_follow_card","follow_card","noFollowsYou","label-following","FollowerList","FriendList","UserProfile","routeParams","stopFetching","isUs","followsTabVisible","followersTabVisible","userNameOrId","loadById","reason","errorMessage","switchUser","onTabSwitch","$route.params.id","$route.params.name","$route.query","user_profile_vue_styles_","user_profile_user_profile","user_profile","viewing","allow-zooming-avatar","active-tab","render-only-focused","pinned-status-ids","no-follows-you","Search","searchTerm","hashtags","currenResultTab","newQuery","searchInput","getActiveTab","resultCount","tabName","onResultTabSwitch","lastHistoryRecord","hashtag","search_vue_styles_","components_search_search","search_search","uses","color_input","checkbox_checkbox","fallback","showOptionalTickbox","present","validColor","color_convert","transparentColor","computedColor","color_input_vue_styles_","color_input_color_input","range_input_range_input","hardMax","hardMin","opacity_input","opacity_input_opacity_input","toModel","shadow_control_objectSpread","shadow_control","selectedId","cValue","ColorInput","OpacityInput","moveUp","movable","moveDn","anyShadows","anyShadowsFallback","ready","currentFallback","moveUpValid","moveDnValid","usingFallback","boxShadow","shadow_control_vue_styles_","shadow_control_shadow_control","__r","_i","$$a","$$el","$$c","$$i","show-optional-tickbox","font_control","lValue","availableOptions","noInherit","dValue","isCustom","preset","font_control_vue_styles_","font_control_font_control","custom","contrast_ratio","large","contrast","hint","levelVal","aaa","aa","ratio","hint_18pt","laaa","laa","contrast_ratio_vue_styles_","contrast_ratio_contrast_ratio","preview_vue_styles_","style_switcher_preview","font-family","export_import","importFailed","exportData","stringified","exportObject","btoa","display","removeChild","importData","filePicker","reader","FileReader","parsed","validator","onImport","readAsText","export_import_vue_styles_","export_import_export_import","exportLabel","importLabel","importFailedText","v1OnlyNames","style_switcher","style_switcher_objectSpread","availableStyles","themeWarning","tempImportFile","engineVersion","previewShadows","previewColors","previewRadii","previewFonts","shadowsInvalid","colorsInvalid","radiiInvalid","keepColor","keepShadows","keepOpacity","keepRoundness","keepFonts","shadowSelected","shadowsLocal","fontsLocal","btnRadiusLocal","inputRadiusLocal","checkboxRadiusLocal","panelRadiusLocal","avatarRadiusLocal","avatarAltRadiusLocal","attachmentRadiusLocal","tooltipRadiusLocal","chatMessageRadiusLocal","themesComplete","loadThemeFromLocalStorage","shadowsAvailable","themeWarningHelp","pre","_this$themeWarning","noActionsPossible","selectedVersion","currentColors","currentOpacity","currentRadii","preview","previewTheme","previewContrast","colorsConverted","ratios","slotIsBaseText","textColors","textColorKey","newKey","toPrecision","previewRules","currentShadowOverriden","currentShadow","currentShadowFallback","themeValid","exportedTheme","saveEverything","_pleroma_theme_version","RangeInput","ContrastRatio","ShadowControl","FontControl","TabSwitcher","Preview","ExportImport","loadTheme","fileVersion","forceUseSource","dismissWarning","version","snapshotEngineVersion","versionsMatch","sourceSnapshotMismatch","forcedSourceLoad","normalizeLocalState","forceLoadLocalStorage","forceLoad","forceSnapshot","confirmLoadSource","_this$$store$getters$","setCustomTheme","updatePreviewColorsAndShadows","forceSource","importValidator","clearAll","clearV1","$data","clearRoundness","clearOpacity","clearShadows","clearFonts","fgColorLocal","textColorLocal","getOwnPropertyNames","deep","fontsInvalid","bgColorLocal","linkColorLocal","cRedColorLocal","cGreenColorLocal","cBlueColorLocal","cOrangeColorLocal","style_switcher_vue_styles_","style_switcher_style_switcher","export-object","export-label","import-label","import-failed-text","on-import","bgOpacityLocal","bgText","accentColorLocal","bgLink","fgTextColorLocal","fgLinkColorLocal","bgCRed","bgCBlue","bgCGreen","bgCOrange","postLinkColorLocal","alertErrorColorLocal","alertErrorTextColorLocal","alertWarningColorLocal","alertWarningTextColorLocal","alertNeutralColorLocal","alertNeutralTextColorLocal","alertOpacityLocal","badgeNotificationColorLocal","badgeNotificationTextColorLocal","panelColorLocal","panelOpacityLocal","panelTextColorLocal","panelLinkColorLocal","topBarColorLocal","topBarTextColorLocal","topBarLinkColorLocal","inputColorLocal","inputOpacityLocal","inputTextColorLocal","btnColorLocal","btnOpacityLocal","btnTextColorLocal","btnPanelTextColorLocal","btnTopBarTextColorLocal","btnPressedColorLocal","btnPressedTextColorLocal","btnPressedPanelTextColorLocal","btnPressedTopBarTextColorLocal","btnDisabledColorLocal","btnDisabledTextColorLocal","btnDisabledPanelTextColorLocal","btnDisabledTopBarTextColorLocal","btnToggledColorLocal","btnToggledTextColorLocal","btnToggledPanelTextColorLocal","btnToggledTopBarTextColorLocal","tabColorLocal","tabTextColorLocal","tabActiveTextColorLocal","borderColorLocal","borderOpacityLocal","faintColorLocal","faintLinkColorLocal","panelFaintColorLocal","faintOpacityLocal","underlayColorLocal","underlayOpacityLocal","pollColorLocal","pollTextColorLocal","iconColorLocal","highlightColorLocal","highlightTextColorLocal","highlightLinkColorLocal","popoverColorLocal","popoverOpacityLocal","popoverTextColorLocal","popoverLinkColorLocal","selectedPostColorLocal","selectedPostTextColorLocal","selectedPostLinkColorLocal","selectedMenuColorLocal","selectedMenuTextColorLocal","selectedMenuLinkColorLocal","chatBgColorLocal","chatMessageIncomingBgColorLocal","chatMessageIncomingTextColorLocal","chatMessageIncomingLinkColorLocal","chatMessageIncomingBorderColorLocal","chatMessageOutgoingBgColorLocal","chatMessageOutgoingTextColorLocal","chatMessageOutgoingLinkColorLocal","chatMessageOutgoingBorderColorLocal","hard-min","no-inherit","interface_language_switcher","languageCodes","i18n_messages","languageNames","getLanguageName","$i18n","getName","interface_language_switcher_interface_language_switcher","langCode","multiChoiceProperties","loopSilentAvailable","getOwnPropertyDescriptor","HTMLVideoElement","HTMLMediaElement","StyleSwitcher","InterfaceLanguageSwitcher","settings_objectSpread","instanceSpecificPanelPresent","frontendVersionLink","backendVersionLink","versionString","configDefaultState","muteWordsString","trim_default","components_settings_settings","settings_settings","hideMutedPostsLocalizedValue","collapseMessageWithSubjectLocalizedValue","scopeCopyLocalizedValue","alwaysShowSubjectInputLocalizedValue","subjectLineBehaviorDefaultValue","postContentTypeDefaultValue","minimalScopesModeLocalizedValue","modifiers","number","_n","$forceUpdate","greentextLocalizedValue","hidePostStatsLocalizedValue","hideUserStatsLocalizedValue","hideFilteredStatusesLocalizedValue","mixins","validationMixin","fullname","captcha","validations","requiredIf","accountActivationRequired","sameAsPassword","sameAs","signedIn","setCaptcha","registration_objectSpread","bioPlaceholder","isPending","serverValidationErrors","termsOfService","mapActions","captcha_solution","solution","captcha_token","captcha_answer_data","answer_data","$v","$touch","$invalid","cpt","registration_vue_styles_","src_components_registration_registration","components_registration_registration","form-group--error","$error","autocorrect","autocapitalize","spellcheck","resetPassword","passwordReset","throttled","password_reset_objectSpread","mailerEnabled","passwordResetRequested","dismissError","passwordResetApi","password_reset_vue_styles_","components_password_reset_password_reset","password_reset_password_reset","ImageCropper","submitHandler","cropperOptions","aspectRatio","autoCropArea","viewMode","zoomable","guides","mimes","saveButtonLabel","saveWithoutCroppingButtonlabel","cancelButtonLabel","cropper","dataUrl","filename","submitting","submitError","saveText","saveWithoutCroppingText","cancelText","submitErrorMsg","cropping","avatarUploadError","pickImage","createCropper","Cropper","getTriggerDOM","readFile","fileInput","readAsDataURL","beforeDestroy","image_cropper_vue_styles_","image_cropper_image_cropper","image_cropper","textContent","accept","BlockCard","blocked","block_card_vue_styles_","block_card_block_card","block_card","MuteCard","mute_card_vue_styles_","mute_card_mute_card","mute_card","DomainMuteCard","domain_mute_card_vue_styles_","domain_mute_card_domain_mute_card","domain_mute_card","SelectableList","filteredSelected","allSelected","noneSelected","someSelected","isSelected","toggle","toggleAll","selectable_list_vue_styles_","selectable_list_selectable_list","selectable_list","get-key","selectable-list-item-selected-inner","autosuggest","term","results","resultsVisible","filtered","fetchResults","onInputClick","autosuggest_vue_styles_","autosuggest_autosuggest","Importer","submitButtonLabel","successMessage","dismiss","importer_vue_styles_","importer_importer","importer","Exporter","getContent","exportButtonLabel","processingMessage","processing","process","fileToDownload","exporter_vue_styles_","exporter_exporter","exporter","withSubscription","fetchedData","refresh","fetchData","with_subscription_objectSpread","mfa_backup_codes","backupCodes","codes","displayTitle","mfa_backup_codes_vue_styles_","user_settings_mfa_backup_codes","Confirm","components_user_settings_confirm","user_settings_confirm","mfa_totp","currentPassword","deactivate","mfa_totp_objectSpread","isActivated","totp","doActivate","cancelDeactivate","doDeactivate","confirmDeactivate","Mfa","available","enabled","setupState","setupOTPState","getNewCodes","otpSettings","provisioning_uri","otpConfirmToken","readyInit","recovery-codes","RecoveryCodes","totp-item","qrcode","VueQrcode","mfa_objectSpread","canSetupOTP","setupInProgress","backupCodesPrepared","setupOTPInProgress","completedOTP","prepareOTP","confirmOTP","confirmNewBackupCodes","activateOTP","fetchBackupCodes","getBackupCodes","confirmBackupCodes","cancelBackupCodes","setupOTP","doConfirmOTP","completeSetup","fetchSettings","cancelSetup","mfa_vue_styles_","user_settings_mfa","mfa","activate","backup-codes","BlockList","MuteList","DomainMuteList","UserSettings","newEmail","newName","newBio","unescape","newLocked","newNoRichText","newDefaultScope","hideFollows","hideFollowers","showRole","pickAvatarBtnVisible","bannerUploading","backgroundUploading","bannerPreview","backgroundPreview","bannerUploadError","backgroundUploadError","changeEmailError","changeEmailPassword","changedEmail","deletingAccount","deleteAccountConfirmPasswordInput","deleteAccountError","changePasswordInputs","changedPassword","changePasswordError","notificationSettings","newDomainToMute","Autosuggest","vis","oauthToken","appName","app_name","validUntil","valid_until","submitAvatar","that","getCroppedCanvas","toBlob","clearUploadError","submitBanner","submitBg","generateExportableUsersContent","hostname","getFollowsContent","getBlocksContent","confirmDelete","filterUnblockedUsers","filterUnMutedUsers","_this10","queryUserIds","_this11","identity","user_settings_vue_styles_","user_settings_user_settings","user_settings","classname","submit-handler","success-message","error-message","get-content","export-button-label","FollowRequestCard","findFollowRequestNotificationId","notif","notifId","follow_request_card_vue_styles_","FollowRequests","follow_request_card","follow_requests_follow_requests","follow_requests","oac","_this$$store$state$oa","oauth_callback_oauth_callback","oauth_callback","LoginForm","login_form_objectSpread","isPasswordAuth","isTokenAuth","mapMutations","submitToken","submitPassword","_this$oauth","identifier","focusOnPasswordInput","passwordInput","login_form_vue_styles_","login_form_login_form","login_form","recovery_form","recovery_form_objectSpread","authSettings","mfa_token","mfaApi","mfa_form_recovery_form","totp_form","totp_form_objectSpread","mfa_form_totp_form","AuthForm","is","authForm","auth_form_objectSpread","MFARecoveryForm","MFATOTPForm","chatPanel","currentMessage","collapsed","togglePanel","chat_panel_vue_styles_","chat_panel_chat_panel","chat_panel","floating","chat-heading","WhoToFollow","getWhoToFollow","showWhoToFollow","externalUser","who_to_follow_vue_styles_","who_to_follow_who_to_follow","who_to_follow","InstanceSpecificPanel","instance_specific_panel_instance_specific_panel","instance_specific_panel","FeaturesPanel","gopher","whoToFollow","mediaProxy","features_panel_vue_styles_","features_panel_features_panel","features_panel","TermsOfServicePanel","terms_of_service_panel_vue_styles_","terms_of_service_panel_terms_of_service_panel","terms_of_service_panel","StaffPanel","staffAccounts","staff_panel_vue_styles_","staff_panel_staff_panel","staff_panel","MRFTransparencyPanel","mrf_transparency_panel_objectSpread","federationPolicy","mrfPolicies","quarantineInstances","acceptInstances","rejectInstances","ftlRemovalInstances","mediaNsfwInstances","mediaRemovalInstances","keywordsFtlRemoval","keywordsReject","keywordsReplace","hasInstanceSpecificPolicies","hasKeywordPolicies","mrf_transparency_panel_vue_styles_","About","mrf_transparency_panel","policy","pattern","about_vue_styles_","about_about","about","RemoteUserResolver","redirect","remote_user_resolver_vue_styles_","remote_user_resolver_remote_user_resolver","remote_user_resolver","routes","validateAuthenticatedRoute","_to","beforeEnter","ConversationPage","dontScroll","Settings","Registration","PasswordReset","ChatPanel","OAuthCallback","route","UserPanel","user_panel_objectSpread","user_panel_vue_styles_","user_panel_user_panel","user_panel","NavPanel","nav_panel_objectSpread","followRequestCount","privateMode","federating","nav_panel_vue_styles_","nav_panel_nav_panel","nav_panel","SearchBar","search_bar_vue_styles_","search_bar_search_bar","search_bar","usersToFollow","toFollow","shuffled","shuffle_default","WhoToFollowPanel","fill","oldUser","who_to_follow_panel_vue_styles_","who_to_follow_panel_who_to_follow_panel","who_to_follow_panel","modal","isOpen","modal_vue_styles_","modal_modal","touchEventCoord","touches","screenX","screenY","vectorLength","sqrt","dotProduct","v1","v2","project","scalar","GestureService","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","swipeGesture","direction","onSwipe","threshold","perpendicularTolerance","_startPos","_swiping","beginSwipe","gesture","updateSwipe","oldCoord","newCoord","delta","towardsDir","perpendicularDir","towardsPerpendicular","MediaModal","Modal","showing","currentMedia","canNavigate","mediaSwipeGestureRight","goPrev","mediaSwipeGestureLeft","goNext","mediaTouchStart","mediaTouchMove","prevIndex","nextIndex","handleKeyupEvent","handleKeydownEvent","media_modal_vue_styles_","media_modal_media_modal","media_modal","backdropClicked","touchstart","touchmove","SideDrawer","closed","closeGesture","toggleDrawer","side_drawer_objectSpread","unseenNotificationsCount","sitename","doLogout","touchStart","touchMove","side_drawer_vue_styles_","side_drawer_side_drawer","side_drawer","side-drawer-container-closed","side-drawer-container-open","side-drawer-darken-closed","side-drawer-closed","side-drawer-click-outside-closed","HIDDEN_FOR_PAGES","MobilePostStatusButton","scrollingDown","inputActive","oldScrollPos","amountScrolled","activateFloatingPostButtonAutohide","handleOSK","deactivateFloatingPostButtonAutohide","isLoggedIn","isHidden","handleScrollStart","handleScrollEnd","openPostForm","smallPhone","smallPhoneKbOpen","biggerPhoneKbOpen","mobile_post_status_button_vue_styles_","mobile_post_status_button_mobile_post_status_button","mobile_post_status_button","MobileNav","notificationsCloseGesture","notificationsOpen","closeMobileNotifications","toggleMobileSidebar","sideDrawer","openMobileNotifications","notificationsTouchStart","notificationsTouchMove","scrollToTop","_ref$target","mobile_nav_vue_styles_","mobile_nav_mobile_nav","mobile_nav","active-class","UserReportingModal","statusIdsToReport","remoteInstance","closeModal","user_reporting_modal_objectSpread","isChecked","toggleStatus","user_reporting_modal_vue_styles_","user_reporting_modal_user_reporting_modal","user_reporting_modal","PostStatusModal","resettingForm","isFormVisible","post_status_modal_vue_styles_","post_status_modal_post_status_modal","post_status_modal","is-open","_b","windowWidth","App","mobileActivePanel","searchBarHidden","supportsMask","transitionName","updateMobileState","enableMask","logoStyle","logoMaskStyle","mask-image","background-color","logoBgStyle","bgStyle","background-image","bgAppStyle","--body-background-image","onSearchBarToggled","App_vue_styles_","src_App","getStatusnetConfig","_data$site","registrationClosed","safeDMMentionsEnabled","site","avatarlimit","backgroundlimit","bannerlimit","pleromafe","getStaticConfig","setSettings","apiConfig","staticConfig","overrides","env","copyInstanceOption","_context3","___pleromafe_dev_overrides","___pleromafe_mode","NODE_ENV","staticConfigPreference","getTOS","_context4","getInstancePanel","_context5","getStickers","_context7","resPack","_context6","pack","localeCompare","t1","getAppSecret","_context8","after_store_objectSpread","resolveStaffAccounts","getNodeInfo","metadata","features","software","priv","federation","_context9","web","mrf_policies","setConfig","configInfos","_context10","checkOAuthToken","_context12","_context11","afterStoreSetup","_store$state$config","router","_context13","VueRouter","scrollBehavior","_from","savedPosition","matched","currentLocale","use","Vuex","VueI18n","VueChatScroll","VueClickOutside","PortalVue","persistedState","fallbackLocale","persistedStateOptions","Store","interfaceModule","instanceModule","statusesModule","usersModule","apiModule","configModule","chatModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokensModule","reportsModule","pollsModule","postStatusModule","chatsModule","plugins","pushNotifications","strict","COMMIT_HASH","DEV_OVERRIDES"],"mappings":"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","file":"static/js/app.b8f44da2ac716a701055.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"2\":\"6fe915952180519c504e\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([603,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\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 escape from 'escape-html'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\n\nconst qvitterStatusType = (status) => {\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\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.name = data.display_name\n    output.name_html = addEmojis(escape(data.display_name), data.emojis)\n\n    output.description = data.note\n    output.description_html = addEmojis(data.note, data.emojis)\n\n    output.fields = data.fields\n    output.fields_html = data.fields.map(field => {\n      return {\n        name: addEmojis(field.name, data.emojis),\n        value: addEmojis(field.value, data.emojis)\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  output.friendIds = []\n  output.followerIds = []\n  output.pinnedStatusIds = []\n\n  if (data.pleroma) {\n    output.follow_request_count = data.pleroma.follow_request_count\n\n    output.tags = data.pleroma.tags\n    output.deactivated = data.pleroma.deactivated\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  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.description = data.description\n\n  return output\n}\nexport const addEmojis = (string, emojis) => {\n  const matchOperatorsRegex = /[|\\\\{}()[\\]^$+*?.-]/g\n  return emojis.reduce((acc, emoji) => {\n    const regexSafeShortCode = emoji.shortcode.replace(matchOperatorsRegex, '\\\\$&')\n    return acc.replace(\n      new RegExp(`:${regexSafeShortCode}:`, 'g'),\n      `<img src='${emoji.url}' alt='${emoji.shortcode}' title='${emoji.shortcode}' class='emoji' />`\n    )\n  }, string)\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.type = data.reblog ? 'retweet' : 'status'\n    output.nsfw = data.sensitive\n\n    output.statusnet_html = addEmojis(data.content, 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    } 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_html = addEmojis(escape(data.spoiler_text), data.emojis)\n    output.external_url = data.url\n    output.poll = data.poll\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.statusnet_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.chatMessage = output.type === 'pleroma:chat_mention' ? parseChatMessage(data.chat_message) : 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  } 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 parseChat = (chat) => {\n  let output = {}\n  output.id = parseInt(chat.id, 10)\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  let output = message\n  output.id = parseInt(message.id, 10)\n  output.created_at = new Date(message.created_at)\n  output.chat_id = parseInt(message.chat_id, 10)\n  if (message.content) {\n    output.content = addEmojis(message.content, message.emojis)\n  } else {\n    output.content = ''\n  }\n  if (message.attachment) {\n    output.attachments = [parseAttachment(message.attachment)]\n  } else {\n    output.attachments = []\n  }\n  return output\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","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 } from '../entity_normalizer/entity_normalizer.service.js'\nimport 'whatwg-fetch'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\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_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_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_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_STREAMING = '/api/v1/streaming'\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    })\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 updateAvatar = ({ credentials, avatar }) => {\n  const form = new FormData()\n  form.append('avatar', avatar)\n  return fetch(MASTODON_PROFILE_UPDATE_URL, {\n    headers: authHeaders(credentials),\n    method: 'PATCH',\n    body: form\n  }).then((data) => data.json())\n    .then((data) => parseUser(data))\n}\n\nconst updateBg = ({ credentials, background }) => {\n  const form = new FormData()\n  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) => parseUser(data))\n}\n\nconst updateBanner = ({ credentials, banner }) => {\n  const form = new FormData()\n  form.append('header', banner)\n  return fetch(MASTODON_PROFILE_UPDATE_URL, {\n    headers: authHeaders(credentials),\n    method: 'PATCH',\n    body: form\n  }).then((data) => data.json())\n    .then((data) => parseUser(data))\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\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}) => {\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  }\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\n  params.push(['limit', 20])\n  params.push(['with_muted', withMuted])\n\n  const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n  url += `?${queryString}`\n  let status = ''\n  let statusText = ''\n  return fetch(url, { headers: authHeaders(credentials) })\n    .then((data) => {\n      status = data.status\n      statusText = data.statusText\n      return data\n    })\n    .then((data) => data.json())\n    .then((data) => {\n      if (!data.error) {\n        return data.map(isNotifications ? parseNotification : parseStatus)\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 postStatus = ({\n  credentials,\n  status,\n  spoilerText,\n  visibility,\n  sensitive,\n  poll,\n  mediaIds = [],\n  inReplyToStatusId,\n  contentType\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\n  return fetch(MASTODON_POST_STATUS_URL, {\n    body: form,\n    method: 'POST',\n    headers: authHeaders(credentials)\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 : 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 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 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 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\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\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)) {\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    }\n  } else {\n    console.warn('Unknown event', wsEvent)\n    return null\n  }\n}\n\nconst chats = ({ maxId, sinceId, limit = 20, credentials }) => {\n  let url = PLEROMA_CHATS_URL\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  return fetch(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 postChatMessage = ({ id, content, mediaId = null, credentials }) => {\n  let payload = {\n    'content': content\n  }\n\n  if (mediaId) {\n    payload['media_id'] = mediaId\n  }\n\n  return promisedRequest({\n    url: PLEROMA_CHAT_MESSAGES_URL(id),\n    method: 'POST',\n    payload: payload,\n    credentials\n  })\n}\n\nconst readChat = ({ id, credentials }) => {\n  return promisedRequest({\n    url: PLEROMA_CHAT_READ_URL(id),\n    method: 'POST',\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  postStatus,\n  deleteStatus,\n  uploadMedia,\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  updateAvatar,\n  updateBg,\n  updateProfile,\n  updateBanner,\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  fetchEmojiReactions,\n  reactWithEmoji,\n  unreactWithEmoji,\n  reportUser,\n  updateNotificationSettings,\n  search2,\n  searchUsers,\n  fetchDomainMutes,\n  muteDomain,\n  unmuteDomain,\n  chats,\n  getOrCreateChat,\n  chatMessages,\n  postChatMessage,\n  readChat,\n  deleteChatMessage\n}\n\nexport default apiService\n","<template>\n  <label\n    class=\"checkbox\"\n    :class=\"{ disabled, indeterminate }\"\n  >\n    <input\n      type=\"checkbox\"\n      :disabled=\"disabled\"\n      :checked=\"checked\"\n      :indeterminate.prop=\"indeterminate\"\n      @change=\"$emit('change', $event.target.checked)\"\n    >\n    <i class=\"checkbox-indicator\" />\n    <span\n      v-if=\"!!$slots.default\"\n      class=\"label\"\n    >\n      <slot />\n    </span>\n  </label>\n</template>\n\n<script>\nexport default {\n  model: {\n    prop: 'checked',\n    event: 'change'\n  },\n  props: [\n    'checked',\n    'indeterminate',\n    'disabled'\n  ]\n}\n</script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.checkbox {\n  position: relative;\n  display: inline-block;\n  min-height: 1.2em;\n\n  &-indicator {\n    position: relative;\n    padding-left: 1.2em;\n  }\n\n  &-indicator::before {\n    position: absolute;\n    right: 0;\n    top: 0;\n    display: block;\n    content: '✔';\n    transition: color 200ms;\n    width: 1.1em;\n    height: 1.1em;\n    border-radius: $fallback--checkboxRadius;\n    border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n    box-shadow: 0px 0px 2px black inset;\n    box-shadow: var(--inputShadow);\n    background-color: $fallback--fg;\n    background-color: var(--input, $fallback--fg);\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\n  &.disabled {\n    .checkbox-indicator::before,\n    .label {\n      opacity: .5;\n    }\n    .label {\n      color: $fallback--faint;\n      color: var(--faint, $fallback--faint);\n    }\n  }\n\n  input[type=checkbox] {\n    display: none;\n\n    &:checked + .checkbox-indicator::before {\n      color: $fallback--text;\n      color: var(--inputText, $fallback--text);\n    }\n\n    &:indeterminate + .checkbox-indicator::before {\n      content: '–';\n      color: $fallback--text;\n      color: var(--inputText, $fallback--text);\n    }\n\n  }\n\n  & > span {\n    margin-left: .5em;\n  }\n}\n</style>\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./checkbox.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./checkbox.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./checkbox.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-01a5cae8\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./checkbox.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"checkbox\",class:{ disabled: _vm.disabled, indeterminate: _vm.indeterminate }},[_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.checked,\"indeterminate\":_vm.indeterminate},on:{\"change\":function($event){_vm.$emit('change', $event.target.checked)}}}),_vm._v(\" \"),_c('i',{staticClass:\"checkbox-indicator\"}),_vm._v(\" \"),(!!_vm.$slots.default)?_c('span',{staticClass:\"label\"},[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { filter, sortBy, includes } from 'lodash'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => ([\n  store.state.config.notificationVisibility.likes && 'like',\n  store.state.config.notificationVisibility.mentions && 'mention',\n  store.state.config.notificationVisibility.repeats && 'repeat',\n  store.state.config.notificationVisibility.follows && 'follow',\n  store.state.config.notificationVisibility.followRequest && 'follow_request',\n  store.state.config.notificationVisibility.moves && 'move',\n  store.state.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction'\n].filter(_ => _))\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nconst sortById = (a, b) => {\n  const seqA = Number(a.id)\n  const seqB = Number(b.id)\n  const isSeqA = !Number.isNaN(seqA)\n  const isSeqB = !Number.isNaN(seqB)\n  if (isSeqA && isSeqB) {\n    return seqA > seqB ? -1 : 1\n  } else if (isSeqA && !isSeqB) {\n    return 1\n  } else if (!isSeqA && isSeqB) {\n    return -1\n  } else {\n    return a.id > b.id ? -1 : 1\n  }\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n  // map is just to clone the array since sort mutates it and it causes some issues\n  let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n  sortedNotifications = sortBy(sortedNotifications, 'seen')\n  return sortedNotifications.filter(\n    (notification) => (types || visibleTypes(store)).includes(notification.type)\n  )\n}\n\nexport const unseenNotificationsFromStore = store =>\n  filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n","// TODO this func might as well take the entire file and use its mimetype\n// or the entire service could be just mimetype service that only operates\n// on mimetypes and not files. Currently the naming is confusing.\nconst fileType = mimetype => {\n  if (mimetype.match(/text\\/html/)) {\n    return 'html'\n  }\n\n  if (mimetype.match(/image/)) {\n    return 'image'\n  }\n\n  if (mimetype.match(/video/)) {\n    return 'video'\n  }\n\n  if (mimetype.match(/audio/)) {\n    return 'audio'\n  }\n\n  return 'unknown'\n}\n\nconst fileMatchesSomeType = (types, file) =>\n  types.some(type => fileType(file.mimetype) === type)\n\nconst fileTypeService = {\n  fileType,\n  fileMatchesSomeType\n}\n\nexport default fileTypeService\n","import StillImage from '../still-image/still-image.vue'\n\nconst UserAvatar = {\n  props: [\n    'user',\n    'betterShadow',\n    'compact'\n  ],\n  data () {\n    return {\n      showPlaceholder: false\n    }\n  },\n  components: {\n    StillImage\n  },\n  computed: {\n    imgSrc () {\n      return this.showPlaceholder ? '/images/avi.png' : this.user.profile_image_url_original\n    }\n  },\n  methods: {\n    imageLoadError () {\n      this.showPlaceholder = true\n    }\n  },\n  watch: {\n    src () {\n      this.showPlaceholder = false\n    }\n  }\n}\n\nexport default UserAvatar\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_avatar.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_avatar.js\"\nimport __vue_script__ from \"!!babel-loader!./user_avatar.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-056a5e34\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_avatar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('StillImage',{staticClass:\"avatar\",class:{ 'avatar-compact': _vm.compact, 'better-shadow': _vm.betterShadow },attrs:{\"alt\":_vm.user.screen_name,\"title\":_vm.user.screen_name,\"src\":_vm.imgSrc,\"image-load-error\":_vm.imageLoadError}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./dialog_modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./dialog_modal.js\"\nimport __vue_script__ from \"!!babel-loader!./dialog_modal.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-70b9d662\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./dialog_modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:{ 'dark-overlay': _vm.darkOverlay },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }$event.stopPropagation();_vm.onCancel()}}},[_c('div',{staticClass:\"dialog-modal panel panel-default\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"panel-heading dialog-modal-heading\"},[_c('div',{staticClass:\"title\"},[_vm._t(\"header\")],2)]),_vm._v(\" \"),_c('div',{staticClass:\"dialog-modal-content\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{staticClass:\"dialog-modal-footer user-interactions panel-footer\"},[_vm._t(\"footer\")],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./moderation_tools.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./moderation_tools.js\"\nimport __vue_script__ from \"!!babel-loader!./moderation_tools.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-168f1ca6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./moderation_tools.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Popover',{staticClass:\"moderation-tools-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"bottom\",\"offset\":{ y: 5 }},on:{\"show\":function($event){_vm.setToggled(true)},\"close\":function($event){_vm.setToggled(false)}}},[_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.user.is_local)?_c('span',[_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleRight(\"admin\")}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t(!!_vm.user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin'))+\"\\n          \")]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleRight(\"moderator\")}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t(!!_vm.user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator'))+\"\\n          \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-divider\",attrs:{\"role\":\"separator\"}})]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleActivationStatus()}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t(!!_vm.user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account'))+\"\\n        \")]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.deleteUserDialog(true)}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.admin_menu.delete_account'))+\"\\n        \")]),_vm._v(\" \"),(_vm.hasTagPolicy)?_c('div',{staticClass:\"dropdown-divider\",attrs:{\"role\":\"separator\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasTagPolicy)?_c('span',[_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.FORCE_NSFW)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.force_nsfw'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.FORCE_NSFW) }})]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.STRIP_MEDIA)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.strip_media'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.STRIP_MEDIA) }})]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.FORCE_UNLISTED)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.force_unlisted'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.FORCE_UNLISTED) }})]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.SANDBOX)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.sandbox'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.SANDBOX) }})]),_vm._v(\" \"),(_vm.user.is_local)?_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.DISABLE_REMOTE_SUBSCRIPTION)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.disable_remote_subscription'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.DISABLE_REMOTE_SUBSCRIPTION) }})]):_vm._e(),_vm._v(\" \"),(_vm.user.is_local)?_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.DISABLE_ANY_SUBSCRIPTION)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.disable_any_subscription'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.DISABLE_ANY_SUBSCRIPTION) }})]):_vm._e(),_vm._v(\" \"),(_vm.user.is_local)?_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.QUARANTINE)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.admin_menu.quarantine'))+\"\\n            \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.QUARANTINE) }})]):_vm._e()]):_vm._e()])]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default btn-block\",class:{ toggled: _vm.toggled },attrs:{\"slot\":\"trigger\"},slot:\"trigger\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user_card.admin_menu.moderation'))+\"\\n    \")])]),_vm._v(\" \"),_c('portal',{attrs:{\"to\":\"modal\"}},[(_vm.showDeleteUserDialog)?_c('DialogModal',{attrs:{\"on-cancel\":_vm.deleteUserDialog.bind(this, false)}},[_c('template',{slot:\"header\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.admin_menu.delete_user'))+\"\\n      \")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('user_card.admin_menu.delete_user_confirmation')))]),_vm._v(\" \"),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){_vm.deleteUserDialog(false)}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('general.cancel'))+\"\\n        \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default danger\",on:{\"click\":function($event){_vm.deleteUser()}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.admin_menu.delete_user'))+\"\\n        \")])])],2):_vm._e()],1)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\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', this.user.id)\n    },\n    openChat () {\n      this.$router.push({\n        name: 'chat',\n        params: { recipient_id: this.user.id }\n      })\n    }\n  }\n}\n\nexport default AccountActions\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./account_actions.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./account_actions.js\"\nimport __vue_script__ from \"!!babel-loader!./account_actions.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-44e6c6d8\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./account_actions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"account-actions\"},[_c('Popover',{attrs:{\"trigger\":\"click\",\"placement\":\"bottom\"}},[_c('div',{staticClass:\"account-tools-popover\",attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.relationship.following)?[(_vm.relationship.showing_reblogs)?_c('button',{staticClass:\"btn btn-default dropdown-item\",on:{\"click\":_vm.hideRepeats}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.hide_repeats'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(!_vm.relationship.showing_reblogs)?_c('button',{staticClass:\"btn btn-default dropdown-item\",on:{\"click\":_vm.showRepeats}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.show_repeats'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-divider\",attrs:{\"role\":\"separator\"}})]:_vm._e(),_vm._v(\" \"),(_vm.relationship.blocking)?_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.unblockUser}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.unblock'))+\"\\n        \")]):_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.blockUser}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.block'))+\"\\n        \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.reportUser}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.report'))+\"\\n        \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.openChat}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.message'))+\"\\n        \")])],2)]),_vm._v(\" \"),_c('div',{staticClass:\"btn btn-default ellipsis-button\",attrs:{\"slot\":\"trigger\"},slot:\"trigger\"},[_c('i',{staticClass:\"icon-ellipsis trigger-button\"})])])],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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 generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\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  },\n  methods: {\n    muteUser () {\n      this.$store.dispatch('muteUser', this.user.id)\n    },\n    unmuteUser () {\n      this.$store.dispatch('unmuteUser', this.user.id)\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    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('setCurrent', attachment)\n    },\n    mentionUser () {\n      this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n    }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_card.js\"\nimport __vue_script__ from \"!!babel-loader!./user_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d895630\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-card\",class:_vm.classes},[_c('div',{staticClass:\"background-image\",class:{ 'hide-bio': _vm.hideBio },style:(_vm.style)}),_vm._v(\" \"),_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"user-info\"},[_c('div',{staticClass:\"container\"},[(_vm.allowZoomingAvatar)?_c('a',{staticClass:\"user-info-avatar-link\",on:{\"click\":_vm.zoomAvatar}},[_c('UserAvatar',{attrs:{\"better-shadow\":_vm.betterShadow,\"user\":_vm.user}}),_vm._v(\" \"),_vm._m(0)],1):_c('router-link',{attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_c('UserAvatar',{attrs:{\"better-shadow\":_vm.betterShadow,\"user\":_vm.user}})],1),_vm._v(\" \"),_c('div',{staticClass:\"user-summary\"},[_c('div',{staticClass:\"top-line\"},[(_vm.user.name_html)?_c('div',{staticClass:\"user-name\",attrs:{\"title\":_vm.user.name},domProps:{\"innerHTML\":_vm._s(_vm.user.name_html)}}):_c('div',{staticClass:\"user-name\",attrs:{\"title\":_vm.user.name}},[_vm._v(\"\\n              \"+_vm._s(_vm.user.name)+\"\\n            \")]),_vm._v(\" \"),(!_vm.isOtherUser)?_c('router-link',{attrs:{\"to\":{ name: 'user-settings' }}},[_c('i',{staticClass:\"button-icon icon-wrench usersettings\",attrs:{\"title\":_vm.$t('tool_tip.user_settings')}})]):_vm._e(),_vm._v(\" \"),(_vm.isOtherUser && !_vm.user.is_local)?_c('a',{attrs:{\"href\":_vm.user.statusnet_profile_url,\"target\":\"_blank\"}},[_c('i',{staticClass:\"icon-link-ext usersettings\"})]):_vm._e(),_vm._v(\" \"),(_vm.isOtherUser && _vm.loggedIn)?_c('AccountActions',{attrs:{\"user\":_vm.user,\"relationship\":_vm.relationship}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"bottom-line\"},[_c('router-link',{staticClass:\"user-screen-name\",attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_vm._v(\"\\n              @\"+_vm._s(_vm.user.screen_name)+\"\\n            \")]),_vm._v(\" \"),(!_vm.hideBio && !!_vm.visibleRole)?_c('span',{staticClass:\"alert staff\"},[_vm._v(_vm._s(_vm.visibleRole))]):_vm._e(),_vm._v(\" \"),(_vm.user.locked)?_c('span',[_c('i',{staticClass:\"icon icon-lock\"})]):_vm._e(),_vm._v(\" \"),(!_vm.mergedConfig.hideUserStats && !_vm.hideBio)?_c('span',{staticClass:\"dailyAvg\"},[_vm._v(_vm._s(_vm.dailyAvg)+\" \"+_vm._s(_vm.$t('user_card.per_day')))]):_vm._e()],1)])],1),_vm._v(\" \"),_c('div',{staticClass:\"user-meta\"},[(_vm.relationship.followed_by && _vm.loggedIn && _vm.isOtherUser)?_c('div',{staticClass:\"following\"},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user_card.follows_you'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.isOtherUser && (_vm.loggedIn || !_vm.switcher))?_c('div',{staticClass:\"highlighter\"},[(_vm.userHighlightType !== 'disabled')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userHighlightColor),expression:\"userHighlightColor\"}],staticClass:\"userHighlightText\",attrs:{\"id\":'userHighlightColorTx'+_vm.user.id,\"type\":\"text\"},domProps:{\"value\":(_vm.userHighlightColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.userHighlightColor=$event.target.value}}}):_vm._e(),_vm._v(\" \"),(_vm.userHighlightType !== 'disabled')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userHighlightColor),expression:\"userHighlightColor\"}],staticClass:\"userHighlightCl\",attrs:{\"id\":'userHighlightColor'+_vm.user.id,\"type\":\"color\"},domProps:{\"value\":(_vm.userHighlightColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.userHighlightColor=$event.target.value}}}):_vm._e(),_vm._v(\" \"),_c('label',{staticClass:\"userHighlightSel select\",attrs:{\"for\":\"style-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userHighlightType),expression:\"userHighlightType\"}],staticClass:\"userHighlightSel\",attrs:{\"id\":'userHighlightSel'+_vm.user.id},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.userHighlightType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"disabled\"}},[_vm._v(\"No highlight\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"solid\"}},[_vm._v(\"Solid bg\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"striped\"}},[_vm._v(\"Striped bg\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"side\"}},[_vm._v(\"Side stripe\")])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]):_vm._e()]),_vm._v(\" \"),(_vm.loggedIn && _vm.isOtherUser)?_c('div',{staticClass:\"user-interactions\"},[_c('div',{staticClass:\"btn-group\"},[_c('FollowButton',{attrs:{\"relationship\":_vm.relationship}}),_vm._v(\" \"),(_vm.relationship.following)?[(!_vm.relationship.subscribing)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":_vm.subscribeUser,\"title\":_vm.$t('user_card.subscribe')}},[_c('i',{staticClass:\"icon-bell-alt\"})]):_c('ProgressButton',{staticClass:\"btn btn-default toggled\",attrs:{\"click\":_vm.unsubscribeUser,\"title\":_vm.$t('user_card.unsubscribe')}},[_c('i',{staticClass:\"icon-bell-ringing-o\"})])]:_vm._e()],2),_vm._v(\" \"),_c('div',[(_vm.relationship.muting)?_c('button',{staticClass:\"btn btn-default btn-block toggled\",on:{\"click\":_vm.unmuteUser}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.muted'))+\"\\n          \")]):_c('button',{staticClass:\"btn btn-default btn-block\",on:{\"click\":_vm.muteUser}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.mute'))+\"\\n          \")])]),_vm._v(\" \"),_c('div',[_c('button',{staticClass:\"btn btn-default btn-block\",on:{\"click\":_vm.mentionUser}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_card.mention'))+\"\\n          \")])]),_vm._v(\" \"),(_vm.loggedIn.role === \"admin\")?_c('ModerationTools',{attrs:{\"user\":_vm.user}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.loggedIn && _vm.user.is_local)?_c('div',{staticClass:\"user-interactions\"},[_c('RemoteFollow',{attrs:{\"user\":_vm.user}})],1):_vm._e()])]),_vm._v(\" \"),(!_vm.hideBio)?_c('div',{staticClass:\"panel-body\"},[(!_vm.mergedConfig.hideUserStats && _vm.switcher)?_c('div',{staticClass:\"user-counts\"},[_c('div',{staticClass:\"user-count\",on:{\"click\":function($event){$event.preventDefault();_vm.setProfileView('statuses')}}},[_c('h5',[_vm._v(_vm._s(_vm.$t('user_card.statuses')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.user.statuses_count)+\" \"),_c('br')])]),_vm._v(\" \"),_c('div',{staticClass:\"user-count\",on:{\"click\":function($event){$event.preventDefault();_vm.setProfileView('friends')}}},[_c('h5',[_vm._v(_vm._s(_vm.$t('user_card.followees')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.hideFollowsCount ? _vm.$t('user_card.hidden') : _vm.user.friends_count))])]),_vm._v(\" \"),_c('div',{staticClass:\"user-count\",on:{\"click\":function($event){$event.preventDefault();_vm.setProfileView('followers')}}},[_c('h5',[_vm._v(_vm._s(_vm.$t('user_card.followers')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.hideFollowersCount ? _vm.$t('user_card.hidden') : _vm.user.followers_count))])])]):_vm._e(),_vm._v(\" \"),(!_vm.hideBio && _vm.user.description_html)?_c('p',{staticClass:\"user-card-bio\",domProps:{\"innerHTML\":_vm._s(_vm.user.description_html)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}):(!_vm.hideBio)?_c('p',{staticClass:\"user-card-bio\"},[_vm._v(\"\\n      \"+_vm._s(_vm.user.description)+\"\\n    \")]):_vm._e()]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-info-avatar-link-overlay\"},[_c('i',{staticClass:\"button-icon icon-zoom-in\"})])}]\nexport { render, staticRenderFns }","\nconst Popover = {\n  name: 'Popover',\n  props: {\n    // Action to trigger popover: either 'hover' or 'click'\n    trigger: String,\n    // Either 'top' or 'bottom'\n    placement: String,\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    // Takes a top/bottom/left/right object, how much space to leave\n    // between boundary and popover element\n    margin: Object,\n    // Takes a x/y object and tells how many pixels to offset from\n    // anchor point on either axis\n    offset: Object,\n    // Additional styles you may want for the popover container\n    popoverClass: String\n  },\n  data () {\n    return {\n      hidden: true,\n      styles: { opacity: 0 },\n      oldSize: { width: 0, height: 0 }\n    }\n  },\n  methods: {\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 slot=\"trigger\".\n      const anchorEl = (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\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.$el.offsetParent.getBoundingClientRect()\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      const yOffset = (this.offset && this.offset.y) || 0\n      const translateY = usingTop\n        ? -anchorEl.offsetHeight - yOffset - content.offsetHeight\n        : yOffset\n\n      const xOffset = (this.offset && this.offset.x) || 0\n      const translateX = (anchorEl.offsetWidth * 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.floor(translateX)}px) translateY(${Math.floor(translateY)}px)`\n      }\n    },\n    showPopover () {\n      if (this.hidden) this.$emit('show')\n      this.hidden = false\n      this.$nextTick(this.updateStyles)\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  destroyed () {\n    document.removeEventListener('click', this.onClickOutside)\n    this.hidePopover()\n  }\n}\n\nexport default Popover\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./popover.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./popover.js\"\nimport __vue_script__ from \"!!babel-loader!./popover.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-10f1984d\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./popover.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"mouseenter\":_vm.onMouseenter,\"mouseleave\":_vm.onMouseleave}},[_c('div',{ref:\"trigger\",on:{\"click\":_vm.onClick}},[_vm._t(\"trigger\")],2),_vm._v(\" \"),(!_vm.hidden)?_c('div',{ref:\"content\",staticClass:\"popover\",class:_vm.popoverClass,style:(_vm.styles)},[_vm._t(\"content\",null,{close:_vm.hidePopover})],2):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapGetters } from 'vuex'\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    classes () {\n      return {\n        'icon-star-empty': !this.status.favorited,\n        'icon-star': this.status.favorited,\n        'animate-spin': this.animated\n      }\n    },\n    ...mapGetters(['mergedConfig'])\n  }\n}\n\nexport default FavoriteButton\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./favorite_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./favorite_button.js\"\nimport __vue_script__ from \"!!babel-loader!./favorite_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2ced002f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./favorite_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loggedIn)?_c('div',[_c('i',{staticClass:\"button-icon favorite-button fav-active\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.favorite')},on:{\"click\":function($event){$event.preventDefault();_vm.favorite()}}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.fave_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.fave_num))]):_vm._e()]):_c('div',[_c('i',{staticClass:\"button-icon favorite-button\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.favorite')}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.fave_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.fave_num))]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\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  },\n  computed: {\n    commonEmojis () {\n      return ['❤️', '😠', '👀', '😂', '🔥']\n    },\n    emojis () {\n      if (this.filterWord !== '') {\n        return this.$store.state.instance.emoji.filter(emoji => emoji.displayText.includes(this.filterWord))\n      }\n      return this.$store.state.instance.emoji || []\n    },\n    ...mapGetters(['mergedConfig'])\n  }\n}\n\nexport default ReactButton\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./react_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./react_button.js\"\nimport __vue_script__ from \"!!babel-loader!./react_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-185f65eb\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./react_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{staticClass:\"react-button-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"top\",\"offset\":{ y: 5 }},scopedSlots:_vm._u([{key:\"content\",fn:function(ref){\nvar close = ref.close;\nreturn _c('div',{},[_c('div',{staticClass:\"reaction-picker-filter\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filterWord),expression:\"filterWord\"}],attrs:{\"placeholder\":_vm.$t('emoji.search_emoji')},domProps:{\"value\":(_vm.filterWord)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.filterWord=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"reaction-picker\"},[_vm._l((_vm.commonEmojis),function(emoji){return _c('span',{key:emoji,staticClass:\"emoji-button\",on:{\"click\":function($event){_vm.addReaction($event, emoji, close)}}},[_vm._v(\"\\n        \"+_vm._s(emoji)+\"\\n      \")])}),_vm._v(\" \"),_c('div',{staticClass:\"reaction-picker-divider\"}),_vm._v(\" \"),_vm._l((_vm.emojis),function(emoji,key){return _c('span',{key:key,staticClass:\"emoji-button\",on:{\"click\":function($event){_vm.addReaction($event, emoji.replacement, close)}}},[_vm._v(\"\\n        \"+_vm._s(emoji.replacement)+\"\\n      \")])}),_vm._v(\" \"),_c('div',{staticClass:\"reaction-bottom-fader\"})],2)])}}])},[_c('i',{staticClass:\"icon-smile button-icon add-reaction-button\",attrs:{\"slot\":\"trigger\",\"title\":_vm.$t('tool_tip.add_reaction')},slot:\"trigger\"})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapGetters } from 'vuex'\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    classes () {\n      return {\n        'retweeted': this.status.repeated,\n        'retweeted-empty': !this.status.repeated,\n        'animate-spin': this.animated\n      }\n    },\n    ...mapGetters(['mergedConfig'])\n  }\n}\n\nexport default RetweetButton\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./retweet_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./retweet_button.js\"\nimport __vue_script__ from \"!!babel-loader!./retweet_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-538410cc\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./retweet_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loggedIn)?_c('div',[(_vm.visibility !== 'private' && _vm.visibility !== 'direct')?[_c('i',{staticClass:\"button-icon retweet-button icon-retweet rt-active\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.repeat')},on:{\"click\":function($event){$event.preventDefault();_vm.retweet()}}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.repeat_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.repeat_num))]):_vm._e()]:[_c('i',{staticClass:\"button-icon icon-lock\",class:_vm.classes,attrs:{\"title\":_vm.$t('timeline.no_retweet_hint')}})]],2):(!_vm.loggedIn)?_c('div',[_c('i',{staticClass:\"button-icon icon-retweet\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.repeat')}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.repeat_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.repeat_num))]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Popover from '../popover/popover.vue'\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  },\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./extra_buttons.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./extra_buttons.js\"\nimport __vue_script__ from \"!!babel-loader!./extra_buttons.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b30b8de6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./extra_buttons.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{staticClass:\"extra-button-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"content\",fn:function(ref){\nvar close = ref.close;\nreturn _c('div',{},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.canMute && !_vm.status.thread_muted)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.muteConversation($event)}}},[_c('i',{staticClass:\"icon-eye-off\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.mute_conversation\")))])]):_vm._e(),_vm._v(\" \"),(_vm.canMute && _vm.status.thread_muted)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.unmuteConversation($event)}}},[_c('i',{staticClass:\"icon-eye-off\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.unmute_conversation\")))])]):_vm._e(),_vm._v(\" \"),(!_vm.status.pinned && _vm.canPin)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.pinStatus($event)},close]}},[_c('i',{staticClass:\"icon-pin\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.pin\")))])]):_vm._e(),_vm._v(\" \"),(_vm.status.pinned && _vm.canPin)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.unpinStatus($event)},close]}},[_c('i',{staticClass:\"icon-pin\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.unpin\")))])]):_vm._e(),_vm._v(\" \"),(_vm.canDelete)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.deleteStatus($event)},close]}},[_c('i',{staticClass:\"icon-cancel\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.delete\")))])]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.copyLink($event)},close]}},[_c('i',{staticClass:\"icon-share\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.copy_link\")))])])])])}}])},[_c('i',{staticClass:\"icon-ellipsis button-icon\",attrs:{\"slot\":\"trigger\"},slot:\"trigger\"})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { find } from 'lodash'\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: () => import('../status/status.vue'),\n    Popover: () => import('../popover/popover.vue')\n  },\n  methods: {\n    enter () {\n      if (!this.status) {\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./status_popover.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./status_popover.js\"\nimport __vue_script__ from \"!!babel-loader!./status_popover.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3b873076\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./status_popover.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{attrs:{\"trigger\":\"hover\",\"popover-class\":\"status-popover\",\"bound-to\":{ x: 'container' }},on:{\"show\":_vm.enter}},[_c('template',{slot:\"trigger\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[(_vm.status)?_c('Status',{attrs:{\"is-preview\":true,\"statusoid\":_vm.status,\"compact\":true}}):(_vm.error)?_c('div',{staticClass:\"status-preview-no-content faint\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('status.status_unavailable'))+\"\\n    \")]):_c('div',{staticClass:\"status-preview-no-content\"},[_c('i',{staticClass:\"icon-spin4 animate-spin\"})])],1)],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport Popover from '../popover/popover.vue'\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n  name: 'EmojiReactions',\n  components: {\n    UserAvatar,\n    Popover\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./emoji_reactions.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./emoji_reactions.js\"\nimport __vue_script__ from \"!!babel-loader!./emoji_reactions.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-09ec7fb6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./emoji_reactions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"emoji-reactions\"},[_vm._l((_vm.emojiReactions),function(reaction){return _c('Popover',{key:reaction.name,attrs:{\"trigger\":\"hover\",\"placement\":\"top\",\"offset\":{ y: 5 }}},[_c('div',{staticClass:\"reacted-users\",attrs:{\"slot\":\"content\"},slot:\"content\"},[(_vm.accountsForEmoji[reaction.name].length)?_c('div',_vm._l((_vm.accountsForEmoji[reaction.name]),function(account){return _c('div',{key:account.id,staticClass:\"reacted-user\"},[_c('UserAvatar',{staticClass:\"avatar-small\",attrs:{\"user\":account,\"compact\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"reacted-user-names\"},[_c('span',{staticClass:\"reacted-user-name\",domProps:{\"innerHTML\":_vm._s(account.name_html)}}),_vm._v(\" \"),_c('span',{staticClass:\"reacted-user-screen-name\"},[_vm._v(_vm._s(account.screen_name))])])],1)}),0):_c('div',[_c('i',{staticClass:\"icon-spin4 animate-spin\"})])]),_vm._v(\" \"),_c('button',{staticClass:\"emoji-reaction btn btn-default\",class:{ 'picked-reaction': _vm.reactedWith(reaction.name), 'not-clickable': !_vm.loggedIn },attrs:{\"slot\":\"trigger\"},on:{\"click\":function($event){_vm.emojiOnClick(reaction.name, $event)},\"mouseenter\":function($event){_vm.fetchEmojiReactionsByIfMissing()}},slot:\"trigger\"},[_c('span',{staticClass:\"reaction-emoji\"},[_vm._v(_vm._s(reaction.name))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(reaction.count))])])])}),_vm._v(\" \"),(_vm.tooManyReactions)?_c('a',{staticClass:\"emoji-reaction-expand faint\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.toggleShowAll}},[_vm._v(\"\\n    \"+_vm._s(_vm.showAll ? _vm.$t('general.show_less') : _vm.showMoreString)+\"\\n  \")]):_vm._e()],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import 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 StatusPopover from '../status_popover/status_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.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 { filter, unescape, uniqBy } from 'lodash'\nimport { mapGetters, mapState } from 'vuex'\n\nconst Status = {\n  name: 'Status',\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  data () {\n    return {\n      replying: false,\n      unmuted: false,\n      userExpanded: false,\n      error: null\n    }\n  },\n  computed: {\n    muteWords () {\n      return this.mergedConfig.muteWords\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        return this.generateUserProfileLink(this.status.in_reply_to_user_id, this.replyToName)\n      }\n    },\n    retweet () { return !!this.statusoid.retweeted_status },\n    retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name },\n    retweeterHtml () { return this.statusoid.user.name_html },\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      const statusText = this.status.text.toLowerCase()\n      const statusSummary = this.status.summary.toLowerCase()\n      const hits = filter(this.muteWords, (muteWord) => {\n        return statusText.includes(muteWord.toLowerCase()) || statusSummary.includes(muteWord.toLowerCase())\n      })\n\n      return hits\n    },\n    muted () {\n      const relationship = this.$store.getters.relationship(this.status.user.id)\n      return !this.unmuted && (\n        (!(this.inProfile && this.status.user.id === this.profileUserId) && relationship.muting) ||\n        (!this.inConversation && this.status.thread_muted) ||\n        this.muteWordHits.length > 0)\n    },\n    hideFilteredStatuses () {\n      return this.mergedConfig.hideFilteredStatuses\n    },\n    hideStatus () {\n      return (this.hideReply || this.deleted) || (this.muted && this.hideFilteredStatuses)\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\n      }\n    },\n    hideReply () {\n      if (this.mergedConfig.replyVisibility === 'all') {\n        return false\n      }\n      if (this.inConversation || !this.isReply) {\n        return false\n      }\n      if (this.status.user.id === this.currentUser.id) {\n        return false\n      }\n      if (this.status.type === 'retweet') {\n        return false\n      }\n      const checkFollowing = this.mergedConfig.replyVisibility === 'following'\n      for (var i = 0; i < this.status.attentions.length; ++i) {\n        if (this.status.user.id === this.status.attentions[i].id) {\n          continue\n        }\n        // There's zero guarantee of this working. If we happen to have that user and their\n        // relationship in store then it will work, but there's kinda little chance of having\n        // them for people you're not following.\n        const relationship = this.$store.state.users.relationships[this.status.attentions[i].id]\n        if (checkFollowing && relationship && relationship.following) {\n          return false\n        }\n        if (this.status.attentions[i].id === this.currentUser.id) {\n          return false\n        }\n      }\n      return this.status.attentions.length > 0\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    ...mapGetters(['mergedConfig']),\n    ...mapState({\n      betterShadow: state => state.interface.browserSupport.cssFilter,\n      currentUser: state => state.users.currentUser\n    })\n  },\n  components: {\n    FavoriteButton,\n    ReactButton,\n    RetweetButton,\n    ExtraButtons,\n    PostStatusForm,\n    UserCard,\n    UserAvatar,\n    AvatarList,\n    Timeago,\n    StatusPopover,\n    EmojiReactions,\n    StatusContent\n  },\n  methods: {\n    visibilityIcon (visibility) {\n      switch (visibility) {\n        case 'private':\n          return 'icon-lock'\n        case 'unlisted':\n          return 'icon-lock-open-alt'\n        case 'direct':\n          return 'icon-mail-alt'\n        default:\n          return 'icon-globe'\n      }\n    },\n    showError (error) {\n      this.error = error\n    },\n    clearError () {\n      this.error = undefined\n    },\n    toggleReplying () {\n      this.replying = !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  },\n  watch: {\n    'highlight': function (id) {\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    '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  },\n  filters: {\n    capitalize: function (str) {\n      return str.charAt(0).toUpperCase() + str.slice(1)\n    }\n  }\n}\n\nexport default Status\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./status.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./status.js\"\nimport __vue_script__ from \"!!babel-loader!./status.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5b35f0d0\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./status.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.hideStatus)?_c('div',{staticClass:\"status-el\",class:[{ 'status-el_focused': _vm.isFocused }, { 'status-conversation': _vm.inlineExpanded }]},[(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n      \"+_vm._s(_vm.error)+\"\\n      \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})]):_vm._e(),_vm._v(\" \"),(_vm.muted && !_vm.isPreview)?[_c('div',{staticClass:\"media status container muted\"},[_c('small',[_c('router-link',{attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n            \"+_vm._s(_vm.status.user.screen_name)+\"\\n          \")])],1),_vm._v(\" \"),_c('small',{staticClass:\"muteWords\"},[_vm._v(_vm._s(_vm.muteWordHits.join(', ')))]),_vm._v(\" \"),_c('a',{staticClass:\"unmute\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})])])]:[(_vm.showPinned)?_c('div',{staticClass:\"status-pin\"},[_c('i',{staticClass:\"fa icon-pin faint\"}),_vm._v(\" \"),_c('span',{staticClass:\"faint\"},[_vm._v(_vm._s(_vm.$t('status.pinned')))])]):_vm._e(),_vm._v(\" \"),(_vm.retweet && !_vm.noHeading && !_vm.inConversation)?_c('div',{staticClass:\"media container retweet-info\",class:[_vm.repeaterClass, { highlighted: _vm.repeaterStyle }],style:([_vm.repeaterStyle])},[(_vm.retweet)?_c('UserAvatar',{staticClass:\"media-left\",attrs:{\"better-shadow\":_vm.betterShadow,\"user\":_vm.statusoid.user}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"media-body faint\"},[_c('span',{staticClass:\"user-name\"},[(_vm.retweeterHtml)?_c('router-link',{attrs:{\"to\":_vm.retweeterProfileLink},domProps:{\"innerHTML\":_vm._s(_vm.retweeterHtml)}}):_c('router-link',{attrs:{\"to\":_vm.retweeterProfileLink}},[_vm._v(_vm._s(_vm.retweeter))])],1),_vm._v(\" \"),_c('i',{staticClass:\"fa icon-retweet retweeted\",attrs:{\"title\":_vm.$t('tool_tip.repeat')}}),_vm._v(\"\\n          \"+_vm._s(_vm.$t('timeline.repeated'))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"media status\",class:[_vm.userClass, { highlighted: _vm.userStyle, 'is-retweet': _vm.retweet && !_vm.inConversation }],style:([ _vm.userStyle ]),attrs:{\"data-tags\":_vm.tags}},[(!_vm.noHeading)?_c('div',{staticClass:\"media-left\"},[_c('router-link',{attrs:{\"to\":_vm.userProfileLink},nativeOn:{\"!click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleUserExpanded($event)}}},[_c('UserAvatar',{attrs:{\"compact\":_vm.compact,\"better-shadow\":_vm.betterShadow,\"user\":_vm.status.user}})],1)],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"status-body\"},[(_vm.userExpanded)?_c('UserCard',{staticClass:\"status-usercard\",attrs:{\"user-id\":_vm.status.user.id,\"rounded\":true,\"bordered\":true}}):_vm._e(),_vm._v(\" \"),(!_vm.noHeading)?_c('div',{staticClass:\"media-heading\"},[_c('div',{staticClass:\"heading-name-row\"},[_c('div',{staticClass:\"name-and-account-name\"},[(_vm.status.user.name_html)?_c('h4',{staticClass:\"user-name\",domProps:{\"innerHTML\":_vm._s(_vm.status.user.name_html)}}):_c('h4',{staticClass:\"user-name\"},[_vm._v(\"\\n                  \"+_vm._s(_vm.status.user.name)+\"\\n                \")]),_vm._v(\" \"),_c('router-link',{staticClass:\"account-name\",attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n                  \"+_vm._s(_vm.status.user.screen_name)+\"\\n                \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"heading-right\"},[_c('router-link',{staticClass:\"timeago faint-link\",attrs:{\"to\":{ name: 'conversation', params: { id: _vm.status.id } }}},[_c('Timeago',{attrs:{\"time\":_vm.status.created_at,\"auto-update\":60}})],1),_vm._v(\" \"),(_vm.status.visibility)?_c('div',{staticClass:\"button-icon visibility-icon\"},[_c('i',{class:_vm.visibilityIcon(_vm.status.visibility),attrs:{\"title\":_vm._f(\"capitalize\")(_vm.status.visibility)}})]):_vm._e(),_vm._v(\" \"),(!_vm.status.is_local && !_vm.isPreview)?_c('a',{staticClass:\"source_url\",attrs:{\"href\":_vm.status.external_url,\"target\":\"_blank\",\"title\":\"Source\"}},[(!!(_vm.status.user && _vm.status.user.favicon))?_c('img',{attrs:{\"height\":\"18px\",\"src\":_vm.status.user.favicon}}):_c('i',{staticClass:\"button-icon icon-link-ext-alt\"})]):(!!(_vm.status.user && _vm.status.user.favicon))?_c('img',{attrs:{\"height\":\"18px\",\"src\":_vm.status.user.favicon}}):_vm._e(),_vm._v(\" \"),(_vm.expandable && !_vm.isPreview)?[_c('a',{attrs:{\"href\":\"#\",\"title\":\"Expand\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleExpanded($event)}}},[_c('i',{staticClass:\"button-icon icon-plus-squared\"})])]:_vm._e(),_vm._v(\" \"),(_vm.unmuted)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})]):_vm._e()],2)]),_vm._v(\" \"),_c('div',{staticClass:\"heading-reply-row\"},[(_vm.isReply)?_c('div',{staticClass:\"reply-to-and-accountname\"},[(!_vm.isPreview)?_c('StatusPopover',{staticClass:\"reply-to-popover\",staticStyle:{\"min-width\":\"0\"},attrs:{\"status-id\":_vm.status.in_reply_to_status_id}},[_c('a',{staticClass:\"reply-to\",attrs:{\"href\":\"#\",\"aria-label\":_vm.$t('tool_tip.reply')},on:{\"click\":function($event){$event.preventDefault();_vm.gotoOriginal(_vm.status.in_reply_to_status_id)}}},[_c('i',{staticClass:\"button-icon icon-reply\"}),_vm._v(\" \"),_c('span',{staticClass:\"faint-link reply-to-text\"},[_vm._v(_vm._s(_vm.$t('status.reply_to')))])])]):_c('span',{staticClass:\"reply-to\"},[_c('span',{staticClass:\"reply-to-text\"},[_vm._v(_vm._s(_vm.$t('status.reply_to')))])]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.replyProfileLink}},[_vm._v(\"\\n                  \"+_vm._s(_vm.replyToName)+\"\\n                \")]),_vm._v(\" \"),(_vm.replies && _vm.replies.length)?_c('span',{staticClass:\"faint replies-separator\"},[_vm._v(\"\\n                  -\\n                \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.inConversation && !_vm.isPreview && _vm.replies && _vm.replies.length)?_c('div',{staticClass:\"replies\"},[_c('span',{staticClass:\"faint\"},[_vm._v(_vm._s(_vm.$t('status.replies_list')))]),_vm._v(\" \"),_vm._l((_vm.replies),function(reply){return _c('StatusPopover',{key:reply.id,attrs:{\"status-id\":reply.id}},[_c('a',{staticClass:\"reply-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.gotoOriginal(reply.id)}}},[_vm._v(_vm._s(reply.name))])])})],2):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('StatusContent',{attrs:{\"status\":_vm.status,\"no-heading\":_vm.noHeading,\"highlight\":_vm.highlight,\"focused\":_vm.isFocused}}),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(!_vm.hidePostStats && _vm.isFocused && _vm.combinedFavsAndRepeatsUsers.length > 0)?_c('div',{staticClass:\"favs-repeated-users\"},[_c('div',{staticClass:\"stats\"},[(_vm.statusFromGlobalRepository.rebloggedBy && _vm.statusFromGlobalRepository.rebloggedBy.length > 0)?_c('div',{staticClass:\"stat-count\"},[_c('a',{staticClass:\"stat-title\"},[_vm._v(_vm._s(_vm.$t('status.repeats')))]),_vm._v(\" \"),_c('div',{staticClass:\"stat-number\"},[_vm._v(\"\\n                    \"+_vm._s(_vm.statusFromGlobalRepository.rebloggedBy.length)+\"\\n                  \")])]):_vm._e(),_vm._v(\" \"),(_vm.statusFromGlobalRepository.favoritedBy && _vm.statusFromGlobalRepository.favoritedBy.length > 0)?_c('div',{staticClass:\"stat-count\"},[_c('a',{staticClass:\"stat-title\"},[_vm._v(_vm._s(_vm.$t('status.favorites')))]),_vm._v(\" \"),_c('div',{staticClass:\"stat-number\"},[_vm._v(\"\\n                    \"+_vm._s(_vm.statusFromGlobalRepository.favoritedBy.length)+\"\\n                  \")])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"avatar-row\"},[_c('AvatarList',{attrs:{\"users\":_vm.combinedFavsAndRepeatsUsers}})],1)])]):_vm._e()]),_vm._v(\" \"),((_vm.mergedConfig.emojiReactionsOnTimeline || _vm.isFocused) && (!_vm.noHeading && !_vm.isPreview))?_c('EmojiReactions',{attrs:{\"status\":_vm.status}}):_vm._e(),_vm._v(\" \"),(!_vm.noHeading && !_vm.isPreview)?_c('div',{staticClass:\"status-actions media-body\"},[_c('div',[(_vm.loggedIn)?_c('i',{staticClass:\"button-icon icon-reply\",class:{'button-icon-active': _vm.replying},attrs:{\"title\":_vm.$t('tool_tip.reply')},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleReplying($event)}}}):_c('i',{staticClass:\"button-icon button-icon-disabled icon-reply\",attrs:{\"title\":_vm.$t('tool_tip.reply')}}),_vm._v(\" \"),(_vm.status.replies_count > 0)?_c('span',[_vm._v(_vm._s(_vm.status.replies_count))]):_vm._e()]),_vm._v(\" \"),_c('retweet-button',{attrs:{\"visibility\":_vm.status.visibility,\"logged-in\":_vm.loggedIn,\"status\":_vm.status}}),_vm._v(\" \"),_c('favorite-button',{attrs:{\"logged-in\":_vm.loggedIn,\"status\":_vm.status}}),_vm._v(\" \"),(_vm.loggedIn)?_c('ReactButton',{attrs:{\"status\":_vm.status}}):_vm._e(),_vm._v(\" \"),_c('extra-buttons',{attrs:{\"status\":_vm.status},on:{\"onError\":_vm.showError,\"onSuccess\":_vm.clearError}})],1):_vm._e()],1)]),_vm._v(\" \"),(_vm.replying)?_c('div',{staticClass:\"container\"},[_c('PostStatusForm',{staticClass:\"reply-body\",attrs:{\"reply-to\":_vm.status.id,\"attentions\":_vm.status.attentions,\"replied-user\":_vm.status.user,\"copy-message-scope\":_vm.status.visibility,\"subject\":_vm.replySubject},on:{\"posted\":_vm.toggleReplying}})],1):_vm._e()]],2):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","export const SECOND = 1000\nexport const MINUTE = 60 * SECOND\nexport const HOUR = 60 * MINUTE\nexport const DAY = 24 * HOUR\nexport const WEEK = 7 * DAY\nexport const MONTH = 30 * DAY\nexport const YEAR = 365.25 * DAY\n\nexport const relativeTime = (date, nowThreshold = 1) => {\n  if (typeof date === 'string') date = Date.parse(date)\n  const round = Date.now() > date ? Math.floor : Math.ceil\n  const d = Math.abs(Date.now() - date)\n  let r = { num: round(d / YEAR), key: 'time.years' }\n  if (d < nowThreshold * SECOND) {\n    r.num = 0\n    r.key = 'time.now'\n  } else if (d < MINUTE) {\n    r.num = round(d / SECOND)\n    r.key = 'time.seconds'\n  } else if (d < HOUR) {\n    r.num = round(d / MINUTE)\n    r.key = 'time.minutes'\n  } else if (d < DAY) {\n    r.num = round(d / HOUR)\n    r.key = 'time.hours'\n  } else if (d < WEEK) {\n    r.num = round(d / DAY)\n    r.key = 'time.days'\n  } else if (d < MONTH) {\n    r.num = round(d / WEEK)\n    r.key = 'time.weeks'\n  } else if (d < YEAR) {\n    r.num = round(d / MONTH)\n    r.key = 'time.months'\n  }\n  // Remove plural form when singular\n  if (r.num === 1) r.key = r.key.slice(0, -1)\n  return r\n}\n\nexport const relativeTimeShort = (date, nowThreshold = 1) => {\n  const r = relativeTime(date, nowThreshold)\n  r.key += '_short'\n  return r\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\nconst mediaUpload = {\n  data () {\n    return {\n      uploading: false,\n      uploadReady: true\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.uploading = true\n\n      statusPosterService.uploadMedia({ store, formData })\n        .then((fileData) => {\n          self.$emit('uploaded', fileData)\n          self.uploading = false\n        }, (error) => { // eslint-disable-line handle-callback-err\n          self.$emit('upload-failed', 'default')\n          self.uploading = false\n        })\n    },\n    fileDrop (e) {\n      if (e.dataTransfer.files.length > 0) {\n        e.preventDefault() // allow dropping text like before\n        this.uploadFile(e.dataTransfer.files[0])\n      }\n    },\n    fileDrag (e) {\n      let types = e.dataTransfer.types\n      if (types.contains('Files')) {\n        e.dataTransfer.dropEffect = 'copy'\n      } else {\n        e.dataTransfer.dropEffect = 'none'\n      }\n    },\n    clearFile () {\n      this.uploadReady = false\n      this.$nextTick(() => {\n        this.uploadReady = true\n      })\n    },\n    change ({ target }) {\n      for (var i = 0; i < target.files.length; i++) {\n        let file = target.files[i]\n        this.uploadFile(file)\n      }\n    }\n  },\n  props: [\n    'dropFiles'\n  ],\n  watch: {\n    'dropFiles': function (fileInfos) {\n      if (!this.uploading) {\n        this.uploadFile(fileInfos[0])\n      }\n    }\n  }\n}\n\nexport default mediaUpload\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./media_upload.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./media_upload.js\"\nimport __vue_script__ from \"!!babel-loader!./media_upload.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-74382032\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./media_upload.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"media-upload\",on:{\"drop\":[function($event){$event.preventDefault();},_vm.fileDrop],\"dragover\":function($event){$event.preventDefault();return _vm.fileDrag($event)}}},[_c('label',{staticClass:\"label\",attrs:{\"title\":_vm.$t('tool_tip.media_upload')}},[(_vm.uploading)?_c('i',{staticClass:\"progress-icon icon-spin4 animate-spin\"}):_vm._e(),_vm._v(\" \"),(!_vm.uploading)?_c('i',{staticClass:\"new-icon icon-upload\"}):_vm._e(),_vm._v(\" \"),(_vm.uploadReady)?_c('input',{staticStyle:{\"position\":\"fixed\",\"top\":\"-100em\"},attrs:{\"type\":\"file\",\"multiple\":\"true\"},on:{\"change\":_vm.change}}):_vm._e()])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport { uniq } from 'lodash'\n\nexport default {\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      }\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./poll_form.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./poll_form.js\"\nimport __vue_script__ from \"!!babel-loader!./poll_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1f896331\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./poll_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{staticClass:\"poll-form\"},[_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"poll-option\"},[_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.options[index]),expression:\"options[index]\"}],staticClass:\"poll-option-input\",attrs:{\"id\":(\"poll-\" + index),\"type\":\"text\",\"placeholder\":_vm.$t('polls.option'),\"maxlength\":_vm.maxLength},domProps:{\"value\":(_vm.options[index])},on:{\"change\":_vm.updatePollToParent,\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.stopPropagation();$event.preventDefault();_vm.nextOption(index)},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.options, index, $event.target.value)}}})]),_vm._v(\" \"),(_vm.options.length > 2)?_c('div',{staticClass:\"icon-container\"},[_c('i',{staticClass:\"icon-cancel\",on:{\"click\":function($event){_vm.deleteOption(index)}}})]):_vm._e()])}),_vm._v(\" \"),(_vm.options.length < _vm.maxOptions)?_c('a',{staticClass:\"add-option faint\",on:{\"click\":_vm.addOption}},[_c('i',{staticClass:\"icon-plus\"}),_vm._v(\"\\n    \"+_vm._s(_vm.$t(\"polls.add_option\"))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"poll-type-expiry\"},[_c('div',{staticClass:\"poll-type\",attrs:{\"title\":_vm.$t('polls.type')}},[_c('label',{staticClass:\"select\",attrs:{\"for\":\"poll-type-selector\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.pollType),expression:\"pollType\"}],staticClass:\"select\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.pollType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.updatePollToParent]}},[_c('option',{attrs:{\"value\":\"single\"}},[_vm._v(_vm._s(_vm.$t('polls.single_choice')))]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"multiple\"}},[_vm._v(_vm._s(_vm.$t('polls.multiple_choices')))])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]),_vm._v(\" \"),_c('div',{staticClass:\"poll-expiry\",attrs:{\"title\":_vm.$t('polls.expiry')}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.expiryAmount),expression:\"expiryAmount\"}],staticClass:\"expiry-amount hide-number-spinner\",attrs:{\"type\":\"number\",\"min\":_vm.minExpirationInCurrentUnit,\"max\":_vm.maxExpirationInCurrentUnit},domProps:{\"value\":(_vm.expiryAmount)},on:{\"change\":_vm.expiryAmountChange,\"input\":function($event){if($event.target.composing){ return; }_vm.expiryAmount=$event.target.value}}}),_vm._v(\" \"),_c('label',{staticClass:\"expiry-unit select\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.expiryUnit),expression:\"expiryUnit\"}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.expiryUnit=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.expiryAmountChange]}},_vm._l((_vm.expiryUnits),function(unit){return _c('option',{key:unit,domProps:{\"value\":unit}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t((\"time.\" + unit + \"_short\"), ['']))+\"\\n          \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])])],2):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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 fileTypeService from '../../services/file_type/file_type.service.js'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { reject, map, uniqBy } from 'lodash'\nimport suggestor from '../emoji_input/suggestor.js'\nimport { mapGetters } from 'vuex'\nimport Checkbox from '../checkbox/checkbox.vue'\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\nconst PostStatusForm = {\n  props: [\n    'replyTo',\n    'repliedUser',\n    'attentions',\n    'copyMessageScope',\n    'subject',\n    'disableSubject',\n    'disableScopeSelector',\n    'disableNotice',\n    'disablePolls',\n    'placeholder',\n    'maxHeight',\n    'poster',\n    'preserveFocus',\n    'autoFocus'\n  ],\n  components: {\n    MediaUpload,\n    EmojiInput,\n    PollForm,\n    ScopeSelector,\n    Checkbox\n  },\n  mounted () {\n    this.resize(this.$refs.textarea)\n    const textLength = this.$refs.textarea.value.length\n    this.$refs.textarea.setSelectionRange(textLength, textLength)\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 } = this.$store.getters.mergedConfig\n\n    return {\n      dropFiles: [],\n      submitDisabled: false,\n      error: null,\n      posting: false,\n      highlighted: 0,\n      newStatus: {\n        spoilerText: this.subject || '',\n        status: statusText,\n        nsfw: false,\n        files: [],\n        poll: {},\n        visibility: scope,\n        contentType\n      },\n      caret: 0,\n      pollFormVisible: false\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        users: this.$store.state.users.users,\n        updateUsersList: (query) => this.$store.dispatch('searchUsers', { query })\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    ...mapGetters(['mergedConfig'])\n  },\n  methods: {\n    postStatus (newStatus) {\n      if (this.posting) { return }\n      if (this.submitDisabled) { return }\n\n      if (this.newStatus.status === '') {\n        if (this.newStatus.files.length === 0) {\n          this.error = 'Cannot post an empty status with no files'\n          return\n        }\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      const postingOptions = {\n        status: newStatus.status,\n        spoilerText: newStatus.spoilerText || null,\n        visibility: newStatus.visibility,\n        sensitive: newStatus.nsfw,\n        media: newStatus.files,\n        store: this.$store,\n        inReplyToStatusId: this.replyTo,\n        contentType: newStatus.contentType,\n        poll\n      }\n\n      const poster = this.poster ? this.poster : statusPoster.postStatus\n\n      poster(postingOptions).then((data) => {\n        if (!data.error) {\n          this.newStatus = {\n            status: '',\n            spoilerText: '',\n            files: [],\n            visibility: newStatus.visibility,\n            contentType: newStatus.contentType,\n            poll: {}\n          }\n          this.pollFormVisible = false\n          this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()\n          this.clearPollForm()\n          this.$emit('posted', data)\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        } else {\n          this.error = data.error\n        }\n        this.posting = false\n      })\n    },\n    addMediaFile (fileInfo) {\n      this.newStatus.files.push(fileInfo)\n      this.enableSubmit()\n    },\n    removeMediaFile (fileInfo) {\n      let index = this.newStatus.files.indexOf(fileInfo)\n      this.newStatus.files.splice(index, 1)\n    },\n    uploadFailed (errString, templateArgs) {\n      templateArgs = templateArgs || {}\n      this.error = this.$t('upload.error.base') + ' ' + this.$t('upload.error.' + errString, templateArgs)\n      this.enableSubmit()\n    },\n    disableSubmit () {\n      this.submitDisabled = true\n    },\n    enableSubmit () {\n      this.submitDisabled = false\n    },\n    type (fileInfo) {\n      return fileTypeService.fileType(fileInfo.mimetype)\n    },\n    paste (e) {\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.files.length > 0) {\n        e.preventDefault() // allow dropping text like before\n        this.dropFiles = e.dataTransfer.files\n      }\n    },\n    fileDrag (e) {\n      e.dataTransfer.dropEffect = 'copy'\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', null)\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 = Number(bottomBottomPaddingStr.substring(0, bottomBottomPaddingStr.length - 2))\n\n      const scrollerRef = this.$el.closest('.sidebar-scroller') ||\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 = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))\n      const bottomPadding = Number(bottomPaddingStr.substring(0, bottomPaddingStr.length - 2))\n      const vertPadding = topPadding + bottomPadding\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 = target.scrollHeight - vertPadding\n      const newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding\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 = 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  }\n}\n\nexport default PostStatusForm\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./post_status_form.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./post_status_form.js\"\nimport __vue_script__ from \"!!babel-loader!./post_status_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-40a9d533\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./post_status_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"form\",staticClass:\"post-status-form\"},[_c('form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();_vm.postStatus(_vm.newStatus)}}},[_c('div',{staticClass:\"form-group\"},[(!_vm.$store.state.users.currentUser.locked && _vm.newStatus.visibility == 'private')?_c('i18n',{staticClass:\"visibility-notice\",attrs:{\"path\":\"post_status.account_not_locked_warning\",\"tag\":\"p\"}},[_c('router-link',{attrs:{\"to\":{ name: 'user-settings' }}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('post_status.account_not_locked_warning_link'))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(!_vm.hideScopeNotice && _vm.newStatus.visibility === 'public')?_c('p',{staticClass:\"visibility-notice notice-dismissible\"},[_c('span',[_vm._v(_vm._s(_vm.$t('post_status.scope_notice.public')))]),_vm._v(\" \"),_c('a',{staticClass:\"button-icon dismiss\",on:{\"click\":function($event){$event.preventDefault();_vm.dismissScopeNotice()}}},[_c('i',{staticClass:\"icon-cancel\"})])]):(!_vm.hideScopeNotice && _vm.newStatus.visibility === 'unlisted')?_c('p',{staticClass:\"visibility-notice notice-dismissible\"},[_c('span',[_vm._v(_vm._s(_vm.$t('post_status.scope_notice.unlisted')))]),_vm._v(\" \"),_c('a',{staticClass:\"button-icon dismiss\",on:{\"click\":function($event){$event.preventDefault();_vm.dismissScopeNotice()}}},[_c('i',{staticClass:\"icon-cancel\"})])]):(!_vm.hideScopeNotice && _vm.newStatus.visibility === 'private' && _vm.$store.state.users.currentUser.locked)?_c('p',{staticClass:\"visibility-notice notice-dismissible\"},[_c('span',[_vm._v(_vm._s(_vm.$t('post_status.scope_notice.private')))]),_vm._v(\" \"),_c('a',{staticClass:\"button-icon dismiss\",on:{\"click\":function($event){$event.preventDefault();_vm.dismissScopeNotice()}}},[_c('i',{staticClass:\"icon-cancel\"})])]):(_vm.newStatus.visibility === 'direct')?_c('p',{staticClass:\"visibility-notice\"},[(_vm.safeDMEnabled)?_c('span',[_vm._v(_vm._s(_vm.$t('post_status.direct_warning_to_first_only')))]):_c('span',[_vm._v(_vm._s(_vm.$t('post_status.direct_warning_to_all')))])]):_vm._e(),_vm._v(\" \"),(!_vm.disableSubject && (_vm.newStatus.spoilerText || _vm.alwaysShowSubject))?_c('EmojiInput',{staticClass:\"form-control\",attrs:{\"enable-emoji-picker\":\"\",\"suggest\":_vm.emojiSuggestor},model:{value:(_vm.newStatus.spoilerText),callback:function ($$v) {_vm.$set(_vm.newStatus, \"spoilerText\", $$v)},expression:\"newStatus.spoilerText\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newStatus.spoilerText),expression:\"newStatus.spoilerText\"}],staticClass:\"form-post-subject\",attrs:{\"type\":\"text\",\"placeholder\":_vm.$t('post_status.content_warning')},domProps:{\"value\":(_vm.newStatus.spoilerText)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newStatus, \"spoilerText\", $event.target.value)}}})]):_vm._e(),_vm._v(\" \"),_c('EmojiInput',{ref:\"emoji-input\",staticClass:\"form-control main-input\",attrs:{\"suggest\":_vm.emojiUserSuggestor,\"enable-emoji-picker\":\"\",\"hide-emoji-button\":\"\",\"enable-sticker-picker\":\"\"},on:{\"input\":_vm.onEmojiInputInput,\"sticker-uploaded\":_vm.addMediaFile,\"sticker-upload-failed\":_vm.uploadFailed},model:{value:(_vm.newStatus.status),callback:function ($$v) {_vm.$set(_vm.newStatus, \"status\", $$v)},expression:\"newStatus.status\"}},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newStatus.status),expression:\"newStatus.status\"}],ref:\"textarea\",staticClass:\"form-post-body\",class:{ 'scrollable-form': !!_vm.maxHeight },attrs:{\"placeholder\":_vm.placeholder || _vm.$t('post_status.default'),\"rows\":\"1\",\"disabled\":_vm.posting},domProps:{\"value\":(_vm.newStatus.status)},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }if(!$event.metaKey){ return null; }_vm.postStatus(_vm.newStatus)},\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }if(!$event.ctrlKey){ return null; }_vm.postStatus(_vm.newStatus)},\"drop\":_vm.fileDrop,\"dragover\":function($event){$event.preventDefault();return _vm.fileDrag($event)},\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.newStatus, \"status\", $event.target.value)},_vm.resize],\"compositionupdate\":_vm.resize,\"paste\":_vm.paste}}),_vm._v(\" \"),(_vm.hasStatusLengthLimit)?_c('p',{staticClass:\"character-counter faint\",class:{ error: _vm.isOverLengthLimit }},[_vm._v(\"\\n          \"+_vm._s(_vm.charactersLeft)+\"\\n        \")]):_vm._e()]),_vm._v(\" \"),(!_vm.disableScopeSelector)?_c('div',{staticClass:\"visibility-tray\"},[_c('scope-selector',{attrs:{\"show-all\":_vm.showAllScopes,\"user-default\":_vm.userDefaultScope,\"original-scope\":_vm.copyMessageScope,\"initial-scope\":_vm.newStatus.visibility,\"on-scope-change\":_vm.changeVis}}),_vm._v(\" \"),(_vm.postFormats.length > 1)?_c('div',{staticClass:\"text-format\"},[_c('label',{staticClass:\"select\",attrs:{\"for\":\"post-content-type\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newStatus.contentType),expression:\"newStatus.contentType\"}],staticClass:\"form-control\",attrs:{\"id\":\"post-content-type\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.newStatus, \"contentType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.postFormats),function(postFormat){return _c('option',{key:postFormat,domProps:{\"value\":postFormat}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t((\"post_status.content_type[\\\"\" + postFormat + \"\\\"]\")))+\"\\n              \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]):_vm._e(),_vm._v(\" \"),(_vm.postFormats.length === 1 && _vm.postFormats[0] !== 'text/plain')?_c('div',{staticClass:\"text-format\"},[_c('span',{staticClass:\"only-format\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t((\"post_status.content_type[\\\"\" + (_vm.postFormats[0]) + \"\\\"]\")))+\"\\n          \")])]):_vm._e()],1):_vm._e()],1),_vm._v(\" \"),(_vm.pollsAvailable)?_c('poll-form',{ref:\"pollForm\",attrs:{\"visible\":_vm.pollFormVisible},on:{\"update-poll\":_vm.setPoll}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"bottom\",staticClass:\"form-bottom\"},[_c('div',{staticClass:\"form-bottom-left\"},[_c('media-upload',{ref:\"mediaUpload\",staticClass:\"media-upload-icon\",attrs:{\"drop-files\":_vm.dropFiles},on:{\"uploading\":_vm.disableSubmit,\"uploaded\":_vm.addMediaFile,\"upload-failed\":_vm.uploadFailed}}),_vm._v(\" \"),_c('div',{staticClass:\"emoji-icon\"},[_c('i',{staticClass:\"icon-smile btn btn-default\",attrs:{\"title\":_vm.$t('emoji.add_emoji')},on:{\"click\":_vm.showEmojiPicker}})]),_vm._v(\" \"),(_vm.pollsAvailable)?_c('div',{staticClass:\"poll-icon\",class:{ selected: _vm.pollFormVisible }},[_c('i',{staticClass:\"icon-chart-bar btn btn-default\",attrs:{\"title\":_vm.$t('polls.add_poll')},on:{\"click\":_vm.togglePollForm}})]):_vm._e()],1),_vm._v(\" \"),(_vm.posting)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('post_status.posting'))+\"\\n      \")]):(_vm.isOverLengthLimit)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('general.submit'))+\"\\n      \")]):_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.submitDisabled,\"type\":\"submit\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('general.submit'))+\"\\n      \")])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n      Error: \"+_vm._s(_vm.error)+\"\\n      \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"attachments\"},_vm._l((_vm.newStatus.files),function(file){return _c('div',{key:file.url,staticClass:\"media-upload-wrapper\"},[_c('i',{staticClass:\"fa button-icon icon-cancel\",on:{\"click\":function($event){_vm.removeMediaFile(file)}}}),_vm._v(\" \"),_c('div',{staticClass:\"media-upload-container attachment\"},[(_vm.type(file) === 'image')?_c('img',{staticClass:\"thumbnail media-upload\",attrs:{\"src\":file.url}}):_vm._e(),_vm._v(\" \"),(_vm.type(file) === 'video')?_c('video',{attrs:{\"src\":file.url,\"controls\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.type(file) === 'audio')?_c('audio',{attrs:{\"src\":file.url,\"controls\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.type(file) === 'unknown')?_c('a',{attrs:{\"href\":file.url}},[_vm._v(_vm._s(file.url))]):_vm._e()])])}),0),_vm._v(\" \"),(_vm.newStatus.files.length > 0)?_c('div',{staticClass:\"upload_settings\"},[_c('Checkbox',{model:{value:(_vm.newStatus.nsfw),callback:function ($$v) {_vm.$set(_vm.newStatus, \"nsfw\", $$v)},expression:\"newStatus.nsfw\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('post_status.attachments_sensitive'))+\"\\n      \")])],1):_vm._e()],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <button\n    :disabled=\"progress || disabled\"\n    @click=\"onClick\"\n  >\n    <template v-if=\"progress && $slots.progress\">\n      <slot name=\"progress\" />\n    </template>\n    <template v-else>\n      <slot />\n    </template>\n  </button>\n</template>\n\n<script>\nexport default {\n  props: {\n    disabled: {\n      type: Boolean\n    },\n    click: { // click event handler. Must return a promise\n      type: Function,\n      default: () => Promise.resolve()\n    }\n  },\n  data () {\n    return {\n      progress: false\n    }\n  },\n  methods: {\n    onClick () {\n      this.progress = true\n      this.click().then(() => { this.progress = false })\n    }\n  }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./progress_button.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./progress_button.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9f751ae6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./progress_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{attrs:{\"disabled\":_vm.progress || _vm.disabled},on:{\"click\":_vm.onClick}},[(_vm.progress && _vm.$slots.progress)?[_vm._t(\"progress\")]:[_vm._t(\"default\")]],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const StillImage = {\n  props: [\n    'src',\n    'referrerpolicy',\n    'mimetype',\n    'imageLoadError',\n    'imageLoadHandler'\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  },\n  methods: {\n    onLoad () {\n      this.imageLoadHandler && this.imageLoadHandler(this.$refs.src)\n      const canvas = this.$refs.canvas\n      if (!canvas) return\n      const width = this.$refs.src.naturalWidth\n      const height = this.$refs.src.naturalHeight\n      canvas.width = width\n      canvas.height = height\n      canvas.getContext('2d').drawImage(this.$refs.src, 0, 0, width, height)\n    },\n    onError () {\n      this.imageLoadError && this.imageLoadError()\n    }\n  }\n}\n\nexport default StillImage\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./still-image.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./still-image.js\"\nimport __vue_script__ from \"!!babel-loader!./still-image.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1bc509fc\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./still-image.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"still-image\",class:{ animated: _vm.animated }},[(_vm.animated)?_c('canvas',{ref:\"canvas\"}):_vm._e(),_vm._v(\" \"),_c('img',{key:_vm.src,ref:\"src\",attrs:{\"src\":_vm.src,\"referrerpolicy\":_vm.referrerpolicy},on:{\"load\":_vm.onLoad,\"error\":_vm.onError}})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <time\n    :datetime=\"time\"\n    :title=\"localeDateString\"\n  >\n    {{ $t(relativeTime.key, [relativeTime.num]) }}\n  </time>\n</template>\n\n<script>\nimport * as DateUtils from 'src/services/date_utils/date_utils.js'\n\nexport default {\n  name: 'Timeago',\n  props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold'],\n  data () {\n    return {\n      relativeTime: { key: 'time.now', num: 0 },\n      interval: null\n    }\n  },\n  computed: {\n    localeDateString () {\n      return typeof this.time === 'string'\n        ? new Date(Date.parse(this.time)).toLocaleString()\n        : this.time.toLocaleString()\n    }\n  },\n  created () {\n    this.refreshRelativeTimeObject()\n  },\n  destroyed () {\n    clearTimeout(this.interval)\n  },\n  methods: {\n    refreshRelativeTimeObject () {\n      const nowThreshold = typeof this.nowThreshold === 'number' ? this.nowThreshold : 1\n      this.relativeTime = this.longFormat\n        ? DateUtils.relativeTime(this.time, nowThreshold)\n        : DateUtils.relativeTimeShort(this.time, nowThreshold)\n\n      if (this.autoUpdate) {\n        this.interval = setTimeout(\n          this.refreshRelativeTimeObject,\n          1000 * this.autoUpdate\n        )\n      }\n    }\n  }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./timeago.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./timeago.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ac499830\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./timeago.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('time',{attrs:{\"datetime\":_vm.time,\"title\":_vm.localeDateString}},[_vm._v(\"\\n  \"+_vm._s(_vm.$t(_vm.relativeTime.key, [_vm.relativeTime.num]))+\"\\n\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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  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    }\n  } else if (type === 'solid') {\n    return {\n      backgroundColor: tintColor2\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    }\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 Vue from 'vue'\n\nimport './tab_switcher.scss'\n\nexport default Vue.component('tab-switcher', {\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  },\n  data () {\n    return {\n      active: this.$slots.default.findIndex(_ => _.tag)\n    }\n  },\n  computed: {\n    activeIndex () {\n      // In case of controlled component\n      if (this.activeTab) {\n        return this.$slots.default.findIndex(slot => this.activeTab === slot.key)\n      } else {\n        return this.active\n      }\n    }\n  },\n  beforeUpdate () {\n    const currentSlot = this.$slots.default[this.active]\n    if (!currentSlot.tag) {\n      this.active = this.$slots.default.findIndex(_ => _.tag)\n    }\n  },\n  methods: {\n    activateTab (index) {\n      return (e) => {\n        e.preventDefault()\n        if (typeof this.onSwitch === 'function') {\n          this.onSwitch.call(null, this.$slots.default[index].key)\n        }\n        this.active = index\n      }\n    }\n  },\n  render (h) {\n    const tabs = this.$slots.default\n      .map((slot, index) => {\n        if (!slot.tag) return\n        const classesTab = ['tab']\n        const classesWrapper = ['tab-wrapper']\n\n        if (this.activeIndex === index) {\n          classesTab.push('active')\n          classesWrapper.push('active')\n        }\n        if (slot.data.attrs.image) {\n          return (\n            <div class={classesWrapper.join(' ')}>\n              <button\n                disabled={slot.data.attrs.disabled}\n                onClick={this.activateTab(index)}\n                class={classesTab.join(' ')}>\n                <img src={slot.data.attrs.image} title={slot.data.attrs['image-tooltip']}/>\n                {slot.data.attrs.label ? '' : slot.data.attrs.label}\n              </button>\n            </div>\n          )\n        }\n        return (\n          <div class={classesWrapper.join(' ')}>\n            <button\n              disabled={slot.data.attrs.disabled}\n              onClick={this.activateTab(index)}\n              class={classesTab.join(' ')}>\n              {slot.data.attrs.label}</button>\n          </div>\n        )\n      })\n\n    const contents = this.$slots.default.map((slot, index) => {\n      if (!slot.tag) return\n      const active = this.activeIndex === index\n      if (this.renderOnlyFocused) {\n        return active\n          ? <div class=\"active\">{slot}</div>\n          : <div class=\"hidden\"></div>\n      }\n      return <div class={active ? 'active' : 'hidden' }>{slot}</div>\n    })\n\n    return (\n      <div class=\"tab-switcher\">\n        <div class=\"tabs\">\n          {tabs}\n        </div>\n        <div class={'contents' + (this.scrollableTabs ? ' scrollable-tabs' : '')}>\n          {contents}\n        </div>\n      </div>\n    )\n  }\n})\n","import Timeago from '../timeago/timeago.vue'\nimport { forEach, map } from 'lodash'\n\nexport default {\n  name: 'Poll',\n  props: ['basePoll'],\n  components: { Timeago },\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  destroyed () {\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./poll.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./poll.js\"\nimport __vue_script__ from \"!!babel-loader!./poll.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-db51c57e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./poll.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"poll\",class:_vm.containerClass},[_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"poll-option\"},[(_vm.showResults)?_c('div',{staticClass:\"option-result\",attrs:{\"title\":_vm.resultTitle(option)}},[_c('div',{staticClass:\"option-result-label\"},[_c('span',{staticClass:\"result-percentage\"},[_vm._v(\"\\n          \"+_vm._s(_vm.percentageForOption(option.votes_count))+\"%\\n        \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(option.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"result-fill\",style:({ 'width': ((_vm.percentageForOption(option.votes_count)) + \"%\") })})]):_c('div',{on:{\"click\":function($event){_vm.activateOption(index)}}},[(_vm.poll.multiple)?_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":_vm.loading},domProps:{\"value\":index}}):_c('input',{attrs:{\"type\":\"radio\",\"disabled\":_vm.loading},domProps:{\"value\":index}}),_vm._v(\" \"),_c('label',{staticClass:\"option-vote\"},[_c('div',[_vm._v(_vm._s(option.title))])])])])}),_vm._v(\" \"),_c('div',{staticClass:\"footer faint\"},[(!_vm.showResults)?_c('button',{staticClass:\"btn btn-default poll-vote-button\",attrs:{\"type\":\"button\",\"disabled\":_vm.isDisabled},on:{\"click\":_vm.vote}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('polls.vote'))+\"\\n    \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"total\"},[_vm._v(\"\\n      \"+_vm._s(_vm.totalVotesCount)+\" \"+_vm._s(_vm.$t(\"polls.votes\"))+\" · \\n    \")]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":_vm.expired ? 'polls.expired' : 'polls.expires_in'}},[_c('Timeago',{attrs:{\"time\":_vm.expiresAt,\"auto-update\":60,\"now-threshold\":0}})],1)],1)],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Attachment from '../attachment/attachment.vue'\nimport Poll from '../poll/poll.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport fileType from 'src/services/file_type/file_type.service'\nimport { processHtml } from 'src/services/tiny_post_html_processor/tiny_post_html_processor.service.js'\nimport { mentionMatchesUrl, extractTagFromUrl } from 'src/services/matcher/matcher.service.js'\nimport { mapGetters, mapState } from 'vuex'\n\nconst StatusContent = {\n  name: 'StatusContent',\n  props: [\n    'status',\n    'focused',\n    'noHeading',\n    'fullContent'\n  ],\n  data () {\n    return {\n      showingTall: this.fullContent || (this.inConversation && this.focused),\n      showingLongSubject: false,\n      // not as computed because it sets the initial state which will be changed later\n      expandingSubject: !this.$store.getters.mergedConfig.collapseMessageWithSubject\n    }\n  },\n  computed: {\n    localCollapseSubjectDefault () {\n      return this.mergedConfig.collapseMessageWithSubject\n    },\n    hideAttachments () {\n      return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n        (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\n    },\n    // This is a bit hacky, but we want to approximate post height before rendering\n    // so we count newlines (masto uses <p> for paragraphs, GS uses <br> between them)\n    // as well as approximate line count by counting characters and approximating ~80\n    // per line.\n    //\n    // Using max-height + overflow: auto for status components resulted in false positives\n    // very often with japanese characters, and it was very annoying.\n    tallStatus () {\n      const lengthScore = this.status.statusnet_html.split(/<p|<br/).length + this.status.text.length / 80\n      return lengthScore > 20\n    },\n    longSubject () {\n      return this.status.summary.length > 900\n    },\n    // When a status has a subject and is also tall, we should only have one show more/less button. If the default is to collapse statuses with subjects, we just treat it like a status with a subject; otherwise, we just treat it like a tall status.\n    mightHideBecauseSubject () {\n      return this.status.summary && (!this.tallStatus || this.localCollapseSubjectDefault)\n    },\n    mightHideBecauseTall () {\n      return this.tallStatus && (!this.status.summary || !this.localCollapseSubjectDefault)\n    },\n    hideSubjectStatus () {\n      return this.mightHideBecauseSubject && !this.expandingSubject\n    },\n    hideTallStatus () {\n      return this.mightHideBecauseTall && !this.showingTall\n    },\n    showingMore () {\n      return (this.mightHideBecauseTall && this.showingTall) || (this.mightHideBecauseSubject && this.expandingSubject)\n    },\n    nsfwClickthrough () {\n      if (!this.status.nsfw) {\n        return false\n      }\n      if (this.status.summary && this.localCollapseSubjectDefault) {\n        return false\n      }\n      return true\n    },\n    attachmentSize () {\n      if ((this.mergedConfig.hideAttachments && !this.inConversation) ||\n        (this.mergedConfig.hideAttachmentsInConv && this.inConversation) ||\n        (this.status.attachments.length > this.maxThumbnails)) {\n        return 'hide'\n      } else if (this.compact) {\n        return 'small'\n      }\n      return 'normal'\n    },\n    galleryTypes () {\n      if (this.attachmentSize === 'hide') {\n        return []\n      }\n      return this.mergedConfig.playVideosInModal\n        ? ['image', 'video']\n        : ['image']\n    },\n    galleryAttachments () {\n      return this.status.attachments.filter(\n        file => fileType.fileMatchesSomeType(this.galleryTypes, file)\n      )\n    },\n    nonGalleryAttachments () {\n      return this.status.attachments.filter(\n        file => !fileType.fileMatchesSomeType(this.galleryTypes, file)\n      )\n    },\n    hasImageAttachments () {\n      return this.status.attachments.some(\n        file => fileType.fileType(file.mimetype) === 'image'\n      )\n    },\n    hasVideoAttachments () {\n      return this.status.attachments.some(\n        file => fileType.fileType(file.mimetype) === 'video'\n      )\n    },\n    maxThumbnails () {\n      return this.mergedConfig.maxThumbnails\n    },\n    postBodyHtml () {\n      const html = this.status.statusnet_html\n\n      if (this.mergedConfig.greentext) {\n        try {\n          if (html.includes('&gt;')) {\n            // This checks if post has '>' at the beginning, excluding mentions so that @mention >impying works\n            return processHtml(html, (string) => {\n              if (string.includes('&gt;') &&\n                  string\n                    .replace(/<[^>]+?>/gi, '') // remove all tags\n                    .replace(/@\\w+/gi, '') // remove mentions (even failed ones)\n                    .trim()\n                    .startsWith('&gt;')) {\n                return `<span class='greentext'>${string}</span>`\n              } else {\n                return string\n              }\n            })\n          } else {\n            return html\n          }\n        } catch (e) {\n          console.err('Failed to process status html', e)\n          return html\n        }\n      } else {\n        return html\n      }\n    },\n    contentHtml () {\n      if (!this.status.summary_html) {\n        return this.postBodyHtml\n      }\n      return this.status.summary_html + '<br />' + this.postBodyHtml\n    },\n    ...mapGetters(['mergedConfig']),\n    ...mapState({\n      betterShadow: state => state.interface.browserSupport.cssFilter,\n      currentUser: state => state.users.currentUser\n    })\n  },\n  components: {\n    Attachment,\n    Poll,\n    Gallery,\n    LinkPreview\n  },\n  methods: {\n    linkClicked (event) {\n      const target = event.target.closest('.status-content a')\n      if (target) {\n        if (target.className.match(/mention/)) {\n          const href = target.href\n          const attn = this.status.attentions.find(attn => mentionMatchesUrl(attn, href))\n          if (attn) {\n            event.stopPropagation()\n            event.preventDefault()\n            const link = this.generateUserProfileLink(attn.id, attn.screen_name)\n            this.$router.push(link)\n            return\n          }\n        }\n        if (target.rel.match(/(?:^|\\s)tag(?:$|\\s)/) || target.className.match(/hashtag/)) {\n          // Extract tag name from link url\n          const tag = extractTagFromUrl(target.href)\n          if (tag) {\n            const link = this.generateTagLink(tag)\n            this.$router.push(link)\n            return\n          }\n        }\n        window.open(target.href, '_blank')\n      }\n    },\n    toggleShowMore () {\n      if (this.mightHideBecauseTall) {\n        this.showingTall = !this.showingTall\n      } else if (this.mightHideBecauseSubject) {\n        this.expandingSubject = !this.expandingSubject\n      }\n    },\n    generateUserProfileLink (id, name) {\n      return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n    },\n    generateTagLink (tag) {\n      return `/tag/${tag}`\n    },\n    setMedia () {\n      const attachments = this.attachmentSize === 'hide' ? this.status.attachments : this.galleryAttachments\n      return () => this.$store.dispatch('setMedia', attachments)\n    }\n  }\n}\n\nexport default StatusContent\n","/**\n * This is a tiny purpose-built HTML parser/processor. This basically detects any type of visual newline and\n * allows it to be processed, useful for greentexting, mostly\n *\n * known issue: doesn't handle CDATA so nested CDATA might not work well\n *\n * @param {Object} input - input data\n * @param {(string) => string} processor - function that will be called on every line\n * @return {string} processed html\n */\nexport const processHtml = (html, processor) => {\n  const handledTags = new Set(['p', 'br', 'div'])\n  const openCloseTags = new Set(['p', 'div'])\n\n  let buffer = '' // Current output buffer\n  const level = [] // How deep we are in tags and which tags were there\n  let textBuffer = '' // Current line content\n  let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag\n\n  // Extracts tag name from tag, i.e. <span a=\"b\"> => span\n  const getTagName = (tag) => {\n    const result = /(?:<\\/(\\w+)>|<(\\w+)\\s?[^/]*?\\/?>)/gi.exec(tag)\n    return result && (result[1] || result[2])\n  }\n\n  const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n    if (textBuffer.trim().length > 0) {\n      buffer += processor(textBuffer)\n    } else {\n      buffer += textBuffer\n    }\n    textBuffer = ''\n  }\n\n  const handleBr = (tag) => { // handles single newlines/linebreaks/selfclosing\n    flush()\n    buffer += tag\n  }\n\n  const handleOpen = (tag) => { // handles opening tags\n    flush()\n    buffer += tag\n    level.push(tag)\n  }\n\n  const handleClose = (tag) => { // handles closing tags\n    flush()\n    buffer += tag\n    if (level[level.length - 1] === tag) {\n      level.pop()\n    }\n  }\n\n  for (let i = 0; i < html.length; i++) {\n    const char = html[i]\n    if (char === '<' && tagBuffer === null) {\n      tagBuffer = char\n    } else if (char !== '>' && tagBuffer !== null) {\n      tagBuffer += char\n    } else if (char === '>' && tagBuffer !== null) {\n      tagBuffer += char\n      const tagFull = tagBuffer\n      tagBuffer = null\n      const tagName = getTagName(tagFull)\n      if (handledTags.has(tagName)) {\n        if (tagName === 'br') {\n          handleBr(tagFull)\n        } else if (openCloseTags.has(tagName)) {\n          if (tagFull[1] === '/') {\n            handleClose(tagFull)\n          } else if (tagFull[tagFull.length - 2] === '/') {\n            // self-closing\n            handleBr(tagFull)\n          } else {\n            handleOpen(tagFull)\n          }\n        }\n      } else {\n        textBuffer += tagFull\n      }\n    } else if (char === '\\n') {\n      handleBr(char)\n    } else {\n      textBuffer += char\n    }\n  }\n  if (tagBuffer) {\n    textBuffer += tagBuffer\n  }\n\n  flush()\n\n  return buffer\n}\n","export const mentionMatchesUrl = (attention, url) => {\n  if (url === attention.statusnet_profile_url) {\n    return true\n  }\n  const [namepart, instancepart] = attention.screen_name.split('@')\n  const matchstring = new RegExp('://' + instancepart + '/.*' + namepart + '$', 'g')\n\n  return !!url.match(matchstring)\n}\n\n/**\n * Extract tag name from pleroma or mastodon url.\n * i.e https://bikeshed.party/tag/photo or https://quey.org/tags/sky\n * @param {string} url\n */\nexport const extractTagFromUrl = (url) => {\n  const regex = /tag[s]*\\/(\\w+)$/g\n  const result = regex.exec(url)\n  if (!result) {\n    return false\n  }\n  return result[1]\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./status_content.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./status_content.js\"\nimport __vue_script__ from \"!!babel-loader!./status_content.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9448c882\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./status_content.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"status-body\"},[_vm._t(\"header\"),_vm._v(\" \"),(_vm.longSubject)?_c('div',{staticClass:\"status-content-wrapper\",class:{ 'tall-status': !_vm.showingLongSubject }},[(!_vm.showingLongSubject)?_c('a',{staticClass:\"tall-status-hider\",class:{ 'tall-status-hider_focused': _vm.focused },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.showingLongSubject=true}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t(\"general.show_more\"))+\"\\n      \"),(_vm.hasImageAttachments)?_c('span',{staticClass:\"icon-picture\"}):_vm._e(),_vm._v(\" \"),(_vm.hasVideoAttachments)?_c('span',{staticClass:\"icon-video\"}):_vm._e(),_vm._v(\" \"),(_vm.status.card)?_c('span',{staticClass:\"icon-link\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"status-content media-body\",domProps:{\"innerHTML\":_vm._s(_vm.contentHtml)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}),_vm._v(\" \"),(_vm.showingLongSubject)?_c('a',{staticClass:\"status-unhider\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.showingLongSubject=false}}},[_vm._v(_vm._s(_vm.$t(\"general.show_less\")))]):_vm._e()]):_c('div',{staticClass:\"status-content-wrapper\",class:{'tall-status': _vm.hideTallStatus}},[(_vm.hideTallStatus)?_c('a',{staticClass:\"tall-status-hider\",class:{ 'tall-status-hider_focused': _vm.focused },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowMore($event)}}},[_vm._v(_vm._s(_vm.$t(\"general.show_more\")))]):_vm._e(),_vm._v(\" \"),(!_vm.hideSubjectStatus)?_c('div',{staticClass:\"status-content media-body\",domProps:{\"innerHTML\":_vm._s(_vm.contentHtml)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}):_c('div',{staticClass:\"status-content media-body\",domProps:{\"innerHTML\":_vm._s(_vm.status.summary_html)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}),_vm._v(\" \"),(_vm.hideSubjectStatus)?_c('a',{staticClass:\"cw-status-hider\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowMore($event)}}},[_vm._v(_vm._s(_vm.$t(\"general.show_more\")))]):_vm._e(),_vm._v(\" \"),(_vm.showingMore && !_vm.fullContent)?_c('a',{staticClass:\"status-unhider\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowMore($event)}}},[_vm._v(_vm._s(_vm.$t(\"general.show_less\")))]):_vm._e()]),_vm._v(\" \"),(_vm.status.poll && _vm.status.poll.options)?_c('div',[_c('poll',{attrs:{\"base-poll\":_vm.status.poll}})],1):_vm._e(),_vm._v(\" \"),(_vm.status.attachments.length !== 0 && (!_vm.hideSubjectStatus || _vm.showingLongSubject))?_c('div',{staticClass:\"attachments media-body\"},[_vm._l((_vm.nonGalleryAttachments),function(attachment){return _c('attachment',{key:attachment.id,staticClass:\"non-gallery\",attrs:{\"size\":_vm.attachmentSize,\"nsfw\":_vm.nsfwClickthrough,\"attachment\":attachment,\"allow-play\":true,\"set-media\":_vm.setMedia()}})}),_vm._v(\" \"),(_vm.galleryAttachments.length > 0)?_c('gallery',{attrs:{\"nsfw\":_vm.nsfwClickthrough,\"attachments\":_vm.galleryAttachments,\"set-media\":_vm.setMedia()}}):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.status.card && !_vm.hideSubjectStatus && !_vm.noHeading)?_c('div',{staticClass:\"link-preview media-body\"},[_c('link-preview',{attrs:{\"card\":_vm.status.card,\"size\":_vm.attachmentSize,\"nsfw\":_vm.nsfwClickthrough}})],1):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import StillImage from '../still-image/still-image.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'\n\nconst Attachment = {\n  props: [\n    'attachment',\n    'nsfw',\n    'statusId',\n    'size',\n    'allowPlay',\n    'setMedia',\n    'naturalSizeLoad'\n  ],\n  data () {\n    return {\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    }\n  },\n  components: {\n    StillImage,\n    VideoAttachment\n  },\n  computed: {\n    usePlaceHolder () {\n      return this.size === 'hide' || this.type === 'unknown'\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) || this.type === 'unknown'\n    },\n    isSmall () {\n      return this.size === 'small'\n    },\n    fullwidth () {\n      return this.type === 'html' || this.type === 'audio'\n    },\n    ...mapGetters(['mergedConfig'])\n  },\n  methods: {\n    linkClicked ({ target }) {\n      if (target.tagName === 'A') {\n        window.open(target.href, '_blank')\n      }\n    },\n    openModal (event) {\n      const modalTypes = this.mergedConfig.playVideosInModal\n        ? ['image', 'video']\n        : ['image']\n      if (fileTypeService.fileMatchesSomeType(modalTypes, this.attachment) ||\n        this.usePlaceHolder\n      ) {\n        event.stopPropagation()\n        event.preventDefault()\n        this.setMedia()\n        this.$store.dispatch('setCurrent', this.attachment)\n      }\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.naturalSizeLoad && this.naturalSizeLoad({ width, height })\n    }\n  }\n}\n\nexport default Attachment\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./attachment.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./attachment.js\"\nimport __vue_script__ from \"!!babel-loader!./attachment.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-61e0eb0c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./attachment.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.usePlaceHolder)?_c('div',{on:{\"click\":_vm.openModal}},[(_vm.type !== 'html')?_c('a',{staticClass:\"placeholder\",attrs:{\"target\":\"_blank\",\"href\":_vm.attachment.url}},[_vm._v(\"\\n    [\"+_vm._s(_vm.nsfw ? \"NSFW/\" : \"\")+_vm._s(_vm.type.toUpperCase())+\"]\\n  \")]):_vm._e()]):_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isEmpty),expression:\"!isEmpty\"}],staticClass:\"attachment\",class:( _obj = {}, _obj[_vm.type] = true, _obj.loading = _vm.loading, _obj['fullwidth'] =  _vm.fullwidth, _obj['nsfw-placeholder'] =  _vm.hidden, _obj )},[(_vm.hidden)?_c('a',{staticClass:\"image-attachment\",attrs:{\"href\":_vm.attachment.url},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleHidden($event)}}},[_c('img',{key:_vm.nsfwImage,staticClass:\"nsfw\",class:{'small': _vm.isSmall},attrs:{\"src\":_vm.nsfwImage}}),_vm._v(\" \"),(_vm.type === 'video')?_c('i',{staticClass:\"play-icon icon-play-circled\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.nsfw && _vm.hideNsfwLocal && !_vm.hidden)?_c('div',{staticClass:\"hider\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleHidden($event)}}},[_vm._v(\"Hide\")])]):_vm._e(),_vm._v(\" \"),(_vm.type === 'image' && (!_vm.hidden || _vm.preloadImage))?_c('a',{staticClass:\"image-attachment\",class:{'hidden': _vm.hidden && _vm.preloadImage },attrs:{\"href\":_vm.attachment.url,\"target\":\"_blank\",\"title\":_vm.attachment.description},on:{\"click\":_vm.openModal}},[_c('StillImage',{attrs:{\"referrerpolicy\":_vm.referrerpolicy,\"mimetype\":_vm.attachment.mimetype,\"src\":_vm.attachment.large_thumb_url || _vm.attachment.url,\"image-load-handler\":_vm.onImageLoad}})],1):_vm._e(),_vm._v(\" \"),(_vm.type === 'video' && !_vm.hidden)?_c('a',{staticClass:\"video-container\",class:{'small': _vm.isSmall},attrs:{\"href\":_vm.allowPlay ? undefined : _vm.attachment.url},on:{\"click\":_vm.openModal}},[_c('VideoAttachment',{staticClass:\"video\",attrs:{\"attachment\":_vm.attachment,\"controls\":_vm.allowPlay}}),_vm._v(\" \"),(!_vm.allowPlay)?_c('i',{staticClass:\"play-icon icon-play-circled\"}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.type === 'audio')?_c('audio',{attrs:{\"src\":_vm.attachment.url,\"controls\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.type === 'html' && _vm.attachment.oembed)?_c('div',{staticClass:\"oembed\",on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}},[(_vm.attachment.thumb_url)?_c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":_vm.attachment.thumb_url}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"text\"},[_c('h1',[_c('a',{attrs:{\"href\":_vm.attachment.url}},[_vm._v(_vm._s(_vm.attachment.oembed.title))])]),_vm._v(\" \"),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.attachment.oembed.oembedHTML)}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const fileSizeFormat = (num) => {\n  var exponent\n  var unit\n  var units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']\n  if (num < 1) {\n    return num + ' ' + units[0]\n  }\n\n  exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n  num = (num / Math.pow(1024, exponent)).toFixed(2) * 1\n  unit = units[exponent]\n  return { num: num, unit: unit }\n}\nconst fileSizeFormatService = {\n  fileSizeFormat\n}\nexport default fileSizeFormatService\n","import { debounce } from 'lodash'\n/**\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\nconst debounceUserSearch = debounce((data, input) => {\n  data.updateUsersList(input)\n}, 500, { leading: true, trailing: false })\n\nexport default data => input => {\n  const firstChar = input[0]\n  if (firstChar === ':' && data.emoji) {\n    return suggestEmoji(data.emoji)(input)\n  }\n  if (firstChar === '@' && data.users) {\n    return suggestUsers(data)(input)\n  }\n  return []\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 = data => input => {\n  const noPrefix = input.toLowerCase().substr(1)\n  const users = data.users\n\n  const newUsers = users.filter(\n    user =>\n      user.screen_name.toLowerCase().startsWith(noPrefix) ||\n      user.name.toLowerCase().startsWith(noPrefix)\n\n    /* taking only 20 results so that sorting is a bit cheaper, we display\n     * only 5 anyway. could be inaccurate, but we ideally we should query\n     * backend anyway\n     */\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, name, profile_image_url_original }) => ({\n    displayText: screen_name,\n    detailText: name,\n    imageUrl: profile_image_url_original,\n    replacement: '@' + screen_name + ' '\n  }))\n\n  // BE search users if there are no matches\n  if (newUsers.length === 0 && data.updateUsersList) {\n    debounceUserSearch(data, noPrefix)\n  }\n  return newUsers\n  /* eslint-enable camelcase */\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({ store, status, spoilerText, visibility, sensitive, poll, media = [], inReplyToStatusId = undefined, contentType = 'text/plain' }) => {\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    .then((data) => {\n      if (!data.error) {\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\n  return apiService.uploadMedia({ credentials, formData })\n}\n\nconst statusPosterService = {\n  postStatus,\n  uploadMedia\n}\n\nexport default statusPosterService\n","export const findOffset = (child, parent, { top = 0, left = 0 } = {}, ignorePadding = true) => {\n  const result = {\n    top: top + child.offsetTop,\n    left: left + child.offsetLeft\n  }\n  if (!ignorePadding && child !== window) {\n    const { topPadding, leftPadding } = findPadding(child)\n    result.top += ignorePadding ? 0 : topPadding\n    result.left += ignorePadding ? 0 : leftPadding\n  }\n\n  if (child.offsetParent && (parent === window || parent.contains(child.offsetParent) || parent === child.offsetParent)) {\n    return findOffset(child.offsetParent, parent, result, false)\n  } else {\n    if (parent !== window) {\n      const { topPadding, leftPadding } = findPadding(parent)\n      result.top += topPadding\n      result.left += leftPadding\n    }\n    return result\n  }\n}\n\nconst findPadding = (el) => {\n  const topPaddingStr = window.getComputedStyle(el)['padding-top']\n  const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))\n  const leftPaddingStr = window.getComputedStyle(el)['padding-left']\n  const leftPadding = Number(leftPaddingStr.substring(0, leftPaddingStr.length - 2))\n\n  return { topPadding, leftPadding }\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 = splitIntoWords(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 splitIntoWords = (str) => {\n  // Split at word boundaries\n  const regex = /\\b/\n  const triggers = /[@#:]+$/\n\n  let split = str.split(regex)\n\n  // Add trailing @ and # to the following word.\n  const words = reduce(split, (result, word) => {\n    if (result.length > 0) {\n      let previous = result.pop()\n      const matches = previous.match(triggers)\n      if (matches) {\n        previous = previous.replace(triggers, '')\n        word = matches[0] + word\n      }\n      result.push(previous)\n    }\n    result.push(word)\n\n    return result\n  }, [])\n\n  return words\n}\n\nconst completion = {\n  wordAtPosition,\n  addPositionToWords,\n  splitIntoWords,\n  replaceWord\n}\n\nexport default completion\n","import Checkbox from '../checkbox/checkbox.vue'\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  return list.filter(x => x.displayText.includes(keyword))\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: () => 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[0].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'][0]\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[0].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: 'icon-smile',\n          emojis: customEmojis\n        },\n        {\n          id: 'standard',\n          text: this.$t('emoji.unicode'),\n          icon: 'icon-picture',\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./emoji_picker.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./emoji_picker.js\"\nimport __vue_script__ from \"!!babel-loader!./emoji_picker.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-47d21b3b\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./emoji_picker.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"emoji-picker panel panel-default panel-body\"},[_c('div',{staticClass:\"heading\"},[_c('span',{staticClass:\"emoji-tabs\"},_vm._l((_vm.emojis),function(group){return _c('span',{key:group.id,staticClass:\"emoji-tabs-item\",class:{\n          active: _vm.activeGroupView === group.id,\n          disabled: group.emojis.length === 0\n        },attrs:{\"title\":group.text},on:{\"click\":function($event){$event.preventDefault();_vm.highlight(group.id)}}},[_c('i',{class:group.icon})])}),0),_vm._v(\" \"),(_vm.stickerPickerEnabled)?_c('span',{staticClass:\"additional-tabs\"},[_c('span',{staticClass:\"stickers-tab-icon additional-tabs-item\",class:{active: _vm.showingStickers},attrs:{\"title\":_vm.$t('emoji.stickers')},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleStickers($event)}}},[_c('i',{staticClass:\"icon-star\"})])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"emoji-content\",class:{hidden: _vm.showingStickers}},[_c('div',{staticClass:\"emoji-search\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.keyword),expression:\"keyword\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"placeholder\":_vm.$t('emoji.search_emoji')},domProps:{\"value\":(_vm.keyword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.keyword=$event.target.value}}})]),_vm._v(\" \"),_c('div',{ref:\"emoji-groups\",staticClass:\"emoji-groups\",class:_vm.groupsScrolledClass,on:{\"scroll\":_vm.onScroll}},_vm._l((_vm.emojisView),function(group){return _c('div',{key:group.id,staticClass:\"emoji-group\"},[_c('h6',{ref:'group-' + group.id,refInFor:true,staticClass:\"emoji-group-title\"},[_vm._v(\"\\n            \"+_vm._s(group.text)+\"\\n          \")]),_vm._v(\" \"),_vm._l((group.emojis),function(emoji){return _c('span',{key:group.id + emoji.displayText,staticClass:\"emoji-item\",attrs:{\"title\":emoji.displayText},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.onEmoji(emoji)}}},[(!emoji.imageUrl)?_c('span',[_vm._v(_vm._s(emoji.replacement))]):_c('img',{attrs:{\"src\":emoji.imageUrl}})])}),_vm._v(\" \"),_c('span',{ref:'group-end-' + group.id,refInFor:true})],2)}),0),_vm._v(\" \"),_c('div',{staticClass:\"keep-open\"},[_c('Checkbox',{model:{value:(_vm.keepOpen),callback:function ($$v) {_vm.keepOpen=$$v},expression:\"keepOpen\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('emoji.keep_open'))+\"\\n        \")])],1)]),_vm._v(\" \"),(_vm.showingStickers)?_c('div',{staticClass:\"stickers-content\"},[_c('sticker-picker',{on:{\"uploaded\":_vm.onStickerUploaded,\"upload-failed\":_vm.onStickerUploadFailed}})],1):_vm._e()])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of <input/> and <textarea/> elements\n *\n * Intended usage is:\n * <EmojiInput v-model=\"something\">\n *   <input v-model=\"something\"/>\n * </EmojiInput>\n *\n * Works only with <input> and <textarea>. Intended to use with only one nested\n * input. It will find first input or textarea and work with that, multiple\n * nested children not tested. You HAVE TO duplicate v-model for both\n * <emoji-input> and <input>/<textarea> otherwise it will not work.\n *\n * Be prepared for CSS troubles though because it still wraps component in a div\n * while TRYING to make it look like nothing happened, but it could break stuff.\n */\n\nconst EmojiInput = {\n  props: {\n    suggest: {\n      /**\n       * suggest: function (input: String) => Suggestion[]\n       *\n       * Function that takes input string which takes string (textAtCaret)\n       * and returns an array of Suggestions\n       *\n       * Suggestion is an object containing following properties:\n       * displayText: string. Main display text, what actual suggestion\n       *    represents (user's screen name/emoji shortcode)\n       * replacement: string. Text that should replace the textAtCaret\n       * detailText: string, optional. Subtitle text, providing additional info\n       *    if present (user's nickname)\n       * imageUrl: string, optional. Image to display alongside with suggestion,\n       *    currently if no image is provided, replacement will be used (for\n       *    unicode emojis)\n       *\n       * TODO: make it asynchronous when adding proper server-provided user\n       * suggestions\n       *\n       * For commonly used suggestors (emoji, users, both) use suggestor.js\n       */\n      required: true,\n      type: Function\n    },\n    value: {\n      /**\n       * Used for v-model\n       */\n      required: true,\n      type: String\n    },\n    enableEmojiPicker: {\n      /**\n       * Enables emoji picker support, this implies that custom emoji are supported\n       */\n      required: false,\n      type: Boolean,\n      default: false\n    },\n    hideEmojiButton: {\n      /**\n       * intended to use with external picker trigger, i.e. you have a button outside\n       * input that will open up the picker, see triggerShowPicker()\n       */\n      required: false,\n      type: Boolean,\n      default: false\n    },\n    enableStickerPicker: {\n      /**\n       * Enables sticker picker support, only makes sense when enableEmojiPicker=true\n       */\n      required: false,\n      type: Boolean,\n      default: false\n    }\n  },\n  data () {\n    return {\n      input: undefined,\n      highlighted: 0,\n      caret: 0,\n      focused: false,\n      blurTimeout: null,\n      showPicker: false,\n      temporarilyHideSuggestions: false,\n      keepOpen: false,\n      disableClickOutside: false\n    }\n  },\n  components: {\n    EmojiPicker\n  },\n  computed: {\n    padEmoji () {\n      return this.$store.getters.mergedConfig.padEmoji\n    },\n    suggestions () {\n      const firstchar = this.textAtCaret.charAt(0)\n      if (this.textAtCaret === firstchar) { return [] }\n      const matchedSuggestions = this.suggest(this.textAtCaret)\n      if (matchedSuggestions.length <= 0) {\n        return []\n      }\n      return take(matchedSuggestions, 5)\n        .map(({ imageUrl, ...rest }, index) => ({\n          ...rest,\n          // eslint-disable-next-line camelcase\n          img: imageUrl || '',\n          highlighted: index === this.highlighted\n        }))\n    },\n    showSuggestions () {\n      return this.focused &&\n        this.suggestions &&\n        this.suggestions.length > 0 &&\n        !this.showPicker &&\n        !this.temporarilyHideSuggestions\n    },\n    textAtCaret () {\n      return (this.wordAtCaret || {}).word || ''\n    },\n    wordAtCaret () {\n      if (this.value && this.caret) {\n        const word = Completion.wordAtPosition(this.value, this.caret - 1) || {}\n        return word\n      }\n    }\n  },\n  mounted () {\n    const slots = this.$slots.default\n    if (!slots || slots.length === 0) return\n    const input = slots.find(slot => ['input', 'textarea'].includes(slot.tag))\n    if (!input) return\n    this.input = input\n    this.resize()\n    input.elm.addEventListener('blur', this.onBlur)\n    input.elm.addEventListener('focus', this.onFocus)\n    input.elm.addEventListener('paste', this.onPaste)\n    input.elm.addEventListener('keyup', this.onKeyUp)\n    input.elm.addEventListener('keydown', this.onKeyDown)\n    input.elm.addEventListener('click', this.onClickInput)\n    input.elm.addEventListener('transitionend', this.onTransition)\n    input.elm.addEventListener('input', this.onInput)\n  },\n  unmounted () {\n    const { input } = this\n    if (input) {\n      input.elm.removeEventListener('blur', this.onBlur)\n      input.elm.removeEventListener('focus', this.onFocus)\n      input.elm.removeEventListener('paste', this.onPaste)\n      input.elm.removeEventListener('keyup', this.onKeyUp)\n      input.elm.removeEventListener('keydown', this.onKeyDown)\n      input.elm.removeEventListener('click', this.onClickInput)\n      input.elm.removeEventListener('transitionend', this.onTransition)\n      input.elm.removeEventListener('input', this.onInput)\n    }\n  },\n  methods: {\n    triggerShowPicker () {\n      this.showPicker = true\n      this.$refs.picker.startEmojiLoad()\n      this.$nextTick(() => {\n        this.scrollIntoView()\n      })\n      // This temporarily disables \"click outside\" handler\n      // since external trigger also means click originates\n      // from outside, thus preventing picker from opening\n      this.disableClickOutside = true\n      setTimeout(() => {\n        this.disableClickOutside = false\n      }, 0)\n    },\n    togglePicker () {\n      this.input.elm.focus()\n      this.showPicker = !this.showPicker\n      if (this.showPicker) {\n        this.scrollIntoView()\n        this.$refs.picker.startEmojiLoad()\n      }\n    },\n    replace (replacement) {\n      const newValue = Completion.replaceWord(this.value, this.wordAtCaret, replacement)\n      this.$emit('input', newValue)\n      this.caret = 0\n    },\n    insert ({ insertion, keepOpen }) {\n      const before = this.value.substring(0, this.caret) || ''\n      const after = this.value.substring(this.caret) || ''\n\n      /* Using a bit more smart approach to padding emojis with spaces:\n       * - put a space before cursor if there isn't one already, unless we\n       *   are at the beginning of post or in spam mode\n       * - put a space after emoji if there isn't one already unless we are\n       *   in spam mode\n       *\n       * The idea is that when you put a cursor somewhere in between sentence\n       * inserting just ' :emoji: ' will add more spaces to post which might\n       * break the flow/spacing, as well as the case where user ends sentence\n       * with a space before adding emoji.\n       *\n       * Spam mode is intended for creating multi-part emojis and overall spamming\n       * them, masto seem to be rendering :emoji::emoji: correctly now so why not\n       */\n      const isSpaceRegex = /\\s/\n      const spaceBefore = !isSpaceRegex.exec(before.slice(-1)) && before.length && this.padEmoji > 0 ? ' ' : ''\n      const spaceAfter = !isSpaceRegex.exec(after[0]) && this.padEmoji ? ' ' : ''\n\n      const newValue = [\n        before,\n        spaceBefore,\n        insertion,\n        spaceAfter,\n        after\n      ].join('')\n      this.keepOpen = keepOpen\n      this.$emit('input', newValue)\n      const position = this.caret + (insertion + spaceAfter + spaceBefore).length\n      if (!keepOpen) {\n        this.input.elm.focus()\n      }\n\n      this.$nextTick(function () {\n        // Re-focus inputbox after clicking suggestion\n        // Set selection right after the replacement instead of the very end\n        this.input.elm.setSelectionRange(position, position)\n        this.caret = position\n      })\n    },\n    replaceText (e, suggestion) {\n      const len = this.suggestions.length || 0\n      if (this.textAtCaret.length === 1) { return }\n      if (len > 0 || suggestion) {\n        const chosenSuggestion = suggestion || this.suggestions[this.highlighted]\n        const replacement = chosenSuggestion.replacement\n        const newValue = Completion.replaceWord(this.value, this.wordAtCaret, replacement)\n        this.$emit('input', newValue)\n        this.highlighted = 0\n        const position = this.wordAtCaret.start + replacement.length\n\n        this.$nextTick(function () {\n          // Re-focus inputbox after clicking suggestion\n          this.input.elm.focus()\n          // Set selection right after the replacement instead of the very end\n          this.input.elm.setSelectionRange(position, position)\n          this.caret = position\n        })\n        e.preventDefault()\n      }\n    },\n    cycleBackward (e) {\n      const len = this.suggestions.length || 0\n      if (len > 1) {\n        this.highlighted -= 1\n        if (this.highlighted < 0) {\n          this.highlighted = this.suggestions.length - 1\n        }\n        e.preventDefault()\n      } else {\n        this.highlighted = 0\n      }\n    },\n    cycleForward (e) {\n      const len = this.suggestions.length || 0\n      if (len > 1) {\n        this.highlighted += 1\n        if (this.highlighted >= len) {\n          this.highlighted = 0\n        }\n        e.preventDefault()\n      } else {\n        this.highlighted = 0\n      }\n    },\n    scrollIntoView () {\n      const rootRef = this.$refs['picker'].$el\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 scrollerRef = this.$el.closest('.sidebar-scroller') ||\n            this.$el.closest('.post-form-modal-view') ||\n            window\n      const currentScroll = scrollerRef === window\n        ? scrollerRef.scrollY\n        : scrollerRef.scrollTop\n      const scrollerHeight = scrollerRef === window\n        ? scrollerRef.innerHeight\n        : scrollerRef.offsetHeight\n\n      const scrollerBottomBorder = currentScroll + scrollerHeight\n      // We check where the bottom border of root element is, this uses findOffset\n      // to find offset relative to scrollable container (scroller)\n      const rootBottomBorder = rootRef.offsetHeight + findOffset(rootRef, scrollerRef).top\n\n      const bottomDelta = Math.max(0, rootBottomBorder - scrollerBottomBorder)\n      // could also check top delta but there's no case for it\n      const targetScroll = currentScroll + bottomDelta\n\n      if (scrollerRef === window) {\n        scrollerRef.scroll(0, targetScroll)\n      } else {\n        scrollerRef.scrollTop = targetScroll\n      }\n\n      this.$nextTick(() => {\n        const { offsetHeight } = this.input.elm\n        const { picker } = this.$refs\n        const pickerBottom = picker.$el.getBoundingClientRect().bottom\n        if (pickerBottom > window.innerHeight) {\n          picker.$el.style.top = 'auto'\n          picker.$el.style.bottom = offsetHeight + 'px'\n        }\n      })\n    },\n    onTransition (e) {\n      this.resize()\n    },\n    onBlur (e) {\n      // Clicking on any suggestion removes focus from autocomplete,\n      // preventing click handler ever executing.\n      this.blurTimeout = setTimeout(() => {\n        this.focused = false\n        this.setCaret(e)\n        this.resize()\n      }, 200)\n    },\n    onClick (e, suggestion) {\n      this.replaceText(e, suggestion)\n    },\n    onFocus (e) {\n      if (this.blurTimeout) {\n        clearTimeout(this.blurTimeout)\n        this.blurTimeout = null\n      }\n\n      if (!this.keepOpen) {\n        this.showPicker = false\n      }\n      this.focused = true\n      this.setCaret(e)\n      this.resize()\n      this.temporarilyHideSuggestions = false\n    },\n    onKeyUp (e) {\n      const { key } = e\n      this.setCaret(e)\n      this.resize()\n\n      // Setting hider in keyUp to prevent suggestions from blinking\n      // when moving away from suggested spot\n      if (key === 'Escape') {\n        this.temporarilyHideSuggestions = true\n      } else {\n        this.temporarilyHideSuggestions = false\n      }\n    },\n    onPaste (e) {\n      this.setCaret(e)\n      this.resize()\n    },\n    onKeyDown (e) {\n      const { ctrlKey, shiftKey, key } = e\n      // Disable suggestions hotkeys if suggestions are hidden\n      if (!this.temporarilyHideSuggestions) {\n        if (key === 'Tab') {\n          if (shiftKey) {\n            this.cycleBackward(e)\n          } else {\n            this.cycleForward(e)\n          }\n        }\n        if (key === 'ArrowUp') {\n          this.cycleBackward(e)\n        } else if (key === 'ArrowDown') {\n          this.cycleForward(e)\n        }\n        if (key === 'Enter') {\n          if (!ctrlKey) {\n            this.replaceText(e)\n          }\n        }\n      }\n      // Probably add optional keyboard controls for emoji picker?\n\n      // Escape hides suggestions, if suggestions are hidden it\n      // de-focuses the element (i.e. default browser behavior)\n      if (key === 'Escape') {\n        if (!this.temporarilyHideSuggestions) {\n          this.input.elm.focus()\n        }\n      }\n\n      this.showPicker = false\n      this.resize()\n    },\n    onInput (e) {\n      this.showPicker = false\n      this.setCaret(e)\n      this.resize()\n      this.$emit('input', e.target.value)\n    },\n    onClickInput (e) {\n      this.showPicker = false\n    },\n    onClickOutside (e) {\n      if (this.disableClickOutside) return\n      this.showPicker = false\n    },\n    onStickerUploaded (e) {\n      this.showPicker = false\n      this.$emit('sticker-uploaded', e)\n    },\n    onStickerUploadFailed (e) {\n      this.showPicker = false\n      this.$emit('sticker-upload-Failed', e)\n    },\n    setCaret ({ target: { selectionStart } }) {\n      this.caret = selectionStart\n    },\n    resize () {\n      const { panel, picker } = this.$refs\n      if (!panel) return\n      const { offsetHeight, offsetTop } = this.input.elm\n      const offsetBottom = offsetTop + offsetHeight\n\n      panel.style.top = offsetBottom + 'px'\n      picker.$el.style.top = offsetBottom + 'px'\n      picker.$el.style.bottom = 'auto'\n    }\n  }\n}\n\nexport default EmojiInput\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./emoji_input.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./emoji_input.js\"\nimport __vue_script__ from \"!!babel-loader!./emoji_input.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4184a282\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./emoji_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],staticClass:\"emoji-input\",class:{ 'with-picker': !_vm.hideEmojiButton }},[_vm._t(\"default\"),_vm._v(\" \"),(_vm.enableEmojiPicker)?[(!_vm.hideEmojiButton)?_c('div',{staticClass:\"emoji-picker-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.togglePicker($event)}}},[_c('i',{staticClass:\"icon-smile\"})]):_vm._e(),_vm._v(\" \"),(_vm.enableEmojiPicker)?_c('EmojiPicker',{ref:\"picker\",staticClass:\"emoji-picker-panel\",class:{ hide: !_vm.showPicker },attrs:{\"enable-sticker-picker\":_vm.enableStickerPicker},on:{\"emoji\":_vm.insert,\"sticker-uploaded\":_vm.onStickerUploaded,\"sticker-upload-failed\":_vm.onStickerUploadFailed}}):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('div',{ref:\"panel\",staticClass:\"autocomplete-panel\",class:{ hide: !_vm.showSuggestions }},[_c('div',{staticClass:\"autocomplete-panel-body\"},_vm._l((_vm.suggestions),function(suggestion,index){return _c('div',{key:index,staticClass:\"autocomplete-item\",class:{ highlighted: suggestion.highlighted },on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.onClick($event, suggestion)}}},[_c('span',{staticClass:\"image\"},[(suggestion.img)?_c('img',{attrs:{\"src\":suggestion.img}}):_c('span',[_vm._v(_vm._s(suggestion.replacement))])]),_vm._v(\" \"),_c('div',{staticClass:\"label\"},[_c('span',{staticClass:\"displayText\"},[_vm._v(_vm._s(suggestion.displayText))]),_vm._v(\" \"),_c('span',{staticClass:\"detailText\"},[_vm._v(_vm._s(suggestion.detailText))])])])}),0)])],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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', '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_again')\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  },\n  methods: {\n    onClick () {\n      this.relationship.following ? 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","/* script */\nexport * from \"!!babel-loader!./follow_button.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-fae84d0a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn btn-default follow-button\",class:{ toggled: _vm.isPressed },attrs:{\"disabled\":_vm.inProgress,\"title\":_vm.title},on:{\"click\":_vm.onClick}},[_vm._v(\"\\n  \"+_vm._s(_vm.label)+\"\\n\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const 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    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      }\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./scope_selector.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./scope_selector.js\"\nimport __vue_script__ from \"!!babel-loader!./scope_selector.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-28e8cbf1\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./scope_selector.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.showNothing)?_c('div',{staticClass:\"scope-selector\"},[(_vm.showDirect)?_c('i',{staticClass:\"icon-mail-alt\",class:_vm.css.direct,attrs:{\"title\":_vm.$t('post_status.scope.direct')},on:{\"click\":function($event){_vm.changeVis('direct')}}}):_vm._e(),_vm._v(\" \"),(_vm.showPrivate)?_c('i',{staticClass:\"icon-lock\",class:_vm.css.private,attrs:{\"title\":_vm.$t('post_status.scope.private')},on:{\"click\":function($event){_vm.changeVis('private')}}}):_vm._e(),_vm._v(\" \"),(_vm.showUnlisted)?_c('i',{staticClass:\"icon-lock-open-alt\",class:_vm.css.unlisted,attrs:{\"title\":_vm.$t('post_status.scope.unlisted')},on:{\"click\":function($event){_vm.changeVis('unlisted')}}}):_vm._e(),_vm._v(\" \"),(_vm.showPublic)?_c('i',{staticClass:\"icon-globe\",class:_vm.css.public,attrs:{\"title\":_vm.$t('post_status.scope.public')},on:{\"click\":function($event){_vm.changeVis('public')}}}):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nconst VideoAttachment = {\n  props: ['attachment', 'controls'],\n  data () {\n    return {\n      loopVideo: this.$store.getters.mergedConfig.loopVideo\n    }\n  },\n  methods: {\n    onVideoDataLoad (e) {\n      const target = e.srcElement || e.target\n      if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n        // non-zero if video has audio track\n        if (target.webkitAudioDecodedByteCount > 0) {\n          this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n        }\n      } else if (typeof target.mozHasAudio !== 'undefined') {\n        // true if video has audio track\n        if (target.mozHasAudio) {\n          this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n        }\n      } else if (typeof target.audioTracks !== 'undefined') {\n        if (target.audioTracks.length > 0) {\n          this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n        }\n      }\n    }\n  }\n}\n\nexport default VideoAttachment\n","/* script */\nexport * from \"!!babel-loader!./video_attachment.js\"\nimport __vue_script__ from \"!!babel-loader!./video_attachment.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6fce6a82\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./video_attachment.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('video',{staticClass:\"video\",attrs:{\"src\":_vm.attachment.url,\"loop\":_vm.loopVideo,\"controls\":_vm.controls,\"playsinline\":\"\"},on:{\"loadeddata\":_vm.onVideoDataLoad}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./remote_follow.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./remote_follow.js\"\nimport __vue_script__ from \"!!babel-loader!./remote_follow.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e95e446e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./remote_follow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"remote-follow\"},[_c('form',{attrs:{\"method\":\"POST\",\"action\":_vm.subscribeUrl}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"nickname\"},domProps:{\"value\":_vm.user.screen_name}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"profile\",\"value\":\"\"}}),_vm._v(\" \"),_c('button',{staticClass:\"remote-button\",attrs:{\"click\":\"submit\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user_card.remote_follow'))+\"\\n    \")])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./avatar_list.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./avatar_list.js\"\nimport __vue_script__ from \"!!babel-loader!./avatar_list.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4cea5bcf\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./avatar_list.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"avatars\"},_vm._l((_vm.slicedUsers),function(user){return _c('router-link',{key:user.id,staticClass:\"avatars-item\",attrs:{\"to\":_vm.userProfileLink(user)}},[_c('UserAvatar',{staticClass:\"avatar-small\",attrs:{\"user\":user}})],1)}),1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Attachment from '../attachment/attachment.vue'\nimport { chunk, last, dropRight, sumBy } from 'lodash'\n\nconst Gallery = {\n  props: [\n    'attachments',\n    'nsfw',\n    'setMedia'\n  ],\n  data () {\n    return {\n      sizes: {}\n    }\n  },\n  components: { Attachment },\n  computed: {\n    rows () {\n      if (!this.attachments) {\n        return []\n      }\n      const rows = chunk(this.attachments, 3)\n      if (last(rows).length === 1 && rows.length > 1) {\n        // if 1 attachment on last row -> add it to the previous row instead\n        const lastAttachment = last(rows)[0]\n        const allButLastRow = dropRight(rows)\n        last(allButLastRow).push(lastAttachment)\n        return allButLastRow\n      }\n      return rows\n    },\n    useContainFit () {\n      return this.$store.getters.mergedConfig.useContainFit\n    }\n  },\n  methods: {\n    onNaturalSizeLoad (id, size) {\n      this.$set(this.sizes, id, size)\n    },\n    rowStyle (itemsPerRow) {\n      return { 'padding-bottom': `${(100 / (itemsPerRow + 0.6))}%` }\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  }\n}\n\nexport default Gallery\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./gallery.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./gallery.js\"\nimport __vue_script__ from \"!!babel-loader!./gallery.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-68a574b8\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./gallery.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"galleryContainer\",staticStyle:{\"width\":\"100%\"}},_vm._l((_vm.rows),function(row,index){return _c('div',{key:index,staticClass:\"gallery-row\",class:{ 'contain-fit': _vm.useContainFit, 'cover-fit': !_vm.useContainFit },style:(_vm.rowStyle(row.length))},[_c('div',{staticClass:\"gallery-row-inner\"},_vm._l((row),function(attachment){return _c('attachment',{key:attachment.id,style:(_vm.itemStyle(attachment.id, row)),attrs:{\"set-media\":_vm.setMedia,\"nsfw\":_vm.nsfw,\"attachment\":attachment,\"allow-play\":false,\"natural-size-load\":_vm.onNaturalSizeLoad.bind(null, attachment.id)}})}),1)])}),0)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const 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.nsfw && this.size !== 'hide'\n    },\n    useDescription () {\n      return this.card.description && /\\S/.test(this.card.description)\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./link-preview.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./link-preview.js\"\nimport __vue_script__ from \"!!babel-loader!./link-preview.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7c8d99ac\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./link-preview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('a',{staticClass:\"link-preview-card\",attrs:{\"href\":_vm.card.url,\"target\":\"_blank\",\"rel\":\"noopener\"}},[(_vm.useImage && _vm.imageLoaded)?_c('div',{staticClass:\"card-image\",class:{ 'small-image': _vm.size === 'small' }},[_c('img',{attrs:{\"src\":_vm.card.image}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-content\"},[_c('span',{staticClass:\"card-host faint\"},[_vm._v(_vm._s(_vm.card.provider_name))]),_vm._v(\" \"),_c('h4',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.card.title))]),_vm._v(\" \"),(_vm.useDescription)?_c('p',{staticClass:\"card-description\"},[_vm._v(_vm._s(_vm.card.description))]):_vm._e()])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","module.exports = __webpack_public_path__ + \"static/img/nsfw.74818f9.png\";","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./timeline.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0084eb3d\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeline .loadmore-text{opacity:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./status.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ce58e9e8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".status-body{-ms-flex:1;flex:1;min-width:0}.status-pin{padding:.75em .75em 0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.media-left{margin-right:.75em}.status-el{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;border-left-width:0;min-width:0;border-color:#222;border-color:var(--border,#222);border-left:4px red;border-left:4px var(--cRed,red)}.status-el_focused{background-color:#151e2a;background-color:var(--selectedPost,#151e2a);color:#b9b9ba;color:var(--selectedPostText,#b9b9ba);--lightText:var(--selectedPostLightText,$fallback--light);--faint:var(--selectedPostFaintText,$fallback--faint);--faintLink:var(--selectedPostFaintLink,$fallback--faint);--postLink:var(--selectedPostPostLink,$fallback--faint);--postFaintLink:var(--selectedPostFaintPostLink,$fallback--faint);--icon:var(--selectedPostIcon,$fallback--icon)}.timeline .status-el{border-bottom-width:1px;border-bottom-style:solid}.status-el .media-body{-ms-flex:1;flex:1;padding:0}.status-el .status-usercard{margin-bottom:.75em}.status-el .user-name{white-space:nowrap;font-size:14px;overflow:hidden;-ms-flex-negative:0;flex-shrink:0;max-width:85%;font-weight:700}.status-el .user-name img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-el .media-heading{padding:0;vertical-align:bottom;-ms-flex-preferred-size:100%;flex-basis:100%;margin-bottom:.5em}.status-el .media-heading small{font-weight:lighter}.status-el .media-heading .heading-name-row{padding:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;line-height:18px}.status-el .media-heading .heading-name-row a{display:inline-block;word-break:break-all}.status-el .media-heading .heading-name-row .name-and-account-name{display:-ms-flexbox;display:flex;min-width:0}.status-el .media-heading .heading-name-row .user-name{-ms-flex-negative:1;flex-shrink:1;margin-right:.4em;overflow:hidden;text-overflow:ellipsis}.status-el .media-heading .heading-name-row .account-name{min-width:1.6em;margin-right:.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-ms-flex:1 1 0px;flex:1 1 0}.status-el .media-heading .heading-right{display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.status-el .media-heading .timeago{margin-right:.2em}.status-el .media-heading .heading-reply-row{position:relative;-ms-flex-line-pack:baseline;align-content:baseline;font-size:12px;line-height:18px;max-width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch}.status-el .media-heading .heading-reply-row>.reply-to-and-accountname>a{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.status-el .media-heading .reply-to-and-accountname{display:-ms-flexbox;display:flex;height:18px;margin-right:.5em;max-width:100%}.status-el .media-heading .reply-to-and-accountname .icon-reply{transform:scaleX(-1)}.status-el .media-heading .reply-info{display:-ms-flexbox;display:flex}.status-el .media-heading .reply-to-popover{min-width:0}.status-el .media-heading .reply-to{display:-ms-flexbox;display:flex}.status-el .media-heading .reply-to-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 .4em 0 .2em}.status-el .media-heading .replies-separator{margin-left:.4em}.status-el .media-heading .replies{line-height:18px;font-size:12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.status-el .media-heading .replies>*{margin-right:.4em}.status-el .media-heading .reply-link{height:17px}.status-el .retweet-info{padding:.4em .75em;margin:0}.status-el .retweet-info .avatar.still-image{border-radius:10px;border-radius:var(--avatarAltRadius,10px);margin-left:28px;width:20px;height:20px}.status-el .retweet-info .media-body{font-size:1em;line-height:22px;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.status-el .retweet-info .media-body .user-name{font-weight:700;overflow:hidden;text-overflow:ellipsis}.status-el .retweet-info .media-body .user-name img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-el .retweet-info .media-body i{padding:0 .2em}.status-el .retweet-info .media-body a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.status-conversation{border-left-style:solid}.status-actions{position:relative;width:100%;display:-ms-flexbox;display:flex;margin-top:.75em}.status-actions>*{max-width:4em;-ms-flex:1;flex:1}.button-icon.icon-reply.button-icon-active,.button-icon.icon-reply:not(.button-icon-disabled):hover{color:#0095ff;color:var(--cBlue,#0095ff)}.button-icon.icon-reply:not(.button-icon-disabled){cursor:pointer}.status:hover .animated.avatar canvas{display:none}.status:hover .animated.avatar img{visibility:visible}.status{display:-ms-flexbox;display:flex;padding:.75em}.status.is-retweet{padding-top:0}.status-conversation:last-child{border-bottom:none}.muted{padding:.25em .5em}.muted button{margin-left:auto}.muted .muteWords{margin-left:10px}a.unmute{display:block;margin-left:auto}.reply-body{-ms-flex:1;flex:1}.favs-repeated-users{margin-top:.75em}.favs-repeated-users .stats{width:100%;display:-ms-flexbox;display:flex;line-height:1em}.favs-repeated-users .stats .stat-count{margin-right:.75em}.favs-repeated-users .stats .stat-count .stat-title{color:var(--faint,hsla(240,1%,73%,.5));font-size:12px;text-transform:uppercase;position:relative}.favs-repeated-users .stats .stat-count .stat-number{font-weight:bolder;font-size:16px;line-height:1em}.favs-repeated-users .stats .avatar-row{-ms-flex:1;flex:1;overflow:hidden;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.favs-repeated-users .stats .avatar-row:before{content:\\\"\\\";position:absolute;height:100%;width:1px;left:0;background-color:var(--faint,hsla(240,1%,73%,.5))}@media (max-width:800px){.status-el .retweet-info .avatar.still-image{margin-left:20px}.status{max-width:100%}.status .avatar.still-image{width:40px;height:40px}.status .avatar.still-image.avatar-compact{width:32px;height:32px}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./favorite_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7d4fb47f\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".fav-active{cursor:pointer;animation-duration:.6s}.fav-active:hover,.favorite-button.icon-star{color:orange;color:var(--cOrange,orange)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./react_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b98558e8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".reaction-picker-filter{padding:.5em;display:-ms-flexbox;display:flex}.reaction-picker-filter input{-ms-flex:1;flex:1}.reaction-picker-divider{height:1px;width:100%;margin:.5em;background-color:var(--border,#222)}.reaction-picker{width:10em;height:9em;font-size:1.5em;overflow-y:scroll;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.5em;text-align:center;-ms-flex-line-pack:start;align-content:flex-start;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;-webkit-mask-composite:xor;mask-composite:exclude}.reaction-picker .emoji-button{cursor:pointer;-ms-flex-preferred-size:20%;flex-basis:20%;line-height:1.5em;-ms-flex-line-pack:center;align-content:center}.reaction-picker .emoji-button:hover{transform:scale(1.25)}.add-reaction-button{cursor:pointer}.add-reaction-button:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./popover.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"92bf6e22\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".popover{z-index:8;position:absolute;min-width:0;transition:opacity .3s;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);border-radius:4px;border-radius:var(--btnRadius,4px);background-color:#121a24;background-color:var(--popover,#121a24);color:#b9b9ba;color:var(--popoverText,#b9b9ba);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--postLink:var(--popoverPostLink,$fallback--link);--postFaintLink:var(--popoverPostFaintLink,$fallback--link);--icon:var(--popoverIcon,$fallback--icon)}.dropdown-menu{display:block;padding:.5rem 0;font-size:1rem;text-align:left;list-style:none;max-width:100vw;z-index:10;white-space:nowrap}.dropdown-menu .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #222;border-top:1px solid var(--border,#222)}.dropdown-menu .dropdown-item{line-height:21px;margin-right:5px;overflow:auto;display:block;padding:.25rem 1rem .25rem 1.5rem;clear:both;font-weight:400;text-align:inherit;white-space:nowrap;border:none;border-radius:0;background-color:transparent;box-shadow:none;width:100%;height:100%;--btnText:var(--popoverText,$fallback--text)}.dropdown-menu .dropdown-item-icon{padding-left:.5rem}.dropdown-menu .dropdown-item-icon i{margin-right:.25rem;color:var(--menuPopoverIcon,#666)}.dropdown-menu .dropdown-item:active,.dropdown-menu .dropdown-item:hover{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#d8a070;color:var(--selectedMenuPopoverText,#d8a070);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon)}.dropdown-menu .dropdown-item:active i,.dropdown-menu .dropdown-item:hover i{color:var(--selectedMenuPopoverIcon,#666)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./retweet_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c52cbcb\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".rt-active{cursor:pointer;animation-duration:.6s}.icon-retweet.retweeted,.rt-active:hover{color:#0fa00f;color:var(--cGreen,#0fa00f)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./extra_buttons.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0d2c533c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".icon-ellipsis{cursor:pointer}.extra-button-popover.open .icon-ellipsis,.icon-ellipsis:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./post_status_form.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ce7966a8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tribute-container ul{padding:0}.tribute-container ul li{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.tribute-container img{padding:3px;width:16px;height:16px;border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.post-status-form{position:relative}.post-status-form .visibility-tray{padding-top:5px}.post-status-form .form-bottom,.post-status-form .visibility-tray{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.post-status-form .form-bottom{padding:.5em;height:32px}.post-status-form .form-bottom button{width:10em}.post-status-form .form-bottom p{margin:.35em;padding:.35em;display:-ms-flexbox;display:flex}.post-status-form .form-bottom-left{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;padding-right:7px;margin-right:7px;max-width:10em}.post-status-form .text-format .only-format{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.post-status-form .emoji-icon,.post-status-form .media-upload-icon,.post-status-form .poll-icon{font-size:26px;-ms-flex:1;flex:1}.post-status-form .emoji-icon.selected i,.post-status-form .emoji-icon.selected label,.post-status-form .emoji-icon:hover i,.post-status-form .emoji-icon:hover label,.post-status-form .media-upload-icon.selected i,.post-status-form .media-upload-icon.selected label,.post-status-form .media-upload-icon:hover i,.post-status-form .media-upload-icon:hover label,.post-status-form .poll-icon.selected i,.post-status-form .poll-icon.selected label,.post-status-form .poll-icon:hover i,.post-status-form .poll-icon:hover label{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.post-status-form .media-upload-icon{-ms-flex-order:1;order:1;text-align:left}.post-status-form .emoji-icon{-ms-flex-order:2;order:2;text-align:center}.post-status-form .poll-icon{-ms-flex-order:3;order:3;text-align:right}.post-status-form .icon-chart-bar{cursor:pointer}.post-status-form .error{text-align:center}.post-status-form .media-upload-wrapper{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;min-width:50px;margin-right:.2em;margin-bottom:.5em}.post-status-form .media-upload-wrapper .icon-cancel{display:inline-block;position:static;margin:0;padding-bottom:0;margin-left:10px;margin-left:var(--attachmentRadius,10px);background-color:#182230;background-color:var(--btn,#182230);border-bottom-left-radius:0;border-bottom-right-radius:0}.post-status-form .status-input-wrapper{display:-ms-flexbox;display:flex;position:relative;width:100%;-ms-flex-direction:column;flex-direction:column}.post-status-form .attachments{padding:0 .5em}.post-status-form .attachments .attachment{margin:0;position:relative;-ms-flex:0 0 auto;flex:0 0 auto;border:1px solid #222;border:1px solid var(--border,#222);text-align:center}.post-status-form .attachments .attachment audio{min-width:300px;-ms-flex:1 0 auto;flex:1 0 auto}.post-status-form .attachments .attachment a{display:block;text-align:left;line-height:1.2;padding:.5em}.post-status-form .attachments i{position:absolute;margin:10px;padding:5px;background:hsla(0,0%,90%,.6);border-radius:10px;border-radius:var(--attachmentRadius,10px);font-weight:700}.post-status-form form{padding:.6em}.post-status-form .form-group,.post-status-form form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.post-status-form .form-group{padding:.25em .5em .5em;line-height:24px}.post-status-form .form-post-body,.post-status-form form textarea.form-cw{line-height:16px;resize:none;overflow:hidden;transition:min-height .2s .1s;min-height:1px}.post-status-form .form-post-body{height:16px;padding-bottom:1.75em;box-sizing:content-box}.post-status-form .form-post-body.scrollable-form{overflow-y:auto}.post-status-form .main-input{position:relative}.post-status-form .character-counter{position:absolute;bottom:0;right:0;padding:0;margin:0 .5em}.post-status-form .character-counter.error{color:red;color:var(--cRed,red)}.post-status-form .btn{cursor:pointer}.post-status-form .btn[disabled]{cursor:not-allowed}.post-status-form .icon-cancel{cursor:pointer;z-index:4}img.media-upload{line-height:0;max-height:200px;max-width:100%}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./media_upload.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8585287c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".media-upload .label{display:inline-block}.media-upload .new-icon{cursor:pointer}.media-upload .progress-icon{display:inline-block;line-height:0}.media-upload .progress-icon:before{margin:0;line-height:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./scope_selector.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"770eecd8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".scope-selector i{font-size:1.2em;cursor:pointer}.scope-selector i.selected{color:#b9b9ba;color:var(--lightText,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./emoji_input.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d6bd964a\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".emoji-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.emoji-input.with-picker input{padding-right:30px}.emoji-input .emoji-picker-icon{position:absolute;top:0;right:0;margin:.2em .25em;font-size:16px;cursor:pointer;line-height:24px}.emoji-input .emoji-picker-icon:hover i{color:#b9b9ba;color:var(--text,#b9b9ba)}.emoji-input .emoji-picker-panel{position:absolute;z-index:20;margin-top:2px}.emoji-input .emoji-picker-panel.hide{display:none}.emoji-input .autocomplete-panel{position:absolute;z-index:20;margin-top:2px}.emoji-input .autocomplete-panel.hide{display:none}.emoji-input .autocomplete-panel-body{margin:0 .5em;border-radius:5px;border-radius:var(--tooltipRadius,5px);box-shadow:1px 2px 4px rgba(0,0,0,.5);box-shadow:var(--popupShadow);min-width:75%;background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--postLink:var(--popoverPostLink,$fallback--link);--postFaintLink:var(--popoverPostFaintLink,$fallback--link);--icon:var(--popoverIcon,$fallback--icon)}.emoji-input .autocomplete-item{display:-ms-flexbox;display:flex;cursor:pointer;padding:.2em .4em;border-bottom:1px solid rgba(0,0,0,.4);height:32px}.emoji-input .autocomplete-item .image{width:32px;height:32px;line-height:32px;text-align:center;font-size:32px;margin-right:4px}.emoji-input .autocomplete-item .image img{width:32px;height:32px;-o-object-fit:contain;object-fit:contain}.emoji-input .autocomplete-item .label{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;margin:0 .1em 0 .2em}.emoji-input .autocomplete-item .label .displayText{line-height:1.5}.emoji-input .autocomplete-item .label .detailText{font-size:9px;line-height:9px}.emoji-input .autocomplete-item.highlighted{background-color:#182230;background-color:var(--selectedMenuPopover,#182230);color:var(--selectedMenuPopoverText,#b9b9ba);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon)}.emoji-input input,.emoji-input textarea{-ms-flex:1 0 auto;flex:1 0 auto}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./emoji_picker.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7bb72e68\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".emoji-picker{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;right:0;left:0;margin:0!important;z-index:1;background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);--lightText:var(--popoverLightText,$fallback--faint);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon)}.emoji-picker .keep-open,.emoji-picker .too-many-emoji{padding:7px;line-height:normal}.emoji-picker .too-many-emoji{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.emoji-picker .keep-open-label{padding:0 7px;display:-ms-flexbox;display:flex}.emoji-picker .heading{display:-ms-flexbox;display:flex;height:32px;padding:10px 7px 5px}.emoji-picker .content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 1 auto;flex:1 1 auto;min-height:0}.emoji-picker .emoji-tabs{-ms-flex-positive:1;flex-grow:1}.emoji-picker .emoji-groups{min-height:200px}.emoji-picker .additional-tabs{border-left:1px solid;border-left-color:#666;border-left-color:var(--icon,#666);padding-left:7px;-ms-flex:0 0 auto;flex:0 0 auto}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{display:block;min-width:0;-ms-flex-preferred-size:auto;flex-basis:auto;-ms-flex-negative:1;flex-shrink:1}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{padding:0 7px;cursor:pointer;font-size:24px}.emoji-picker .additional-tabs-item.disabled,.emoji-picker .emoji-tabs-item.disabled{opacity:.5;pointer-events:none}.emoji-picker .additional-tabs-item.active,.emoji-picker .emoji-tabs-item.active{border-bottom:4px solid}.emoji-picker .additional-tabs-item.active i,.emoji-picker .emoji-tabs-item.active i{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.emoji-picker .sticker-picker{-ms-flex:1 1 auto;flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 1 auto;flex:1 1 auto;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{padding:5px;-ms-flex:0 0 auto;flex:0 0 auto}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{-ms-flex:1 1 1px;flex:1 1 1px;position:relative;overflow:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;-webkit-mask-composite:xor;mask-composite:exclude}.emoji-picker .emoji-groups.scrolled-top{-webkit-mask-size:100% 20px,100% 0,auto;mask-size:100% 20px,100% 0,auto}.emoji-picker .emoji-groups.scrolled-bottom{-webkit-mask-size:100% 0,100% 20px,auto;mask-size:100% 0,100% 20px,auto}.emoji-picker .emoji-group{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:5px;-ms-flex-pack:left;justify-content:left}.emoji-picker .emoji-group-title{font-size:12px;width:100%;margin:0}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{width:32px;height:32px;box-sizing:border-box;display:-ms-flexbox;display:flex;font-size:32px;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:4px;cursor:pointer}.emoji-picker .emoji-item img{-o-object-fit:contain;object-fit:contain;max-width:100%;max-height:100%}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./checkbox.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"002629bb\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".checkbox{position:relative;display:inline-block;min-height:1.2em}.checkbox-indicator{position:relative;padding-left:1.2em}.checkbox-indicator:before{position:absolute;right:0;top:0;display:block;content:\\\"\\\\2714\\\";transition:color .2s;width:1.1em;height:1.1em;border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);background-color:#182230;background-color:var(--input,#182230);vertical-align:top;text-align:center;line-height:1.1em;font-size:1.1em;color:transparent;overflow:hidden;box-sizing:border-box}.checkbox.disabled .checkbox-indicator:before,.checkbox.disabled .label{opacity:.5}.checkbox.disabled .label{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.checkbox input[type=checkbox]{display:none}.checkbox input[type=checkbox]:checked+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{content:\\\"\\\\2013\\\";color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox>span{margin-left:.5em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./poll_form.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"60db0262\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".poll-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{-ms-flex-item-align:start;align-self:flex-start;padding-top:.25em;cursor:pointer}.poll-form .poll-option{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:.25em}.poll-form .input-container{width:100%}.poll-form .input-container input{padding-right:2.5em;width:100%}.poll-form .icon-container{width:2em;margin-left:-2em;z-index:1}.poll-form .poll-type-expiry{margin-top:.5em;display:-ms-flexbox;display:flex;width:100%}.poll-form .poll-type{margin-right:.75em;-ms-flex:1 1 60%;flex:1 1 60%}.poll-form .poll-type .select{border:none;box-shadow:none;background-color:transparent}.poll-form .poll-expiry{display:-ms-flexbox;display:flex}.poll-form .poll-expiry .expiry-amount{width:3em;text-align:right}.poll-form .poll-expiry .expiry-unit{border:none;box-shadow:none;background-color:transparent}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0060b6a4\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-card{position:relative}.user-card .panel-heading{padding:.5em 0;text-align:center;box-shadow:none;background:transparent;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;position:relative}.user-card .panel-body{word-wrap:break-word;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit;position:relative}.user-card .background-image{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;background-size:cover;-webkit-mask-size:100% 60%;mask-size:100% 60%;border-top-left-radius:calc(var(--panelRadius) - 1px);border-top-right-radius:calc(var(--panelRadius) - 1px);background-color:var(--profileBg)}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card p{margin-bottom:0}.user-card-bio{text-align:center}.user-card-bio a{color:#d8a070;color:var(--postLink,#d8a070)}.user-card-bio img{-o-object-fit:contain;object-fit:contain;vertical-align:middle;max-width:100%;max-height:400px}.user-card-bio img.emoji{width:32px;height:32px}.user-card-rounded-t{border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.user-card-rounded{border-radius:10px;border-radius:var(--panelRadius,10px)}.user-card-bordered{border-color:#222;border:1px solid var(--border,#222)}.user-info{color:#b9b9ba;color:var(--lightText,#b9b9ba);padding:0 26px}.user-info .container{padding:16px 0 6px;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;max-height:56px}.user-info .container .avatar{-ms-flex:1 0 100%;flex:1 0 100%;width:56px;height:56px;box-shadow:0 1px 8px rgba(0,0,0,.75);box-shadow:var(--avatarShadow);-o-object-fit:cover;object-fit:cover}.user-info:hover .animated.avatar canvas{display:none}.user-info:hover .animated.avatar img{visibility:visible}.user-info-avatar-link{position:relative;cursor:pointer}.user-info-avatar-link-overlay{position:absolute;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.3);display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;border-radius:4px;border-radius:var(--avatarRadius,4px);opacity:0;transition:opacity .2s ease}.user-info-avatar-link-overlay i{color:#fff}.user-info-avatar-link:hover .user-info-avatar-link-overlay{opacity:1}.user-info .usersettings{color:#b9b9ba;color:var(--lightText,#b9b9ba);opacity:.8}.user-info .user-summary{display:block;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;-ms-flex:1 1 0px;flex:1 1 0;z-index:1}.user-info .user-summary img{width:26px;height:26px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.user-info .user-summary .top-line{display:-ms-flexbox;display:flex}.user-info .user-name{text-overflow:ellipsis;overflow:hidden;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:1em;font-size:15px}.user-info .user-name img{-o-object-fit:contain;object-fit:contain;height:16px;width:16px;vertical-align:middle}.user-info .bottom-line{display:-ms-flexbox;display:flex;font-weight:light;font-size:15px}.user-info .bottom-line .user-screen-name{min-width:1px;-ms-flex:0 1 auto;flex:0 1 auto;text-overflow:ellipsis;overflow:hidden;color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info .bottom-line .dailyAvg{min-width:1px;-ms-flex:0 0 auto;flex:0 0 auto;margin-left:1em;font-size:.7em;color:#b9b9ba;color:var(--text,#b9b9ba)}.user-info .bottom-line .staff{-ms-flex:none;flex:none;text-transform:capitalize;color:#b9b9ba;color:var(--alertNeutralText,#b9b9ba);background-color:#182230;background-color:var(--alertNeutral,#182230)}.user-info .user-meta{margin-bottom:.15em;display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;font-size:14px;line-height:22px;-ms-flex-wrap:wrap;flex-wrap:wrap}.user-info .user-meta .following{-ms-flex:1 0 auto;flex:1 0 auto;margin:0;margin-bottom:.25em;text-align:left}.user-info .user-meta .highlighter{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-.5em;-ms-flex-item-align:start;align-self:start}.user-info .user-meta .highlighter .userHighlightCl{padding:2px 10px;-ms-flex:1 0 auto;flex:1 0 auto}.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightSel.select{padding-top:0;padding-bottom:0;-ms-flex:1 0 auto;flex:1 0 auto}.user-info .user-meta .highlighter .userHighlightSel.select i{line-height:22px}.user-info .user-meta .highlighter .userHighlightText{width:70px;-ms-flex:1 0 auto;flex:1 0 auto}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightSel.select,.user-info .user-meta .highlighter .userHighlightText{height:22px;vertical-align:top;margin-right:.5em;margin-bottom:.25em}.user-info .user-interactions{position:relative;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-.75em}.user-info .user-interactions>*{margin:0 .75em .6em 0;white-space:nowrap;min-width:95px}.user-info .user-interactions button{margin:0}.user-counts{display:-ms-flexbox;display:flex;line-height:16px;padding:.5em 1.5em 0;text-align:center;-ms-flex-pack:justify;justify-content:space-between;color:#b9b9ba;color:var(--lightText,#b9b9ba);-ms-flex-wrap:wrap;flex-wrap:wrap}.user-count{-ms-flex:1 0 auto;flex:1 0 auto;padding:.5em 0;margin:0 .5em}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_avatar.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6b6f3617\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".avatar.still-image{width:48px;height:48px;box-shadow:var(--avatarStatusShadow);border-radius:4px;border-radius:var(--avatarRadius,4px)}.avatar.still-image img{width:100%;height:100%}.avatar.still-image.better-shadow{box-shadow:var(--avatarStatusShadowInset);filter:var(--avatarStatusShadowFilter)}.avatar.still-image.animated:before{display:none}.avatar.still-image.avatar-compact{width:32px;height:32px;border-radius:10px;border-radius:var(--avatarAltRadius,10px)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./still-image.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"24ab97e0\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".still-image{position:relative;line-height:0;overflow:hidden;width:100%;height:100%}.still-image:hover canvas{display:none}.still-image img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.still-image.animated:hover:before,.still-image.animated img{visibility:hidden}.still-image.animated:hover img{visibility:visible}.still-image.animated:before{content:\\\"gif\\\";position:absolute;line-height:10px;font-size:10px;top:5px;left:5px;background:hsla(0,0%,50%,.5);color:#fff;display:block;padding:2px 4px;border-radius:5px;border-radius:var(--tooltipRadius,5px);z-index:2}.still-image canvas{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./remote_follow.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4852bbb4\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".remote-follow{max-width:220px}.remote-follow .remote-button{width:100%;min-height:28px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./moderation_tools.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c0672fc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".menu-checkbox{float:right;min-width:22px;max-width:22px;min-height:22px;max-height:22px;line-height:22px;text-align:center;border-radius:0;background-color:#182230;background-color:var(--input,#182230);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow)}.menu-checkbox.menu-checkbox-checked:after{content:\\\"\\\\2714\\\"}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:-ms-flexbox!important;display:flex!important;height:100%}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./dialog_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"56d82e88\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dark-overlay:before{bottom:0;content:\\\" \\\";left:0;right:0;background:rgba(27,31,35,.5);z-index:99}.dark-overlay:before,.dialog-modal.panel{display:block;cursor:default;position:fixed;top:0}.dialog-modal.panel{left:50%;max-height:80vh;max-width:90vw;margin:15vh auto;transform:translateX(-50%);z-index:999;background-color:#121a24;background-color:var(--bg,#121a24)}.dialog-modal.panel .dialog-modal-heading{padding:.5em;margin-right:auto;margin-bottom:0;white-space:nowrap;color:var(--panelText);background-color:#182230;background-color:var(--panel,#182230)}.dialog-modal.panel .dialog-modal-heading .title{margin-bottom:0;text-align:center}.dialog-modal.panel .dialog-modal-content{margin:0;padding:1rem;background-color:#121a24;background-color:var(--bg,#121a24);white-space:normal}.dialog-modal.panel .dialog-modal-footer{margin:0;padding:.5em;background-color:#121a24;background-color:var(--bg,#121a24);border-top:1px solid #222;border-top:1px solid var(--border,#222);display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.dialog-modal.panel .dialog-modal-footer button{width:auto;margin-left:.5rem}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./account_actions.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8c9d5016\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".account-actions{margin:0 .8em}.account-actions button.dropdown-item{margin-left:0}.account-actions .trigger-button{color:#b9b9ba;color:var(--lightText,#b9b9ba);opacity:.8;cursor:pointer}.account-actions .trigger-button:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./avatar_list.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7096a06e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".avatars{display:-ms-flexbox;display:flex;margin:0;padding:0;-ms-flex-wrap:wrap;flex-wrap:wrap;height:24px}.avatars .avatars-item{margin:0 0 5px 5px}.avatars .avatars-item:first-child{padding-left:5px}.avatars .avatars-item .avatar-small{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:24px;width:24px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./status_content.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"af4a4f5c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".status-body{-ms-flex:1;flex:1;min-width:0}.status-body .tall-status{position:relative;height:220px;overflow-x:hidden;overflow-y:hidden;z-index:1}.status-body .tall-status .status-content{height:100%;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude}.status-body .tall-status-hider{position:absolute;height:70px;margin-top:150px;line-height:110px;z-index:2}.status-body .cw-status-hider,.status-body .status-unhider,.status-body .tall-status-hider{display:inline-block;word-break:break-all;width:100%;text-align:center}.status-body .status-content{font-family:var(--postFont,sans-serif);line-height:1.4em;white-space:pre-wrap}.status-body .status-content img,.status-body .status-content video{max-width:100%;max-height:400px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-body .status-content img.emoji,.status-body .status-content video.emoji{width:32px;height:32px}.status-body .status-content blockquote{margin:.2em 0 .2em 2em;font-style:italic}.status-body .status-content pre{overflow:auto}.status-body .status-content code,.status-body .status-content kbd,.status-body .status-content pre,.status-body .status-content samp,.status-body .status-content var{font-family:var(--postCodeFont,monospace)}.status-body .status-content p{margin:0 0 1em}.status-body .status-content p:last-child{margin:0}.status-body .status-content h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.status-body .status-content h2{font-size:1.1em;margin:1em 0}.status-body .status-content h3{font-size:1em;margin:1.2em 0}.status-body .status-content h4{margin:1.1em 0}.greentext{color:#0fa00f;color:var(--cGreen,#0fa00f)}.timeline :not(.panel-disabled)>.status-el:last-child{border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px);border-bottom:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./attachment.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"60b296ca\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".attachments{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.attachments .attachment.media-upload-container{-ms-flex:0 0 auto;flex:0 0 auto;max-height:200px;max-width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.attachments .attachment.media-upload-container video{max-width:100%}.attachments .placeholder{margin-right:8px;margin-bottom:4px;color:#d8a070;color:var(--postLink,#d8a070)}.attachments .nsfw-placeholder{cursor:pointer}.attachments .nsfw-placeholder.loading{cursor:progress}.attachments .attachment{position:relative;margin-top:.5em;-ms-flex-item-align:start;align-self:flex-start;line-height:0;border-radius:10px;border-radius:var(--attachmentRadius,10px);border-color:#222;border:1px solid var(--border,#222);overflow:hidden}.attachments .non-gallery.attachment.video{-ms-flex:1 0 40%;flex:1 0 40%}.attachments .non-gallery.attachment .nsfw{height:260px}.attachments .non-gallery.attachment .small{height:120px;-ms-flex-positive:0;flex-grow:0}.attachments .non-gallery.attachment .video{height:260px;display:-ms-flexbox;display:flex}.attachments .non-gallery.attachment video{max-height:100%;-o-object-fit:contain;object-fit:contain}.attachments .fullwidth{-ms-flex-preferred-size:100%;flex-basis:100%}.attachments.video{line-height:0}.attachments .video-container{display:-ms-flexbox;display:flex;max-height:100%}.attachments .video{width:100%;height:100%}.attachments .play-icon{position:absolute;font-size:64px;top:calc(50% - 32px);left:calc(50% - 32px);color:hsla(0,0%,100%,.75);text-shadow:0 0 2px rgba(0,0,0,.4)}.attachments .play-icon:before{margin:0}.attachments.html{-ms-flex-preferred-size:90%;flex-basis:90%;width:100%;display:-ms-flexbox;display:flex}.attachments .hider{position:absolute;right:0;white-space:nowrap;margin:10px;padding:5px;background:hsla(0,0%,90%,.6);font-weight:700;z-index:4;line-height:1;border-radius:5px;border-radius:var(--tooltipRadius,5px)}.attachments video{z-index:0}.attachments audio{width:100%}.attachments img.media-upload{line-height:0;max-height:200px;max-width:100%}.attachments .oembed{line-height:1.2em;-ms-flex:1 0 100%;flex:1 0 100%;width:100%;margin-right:15px;display:-ms-flexbox;display:flex}.attachments .oembed img{width:100%}.attachments .oembed .image{-ms-flex:1;flex:1}.attachments .oembed .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.attachments .oembed .text{-ms-flex:2;flex:2;margin:8px;word-break:break-all}.attachments .oembed .text h1{font-size:14px;margin:0}.attachments .image-attachment{width:100%;height:100%}.attachments .image-attachment.hidden{display:none}.attachments .image-attachment .nsfw{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.attachments .image-attachment img{image-orientation:from-image}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./poll.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1a8b173f\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".poll .votes{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .option-result{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;color:#b9b9ba;color:var(--lightText,#b9b9ba)}.poll .option-result-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.1em .25em;z-index:1}.poll .result-percentage{width:3.5em;-ms-flex-negative:0;flex-shrink:0}.poll .result-fill{height:100%;position:absolute;color:#b9b9ba;color:var(--pollText,#b9b9ba);background-color:#151e2a;background-color:var(--poll,#151e2a);border-radius:10px;border-radius:var(--panelRadius,10px);top:0;left:0;transition:width .5s}.poll .option-vote{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.poll input{width:3.5em}.poll .footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.poll.loading *{cursor:progress}.poll .poll-vote-button{padding:0 .5em;margin-right:.5em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./gallery.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6c9d5cbc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".gallery-row{position:relative;height:0;width:100%;-ms-flex-positive:1;flex-grow:1;margin-top:.5em}.gallery-row .gallery-row-inner{position:absolute;top:0;left:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-line-pack:stretch;align-content:stretch}.gallery-row .attachment.image{margin:0 .5em 0 0;-ms-flex-positive:1;flex-grow:1;height:100%;box-sizing:border-box;min-width:2em}.gallery-row .attachment.image:last-child{margin:0}.gallery-row .image-attachment{width:100%;height:100%}.gallery-row .video-container{height:100%}.gallery-row.contain-fit canvas,.gallery-row.contain-fit img,.gallery-row.contain-fit video{-o-object-fit:contain;object-fit:contain}.gallery-row.cover-fit canvas,.gallery-row.cover-fit img,.gallery-row.cover-fit video{-o-object-fit:cover;object-fit:cover}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./link-preview.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c13d6bee\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".link-preview-card{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;cursor:pointer;overflow:hidden;margin-top:.5em;color:#b9b9ba;color:var(--text,#b9b9ba);border-radius:10px;border-radius:var(--attachmentRadius,10px);border-color:#222;border:1px solid var(--border,#222)}.link-preview-card .card-image{-ms-flex-negative:0;flex-shrink:0;width:120px;max-width:25%}.link-preview-card .card-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:10px;border-radius:var(--attachmentRadius,10px)}.link-preview-card .small-image{width:80px}.link-preview-card .card-content{max-height:100%;margin:.5em;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.link-preview-card .card-host{font-size:12px}.link-preview-card .card-description{margin:.5em 0 0;overflow:hidden;text-overflow:ellipsis;word-break:break-word;line-height:1.2em;max-height:calc(1.2em * 3 - 1px)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./status_popover.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"14cff5b4\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".status-popover{font-size:1rem;min-width:15em;max-width:95%;border-color:#222;border:1px solid var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);box-shadow:2px 2px 3px rgba(0,0,0,.5);box-shadow:var(--popupShadow)}.status-popover .status-el.status-el{border:none}.status-popover .status-preview-no-content{padding:1em;text-align:center}.status-popover .status-preview-no-content i{font-size:2em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./emoji_reactions.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"cf35b50a\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".emoji-reactions{display:-ms-flexbox;display:flex;margin-top:.25em;-ms-flex-wrap:wrap;flex-wrap:wrap}.reacted-users{padding:.5em}.reacted-user{padding:.25em;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.reacted-user .reacted-user-names{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-left:.5em;min-width:5em}.reacted-user .reacted-user-names img{width:1em;height:1em}.reacted-user .reacted-user-screen-name{font-size:9px}.emoji-reaction{padding:0 .5em;margin-right:.5em;margin-top:.5em;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box}.emoji-reaction .reaction-emoji{width:1.25em;margin-right:.25em}.emoji-reaction:focus{outline:none}.emoji-reaction.not-clickable{cursor:default}.emoji-reaction.not-clickable:hover{box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow)}.emoji-reaction-expand{padding:0 .5em;margin-right:.5em;margin-top:.5em;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.emoji-reaction-expand:hover{text-decoration:underline}.picked-reaction{border:1px solid var(--accent,#d8a070);margin-left:-1px;margin-right:calc(.5em - 1px)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./conversation.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"93498d0a\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeline .panel-disabled .status-el{border-left:none;border-bottom-width:1px;border-bottom-style:solid;border-color:var(--border,#222);border-radius:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./notifications.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"87e1cf2e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".notifications:not(.minimal){padding-bottom:15em}.notifications .loadmore-error{color:#b9b9ba;color:var(--text,#b9b9ba)}.notifications .notification{position:relative}.notifications .notification .notification-overlay{position:absolute;top:0;right:0;left:0;bottom:0;pointer-events:none}.notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification,red) 4px,transparent 10px)}.notification{box-sizing:border-box;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222)}.notification:hover .animated.avatar canvas{display:none}.notification:hover .animated.avatar img{visibility:visible}.notification .muted{padding:.25em .6em}.notification .non-mention{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:.6em;min-width:0}.notification .non-mention .avatar-container{width:32px;height:32px}.notification .non-mention .status-el{padding:0}.notification .non-mention .status-el .status{padding:.25em 0;color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.notification .non-mention .status-el .status a{color:var(--faintLink)}.notification .non-mention .status-el .status .status-content a{color:var(--postFaintLink)}.notification .non-mention .status-el .media-body{margin:0}.notification .follow-request-accept{cursor:pointer}.notification .follow-request-accept:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}.notification .follow-request-reject{cursor:pointer}.notification .follow-request-reject:hover{color:red;color:var(--cRed,red)}.notification .follow-text,.notification .move-text{padding:.5em 0;overflow-wrap:break-word;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.notification .follow-text .follow-name,.notification .move-text .follow-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification .status-el{-ms-flex:1;flex:1}.notification time{white-space:nowrap}.notification .notification-right{-ms-flex:1;flex:1;padding-left:.8em;min-width:0}.notification .emoji-reaction-emoji{font-size:16px}.notification .notification-details{min-width:0;word-wrap:break-word;line-height:18px;position:relative;overflow:hidden;width:100%;-ms-flex:1 1 0px;flex:1 1 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:justify;justify-content:space-between}.notification .notification-details .name-and-action{-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.notification .notification-details .username{font-weight:bolder;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.notification .notification-details .username img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.notification .notification-details .timeago{margin-right:.2em}.notification .notification-details .icon-retweet.lit{color:#0fa00f;color:var(--cGreen,#0fa00f)}.notification .notification-details .icon-reply.lit,.notification .notification-details .icon-user-plus.lit,.notification .notification-details .icon-user.lit{color:#0095ff;color:var(--cBlue,#0095ff)}.notification .notification-details .icon-star.lit{color:orange;color:var(--cOrange,orange)}.notification .notification-details .icon-arrow-curved.lit{color:#0095ff;color:var(--cBlue,#0095ff)}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{word-break:break-all;margin:0 0 .3em;padding:0;font-size:1em;line-height:20px}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0;margin-top:0;margin-bottom:.3em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_list.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3a6f72a2\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".truncated-text-wrapper{overflow-x:hidden;display:-ms-flexbox;display:flex}.truncated-text-wrapper .truncated-text{-ms-flex:1;flex:1;overflow-x:hidden;word-wrap:break-word;white-space:nowrap;text-overflow:ellipsis}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_list_item.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"33c6b65e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".chat-list-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:.75em;height:4.85em;overflow:hidden;box-sizing:border-box;cursor:pointer}.chat-list-item:hover .animated.avatar canvas{display:none}.chat-list-item:hover .animated.avatar img{visibility:visible}.chat-list-item :focus{outline:none}.chat-list-item:hover{background-color:var(--selectedPost,#151e2a);box-shadow:0 0 3px 1px rgba(0,0,0,.1)}.chat-list-item .chat-list-item-left{margin-right:1em}.chat-list-item .chat-list-item-center{width:100%;box-sizing:border-box;overflow:hidden;word-wrap:break-word}.chat-list-item .chat-list-item-center .chat-preview{display:-ms-inline-flexbox;display:inline-flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:.35rem 0;height:16px;color:#b9b9ba;color:var(--faintText,#b9b9ba);width:100%;-ms-flex-pack:justify;justify-content:space-between;line-height:1em}.chat-list-item .chat-list-item-center .chat-preview .unread-indicator-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-left:10px}.chat-list-item .chat-list-item-center .chat-preview .unread-indicator-wrapper .unread-indicator{border-radius:100%;height:8px;width:8px;background-color:#d8a070;background-color:var(--link,#d8a070)}.chat-list-item .chat-list-item-center .chat-preview .content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-flex:1;flex:1;margin-right:15px}.chat-list-item .chat-list-item-center .chat-preview .faint-link{color:var(--faintLink,#d8a070);text-decoration:none}.chat-list-item .chat-list-item-center .chat-preview .account-name{min-width:1.6em;margin-right:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--faintLink,#d8a070)}.chat-list-item .chat-list-item-center .chat-preview .user-name{margin-right:.4em;-ms-flex-negative:1;flex-shrink:1;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden;-ms-flex-negative:0;flex-shrink:0;max-width:55%;font-weight:700}.chat-list-item .chat-list-item-center .chat-preview .user-name img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.chat-list-item .chat-list-item-center .chat-preview a{color:#d8a070;color:var(--faintLink,#d8a070)}.chat-list-item .chat-list-item-center .chat-preview p{margin:0;display:inline;word-wrap:break-word;white-space:nowrap;text-overflow:ellipsis}.chat-list-item .chat-list-item-center .chat-preview img,.chat-list-item .chat-list-item-center .chat-preview video{max-width:100%;max-height:400px;vertical-align:middle}.chat-list-item .chat-list-item-center .chat-preview img.emoji,.chat-list-item .chat-list-item-center .chat-preview video.emoji{width:1.125rem;height:1.125rem}.chat-list-item .chat-list-item-center .heading{width:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:justify;justify-content:space-between;line-height:1em}.chat-list-item .chat-list-item-center .heading .heading-right{white-space:nowrap}.chat-list-item .chat-list-item-center .heading .member-count{color:#b9b9ba;color:var(--faintText,#b9b9ba);margin-right:2px}.chat-list-item .chat-list-item-center .heading .name-and-account-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-ms-flex-negative:1;flex-shrink:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_avatar.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4ffdfc4a\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".direct-conversation-multi-user-avatar{position:relative;cursor:pointer;width:48px;height:48px;border-radius:50%;overflow:hidden}.direct-conversation-multi-user-avatar .avatar.still-image{width:50%;height:50%;border-radius:0}.direct-conversation-multi-user-avatar .avatar.still-image canvas,.direct-conversation-multi-user-avatar .avatar.still-image img{-o-object-fit:cover;object-fit:cover}.direct-conversation-multi-user-avatar .avatar.still-image.avatar-first{float:right;position:absolute;bottom:0}.direct-conversation-multi-user-avatar .avatar.still-image.avatar-second{float:right}.direct-conversation-multi-user-avatar .avatar.still-image.avatar-third{float:right;position:absolute}.direct-conversation-multi-user-avatar .avatar.still-image.avatar-fourth{float:right;position:absolute;bottom:0;right:0}.direct-conversation-avatar{display:inline-block;vertical-align:middle}.direct-conversation-avatar.single-user{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.direct-conversation-avatar .avatar.still-image{width:48px;height:48px;box-shadow:var(--avatarStatusShadow);border-radius:0}.direct-conversation-avatar .avatar.still-image.better-shadow{box-shadow:var(--avatarStatusShadowInset);filter:var(--avatarStatusShadowFilter)}.direct-conversation-avatar .avatar.still-image.animated:before{display:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_title.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3dcd538d\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".direct-conversation-title{overflow:hidden;text-overflow:ellipsis}.direct-conversation-title .username{max-width:100%;text-overflow:ellipsis;white-space:nowrap;display:inline;word-wrap:break-word}.direct-conversation-title .username img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_new.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ca48b176\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".direct-conversation-new .panel-heading{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.direct-conversation-new .btn{padding-left:1em;padding-right:1em}.direct-conversation-new .selected-user-list{padding-left:.7em;padding-top:.5em}.direct-conversation-new .selected-user-list .selected-user{cursor:pointer;display:inline-block;border:1px solid;border-color:#d8a070;border-color:var(--link,#d8a070);color:#d8a070;color:var(--link,#d8a070);padding:.5em;border-radius:10px;border-radius:var(--attachmentRadius,10px);margin-right:.5em;margin-top:.5em;margin-bottom:.5em}.direct-conversation-new .selected-user-list .selected-user:hover{background-color:var(--selectedPost,#151e2a)}.direct-conversation-new .selected-user-list .notice-dismissible{padding-right:2.3rem;position:relative}.direct-conversation-new .selected-user-list .notice-dismissible .dismiss{position:absolute;top:0;right:0;padding:.35em;color:inherit}.direct-conversation-new .selected-user-list .notice-dismissible .dismiss i{color:#d8a070;color:var(--link,#d8a070)}.direct-conversation-new .member-list{padding-bottom:.67rem}.direct-conversation-new .member-list .user-card-wrap .basic-user-card:hover{cursor:pointer;background-color:var(--selectedPost,#151e2a)}.direct-conversation-new .input-wrap{display:-ms-flexbox;display:flex;margin:.7em .5em}.direct-conversation-new .input-wrap .button-icon{font-size:1.5em;float:right;margin-right:.3em}.direct-conversation-new .input-wrap .btn{margin:0 .7em;width:6em}.direct-conversation-new .input-wrap input{width:100%}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./basic_user_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"119ab786\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".basic-user-card{display:-ms-flexbox;display:flex;-ms-flex:1 0;flex:1 0;margin:0;padding:.6em 1em}.basic-user-card-collapsed-content{margin-left:.7em;text-align:left;-ms-flex:1;flex:1;min-width:0}.basic-user-card-user-name img{-o-object-fit:contain;object-fit:contain;height:16px;width:16px;vertical-align:middle}.basic-user-card-screen-name,.basic-user-card-user-name-value{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.basic-user-card-expanded-content{-ms-flex:1;flex:1;margin-left:.7em;min-width:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./list.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"33745640\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".list-item:not(:last-child){border-bottom:1px solid;border-bottom-color:#222;border-bottom-color:var(--border,#222)}.list-empty-content{text-align:center;padding:10px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0f673926\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".direct-conversation-view{display:-ms-flexbox;display:flex;height:calc(100vh - 60px);width:100%}.direct-conversation-view .direct-conversation-view-inner{height:auto;width:100%;overflow:visible;display:-ms-flexbox;display:flex;margin-top:.5em;margin-left:.5em;margin-right:.5em}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body{background-color:var(--chatBg,#121a24);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;overflow:visible;border-radius:none;min-height:100%;margin:0;border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body.panel:after{border-radius:0;box-shadow:none}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .direct-conversation-view-heading{-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;top:50px;display:-ms-flexbox;display:flex;z-index:2;border-radius:none;position:-webkit-sticky;position:sticky}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .direct-conversation-view-heading .button-icon{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;align-items:center}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .direct-conversation-view-heading .go-back-button{cursor:pointer;margin-right:.7em}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .direct-conversation-view-heading .go-back-button i{color:#d8a070;color:var(--panelLink,#d8a070)}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .direct-conversation-view-heading .title{-ms-flex-negative:1;overflow:hidden;line-height:28px;flex-shrink:1;margin-right:0;text-overflow:ellipsis;white-space:nowrap;-ms-flex-negative:0;flex-shrink:0;max-width:80%;display:-ms-grid;display:grid;display:-ms-flexbox;display:flex}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .scrollable{padding:0 10px;height:100%;overflow-y:scroll;overflow-x:hidden;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .footer{position:-webkit-sticky;position:sticky;bottom:0}@media (max-width:800px){.direct-conversation-view{height:100%;overflow:hidden}.direct-conversation-view .direct-conversation-view-inner{overflow:hidden;height:100%;margin-top:0;margin-left:0;margin-right:0}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body{display:-ms-flexbox;display:flex;min-height:auto;overflow:hidden;height:100%;margin:0;border-radius:0!important}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .direct-conversation-view-heading{position:static;z-index:9999;top:0;margin-top:0;border-radius:0}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .scrollable{display:unset;overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .footer{position:relative;bottom:auto}.direct-conversation-view .direct-conversation-view-inner .direct-conversation-view-body .footer .post-status-form form{padding:0}}.jump-to-bottom-button{width:2.5em;height:2.5em;border-radius:100%;position:absolute;right:1.3em;top:-3.2em;background-color:#182230;background-color:var(--btn,#182230);display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;box-shadow:0 1px 1px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.3);z-index:10;transition:all .35s;transition-timing-function:cubic-bezier(0,1,.5,1);opacity:0;visibility:hidden;cursor:pointer}.jump-to-bottom-button.visible{opacity:1;visibility:visible}.jump-to-bottom-button i{font-size:1em;color:#b9b9ba;color:var(--text,#b9b9ba)}.jump-to-bottom-button .new-messages-alert-dot{left:50%;transform:translate(-50%);border-radius:100%;height:1.3em;width:1.3em;position:absolute;top:calc(50% - 8px);text-align:center;font-style:normal;font-weight:bolder;margin-top:-1rem;font-size:.8em;background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_message.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"20b81e5e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".direct-conversation-status-wrapper.sequence-hovered .animated.avatar canvas{display:none}.direct-conversation-status-wrapper.sequence-hovered .animated.avatar img{visibility:visible}.direct-conversation-status-wrapper:last-child{margin-bottom:16px}.direct-conversation-status-wrapper .media-heading{margin-left:43px;margin-bottom:4px}.direct-conversation-status-wrapper .status{padding:.75em}.direct-conversation-status-wrapper .status .chat-message-menu{transition:opacity .1s;opacity:0}.direct-conversation-status-wrapper .status .chat-message-menu button{padding-top:3px;padding-bottom:3px}.direct-conversation-status-wrapper .status .icon-ellipsis{cursor:pointer}.direct-conversation-status-wrapper .status .icon-ellipsis:hover,.extra-button-popover.open .direct-conversation-status-wrapper .status .icon-ellipsis{color:#b9b9ba;color:var(--text,#b9b9ba)}.direct-conversation-status-wrapper .direct-conversation{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;border-left-width:0;min-width:0;display:-ms-flexbox;display:flex;width:100%;padding-bottom:7px}.direct-conversation-status-wrapper .direct-conversation .avatar-wrapper{margin-right:10px;width:32px;position:relative}.direct-conversation-status-wrapper .direct-conversation .attachments,.direct-conversation-status-wrapper .direct-conversation .link-preview{margin-bottom:.9em}.direct-conversation-status-wrapper .direct-conversation .status-content{line-height:1.4em}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;max-width:80%;width:100%;position:relative;float:right;min-width:10rem}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .trigger{width:100%}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .popover{width:12rem}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .popover .tooltip-arrow.popover-arrow{left:calc(100% - 30px)!important}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .poll{margin-bottom:1em}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner.with-media{width:100%}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner.with-media .gallery-row{overflow:hidden}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner.with-media .status{width:100%}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .status{box-sizing:border-box;border-radius:10px;border-radius:var(--chatMessageRadius,10px)}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .created-at{float:right;font-size:.8em;margin:-10px 0 -5px 4px;position:relative;font-style:italic;opacity:.8}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .created-at a{color:var(--chatMessageOutgoingText,#b9b9ba)}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .created-at :before{font-size:1em}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .status-content{white-space:normal}.direct-conversation-status-wrapper .direct-conversation .direct-conversation-inner .status-content:after{margin-right:75px;content:\\\" \\\";display:inline-block}.direct-conversation-status-wrapper .direct-conversation.incoming .status{background-color:var(--chatMessageIncomingBg,#121a24);border:1px solid var(--chatMessageIncomingBorder,--border);color:var(--chatMessageIncomingText,#b9b9ba)}.direct-conversation-status-wrapper .direct-conversation.incoming .status a{color:var(--chatMessageIncomingLink,#d8a070)}.direct-conversation-status-wrapper .direct-conversation.incoming .created-at a{color:var(--chatMessageIncomingText,#b9b9ba)}.direct-conversation-status-wrapper .direct-conversation.outgoing{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:end;align-content:end;-ms-flex-pack:end;justify-content:flex-end}.direct-conversation-status-wrapper .direct-conversation.outgoing a{color:var(--chatMessageOutgoingLink,#d8a070)}.direct-conversation-status-wrapper .direct-conversation.outgoing .status{border:1px solid var(--chatMessageOutgoingBorder,--lightBg);color:var(--chatMessageOutgoingText,#b9b9ba);background-color:var(--chatMessageOutgoingBg,#151e2a)}.direct-conversation-status-wrapper .direct-conversation.outgoing .direct-conversation-inner{-ms-flex-align:end;align-items:flex-end}.date-separator{text-align:center;margin:1.4em 0;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#b9b9ba;color:var(--faintedText,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_profile.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7563b46e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-profile{-ms-flex:2;flex:2;-ms-flex-preferred-size:500px;flex-basis:500px}.user-profile .userlist-placeholder{-ms-flex-align:middle;align-items:middle;padding:2em}.user-profile .timeline-heading,.user-profile .userlist-placeholder{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.user-profile .timeline-heading .alert,.user-profile .timeline-heading .loadmore-button{-ms-flex:1;flex:1}.user-profile .timeline-heading .loadmore-button{height:28px;margin:10px .6em}.user-profile .timeline-heading .loadmore-text,.user-profile .timeline-heading .title{display:none}.user-profile-placeholder .panel-body{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:middle;align-items:middle;padding:7em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./follow_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ae955a70\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".follow-card-content-container{-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:1.5em}.follow-card-follow-button{margin-top:.5em;margin-left:auto;width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./search.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"354d66d6\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".search-result-heading{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));padding:.75rem;text-align:center}@media (max-width:800px){.search-nav-heading .tab-switcher .tabs .tab-wrapper{display:block;-ms-flex-pack:center;justify-content:center;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}}.search-result{box-sizing:border-box;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222)}.search-result-footer{border-width:1px 0 0;border-style:solid;border-color:var(--border,#222);padding:10px;background-color:#182230;background-color:var(--panel,#182230)}.search-input-container{padding:.8rem;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.search-input-container .search-input{width:100%;line-height:1.125rem;font-size:1rem;padding:.5rem;box-sizing:border-box}.search-input-container .search-button{margin-left:.5em}.loading-icon{padding:1em}.trend{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.trend .hashtag{-ms-flex:1 1 auto;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend .count,.trend .hashtag{color:#b9b9ba;color:var(--text,#b9b9ba)}.trend .count{-ms-flex:0 0 auto;flex:0 0 auto;width:2rem;font-size:1.5rem;line-height:2.25rem;font-weight:500;text-align:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./style_switcher.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"16da2560\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".style-switcher .theme-warning{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;margin-bottom:.5em}.style-switcher .theme-warning .buttons .btn{margin-bottom:.5em}.style-switcher .preset-switcher{margin-right:1em}.style-switcher .style-control{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;margin-bottom:5px}.style-switcher .style-control .label{-ms-flex:1;flex:1}.style-switcher .style-control.disabled input,.style-switcher .style-control.disabled select{opacity:.5}.style-switcher .style-control .opt{margin:.5em}.style-switcher .style-control .color-input{-ms-flex:0 0 0px;flex:0 0 0}.style-switcher .style-control input,.style-switcher .style-control select{min-width:3em;margin:0;-ms-flex:0;flex:0}.style-switcher .style-control input[type=number],.style-switcher .style-control select[type=number]{min-width:5em}.style-switcher .style-control input[type=range],.style-switcher .style-control select[type=range]{-ms-flex:1;flex:1;min-width:3em;-ms-flex-item-align:start;align-self:flex-start}.style-switcher .tab-switcher{margin:0 -1em}.style-switcher .reset-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.style-switcher .apply-container,.style-switcher .color-container,.style-switcher .fonts-container,.style-switcher .radius-container,.style-switcher .reset-container{display:-ms-flexbox;display:flex}.style-switcher .fonts-container,.style-switcher .radius-container{-ms-flex-direction:column;flex-direction:column}.style-switcher .color-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}.style-switcher .color-container>h4{width:99%}.style-switcher .color-container,.style-switcher .fonts-container,.style-switcher .presets-container,.style-switcher .radius-container,.style-switcher .shadow-container{margin:1em 1em 0}.style-switcher .tab-header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:baseline;align-items:baseline;width:100%;min-height:30px;margin-bottom:1em}.style-switcher .tab-header .btn{min-width:1px;-ms-flex:0 auto;flex:0 auto;padding:0 1em}.style-switcher .tab-header p{-ms-flex:1;flex:1;margin:0;margin-right:.5em}.style-switcher .shadow-selector .override{-ms-flex:1;flex:1;margin-left:.5em}.style-switcher .shadow-selector .select-container{margin-top:-4px;margin-bottom:-3px}.style-switcher .save-load,.style-switcher .save-load-options{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:baseline;align-items:baseline;-ms-flex-wrap:wrap;flex-wrap:wrap}.style-switcher .save-load-options .import-export,.style-switcher .save-load-options .presets,.style-switcher .save-load .import-export,.style-switcher .save-load .presets{margin-bottom:.5em}.style-switcher .save-load-options .import-export,.style-switcher .save-load .import-export{display:-ms-flexbox;display:flex}.style-switcher .save-load-options .override,.style-switcher .save-load .override{margin-left:.5em}.style-switcher .save-load-options{-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:.5em;-ms-flex-pack:center;justify-content:center}.style-switcher .save-load-options .keep-option{margin:0 .5em .5em;min-width:25%}.style-switcher .preview-container{border-top:1px dashed;border-bottom:1px dashed;border-color:#222;border-color:var(--border,#222);margin:1em -1em 0;padding:1em;background:var(--body-background-image);background-size:cover;background-position:50% 50%}.style-switcher .preview-container .dummy .post{font-family:var(--postFont);display:-ms-flexbox;display:flex}.style-switcher .preview-container .dummy .post .content{-ms-flex:1;flex:1}.style-switcher .preview-container .dummy .post .content h4{margin-bottom:.25em}.style-switcher .preview-container .dummy .post .content .icons{margin-top:.5em;display:-ms-flexbox;display:flex}.style-switcher .preview-container .dummy .post .content .icons i{margin-right:1em}.style-switcher .preview-container .dummy .after-post{margin-top:1em;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.style-switcher .preview-container .dummy .avatar,.style-switcher .preview-container .dummy .avatar-alt{background:linear-gradient(135deg,#b8e1fc,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd);color:#000;font-family:sans-serif;text-align:center;margin-right:1em}.style-switcher .preview-container .dummy .avatar-alt{-ms-flex:0 auto;flex:0 auto;margin-left:28px;font-size:12px;min-width:20px;min-height:20px;line-height:20px;border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.style-switcher .preview-container .dummy .avatar{-ms-flex:0 auto;flex:0 auto;width:48px;height:48px;font-size:14px;line-height:48px}.style-switcher .preview-container .dummy .actions{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}.style-switcher .preview-container .dummy .actions .checkbox{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline;margin-right:1em;-ms-flex:1;flex:1}.style-switcher .preview-container .dummy .separator{margin:1em;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222)}.style-switcher .preview-container .dummy .panel-heading .alert,.style-switcher .preview-container .dummy .panel-heading .badge,.style-switcher .preview-container .dummy .panel-heading .btn,.style-switcher .preview-container .dummy .panel-heading .faint{margin-left:1em;white-space:nowrap}.style-switcher .preview-container .dummy .panel-heading .faint{text-overflow:ellipsis;min-width:2em;overflow-x:hidden}.style-switcher .preview-container .dummy .panel-heading .flex-spacer{-ms-flex:1;flex:1}.style-switcher .preview-container .dummy .btn{margin-left:0;padding:0 1em;min-width:3em;min-height:30px}.style-switcher .apply-container{-ms-flex-pack:center;justify-content:center}.style-switcher .color-item,.style-switcher .radius-item{min-width:20em;margin:5px 6px 0 0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 1 0px;flex:1 1 0}.style-switcher .color-item.wide,.style-switcher .radius-item.wide{min-width:60%}.style-switcher .color-item:not(.wide):nth-child(odd),.style-switcher .radius-item:not(.wide):nth-child(odd){margin-right:7px}.style-switcher .color-item .color,.style-switcher .color-item .opacity,.style-switcher .radius-item .color,.style-switcher .radius-item .opacity{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}.style-switcher .radius-item{-ms-flex-preferred-size:auto;flex-basis:auto}.style-switcher .theme-color-cl,.style-switcher .theme-radius-rn{border:0;box-shadow:none;background:transparent;color:var(--faint,hsla(240,1%,73%,.5));-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.style-switcher .theme-color-cl,.style-switcher .theme-color-in,.style-switcher .theme-radius-in{margin-left:4px}.style-switcher .theme-radius-in{min-width:1em;max-width:7em;-ms-flex:1;flex:1}.style-switcher .theme-radius-lb{max-width:50em}.style-switcher .theme-preview-content{padding:20px}.style-switcher .btn{margin-left:.25em;margin-right:.25em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./color_input.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7e57f952\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".color-input,.color-input-field.input{display:-ms-inline-flexbox;display:inline-flex}.color-input-field.input{-ms-flex:0 0 0px;flex:0 0 0;max-width:9em;-ms-flex-align:stretch;align-items:stretch;padding:.2em 8px}.color-input-field.input input{background:none;color:#b9b9ba;color:var(--inputText,#b9b9ba);border:none;padding:0;margin:0}.color-input-field.input input.textColor{-ms-flex:1 0 3em;flex:1 0 3em;min-width:3em;padding:0}.color-input-field.input .computedIndicator,.color-input-field.input .transparentIndicator,.color-input-field.input input.nativeColor{-ms-flex:0 0 2em;flex:0 0 2em;min-width:2em;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;height:100%}.color-input-field.input .transparentIndicator{background-color:#f0f;position:relative}.color-input-field.input .transparentIndicator:after,.color-input-field.input .transparentIndicator:before{display:block;content:\\\"\\\";background-color:#000;position:absolute;height:50%;width:50%}.color-input-field.input .transparentIndicator:after{top:0;left:0}.color-input-field.input .transparentIndicator:before{bottom:0;right:0}.color-input .label{-ms-flex:1 1 auto;flex:1 1 auto}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=1!./color_input.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6c632637\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".color-control input.text-input{max-width:7em;-ms-flex:1;flex:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./shadow_control.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d219da80\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".shadow-control{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin-bottom:1em}.shadow-control .shadow-preview-container,.shadow-control .shadow-tweak{margin:5px 6px 0 0}.shadow-control .shadow-preview-container{-ms-flex:0;flex:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.shadow-control .shadow-preview-container input[type=number]{width:5em;min-width:2em}.shadow-control .shadow-preview-container .x-shift-control,.shadow-control .shadow-preview-container .y-shift-control{display:-ms-flexbox;display:flex;-ms-flex:0;flex:0}.shadow-control .shadow-preview-container .x-shift-control[disabled=disabled] *,.shadow-control .shadow-preview-container .y-shift-control[disabled=disabled] *{opacity:.5}.shadow-control .shadow-preview-container .x-shift-control{-ms-flex-align:start;align-items:flex-start}.shadow-control .shadow-preview-container .x-shift-control .wrap,.shadow-control .shadow-preview-container input[type=range]{margin:0;width:15em;height:2em}.shadow-control .shadow-preview-container .y-shift-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:end;align-items:flex-end}.shadow-control .shadow-preview-container .y-shift-control .wrap{width:2em;height:15em}.shadow-control .shadow-preview-container .y-shift-control input[type=range]{transform-origin:1em 1em;transform:rotate(90deg)}.shadow-control .shadow-preview-container .preview-window{-ms-flex:1;flex:1;background-color:#999;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background-image:linear-gradient(45deg,#666 25%,transparent 0),linear-gradient(-45deg,#666 25%,transparent 0),linear-gradient(45deg,transparent 75%,#666 0),linear-gradient(-45deg,transparent 75%,#666 0);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;border-radius:4px;border-radius:var(--inputRadius,4px)}.shadow-control .shadow-preview-container .preview-window .preview-block{width:33%;height:33%;background-color:#121a24;background-color:var(--bg,#121a24);border-radius:10px;border-radius:var(--panelRadius,10px)}.shadow-control .shadow-tweak{-ms-flex:1;flex:1;min-width:280px}.shadow-control .shadow-tweak .id-control{-ms-flex-align:stretch;align-items:stretch}.shadow-control .shadow-tweak .id-control .btn,.shadow-control .shadow-tweak .id-control .select{min-width:1px;margin-right:5px}.shadow-control .shadow-tweak .id-control .btn{padding:0 .4em;margin:0 .1em}.shadow-control .shadow-tweak .id-control .select{-ms-flex:1;flex:1}.shadow-control .shadow-tweak .id-control .select select{-ms-flex-item-align:initial;-ms-grid-row-align:initial;align-self:auto}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./font_control.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d9c0acde\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".font-control input.custom-font{min-width:10em}.font-control.custom .select{border-top-right-radius:0;border-bottom-right-radius:0}.font-control.custom .custom-font{border-top-left-radius:0;border-bottom-left-radius:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./contrast_ratio.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b94bc120\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".contrast-ratio{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;margin-top:-4px;margin-bottom:5px}.contrast-ratio .label{margin-right:1em}.contrast-ratio .rating{display:inline-block;text-align:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./preview.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8d67a4f2\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".preview-container{position:relative}.underlay-preview{position:absolute;top:0;bottom:0;left:10px;right:10px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./export_import.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"66a4eaba\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".import-export-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:center;justify-content:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./registration.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"16815f76\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".registration-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:.6em}.registration-form .container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.registration-form .terms-of-service{-ms-flex:0 1 50%;flex:0 1 50%;margin:.8em}.registration-form .text-fields{margin-top:.6em;-ms-flex:1 0;flex:1 0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:.3em 0;line-height:24px;margin-bottom:1em}.registration-form .form-group--error{animation-name:shakeError;animation-duration:.6s;animation-timing-function:ease-in-out}.registration-form .form-group--error .form--label{color:#f04124;color:var(--cRed,#f04124)}.registration-form .form-error{margin-top:-.7em;text-align:left}.registration-form .form-error span{font-size:12px}.registration-form .form-error ul{list-style:none;padding:0 0 0 5px;margin-top:0}.registration-form .form-error ul li:before{content:\\\"\\\\2022   \\\"}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{max-width:350px;margin-bottom:.4em}.registration-form .btn{margin-top:.6em;height:28px}.registration-form .error{text-align:center}@media (max-width:800px){.registration-form .container{-ms-flex-direction:column-reverse;flex-direction:column-reverse}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./password_reset.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1ef4fd93\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".password-reset-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;margin:.6em}.password-reset-form .container{display:-ms-flexbox;display:flex;-ms-flex:1 0;flex:1 0;-ms-flex-direction:column;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .form-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-bottom:1em;padding:.3em 0;line-height:24px}.password-reset-form .error{text-align:center;animation-name:shakeError;animation-duration:.4s;animation-timing-function:ease-in-out}.password-reset-form .alert{padding:.5em;margin:.3em 0 1em}.password-reset-form .password-reset-required{background-color:var(--alertError,rgba(211,16,20,.5));padding:10px 0}.password-reset-form .notice-dismissible{padding-right:2rem}.password-reset-form .icon-cancel{cursor:pointer}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_settings.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"298db8e1\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".profile-edit .bio{margin:0}.profile-edit .visibility-tray{padding-top:5px}.profile-edit input[type=file]{padding:5px;height:auto}.profile-edit .banner{max-width:100%}.profile-edit .uploading{font-size:1.5em;margin:.25em}.profile-edit .name-changer{width:100%}.profile-edit .bg{max-width:100%}.profile-edit .current-avatar{display:block;width:150px;height:150px;border-radius:4px;border-radius:var(--avatarRadius,4px)}.profile-edit .oauth-tokens{width:100%}.profile-edit .oauth-tokens th{text-align:left}.profile-edit .oauth-tokens .actions{text-align:right}.profile-edit-usersearch-wrapper{padding:1em}.profile-edit-bulk-actions{text-align:right;padding:0 1em;min-height:28px}.profile-edit-bulk-actions button{width:10em}.profile-edit-domain-mute-form{padding:1em;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.profile-edit-domain-mute-form button{-ms-flex-item-align:end;align-self:flex-end;margin-top:1em;width:10em}.profile-edit .setting-subitem{margin-left:1.75em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./image_cropper.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0dfd0b33\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".image-cropper-img-input{display:none}.image-cropper-image-container{position:relative}.image-cropper-image-container img{display:block;max-width:100%}.image-cropper-buttons-wrapper{margin-top:10px}.image-cropper-buttons-wrapper button{margin-top:5px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./block_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"211aa67c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".block-card-content-container{margin-top:.5em;text-align:right}.block-card-content-container button{width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mute_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7ea980e0\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mute-card-content-container{margin-top:.5em;text-align:right}.mute-card-content-container button{width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./domain_mute_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"39a942c3\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".domain-mute-card{-ms-flex:1 0;flex:1 0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding:.6em 1em .6em 0}.domain-mute-card-domain{margin-right:1em;overflow:hidden;text-overflow:ellipsis}.domain-mute-card button{width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./selectable_list.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3724291e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".selectable-list-item-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.selectable-list-item-inner>*{min-width:0}.selectable-list-item-selected-inner{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:var(--selectedMenuText,#b9b9ba);--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon)}.selectable-list-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.6em 0;border-bottom:2px solid;border-bottom-color:#222;border-bottom-color:var(--border,#222)}.selectable-list-header-actions{-ms-flex:1;flex:1}.selectable-list-checkbox-wrapper{padding:0 10px;-ms-flex:none;flex:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./autosuggest.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3a9ec1bf\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".autosuggest{position:relative}.autosuggest-input{display:block;width:100%}.autosuggest-results{position:absolute;left:0;top:100%;right:0;max-height:400px;background-color:#121a24;background-color:var(--bg,#121a24);border-color:#222;border:1px solid var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);border-top-left-radius:0;border-top-right-radius:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);overflow-y:auto;z-index:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./importer.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5bed876c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".importer-uploading{font-size:1.5em;margin:.25em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./exporter.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"432fc7c6\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".exporter-processing{font-size:1.5em;margin:.25em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mfa.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9a989dfe\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".warning{color:orange;color:var(--cOrange,orange)}.mfa-settings .method-item,.mfa-settings .mfa-heading{overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:baseline;align-items:baseline}.mfa-settings .setup-otp{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.mfa-settings .setup-otp .qr-code{-ms-flex:1;flex:1;padding-right:10px}.mfa-settings .setup-otp .verify{-ms-flex:1;flex:1}.mfa-settings .setup-otp .error{margin:4px 0 0}.mfa-settings .setup-otp .confirm-otp-actions button{width:15em;margin-top:5px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mfa_backup_codes.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"12659079\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".warning{color:orange;color:var(--cOrange,orange)}.backup-codes{font-family:var(--postCodeFont,monospace)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./follow_request_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ad510f10\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".follow-request-card-content-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.follow-request-card-content-container button{margin-top:.5em;margin-right:.5em;-ms-flex:1 1;flex:1 1;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./login_form.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"42704024\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".login-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:.6em}.login-form .btn{min-height:28px;width:10em}.login-form .register{-ms-flex:1 1;flex:1 1}.login-form .login-bottom{margin-top:1em;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.login-form .form-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:.3em .5em .6em;line-height:24px}.login-form .form-bottom{display:-ms-flexbox;display:flex;padding:.5em;height:32px}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{margin:.35em;padding:.35em;display:-ms-flexbox;display:flex}.login-form .error{text-align:center;animation-name:shakeError;animation-duration:.4s;animation-timing-function:ease-in-out}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c0040e1\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".floating-chat{position:fixed;right:0;bottom:0;z-index:1000;max-width:25em}.chat-heading{cursor:pointer}.chat-heading .icon-comment-empty{color:#b9b9ba;color:var(--text,#b9b9ba)}.chat-window{overflow-y:auto;overflow-x:hidden;max-height:20em}.chat-window-container{height:100%}.chat-message{display:-ms-flexbox;display:flex;padding:.2em .5em}.chat-avatar img{height:24px;width:24px;border-radius:4px;border-radius:var(--avatarRadius,4px);margin-right:.5em;margin-top:.25em}.chat-input{display:-ms-flexbox;display:flex}.chat-input textarea{-ms-flex:1;flex:1;margin:.6em;min-height:3.5em;resize:none}.chat-panel .title{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./who_to_follow.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c74f4f44\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./about.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7dfaed97\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./features_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"55ca8508\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".features-panel li{line-height:24px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./terms_of_service_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"42aabc98\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tos-content{margin:1em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./staff_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5aa588af\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mrf_transparency_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"72647543\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mrf-section{margin:1em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./remote_user_resolver.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"67a8aa3d\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/index.js?minimize!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../node_modules/sass-loader/lib/loader.js!./App.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5c806d03\", content, true, {});","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"#app{min-height:100vh;max-width:100%;overflow:hidden}.app-bg-wrapper{position:fixed;z-index:-1;height:100%;left:0;right:-20px;background-size:cover;background-repeat:no-repeat;background-position:0 50%}i[class^=icon-]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}h4{margin:0}#content{box-sizing:border-box;padding-top:60px;margin:auto;min-height:100vh;max-width:980px;-ms-flex-line-pack:start;align-content:flex-start}.underlay{background-color:rgba(0,0,0,.15);background-color:var(--underlay,rgba(0,0,0,.15))}.text-center{text-align:center}html{font-size:14px}body{font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);margin:0;color:#b9b9ba;color:var(--text,#b9b9ba);max-width:100vw;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.hidden{display:none}a{text-decoration:none;color:#d8a070;color:var(--link,#d8a070)}button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#182230;background-color:var(--btn,#182230);border:none;border-radius:4px;border-radius:var(--btnRadius,4px);cursor:pointer;box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow);font-size:14px;font-family:sans-serif;font-family:var(--interfaceFont,sans-serif)}button,button i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}button::-moz-focus-inner{border:none}button:hover{box-shadow:0 0 4px hsla(0,0%,100%,.3);box-shadow:var(--buttonHoverShadow)}button:active{box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow);background-color:#182230;background-color:var(--btnPressed,#182230)}button:active,button:active i{color:#b9b9ba;color:var(--btnPressedText,#b9b9ba)}button:disabled{cursor:not-allowed;background-color:#182230;background-color:var(--btnDisabled,#182230)}button:disabled,button:disabled i{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}button.toggled{background-color:#182230;background-color:var(--btnToggled,#182230);box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow)}button.toggled,button.toggled i{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}button.danger{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba);background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5))}.input,.select,input,textarea{border:none;border-radius:4px;border-radius:var(--inputRadius,4px);box-shadow:inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2),inset 0 0 2px 0 #000;box-shadow:var(--inputShadow);background-color:#182230;background-color:var(--input,#182230);color:#b9b9ba;color:var(--inputText,#b9b9ba);font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:14px;margin:0;box-sizing:border-box;display:inline-block;position:relative;height:28px;line-height:16px;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;padding:8px .5em}.input.unstyled,.select.unstyled,input.unstyled,textarea.unstyled{border-radius:0;background:none;box-shadow:none;height:unset}.input.select,.select.select,input.select,textarea.select{padding:0}.input:disabled,.input[disabled=disabled],.select:disabled,.select[disabled=disabled],input:disabled,input[disabled=disabled],textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.input .icon-down-open,.select .icon-down-open,input .icon-down-open,textarea .icon-down-open{position:absolute;top:0;bottom:0;right:5px;height:100%;color:#b9b9ba;color:var(--inputText,#b9b9ba);line-height:28px;z-index:0;pointer-events:none}.input select,.select select,input select,textarea select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#b9b9ba;color:var(--inputText,--text,#b9b9ba);margin:0;padding:0 2em 0 .2em;font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:14px;width:100%;z-index:1;height:28px;line-height:16px}.input[type=range],.select[type=range],input[type=range],textarea[type=range]{background:none;border:none;margin:0;box-shadow:none;-ms-flex:1;flex:1}.input[type=radio],.select[type=radio],input[type=radio],textarea[type=radio]{display:none}.input[type=radio]:checked+label:before,.select[type=radio]:checked+label:before,input[type=radio]:checked+label:before,textarea[type=radio]:checked+label:before{box-shadow:inset 0 0 2px #000,inset 0 0 0 4px #182230;box-shadow:var(--inputShadow),0 0 0 4px var(--fg,#182230) inset;background-color:var(--accent,#d8a070)}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[type=radio]:disabled+label:before,.select[type=radio]:disabled,.select[type=radio]:disabled+label,.select[type=radio]:disabled+label:before,input[type=radio]:disabled,input[type=radio]:disabled+label,input[type=radio]:disabled+label:before,textarea[type=radio]:disabled,textarea[type=radio]:disabled+label,textarea[type=radio]:disabled+label:before{opacity:.5}.input[type=radio]+label:before,.select[type=radio]+label:before,input[type=radio]+label:before,textarea[type=radio]+label:before{-ms-flex-negative:0;flex-shrink:0;display:inline-block;content:\\\"\\\";transition:box-shadow .2s;width:1.1em;height:1.1em;border-radius:100%;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);margin-right:.5em;background-color:#182230;background-color:var(--input,#182230);vertical-align:top;text-align:center;line-height:1.1em;font-size:1.1em;color:transparent;overflow:hidden;box-sizing:border-box}.input[type=checkbox],.select[type=checkbox],input[type=checkbox],textarea[type=checkbox]{display:none}.input[type=checkbox]:checked+label:before,.select[type=checkbox]:checked+label:before,input[type=checkbox]:checked+label:before,textarea[type=checkbox]:checked+label:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.input[type=checkbox]:disabled,.input[type=checkbox]:disabled+label,.input[type=checkbox]:disabled+label:before,.select[type=checkbox]:disabled,.select[type=checkbox]:disabled+label,.select[type=checkbox]:disabled+label:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled+label,input[type=checkbox]:disabled+label:before,textarea[type=checkbox]:disabled,textarea[type=checkbox]:disabled+label,textarea[type=checkbox]:disabled+label:before{opacity:.5}.input[type=checkbox]+label:before,.select[type=checkbox]+label:before,input[type=checkbox]+label:before,textarea[type=checkbox]+label:before{-ms-flex-negative:0;flex-shrink:0;display:inline-block;content:\\\"\\\\2714\\\";transition:color .2s;width:1.1em;height:1.1em;border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);margin-right:.5em;background-color:#182230;background-color:var(--input,#182230);vertical-align:top;text-align:center;line-height:1.1em;font-size:1.1em;color:transparent;overflow:hidden;box-sizing:border-box}option{color:#b9b9ba;color:var(--text,#b9b9ba);background-color:#121a24;background-color:var(--bg,#121a24)}.hide-number-spinner{-moz-appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{opacity:0;display:none}i[class*=icon-]{color:#666;color:var(--icon,#666)}.btn-block{display:block;width:100%}.btn-group{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group button{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.container{-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0 10px}.container,.item{display:-ms-flexbox;display:flex}.item{-ms-flex:1;flex:1;line-height:50px;height:50px;overflow:hidden;-ms-flex-wrap:wrap;flex-wrap:wrap}.item .nav-icon{margin-left:.4em}.item.right{-ms-flex-pack:end;justify-content:flex-end}.auto-size{-ms-flex:1;flex:1}.nav-bar{padding:0;width:100%;-ms-flex-align:center;align-items:center;position:fixed;height:50px;box-sizing:border-box}.nav-bar button,.nav-bar button i[class*=icon-]{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.nav-bar button:active{background-color:#182230;background-color:var(--btnPressedTopBar,#182230);color:#b9b9ba;color:var(--btnPressedTopBarText,#b9b9ba)}.nav-bar button:disabled{color:#b9b9ba;color:var(--btnDisabledTopBarText,#b9b9ba)}.nav-bar button.toggled{color:#b9b9ba;color:var(--btnToggledTopBarText,#b9b9ba);background-color:#182230;background-color:var(--btnToggledTopBar,#182230)}.nav-bar .logo{display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;-ms-flex:0 0 auto;flex:0 0 auto;z-index:-1;transition:opacity;transition-timing-function:ease-out;transition-duration:.1s}.nav-bar .logo,.nav-bar .logo .mask{position:absolute;top:0;bottom:0;left:0;right:0}.nav-bar .logo .mask{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;background-color:#182230;background-color:var(--topBarText,#182230)}.nav-bar .logo img{height:100%;-o-object-fit:contain;object-fit:contain;display:block;-ms-flex:0;flex:0}.nav-bar .inner-nav{position:relative;margin:auto;box-sizing:border-box;padding-left:10px;padding-right:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:970px;flex-basis:970px;height:50px}.nav-bar .inner-nav a,.nav-bar .inner-nav a i{color:#d8a070;color:var(--topBarLink,#d8a070)}main-router{-ms-flex:1;flex:1}.status.compact{color:rgba(0,0,0,.42);font-weight:300}.status.compact p{margin:0;font-size:.8em}.panel{display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:column;flex-direction:column;margin:.5em;background-color:#121a24;background-color:var(--bg,#121a24)}.panel,.panel:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel:after{content:\\\"\\\";position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow)}.panel-body:empty:before{content:\\\"\\\\AF\\\\\\\\_(\\\\30C4)_/\\\\AF\\\";display:block;margin:1em;text-align:center}.panel-heading{display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0;background-size:cover;padding:.6em;text-align:left;line-height:28px;color:var(--panelText);background-color:#182230;background-color:var(--panel,#182230);-ms-flex-align:baseline;align-items:baseline;box-shadow:var(--panelHeaderShadow)}.panel-heading .title{-ms-flex:1 0 auto;flex:1 0 auto;font-size:1.3em}.panel-heading .faint{background-color:transparent;color:hsla(240,1%,73%,.5);color:var(--panelFaint,hsla(240,1%,73%,.5))}.panel-heading .faint-link{color:hsla(240,1%,73%,.5);color:var(--faintLink,hsla(240,1%,73%,.5))}.panel-heading .alert{white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}.panel-heading button{-ms-flex-negative:0;flex-shrink:0}.panel-heading .alert,.panel-heading button{line-height:21px;min-height:0;box-sizing:border-box;margin:0;margin-left:.25em;min-width:1px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.panel-heading button,.panel-heading button i[class*=icon-]{color:#b9b9ba;color:var(--btnPanelText,#b9b9ba)}.panel-heading button:active{background-color:#182230;background-color:var(--btnPressedPanel,#182230);color:#b9b9ba;color:var(--btnPressedPanelText,#b9b9ba)}.panel-heading button:disabled{color:#b9b9ba;color:var(--btnDisabledPanelText,#b9b9ba)}.panel-heading button.toggled{color:#b9b9ba;color:var(--btnToggledPanelText,#b9b9ba)}.panel-heading a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-heading.stub{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel-footer{border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px)}.panel-footer .faint{color:hsla(240,1%,73%,.5);color:var(--panelFaint,hsla(240,1%,73%,.5))}.panel-footer a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-body>p{line-height:18px;padding:1em;margin:0}.container>*{min-width:0}.fa{color:grey}nav{z-index:1000;color:var(--topBarText);background-color:#182230;background-color:var(--topBar,#182230);color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter,.fade-leave-active{opacity:0}.main{-ms-flex-preferred-size:50%;flex-basis:50%;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.sidebar-bounds{-ms-flex:0;flex:0;-ms-flex-preferred-size:35%;flex-basis:35%}.sidebar-flexer{-ms-flex:1;flex:1;-ms-flex-preferred-size:345px;flex-basis:345px;width:365px}.mobile-shown{display:none}@media (min-width:800px){body{overflow-y:scroll}.sidebar-bounds{overflow:hidden;max-height:100vh;width:345px;position:fixed;margin-top:-10px}.sidebar-bounds .sidebar-scroller{height:96vh;width:365px;padding-top:10px;padding-right:50px;overflow-x:hidden;overflow-y:scroll}.sidebar-bounds .sidebar{width:345px}.sidebar-flexer{max-height:96vh;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}}.badge{display:inline-block;border-radius:99px;min-width:22px;max-width:22px;min-height:22px;max-height:22px;font-size:15px;line-height:22px;text-align:center;vertical-align:middle;white-space:nowrap;padding:0}.badge.badge-notification{background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}.alert{margin:.35em;padding:.25em;border-radius:5px;border-radius:var(--tooltipRadius,5px);min-height:28px;line-height:28px}.alert.error{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorText,#b9b9ba)}.panel-heading .alert.error{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.alert.warning{background-color:rgba(111,111,20,.5);background-color:var(--alertWarning,rgba(111,111,20,.5));color:#b9b9ba;color:var(--alertWarningText,#b9b9ba)}.panel-heading .alert.warning{color:#b9b9ba;color:var(--alertWarningPanelText,#b9b9ba)}.faint,.faint-link{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.faint-link:hover{text-decoration:underline}@media (min-width:800px){.logo{opacity:1!important}}.item.right{text-align:right}.visibility-notice{padding:.5em;border:1px solid hsla(240,1%,73%,.5);border:1px solid var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px)}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{position:absolute;top:0;right:0;padding:.5em;color:inherit}.button-icon{font-size:1.2em}@keyframes shakeError{0%{transform:translateX(0)}15%{transform:translateX(.375rem)}30%{transform:translateX(-.375rem)}45%{transform:translateX(.375rem)}60%{transform:translateX(-.375rem)}75%{transform:translateX(.375rem)}90%{transform:translateX(-.375rem)}to{transform:translateX(0)}}@media (max-width:800px){.mobile-hidden{display:none}.panel-switcher{display:-ms-flexbox;display:flex}.container{padding:0}.panel{margin:.5em 0}.menu-button{display:block;margin-right:.8em}}.setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.setting-item>div{margin-bottom:.5em}.setting-item>div:last-child{margin-bottom:0}.setting-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:1em}.setting-item select{min-width:10em}.setting-item textarea{width:100%;max-width:100%;height:100px}.setting-item .unavailable,.setting-item .unavailable i{color:var(--cRed,red);color:red}.setting-item .btn{min-height:28px;min-width:10em;padding:0 2em}.setting-item .number-input{max-width:6em}.select-multiple{display:-ms-flexbox;display:flex}.select-multiple .option-list{margin:0;padding-left:.5em}.option-list,.setting-list{list-style-type:none;padding-left:2em}.option-list li,.setting-list li{margin-bottom:.5em}.option-list .suboptions,.setting-list .suboptions{margin-top:.3em}.login-hint{text-align:center}@media (min-width:801px){.login-hint{display:none}}.login-hint a{display:inline-block;padding:1em 0;width:100%}.btn.btn-default{min-height:28px}.animate-spin{animation:spin 2s infinite linear;display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.new-status-notification{position:relative;margin-top:-1px;font-size:1.1em;border-width:1px 0 0;border-style:solid;border-color:var(--border,#222);padding:10px;z-index:1;background-color:#182230;background-color:var(--panel,#182230)}.alert-dot-number{display:inline-block;border-radius:1em;min-width:1.3rem;min-height:1.3rem;max-height:1.3rem;font-size:.9em;font-weight:bolder;line-height:1.3rem;text-align:center;vertical-align:middle;white-space:nowrap;padding:0 .3em;position:absolute;right:.6rem;background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff);font-style:normal}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"04d46dee\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-panel .signed-in{overflow:visible}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./nav_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b030addc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".nav-panel .panel{overflow:hidden;box-shadow:var(--panelShadow)}.nav-panel ul{list-style:none;margin:0;padding:0}.follow-request-count{margin:-6px 10px;background-color:#121a24;background-color:var(--input,hsla(240,1%,73%,.5))}.nav-panel li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0}.nav-panel li:first-child a{border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px);border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px)}.nav-panel li:last-child a{border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px);border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px)}.nav-panel li:last-child{border:none}.nav-panel a{display:block;padding:.8em .85em}.nav-panel a:hover{color:#d8a070;color:var(--selectedMenuText,#d8a070)}.nav-panel a.router-link-active,.nav-panel a:hover{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon)}.nav-panel a.router-link-active{font-weight:bolder;color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba)}.nav-panel a.router-link-active:hover{text-decoration:underline}.nav-panel .button-icon:before{width:1.1em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./search_bar.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0ea9aafc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".search-bar-container{max-width:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline;vertical-align:baseline;-ms-flex-pack:end;justify-content:flex-end}.search-bar-container .search-bar-input,.search-bar-container .search-button{height:29px}.search-bar-container .search-bar-input{max-width:calc(100% - 30px - 30px - 20px)}.search-bar-container .search-button{margin-left:.5em;margin-right:.5em}.search-bar-container .icon-cancel{cursor:pointer}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./who_to_follow_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2f18dd03\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".who-to-follow *{vertical-align:middle}.who-to-follow img{width:32px;height:32px}.who-to-follow{padding:0 1em;margin:0}.who-to-follow-items{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;margin:1em 0}.who-to-follow-more{padding:0;margin:1em 0;text-align:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./media_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"23b00cfc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".modal-view.media-modal-view{z-index:1001}.modal-view.media-modal-view .modal-view-button-arrow{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover{outline:none;box-shadow:none}.modal-view.media-modal-view .modal-view-button-arrow:hover{opacity:1}.modal-image{max-width:90%;max-height:90%;box-shadow:0 5px 15px 0 rgba(0,0,0,.5);image-orientation:from-image}.modal-view-button-arrow{position:absolute;display:block;top:50%;margin-top:-50px;width:70px;height:100px;border:0;padding:0;opacity:0;box-shadow:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:visible;cursor:pointer;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.modal-view-button-arrow .arrow-icon{position:absolute;top:35px;height:30px;width:32px;font-size:14px;line-height:30px;color:#fff;text-align:center;background-color:rgba(0,0,0,.3)}.modal-view-button-arrow--prev{left:0}.modal-view-button-arrow--prev .arrow-icon{left:6px}.modal-view-button-arrow--next{right:0}.modal-view-button-arrow--next .arrow-icon{right:6px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f7395e92\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".modal-view{z-index:1000;position:fixed;top:0;left:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;overflow:auto;animation-duration:.2s;background-color:rgba(0,0,0,.5);animation-name:modal-background-fadein}body:not(.scroll-locked) .modal-view{opacity:0}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./side_drawer.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"34992fba\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".side-drawer-container{position:fixed;z-index:1000;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;transition-duration:0s;transition-property:transform}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transition-delay:.35s;transform:translate(-100%)}.side-drawer-darken{top:0;left:0;width:100vw;height:100vh;position:fixed;z-index:-1;transition:.35s;transition-property:background-color;background-color:rgba(0,0,0,.5)}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{-ms-flex:1 1 100%;flex:1 1 100%}.side-drawer{overflow-x:hidden;transition-timing-function:cubic-bezier(0,1,.5,1);transition:.35s;transition-property:transform;margin:0 0 0 -100px;padding:0 0 1em 100px;width:80%;max-width:20em;-ms-flex:0 0 80%;flex:0 0 80%;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon)}.side-drawer .button-icon:before{width:1.1em}.side-drawer-logo-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.85em}.side-drawer-logo-wrapper img{-ms-flex:none;flex:none;height:50px;margin-right:.85em}.side-drawer-logo-wrapper span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-drawer-click-outside-closed{-ms-flex:0 0 0px;flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{background:transparent;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex;padding:0;margin:0}.side-drawer ul{list-style:none;margin:0;padding:0;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);margin:.2em 0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a{display:block;padding:.5em .85em}.side-drawer li a:hover{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#b9b9ba;color:var(--selectedMenuPopoverText,#b9b9ba);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mobile_post_status_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7f8eca07\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".new-status-button{width:5em;height:5em;border-radius:100%;position:fixed;bottom:1.5em;right:1.5em;background-color:#182230;background-color:var(--btn,#182230);display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);z-index:10;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1)}.new-status-button.hidden{transform:translateY(150%)}.new-status-button i{font-size:1.5em;color:#b9b9ba;color:var(--text,#b9b9ba)}@media (min-width:801px){.new-status-button{display:none}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mobile_nav.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1e0fbcf8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mobile-inner-nav{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.mobile-nav-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;width:50px;position:relative;cursor:pointer}.alert-dot{border-radius:100%;height:8px;width:8px;position:absolute;left:calc(50% - 4px);top:calc(50% - 4px);margin-left:6px;margin-top:-6px;background-color:red;background-color:var(--badgeNotification,red)}.mobile-notifications-drawer{width:100%;height:100vh;overflow-x:hidden;position:fixed;top:0;left:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);transition-property:transform;transition-duration:.25s;transform:translateX(0);z-index:1001;-webkit-overflow-scrolling:touch}.mobile-notifications-drawer.closed{transform:translateX(100%)}.mobile-notifications-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;z-index:1;width:100%;height:50px;line-height:50px;position:absolute;color:var(--topBarText);background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow)}.mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.mobile-notifications{margin-top:50px;width:100vw;height:calc(100vh - 50px);overflow-x:hidden;overflow-y:scroll;color:#b9b9ba;color:var(--text,#b9b9ba);background-color:#121a24;background-color:var(--bg,#121a24)}.mobile-notifications .notifications{padding:0;border-radius:0;box-shadow:none}.mobile-notifications .notifications .panel{border-radius:0;margin:0;box-shadow:none}.mobile-notifications .notifications .panel:after{border-radius:0}.mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_reporting_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"10c04f96\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-reporting-panel{width:90vw;max-width:700px;min-height:20vh;max-height:80vh}.user-reporting-panel .panel-heading .title{text-align:center;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-reporting-panel .panel-body{display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse;border-top:1px solid;border-color:#222;border-color:var(--border,#222);overflow:hidden}.user-reporting-panel-left{padding:1.1em .7em .7em;line-height:1.4em;box-sizing:border-box}.user-reporting-panel-left>div{margin-bottom:1em}.user-reporting-panel-left>div:last-child{margin-bottom:0}.user-reporting-panel-left p{margin-top:0}.user-reporting-panel-left textarea.form-control{line-height:16px;resize:none;overflow:hidden;transition:min-height .2s .1s;min-height:44px;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{margin:1em 0 0;line-height:1.3em}.user-reporting-panel-right{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.user-reporting-panel-sitem>.status-el{-ms-flex:1;flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{-ms-flex-direction:row;flex-direction:row}.user-reporting-panel-left{width:50%;max-width:320px;border-right:1px solid;border-color:#222;border-color:var(--border,#222);padding:1.1em}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{width:50%;-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:12px}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./post_status_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7628c2ae\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".modal-view.post-form-modal-view{-ms-flex-align:start;align-items:flex-start}.post-form-modal-panel{-ms-flex-negative:0;flex-shrink:0;margin-top:25%;margin-bottom:2em;width:100%;max-width:700px}@media (orientation:landscape){.post-form-modal-panel{margin-top:8%}}\", \"\"]);\n\n// exports\n","import EventTargetPolyfill from '@ungap/event-target'\n\ntry {\n  /* eslint-disable no-new  */\n  new EventTarget()\n  /* eslint-enable no-new  */\n} catch (e) {\n  window.EventTarget = EventTargetPolyfill\n}\n","import { set, delete as del } from 'vue'\n\nconst defaultState = {\n  settings: {\n    currentSaveStateNotice: null,\n    noticeClearTimeout: null,\n    notificationPermission: null\n  },\n  browserSupport: {\n    cssFilter: window.CSS && window.CSS.supports && (\n      window.CSS.supports('filter', 'drop-shadow(0 0)') ||\n      window.CSS.supports('-webkit-filter', 'drop-shadow(0 0)')\n    )\n  },\n  mobileLayout: false\n}\n\nconst interfaceMod = {\n  state: defaultState,\n  mutations: {\n    settingsSaved (state, { success, error }) {\n      if (success) {\n        if (state.noticeClearTimeout) {\n          clearTimeout(state.noticeClearTimeout)\n        }\n        set(state.settings, 'currentSaveStateNotice', { error: false, data: success })\n        set(state.settings, 'noticeClearTimeout',\n          setTimeout(() => del(state.settings, 'currentSaveStateNotice'), 2000))\n      } else {\n        set(state.settings, 'currentSaveStateNotice', { error: true, errorData: error })\n      }\n    },\n    setNotificationPermission (state, permission) {\n      state.notificationPermission = permission\n    },\n    setMobileLayout (state, value) {\n      state.mobileLayout = value\n    }\n  },\n  actions: {\n    setPageTitle ({ rootState }, option = '') {\n      document.title = `${option} ${rootState.instance.name}`\n    },\n    settingsSaved ({ commit, dispatch }, { success, error }) {\n      commit('settingsSaved', { success, error })\n    },\n    setNotificationPermission ({ commit }, permission) {\n      commit('setNotificationPermission', permission)\n    },\n    setMobileLayout ({ commit }, value) {\n      commit('setMobileLayout', value)\n    }\n  }\n}\n\nexport default interfaceMod\n","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}\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}\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  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  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  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  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    layer: 'bg'\n  },\n\n  chatMessageIncomingBg: {\n    depends: ['bg'],\n    layer: 'bg'\n  },\n\n  chatMessageIncomingText: {\n    depends: ['text'],\n    layer: 'text'\n  },\n\n  chatMessageIncomingLink: {\n    depends: ['link'],\n    layer: 'link'\n  },\n\n  chatMessageIncomingBorder: {\n    depends: ['fg'],\n    opacity: 'border',\n    color: (mod, fg) => brightness(2 * mod, fg).rgb\n  },\n\n  chatMessageOutgoingBg: {\n    depends: ['bg'],\n    color: (mod, fg) => brightness(5 * mod, fg).rgb\n  },\n\n  chatMessageOutgoingText: {\n    depends: ['text'],\n    layer: 'text'\n  },\n\n  chatMessageOutgoingLink: {\n    depends: ['link'],\n    layer: 'link'\n  },\n\n  chatMessageOutgoingBorder: {\n    depends: ['bg'],\n    opacity: 'bg'\n  }\n}\n","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  return output.sort((a, b) => {\n    const depsA = getDeps(a, inheritance).length\n    const depsB = getDeps(b, inheritance).length\n\n    if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return 0\n    if (depsA === 0 && depsB !== 0) return -1\n    if (depsB === 0 && depsA !== 0) return 1\n  })\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","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(`body { ${rules.radii} }`, 'index-max')\n  styleSheet.insertRule(`body { ${rules.colors} }`, 'index-max')\n  styleSheet.insertRule(`body { ${rules.shadows} }`, 'index-max')\n  styleSheet.insertRule(`body { ${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  const inputShadows = input.shadows && !input.themeEngineVersion\n    ? shadows2to3(input.shadows, input.opacity)\n    : input.shadows || {}\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 }) => 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","import { set, delete as del } from 'vue'\nimport { setPreset, applyTheme } from '../services/style_setter/style_setter.js'\n\nconst browserLocale = (window.navigator.language || 'en').split('-')[0]\n\nexport const defaultState = {\n  colors: {},\n  theme: undefined,\n  customTheme: undefined,\n  customThemeSource: undefined,\n  hideISP: false,\n  // bad name: actually hides posts of muted USERS\n  hideMutedPosts: undefined, // instance default\n  collapseMessageWithSubject: undefined, // instance default\n  padEmoji: true,\n  hideAttachments: false,\n  hideAttachmentsInConv: false,\n  maxThumbnails: 16,\n  hideNsfw: true,\n  preloadImage: true,\n  loopVideo: true,\n  loopVideoSilentOnly: true,\n  autoLoad: true,\n  streaming: false,\n  hoverPreview: true,\n  emojiReactionsOnTimeline: true,\n  autohideFloatingPostButton: false,\n  pauseOnUnfocused: true,\n  stopGifs: false,\n  replyVisibility: 'all',\n  notificationVisibility: {\n    follows: true,\n    mentions: true,\n    likes: true,\n    repeats: true,\n    moves: true,\n    emojiReactions: false,\n    followRequest: true,\n    chatMention: true\n  },\n  webPushNotifications: false,\n  muteWords: [],\n  highlight: {},\n  interfaceLanguage: browserLocale,\n  hideScopeNotice: false,\n  useStreamingApi: false,\n  scopeCopy: undefined, // instance default\n  subjectLineBehavior: undefined, // instance default\n  alwaysShowSubjectInput: undefined, // instance default\n  postContentType: undefined, // instance default\n  minimalScopesMode: undefined, // instance default\n  // This hides statuses filtered via a word filter\n  hideFilteredStatuses: undefined, // instance default\n  playVideosInModal: false,\n  useOneClickNsfw: false,\n  useContainFit: false,\n  greentext: undefined, // instance default\n  hidePostStats: undefined, // instance default\n  hideUserStats: undefined // instance default\n}\n\n// caching the instance default properties\nexport const instanceDefaultProperties = Object.entries(defaultState)\n  .filter(([key, value]) => value === undefined)\n  .map(([key, value]) => key)\n\nconst config = {\n  state: defaultState,\n  getters: {\n    mergedConfig (state, getters, rootState, rootGetters) {\n      const { instance } = rootState\n      return {\n        ...state,\n        ...instanceDefaultProperties\n          .map(key => [key, state[key] === undefined\n            ? instance[key]\n            : state[key]\n          ])\n          .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n      }\n    }\n  },\n  mutations: {\n    setOption (state, { name, value }) {\n      set(state, name, value)\n    },\n    setHighlight (state, { user, color, type }) {\n      const data = this.state.config.highlight[user]\n      if (color || type) {\n        set(state.highlight, user, { color: color || data.color, type: type || data.type })\n      } else {\n        del(state.highlight, user)\n      }\n    }\n  },\n  actions: {\n    setHighlight ({ commit, dispatch }, { user, color, type }) {\n      commit('setHighlight', { user, color, type })\n    },\n    setOption ({ commit, dispatch }, { name, value }) {\n      commit('setOption', { name, value })\n      switch (name) {\n        case 'theme':\n          setPreset(value)\n          break\n        case 'customTheme':\n        case 'customThemeSource':\n          applyTheme(value)\n      }\n    }\n  }\n}\n\nexport default config\n","import { set } from 'vue'\nimport { getPreset, applyTheme } from '../services/style_setter/style_setter.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport { instanceDefaultProperties } from './config.js'\n\nconst defaultState = {\n  // Stuff from apiConfig\n  name: 'Pleroma FE',\n  registrationOpen: true,\n  server: 'http://localhost:4040/',\n  textlimit: 5000,\n  themeData: undefined,\n  vapidPublicKey: undefined,\n\n  // Stuff from static/config.json\n  alwaysShowSubjectInput: true,\n  background: '/static/aurora_borealis.jpg',\n  collapseMessageWithSubject: false,\n  disableChat: false,\n  greentext: false,\n  hideFilteredStatuses: false,\n  hideMutedPosts: false,\n  hidePostStats: false,\n  hideSitename: false,\n  hideUserStats: false,\n  loginMethod: 'password',\n  logo: '/static/logo.png',\n  logoMargin: '.2em',\n  logoMask: true,\n  minimalScopesMode: false,\n  nsfwCensorImage: undefined,\n  postContentType: 'text/plain',\n  redirectRootLogin: '/main/friends',\n  redirectRootNoLogin: '/main/all',\n  scopeCopy: true,\n  showFeaturesPanel: true,\n  showInstanceSpecificPanel: false,\n  subjectLineBehavior: 'email',\n  theme: 'pleroma-dark',\n\n  // Nasty stuff\n  customEmoji: [],\n  customEmojiFetched: false,\n  emoji: [],\n  emojiFetched: false,\n  pleromaBackend: true,\n  postFormats: [],\n  restrictedNicknames: [],\n  safeDM: true,\n\n  // Feature-set, apparently, not everything here is reported...\n  chatAvailable: false,\n  gopherAvailable: false,\n  mediaProxyAvailable: false,\n  suggestionsEnabled: false,\n  suggestionsWeb: '',\n\n  // Html stuff\n  instanceSpecificPanelContent: '',\n  tos: '',\n\n  // Version Information\n  backendVersion: '',\n  frontendVersion: '',\n\n  pollsAvailable: false,\n  pollLimits: {\n    max_options: 4,\n    max_option_chars: 255,\n    min_expiration: 60,\n    max_expiration: 60 * 60 * 24\n  }\n}\n\nconst instance = {\n  state: defaultState,\n  mutations: {\n    setInstanceOption (state, { name, value }) {\n      if (typeof value !== 'undefined') {\n        set(state, name, value)\n      }\n    }\n  },\n  getters: {\n    instanceDefaultConfig (state) {\n      return instanceDefaultProperties\n        .map(key => [key, state[key]])\n        .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n    }\n  },\n  actions: {\n    setInstanceOption ({ commit, dispatch }, { name, value }) {\n      commit('setInstanceOption', { name, value })\n      switch (name) {\n        case 'name':\n          dispatch('setPageTitle')\n          break\n        case 'chatAvailable':\n          if (value) {\n            dispatch('initializeSocket')\n          }\n          break\n        case 'theme':\n          dispatch('setTheme', value)\n          break\n      }\n    },\n    async getStaticEmoji ({ commit }) {\n      try {\n        const res = await window.fetch('/static/emoji.json')\n        if (res.ok) {\n          const values = await res.json()\n          const emoji = Object.keys(values).map((key) => {\n            return {\n              displayText: key,\n              imageUrl: false,\n              replacement: values[key]\n            }\n          }).sort((a, b) => a.displayText - b.displayText)\n          commit('setInstanceOption', { name: 'emoji', value: emoji })\n        } else {\n          throw (res)\n        }\n      } catch (e) {\n        console.warn(\"Can't load static emoji\")\n        console.warn(e)\n      }\n    },\n\n    async getCustomEmoji ({ commit, state }) {\n      try {\n        const res = await window.fetch('/api/pleroma/emoji.json')\n        if (res.ok) {\n          const result = await res.json()\n          const values = Array.isArray(result) ? Object.assign({}, ...result) : result\n          const emoji = Object.entries(values).map(([key, value]) => {\n            const imageUrl = value.image_url\n            return {\n              displayText: key,\n              imageUrl: imageUrl ? state.server + imageUrl : value,\n              tags: imageUrl ? value.tags.sort((a, b) => a > b ? 1 : 0) : ['utf'],\n              replacement: `:${key}: `\n            }\n            // Technically could use tags but those are kinda useless right now,\n            // should have been \"pack\" field, that would be more useful\n          }).sort((a, b) => a.displayText.toLowerCase() > b.displayText.toLowerCase() ? 1 : 0)\n          commit('setInstanceOption', { name: 'customEmoji', value: emoji })\n        } else {\n          throw (res)\n        }\n      } catch (e) {\n        console.warn(\"Can't load custom emojis\")\n        console.warn(e)\n      }\n    },\n\n    setTheme ({ commit, rootState }, themeName) {\n      commit('setInstanceOption', { name: 'theme', value: themeName })\n      getPreset(themeName)\n        .then(themeData => {\n          commit('setInstanceOption', { name: 'themeData', value: themeData })\n          // No need to apply theme if there's user theme already\n          const { customTheme } = rootState.config\n          if (customTheme) return\n\n          // New theme presets don't have 'theme' property, they use 'source'\n          const themeSource = themeData.source\n          if (!themeData.theme || (themeSource && themeSource.themeEngineVersion === CURRENT_VERSION)) {\n            applyTheme(themeSource)\n          } else {\n            applyTheme(themeData.theme)\n          }\n        })\n    },\n    fetchEmoji ({ dispatch, state }) {\n      if (!state.customEmojiFetched) {\n        state.customEmojiFetched = true\n        dispatch('getCustomEmoji')\n      }\n      if (!state.emojiFetched) {\n        state.emojiFetched = true\n        dispatch('getStaticEmoji')\n      }\n    }\n  }\n}\n\nexport default instance\n","import {\n  remove,\n  slice,\n  each,\n  findIndex,\n  find,\n  maxBy,\n  minBy,\n  merge,\n  first,\n  last,\n  isArray,\n  omitBy\n} from 'lodash'\nimport { set } from 'vue'\nimport { isStatusNotification } from '../services/notification_utils/notification_utils.js'\nimport apiService from '../services/api/api.service.js'\n// import parse from '../services/status_parser/status_parser.js'\n\nconst emptyTl = (userId = 0) => ({\n  statuses: [],\n  statusesObject: {},\n  faves: [],\n  visibleStatuses: [],\n  visibleStatusesObject: {},\n  newStatusCount: 0,\n  maxId: 0,\n  minId: 0,\n  minVisibleId: 0,\n  loading: false,\n  followers: [],\n  friends: [],\n  userId,\n  flushMarker: 0\n})\n\nconst emptyNotifications = () => ({\n  desktopNotificationSilence: true,\n  maxId: 0,\n  minId: Number.POSITIVE_INFINITY,\n  data: [],\n  idStore: {},\n  loading: false,\n  error: false\n})\n\nexport const defaultState = () => ({\n  allStatuses: [],\n  allStatusesObject: {},\n  conversationsObject: {},\n  maxId: 0,\n  notifications: emptyNotifications(),\n  favorites: new Set(),\n  error: false,\n  errorData: null,\n  timelines: {\n    mentions: emptyTl(),\n    public: emptyTl(),\n    user: emptyTl(),\n    favorites: emptyTl(),\n    media: emptyTl(),\n    publicAndExternal: emptyTl(),\n    friends: emptyTl(),\n    tag: emptyTl(),\n    dms: emptyTl()\n  }\n})\n\nexport const prepareStatus = (status) => {\n  // Set deleted flag\n  status.deleted = false\n\n  // To make the array reactive\n  status.attachments = status.attachments || []\n\n  return status\n}\n\nconst visibleNotificationTypes = (rootState) => {\n  return [\n    rootState.config.notificationVisibility.likes && 'like',\n    rootState.config.notificationVisibility.mentions && 'mention',\n    rootState.config.notificationVisibility.repeats && 'repeat',\n    rootState.config.notificationVisibility.follows && 'follow',\n    rootState.config.notificationVisibility.moves && 'move',\n    rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reactions',\n    rootState.config.notificationVisibility.chatMention && 'pleroma:chat_mention'\n  ].filter(_ => _)\n}\n\nconst mergeOrAdd = (arr, obj, item) => {\n  const oldItem = obj[item.id]\n\n  if (oldItem) {\n    // We already have this, so only merge the new info.\n    // We ignore null values to avoid overwriting existing properties with missing data\n    // we also skip 'user' because that is handled by users module\n    merge(oldItem, omitBy(item, (v, k) => v === null || k === 'user'))\n    // Reactivity fix.\n    oldItem.attachments.splice(oldItem.attachments.length)\n    return { item: oldItem, new: false }\n  } else {\n    // This is a new item, prepare it\n    prepareStatus(item)\n    arr.push(item)\n    set(obj, item.id, item)\n    return { item, new: true }\n  }\n}\n\nconst sortById = (a, b) => {\n  const seqA = Number(a.id)\n  const seqB = Number(b.id)\n  const isSeqA = !Number.isNaN(seqA)\n  const isSeqB = !Number.isNaN(seqB)\n  if (isSeqA && isSeqB) {\n    return seqA > seqB ? -1 : 1\n  } else if (isSeqA && !isSeqB) {\n    return 1\n  } else if (!isSeqA && isSeqB) {\n    return -1\n  } else {\n    return a.id > b.id ? -1 : 1\n  }\n}\n\nconst sortTimeline = (timeline) => {\n  timeline.visibleStatuses = timeline.visibleStatuses.sort(sortById)\n  timeline.statuses = timeline.statuses.sort(sortById)\n  timeline.minVisibleId = (last(timeline.visibleStatuses) || {}).id\n  return timeline\n}\n\n// Add status to the global storages (arrays and objects maintaining statuses) except timelines\nconst addStatusToGlobalStorage = (state, data) => {\n  const result = mergeOrAdd(state.allStatuses, state.allStatusesObject, data)\n  if (result.new) {\n    // Add to conversation\n    const status = result.item\n    const conversationsObject = state.conversationsObject\n    const conversationId = status.statusnet_conversation_id\n    if (conversationsObject[conversationId]) {\n      conversationsObject[conversationId].push(status)\n    } else {\n      set(conversationsObject, conversationId, [status])\n    }\n  }\n  return result\n}\n\n// Remove status from the global storages (arrays and objects maintaining statuses) except timelines\nconst removeStatusFromGlobalStorage = (state, status) => {\n  remove(state.allStatuses, { id: status.id })\n\n  // TODO: Need to remove from allStatusesObject?\n\n  // Remove possible notification\n  remove(state.notifications.data, ({ action: { id } }) => id === status.id)\n\n  // Remove from conversation\n  const conversationId = status.statusnet_conversation_id\n  if (state.conversationsObject[conversationId]) {\n    remove(state.conversationsObject[conversationId], { id: status.id })\n  }\n}\n\nconst addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {},\n  noIdUpdate = false, userId }) => {\n  // Sanity check\n  if (!isArray(statuses)) {\n    return false\n  }\n\n  const allStatuses = state.allStatuses\n  const timelineObject = state.timelines[timeline]\n\n  const maxNew = statuses.length > 0 ? maxBy(statuses, 'id').id : 0\n  const minNew = statuses.length > 0 ? minBy(statuses, 'id').id : 0\n  const newer = timeline && (maxNew > timelineObject.maxId || timelineObject.maxId === 0) && statuses.length > 0\n  const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0\n\n  if (!noIdUpdate && newer) {\n    timelineObject.maxId = maxNew\n  }\n  if (!noIdUpdate && older) {\n    timelineObject.minId = minNew\n  }\n\n  // This makes sure that user timeline won't get data meant for other\n  // user. I.e. opening different user profiles makes request which could\n  // return data late after user already viewing different user profile\n  if ((timeline === 'user' || timeline === 'media') && timelineObject.userId !== userId) {\n    return\n  }\n\n  const addStatus = (data, showImmediately, addToTimeline = true) => {\n    const result = addStatusToGlobalStorage(state, data)\n    const status = result.item\n\n    if (result.new) {\n      // We are mentioned in a post\n      if (status.type === 'status' && find(status.attentions, { id: user.id })) {\n        const mentions = state.timelines.mentions\n\n        // Add the mention to the mentions timeline\n        if (timelineObject !== mentions) {\n          mergeOrAdd(mentions.statuses, mentions.statusesObject, status)\n          mentions.newStatusCount += 1\n\n          sortTimeline(mentions)\n        }\n      }\n      if (status.visibility === 'direct') {\n        const dms = state.timelines.dms\n\n        mergeOrAdd(dms.statuses, dms.statusesObject, status)\n        dms.newStatusCount += 1\n\n        sortTimeline(dms)\n      }\n    }\n\n    // Decide if we should treat the status as new for this timeline.\n    let resultForCurrentTimeline\n    // Some statuses should only be added to the global status repository.\n    if (timeline && addToTimeline) {\n      resultForCurrentTimeline = mergeOrAdd(timelineObject.statuses, timelineObject.statusesObject, status)\n    }\n\n    if (timeline && showImmediately) {\n      // Add it directly to the visibleStatuses, don't change\n      // newStatusCount\n      mergeOrAdd(timelineObject.visibleStatuses, timelineObject.visibleStatusesObject, status)\n    } else if (timeline && addToTimeline && resultForCurrentTimeline.new) {\n      // Just change newStatuscount\n      timelineObject.newStatusCount += 1\n    }\n\n    return status\n  }\n\n  const favoriteStatus = (favorite, counter) => {\n    const status = find(allStatuses, { id: favorite.in_reply_to_status_id })\n    if (status) {\n      // This is our favorite, so the relevant bit.\n      if (favorite.user.id === user.id) {\n        status.favorited = true\n      } else {\n        status.fave_num += 1\n      }\n    }\n    return status\n  }\n\n  const processors = {\n    'status': (status) => {\n      addStatus(status, showImmediately)\n    },\n    'retweet': (status) => {\n      // RetweetedStatuses are never shown immediately\n      const retweetedStatus = addStatus(status.retweeted_status, false, false)\n\n      let retweet\n      // If the retweeted status is already there, don't add the retweet\n      // to the timeline.\n      if (timeline && find(timelineObject.statuses, (s) => {\n        if (s.retweeted_status) {\n          return s.id === retweetedStatus.id || s.retweeted_status.id === retweetedStatus.id\n        } else {\n          return s.id === retweetedStatus.id\n        }\n      })) {\n        // Already have it visible (either as the original or another RT), don't add to timeline, don't show.\n        retweet = addStatus(status, false, false)\n      } else {\n        retweet = addStatus(status, showImmediately)\n      }\n\n      retweet.retweeted_status = retweetedStatus\n    },\n    'favorite': (favorite) => {\n      // Only update if this is a new favorite.\n      // Ignore our own favorites because we get info about likes as response to like request\n      if (!state.favorites.has(favorite.id)) {\n        state.favorites.add(favorite.id)\n        favoriteStatus(favorite)\n      }\n    },\n    'deletion': (deletion) => {\n      const uri = deletion.uri\n      const status = find(allStatuses, { uri })\n      if (!status) {\n        return\n      }\n\n      removeStatusFromGlobalStorage(state, status)\n\n      if (timeline) {\n        remove(timelineObject.statuses, { uri })\n        remove(timelineObject.visibleStatuses, { uri })\n      }\n    },\n    'follow': (follow) => {\n      // NOOP, it is known status but we don't do anything about it for now\n    },\n    'default': (unknown) => {\n      console.log('unknown status type')\n      console.log(unknown)\n    }\n  }\n\n  each(statuses, (status) => {\n    const type = status.type\n    const processor = processors[type] || processors['default']\n    processor(status)\n  })\n\n  // Keep the visible statuses sorted\n  if (timeline) {\n    sortTimeline(timelineObject)\n  }\n}\n\nconst addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters }) => {\n  each(notifications, (notification) => {\n    if (isStatusNotification(notification.type)) {\n      notification.action = addStatusToGlobalStorage(state, notification.action).item\n      notification.status = notification.status && addStatusToGlobalStorage(state, notification.status).item\n    }\n\n    if (notification.type === 'pleroma:emoji_reaction') {\n      dispatch('fetchEmojiReactionsBy', notification.status.id)\n    }\n\n    if (notification.type === 'pleroma:chat_mention') {\n      dispatch('addChatMessages', { chatId: notification.chatMessage.chat_id, messages: [notification.chatMessage] })\n      dispatch('updateChatByAccountId', { accountId: notification.from_profile.id })\n      // dispatch('updateUnreadChatCount', { userId, unreadChatCount })\n    }\n\n    // Only add a new notification if we don't have one for the same action\n    if (!state.notifications.idStore.hasOwnProperty(notification.id)) {\n      state.notifications.maxId = notification.id > state.notifications.maxId\n        ? notification.id\n        : state.notifications.maxId\n      state.notifications.minId = notification.id < state.notifications.minId\n        ? notification.id\n        : state.notifications.minId\n\n      state.notifications.data.push(notification)\n      state.notifications.idStore[notification.id] = notification\n\n      if ('Notification' in window && window.Notification.permission === 'granted') {\n        const notifObj = {}\n        const status = notification.status\n        const title = notification.from_profile.name\n        notifObj.icon = notification.from_profile.profile_image_url\n        let i18nString\n        switch (notification.type) {\n          case 'like':\n            i18nString = 'favorited_you'\n            break\n          case 'repeat':\n            i18nString = 'repeated_you'\n            break\n          case 'follow':\n            i18nString = 'followed_you'\n            break\n          case 'move':\n            i18nString = 'migrated_to'\n            break\n          case 'follow_request':\n            i18nString = 'follow_request'\n            break\n        }\n\n        if (notification.type === 'pleroma:emoji_reaction') {\n          notifObj.body = rootGetters.i18n.t('notifications.reacted_with', [notification.emoji])\n        } else if (i18nString) {\n          notifObj.body = rootGetters.i18n.t('notifications.' + i18nString)\n        } else if (isStatusNotification(notification.type)) {\n          notifObj.body = notification.status.text\n        } else if (notification.type === 'pleroma:chat_mention') {\n          notifObj.body = notification.chatMessage.content\n        }\n\n        // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n        if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n          status.attachments[0].mimetype.startsWith('image/')) {\n          notifObj.image = status.attachments[0].url\n        }\n\n        if (!notification.seen && !state.notifications.desktopNotificationSilence && visibleNotificationTypes.includes(notification.type)) {\n          let desktopNotification = new window.Notification(title, notifObj)\n          // Chrome is known for not closing notifications automatically\n          // according to MDN, anyway.\n          setTimeout(desktopNotification.close.bind(desktopNotification), 5000)\n        }\n      }\n    } else if (notification.seen) {\n      state.notifications.idStore[notification.id].seen = true\n    }\n  })\n}\n\nconst removeStatus = (state, { timeline, userId }) => {\n  const timelineObject = state.timelines[timeline]\n  if (userId) {\n    remove(timelineObject.statuses, { user: { id: userId } })\n    remove(timelineObject.visibleStatuses, { user: { id: userId } })\n    timelineObject.minVisibleId = timelineObject.visibleStatuses.length > 0 ? last(timelineObject.visibleStatuses).id : 0\n    timelineObject.maxId = timelineObject.statuses.length > 0 ? first(timelineObject.statuses).id : 0\n  }\n}\n\nexport const mutations = {\n  addNewStatuses,\n  addNewNotifications,\n  removeStatus,\n  showNewStatuses (state, { timeline }) {\n    const oldTimeline = (state.timelines[timeline])\n\n    oldTimeline.newStatusCount = 0\n    oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)\n    oldTimeline.minVisibleId = last(oldTimeline.visibleStatuses).id\n    oldTimeline.minId = oldTimeline.minVisibleId\n    oldTimeline.visibleStatusesObject = {}\n    each(oldTimeline.visibleStatuses, (status) => { oldTimeline.visibleStatusesObject[status.id] = status })\n  },\n  resetStatuses (state) {\n    const emptyState = defaultState()\n    Object.entries(emptyState).forEach(([key, value]) => {\n      state[key] = value\n    })\n  },\n  clearTimeline (state, { timeline, excludeUserId = false }) {\n    const userId = excludeUserId ? state.timelines[timeline].userId : undefined\n    state.timelines[timeline] = emptyTl(userId)\n  },\n  clearNotifications (state) {\n    state.notifications = emptyNotifications()\n  },\n  setFavorited (state, { status, value }) {\n    const newStatus = state.allStatusesObject[status.id]\n\n    if (newStatus.favorited !== value) {\n      if (value) {\n        newStatus.fave_num++\n      } else {\n        newStatus.fave_num--\n      }\n    }\n\n    newStatus.favorited = value\n  },\n  setFavoritedConfirm (state, { status, user }) {\n    const newStatus = state.allStatusesObject[status.id]\n    newStatus.favorited = status.favorited\n    newStatus.fave_num = status.fave_num\n    const index = findIndex(newStatus.favoritedBy, { id: user.id })\n    if (index !== -1 && !newStatus.favorited) {\n      newStatus.favoritedBy.splice(index, 1)\n    } else if (index === -1 && newStatus.favorited) {\n      newStatus.favoritedBy.push(user)\n    }\n  },\n  setMutedStatus (state, status) {\n    const newStatus = state.allStatusesObject[status.id]\n    newStatus.thread_muted = status.thread_muted\n\n    if (newStatus.thread_muted !== undefined) {\n      state.conversationsObject[newStatus.statusnet_conversation_id].forEach(status => { status.thread_muted = newStatus.thread_muted })\n    }\n  },\n  setRetweeted (state, { status, value }) {\n    const newStatus = state.allStatusesObject[status.id]\n\n    if (newStatus.repeated !== value) {\n      if (value) {\n        newStatus.repeat_num++\n      } else {\n        newStatus.repeat_num--\n      }\n    }\n\n    newStatus.repeated = value\n  },\n  setRetweetedConfirm (state, { status, user }) {\n    const newStatus = state.allStatusesObject[status.id]\n    newStatus.repeated = status.repeated\n    newStatus.repeat_num = status.repeat_num\n    const index = findIndex(newStatus.rebloggedBy, { id: user.id })\n    if (index !== -1 && !newStatus.repeated) {\n      newStatus.rebloggedBy.splice(index, 1)\n    } else if (index === -1 && newStatus.repeated) {\n      newStatus.rebloggedBy.push(user)\n    }\n  },\n  setDeleted (state, { status }) {\n    const newStatus = state.allStatusesObject[status.id]\n    if (newStatus) newStatus.deleted = true\n  },\n  setManyDeleted (state, condition) {\n    Object.values(state.allStatusesObject).forEach(status => {\n      if (condition(status)) {\n        status.deleted = true\n      }\n    })\n  },\n  setLoading (state, { timeline, value }) {\n    state.timelines[timeline].loading = value\n  },\n  setNsfw (state, { id, nsfw }) {\n    const newStatus = state.allStatusesObject[id]\n    newStatus.nsfw = nsfw\n  },\n  setError (state, { value }) {\n    state.error = value\n  },\n  setErrorData (state, { value }) {\n    state.errorData = value\n  },\n  setNotificationsLoading (state, { value }) {\n    state.notifications.loading = value\n  },\n  setNotificationsError (state, { value }) {\n    state.notifications.error = value\n  },\n  setNotificationsSilence (state, { value }) {\n    state.notifications.desktopNotificationSilence = value\n  },\n  markNotificationsAsSeen (state) {\n    each(state.notifications.data, (notification) => {\n      notification.seen = true\n    })\n  },\n  markSingleNotificationAsSeen (state, { id }) {\n    const notification = find(state.notifications.data, n => n.id === id)\n    if (notification) notification.seen = true\n  },\n  dismissNotification (state, { id }) {\n    state.notifications.data = state.notifications.data.filter(n => n.id !== id)\n  },\n  dismissNotifications (state, { finder }) {\n    state.notifications.data = state.notifications.data.filter(n => finder)\n  },\n  updateNotification (state, { id, updater }) {\n    const notification = find(state.notifications.data, n => n.id === id)\n    notification && updater(notification)\n  },\n  queueFlush (state, { timeline, id }) {\n    state.timelines[timeline].flushMarker = id\n  },\n  addRepeats (state, { id, rebloggedByUsers, currentUser }) {\n    const newStatus = state.allStatusesObject[id]\n    newStatus.rebloggedBy = rebloggedByUsers.filter(_ => _)\n    // repeats stats can be incorrect based on polling condition, let's update them using the most recent data\n    newStatus.repeat_num = newStatus.rebloggedBy.length\n    newStatus.repeated = !!newStatus.rebloggedBy.find(({ id }) => currentUser.id === id)\n  },\n  addFavs (state, { id, favoritedByUsers, currentUser }) {\n    const newStatus = state.allStatusesObject[id]\n    newStatus.favoritedBy = favoritedByUsers.filter(_ => _)\n    // favorites stats can be incorrect based on polling condition, let's update them using the most recent data\n    newStatus.fave_num = newStatus.favoritedBy.length\n    newStatus.favorited = !!newStatus.favoritedBy.find(({ id }) => currentUser.id === id)\n  },\n  addEmojiReactionsBy (state, { id, emojiReactions, currentUser }) {\n    const status = state.allStatusesObject[id]\n    set(status, 'emoji_reactions', emojiReactions)\n  },\n  addOwnReaction (state, { id, emoji, currentUser }) {\n    const status = state.allStatusesObject[id]\n    const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n    const reaction = status.emoji_reactions[reactionIndex] || { name: emoji, count: 0, accounts: [] }\n\n    const newReaction = {\n      ...reaction,\n      count: reaction.count + 1,\n      me: true,\n      accounts: [\n        ...reaction.accounts,\n        currentUser\n      ]\n    }\n\n    // Update count of existing reaction if it exists, otherwise append at the end\n    if (reactionIndex >= 0) {\n      set(status.emoji_reactions, reactionIndex, newReaction)\n    } else {\n      set(status, 'emoji_reactions', [...status.emoji_reactions, newReaction])\n    }\n  },\n  removeOwnReaction (state, { id, emoji, currentUser }) {\n    const status = state.allStatusesObject[id]\n    const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n    if (reactionIndex < 0) return\n\n    const reaction = status.emoji_reactions[reactionIndex]\n    const accounts = reaction.accounts || []\n\n    const newReaction = {\n      ...reaction,\n      count: reaction.count - 1,\n      me: false,\n      accounts: accounts.filter(acc => acc.id !== currentUser.id)\n    }\n\n    if (newReaction.count > 0) {\n      set(status.emoji_reactions, reactionIndex, newReaction)\n    } else {\n      set(status, 'emoji_reactions', status.emoji_reactions.filter(r => r.name !== emoji))\n    }\n  },\n  updateStatusWithPoll (state, { id, poll }) {\n    const status = state.allStatusesObject[id]\n    status.poll = poll\n  }\n}\n\nconst statuses = {\n  state: defaultState(),\n  getters: {\n    unreadChatCount: state => currentChat => {\n      let res = 0\n      state.notifications.data.forEach(n => {\n        let isMsg = !n.seen && n.chatMessage\n        if (!isMsg) { return }\n\n        if (currentChat) {\n          if (currentChat.id !== n.chatMessage.chat_id) { res++ }\n        } else {\n          res++\n        }\n      })\n      return res\n    }\n  },\n  actions: {\n    addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId }) {\n      commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId })\n    },\n    addNewNotifications ({ rootState, commit, dispatch, rootGetters }, { notifications, older }) {\n      commit('addNewNotifications', { visibleNotificationTypes: visibleNotificationTypes(rootState), dispatch, notifications, older, rootGetters })\n    },\n    setError ({ rootState, commit }, { value }) {\n      commit('setError', { value })\n    },\n    setErrorData ({ rootState, commit }, { value }) {\n      commit('setErrorData', { value })\n    },\n    setNotificationsLoading ({ rootState, commit }, { value }) {\n      commit('setNotificationsLoading', { value })\n    },\n    setNotificationsError ({ rootState, commit }, { value }) {\n      commit('setNotificationsError', { value })\n    },\n    setNotificationsSilence ({ rootState, commit }, { value }) {\n      commit('setNotificationsSilence', { value })\n    },\n    fetchStatus ({ rootState, dispatch }, id) {\n      return rootState.api.backendInteractor.fetchStatus({ id })\n        .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n    },\n    deleteStatus ({ rootState, commit }, status) {\n      commit('setDeleted', { status })\n      apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })\n    },\n    markStatusesAsDeleted ({ commit }, condition) {\n      commit('setManyDeleted', condition)\n    },\n    favorite ({ rootState, commit }, status) {\n      // Optimistic favoriting...\n      commit('setFavorited', { status, value: true })\n      rootState.api.backendInteractor.favorite({ id: status.id })\n        .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n    },\n    unfavorite ({ rootState, commit }, status) {\n      // Optimistic unfavoriting...\n      commit('setFavorited', { status, value: false })\n      rootState.api.backendInteractor.unfavorite({ id: status.id })\n        .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n    },\n    fetchPinnedStatuses ({ rootState, dispatch }, userId) {\n      rootState.api.backendInteractor.fetchPinnedStatuses({ id: userId })\n        .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, noIdUpdate: true }))\n    },\n    pinStatus ({ rootState, dispatch }, statusId) {\n      return rootState.api.backendInteractor.pinOwnStatus({ id: statusId })\n        .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n    },\n    unpinStatus ({ rootState, dispatch }, statusId) {\n      rootState.api.backendInteractor.unpinOwnStatus({ id: statusId })\n        .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n    },\n    muteConversation ({ rootState, commit }, statusId) {\n      return rootState.api.backendInteractor.muteConversation({ id: statusId })\n        .then((status) => commit('setMutedStatus', status))\n    },\n    unmuteConversation ({ rootState, commit }, statusId) {\n      return rootState.api.backendInteractor.unmuteConversation({ id: statusId })\n        .then((status) => commit('setMutedStatus', status))\n    },\n    retweet ({ rootState, commit }, status) {\n      // Optimistic retweeting...\n      commit('setRetweeted', { status, value: true })\n      rootState.api.backendInteractor.retweet({ id: status.id })\n        .then(status => commit('setRetweetedConfirm', { status: status.retweeted_status, user: rootState.users.currentUser }))\n    },\n    unretweet ({ rootState, commit }, status) {\n      // Optimistic unretweeting...\n      commit('setRetweeted', { status, value: false })\n      rootState.api.backendInteractor.unretweet({ id: status.id })\n        .then(status => commit('setRetweetedConfirm', { status, user: rootState.users.currentUser }))\n    },\n    queueFlush ({ rootState, commit }, { timeline, id }) {\n      commit('queueFlush', { timeline, id })\n    },\n    markNotificationsAsSeen ({ rootState, commit }) {\n      commit('markNotificationsAsSeen')\n      apiService.markNotificationsAsSeen({\n        id: rootState.statuses.notifications.maxId,\n        credentials: rootState.users.currentUser.credentials\n      })\n    },\n    markSingleNotificationAsSeen ({ rootState, commit }, { id }) {\n      commit('markSingleNotificationAsSeen', { id })\n      apiService.markNotificationsAsSeen({\n        single: true,\n        id,\n        credentials: rootState.users.currentUser.credentials\n      })\n    },\n    dismissNotificationLocal ({ rootState, commit }, { id }) {\n      commit('dismissNotification', { id })\n    },\n    dismissNotification ({ rootState, commit }, { id }) {\n      commit('dismissNotification', { id })\n      rootState.api.backendInteractor.dismissNotification({ id })\n    },\n    markMultipleNotificationsAsSeen ({ rootState, commit }, { finder }) {\n      const notifications = rootState.statuses.notifications.data.filter(finder)\n\n      notifications.forEach(n => {\n        commit('markSingleNotificationAsSeen', { id: n.id })\n        rootState.api.backendInteractor.markNotificationsAsSeen({ id: n.id, single: true })\n      })\n    },\n    updateNotification ({ rootState, commit }, { id, updater }) {\n      commit('updateNotification', { id, updater })\n    },\n    fetchFavsAndRepeats ({ rootState, commit }, id) {\n      Promise.all([\n        rootState.api.backendInteractor.fetchFavoritedByUsers({ id }),\n        rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n      ]).then(([favoritedByUsers, rebloggedByUsers]) => {\n        commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser })\n        commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser })\n      })\n    },\n    reactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n      const currentUser = rootState.users.currentUser\n      if (!currentUser) return\n\n      commit('addOwnReaction', { id, emoji, currentUser })\n      rootState.api.backendInteractor.reactWithEmoji({ id, emoji }).then(\n        ok => {\n          dispatch('fetchEmojiReactionsBy', id)\n        }\n      )\n    },\n    unreactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n      const currentUser = rootState.users.currentUser\n      if (!currentUser) return\n\n      commit('removeOwnReaction', { id, emoji, currentUser })\n      rootState.api.backendInteractor.unreactWithEmoji({ id, emoji }).then(\n        ok => {\n          dispatch('fetchEmojiReactionsBy', id)\n        }\n      )\n    },\n    fetchEmojiReactionsBy ({ rootState, commit }, id) {\n      rootState.api.backendInteractor.fetchEmojiReactions({ id }).then(\n        emojiReactions => {\n          commit('addEmojiReactionsBy', { id, emojiReactions, currentUser: rootState.users.currentUser })\n        }\n      )\n    },\n    fetchFavs ({ rootState, commit }, id) {\n      rootState.api.backendInteractor.fetchFavoritedByUsers({ id })\n        .then(favoritedByUsers => commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser }))\n    },\n    fetchRepeats ({ rootState, commit }, id) {\n      rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n        .then(rebloggedByUsers => commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser }))\n    },\n    search (store, { q, resolve, limit, offset, following }) {\n      return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following })\n        .then((data) => {\n          store.commit('addNewUsers', data.accounts)\n          store.commit('addNewStatuses', { statuses: data.statuses })\n          return data\n        })\n    }\n  },\n  mutations\n}\n\nexport default statuses\n","import { camelCase } from 'lodash'\n\nimport apiService from '../api/api.service.js'\n\nconst update = ({ store, statuses, timeline, showImmediately, userId }) => {\n  const ccTimeline = camelCase(timeline)\n\n  store.dispatch('setError', { value: false })\n  store.dispatch('setErrorData', { value: null })\n\n  store.dispatch('addNewStatuses', {\n    timeline: ccTimeline,\n    userId,\n    statuses,\n    showImmediately\n  })\n}\n\nconst fetchAndUpdate = ({\n  store,\n  credentials,\n  timeline = 'friends',\n  older = false,\n  showImmediately = false,\n  userId = false,\n  tag = false,\n  until\n}) => {\n  const args = { timeline, credentials }\n  const rootState = store.rootState || store.state\n  const { getters } = store\n  const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n  const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n  if (older) {\n    args['until'] = until || timelineData.minId\n  } else {\n    args['since'] = timelineData.maxId\n  }\n\n  args['userId'] = userId\n  args['tag'] = tag\n  args['withMuted'] = !hideMutedPosts\n\n  const numStatusesBeforeFetch = timelineData.statuses.length\n\n  return apiService.fetchTimeline(args)\n    .then((statuses) => {\n      if (statuses.error) {\n        store.dispatch('setErrorData', { value: statuses })\n        return\n      }\n      if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {\n        store.dispatch('queueFlush', { timeline: timeline, id: timelineData.maxId })\n      }\n      update({ store, statuses, timeline, showImmediately, userId })\n      return statuses\n    }, () => store.dispatch('setError', { value: true }))\n}\n\nconst startFetching = ({ timeline = 'friends', credentials, store, userId = false, tag = false }) => {\n  const rootState = store.rootState || store.state\n  const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n  const showImmediately = timelineData.visibleStatuses.length === 0\n  timelineData.userId = userId\n  fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, tag })\n  const boundFetchAndUpdate = () => fetchAndUpdate({ timeline, credentials, store, userId, tag })\n  return setInterval(boundFetchAndUpdate, 10000)\n}\nconst timelineFetcher = {\n  fetchAndUpdate,\n  startFetching\n}\n\nexport default timelineFetcher\n","import apiService from '../api/api.service.js'\n\nconst update = ({ store, notifications, older }) => {\n  store.dispatch('setNotificationsError', { value: false })\n  store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false }) => {\n  const args = { credentials }\n  const { getters } = store\n  const rootState = store.rootState || store.state\n  const timelineData = rootState.statuses.notifications\n  const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n  args['withMuted'] = !hideMutedPosts\n\n  args['timeline'] = 'notifications'\n  if (older) {\n    if (timelineData.minId !== Number.POSITIVE_INFINITY) {\n      args['until'] = timelineData.minId\n    }\n    return fetchNotifications({ store, args, older })\n  } else {\n    // fetch new notifications\n    if (timelineData.maxId !== Number.POSITIVE_INFINITY) {\n      args['since'] = timelineData.maxId\n    }\n    const result = fetchNotifications({ store, args, older })\n\n    // load unread notifications repeatedly to provide consistency between browser tabs\n    const notifications = timelineData.data\n    const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n    if (readNotifsIds.length) {\n      args['since'] = Math.max(...readNotifsIds)\n      fetchNotifications({ store, args, older })\n    }\n\n    return result\n  }\n}\n\nconst fetchNotifications = ({ store, args, older }) => {\n  return apiService.fetchTimeline(args)\n    .then((notifications) => {\n      update({ store, notifications, older })\n      return notifications\n    }, () => store.dispatch('setNotificationsError', { value: true }))\n    .catch(() => store.dispatch('setNotificationsError', { value: true }))\n}\n\nconst startFetching = ({ credentials, store }) => {\n  fetchAndUpdate({ credentials, store })\n  const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n  // Initially there's set flag to silence all desktop notifications so\n  // that there won't spam of them when user just opened up the FE we\n  // reset that flag after a while to show new notifications once again.\n  setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n  return setInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n  fetchAndUpdate,\n  startFetching\n}\n\nexport default notificationsFetcher\n","import apiService from '../api/api.service.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n  return apiService.fetchFollowRequests({ credentials })\n    .then((requests) => {\n      store.commit('setFollowRequests', requests)\n    }, () => {})\n    .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n  fetchAndUpdate({ credentials, store })\n  const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n  return setInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n  startFetching\n}\n\nexport default followRequestFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcherService from '../timeline_fetcher/timeline_fetcher.service.js'\nimport notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'\nimport followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'\n\nconst backendInteractorService = credentials => ({\n  startFetchingTimeline ({ timeline, store, userId = false, tag }) {\n    return timelineFetcherService.startFetching({ timeline, store, credentials, userId, tag })\n  },\n\n  startFetchingNotifications ({ store }) {\n    return notificationsFetcher.startFetching({ store, credentials })\n  },\n\n  fetchAndUpdateNotifications ({ store }) {\n    return notificationsFetcher.fetchAndUpdate({ store, credentials })\n  },\n\n  startFetchingFollowRequests ({ store }) {\n    return followRequestFetcher.startFetching({ store, credentials })\n  },\n\n  startUserSocket ({ store }) {\n    const serv = store.rootState.instance.server.replace('http', 'ws')\n    const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })\n    return ProcessedWS({ url, id: 'User' })\n  },\n\n  ...Object.entries(apiService).reduce((acc, [key, func]) => {\n    return {\n      ...acc,\n      [key]: (args) => func({ credentials, ...args })\n    }\n  }, {}),\n\n  verifyCredentials: apiService.verifyCredentials\n})\n\nexport default backendInteractorService\n","import { reduce } from 'lodash'\n\nconst REDIRECT_URI = `${window.location.origin}/oauth-callback`\n\nexport const getOrCreateApp = ({ clientId, clientSecret, instance, commit }) => {\n  if (clientId && clientSecret) {\n    return Promise.resolve({ clientId, clientSecret })\n  }\n\n  const url = `${instance}/api/v1/apps`\n  const form = new window.FormData()\n\n  form.append('client_name', `PleromaFE_${window.___pleromafe_commit_hash}_${(new Date()).toISOString()}`)\n  form.append('redirect_uris', REDIRECT_URI)\n  form.append('scopes', 'read write follow push admin')\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  })\n    .then((data) => data.json())\n    .then((app) => ({ clientId: app.client_id, clientSecret: app.client_secret }))\n    .then((app) => commit('setClientData', app) || app)\n}\n\nconst login = ({ instance, clientId }) => {\n  const data = {\n    response_type: 'code',\n    client_id: clientId,\n    redirect_uri: REDIRECT_URI,\n    scope: 'read write follow push admin'\n  }\n\n  const dataString = reduce(data, (acc, v, k) => {\n    const encoded = `${k}=${encodeURIComponent(v)}`\n    if (!acc) {\n      return encoded\n    } else {\n      return `${acc}&${encoded}`\n    }\n  }, false)\n\n  // Do the redirect...\n  const url = `${instance}/oauth/authorize?${dataString}`\n\n  window.location.href = url\n}\n\nconst getTokenWithCredentials = ({ clientId, clientSecret, instance, username, password }) => {\n  const url = `${instance}/oauth/token`\n  const form = new window.FormData()\n\n  form.append('client_id', clientId)\n  form.append('client_secret', clientSecret)\n  form.append('grant_type', 'password')\n  form.append('username', username)\n  form.append('password', password)\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\n\nconst getToken = ({ clientId, clientSecret, instance, code }) => {\n  const url = `${instance}/oauth/token`\n  const form = new window.FormData()\n\n  form.append('client_id', clientId)\n  form.append('client_secret', clientSecret)\n  form.append('grant_type', 'authorization_code')\n  form.append('code', code)\n  form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  })\n    .then((data) => data.json())\n}\n\nexport const getClientToken = ({ clientId, clientSecret, instance }) => {\n  const url = `${instance}/oauth/token`\n  const form = new window.FormData()\n\n  form.append('client_id', clientId)\n  form.append('client_secret', clientSecret)\n  form.append('grant_type', 'client_credentials')\n  form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\nconst verifyOTPCode = ({ app, instance, mfaToken, code }) => {\n  const url = `${instance}/oauth/mfa/challenge`\n  const form = new window.FormData()\n\n  form.append('client_id', app.client_id)\n  form.append('client_secret', app.client_secret)\n  form.append('mfa_token', mfaToken)\n  form.append('code', code)\n  form.append('challenge_type', 'totp')\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ app, instance, mfaToken, code }) => {\n  const url = `${instance}/oauth/mfa/challenge`\n  const form = new window.FormData()\n\n  form.append('client_id', app.client_id)\n  form.append('client_secret', app.client_secret)\n  form.append('mfa_token', mfaToken)\n  form.append('code', code)\n  form.append('challenge_type', 'recovery')\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\n\nconst revokeToken = ({ app, instance, token }) => {\n  const url = `${instance}/oauth/revoke`\n  const form = new window.FormData()\n\n  form.append('client_id', app.clientId)\n  form.append('client_secret', app.clientSecret)\n  form.append('token', token)\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\n\nconst oauth = {\n  login,\n  getToken,\n  getTokenWithCredentials,\n  getOrCreateApp,\n  verifyOTPCode,\n  verifyRecoveryCode,\n  revokeToken\n}\n\nexport default oauth\n","import runtime from 'serviceworker-webpack-plugin/lib/runtime'\n\nfunction urlBase64ToUint8Array (base64String) {\n  const padding = '='.repeat((4 - base64String.length % 4) % 4)\n  const base64 = (base64String + padding)\n    .replace(/-/g, '+')\n    .replace(/_/g, '/')\n\n  const rawData = window.atob(base64)\n  return Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n}\n\nfunction isPushSupported () {\n  return 'serviceWorker' in navigator && 'PushManager' in window\n}\n\nfunction getOrCreateServiceWorker () {\n  return runtime.register()\n    .catch((err) => console.error('Unable to get or create a service worker.', err))\n}\n\nfunction subscribePush (registration, isEnabled, vapidPublicKey) {\n  if (!isEnabled) return Promise.reject(new Error('Web Push is disabled in config'))\n  if (!vapidPublicKey) return Promise.reject(new Error('VAPID public key is not found'))\n\n  const subscribeOptions = {\n    userVisibleOnly: true,\n    applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)\n  }\n  return registration.pushManager.subscribe(subscribeOptions)\n}\n\nfunction unsubscribePush (registration) {\n  return registration.pushManager.getSubscription()\n    .then((subscribtion) => {\n      if (subscribtion === null) { return }\n      return subscribtion.unsubscribe()\n    })\n}\n\nfunction deleteSubscriptionFromBackEnd (token) {\n  return window.fetch('/api/v1/push/subscription/', {\n    method: 'DELETE',\n    headers: {\n      'Content-Type': 'application/json',\n      'Authorization': `Bearer ${token}`\n    }\n  }).then((response) => {\n    if (!response.ok) throw new Error('Bad status code from server.')\n    return response\n  })\n}\n\nfunction sendSubscriptionToBackEnd (subscription, token, notificationVisibility) {\n  return window.fetch('/api/v1/push/subscription/', {\n    method: 'POST',\n    headers: {\n      'Content-Type': 'application/json',\n      'Authorization': `Bearer ${token}`\n    },\n    body: JSON.stringify({\n      subscription,\n      data: {\n        alerts: {\n          follow: notificationVisibility.follows,\n          favourite: notificationVisibility.likes,\n          mention: notificationVisibility.mentions,\n          reblog: notificationVisibility.repeats,\n          move: notificationVisibility.moves\n        }\n      }\n    })\n  }).then((response) => {\n    if (!response.ok) throw new Error('Bad status code from server.')\n    return response.json()\n  }).then((responseData) => {\n    if (!responseData.id) throw new Error('Bad response from server.')\n    return responseData\n  })\n}\n\nexport function registerPushNotifications (isEnabled, vapidPublicKey, token, notificationVisibility) {\n  if (isPushSupported()) {\n    getOrCreateServiceWorker()\n      .then((registration) => subscribePush(registration, isEnabled, vapidPublicKey))\n      .then((subscription) => sendSubscriptionToBackEnd(subscription, token, notificationVisibility))\n      .catch((e) => console.warn(`Failed to setup Web Push Notifications: ${e.message}`))\n  }\n}\n\nexport function unregisterPushNotifications (token) {\n  if (isPushSupported()) {\n    Promise.all([\n      deleteSubscriptionFromBackEnd(token),\n      getOrCreateServiceWorker()\n        .then((registration) => {\n          return unsubscribePush(registration).then((result) => [registration, result])\n        })\n        .then(([registration, unsubResult]) => {\n          if (!unsubResult) {\n            console.warn('Push subscription cancellation wasn\\'t successful, killing SW anyway...')\n          }\n          return registration.unregister().then((result) => {\n            if (!result) {\n              console.warn('Failed to kill SW')\n            }\n          })\n        })\n    ]).catch((e) => console.warn(`Failed to disable Web Push Notifications: ${e.message}`))\n  }\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, merge, last, concat, uniq } from 'lodash'\nimport { set } from 'vue'\nimport { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'\n\n// TODO: Unify with mergeOrAdd in statuses.js\nexport const mergeOrAdd = (arr, obj, item) => {\n  if (!item) { return false }\n  const oldItem = obj[item.id]\n  if (oldItem) {\n    // We already have this, so only merge the new info.\n    merge(oldItem, item)\n    return { item: oldItem, new: false }\n  } else {\n    // This is a new item, prepare it\n    arr.push(item)\n    set(obj, item.id, item)\n    if (item.screen_name && !item.screen_name.includes('@')) {\n      set(obj, item.screen_name.toLowerCase(), item)\n    }\n    return { item, new: true }\n  }\n}\n\nconst getNotificationPermission = () => {\n  const Notification = window.Notification\n\n  if (!Notification) return Promise.resolve(null)\n  if (Notification.permission === 'default') return Notification.requestPermission()\n  return Promise.resolve(Notification.permission)\n}\n\nconst blockUser = (store, id) => {\n  return store.rootState.api.backendInteractor.blockUser({ id })\n    .then((relationship) => {\n      store.commit('updateUserRelationship', [relationship])\n      store.commit('addBlockId', id)\n      store.commit('removeStatus', { timeline: 'friends', userId: id })\n      store.commit('removeStatus', { timeline: 'public', userId: id })\n      store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id })\n    })\n}\n\nconst unblockUser = (store, id) => {\n  return store.rootState.api.backendInteractor.unblockUser({ id })\n    .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, id) => {\n  const predictedRelationship = store.state.relationships[id] || { id }\n  predictedRelationship.muting = true\n  store.commit('updateUserRelationship', [predictedRelationship])\n  store.commit('addMuteId', id)\n\n  return store.rootState.api.backendInteractor.muteUser({ id })\n    .then((relationship) => {\n      store.commit('updateUserRelationship', [relationship])\n      store.commit('addMuteId', id)\n    })\n}\n\nconst unmuteUser = (store, id) => {\n  const predictedRelationship = store.state.relationships[id] || { id }\n  predictedRelationship.muting = false\n  store.commit('updateUserRelationship', [predictedRelationship])\n\n  return store.rootState.api.backendInteractor.unmuteUser({ id })\n    .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst hideReblogs = (store, userId) => {\n  return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: false })\n    .then((relationship) => {\n      store.commit('updateUserRelationship', [relationship])\n    })\n}\n\nconst showReblogs = (store, userId) => {\n  return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: true })\n    .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteDomain = (store, domain) => {\n  return store.rootState.api.backendInteractor.muteDomain({ domain })\n    .then(() => store.commit('addDomainMute', domain))\n}\n\nconst unmuteDomain = (store, domain) => {\n  return store.rootState.api.backendInteractor.unmuteDomain({ domain })\n    .then(() => store.commit('removeDomainMute', domain))\n}\n\nexport const mutations = {\n  tagUser (state, { user: { id }, tag }) {\n    const user = state.usersObject[id]\n    const tags = user.tags || []\n    const newTags = tags.concat([tag])\n    set(user, 'tags', newTags)\n  },\n  untagUser (state, { user: { id }, tag }) {\n    const user = state.usersObject[id]\n    const tags = user.tags || []\n    const newTags = tags.filter(t => t !== tag)\n    set(user, 'tags', newTags)\n  },\n  updateRight (state, { user: { id }, right, value }) {\n    const user = state.usersObject[id]\n    let newRights = user.rights\n    newRights[right] = value\n    set(user, 'rights', newRights)\n  },\n  updateActivationStatus (state, { user: { id }, deactivated }) {\n    const user = state.usersObject[id]\n    set(user, 'deactivated', deactivated)\n  },\n  setCurrentUser (state, user) {\n    state.lastLoginName = user.screen_name\n    state.currentUser = merge(state.currentUser || {}, user)\n  },\n  clearCurrentUser (state) {\n    state.currentUser = false\n    state.lastLoginName = false\n  },\n  beginLogin (state) {\n    state.loggingIn = true\n  },\n  endLogin (state) {\n    state.loggingIn = false\n  },\n  saveFriendIds (state, { id, friendIds }) {\n    const user = state.usersObject[id]\n    user.friendIds = uniq(concat(user.friendIds, friendIds))\n  },\n  saveFollowerIds (state, { id, followerIds }) {\n    const user = state.usersObject[id]\n    user.followerIds = uniq(concat(user.followerIds, followerIds))\n  },\n  // Because frontend doesn't have a reason to keep these stuff in memory\n  // outside of viewing someones user profile.\n  clearFriends (state, userId) {\n    const user = state.usersObject[userId]\n    if (user) {\n      set(user, 'friendIds', [])\n    }\n  },\n  clearFollowers (state, userId) {\n    const user = state.usersObject[userId]\n    if (user) {\n      set(user, 'followerIds', [])\n    }\n  },\n  addNewUsers (state, users) {\n    each(users, (user) => {\n      if (user.relationship) {\n        set(state.relationships, user.relationship.id, user.relationship)\n      }\n      mergeOrAdd(state.users, state.usersObject, user)\n    })\n  },\n  updateUserRelationship (state, relationships) {\n    relationships.forEach((relationship) => {\n      set(state.relationships, relationship.id, relationship)\n    })\n  },\n  saveBlockIds (state, blockIds) {\n    state.currentUser.blockIds = blockIds\n  },\n  addBlockId (state, blockId) {\n    if (state.currentUser.blockIds.indexOf(blockId) === -1) {\n      state.currentUser.blockIds.push(blockId)\n    }\n  },\n  saveMuteIds (state, muteIds) {\n    state.currentUser.muteIds = muteIds\n  },\n  addMuteId (state, muteId) {\n    if (state.currentUser.muteIds.indexOf(muteId) === -1) {\n      state.currentUser.muteIds.push(muteId)\n    }\n  },\n  saveDomainMutes (state, domainMutes) {\n    state.currentUser.domainMutes = domainMutes\n  },\n  addDomainMute (state, domain) {\n    if (state.currentUser.domainMutes.indexOf(domain) === -1) {\n      state.currentUser.domainMutes.push(domain)\n    }\n  },\n  removeDomainMute (state, domain) {\n    const index = state.currentUser.domainMutes.indexOf(domain)\n    if (index !== -1) {\n      state.currentUser.domainMutes.splice(index, 1)\n    }\n  },\n  setPinnedToUser (state, status) {\n    const user = state.usersObject[status.user.id]\n    const index = user.pinnedStatusIds.indexOf(status.id)\n    if (status.pinned && index === -1) {\n      user.pinnedStatusIds.push(status.id)\n    } else if (!status.pinned && index !== -1) {\n      user.pinnedStatusIds.splice(index, 1)\n    }\n  },\n  setUserForStatus (state, status) {\n    status.user = state.usersObject[status.user.id]\n  },\n  setUserForNotification (state, notification) {\n    if (notification.type !== 'follow') {\n      notification.action.user = state.usersObject[notification.action.user.id]\n    }\n    notification.from_profile = state.usersObject[notification.from_profile.id]\n  },\n  setColor (state, { user: { id }, highlighted }) {\n    const user = state.usersObject[id]\n    set(user, 'highlight', highlighted)\n  },\n  signUpPending (state) {\n    state.signUpPending = true\n    state.signUpErrors = []\n  },\n  signUpSuccess (state) {\n    state.signUpPending = false\n  },\n  signUpFailure (state, errors) {\n    state.signUpPending = false\n    state.signUpErrors = errors\n  },\n  updateUnreadChatCount (state, { userId, unreadChatCount }) {\n    const user = state.usersObject[userId]\n    if (user) {\n      user.unread_chat_count = unreadChatCount\n    }\n  }\n}\n\nexport const getters = {\n  findUser: state => query => {\n    const result = state.usersObject[query]\n    // In case it's a screen_name, we can try searching case-insensitive\n    if (!result && typeof query === 'string') {\n      return state.usersObject[query.toLowerCase()]\n    }\n    return result\n  },\n  relationship: state => id => {\n    const rel = id && state.relationships[id]\n    return rel || { id, loading: true }\n  }\n}\n\nexport const defaultState = {\n  loggingIn: false,\n  lastLoginName: false,\n  currentUser: false,\n  users: [],\n  usersObject: {},\n  signUpPending: false,\n  signUpErrors: [],\n  relationships: {}\n}\n\nconst users = {\n  state: defaultState,\n  mutations,\n  getters,\n  actions: {\n    updateUnreadChatCount (store, { userId, unreadChatCount }) {\n      store.commit('updateUnreadChatCount', { userId, unreadChatCount })\n    },\n    fetchUser (store, id) {\n      return store.rootState.api.backendInteractor.fetchUser({ id })\n        .then((user) => {\n          store.commit('addNewUsers', [user])\n          return user\n        })\n    },\n    fetchUserRelationship (store, id) {\n      if (store.state.currentUser) {\n        store.rootState.api.backendInteractor.fetchUserRelationship({ id })\n          .then((relationships) => store.commit('updateUserRelationship', relationships))\n      }\n    },\n    fetchBlocks (store) {\n      return store.rootState.api.backendInteractor.fetchBlocks()\n        .then((blocks) => {\n          store.commit('saveBlockIds', map(blocks, 'id'))\n          store.commit('addNewUsers', blocks)\n          return blocks\n        })\n    },\n    blockUser (store, id) {\n      return blockUser(store, id)\n    },\n    unblockUser (store, id) {\n      return unblockUser(store, id)\n    },\n    blockUsers (store, ids = []) {\n      return Promise.all(ids.map(id => blockUser(store, id)))\n    },\n    unblockUsers (store, ids = []) {\n      return Promise.all(ids.map(id => unblockUser(store, id)))\n    },\n    fetchMutes (store) {\n      return store.rootState.api.backendInteractor.fetchMutes()\n        .then((mutes) => {\n          store.commit('saveMuteIds', map(mutes, 'id'))\n          store.commit('addNewUsers', mutes)\n          return mutes\n        })\n    },\n    muteUser (store, id) {\n      return muteUser(store, id)\n    },\n    unmuteUser (store, id) {\n      return unmuteUser(store, id)\n    },\n    hideReblogs (store, id) {\n      return hideReblogs(store, id)\n    },\n    showReblogs (store, id) {\n      return showReblogs(store, id)\n    },\n    muteUsers (store, ids = []) {\n      return Promise.all(ids.map(id => muteUser(store, id)))\n    },\n    unmuteUsers (store, ids = []) {\n      return Promise.all(ids.map(id => unmuteUser(store, id)))\n    },\n    fetchDomainMutes (store) {\n      return store.rootState.api.backendInteractor.fetchDomainMutes()\n        .then((domainMutes) => {\n          store.commit('saveDomainMutes', domainMutes)\n          return domainMutes\n        })\n    },\n    muteDomain (store, domain) {\n      return muteDomain(store, domain)\n    },\n    unmuteDomain (store, domain) {\n      return unmuteDomain(store, domain)\n    },\n    muteDomains (store, domains = []) {\n      return Promise.all(domains.map(domain => muteDomain(store, domain)))\n    },\n    unmuteDomains (store, domain = []) {\n      return Promise.all(domain.map(domain => unmuteDomain(store, domain)))\n    },\n    fetchFriends ({ rootState, commit }, id) {\n      const user = rootState.users.usersObject[id]\n      const maxId = last(user.friendIds)\n      return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n        .then((friends) => {\n          commit('addNewUsers', friends)\n          commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n          return friends\n        })\n    },\n    fetchFollowers ({ rootState, commit }, id) {\n      const user = rootState.users.usersObject[id]\n      const maxId = last(user.followerIds)\n      return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n        .then((followers) => {\n          commit('addNewUsers', followers)\n          commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n          return followers\n        })\n    },\n    clearFriends ({ commit }, userId) {\n      commit('clearFriends', userId)\n    },\n    clearFollowers ({ commit }, userId) {\n      commit('clearFollowers', userId)\n    },\n    subscribeUser ({ rootState, commit }, id) {\n      return rootState.api.backendInteractor.subscribeUser({ id })\n        .then((relationship) => commit('updateUserRelationship', [relationship]))\n    },\n    unsubscribeUser ({ rootState, commit }, id) {\n      return rootState.api.backendInteractor.unsubscribeUser({ id })\n        .then((relationship) => commit('updateUserRelationship', [relationship]))\n    },\n    toggleActivationStatus ({ rootState, commit }, { user }) {\n      const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n      api({ user })\n        .then(({ deactivated }) => commit('updateActivationStatus', { user, deactivated }))\n    },\n    registerPushNotifications (store) {\n      const token = store.state.currentUser.credentials\n      const vapidPublicKey = store.rootState.instance.vapidPublicKey\n      const isEnabled = store.rootState.config.webPushNotifications\n      const notificationVisibility = store.rootState.config.notificationVisibility\n\n      registerPushNotifications(isEnabled, vapidPublicKey, token, notificationVisibility)\n    },\n    unregisterPushNotifications (store) {\n      const token = store.state.currentUser.credentials\n\n      unregisterPushNotifications(token)\n    },\n    addNewUsers ({ commit }, users) {\n      commit('addNewUsers', users)\n    },\n    addNewStatuses (store, { statuses }) {\n      const users = map(statuses, 'user')\n      const retweetedUsers = compact(map(statuses, 'retweeted_status.user'))\n      store.commit('addNewUsers', users)\n      store.commit('addNewUsers', retweetedUsers)\n\n      each(statuses, (status) => {\n        // Reconnect users to statuses\n        store.commit('setUserForStatus', status)\n        // Set pinned statuses to user\n        store.commit('setPinnedToUser', status)\n      })\n      each(compact(map(statuses, 'retweeted_status')), (status) => {\n        // Reconnect users to retweets\n        store.commit('setUserForStatus', status)\n        // Set pinned retweets to user\n        store.commit('setPinnedToUser', status)\n      })\n    },\n    addNewNotifications (store, { notifications }) {\n      const users = map(notifications, 'from_profile')\n      const targetUsers = map(notifications, 'target').filter(_ => _)\n      const notificationIds = notifications.map(_ => _.id)\n      store.commit('addNewUsers', users)\n      store.commit('addNewUsers', targetUsers)\n\n      const notificationsObject = store.rootState.statuses.notifications.idStore\n      const relevantNotifications = Object.entries(notificationsObject)\n        .filter(([k, val]) => notificationIds.includes(k))\n        .map(([k, val]) => val)\n\n      // Reconnect users to notifications\n      each(relevantNotifications, (notification) => {\n        store.commit('setUserForNotification', notification)\n      })\n    },\n    searchUsers (store, { query }) {\n      return store.rootState.api.backendInteractor.searchUsers({ query })\n        .then((users) => {\n          store.commit('addNewUsers', users)\n          return users\n        })\n    },\n    async signUp (store, userInfo) {\n      store.commit('signUpPending')\n\n      let rootState = store.rootState\n\n      try {\n        let data = await rootState.api.backendInteractor.register(\n          { params: { ...userInfo } }\n        )\n        store.commit('signUpSuccess')\n        store.commit('setToken', data.access_token)\n        store.dispatch('loginUser', data.access_token)\n      } catch (e) {\n        let errors = e.message\n        store.commit('signUpFailure', errors)\n        throw e\n      }\n    },\n    async getCaptcha (store) {\n      return store.rootState.api.backendInteractor.getCaptcha()\n    },\n\n    logout (store) {\n      const { oauth, instance } = store.rootState\n\n      const data = {\n        ...oauth,\n        commit: store.commit,\n        instance: instance.server\n      }\n\n      return oauthApi.getOrCreateApp(data)\n        .then((app) => {\n          const params = {\n            app,\n            instance: data.instance,\n            token: oauth.userToken\n          }\n\n          return oauthApi.revokeToken(params)\n        })\n        .then(() => {\n          store.commit('clearCurrentUser')\n          store.dispatch('disconnectFromSocket')\n          store.commit('clearToken')\n          store.dispatch('stopFetchingTimeline', 'friends')\n          store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n          store.dispatch('stopFetchingNotifications')\n          store.dispatch('stopFetchingFollowRequests')\n          store.commit('clearNotifications')\n          store.commit('resetStatuses')\n        })\n    },\n    loginUser (store, accessToken) {\n      return new Promise((resolve, reject) => {\n        const commit = store.commit\n        commit('beginLogin')\n        store.rootState.api.backendInteractor.verifyCredentials(accessToken)\n          .then((data) => {\n            if (!data.error) {\n              const user = data\n              // user.credentials = userCredentials\n              user.credentials = accessToken\n              user.blockIds = []\n              user.muteIds = []\n              user.domainMutes = []\n              commit('setCurrentUser', user)\n              commit('addNewUsers', [user])\n\n              store.dispatch('fetchEmoji')\n\n              getNotificationPermission()\n                .then(permission => commit('setNotificationPermission', permission))\n\n              // Set our new backend interactor\n              commit('setBackendInteractor', backendInteractorService(accessToken))\n\n              if (user.token) {\n                store.dispatch('setWsToken', user.token)\n\n                // Initialize the chat socket.\n                store.dispatch('initializeSocket')\n              }\n\n              const startPolling = () => {\n                // Start getting fresh posts.\n                store.dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n                // Start fetching notifications\n                store.dispatch('startFetchingNotifications')\n              }\n\n              if (store.getters.mergedConfig.useStreamingApi) {\n                store.dispatch('enableMastoSockets').catch((error) => {\n                  console.error('Failed initializing MastoAPI Streaming socket', error)\n                  startPolling()\n                }).then(() => {\n                  setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n                })\n              } else {\n                startPolling()\n              }\n\n              // Get user mutes\n              store.dispatch('fetchMutes')\n\n              // Fetch our friends\n              store.rootState.api.backendInteractor.fetchFriends({ id: user.id })\n                .then((friends) => commit('addNewUsers', friends))\n            } else {\n              const response = data.error\n              // Authentication failed\n              commit('endLogin')\n              if (response.status === 401) {\n                reject(new Error('Wrong username or password'))\n              } else {\n                reject(new Error('An error occurred, please try again'))\n              }\n            }\n            commit('endLogin')\n            resolve()\n          })\n          .catch((error) => {\n            console.log(error)\n            commit('endLogin')\n            reject(new Error('Failed to connect to server, try again'))\n          })\n      })\n    }\n  }\n}\n\nexport default users\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { Socket } from 'phoenix'\n\nconst api = {\n  state: {\n    backendInteractor: backendInteractorService(),\n    fetchers: {},\n    socket: null,\n    mastoUserSocket: null,\n    followRequests: []\n  },\n  mutations: {\n    setBackendInteractor (state, backendInteractor) {\n      state.backendInteractor = backendInteractor\n    },\n    addFetcher (state, { fetcherName, fetcher }) {\n      state.fetchers[fetcherName] = fetcher\n    },\n    removeFetcher (state, { fetcherName, fetcher }) {\n      window.clearInterval(fetcher)\n      delete state.fetchers[fetcherName]\n    },\n    setWsToken (state, token) {\n      state.wsToken = token\n    },\n    setSocket (state, socket) {\n      state.socket = socket\n    },\n    setFollowRequests (state, value) {\n      state.followRequests = value\n    }\n  },\n  actions: {\n    // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n    enableMastoSockets (store) {\n      const { state, dispatch } = store\n      if (state.mastoUserSocket) return\n      return dispatch('startMastoUserSocket')\n    },\n    disableMastoSockets (store) {\n      const { state, dispatch } = store\n      if (!state.mastoUserSocket) return\n      return dispatch('stopMastoUserSocket')\n    },\n\n    // MastoAPI 'User' sockets\n    startMastoUserSocket (store) {\n      return new Promise((resolve, reject) => {\n        try {\n          const { state, dispatch, rootState } = store\n          const timelineData = rootState.statuses.timelines.friends\n          state.mastoUserSocket = state.backendInteractor.startUserSocket({ store })\n          state.mastoUserSocket.addEventListener(\n            'message',\n            ({ detail: message }) => {\n              if (!message) return // pings\n              if (message.event === 'notification') {\n                dispatch('addNewNotifications', {\n                  notifications: [message.notification],\n                  older: false\n                })\n              } else if (message.event === 'update') {\n                dispatch('addNewStatuses', {\n                  statuses: [message.status],\n                  userId: false,\n                  showImmediately: timelineData.visibleStatuses.length === 0,\n                  timeline: 'friends'\n                })\n              }\n            }\n          )\n          state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n            console.error('Error in MastoAPI websocket:', error)\n          })\n          state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => {\n            const ignoreCodes = new Set([\n              1000, // Normal (intended) closure\n              1001 // Going away\n            ])\n            const { code } = closeEvent\n            if (ignoreCodes.has(code)) {\n              console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`)\n            } else {\n              console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n              dispatch('startFetchingTimeline', { timeline: 'friends' })\n              dispatch('startFetchingNotifications')\n              dispatch('restartMastoUserSocket')\n            }\n          })\n          resolve()\n        } catch (e) {\n          reject(e)\n        }\n      })\n    },\n    restartMastoUserSocket ({ dispatch }) {\n      // This basically starts MastoAPI user socket and stops conventional\n      // fetchers when connection reestablished\n      return dispatch('startMastoUserSocket').then(() => {\n        dispatch('stopFetchingTimeline', { timeline: 'friends' })\n        dispatch('stopFetchingNotifications')\n      })\n    },\n    stopMastoUserSocket ({ state, dispatch }) {\n      dispatch('startFetchingTimeline', { timeline: 'friends' })\n      dispatch('startFetchingNotifications')\n      console.log(state.mastoUserSocket)\n      state.mastoUserSocket.close()\n    },\n\n    // Timelines\n    startFetchingTimeline (store, {\n      timeline = 'friends',\n      tag = false,\n      userId = false\n    }) {\n      if (store.state.fetchers[timeline]) return\n\n      const fetcher = store.state.backendInteractor.startFetchingTimeline({\n        timeline, store, userId, tag\n      })\n      store.commit('addFetcher', { fetcherName: timeline, fetcher })\n    },\n    stopFetchingTimeline (store, timeline) {\n      const fetcher = store.state.fetchers[timeline]\n      if (!fetcher) return\n      store.commit('removeFetcher', { fetcherName: timeline, fetcher })\n    },\n\n    // Notifications\n    startFetchingNotifications (store) {\n      if (store.state.fetchers.notifications) return\n      const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })\n      store.commit('addFetcher', { fetcherName: 'notifications', fetcher })\n    },\n    stopFetchingNotifications (store) {\n      const fetcher = store.state.fetchers.notifications\n      if (!fetcher) return\n      store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })\n    },\n    fetchAndUpdateNotifications (store) {\n      store.state.backendInteractor.fetchAndUpdateNotifications({ store })\n    },\n\n    // Follow requests\n    startFetchingFollowRequests (store) {\n      if (store.state.fetchers['followRequests']) return\n      const fetcher = store.state.backendInteractor.startFetchingFollowRequests({ store })\n\n      store.commit('addFetcher', { fetcherName: 'followRequests', fetcher })\n    },\n    stopFetchingFollowRequests (store) {\n      const fetcher = store.state.fetchers.followRequests\n      if (!fetcher) return\n      store.commit('removeFetcher', { fetcherName: 'followRequests', fetcher })\n    },\n    removeFollowRequest (store, request) {\n      let requests = store.state.followRequests.filter((it) => it !== request)\n      store.commit('setFollowRequests', requests)\n    },\n\n    // Pleroma websocket\n    setWsToken (store, token) {\n      store.commit('setWsToken', token)\n    },\n    initializeSocket ({ dispatch, commit, state, rootState }) {\n      // Set up websocket connection\n      const token = state.wsToken\n      if (rootState.instance.chatAvailable && typeof token !== 'undefined' && state.socket === null) {\n        const socket = new Socket('/socket', { params: { token } })\n        socket.connect()\n\n        commit('setSocket', socket)\n        dispatch('initializeChat', socket)\n      }\n    },\n    disconnectFromSocket ({ commit, state }) {\n      state.socket && state.socket.disconnect()\n      commit('setSocket', null)\n    }\n  }\n}\n\nexport default api\n","const chat = {\n  state: {\n    messages: [],\n    channel: { state: '' }\n  },\n  mutations: {\n    setChannel (state, channel) {\n      state.channel = channel\n    },\n    addMessage (state, message) {\n      state.messages.push(message)\n      state.messages = state.messages.slice(-19, 20)\n    },\n    setMessages (state, messages) {\n      state.messages = messages.slice(-19, 20)\n    }\n  },\n  actions: {\n    initializeChat (store, socket) {\n      const channel = socket.channel('chat:public')\n      channel.on('new_msg', (msg) => {\n        store.commit('addMessage', msg)\n      })\n      channel.on('messages', ({ messages }) => {\n        store.commit('setMessages', messages)\n      })\n      channel.join()\n      store.commit('setChannel', channel)\n    }\n  }\n}\n\nexport default chat\n","import { delete as del } from 'vue'\n\nconst oauth = {\n  state: {\n    clientId: false,\n    clientSecret: false,\n    /* App token is authentication for app without any user, used mostly for\n     * MastoAPI's registration of new users, stored so that we can fall back to\n     * it on logout\n     */\n    appToken: false,\n    /* User token is authentication for app with user, this is for every calls\n     * that need authorized user to be successful (i.e. posting, liking etc)\n     */\n    userToken: false\n  },\n  mutations: {\n    setClientData (state, { clientId, clientSecret }) {\n      state.clientId = clientId\n      state.clientSecret = clientSecret\n    },\n    setAppToken (state, token) {\n      state.appToken = token\n    },\n    setToken (state, token) {\n      state.userToken = token\n    },\n    clearToken (state) {\n      state.userToken = false\n      // state.token is userToken with older name, coming from persistent state\n      // let's clear it as well, since it is being used as a fallback of state.userToken\n      del(state, 'token')\n    }\n  },\n  getters: {\n    getToken: state => () => {\n      // state.token is userToken with older name, coming from persistent state\n      // added here for smoother transition, otherwise user will be logged out\n      return state.userToken || state.token || state.appToken\n    },\n    getUserToken: state => () => {\n      // state.token is userToken with older name, coming from persistent state\n      // added here for smoother transition, otherwise user will be logged out\n      return state.userToken || state.token\n    }\n  }\n}\n\nexport default oauth\n","const PASSWORD_STRATEGY = 'password'\nconst TOKEN_STRATEGY = 'token'\n\n// MFA strategies\nconst TOTP_STRATEGY = 'totp'\nconst RECOVERY_STRATEGY = 'recovery'\n\n// initial state\nconst state = {\n  settings: {},\n  strategy: PASSWORD_STRATEGY,\n  initStrategy: PASSWORD_STRATEGY // default strategy from config\n}\n\nconst resetState = (state) => {\n  state.strategy = state.initStrategy\n  state.settings = {}\n}\n\n// getters\nconst getters = {\n  settings: (state, getters) => {\n    return state.settings\n  },\n  requiredPassword: (state, getters, rootState) => {\n    return state.strategy === PASSWORD_STRATEGY\n  },\n  requiredToken: (state, getters, rootState) => {\n    return state.strategy === TOKEN_STRATEGY\n  },\n  requiredTOTP: (state, getters, rootState) => {\n    return state.strategy === TOTP_STRATEGY\n  },\n  requiredRecovery: (state, getters, rootState) => {\n    return state.strategy === RECOVERY_STRATEGY\n  }\n}\n\n// mutations\nconst mutations = {\n  setInitialStrategy (state, strategy) {\n    if (strategy) {\n      state.initStrategy = strategy\n      state.strategy = strategy\n    }\n  },\n  requirePassword (state) {\n    state.strategy = PASSWORD_STRATEGY\n  },\n  requireToken (state) {\n    state.strategy = TOKEN_STRATEGY\n  },\n  requireMFA (state, { settings }) {\n    state.settings = settings\n    state.strategy = TOTP_STRATEGY // default strategy of MFA\n  },\n  requireRecovery (state) {\n    state.strategy = RECOVERY_STRATEGY\n  },\n  requireTOTP (state) {\n    state.strategy = TOTP_STRATEGY\n  },\n  abortMFA (state) {\n    resetState(state)\n  }\n}\n\n// actions\nconst actions = {\n  // eslint-disable-next-line camelcase\n  async login ({ state, dispatch, commit }, { access_token }) {\n    commit('setToken', access_token, { root: true })\n    await dispatch('loginUser', access_token, { root: true })\n    resetState(state)\n  }\n}\n\nexport default {\n  namespaced: true,\n  state,\n  getters,\n  mutations,\n  actions\n}\n","import fileTypeService from '../services/file_type/file_type.service.js'\n\nconst mediaViewer = {\n  state: {\n    media: [],\n    currentIndex: 0,\n    activated: false\n  },\n  mutations: {\n    setMedia (state, media) {\n      state.media = media\n    },\n    setCurrent (state, index) {\n      state.activated = true\n      state.currentIndex = index\n    },\n    close (state) {\n      state.activated = false\n    }\n  },\n  actions: {\n    setMedia ({ commit }, attachments) {\n      const media = attachments.filter(attachment => {\n        const type = fileTypeService.fileType(attachment.mimetype)\n        return type === 'image' || type === 'video'\n      })\n      commit('setMedia', media)\n    },\n    setCurrent ({ commit, state }, current) {\n      const index = state.media.indexOf(current)\n      commit('setCurrent', index || 0)\n    },\n    closeMediaViewer ({ commit }) {\n      commit('close')\n    }\n  }\n}\n\nexport default mediaViewer\n","const oauthTokens = {\n  state: {\n    tokens: []\n  },\n  actions: {\n    fetchTokens ({ rootState, commit }) {\n      rootState.api.backendInteractor.fetchOAuthTokens().then((tokens) => {\n        commit('swapTokens', tokens)\n      })\n    },\n    revokeToken ({ rootState, commit, state }, id) {\n      rootState.api.backendInteractor.revokeOAuthToken({ id }).then((response) => {\n        if (response.status === 201) {\n          commit('swapTokens', state.tokens.filter(token => token.id !== id))\n        }\n      })\n    }\n  },\n  mutations: {\n    swapTokens (state, tokens) {\n      state.tokens = tokens\n    }\n  }\n}\n\nexport default oauthTokens\n","import filter from 'lodash/filter'\n\nconst reports = {\n  state: {\n    userId: null,\n    statuses: [],\n    modalActivated: false\n  },\n  mutations: {\n    openUserReportingModal (state, { userId, statuses }) {\n      state.userId = userId\n      state.statuses = statuses\n      state.modalActivated = true\n    },\n    closeUserReportingModal (state) {\n      state.modalActivated = false\n    }\n  },\n  actions: {\n    openUserReportingModal ({ rootState, commit }, userId) {\n      const statuses = filter(rootState.statuses.allStatuses, status => status.user.id === userId)\n      commit('openUserReportingModal', { userId, statuses })\n    },\n    closeUserReportingModal ({ commit }) {\n      commit('closeUserReportingModal')\n    }\n  }\n}\n\nexport default reports\n","import { merge } from 'lodash'\nimport { set } from 'vue'\n\nconst polls = {\n  state: {\n    // Contains key = id, value = number of trackers for this poll\n    trackedPolls: {},\n    pollsObject: {}\n  },\n  mutations: {\n    mergeOrAddPoll (state, poll) {\n      const existingPoll = state.pollsObject[poll.id]\n      // Make expired-state change trigger re-renders properly\n      poll.expired = Date.now() > Date.parse(poll.expires_at)\n      if (existingPoll) {\n        set(state.pollsObject, poll.id, merge(existingPoll, poll))\n      } else {\n        set(state.pollsObject, poll.id, poll)\n      }\n    },\n    trackPoll (state, pollId) {\n      const currentValue = state.trackedPolls[pollId]\n      if (currentValue) {\n        set(state.trackedPolls, pollId, currentValue + 1)\n      } else {\n        set(state.trackedPolls, pollId, 1)\n      }\n    },\n    untrackPoll (state, pollId) {\n      const currentValue = state.trackedPolls[pollId]\n      if (currentValue) {\n        set(state.trackedPolls, pollId, currentValue - 1)\n      } else {\n        set(state.trackedPolls, pollId, 0)\n      }\n    }\n  },\n  actions: {\n    mergeOrAddPoll ({ commit }, poll) {\n      commit('mergeOrAddPoll', poll)\n    },\n    updateTrackedPoll ({ rootState, dispatch, commit }, pollId) {\n      rootState.api.backendInteractor.fetchPoll({ pollId }).then(poll => {\n        setTimeout(() => {\n          if (rootState.polls.trackedPolls[pollId]) {\n            dispatch('updateTrackedPoll', pollId)\n          }\n        }, 30 * 1000)\n        commit('mergeOrAddPoll', poll)\n      })\n    },\n    trackPoll ({ rootState, commit, dispatch }, pollId) {\n      if (!rootState.polls.trackedPolls[pollId]) {\n        setTimeout(() => dispatch('updateTrackedPoll', pollId), 30 * 1000)\n      }\n      commit('trackPoll', pollId)\n    },\n    untrackPoll ({ commit }, pollId) {\n      commit('untrackPoll', pollId)\n    },\n    votePoll ({ rootState, commit }, { id, pollId, choices }) {\n      return rootState.api.backendInteractor.vote({ pollId, choices }).then(poll => {\n        commit('mergeOrAddPoll', poll)\n        return poll\n      })\n    }\n  }\n}\n\nexport default polls\n","const postStatus = {\n  state: {\n    params: null,\n    modalActivated: false\n  },\n  mutations: {\n    openPostStatusModal (state, params) {\n      state.params = params\n      state.modalActivated = true\n    },\n    closePostStatusModal (state) {\n      state.modalActivated = false\n    }\n  },\n  actions: {\n    openPostStatusModal ({ commit }, params) {\n      commit('openPostStatusModal', params)\n    },\n    closePostStatusModal ({ commit }) {\n      commit('closePostStatusModal')\n    }\n  }\n}\n\nexport default postStatus\n","import _ from 'lodash'\n\nconst empty = (chatId) => {\n  return {\n    idIndex: {},\n    messages: [],\n    newMessageCount: 0,\n    lastSeenTimestamp: 0,\n    chatId: chatId,\n    minId: undefined,\n    lastMessage: undefined\n  }\n}\n\nconst deleteMessage = (storage, messageId) => {\n  if (!storage) { return }\n  storage.messages = storage.messages.filter(m => m.id !== messageId)\n  delete storage.idIndex[messageId]\n\n  if (storage.lastMessage && (storage.lastMessage.id === messageId)) {\n    storage.lastMessage = _.maxBy(storage.messages, 'id')\n  }\n\n  if (storage.minId === messageId) {\n    storage.minId = _.minBy(storage.messages, 'id')\n  }\n}\n\nconst add = (storage, { messages: newMessages }) => {\n  if (!storage) { return }\n  for (let i = 0; i < newMessages.length; i++) {\n    let message = newMessages[i]\n\n    // sanity check\n    if (message.chat_id !== storage.chatId) { return }\n\n    if (!storage.minId || message.id < storage.minId) {\n      storage.minId = message.id\n    }\n\n    if (!storage.lastMessage || message.id > storage.lastMessage.id) {\n      storage.lastMessage = message\n    }\n\n    if (!storage.idIndex[message.id]) {\n      if (storage.lastSeenTimestamp < message.created_at) {\n        storage.newMessageCount++\n      }\n      storage.messages.push(message)\n      storage.idIndex[message.id] = message\n    }\n  }\n}\n\nconst resetNewMessageCount = (storage) => {\n  if (!storage) { return }\n  storage.newMessageCount = 0\n  storage.lastSeenTimestamp = new Date()\n}\n\n// Inserts date separators and marks the head and tail if it's the sequence of messages made by the same user\nconst getView = (storage) => {\n  if (!storage) { return [] }\n  let messages = _.sortBy(storage.messages, 'id')\n\n  let res = []\n\n  let prev = messages[messages.length - 1]\n  let currentSequenceId\n\n  let firstMessages = messages[0]\n\n  if (firstMessages) {\n    let date = new Date(firstMessages.created_at)\n    date.setHours(0, 0, 0, 0)\n    res.push({ type: 'date', date: date, id: date.getTime().toString() })\n  }\n\n  let afterDate = false\n\n  for (let i = 0; i < messages.length; i++) {\n    let message = messages[i]\n    let nextMessage = messages[i + 1]\n\n    let date = new Date(message.created_at)\n    date.setHours(0, 0, 0, 0)\n\n    // insert date separator and start a new sequence\n    if (prev && prev.date < date) {\n      res.push({ type: 'date', date: date, id: date.getTime().toString() })\n      prev['isTail'] = true\n      currentSequenceId = undefined\n      afterDate = true\n    }\n\n    let object = { type: 'message', data: message, date: date, id: message.id, sequenceId: currentSequenceId }\n\n    // end a message sequence\n    if ((nextMessage && nextMessage.account_id) !== message.account_id) {\n      object['isTail'] = true\n      currentSequenceId = undefined\n    }\n    // start a new message sequence\n    if ((prev && prev.data && prev.data.account_id) !== message.account_id || afterDate) {\n      currentSequenceId = _.uniqueId()\n      object['isHead'] = true\n      object['sequenceId'] = currentSequenceId\n    }\n    res.push(object)\n    prev = object\n    afterDate = false\n  }\n\n  return res\n}\n\nconst ChatService = {\n  add,\n  empty,\n  getView,\n  deleteMessage,\n  resetNewMessageCount\n}\n\nexport default ChatService\n","import { set } from 'vue'\nimport { find, omitBy, debounce, last, orderBy } from 'lodash'\nimport chatService from '../services/chat_service/chat_service.js'\nimport { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'\n\nconst emptyChatList = () => ({\n  data: [],\n  pagination: { maxId: undefined, minId: undefined },\n  idStore: {}\n})\n\nconst defaultState = {\n  chatList: emptyChatList(),\n  openedChats: {},\n  openedChatMessageServices: {},\n  fetcher: undefined,\n  chatFocused: false,\n  currentChatId: null\n}\n\nconst getChatById = (state, id) => {\n  return find(state.chatList.data, { id })\n}\n\nconst sortedChatList = (state) => {\n  return orderBy(state.chatList.data, ['updated_at'], ['desc'])\n}\n\nconst chats = {\n  state: { ...defaultState },\n  getters: {\n    currentChat: state => state.openedChats[state.currentChatId],\n    currentChatMessageService: state => state.openedChatMessageServices[state.currentChatId],\n    findOpenedChatByRecipientId: state => recipientId => find(state.openedChats, c => c.account.id === recipientId),\n    sortedChatList\n  },\n  actions: {\n    // Chat list\n    startFetchingChats ({ dispatch }) {\n      setInterval(() => {\n        dispatch('fetchChats', { reset: true })\n        // dispatch('refreshCurrentUser')\n      }, 5000)\n    },\n    fetchChats ({ dispatch, rootState, commit }, params = {}) {\n      const pagination = rootState.chats.chatList.pagination\n      const opts = { maxId: params.reset ? undefined : pagination.maxId }\n\n      return rootState.api.backendInteractor.chats(opts)\n        .then(({ chats, pagination }) => {\n          dispatch('addNewChats', { chats, pagination })\n          return chats\n        })\n    },\n    addNewChats ({ rootState, commit, dispatch, rootGetters }, { chats, pagination }) {\n      commit('addNewChats', { dispatch, chats, pagination, rootGetters })\n    },\n    updateChatByAccountId: debounce(({ rootState, commit, dispatch, rootGetters }, { accountId }) => {\n      rootState.api.backendInteractor.getOrCreateChat({ accountId }).then(chat => {\n        commit('updateChat', { dispatch, rootGetters, chat: parseChat(chat) })\n      })\n    }, 100),\n\n    // Opened Chats\n    startFetchingCurrentChat ({ commit, dispatch }, { fetcher }) {\n      dispatch('setCurrentChatFetcher', { fetcher })\n    },\n    setCurrentChatFetcher ({ rootState, commit }, { fetcher }) {\n      commit('setCurrentChatFetcher', { fetcher })\n    },\n    addOpenedChat ({ rootState, commit, dispatch }, { chat }) {\n      commit('addOpenedChat', { dispatch, chat: parseChat(chat) })\n      dispatch('addNewUsers', [chat.account])\n    },\n    addChatMessages ({ commit }, value) {\n      commit('addChatMessages', { commit, ...value })\n    },\n    setChatFocused ({ commit }, value) {\n      commit('setChatFocused', value)\n    },\n    resetChatNewMessageCount ({ commit }, value) {\n      commit('resetChatNewMessageCount', value)\n    },\n    removeFromCurrentChatStatuses ({ commit }, { id }) {\n      commit('removeFromCurrentChatStatuses', id)\n    },\n    clearCurrentChat ({ rootState, commit, dispatch }, value) {\n      commit('setCurrentChatId', { chatId: undefined })\n      commit('setCurrentChatFetcher', { fetcher: undefined })\n    },\n    readChat ({ rootState, dispatch }, { id }) {\n      dispatch('resetChatNewMessageCount')\n      dispatch('markMultipleNotificationsAsSeen', {\n        finder: n => n.chatMessage && n.chatMessage.chat_id === id && !n.seen\n      })\n      rootState.api.backendInteractor.readChat({ id }).then(() => {\n        // dispatch('refreshCurrentUser')\n      })\n    },\n    deleteChatMessage ({ rootState, commit, dispatch }, value) {\n      rootState.api.backendInteractor.deleteChatMessage(value)\n      commit('deleteChatMessage', { commit, ...value })\n    }\n  },\n  mutations: {\n    setCurrentChatFetcher (state, { fetcher }) {\n      let prevFetcher = state.fetcher\n      if (prevFetcher) {\n        clearInterval(prevFetcher)\n      }\n      state.fetcher = fetcher && fetcher()\n    },\n    addOpenedChat (state, { _dispatch, chat }) {\n      state.currentChatId = chat.id\n      set(state.openedChats, chat.id, chat)\n\n      if (!state.openedChatMessageServices[chat.id]) {\n        set(state.openedChatMessageServices, chat.id, chatService.empty(chat.id))\n      }\n    },\n    setCurrentChatId (state, { chatId }) {\n      state.currentChatId = chatId\n    },\n    addNewChats (state, { _dispatch, chats, pagination, _rootGetters }) {\n      if (chats.length > 0) {\n        state.chatList.pagination = { maxId: last(chats).id }\n      }\n      chats.forEach((updatedChat) => {\n        let chat = getChatById(state, updatedChat.id)\n\n        if (chat) {\n          chat.lastMessage = updatedChat.lastMessage\n          chat.unread = updatedChat.unread\n        } else {\n          state.chatList.data.push(updatedChat)\n          set(state.chatList.idStore, updatedChat.id, updatedChat)\n        }\n      })\n    },\n    updateChat (state, { _dispatch, chat: updatedChat, _rootGetters }) {\n      let chat = getChatById(state, updatedChat.id)\n      if (chat) {\n        chat.lastMessage = updatedChat.lastMessage\n        chat.unread = updatedChat.unread\n        chat.updated_at = updatedChat.updated_at\n      }\n      if (!chat) { state.chatList.data.unshift(updatedChat) }\n      set(state.chatList.idStore, updatedChat.id, updatedChat)\n    },\n    deleteChat (state, { _dispatch, id, _rootGetters }) {\n      state.chats.data = state.chats.data.filter(conversation =>\n        conversation.last_status.id !== id\n      )\n      state.chats.idStore = omitBy(state.chats.idStore, conversation => conversation.last_status.id === id)\n    },\n    resetChats (state, { _dispatch }) {\n      state.chats.data = []\n      state.chats.idStore = {}\n    },\n    setChatsLoading (state, { value }) {\n      state.chats.loading = value\n    },\n    addChatMessages (state, { commit, chatId, messages }) {\n      const chatMessageService = state.openedChatMessageServices[chatId]\n      if (chatMessageService) {\n        chatService.add(chatMessageService, { messages: messages.map(parseChatMessage) })\n        commit('refreshLastMessage', { chatId })\n      }\n    },\n    refreshLastMessage (state, { chatId }) {\n      const chatMessageService = state.openedChatMessageServices[chatId]\n      if (chatMessageService) {\n        let chat = getChatById(state, chatId)\n        if (chat) {\n          chat.lastMessage = chatMessageService.lastMessage\n          chat.updated_at = chatMessageService.lastMessage.created_at\n        }\n      }\n    },\n    deleteChatMessage (state, { commit, chatId, messageId }) {\n      const chatMessageService = state.openedChatMessageServices[chatId]\n      if (chatMessageService) {\n        chatService.deleteMessage(chatMessageService, messageId)\n        commit('refreshLastMessage', { chatId })\n      }\n    },\n    resetChatNewMessageCount (state, _value) {\n      const chatMessageService = state.openedChatMessageServices[state.currentChatId]\n      chatService.resetNewMessageCount(chatMessageService)\n    },\n    setChatFocused (state, value) {\n      state.chatFocused = value\n    }\n  }\n}\n\nexport default chats\n","import merge from 'lodash.merge'\nimport objectPath from 'object-path'\nimport localforage from 'localforage'\nimport { each } from 'lodash'\n\nlet loaded = false\n\nconst defaultReducer = (state, paths) => (\n  paths.length === 0 ? state : paths.reduce((substate, path) => {\n    objectPath.set(substate, path, objectPath.get(state, path))\n    return substate\n  }, {})\n)\n\nconst saveImmedeatelyActions = [\n  'markNotificationsAsSeen',\n  'clearCurrentUser',\n  'setCurrentUser',\n  'setHighlight',\n  'setOption',\n  'setClientData',\n  'setToken',\n  'clearToken'\n]\n\nconst defaultStorage = (() => {\n  return localforage\n})()\n\nexport default function createPersistedState ({\n  key = 'vuex-lz',\n  paths = [],\n  getState = (key, storage) => {\n    let value = storage.getItem(key)\n    return value\n  },\n  setState = (key, state, storage) => {\n    if (!loaded) {\n      console.log('waiting for old state to be loaded...')\n      return Promise.resolve()\n    } else {\n      return storage.setItem(key, state)\n    }\n  },\n  reducer = defaultReducer,\n  storage = defaultStorage,\n  subscriber = store => handler => store.subscribe(handler)\n} = {}) {\n  return getState(key, storage).then((savedState) => {\n    return store => {\n      try {\n        if (savedState !== null && typeof savedState === 'object') {\n          // build user cache\n          const usersState = savedState.users || {}\n          usersState.usersObject = {}\n          const users = usersState.users || []\n          each(users, (user) => { usersState.usersObject[user.id] = user })\n          savedState.users = usersState\n\n          store.replaceState(\n            merge({}, store.state, savedState)\n          )\n        }\n        loaded = true\n      } catch (e) {\n        console.log(\"Couldn't load state\")\n        console.error(e)\n        loaded = true\n      }\n      subscriber(store)((mutation, state) => {\n        try {\n          if (saveImmedeatelyActions.includes(mutation.type)) {\n            setState(key, reducer(state, paths), storage)\n              .then(success => {\n                if (typeof success !== 'undefined') {\n                  if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n                    store.dispatch('settingsSaved', { success })\n                  }\n                }\n              }, error => {\n                if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n                  store.dispatch('settingsSaved', { error })\n                }\n              })\n          }\n        } catch (e) {\n          console.log(\"Couldn't persist state:\")\n          console.log(e)\n        }\n      })\n    }\n  })\n}\n","export default (store) => {\n  store.subscribe((mutation, state) => {\n    const vapidPublicKey = state.instance.vapidPublicKey\n    const webPushNotification = state.config.webPushNotifications\n    const permission = state.interface.notificationPermission === 'granted'\n    const user = state.users.currentUser\n\n    const isUserMutation = mutation.type === 'setCurrentUser'\n    const isVapidMutation = mutation.type === 'setInstanceOption' && mutation.payload.name === 'vapidPublicKey'\n    const isPermMutation = mutation.type === 'setNotificationPermission' && mutation.payload === 'granted'\n    const isUserConfigMutation = mutation.type === 'setOption' && mutation.payload.name === 'webPushNotifications'\n    const isVisibilityMutation = mutation.type === 'setOption' && mutation.payload.name === 'notificationVisibility'\n\n    if (isUserMutation || isVapidMutation || isPermMutation || isUserConfigMutation || isVisibilityMutation) {\n      if (user && vapidPublicKey && permission && webPushNotification) {\n        return store.dispatch('registerPushNotifications')\n      } else if (isUserConfigMutation && !webPushNotification) {\n        return store.dispatch('unregisterPushNotifications')\n      }\n    }\n  })\n}\n","import * as bodyScrollLock from 'body-scroll-lock'\n\nlet previousNavPaddingRight\nlet previousAppBgWrapperRight\nconst lockerEls = new Set([])\n\nconst disableBodyScroll = (el) => {\n  const scrollBarGap = window.innerWidth - document.documentElement.clientWidth\n  bodyScrollLock.disableBodyScroll(el, {\n    reserveScrollBarGap: true\n  })\n  lockerEls.add(el)\n  setTimeout(() => {\n    if (lockerEls.size <= 1) {\n      // If previousNavPaddingRight is already set, don't set it again.\n      if (previousNavPaddingRight === undefined) {\n        const navEl = document.getElementById('nav')\n        previousNavPaddingRight = window.getComputedStyle(navEl).getPropertyValue('padding-right')\n        navEl.style.paddingRight = previousNavPaddingRight ? `calc(${previousNavPaddingRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n      }\n      // If previousAppBgWrapeprRight is already set, don't set it again.\n      if (previousAppBgWrapperRight === undefined) {\n        const appBgWrapperEl = document.getElementById('app_bg_wrapper')\n        previousAppBgWrapperRight = window.getComputedStyle(appBgWrapperEl).getPropertyValue('right')\n        appBgWrapperEl.style.right = previousAppBgWrapperRight ? `calc(${previousAppBgWrapperRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n      }\n      document.body.classList.add('scroll-locked')\n    }\n  })\n}\n\nconst enableBodyScroll = (el) => {\n  lockerEls.delete(el)\n  setTimeout(() => {\n    if (lockerEls.size === 0) {\n      if (previousNavPaddingRight !== undefined) {\n        document.getElementById('nav').style.paddingRight = previousNavPaddingRight\n        // Restore previousNavPaddingRight to undefined so disableBodyScroll knows it can be set again.\n        previousNavPaddingRight = undefined\n      }\n      if (previousAppBgWrapperRight !== undefined) {\n        document.getElementById('app_bg_wrapper').style.right = previousAppBgWrapperRight\n        // Restore previousAppBgWrapperRight to undefined so disableBodyScroll knows it can be set again.\n        previousAppBgWrapperRight = undefined\n      }\n      document.body.classList.remove('scroll-locked')\n    }\n  })\n  bodyScrollLock.enableBodyScroll(el)\n}\n\nconst directive = {\n  inserted: (el, binding) => {\n    if (binding.value) {\n      disableBodyScroll(el)\n    }\n  },\n  componentUpdated: (el, binding) => {\n    if (binding.oldValue === binding.value) {\n      return\n    }\n\n    if (binding.value) {\n      disableBodyScroll(el)\n    } else {\n      enableBodyScroll(el)\n    }\n  },\n  unbind: (el) => {\n    enableBodyScroll(el)\n  }\n}\n\nexport default (Vue) => {\n  Vue.directive('body-scroll-lock', directive)\n}\n","// 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 messages = {\n  ar: require('./ar.json'),\n  ca: require('./ca.json'),\n  cs: require('./cs.json'),\n  de: require('./de.json'),\n  en: require('./en.json'),\n  eo: require('./eo.json'),\n  es: require('./es.json'),\n  et: require('./et.json'),\n  eu: require('./eu.json'),\n  fi: require('./fi.json'),\n  fr: require('./fr.json'),\n  ga: require('./ga.json'),\n  he: require('./he.json'),\n  hu: require('./hu.json'),\n  it: require('./it.json'),\n  ja: require('./ja_pedantic.json'),\n  ja_easy: require('./ja_easy.json'),\n  ko: require('./ko.json'),\n  nb: require('./nb.json'),\n  nl: require('./nl.json'),\n  oc: require('./oc.json'),\n  pl: require('./pl.json'),\n  pt: require('./pt.json'),\n  ro: require('./ro.json'),\n  ru: require('./ru.json'),\n  te: require('./te.json'),\n  zh: require('./zh.json')\n}\n\nexport default messages\n","import { reduce, filter, findIndex, clone, get } from 'lodash'\nimport Status from '../status/status.vue'\n\nconst sortById = (a, b) => {\n  const idA = a.type === 'retweet' ? a.retweeted_status.id : a.id\n  const idB = b.type === 'retweet' ? b.retweeted_status.id : b.id\n  const seqA = Number(idA)\n  const seqB = Number(idB)\n  const isSeqA = !Number.isNaN(seqA)\n  const isSeqB = !Number.isNaN(seqB)\n  if (isSeqA && isSeqB) {\n    return seqA < seqB ? -1 : 1\n  } else if (isSeqA && !isSeqB) {\n    return -1\n  } else if (!isSeqA && isSeqB) {\n    return 1\n  } else {\n    return idA < idB ? -1 : 1\n  }\n}\n\nconst sortAndFilterConversation = (conversation, statusoid) => {\n  if (statusoid.type === 'retweet') {\n    conversation = filter(\n      conversation,\n      (status) => (status.type === 'retweet' || status.id !== statusoid.retweeted_status.id)\n    )\n  } else {\n    conversation = filter(conversation, (status) => status.type !== 'retweet')\n  }\n  return conversation.filter(_ => _).sort(sortById)\n}\n\nconst conversation = {\n  data () {\n    return {\n      highlight: null,\n      expanded: false\n    }\n  },\n  props: [\n    'statusId',\n    'collapsable',\n    'isPage',\n    'pinnedStatusIdsObject',\n    'inProfile',\n    'profileUserId'\n  ],\n  created () {\n    if (this.isPage) {\n      this.fetchConversation()\n    }\n  },\n  computed: {\n    status () {\n      return this.$store.state.statuses.allStatusesObject[this.statusId]\n    },\n    originalStatusId () {\n      if (this.status.retweeted_status) {\n        return this.status.retweeted_status.id\n      } else {\n        return this.statusId\n      }\n    },\n    conversationId () {\n      return this.getConversationId(this.statusId)\n    },\n    conversation () {\n      if (!this.status) {\n        return []\n      }\n\n      if (!this.isExpanded) {\n        return [this.status]\n      }\n\n      const conversation = clone(this.$store.state.statuses.conversationsObject[this.conversationId])\n      const statusIndex = findIndex(conversation, { id: this.originalStatusId })\n      if (statusIndex !== -1) {\n        conversation[statusIndex] = this.status\n      }\n\n      return sortAndFilterConversation(conversation, this.status)\n    },\n    replies () {\n      let i = 1\n      // eslint-disable-next-line camelcase\n      return reduce(this.conversation, (result, { id, in_reply_to_status_id }) => {\n        /* eslint-disable camelcase */\n        const irid = in_reply_to_status_id\n        /* eslint-enable camelcase */\n        if (irid) {\n          result[irid] = result[irid] || []\n          result[irid].push({\n            name: `#${i}`,\n            id: id\n          })\n        }\n        i++\n        return result\n      }, {})\n    },\n    isExpanded () {\n      return this.expanded || this.isPage\n    }\n  },\n  components: {\n    Status\n  },\n  watch: {\n    statusId (newVal, oldVal) {\n      const newConversationId = this.getConversationId(newVal)\n      const oldConversationId = this.getConversationId(oldVal)\n      if (newConversationId && oldConversationId && newConversationId === oldConversationId) {\n        this.setHighlight(this.originalStatusId)\n      } else {\n        this.fetchConversation()\n      }\n    },\n    expanded (value) {\n      if (value) {\n        this.fetchConversation()\n      }\n    }\n  },\n  methods: {\n    fetchConversation () {\n      if (this.status) {\n        this.$store.state.api.backendInteractor.fetchConversation({ id: this.statusId })\n          .then(({ ancestors, descendants }) => {\n            this.$store.dispatch('addNewStatuses', { statuses: ancestors })\n            this.$store.dispatch('addNewStatuses', { statuses: descendants })\n            this.setHighlight(this.originalStatusId)\n          })\n      } else {\n        this.$store.state.api.backendInteractor.fetchStatus({ id: this.statusId })\n          .then((status) => {\n            this.$store.dispatch('addNewStatuses', { statuses: [status] })\n            this.fetchConversation()\n          })\n      }\n    },\n    getReplies (id) {\n      return this.replies[id] || []\n    },\n    focused (id) {\n      return (this.isExpanded) && id === this.statusId\n    },\n    setHighlight (id) {\n      if (!id) return\n      this.highlight = id\n      this.$store.dispatch('fetchFavsAndRepeats', id)\n      this.$store.dispatch('fetchEmojiReactionsBy', id)\n    },\n    getHighlight () {\n      return this.isExpanded ? this.highlight : null\n    },\n    toggleExpanded () {\n      this.expanded = !this.expanded\n    },\n    getConversationId (statusId) {\n      const status = this.$store.state.statuses.allStatusesObject[statusId]\n      return get(status, 'retweeted_status.statusnet_conversation_id', get(status, 'statusnet_conversation_id'))\n    }\n  }\n}\n\nexport default conversation\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./conversation.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./conversation.js\"\nimport __vue_script__ from \"!!babel-loader!./conversation.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ea37054e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./conversation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"timeline panel-default\",class:[_vm.isExpanded ? 'panel' : 'panel-disabled']},[(_vm.isExpanded)?_c('div',{staticClass:\"panel-heading conversation-heading\"},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t('timeline.conversation'))+\" \")]),_vm._v(\" \"),(_vm.collapsable)?_c('span',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleExpanded($event)}}},[_vm._v(_vm._s(_vm.$t('timeline.collapse')))])]):_vm._e()]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.conversation),function(status){return _c('status',{key:status.id,staticClass:\"status-fadein panel-body\",attrs:{\"inline-expanded\":_vm.collapsable && _vm.isExpanded,\"statusoid\":status,\"expandable\":!_vm.isExpanded,\"show-pinned\":_vm.pinnedStatusIdsObject && _vm.pinnedStatusIdsObject[status.id],\"focused\":_vm.focused(status.id),\"in-conversation\":_vm.isExpanded,\"highlight\":_vm.getHighlight(),\"replies\":_vm.getReplies(status.id),\"in-profile\":_vm.inProfile,\"profile-user-id\":_vm.profileUserId},on:{\"goto\":_vm.setHighlight,\"toggleExpanded\":_vm.toggleExpanded}})})],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Status from '../status/status.vue'\nimport timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'\nimport Conversation from '../conversation/conversation.vue'\nimport { throttle, keyBy } from 'lodash'\n\nexport const getExcludedStatusIdsByPinning = (statuses, pinnedStatusIds) => {\n  const ids = []\n  if (pinnedStatusIds && pinnedStatusIds.length > 0) {\n    for (let status of statuses) {\n      if (!pinnedStatusIds.includes(status.id)) {\n        break\n      }\n      ids.push(status.id)\n    }\n  }\n  return ids\n}\n\nconst Timeline = {\n  props: [\n    'timeline',\n    'timelineName',\n    'title',\n    'userId',\n    'tag',\n    'embedded',\n    'count',\n    'pinnedStatusIds',\n    'inProfile'\n  ],\n  data () {\n    return {\n      paused: false,\n      unfocused: false,\n      bottomedOut: false\n    }\n  },\n  computed: {\n    timelineError () {\n      return this.$store.state.statuses.error\n    },\n    errorData () {\n      return this.$store.state.statuses.errorData\n    },\n    newStatusCount () {\n      return this.timeline.newStatusCount\n    },\n    newStatusCountStr () {\n      if (this.timeline.flushMarker !== 0) {\n        return ''\n      } else {\n        return ` (${this.newStatusCount})`\n      }\n    },\n    classes () {\n      return {\n        root: ['timeline'].concat(!this.embedded ? ['panel', 'panel-default'] : []),\n        header: ['timeline-heading'].concat(!this.embedded ? ['panel-heading'] : []),\n        body: ['timeline-body'].concat(!this.embedded ? ['panel-body'] : []),\n        footer: ['timeline-footer'].concat(!this.embedded ? ['panel-footer'] : [])\n      }\n    },\n    // id map of statuses which need to be hidden in the main list due to pinning logic\n    excludedStatusIdsObject () {\n      const ids = getExcludedStatusIdsByPinning(this.timeline.visibleStatuses, this.pinnedStatusIds)\n      // Convert id array to object\n      return keyBy(ids)\n    },\n    pinnedStatusIdsObject () {\n      return keyBy(this.pinnedStatusIds)\n    }\n  },\n  components: {\n    Status,\n    Conversation\n  },\n  created () {\n    const store = this.$store\n    const credentials = store.state.users.currentUser.credentials\n    const showImmediately = this.timeline.visibleStatuses.length === 0\n\n    window.addEventListener('scroll', this.scrollLoad)\n\n    if (store.state.api.fetchers[this.timelineName]) { return false }\n\n    timelineFetcher.fetchAndUpdate({\n      store,\n      credentials,\n      timeline: this.timelineName,\n      showImmediately,\n      userId: this.userId,\n      tag: this.tag\n    })\n  },\n  mounted () {\n    if (typeof document.hidden !== 'undefined') {\n      document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n      this.unfocused = document.hidden\n    }\n    window.addEventListener('keydown', this.handleShortKey)\n  },\n  destroyed () {\n    window.removeEventListener('scroll', this.scrollLoad)\n    window.removeEventListener('keydown', this.handleShortKey)\n    if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n    this.$store.commit('setLoading', { timeline: this.timelineName, value: false })\n  },\n  methods: {\n    handleShortKey (e) {\n      // Ignore when input fields are focused\n      if (['textarea', 'input'].includes(e.target.tagName.toLowerCase())) return\n      if (e.key === '.') this.showNewStatuses()\n    },\n    showNewStatuses () {\n      if (this.newStatusCount === 0) return\n\n      if (this.timeline.flushMarker !== 0) {\n        this.$store.commit('clearTimeline', { timeline: this.timelineName, excludeUserId: true })\n        this.$store.commit('queueFlush', { timeline: this.timelineName, id: 0 })\n        this.fetchOlderStatuses()\n      } else {\n        this.$store.commit('showNewStatuses', { timeline: this.timelineName })\n        this.paused = false\n      }\n    },\n    fetchOlderStatuses: throttle(function () {\n      const store = this.$store\n      const credentials = store.state.users.currentUser.credentials\n      store.commit('setLoading', { timeline: this.timelineName, value: true })\n      timelineFetcher.fetchAndUpdate({\n        store,\n        credentials,\n        timeline: this.timelineName,\n        older: true,\n        showImmediately: true,\n        userId: this.userId,\n        tag: this.tag\n      }).then(statuses => {\n        store.commit('setLoading', { timeline: this.timelineName, value: false })\n        if (statuses && statuses.length === 0) {\n          this.bottomedOut = true\n        }\n      })\n    }, 1000, this),\n    scrollLoad (e) {\n      const bodyBRect = document.body.getBoundingClientRect()\n      const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n      if (this.timeline.loading === false &&\n          this.$store.getters.mergedConfig.autoLoad &&\n          this.$el.offsetHeight > 0 &&\n          (window.innerHeight + window.pageYOffset) >= (height - 750)) {\n        this.fetchOlderStatuses()\n      }\n    },\n    handleVisibilityChange () {\n      this.unfocused = document.hidden\n    }\n  },\n  watch: {\n    newStatusCount (count) {\n      if (!this.$store.getters.mergedConfig.streaming) {\n        return\n      }\n      if (count > 0) {\n        // only 'stream' them when you're scrolled to the top\n        const doc = document.documentElement\n        const top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\n        if (top < 15 &&\n            !this.paused &&\n            !(this.unfocused && this.$store.getters.mergedConfig.pauseOnUnfocused)\n        ) {\n          this.showNewStatuses()\n        } else {\n          this.paused = true\n        }\n      }\n    }\n  }\n}\n\nexport default Timeline\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./timeline.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1b95cb52\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.classes.root},[_c('div',{class:_vm.classes.header},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.title)+\"\\n    \")]),_vm._v(\" \"),(_vm.timelineError)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('timeline.error_fetching'))+\"\\n    \")]):(_vm.errorData)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n      \"+_vm._s(_vm.errorData.statusText)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.timeline.newStatusCount > 0 && !_vm.timelineError && !_vm.errorData)?_c('button',{staticClass:\"loadmore-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.showNewStatuses($event)}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('timeline.show_new'))+_vm._s(_vm.newStatusCountStr)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(!_vm.timeline.newStatusCount > 0 && !_vm.timelineError && !_vm.errorData)?_c('div',{staticClass:\"loadmore-text faint\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('timeline.up_to_date'))+\"\\n    \")]):_vm._e()]),_vm._v(\" \"),_c('div',{class:_vm.classes.body},[_c('div',{staticClass:\"timeline\"},[_vm._l((_vm.pinnedStatusIds),function(statusId){return [(_vm.timeline.statusesObject[statusId])?_c('conversation',{key:statusId + '-pinned',staticClass:\"status-fadein\",attrs:{\"status-id\":statusId,\"collapsable\":true,\"pinned-status-ids-object\":_vm.pinnedStatusIdsObject,\"in-profile\":_vm.inProfile,\"profile-user-id\":_vm.userId}}):_vm._e()]}),_vm._v(\" \"),_vm._l((_vm.timeline.visibleStatuses),function(status){return [(!_vm.excludedStatusIdsObject[status.id])?_c('conversation',{key:status.id,staticClass:\"status-fadein\",attrs:{\"status-id\":status.id,\"collapsable\":true,\"in-profile\":_vm.inProfile,\"profile-user-id\":_vm.userId}}):_vm._e()]})],2)]),_vm._v(\" \"),_c('div',{class:_vm.classes.footer},[(_vm.count===0)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('timeline.no_statuses'))+\"\\n    \")]):(_vm.bottomedOut)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('timeline.no_more_statuses'))+\"\\n    \")]):(!_vm.timeline.loading && !_vm.errorData)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.fetchOlderStatuses()}}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(_vm._s(_vm.$t('timeline.load_older')))])]):(_vm.errorData)?_c('a',{attrs:{\"href\":\"#\"}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(_vm._s(_vm.errorData.error))])]):_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst PublicTimeline = {\n  components: {\n    Timeline\n  },\n  computed: {\n    timeline () { return this.$store.state.statuses.timelines.public }\n  },\n  created () {\n    this.$store.dispatch('startFetchingTimeline', { timeline: 'public' })\n  },\n  destroyed () {\n    this.$store.dispatch('stopFetchingTimeline', 'public')\n  }\n\n}\n\nexport default PublicTimeline\n","/* script */\nexport * from \"!!babel-loader!./public_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./public_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5f2a502e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./public_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.public_tl'),\"timeline\":_vm.timeline,\"timeline-name\":'public'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst PublicAndExternalTimeline = {\n  components: {\n    Timeline\n  },\n  computed: {\n    timeline () { return this.$store.state.statuses.timelines.publicAndExternal }\n  },\n  created () {\n    this.$store.dispatch('startFetchingTimeline', { timeline: 'publicAndExternal' })\n  },\n  destroyed () {\n    this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n  }\n}\n\nexport default PublicAndExternalTimeline\n","/* script */\nexport * from \"!!babel-loader!./public_and_external_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./public_and_external_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f6923484\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./public_and_external_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.twkn'),\"timeline\":_vm.timeline,\"timeline-name\":'publicAndExternal'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst FriendsTimeline = {\n  components: {\n    Timeline\n  },\n  computed: {\n    timeline () { return this.$store.state.statuses.timelines.friends }\n  }\n}\n\nexport default FriendsTimeline\n","/* script */\nexport * from \"!!babel-loader!./friends_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./friends_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-22490669\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./friends_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.timeline'),\"timeline\":_vm.timeline,\"timeline-name\":'friends'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\n\nconst TagTimeline = {\n  created () {\n    this.$store.commit('clearTimeline', { timeline: 'tag' })\n    this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n  },\n  components: {\n    Timeline\n  },\n  computed: {\n    tag () { return this.$route.params.tag },\n    timeline () { return this.$store.state.statuses.timelines.tag }\n  },\n  watch: {\n    tag () {\n      this.$store.commit('clearTimeline', { timeline: 'tag' })\n      this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n    }\n  },\n  destroyed () {\n    this.$store.dispatch('stopFetchingTimeline', 'tag')\n  }\n}\n\nexport default TagTimeline\n","/* script */\nexport * from \"!!babel-loader!./tag_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./tag_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-047310d3\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./tag_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.tag,\"timeline\":_vm.timeline,\"timeline-name\":'tag',\"tag\":_vm.tag}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Conversation from '../conversation/conversation.vue'\n\nconst conversationPage = {\n  components: {\n    Conversation\n  },\n  computed: {\n    statusId () {\n      return this.$route.params.id\n    }\n  }\n}\n\nexport default conversationPage\n","/* script */\nexport * from \"!!babel-loader!./conversation-page.js\"\nimport __vue_script__ from \"!!babel-loader!./conversation-page.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46654d24\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./conversation-page.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('conversation',{attrs:{\"collapsable\":false,\"is-page\":\"true\",\"status-id\":_vm.statusId}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { 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 StatusContent from '../status_content/status_content.vue'\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'\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    Status,\n    UserAvatar,\n    UserCard,\n    Timeago,\n    StatusContent\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    // TODO:\n    messageForStatusContent () {\n      return {\n        summary: '',\n        statusnet_html: this.notification.chatMessage.content,\n        text: this.notification.chatMessage.content,\n        attachments: []\n      }\n    },\n    ...mapState({\n      currentUser: state => state.users.currentUser\n    })\n  }\n}\n\nexport default Notification\n","/* script */\nexport * from \"!!babel-loader!./notification.js\"\nimport __vue_script__ from \"!!babel-loader!./notification.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-777ea4f9\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./notification.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.notification.type === 'mention')?_c('status',{attrs:{\"compact\":true,\"statusoid\":_vm.notification.status}}):_c('div',[(_vm.needMute && !_vm.unmuted)?_c('div',{staticClass:\"container muted\"},[_c('small',[_c('router-link',{attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n        \"+_vm._s(_vm.notification.from_profile.screen_name)+\"\\n      \")])],1),_vm._v(\" \"),_c('a',{staticClass:\"unmute\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})])]):_c('div',{staticClass:\"non-mention\",class:[_vm.userClass, { highlighted: _vm.userStyle }],style:([ _vm.userStyle ])},[_c('a',{staticClass:\"avatar-container\",attrs:{\"href\":_vm.notification.from_profile.statusnet_profile_url},on:{\"!click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleUserExpanded($event)}}},[_c('UserAvatar',{attrs:{\"compact\":true,\"better-shadow\":_vm.betterShadow,\"user\":_vm.notification.from_profile}})],1),_vm._v(\" \"),_c('div',{staticClass:\"notification-right\"},[(_vm.userExpanded)?_c('UserCard',{attrs:{\"user-id\":_vm.getUser(_vm.notification).id,\"rounded\":true,\"bordered\":true}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"notification-details\"},[_c('div',{staticClass:\"name-and-action\"},[(!!_vm.notification.from_profile.name_html)?_c('bdi',{staticClass:\"username\",attrs:{\"title\":'@'+_vm.notification.from_profile.screen_name},domProps:{\"innerHTML\":_vm._s(_vm.notification.from_profile.name_html)}}):_c('span',{staticClass:\"username\",attrs:{\"title\":'@'+_vm.notification.from_profile.screen_name}},[_vm._v(_vm._s(_vm.notification.from_profile.name))]),_vm._v(\" \"),(_vm.notification.type === 'like')?_c('span',[_c('i',{staticClass:\"fa icon-star lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.favorited_you')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'repeat')?_c('span',[_c('i',{staticClass:\"fa icon-retweet lit\",attrs:{\"title\":_vm.$t('tool_tip.repeat')}}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.repeated_you')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'follow')?_c('span',[_c('i',{staticClass:\"fa icon-user-plus lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.followed_you')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'follow_request')?_c('span',[_c('i',{staticClass:\"fa icon-user lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.follow_request')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'move')?_c('span',[_c('i',{staticClass:\"fa icon-arrow-curved lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.migrated_to')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'pleroma:emoji_reaction')?_c('span',[_c('small',[_c('i18n',{attrs:{\"path\":\"notifications.reacted_with\"}},[_c('span',{staticClass:\"emoji-reaction-emoji\"},[_vm._v(_vm._s(_vm.notification.emoji))])])],1)]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'pleroma:chat_mention')?_c('span',[_c('i',{staticClass:\"fa icon-chat lit\"})]):_vm._e()]),_vm._v(\" \"),(_vm.isStatusNotification)?_c('div',{staticClass:\"timeago\"},[(_vm.notification.status)?_c('router-link',{staticClass:\"faint-link\",attrs:{\"to\":{ name: 'conversation', params: { id: _vm.notification.status.id } }}},[_c('Timeago',{attrs:{\"time\":_vm.notification.created_at,\"auto-update\":240}})],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'pleroma:chat_mention')?_c('div',{staticClass:\"timeago\"},[_c('router-link',{staticClass:\"faint-link\",attrs:{\"to\":{ name: 'chat', params: { recipient_id: _vm.notification.chatMessage.account_id, username: _vm.currentUser.screen_name } }}},[_c('Timeago',{attrs:{\"time\":_vm.notification.created_at,\"auto-update\":240}})],1)],1):_c('div',{staticClass:\"timeago\"},[_c('span',{staticClass:\"faint\"},[_c('Timeago',{attrs:{\"time\":_vm.notification.created_at,\"auto-update\":240}})],1)]),_vm._v(\" \"),(_vm.needMute)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})]):_vm._e()]),_vm._v(\" \"),(_vm.notification.type === 'follow' || _vm.notification.type === 'follow_request')?_c('div',{staticClass:\"follow-text\"},[_c('router-link',{staticClass:\"follow-name\",attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n          @\"+_vm._s(_vm.notification.from_profile.screen_name)+\"\\n        \")]),_vm._v(\" \"),(_vm.notification.type === 'follow_request')?_c('div',{staticStyle:{\"white-space\":\"nowrap\"}},[_c('i',{staticClass:\"icon-ok button-icon follow-request-accept\",attrs:{\"title\":_vm.$t('tool_tip.accept_follow_request')},on:{\"click\":function($event){_vm.approveUser()}}}),_vm._v(\" \"),_c('i',{staticClass:\"icon-cancel button-icon follow-request-reject\",attrs:{\"title\":_vm.$t('tool_tip.reject_follow_request')},on:{\"click\":function($event){_vm.denyUser()}}})]):_vm._e()],1):(_vm.notification.type === 'move')?_c('div',{staticClass:\"move-text\"},[_c('router-link',{attrs:{\"to\":_vm.targetUserProfileLink}},[_vm._v(\"\\n          @\"+_vm._s(_vm.notification.target.screen_name)+\"\\n        \")])],1):(_vm.notification.type === 'pleroma:chat_mention')?_c('div',[_c('StatusContent',{attrs:{\"status\":_vm.messageForStatusContent}})],1):[_c('status',{staticClass:\"faint\",attrs:{\"compact\":true,\"statusoid\":_vm.notification.action,\"no-heading\":true}})]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Notification from '../notification/notification.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'\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n  props: {\n    // Disables display of panel header\n    noHeading: Boolean,\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  },\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    loading () {\n      return this.$store.state.statuses.notifications.loading\n    },\n    notificationsToDisplay () {\n      return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n    }\n  },\n  components: {\n    Notification\n  },\n  created () {\n    const { dispatch } = this.$store\n\n    dispatch('fetchAndUpdateNotifications')\n  },\n  watch: {\n    unseenCount (count) {\n      if (count > 0) {\n        this.$store.dispatch('setPageTitle', `(${count})`)\n      } else {\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./notifications.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./notifications.js\"\nimport __vue_script__ from \"!!babel-loader!./notifications.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4be57e6f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./notifications.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"notifications\",class:{ minimal: _vm.minimalMode }},[_c('div',{class:_vm.mainClass},[(!_vm.noHeading)?_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('notifications.notifications'))+\"\\n        \"),(_vm.unseenCount)?_c('span',{staticClass:\"badge badge-notification unseen-count\"},[_vm._v(_vm._s(_vm.unseenCount))]):_vm._e()]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('timeline.error_fetching'))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.unseenCount)?_c('button',{staticClass:\"read-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.markAsSeen($event)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('notifications.read'))+\"\\n      \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.notificationsToDisplay),function(notification){return _c('div',{key:notification.id,staticClass:\"notification\",class:{\"unseen\": !_vm.minimalMode && !notification.seen}},[_c('div',{staticClass:\"notification-overlay\"}),_vm._v(\" \"),_c('notification',{attrs:{\"notification\":notification}})],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"panel-footer\"},[(_vm.bottomedOut)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('notifications.no_more_notifications'))+\"\\n      \")]):(!_vm.loading)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.fetchOlderNotifications()}}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(\"\\n          \"+_vm._s(_vm.minimalMode ? _vm.$t('interactions.load_older') : _vm.$t('notifications.load_older'))+\"\\n        \")])]):_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Notifications from '../notifications/notifications.vue'\n\nconst tabModeDict = {\n  mentions: ['mention'],\n  'likes+repeats': ['repeat', 'like'],\n  follows: ['follow'],\n  moves: ['move']\n}\n\nconst Interactions = {\n  data () {\n    return {\n      allowFollowingMove: this.$store.state.users.currentUser.allow_following_move,\n      filterMode: tabModeDict['mentions']\n    }\n  },\n  methods: {\n    onModeSwitch (key) {\n      this.filterMode = tabModeDict[key]\n    }\n  },\n  components: {\n    Notifications\n  }\n}\n\nexport default Interactions\n","/* script */\nexport * from \"!!babel-loader!./interactions.js\"\nimport __vue_script__ from \"!!babel-loader!./interactions.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-109005c8\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./interactions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t(\"nav.interactions\"))+\"\\n    \")])]),_vm._v(\" \"),_c('tab-switcher',{ref:\"tabSwitcher\",attrs:{\"on-switch\":_vm.onModeSwitch}},[_c('span',{key:\"mentions\",attrs:{\"label\":_vm.$t('nav.mentions')}}),_vm._v(\" \"),_c('span',{key:\"likes+repeats\",attrs:{\"label\":_vm.$t('interactions.favs_repeats')}}),_vm._v(\" \"),_c('span',{key:\"follows\",attrs:{\"label\":_vm.$t('interactions.follows')}}),_vm._v(\" \"),(!_vm.allowFollowingMove)?_c('span',{key:\"moves\",attrs:{\"label\":_vm.$t('interactions.moves')}}):_vm._e()]),_vm._v(\" \"),_c('Notifications',{ref:\"notifications\",attrs:{\"no-heading\":true,\"minimal-mode\":true,\"filter-mode\":_vm.filterMode}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\n\nconst DMs = {\n  computed: {\n    timeline () {\n      return this.$store.state.statuses.timelines.dms\n    }\n  },\n  components: {\n    Timeline\n  }\n}\n\nexport default DMs\n","/* script */\nexport * from \"!!babel-loader!./dm_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./dm_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-294f8b6d\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./dm_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.dms'),\"timeline\":_vm.timeline,\"timeline-name\":'dms'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import StillImage from '../still-image/still-image.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapState } from 'vuex'\n\nconst ChatAvatar = {\n  props: ['users', 'fallbackUser', 'width', 'height'],\n  components: {\n    StillImage\n  },\n  methods: {\n    getUserProfileLink (user) {\n      return generateProfileLink(user.id, user.screen_name)\n    }\n  },\n  computed: {\n    firstUser () {\n      return this.users[0] || this.fallbackUser\n    },\n    secondUser () {\n      return this.users[1]\n    },\n    thirdUser () {\n      return this.users[2]\n    },\n    fourthUser () {\n      return this.users[3]\n    },\n    ...mapState({\n      betterShadow: state => state.interface.browserSupport.cssFilter\n    })\n  }\n}\n\nexport default ChatAvatar\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_avatar.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_avatar.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_avatar.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6ebb3f9c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_avatar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.firstUser && _vm.secondUser)?_c('div',{staticClass:\"direct-conversation-multi-user-avatar\",style:({ 'width': _vm.width, 'height': _vm.height })},[(_vm.fourthUser)?_c('StillImage',{staticClass:\"avatar avatar-fourth direct-conversation-avatar\",class:{ 'better-shadow': _vm.betterShadow },attrs:{\"alt\":_vm.fourthUser.screen_name,\"title\":_vm.fourthUser.screen_name,\"src\":_vm.fourthUser.profile_image_url_original,\"error-src\":\"/images/avi.png\"}}):_vm._e(),_vm._v(\" \"),(_vm.thirdUser)?_c('StillImage',{staticClass:\"avatar avatar-third direct-conversation-avatar\",class:{ 'better-shadow': _vm.betterShadow },attrs:{\"alt\":_vm.thirdUser.screen_name,\"title\":_vm.thirdUser.screen_name,\"src\":_vm.thirdUser.profile_image_url_original,\"error-src\":\"/images/avi.png\"}}):_vm._e(),_vm._v(\" \"),_c('StillImage',{staticClass:\"avatar avatar-second direct-conversation-avatar\",class:{ 'better-shadow': _vm.betterShadow },style:({ 'height': _vm.fourthUser ? '50%' : '100%' }),attrs:{\"alt\":_vm.secondUser.screen_name,\"title\":_vm.secondUser.screen_name,\"src\":_vm.secondUser.profile_image_url_original,\"error-src\":\"/images/avi.png\"}}),_vm._v(\" \"),_c('StillImage',{staticClass:\"avatar avatar-first direct-conversation-avatar\",class:{ 'better-shadow': _vm.betterShadow },style:({ 'height': _vm.thirdUser ? '50%' : '100%' }),attrs:{\"alt\":_vm.firstUser.screen_name,\"title\":_vm.firstUser.screen_name,\"src\":_vm.firstUser.profile_image_url_original,\"error-src\":\"/images/avi.png\"}})],1):_c('router-link',{attrs:{\"to\":_vm.getUserProfileLink(_vm.firstUser)}},[_c('StillImage',{staticClass:\"avatar direct-conversation-avatar single-user\",class:{ 'better-shadow': _vm.betterShadow },style:({ 'width': _vm.width, 'height': _vm.height }),attrs:{\"alt\":_vm.firstUser.screen_name,\"title\":_vm.firstUser.screen_name,\"src\":_vm.firstUser.profile_image_url_original,\"error-src\":\"/images/avi.png\"}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport ChatAvatar from '../chat_avatar/chat_avatar.vue'\nimport { mapState } from 'vuex'\n\nconst USER_LIMIT = 10\n\nexport default Vue.component('direct-conversation-title', {\n  name: 'ChatTitle',\n  components: {\n    ChatAvatar\n  },\n  props: [\n    'users', 'fallbackUser', 'withAvatar'\n  ],\n  computed: {\n    ...mapState({\n      currentUser: state => state.users.currentUser\n    }),\n    otherUsersTruncated () {\n      return this.otherUsers.slice(0, USER_LIMIT)\n    },\n    otherUsers () {\n      let otherUsers = this.users.filter(recipient => recipient.id !== this.currentUser.id)\n      if (otherUsers.length === 0) {\n        return [this.fallbackUser]\n      } else {\n        return otherUsers\n      }\n    },\n    restCount () {\n      return this.otherUsers.length - USER_LIMIT\n    },\n    title () {\n      return this.otherUsers.map(u => u.screen_name).join(', ')\n    }\n  },\n  methods: {\n    getUserProfileLink (user) {\n      return generateProfileLink(user.id, user.screen_name)\n    }\n  }\n})\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_title.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_title.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_title.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a30efeb6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_title.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"direct-conversation-title\",attrs:{\"title\":_vm.title}},[(_vm.withAvatar)?_c('ChatAvatar',{attrs:{\"users\":_vm.otherUsers,\"fallback-user\":_vm.currentUser,\"width\":\"23px\",\"height\":\"23px\"}}):_vm._e(),_vm._v(\" \"),(_vm.withAvatar)?_c('span',{staticStyle:{\"margin-right\":\"0.5em\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.otherUsersTruncated),function(user,index){return _c('span',{key:user.id,staticClass:\"username\",domProps:{\"innerHTML\":_vm._s(user.name_html + (index + 1 < _vm.otherUsersTruncated.length ? ', ' : ''))}})})],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState } from 'vuex'\nimport fileType from 'src/services/file_type/file_type.service'\nimport ChatAvatar from '../chat_avatar/chat_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\n\nconst ChatListItem = {\n  name: 'ChatListItem',\n  props: [\n    'chat'\n  ],\n  components: {\n    ChatAvatar,\n    AvatarList,\n    Timeago,\n    ChatTitle\n  },\n  computed: {\n    ...mapState({\n      currentUser: state => state.users.currentUser\n    }),\n    attachmentInfo () {\n      if (this.chat.lastMessage.attachments.length === 0) { return }\n\n      let types = this.chat.lastMessage.attachments.map(file => fileType.fileType(file.mimetype))\n      if (types.includes('video')) {\n        return this.$t('file_type.video')\n      } else if (types.includes('audio')) {\n        return this.$t('file_type.audio')\n      } else if (types.includes('image')) {\n        return this.$t('file_type.image')\n      } else {\n        return this.$t('file_type.file')\n      }\n    }\n  },\n  methods: {\n    openChat (_e) {\n      if (this.chat.id) {\n        this.$router.push({\n          name: 'chat',\n          params: {\n            username: this.currentUser.screen_name,\n            recipient_id: this.chat.account.id\n          }\n        })\n      }\n    }\n  }\n}\n\nexport default ChatListItem\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_list_item.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_list_item.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_list_item.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6e83c44a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_list_item.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chat-list-item\",on:{\"!click\":function($event){$event.preventDefault();return _vm.openChat($event)}}},[_c('div',{staticClass:\"chat-list-item-left\"},[_c('ChatAvatar',{attrs:{\"users\":[],\"fallback-user\":_vm.chat.account,\"height\":\"48px\",\"width\":\"48px\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"chat-list-item-center\"},[_c('div',{staticClass:\"heading\"},[(_vm.chat.account)?_c('span',{staticClass:\"name-and-account-name\"},[_c('ChatTitle',{attrs:{\"users\":[],\"fallback-user\":_vm.chat.account,\"with-links\":false}})],1):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"heading-right\"})]),_vm._v(\" \"),_c('div',{staticClass:\"chat-preview\"},[_c('span',{staticClass:\"content\",domProps:{\"innerHTML\":_vm._s(_vm.chat.lastMessage && (_vm.attachmentInfo || _vm.chat.lastMessage.content))}}),_vm._v(\" \"),(_vm.chat.unread > 0)?_c('div',{staticClass:\"alert-dot-number\"},[_vm._v(\"\\n        \"+_vm._s(_vm.chat.unread)+\"\\n      \")]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticStyle:{\"float\":\"right\",\"text-align\":\"right\"}},[_c('Timeago',{attrs:{\"time\":_vm.chat.updated_at,\"auto-update\":60}})],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import UserCard from '../user_card/user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\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  },\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","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./basic_user_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./basic_user_card.js\"\nimport __vue_script__ from \"!!babel-loader!./basic_user_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d2bc0bb\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./basic_user_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"basic-user-card\"},[_c('router-link',{attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_c('UserAvatar',{staticClass:\"avatar\",attrs:{\"user\":_vm.user},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.toggleUserExpanded($event)}}})],1),_vm._v(\" \"),(_vm.userExpanded)?_c('div',{staticClass:\"basic-user-card-expanded-content\"},[_c('UserCard',{attrs:{\"user-id\":_vm.user.id,\"rounded\":true,\"bordered\":true}})],1):_c('div',{staticClass:\"basic-user-card-collapsed-content\"},[_c('div',{staticClass:\"basic-user-card-user-name\",attrs:{\"title\":_vm.user.name}},[(_vm.user.name_html)?_c('span',{staticClass:\"basic-user-card-user-name-value\",domProps:{\"innerHTML\":_vm._s(_vm.user.name_html)}}):_c('span',{staticClass:\"basic-user-card-user-name-value\"},[_vm._v(_vm._s(_vm.user.name))])]),_vm._v(\" \"),_c('div',[_c('router-link',{staticClass:\"basic-user-card-screen-name\",attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_vm._v(\"\\n        @\"+_vm._s(_vm.user.screen_name)+\"\\n      \")])],1),_vm._v(\" \"),_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { throttle } from 'lodash'\nimport { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\n\nconst chatNew = {\n  components: {\n    BasicUserCard,\n    UserAvatar\n  },\n  data () {\n    return {\n      suggestions: [],\n      userIds: [],\n      loading: false,\n      query: ''\n    }\n  },\n  async created () {\n    const { chats } = await this.backendInteractor.chats()\n    chats.forEach(chat => this.suggestions.push(chat.account))\n  },\n  computed: {\n    users () {\n      return this.userIds.map(userId => this.findUser(userId))\n    },\n    availableUsers () {\n      if (this.query.length !== 0) {\n        return this.users\n      } else {\n        return this.suggestions\n      }\n    },\n    ...mapState({\n      currentUser: state => state.users.currentUser,\n      backendInteractor: state => state.api.backendInteractor\n    }),\n    ...mapGetters(['findUser'])\n  },\n  methods: {\n    goBack () {\n      this.$emit('cancel')\n    },\n    goToNewChat (user) {\n      this.$router.push({ name: 'chat', params: { recipient_id: user.id } })\n    },\n    onInput () {\n      this.search(this.query)\n    },\n    addUser (user) {\n      this.selectedUserIds.push(user.id)\n      this.query = ''\n    },\n    removeUser (userId) {\n      this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)\n    },\n    search: throttle(function (query) {\n      if (!query) {\n        this.loading = false\n        return\n      }\n\n      this.loading = true\n      this.userIds = []\n      this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts' })\n        .then(data => {\n          this.loading = false\n          this.userIds = data.accounts.map(a => a.id)\n        })\n    })\n  }\n}\n\nexport default chatNew\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_new.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_new.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_new.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c39a52c4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_new.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel-default panel direct-conversation-new\",attrs:{\"id\":\"nav\"}},[_c('div',{ref:\"header\",staticClass:\"panel-heading\"},[_c('a',{staticClass:\"go-back-button\",staticStyle:{\"cursor\":\"pointer\",\"margin-right\":\"0.7em\"},on:{\"click\":_vm.goBack}},[_c('i',{staticClass:\"button-icon icon-left-open\"})])]),_vm._v(\" \"),_c('div',{staticClass:\"input-wrap\"},[_vm._m(0),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],ref:\"search\",attrs:{\"placeholder\":\"Search people\"},domProps:{\"value\":(_vm.query)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.query=$event.target.value},_vm.onInput]}})]),_vm._v(\" \"),_c('div',{staticClass:\"member-list\"},_vm._l((_vm.availableUsers),function(user){return _c('div',{key:user.id,staticClass:\"member\"},[_c('div',{staticClass:\"user-card-wrap\",on:{\"!click\":function($event){$event.preventDefault();_vm.goToNewChat(user)}}},[_c('BasicUserCard',{attrs:{\"user\":user}})],1)])}),0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-search\"},[_c('i',{staticClass:\"button-icon icon-search\"})])}]\nexport { render, staticRenderFns }","<template>\n  <div class=\"list\">\n    <div\n      v-for=\"item in items\"\n      :key=\"getKey(item)\"\n      class=\"list-item\"\n    >\n      <slot\n        name=\"item\"\n        :item=\"item\"\n      />\n    </div>\n    <div\n      v-if=\"items.length === 0 && !!$slots.empty\"\n      class=\"list-empty-content faint\"\n    >\n      <slot name=\"empty\" />\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    items: {\n      type: Array,\n      default: () => []\n    },\n    getKey: {\n      type: Function,\n      default: item => item.id\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.list {\n  &-item:not(:last-child) {\n    border-bottom: 1px solid;\n    border-bottom-color: $fallback--border;\n    border-bottom-color: var(--border, $fallback--border);\n  }\n\n  &-empty-content {\n    text-align: center;\n    padding: 10px;\n  }\n}\n</style>\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./list.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./list.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./list.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c1790f52\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./list.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"list\"},[_vm._l((_vm.items),function(item){return _c('div',{key:_vm.getKey(item),staticClass:\"list-item\"},[_vm._t(\"item\",null,{item:item})],2)}),_vm._v(\" \"),(_vm.items.length === 0 && !!_vm.$slots.empty)?_c('div',{staticClass:\"list-empty-content faint\"},[_vm._t(\"empty\")],2):_vm._e()],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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","import Vue from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_load_more.scss'\n\nconst withLoadMore = ({\n  fetch, // function to fetch entries and return a promise\n  select, // function to select data from store\n  destroy, // function called at \"destroyed\" lifecycle\n  childPropName = 'entries', // name of the prop to be passed into the wrapped component\n  additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n  const originalProps = Object.keys(getComponentProps(WrappedComponent))\n  const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n  return Vue.component('withLoadMore', {\n    props,\n    data () {\n      return {\n        loading: false,\n        bottomedOut: false,\n        error: false\n      }\n    },\n    computed: {\n      entries () {\n        return select(this.$props, this.$store) || []\n      }\n    },\n    created () {\n      window.addEventListener('scroll', this.scrollLoad)\n      if (this.entries.length === 0) {\n        this.fetchEntries()\n      }\n    },\n    destroyed () {\n      window.removeEventListener('scroll', this.scrollLoad)\n      destroy && destroy(this.$props, this.$store)\n    },\n    methods: {\n      fetchEntries () {\n        if (!this.loading) {\n          this.loading = true\n          this.error = false\n          fetch(this.$props, this.$store)\n            .then((newEntries) => {\n              this.loading = false\n              this.bottomedOut = isEmpty(newEntries)\n            })\n            .catch(() => {\n              this.loading = false\n              this.error = true\n            })\n        }\n      },\n      scrollLoad (e) {\n        const bodyBRect = document.body.getBoundingClientRect()\n        const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n        if (this.loading === false &&\n          this.bottomedOut === false &&\n          this.$el.offsetHeight > 0 &&\n          (window.innerHeight + window.pageYOffset) >= (height - 750)\n        ) {\n          this.fetchEntries()\n        }\n      }\n    },\n    render (h) {\n      const props = {\n        props: {\n          ...this.$props,\n          [childPropName]: this.entries\n        },\n        on: this.$listeners,\n        scopedSlots: this.$scopedSlots\n      }\n      const children = Object.entries(this.$slots).map(([key, value]) => h('template', { slot: key }, value))\n      return (\n        <div class=\"with-load-more\">\n          <WrappedComponent {...props}>\n            {children}\n          </WrappedComponent>\n          <div class=\"with-load-more-footer\">\n            {this.error && <a onClick={this.fetchEntries} class=\"alert error\">{this.$t('general.generic_error')}</a>}\n            {!this.error && this.loading && <i class=\"icon-spin3 animate-spin\"/>}\n            {!this.error && !this.loading && !this.bottomedOut && <a onClick={this.fetchEntries}>{this.$t('general.more')}</a>}\n          </div>\n        </div>\n      )\n    }\n  })\n}\n\nexport default withLoadMore\n","import { mapState } from 'vuex'\nimport ChatListItem from '../chat_list_item/chat_list_item.vue'\nimport ChatNew from '../chat_new/chat_new.vue'\nimport List from '../list/list.vue'\nimport withLoadMore from '../../hocs/with_load_more/with_load_more'\n\nconst Chats = withLoadMore({\n  fetch: (props, $store) => $store.dispatch('fetchChats'),\n  select: (props, $store) => $store.getters.sortedChatList,\n  destroy: (props, $store) => undefined,\n  childPropName: 'items'\n})(List)\n\nconst ChatList = {\n  components: {\n    ChatListItem,\n    Chats,\n    ChatNew\n  },\n  computed: {\n    ...mapState({\n      currentUser: state => state.users.currentUser\n    })\n  },\n  data () {\n    return {\n      isNew: false\n    }\n  },\n  created () {\n    this.$store.dispatch('fetchChats', { reset: true })\n  },\n  methods: {\n    cancelNewChat () {\n      this.isNew = false\n      this.$store.dispatch('fetchChats', { reset: true })\n    },\n    newChat () {\n      this.isNew = true\n    }\n  }\n}\n\nexport default ChatList\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_list.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_list.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_list.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f05f6a20\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_list.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isNew)?_c('div',[_c('ChatNew',{on:{\"cancel\":_vm.cancelNewChat}})],1):_c('div',{staticClass:\"panel panel-default\",staticStyle:{\"min-height\":\"calc(100vh - 67px)\",\"margin-bottom\":\"0\",\"border-bottom-left-radius\":\"0\",\"border-bottom-right-radius\":\"0\"}},[_c('div',{staticClass:\"panel-heading truncated-text-wrapper\"},[_c('span',{staticClass:\"title truncated-text\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t(\"chats.chats\"))+\"\\n    \")]),_vm._v(\" \"),_c('span',{staticStyle:{\"width\":\"0.75rem\"}},[_vm._v(_vm._s(' '))]),_vm._v(\" \"),_c('button',{on:{\"click\":_vm.newChat}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t(\"chats.new\"))+\"\\n    \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"timeline\"},[_c('Chats',{scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('ChatListItem',{key:item.id,attrs:{\"compact\":false,\"chat\":item}})]}}])})],1)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <time>\n    {{ displayDate }}\n  </time>\n</template>\n\n<script>\nexport default {\n  name: 'Timeago',\n  props: ['date'],\n  computed: {\n    displayDate () {\n      let today = new Date()\n      today.setHours(0, 0, 0, 0)\n      if (this.date.getTime() === today.getTime()) {\n        return this.$t('display_date.today')\n      } else {\n        const lang = this.$store.getters.mergedConfig.interfaceLanguage\n        return this.date.toLocaleDateString(lang, { day: 'numeric', month: 'long' })\n      }\n    }\n  }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./chat_message_date.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./chat_message_date.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-850b628a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_message_date.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('time',[_vm._v(\"\\n  \"+_vm._s(_vm.displayDate)+\"\\n\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState, mapGetters } from 'vuex'\nimport Popover from '../popover/popover.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport ChatMessageDate from '../chat_message_date/chat_message_date.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst ChatMessage = {\n  name: 'ChatMessage',\n  props: [\n    'edited',\n    'noHeading',\n    'chatViewItem',\n    'sequenceHovered'\n  ],\n  components: {\n    Popover,\n    Attachment,\n    StatusContent,\n    UserAvatar,\n    Gallery,\n    LinkPreview,\n    ChatMessageDate\n  },\n  computed: {\n    // Returns HH:MM (hours and minutes) in local time.\n    createdAt () {\n      const time = this.chatViewItem.data.created_at\n      const lang = this.mergedConfig.interfaceLanguage\n      return time.toLocaleTimeString(lang, { hour: '2-digit', minute: '2-digit', hour12: false })\n    },\n    isCurrentUser () {\n      return this.message.account_id === this.currentUser.id\n    },\n    author () {\n      return this.findUser(this.message.account_id)\n    },\n    message () {\n      return this.chatViewItem.data\n    },\n    userProfileLink () {\n      return generateProfileLink(this.author.id, this.author.screen_name, this.$store.state.instance.restrictedNicknames)\n    },\n    isMessage () {\n      return this.chatViewItem.type === 'message'\n    },\n    messageForStatusContent () {\n      return {\n        summary: '',\n        statusnet_html: this.message.content,\n        text: this.message.content,\n        attachments: this.message.attachments\n      }\n    },\n    ...mapState({\n      betterShadow: state => state.interface.browserSupport.cssFilter,\n      currentUser: state => state.users.currentUser,\n      restrictedNicknames: state => state.instance.restrictedNicknames\n    }),\n    wrapperStyle () {\n      return {\n        'opacity': this.hovered || this.menuOpened ? '1' : '0'\n      }\n    },\n    ...mapGetters(['mergedConfig', 'findUser'])\n  },\n  data () {\n    return {\n      hovered: false,\n      menuOpened: false\n    }\n  },\n  methods: {\n    onHover (bool) {\n      this.$emit('hover', { state: bool, sequenceId: this.chatViewItem.sequenceId })\n    },\n    async deleteMessage () {\n      const confirmed = window.confirm(this.$t('chats.delete_confirm'))\n      if (confirmed) {\n        await this.$store.dispatch('deleteChatMessage', {\n          messageId: this.chatViewItem.data.id,\n          chatId: this.chatViewItem.data.chat_id\n        })\n      }\n      this.hovered = false\n      this.menuOpened = false\n    }\n  }\n}\n\nexport default ChatMessage\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_message.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_message.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_message.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0edbca58\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_message.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isMessage)?_c('div',{staticClass:\"direct-conversation-status-wrapper\",class:{ 'sequence-hovered': _vm.sequenceHovered },on:{\"mouseover\":function($event){_vm.onHover(true)},\"mouseleave\":function($event){_vm.onHover(false)}}},[_c('div',{staticClass:\"direct-conversation\",class:[{ 'outgoing': _vm.isCurrentUser, 'incoming': !_vm.isCurrentUser }]},[(!_vm.isCurrentUser)?_c('div',{staticClass:\"avatar-wrapper\"},[(_vm.chatViewItem.isHead)?_c('router-link',{attrs:{\"to\":_vm.userProfileLink}},[_c('UserAvatar',{attrs:{\"compact\":true,\"better-shadow\":_vm.betterShadow,\"user\":_vm.author}})],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"direct-conversation-inner\"},[_c('div',{staticClass:\"status-body\",style:({ 'min-width': _vm.message.attachment ? '80%' : '' })},[_c('div',{staticClass:\"media status\",staticStyle:{\"position\":\"relative\"},on:{\"mouseenter\":function($event){_vm.hovered = true},\"mouseleave\":function($event){_vm.hovered = false}}},[(_vm.isCurrentUser)?_c('div',{staticClass:\"chat-message-menu\",staticStyle:{\"position\":\"absolute\",\"right\":\"5px\",\"top\":\"-10px\"},style:(_vm.wrapperStyle)},[_c('Popover',{attrs:{\"trigger\":\"click\",\"placement\":\"top\",\"bound-to\":{ x: 'container' }},on:{\"show\":function($event){_vm.menuOpened = true},\"close\":function($event){_vm.menuOpened = false}}},[_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"dropdown-menu\"},[_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":_vm.deleteMessage}},[_c('i',{staticClass:\"icon-cancel\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"chats.delete\"))+\"\\n                  \")])])]),_vm._v(\" \"),_c('button',{attrs:{\"slot\":\"trigger\",\"title\":_vm.$t('chats.more')},slot:\"trigger\"},[_c('i',{staticClass:\"icon-dot-3\"})])])],1):_vm._e(),_vm._v(\" \"),_c('StatusContent',{attrs:{\"status\":_vm.messageForStatusContent,\"full-content\":true}},[_c('span',{staticClass:\"created-at\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_vm._v(\"\\n              \"+_vm._s(_vm.createdAt)+\"\\n            \")])])],1)])])])]):_c('div',{staticClass:\"date-separator\"},[_c('ChatMessageDate',{attrs:{\"date\":_vm.chatViewItem.date}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import _ from 'lodash'\nimport { mapGetters, mapState } from 'vuex'\nimport ChatMessage from '../chat_message/chat_message.vue'\nimport ChatAvatar from '../chat_avatar/chat_avatar.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\nimport chatService from '../../services/chat_service/chat_service.js'\n\nconst Chat = {\n  components: {\n    ChatMessage,\n    ChatTitle,\n    ChatAvatar,\n    PostStatusForm\n  },\n  data () {\n    return {\n      loadingOlderMessages: false,\n      loadingMessages: true,\n      loadingChat: false,\n      editedStatusId: undefined,\n      fetcher: undefined,\n      jumpToBottomButtonVisible: false,\n      mobileLayout: this.$store.state.interface.mobileLayout,\n      recipientId: this.$route.params.recipient_id,\n      hoveredSequenceId: undefined,\n      newMessageCount: this.currentChatMessageService && this.currentChatMessageService.newMessageCount\n    }\n  },\n  created () {\n    this.startFetching()\n    window.addEventListener('resize', this.handleLayoutChange)\n  },\n  mounted () {\n    this.$nextTick(() => {\n      let scrollable = this.$refs.scrollable\n      if (scrollable) {\n        window.addEventListener('scroll', this.handleScroll)\n      }\n      this.updateSize()\n    })\n    if (this.isMobileLayout) {\n      this.setMobileChatLayout()\n    }\n\n    if (typeof document.hidden !== 'undefined') {\n      document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n      this.$store.commit('setChatFocused', !document.hidden)\n    }\n  },\n  destroyed () {\n    window.removeEventListener('scroll', this.handleScroll)\n    window.removeEventListener('resize', this.handleLayoutChange)\n    this.unsetMobileChatLayout()\n    if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n    this.$store.dispatch('clearCurrentChat')\n  },\n  computed: {\n    chatParticipants () {\n      if (this.currentChat) {\n        return [this.currentChat.account]\n      } else {\n        return []\n      }\n    },\n    recipient () {\n      return this.currentChat && this.currentChat.account\n    },\n    formPlaceholder () {\n      if (this.recipient) {\n        return this.$t('chats.message_user', { nickname: this.recipient.screen_name })\n      } else {\n        return this.$t('chats.write_message')\n      }\n    },\n    chatViewItems () {\n      return chatService.getView(this.currentChatMessageService)\n    },\n    ...mapGetters(['currentChat', 'currentChatMessageService', 'findUser', 'findOpenedChatByRecipientId']),\n    ...mapState({\n      backendInteractor: state => state.api.backendInteractor,\n      currentUser: state => state.users.currentUser,\n      isMobileLayout: state => state.interface.mobileLayout,\n      openedChats: state => state.chats.openedChats\n    })\n  },\n  watch: {\n    chatViewItems (prev, next) {\n      let bottomedOut = this.bottomedOut(10)\n      this.$nextTick(() => {\n        if (bottomedOut && prev.length !== next.length) {\n          this.newMessageCount = this.currentChatMessageService.newMessageCount\n          this.scrollDown({ forceRead: true })\n        }\n      })\n    },\n    '$route': function (prev, next) {\n      this.recipientId = this.$route.params.recipient_id\n      this.startFetching()\n    }\n  },\n  methods: {\n    onStatusHover ({ state, sequenceId }) {\n      this.hoveredSequenceId = state ? sequenceId : undefined\n    },\n    onPosted (data) {\n      this.$store.dispatch('addChatMessages', { chatId: this.currentChat.id, messages: [data] }).then(() => {\n        this.$nextTick(() => {\n          this.updateSize()\n          this.scrollDown({ forceRead: true })\n        })\n      })\n    },\n    onFilesDropped () {\n      this.$nextTick(() => {\n        this.updateSize()\n      })\n    },\n    handleVisibilityChange () {\n      this.$store.commit('setChatFocused', !document.hidden)\n    },\n    handleLayoutChange () {\n      this.updateSize()\n      let mobileLayout = this.isMobileLayout\n      if (this.mobileLayout !== mobileLayout) {\n        if (this.mobileLayout === false && mobileLayout === true) {\n          this.setMobileChatLayout()\n        }\n        if (this.mobileLayout === true && mobileLayout === false) {\n          this.unsetMobileChatLayout()\n        }\n        this.mobileLayout = this.isMobileLayout\n        this.$nextTick(() => {\n          this.updateSize()\n          this.scrollDown()\n        })\n      }\n    },\n    setMobileChatLayout () {\n      // This is a hacky way to adjust the global layout to the mobile chat (without modifying the rest of the app).\n      // This layout prevents empty spaces from being visible at the bottom\n      // of the chat on iOS Safari (`safe-area-inset`) when\n      // - the on-screen keyboard appears and the user starts typing\n      // - the user selects the text inside the input area\n      // - the user selects and deletes the text that is multiple lines long\n      // TODO: unify the chat layout with the global layout.\n\n      let html = document.querySelector('html')\n      if (html) {\n        html.style.overflow = 'hidden'\n        html.style.height = '100%'\n      }\n\n      let body = document.querySelector('body')\n      if (body) {\n        body.style.height = '100%'\n        body.style.overscrollBehavior = 'none'\n      }\n\n      let app = document.getElementById('app')\n      if (app) {\n        app.style.height = '100%'\n        app.style.overflow = 'hidden'\n        app.style.minHeight = 'auto'\n      }\n\n      let appBgWrapper = window.document.getElementById('app_bg_wrapper')\n      if (appBgWrapper) {\n        appBgWrapper.style.overflow = 'hidden'\n      }\n\n      let main = document.getElementsByClassName('main')[0]\n      if (main) {\n        main.style.overflow = 'hidden'\n        main.style.height = '100%'\n      }\n\n      let content = document.getElementById('content')\n      if (content) {\n        content.style.paddingTop = '0'\n        content.style.height = '100%'\n        content.style.overflow = 'visible'\n      }\n\n      this.$nextTick(() => {\n        this.updateSize()\n      })\n    },\n    unsetMobileChatLayout () {\n      let html = document.querySelector('html')\n      if (html) {\n        html.style.overflow = 'visible'\n        html.style.height = 'unset'\n      }\n\n      let body = document.querySelector('body')\n      if (body) {\n        body.style.height = 'unset'\n        body.style.overscrollBehavior = 'unset'\n      }\n\n      let app = document.getElementById('app')\n      if (app) {\n        app.style.height = '100%'\n        app.style.overflow = 'visible'\n        app.style.minHeight = '100vh'\n      }\n\n      let appBgWrapper = document.getElementById('app_bg_wrapper')\n      if (appBgWrapper) {\n        appBgWrapper.style.overflow = 'visible'\n      }\n\n      let main = document.getElementsByClassName('main')[0]\n      if (main) {\n        main.style.overflow = 'visible'\n        main.style.height = 'unset'\n      }\n\n      let content = document.getElementById('content')\n      if (content) {\n        content.style.paddingTop = '60px'\n        content.style.height = 'unset'\n        content.style.overflow = 'unset'\n      }\n    },\n    handleResize (newHeight) {\n      this.updateSize(newHeight)\n    },\n    updateSize (newHeight, _diff) {\n      let h = this.$refs.header\n      let s = this.$refs.scrollable\n      let f = this.$refs.footer\n      if (h && s && f) {\n        let height = 0\n        if (this.isMobileLayout) {\n          height = parseFloat(getComputedStyle(window.document.body, null).height.replace('px', ''))\n          let newHeight = (height - h.clientHeight - f.clientHeight)\n          s.style.height = newHeight + 'px'\n        } else {\n          height = parseFloat(getComputedStyle(this.$refs.inner, null).height.replace('px', ''))\n          let newHeight = (height - h.clientHeight - f.clientHeight)\n          s.style.height = newHeight + 'px'\n        }\n      }\n    },\n    scrollDown (options = {}) {\n      let { behavior = 'auto', forceRead = false } = options\n      let container = this.$refs.scrollable\n      let scrollable = this.$refs.scrollable\n      this.doScrollDown(scrollable, container, behavior)\n      if (forceRead || this.newMessageCount > 0) {\n        this.readChat()\n      }\n    },\n    doScrollDown (scrollable, container, behavior) {\n      if (!container) { return }\n      this.$nextTick(() => {\n        scrollable.scrollTo({ top: container.scrollHeight, left: 0, behavior })\n      })\n    },\n    bottomedOut (offset) {\n      let bottomedOut = false\n\n      if (this.$refs.scrollable) {\n        let scrollHeight = this.$refs.scrollable.scrollTop + (offset || 0)\n        let totalHeight = this.$refs.scrollable.scrollHeight - this.$refs.scrollable.offsetHeight\n        bottomedOut = totalHeight <= scrollHeight\n      }\n\n      return bottomedOut\n    },\n    getPosition () {\n      let scrollHeight = this.$refs.scrollable.scrollTop\n      let totalHeight = this.$refs.scrollable.scrollHeight - this.$refs.scrollable.offsetHeight\n      return { scrollHeight, totalHeight }\n    },\n    reachedTop (offset) {\n      let res = false\n\n      if (this.$refs.scrollable) {\n        let scrollHeight = this.$refs.scrollable.scrollTop + (offset || 0)\n        if (scrollHeight <= offset) {\n          res = true\n        }\n      }\n\n      return res\n    },\n    handleScroll: _.throttle(function () {\n      if (!this.currentChat) { return }\n\n      if (this.reachedTop(0)) {\n        this.fetchChat(false, this.currentChat.id, {\n          maxId: this.currentChatMessageService.minId\n        })\n      } else if (this.bottomedOut(150)) {\n        this.jumpToBottomButtonVisible = false\n        let newMessageCount = this.newMessageCount\n        if (newMessageCount > 0) {\n          this.readChat()\n        }\n      } else {\n        this.jumpToBottomButtonVisible = true\n      }\n    }, 100),\n    goBack () {\n      this.$router.push({ name: 'chats', params: { username: this.currentUser.screen_name } })\n    },\n    fetchChat (isFirstFetch, chatId, opts = {}) {\n      let maxId = opts.maxId\n      if (isFirstFetch) {\n        this.scrollDown({ forceRead: true })\n      }\n      let positionBeforeLoading = null\n      let previousScrollTop\n      if (maxId) {\n        this.loadingOlderMessages = true\n        positionBeforeLoading = this.getPosition()\n        previousScrollTop = this.$refs.scrollable.scrollTop\n      }\n      this.backendInteractor.chatMessages({ id: chatId, maxId })\n        .then((messages) => {\n          let bottomedOut = this.bottomedOut()\n          this.loadingOlderMessages = false\n          this.$store.dispatch('addChatMessages', { chatId, messages }).then(() => {\n            if (positionBeforeLoading) {\n              this.$nextTick(() => {\n                let positionAfterLoading = this.getPosition()\n                let scrollable = this.$refs.scrollable\n                scrollable.scrollTo({\n                  top: previousScrollTop + (positionAfterLoading.totalHeight - positionBeforeLoading.totalHeight),\n                  left: 0\n                })\n              })\n            }\n\n            this.newMessageCount = this.currentChatMessageService.newMessageCount\n            if (isFirstFetch) {\n              this.$nextTick(() => {\n                this.updateSize()\n              })\n            } else if (bottomedOut) {\n              this.scrollDown()\n            }\n            setTimeout(() => {\n              this.loadingMessages = false\n            }, 1000)\n          })\n        })\n    },\n    readChat () {\n      if (!(this.currentChat && this.currentChat.id)) { return }\n      this.$store.dispatch('readChat', { id: this.currentChat.id })\n      this.newMessageCount = this.currentChatMessageService.newMessageCount\n    },\n    async startFetching () {\n      let chat = this.findOpenedChatByRecipientId(this.recipientId)\n      if (!chat) {\n        chat = await this.backendInteractor.getOrCreateChat({ accountId: this.recipientId })\n      }\n      this.$nextTick(() => {\n        this.scrollDown({ forceRead: true })\n      })\n\n      this.$store.dispatch('addOpenedChat', { chat })\n      this.doStartFetching()\n    },\n    doStartFetching () {\n      let chatId = this.currentChat.id\n      this.$store.dispatch('startFetchingCurrentChat', {\n        fetcher: () => setInterval(() => this.fetchChat(false, chatId), 5000)\n      })\n      this.fetchChat(true, chatId)\n    },\n    poster (opts) {\n      const status = opts.status\n\n      let params = {\n        id: this.currentChat.id,\n        content: status\n      }\n\n      if (opts.media && opts.media[0]) {\n        params.mediaId = opts.media[0].id\n      }\n\n      return this.backendInteractor.postChatMessage(params)\n    }\n  }\n}\n\nexport default Chat\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat.js\"\nimport __vue_script__ from \"!!babel-loader!./chat.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-781c3c63\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"direct-conversation-view\"},[_c('div',{staticClass:\"direct-conversation-view-inner\"},[_c('div',{ref:\"inner\",staticClass:\"panel-default panel direct-conversation-view-body\",attrs:{\"id\":\"nav\"}},[_c('div',{ref:\"header\",staticClass:\"panel-heading direct-conversation-view-heading mobile-hidden\"},[_c('i',{staticClass:\"button-icon icon-left-open\",on:{\"click\":_vm.goBack}}),_vm._v(\" \"),_c('div',{staticClass:\"title text-center\"},[_c('ChatTitle',{attrs:{\"users\":_vm.chatParticipants,\"fallback-user\":_vm.currentUser,\"with-avatar\":true}})],1),_vm._v(\" \"),_vm._m(0)]),_vm._v(\" \"),[_c('div',{ref:\"scrollable\",staticClass:\"scrollable\",on:{\"scroll\":_vm.handleScroll}},_vm._l((_vm.chatViewItems),function(chatViewItem){return _c('ChatMessage',{key:chatViewItem.id,attrs:{\"chat-view-item\":chatViewItem,\"sequence-hovered\":chatViewItem.sequenceId === _vm.hoveredSequenceId},on:{\"hover\":_vm.onStatusHover}})}),1),_vm._v(\" \"),_c('div',{ref:\"footer\",staticClass:\"panel-body footer\"},[_c('div',{staticClass:\"jump-to-bottom-button\",class:{ 'visible': !_vm.loadingMessages && _vm.jumpToBottomButtonVisible },on:{\"click\":function($event){_vm.scrollDown({ behavior: 'smooth' })}}},[_c('i',{staticClass:\"icon-down-open\"},[(_vm.newMessageCount)?_c('div',{staticClass:\"new-messages-alert-dot\"},[_vm._v(\"\\n                \"+_vm._s(_vm.newMessageCount)+\"\\n              \")]):_vm._e()])]),_vm._v(\" \"),_c('PostStatusForm',{attrs:{\"disabled\":_vm.loadingChat,\"disable-subject\":true,\"disable-scope-selector\":true,\"disable-notice\":true,\"disable-polls\":true,\"poster\":_vm.poster,\"preserve-focus\":true,\"polls-available\":false,\"auto-focus\":true,\"placeholder\":_vm.formPlaceholder,\"max-height\":\"160\"},on:{\"resize\":_vm.handleResize,\"posted\":_vm.onPosted}})],1)]],2)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{},[_c('i',{staticClass:\"button-icon icon-info-circled\"})])}]\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\n\nconst FollowCard = {\n  props: [\n    'user',\n    'noFollowsYou'\n  ],\n  components: {\n    BasicUserCard,\n    RemoteFollow,\n    FollowButton\n  },\n  computed: {\n    isMe () {\n      return this.$store.state.users.currentUser.id === this.user.id\n    },\n    loggedIn () {\n      return this.$store.state.users.currentUser\n    },\n    relationship () {\n      return this.$store.getters.relationship(this.user.id)\n    }\n  }\n}\n\nexport default FollowCard\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./follow_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./follow_card.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-070e8e0f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"follow-card-content-container\"},[(!_vm.noFollowsYou && _vm.relationship.followed_by)?_c('span',{staticClass:\"faint\"},[_vm._v(\"\\n      \"+_vm._s(_vm.isMe ? _vm.$t('user_card.its_you') : _vm.$t('user_card.follows_you'))+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(!_vm.loggedIn)?[(!_vm.relationship.following)?_c('div',{staticClass:\"follow-card-follow-button\"},[_c('RemoteFollow',{attrs:{\"user\":_vm.user}})],1):_vm._e()]:[_c('FollowButton',{staticClass:\"follow-card-follow-button\",attrs:{\"relationship\":_vm.relationship,\"label-following\":_vm.$t('user_card.follow_unfollow')}})]],2)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import get from 'lodash/get'\nimport UserCard from '../user_card/user_card.vue'\nimport FollowCard from '../follow_card/follow_card.vue'\nimport Timeline from '../timeline/timeline.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport List from '../list/list.vue'\nimport withLoadMore from '../../hocs/with_load_more/with_load_more'\n\nconst FollowerList = withLoadMore({\n  fetch: (props, $store) => $store.dispatch('fetchFollowers', props.userId),\n  select: (props, $store) => get($store.getters.findUser(props.userId), 'followerIds', []).map(id => $store.getters.findUser(id)),\n  destroy: (props, $store) => $store.dispatch('clearFollowers', props.userId),\n  childPropName: 'items',\n  additionalPropNames: ['userId']\n})(List)\n\nconst FriendList = withLoadMore({\n  fetch: (props, $store) => $store.dispatch('fetchFriends', props.userId),\n  select: (props, $store) => get($store.getters.findUser(props.userId), 'friendIds', []).map(id => $store.getters.findUser(id)),\n  destroy: (props, $store) => $store.dispatch('clearFriends', props.userId),\n  childPropName: 'items',\n  additionalPropNames: ['userId']\n})(List)\n\nconst defaultTabKey = 'statuses'\n\nconst UserProfile = {\n  data () {\n    return {\n      error: false,\n      userId: null,\n      tab: defaultTabKey\n    }\n  },\n  created () {\n    const routeParams = this.$route.params\n    this.load(routeParams.name || routeParams.id)\n    this.tab = get(this.$route, 'query.tab', defaultTabKey)\n  },\n  destroyed () {\n    this.stopFetching()\n  },\n  computed: {\n    timeline () {\n      return this.$store.state.statuses.timelines.user\n    },\n    favorites () {\n      return this.$store.state.statuses.timelines.favorites\n    },\n    media () {\n      return this.$store.state.statuses.timelines.media\n    },\n    isUs () {\n      return this.userId && this.$store.state.users.currentUser.id &&\n        this.userId === this.$store.state.users.currentUser.id\n    },\n    user () {\n      return this.$store.getters.findUser(this.userId)\n    },\n    isExternal () {\n      return this.$route.name === 'external-user-profile'\n    },\n    followsTabVisible () {\n      return this.isUs || !this.user.hide_follows\n    },\n    followersTabVisible () {\n      return this.isUs || !this.user.hide_followers\n    }\n  },\n  methods: {\n    load (userNameOrId) {\n      const startFetchingTimeline = (timeline, userId) => {\n        // Clear timeline only if load another user's profile\n        if (userId !== this.$store.state.statuses.timelines[timeline].userId) {\n          this.$store.commit('clearTimeline', { timeline })\n        }\n        this.$store.dispatch('startFetchingTimeline', { timeline, userId })\n      }\n\n      const loadById = (userId) => {\n        this.userId = userId\n        startFetchingTimeline('user', userId)\n        startFetchingTimeline('media', userId)\n        if (this.isUs) {\n          startFetchingTimeline('favorites', userId)\n        }\n        // Fetch all pinned statuses immediately\n        this.$store.dispatch('fetchPinnedStatuses', userId)\n      }\n\n      // Reset view\n      this.userId = null\n      this.error = false\n\n      // Check if user data is already loaded in store\n      const user = this.$store.getters.findUser(userNameOrId)\n      if (user) {\n        loadById(user.id)\n      } else {\n        this.$store.dispatch('fetchUser', userNameOrId)\n          .then(({ id }) => loadById(id))\n          .catch((reason) => {\n            const errorMessage = get(reason, 'error.error')\n            if (errorMessage === 'No user with such user_id') { // Known error\n              this.error = this.$t('user_profile.profile_does_not_exist')\n            } else if (errorMessage) {\n              this.error = errorMessage\n            } else {\n              this.error = this.$t('user_profile.profile_loading_error')\n            }\n          })\n      }\n    },\n    stopFetching () {\n      this.$store.dispatch('stopFetchingTimeline', 'user')\n      this.$store.dispatch('stopFetchingTimeline', 'favorites')\n      this.$store.dispatch('stopFetchingTimeline', 'media')\n    },\n    switchUser (userNameOrId) {\n      this.stopFetching()\n      this.load(userNameOrId)\n    },\n    onTabSwitch (tab) {\n      this.tab = tab\n      this.$router.replace({ query: { tab } })\n    }\n  },\n  watch: {\n    '$route.params.id': function (newVal) {\n      if (newVal) {\n        this.switchUser(newVal)\n      }\n    },\n    '$route.params.name': function (newVal) {\n      if (newVal) {\n        this.switchUser(newVal)\n      }\n    },\n    '$route.query': function (newVal) {\n      this.tab = newVal.tab || defaultTabKey\n    }\n  },\n  components: {\n    UserCard,\n    Timeline,\n    FollowerList,\n    FriendList,\n    FollowCard,\n    Conversation\n  }\n}\n\nexport default UserProfile\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_profile.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_profile.js\"\nimport __vue_script__ from \"!!babel-loader!./user_profile.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-21b328ed\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_profile.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.user)?_c('div',{staticClass:\"user-profile panel panel-default\"},[_c('UserCard',{attrs:{\"user-id\":_vm.userId,\"switcher\":true,\"selected\":_vm.timeline.viewing,\"allow-zooming-avatar\":true,\"rounded\":\"top\"}}),_vm._v(\" \"),_c('tab-switcher',{attrs:{\"active-tab\":_vm.tab,\"render-only-focused\":true,\"on-switch\":_vm.onTabSwitch}},[_c('Timeline',{key:\"statuses\",attrs:{\"label\":_vm.$t('user_card.statuses'),\"count\":_vm.user.statuses_count,\"embedded\":true,\"title\":_vm.$t('user_profile.timeline_title'),\"timeline\":_vm.timeline,\"timeline-name\":\"user\",\"user-id\":_vm.userId,\"pinned-status-ids\":_vm.user.pinnedStatusIds,\"in-profile\":true}}),_vm._v(\" \"),(_vm.followsTabVisible)?_c('div',{key:\"followees\",attrs:{\"label\":_vm.$t('user_card.followees'),\"disabled\":!_vm.user.friends_count}},[_c('FriendList',{attrs:{\"user-id\":_vm.userId},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('FollowCard',{attrs:{\"user\":item}})]}}])})],1):_vm._e(),_vm._v(\" \"),(_vm.followersTabVisible)?_c('div',{key:\"followers\",attrs:{\"label\":_vm.$t('user_card.followers'),\"disabled\":!_vm.user.followers_count}},[_c('FollowerList',{attrs:{\"user-id\":_vm.userId},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('FollowCard',{attrs:{\"user\":item,\"no-follows-you\":_vm.isUs}})]}}])})],1):_vm._e(),_vm._v(\" \"),_c('Timeline',{key:\"media\",attrs:{\"label\":_vm.$t('user_card.media'),\"disabled\":!_vm.media.visibleStatuses.length,\"embedded\":true,\"title\":_vm.$t('user_card.media'),\"timeline-name\":\"media\",\"timeline\":_vm.media,\"user-id\":_vm.userId,\"in-profile\":true}}),_vm._v(\" \"),(_vm.isUs)?_c('Timeline',{key:\"favorites\",attrs:{\"label\":_vm.$t('user_card.favorites'),\"disabled\":!_vm.favorites.visibleStatuses.length,\"embedded\":true,\"title\":_vm.$t('user_card.favorites'),\"timeline-name\":\"favorites\",\"timeline\":_vm.favorites,\"in-profile\":true}}):_vm._e()],1)],1):_c('div',{staticClass:\"panel user-profile-placeholder\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.profile_tab'))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[(_vm.error)?_c('span',[_vm._v(_vm._s(_vm.error))]):_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import FollowCard from '../follow_card/follow_card.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport Status from '../status/status.vue'\nimport map from 'lodash/map'\n\nconst Search = {\n  components: {\n    FollowCard,\n    Conversation,\n    Status\n  },\n  props: [\n    'query'\n  ],\n  data () {\n    return {\n      loaded: false,\n      loading: false,\n      searchTerm: this.query || '',\n      userIds: [],\n      statuses: [],\n      hashtags: [],\n      currenResultTab: 'statuses'\n    }\n  },\n  computed: {\n    users () {\n      return this.userIds.map(userId => this.$store.getters.findUser(userId))\n    },\n    visibleStatuses () {\n      const allStatusesObject = this.$store.state.statuses.allStatusesObject\n\n      return this.statuses.filter(status =>\n        allStatusesObject[status.id] && !allStatusesObject[status.id].deleted\n      )\n    }\n  },\n  mounted () {\n    this.search(this.query)\n  },\n  watch: {\n    query (newValue) {\n      this.searchTerm = newValue\n      this.search(newValue)\n    }\n  },\n  methods: {\n    newQuery (query) {\n      this.$router.push({ name: 'search', query: { query } })\n      this.$refs.searchInput.focus()\n    },\n    search (query) {\n      if (!query) {\n        this.loading = false\n        return\n      }\n\n      this.loading = true\n      this.userIds = []\n      this.statuses = []\n      this.hashtags = []\n      this.$refs.searchInput.blur()\n\n      this.$store.dispatch('search', { q: query, resolve: true })\n        .then(data => {\n          this.loading = false\n          this.userIds = map(data.accounts, 'id')\n          this.statuses = data.statuses\n          this.hashtags = data.hashtags\n          this.currenResultTab = this.getActiveTab()\n          this.loaded = true\n        })\n    },\n    resultCount (tabName) {\n      const length = this[tabName].length\n      return length === 0 ? '' : ` (${length})`\n    },\n    onResultTabSwitch (key) {\n      this.currenResultTab = key\n    },\n    getActiveTab () {\n      if (this.visibleStatuses.length > 0) {\n        return 'statuses'\n      } else if (this.users.length > 0) {\n        return 'people'\n      } else if (this.hashtags.length > 0) {\n        return 'hashtags'\n      }\n\n      return 'statuses'\n    },\n    lastHistoryRecord (hashtag) {\n      return hashtag.history && hashtag.history[0]\n    }\n  }\n}\n\nexport default Search\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./search.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./search.js\"\nimport __vue_script__ from \"!!babel-loader!./search.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3962ec42\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./search.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('nav.search'))+\"\\n    \")])]),_vm._v(\" \"),_c('div',{staticClass:\"search-input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],ref:\"searchInput\",staticClass:\"search-input\",attrs:{\"placeholder\":_vm.$t('nav.search')},domProps:{\"value\":(_vm.searchTerm)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }_vm.newQuery(_vm.searchTerm)},\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn search-button\",on:{\"click\":function($event){_vm.newQuery(_vm.searchTerm)}}},[_c('i',{staticClass:\"icon-search\"})])]),_vm._v(\" \"),(_vm.loading)?_c('div',{staticClass:\"text-center loading-icon\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})]):(_vm.loaded)?_c('div',[_c('div',{staticClass:\"search-nav-heading\"},[_c('tab-switcher',{ref:\"tabSwitcher\",attrs:{\"on-switch\":_vm.onResultTabSwitch,\"active-tab\":_vm.currenResultTab}},[_c('span',{key:\"statuses\",attrs:{\"label\":_vm.$t('user_card.statuses') + _vm.resultCount('visibleStatuses')}}),_vm._v(\" \"),_c('span',{key:\"people\",attrs:{\"label\":_vm.$t('search.people') + _vm.resultCount('users')}}),_vm._v(\" \"),_c('span',{key:\"hashtags\",attrs:{\"label\":_vm.$t('search.hashtags') + _vm.resultCount('hashtags')}})])],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[(_vm.currenResultTab === 'statuses')?_c('div',[(_vm.visibleStatuses.length === 0 && !_vm.loading && _vm.loaded)?_c('div',{staticClass:\"search-result-heading\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('search.no_results')))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.visibleStatuses),function(status){return _c('Status',{key:status.id,staticClass:\"search-result\",attrs:{\"collapsable\":false,\"expandable\":false,\"compact\":false,\"statusoid\":status,\"no-heading\":false}})})],2):(_vm.currenResultTab === 'people')?_c('div',[(_vm.users.length === 0 && !_vm.loading && _vm.loaded)?_c('div',{staticClass:\"search-result-heading\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('search.no_results')))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.users),function(user){return _c('FollowCard',{key:user.id,staticClass:\"list-item search-result\",attrs:{\"user\":user}})})],2):(_vm.currenResultTab === 'hashtags')?_c('div',[(_vm.hashtags.length === 0 && !_vm.loading && _vm.loaded)?_c('div',{staticClass:\"search-result-heading\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('search.no_results')))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.hashtags),function(hashtag){return _c('div',{key:hashtag.url,staticClass:\"status trend search-result\"},[_c('div',{staticClass:\"hashtag\"},[_c('router-link',{attrs:{\"to\":{ name: 'tag-timeline', params: { tag: hashtag.name } }}},[_vm._v(\"\\n            #\"+_vm._s(hashtag.name)+\"\\n          \")]),_vm._v(\" \"),(_vm.lastHistoryRecord(hashtag))?_c('div',[(_vm.lastHistoryRecord(hashtag).accounts == 1)?_c('span',[_vm._v(\"\\n              \"+_vm._s(_vm.$t('search.person_talking', { count: _vm.lastHistoryRecord(hashtag).accounts }))+\"\\n            \")]):_c('span',[_vm._v(\"\\n              \"+_vm._s(_vm.$t('search.people_talking', { count: _vm.lastHistoryRecord(hashtag).accounts }))+\"\\n            \")])]):_vm._e()],1),_vm._v(\" \"),(_vm.lastHistoryRecord(hashtag))?_c('div',{staticClass:\"count\"},[_vm._v(\"\\n          \"+_vm._s(_vm.lastHistoryRecord(hashtag).uses)+\"\\n        \")]):_vm._e()])})],2):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"search-result-footer text-center panel-footer faint\"})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"color-input style-control\"\n    :class=\"{ disabled: !present || disabled }\"\n  >\n    <label\n      :for=\"name\"\n      class=\"label\"\n    >\n      {{ label }}\n    </label>\n    <Checkbox\n      v-if=\"typeof fallback !== 'undefined' && showOptionalTickbox\"\n      :checked=\"present\"\n      :disabled=\"disabled\"\n      class=\"opt\"\n      @change=\"$emit('input', typeof value === 'undefined' ? fallback : undefined)\"\n    />\n    <div class=\"input color-input-field\">\n      <input\n        :id=\"name + '-t'\"\n        class=\"textColor unstyled\"\n        type=\"text\"\n        :value=\"value || fallback\"\n        :disabled=\"!present || disabled\"\n        @input=\"$emit('input', $event.target.value)\"\n      >\n      <input\n        v-if=\"validColor\"\n        :id=\"name\"\n        class=\"nativeColor unstyled\"\n        type=\"color\"\n        :value=\"value || fallback\"\n        :disabled=\"!present || disabled\"\n        @input=\"$emit('input', $event.target.value)\"\n      >\n      <div\n        v-if=\"transparentColor\"\n        class=\"transparentIndicator\"\n      />\n      <div\n        v-if=\"computedColor\"\n        class=\"computedIndicator\"\n        :style=\"{backgroundColor: fallback}\"\n      />\n    </div>\n  </div>\n</template>\n<style lang=\"scss\" src=\"./color_input.scss\"></style>\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nexport default {\n  components: {\n    Checkbox\n  },\n  props: {\n    // Name of color, used for identifying\n    name: {\n      required: true,\n      type: String\n    },\n    // Readable label\n    label: {\n      required: true,\n      type: String\n    },\n    // Color value, should be required but vue cannot tell the difference\n    // between \"property missing\" and \"property set to undefined\"\n    value: {\n      required: false,\n      type: String,\n      default: undefined\n    },\n    // Color fallback to use when value is not defeind\n    fallback: {\n      required: false,\n      type: String,\n      default: undefined\n    },\n    // Disable the control\n    disabled: {\n      required: false,\n      type: Boolean,\n      default: false\n    },\n    // Show \"optional\" tickbox, for when value might become mandatory\n    showOptionalTickbox: {\n      required: false,\n      type: Boolean,\n      default: true\n    }\n  },\n  computed: {\n    present () {\n      return typeof this.value !== 'undefined'\n    },\n    validColor () {\n      return hex2rgb(this.value || this.fallback)\n    },\n    transparentColor () {\n      return this.value === 'transparent'\n    },\n    computedColor () {\n      return this.value && this.value.startsWith('--')\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\">\n.color-control {\n  input.text-input {\n    max-width: 7em;\n    flex: 1;\n  }\n}\n</style>\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./color_input.scss\")\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=1!./color_input.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./color_input.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./color_input.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-77e407b6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./color_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"color-input style-control\",class:{ disabled: !_vm.present || _vm.disabled }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.name}},[_vm._v(\"\\n    \"+_vm._s(_vm.label)+\"\\n  \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined' && _vm.showOptionalTickbox)?_c('Checkbox',{staticClass:\"opt\",attrs:{\"checked\":_vm.present,\"disabled\":_vm.disabled},on:{\"change\":function($event){_vm.$emit('input', typeof _vm.value === 'undefined' ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"input color-input-field\"},[_c('input',{staticClass:\"textColor unstyled\",attrs:{\"id\":_vm.name + '-t',\"type\":\"text\",\"disabled\":!_vm.present || _vm.disabled},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}}),_vm._v(\" \"),(_vm.validColor)?_c('input',{staticClass:\"nativeColor unstyled\",attrs:{\"id\":_vm.name,\"type\":\"color\",\"disabled\":!_vm.present || _vm.disabled},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}}):_vm._e(),_vm._v(\" \"),(_vm.transparentColor)?_c('div',{staticClass:\"transparentIndicator\"}):_vm._e(),_vm._v(\" \"),(_vm.computedColor)?_c('div',{staticClass:\"computedIndicator\",style:({backgroundColor: _vm.fallback})}):_vm._e()])],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./range_input.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./range_input.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6a3c1a26\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./range_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","<template>\n  <div\n    class=\"range-control style-control\"\n    :class=\"{ disabled: !present || disabled }\"\n  >\n    <label\n      :for=\"name\"\n      class=\"label\"\n    >\n      {{ label }}\n    </label>\n    <input\n      v-if=\"typeof fallback !== 'undefined'\"\n      :id=\"name + '-o'\"\n      class=\"opt\"\n      type=\"checkbox\"\n      :checked=\"present\"\n      @input=\"$emit('input', !present ? fallback : undefined)\"\n    >\n    <label\n      v-if=\"typeof fallback !== 'undefined'\"\n      class=\"opt-l\"\n      :for=\"name + '-o'\"\n    />\n    <input\n      :id=\"name\"\n      class=\"input-number\"\n      type=\"range\"\n      :value=\"value || fallback\"\n      :disabled=\"!present || disabled\"\n      :max=\"max || hardMax || 100\"\n      :min=\"min || hardMin || 0\"\n      :step=\"step || 1\"\n      @input=\"$emit('input', $event.target.value)\"\n    >\n    <input\n      :id=\"name\"\n      class=\"input-number\"\n      type=\"number\"\n      :value=\"value || fallback\"\n      :disabled=\"!present || disabled\"\n      :max=\"hardMax\"\n      :min=\"hardMin\"\n      :step=\"step || 1\"\n      @input=\"$emit('input', $event.target.value)\"\n    >\n  </div>\n</template>\n\n<script>\nexport default {\n  props: [\n    'name', 'value', 'fallback', 'disabled', 'label', 'max', 'min', 'step', 'hardMin', 'hardMax'\n  ],\n  computed: {\n    present () {\n      return typeof this.value !== 'undefined'\n    }\n  }\n}\n</script>\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"range-control style-control\",class:{ disabled: !_vm.present || _vm.disabled }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.name}},[_vm._v(\"\\n    \"+_vm._s(_vm.label)+\"\\n  \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('input',{staticClass:\"opt\",attrs:{\"id\":_vm.name + '-o',\"type\":\"checkbox\"},domProps:{\"checked\":_vm.present},on:{\"input\":function($event){_vm.$emit('input', !_vm.present ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('label',{staticClass:\"opt-l\",attrs:{\"for\":_vm.name + '-o'}}):_vm._e(),_vm._v(\" \"),_c('input',{staticClass:\"input-number\",attrs:{\"id\":_vm.name,\"type\":\"range\",\"disabled\":!_vm.present || _vm.disabled,\"max\":_vm.max || _vm.hardMax || 100,\"min\":_vm.min || _vm.hardMin || 0,\"step\":_vm.step || 1},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}}),_vm._v(\" \"),_c('input',{staticClass:\"input-number\",attrs:{\"id\":_vm.name,\"type\":\"number\",\"disabled\":!_vm.present || _vm.disabled,\"max\":_vm.hardMax,\"min\":_vm.hardMin,\"step\":_vm.step || 1},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"opacity-control style-control\"\n    :class=\"{ disabled: !present || disabled }\"\n  >\n    <label\n      :for=\"name\"\n      class=\"label\"\n    >\n      {{ $t('settings.style.common.opacity') }}\n    </label>\n    <Checkbox\n      v-if=\"typeof fallback !== 'undefined'\"\n      :checked=\"present\"\n      :disabled=\"disabled\"\n      class=\"opt\"\n      @change=\"$emit('input', !present ? fallback : undefined)\"\n    />\n    <input\n      :id=\"name\"\n      class=\"input-number\"\n      type=\"number\"\n      :value=\"value || fallback\"\n      :disabled=\"!present || disabled\"\n      max=\"1\"\n      min=\"0\"\n      step=\".05\"\n      @input=\"$emit('input', $event.target.value)\"\n    >\n  </div>\n</template>\n\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nexport default {\n  components: {\n    Checkbox\n  },\n  props: [\n    'name', 'value', 'fallback', 'disabled'\n  ],\n  computed: {\n    present () {\n      return typeof this.value !== 'undefined'\n    }\n  }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./opacity_input.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./opacity_input.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3b48fa39\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./opacity_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"opacity-control style-control\",class:{ disabled: !_vm.present || _vm.disabled }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.name}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('settings.style.common.opacity'))+\"\\n  \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('Checkbox',{staticClass:\"opt\",attrs:{\"checked\":_vm.present,\"disabled\":_vm.disabled},on:{\"change\":function($event){_vm.$emit('input', !_vm.present ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),_c('input',{staticClass:\"input-number\",attrs:{\"id\":_vm.name,\"type\":\"number\",\"disabled\":!_vm.present || _vm.disabled,\"max\":\"1\",\"min\":\"0\",\"step\":\".05\"},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import ColorInput from '../color_input/color_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport { getCssShadow } from '../../services/style_setter/style_setter.js'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\n\nconst toModel = (object = {}) => ({\n  x: 0,\n  y: 0,\n  blur: 0,\n  spread: 0,\n  inset: false,\n  color: '#000000',\n  alpha: 1,\n  ...object\n})\n\nexport default {\n  // 'Value' and 'Fallback' can be undefined, but if they are\n  // initially vue won't detect it when they become something else\n  // therefore i'm using \"ready\" which should be passed as true when\n  // data becomes available\n  props: [\n    'value', 'fallback', 'ready'\n  ],\n  data () {\n    return {\n      selectedId: 0,\n      // TODO there are some bugs regarding display of array (it's not getting updated when deleting for some reason)\n      cValue: (this.value || this.fallback || []).map(toModel)\n    }\n  },\n  components: {\n    ColorInput,\n    OpacityInput\n  },\n  methods: {\n    add () {\n      this.cValue.push(toModel(this.selected))\n      this.selectedId = this.cValue.length - 1\n    },\n    del () {\n      this.cValue.splice(this.selectedId, 1)\n      this.selectedId = this.cValue.length === 0 ? undefined : Math.max(this.selectedId - 1, 0)\n    },\n    moveUp () {\n      const movable = this.cValue.splice(this.selectedId, 1)[0]\n      this.cValue.splice(this.selectedId - 1, 0, movable)\n      this.selectedId -= 1\n    },\n    moveDn () {\n      const movable = this.cValue.splice(this.selectedId, 1)[0]\n      this.cValue.splice(this.selectedId + 1, 0, movable)\n      this.selectedId += 1\n    }\n  },\n  beforeUpdate () {\n    this.cValue = this.value || this.fallback\n  },\n  computed: {\n    anyShadows () {\n      return this.cValue.length > 0\n    },\n    anyShadowsFallback () {\n      return this.fallback.length > 0\n    },\n    selected () {\n      if (this.ready && this.anyShadows) {\n        return this.cValue[this.selectedId]\n      } else {\n        return toModel({})\n      }\n    },\n    currentFallback () {\n      if (this.ready && this.anyShadowsFallback) {\n        return this.fallback[this.selectedId]\n      } else {\n        return toModel({})\n      }\n    },\n    moveUpValid () {\n      return this.ready && this.selectedId > 0\n    },\n    moveDnValid () {\n      return this.ready && this.selectedId < this.cValue.length - 1\n    },\n    present () {\n      return this.ready &&\n        typeof this.cValue[this.selectedId] !== 'undefined' &&\n        !this.usingFallback\n    },\n    usingFallback () {\n      return typeof this.value === 'undefined'\n    },\n    rgb () {\n      return hex2rgb(this.selected.color)\n    },\n    style () {\n      return this.ready ? {\n        boxShadow: getCssShadow(this.fallback)\n      } : {}\n    }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./shadow_control.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./shadow_control.js\"\nimport __vue_script__ from \"!!babel-loader!./shadow_control.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5c532734\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./shadow_control.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"shadow-control\",class:{ disabled: !_vm.present }},[_c('div',{staticClass:\"shadow-preview-container\"},[_c('div',{staticClass:\"y-shift-control\",attrs:{\"disabled\":!_vm.present}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.y),expression:\"selected.y\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\"},domProps:{\"value\":(_vm.selected.y)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"y\", $event.target.value)}}}),_vm._v(\" \"),_c('div',{staticClass:\"wrap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.y),expression:\"selected.y\"}],staticClass:\"input-range\",attrs:{\"disabled\":!_vm.present,\"type\":\"range\",\"max\":\"20\",\"min\":\"-20\"},domProps:{\"value\":(_vm.selected.y)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"y\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"preview-window\"},[_c('div',{staticClass:\"preview-block\",style:(_vm.style)})]),_vm._v(\" \"),_c('div',{staticClass:\"x-shift-control\",attrs:{\"disabled\":!_vm.present}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.x),expression:\"selected.x\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\"},domProps:{\"value\":(_vm.selected.x)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"x\", $event.target.value)}}}),_vm._v(\" \"),_c('div',{staticClass:\"wrap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.x),expression:\"selected.x\"}],staticClass:\"input-range\",attrs:{\"disabled\":!_vm.present,\"type\":\"range\",\"max\":\"20\",\"min\":\"-20\"},domProps:{\"value\":(_vm.selected.x)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"x\", $event.target.value)}}})])])]),_vm._v(\" \"),_c('div',{staticClass:\"shadow-tweak\"},[_c('div',{staticClass:\"id-control style-control\",attrs:{\"disabled\":_vm.usingFallback}},[_c('label',{staticClass:\"select\",attrs:{\"for\":\"shadow-switcher\",\"disabled\":!_vm.ready || _vm.usingFallback}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedId),expression:\"selectedId\"}],staticClass:\"shadow-switcher\",attrs:{\"id\":\"shadow-switcher\",\"disabled\":!_vm.ready || _vm.usingFallback},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.cValue),function(shadow,index){return _c('option',{key:index,domProps:{\"value\":index}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.shadows.shadow_id', { value: index }))+\"\\n          \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":!_vm.ready || !_vm.present},on:{\"click\":_vm.del}},[_c('i',{staticClass:\"icon-cancel\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":!_vm.moveUpValid},on:{\"click\":_vm.moveUp}},[_c('i',{staticClass:\"icon-up-open\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":!_vm.moveDnValid},on:{\"click\":_vm.moveDn}},[_c('i',{staticClass:\"icon-down-open\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.usingFallback},on:{\"click\":_vm.add}},[_c('i',{staticClass:\"icon-plus\"})])]),_vm._v(\" \"),_c('div',{staticClass:\"inset-control style-control\",attrs:{\"disabled\":!_vm.present}},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"inset\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.shadows.inset'))+\"\\n      \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.inset),expression:\"selected.inset\"}],staticClass:\"input-inset\",attrs:{\"id\":\"inset\",\"disabled\":!_vm.present,\"name\":\"inset\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.selected.inset)?_vm._i(_vm.selected.inset,null)>-1:(_vm.selected.inset)},on:{\"change\":function($event){var $$a=_vm.selected.inset,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.selected, \"inset\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.selected, \"inset\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.selected, \"inset\", $$c)}}}}),_vm._v(\" \"),_c('label',{staticClass:\"checkbox-label\",attrs:{\"for\":\"inset\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"blur-control style-control\",attrs:{\"disabled\":!_vm.present}},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"spread\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.shadows.blur'))+\"\\n      \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.blur),expression:\"selected.blur\"}],staticClass:\"input-range\",attrs:{\"id\":\"blur\",\"disabled\":!_vm.present,\"name\":\"blur\",\"type\":\"range\",\"max\":\"20\",\"min\":\"0\"},domProps:{\"value\":(_vm.selected.blur)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"blur\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.blur),expression:\"selected.blur\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\",\"min\":\"0\"},domProps:{\"value\":(_vm.selected.blur)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"blur\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"spread-control style-control\",attrs:{\"disabled\":!_vm.present}},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"spread\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.shadows.spread'))+\"\\n      \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.spread),expression:\"selected.spread\"}],staticClass:\"input-range\",attrs:{\"id\":\"spread\",\"disabled\":!_vm.present,\"name\":\"spread\",\"type\":\"range\",\"max\":\"20\",\"min\":\"-20\"},domProps:{\"value\":(_vm.selected.spread)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"spread\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.spread),expression:\"selected.spread\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\"},domProps:{\"value\":(_vm.selected.spread)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"spread\", $event.target.value)}}})]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"disabled\":!_vm.present,\"label\":_vm.$t('settings.style.common.color'),\"fallback\":_vm.currentFallback.color,\"show-optional-tickbox\":false,\"name\":\"shadow\"},model:{value:(_vm.selected.color),callback:function ($$v) {_vm.$set(_vm.selected, \"color\", $$v)},expression:\"selected.color\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"disabled\":!_vm.present},model:{value:(_vm.selected.alpha),callback:function ($$v) {_vm.$set(_vm.selected, \"alpha\", $$v)},expression:\"selected.alpha\"}}),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.shadows.hintV3\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"--variable,mod\")])])],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { set } from 'vue'\n\nexport default {\n  props: [\n    'name', 'label', 'value', 'fallback', 'options', 'no-inherit'\n  ],\n  data () {\n    return {\n      lValue: this.value,\n      availableOptions: [\n        this.noInherit ? '' : 'inherit',\n        'custom',\n        ...(this.options || []),\n        'serif',\n        'monospace',\n        'sans-serif'\n      ].filter(_ => _)\n    }\n  },\n  beforeUpdate () {\n    this.lValue = this.value\n  },\n  computed: {\n    present () {\n      return typeof this.lValue !== 'undefined'\n    },\n    dValue () {\n      return this.lValue || this.fallback || {}\n    },\n    family: {\n      get () {\n        return this.dValue.family\n      },\n      set (v) {\n        set(this.lValue, 'family', v)\n        this.$emit('input', this.lValue)\n      }\n    },\n    isCustom () {\n      return this.preset === 'custom'\n    },\n    preset: {\n      get () {\n        if (this.family === 'serif' ||\n            this.family === 'sans-serif' ||\n            this.family === 'monospace' ||\n            this.family === 'inherit') {\n          return this.family\n        } else {\n          return 'custom'\n        }\n      },\n      set (v) {\n        this.family = v === 'custom' ? '' : v\n      }\n    }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./font_control.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./font_control.js\"\nimport __vue_script__ from \"!!babel-loader!./font_control.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0edf8dfc\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./font_control.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-control style-control\",class:{ custom: _vm.isCustom }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.preset === 'custom' ? _vm.name : _vm.name + '-font-switcher'}},[_vm._v(\"\\n    \"+_vm._s(_vm.label)+\"\\n  \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('input',{staticClass:\"opt exlcude-disabled\",attrs:{\"id\":_vm.name + '-o',\"type\":\"checkbox\"},domProps:{\"checked\":_vm.present},on:{\"input\":function($event){_vm.$emit('input', typeof _vm.value === 'undefined' ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('label',{staticClass:\"opt-l\",attrs:{\"for\":_vm.name + '-o'}}):_vm._e(),_vm._v(\" \"),_c('label',{staticClass:\"select\",attrs:{\"for\":_vm.name + '-font-switcher',\"disabled\":!_vm.present}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.preset),expression:\"preset\"}],staticClass:\"font-switcher\",attrs:{\"id\":_vm.name + '-font-switcher',\"disabled\":!_vm.present},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.preset=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.availableOptions),function(option){return _c('option',{key:option,domProps:{\"value\":option}},[_vm._v(\"\\n        \"+_vm._s(option === 'custom' ? _vm.$t('settings.style.fonts.custom') : option)+\"\\n      \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})]),_vm._v(\" \"),(_vm.isCustom)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.family),expression:\"family\"}],staticClass:\"custom-font\",attrs:{\"id\":_vm.name,\"type\":\"text\"},domProps:{\"value\":(_vm.family)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.family=$event.target.value}}}):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <span\n    v-if=\"contrast\"\n    class=\"contrast-ratio\"\n  >\n    <span\n      :title=\"hint\"\n      class=\"rating\"\n    >\n      <span v-if=\"contrast.aaa\">\n        <i class=\"icon-thumbs-up-alt\" />\n      </span>\n      <span v-if=\"!contrast.aaa && contrast.aa\">\n        <i class=\"icon-adjust\" />\n      </span>\n      <span v-if=\"!contrast.aaa && !contrast.aa\">\n        <i class=\"icon-attention\" />\n      </span>\n    </span>\n    <span\n      v-if=\"contrast && large\"\n      class=\"rating\"\n      :title=\"hint_18pt\"\n    >\n      <span v-if=\"contrast.laaa\">\n        <i class=\"icon-thumbs-up-alt\" />\n      </span>\n      <span v-if=\"!contrast.laaa && contrast.laa\">\n        <i class=\"icon-adjust\" />\n      </span>\n      <span v-if=\"!contrast.laaa && !contrast.laa\">\n        <i class=\"icon-attention\" />\n      </span>\n    </span>\n  </span>\n</template>\n\n<script>\nexport default {\n  props: {\n    large: {\n      required: false\n    },\n    // TODO: Make theme switcher compute theme initially so that contrast\n    // component won't be called without contrast data\n    contrast: {\n      required: false,\n      type: Object\n    }\n  },\n  computed: {\n    hint () {\n      const levelVal = this.contrast.aaa ? 'aaa' : (this.contrast.aa ? 'aa' : 'bad')\n      const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n      const context = this.$t('settings.style.common.contrast.context.text')\n      const ratio = this.contrast.text\n      return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n    },\n    hint_18pt () {\n      const levelVal = this.contrast.laaa ? 'aaa' : (this.contrast.laa ? 'aa' : 'bad')\n      const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n      const context = this.$t('settings.style.common.contrast.context.18pt')\n      const ratio = this.contrast.text\n      return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\">\n.contrast-ratio {\n  display: flex;\n  justify-content: flex-end;\n\n  margin-top: -4px;\n  margin-bottom: 5px;\n\n  .label {\n    margin-right: 1em;\n  }\n\n  .rating {\n    display: inline-block;\n    text-align: center;\n  }\n}\n</style>\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./contrast_ratio.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./contrast_ratio.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./contrast_ratio.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2507acc6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./contrast_ratio.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.contrast)?_c('span',{staticClass:\"contrast-ratio\"},[_c('span',{staticClass:\"rating\",attrs:{\"title\":_vm.hint}},[(_vm.contrast.aaa)?_c('span',[_c('i',{staticClass:\"icon-thumbs-up-alt\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.aaa && _vm.contrast.aa)?_c('span',[_c('i',{staticClass:\"icon-adjust\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.aaa && !_vm.contrast.aa)?_c('span',[_c('i',{staticClass:\"icon-attention\"})]):_vm._e()]),_vm._v(\" \"),(_vm.contrast && _vm.large)?_c('span',{staticClass:\"rating\",attrs:{\"title\":_vm.hint_18pt}},[(_vm.contrast.laaa)?_c('span',[_c('i',{staticClass:\"icon-thumbs-up-alt\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.laaa && _vm.contrast.laa)?_c('span',[_c('i',{staticClass:\"icon-adjust\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.laaa && !_vm.contrast.laa)?_c('span',[_c('i',{staticClass:\"icon-attention\"})]):_vm._e()]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./preview.vue\")\n}\n/* script */\nvar __vue_script__ = null\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-395e9872\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./preview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"preview-container\"},[_c('div',{staticClass:\"underlay underlay-preview\"}),_vm._v(\" \"),_c('div',{staticClass:\"panel dummy\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.preview.header'))+\"\\n        \"),_c('span',{staticClass:\"badge badge-notification\"},[_vm._v(\"\\n          99\\n        \")])]),_vm._v(\" \"),_c('span',{staticClass:\"faint\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.preview.header_faint'))+\"\\n      \")]),_vm._v(\" \"),_c('span',{staticClass:\"alert error\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.preview.error'))+\"\\n      \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.preview.button'))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body theme-preview-content\"},[_c('div',{staticClass:\"post\"},[_c('div',{staticClass:\"avatar still-image\"},[_vm._v(\"\\n          ( ͡° ͜ʖ ͡°)\\n        \")]),_vm._v(\" \"),_c('div',{staticClass:\"content\"},[_c('h4',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.preview.content'))+\"\\n          \")]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.preview.text\"}},[_c('code',{staticStyle:{\"font-family\":\"var(--postCodeFont)\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.preview.mono'))+\"\\n            \")]),_vm._v(\" \"),_c('a',{staticStyle:{\"color\":\"var(--link)\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.preview.link'))+\"\\n            \")])]),_vm._v(\" \"),_vm._m(0)],1)]),_vm._v(\" \"),_c('div',{staticClass:\"after-post\"},[_c('div',{staticClass:\"avatar-alt\"},[_vm._v(\"\\n          :^)\\n        \")]),_vm._v(\" \"),_c('div',{staticClass:\"content\"},[_c('i18n',{staticClass:\"faint\",attrs:{\"path\":\"settings.style.preview.fine_print\",\"tag\":\"span\"}},[_c('a',{staticStyle:{\"color\":\"var(--faintLink)\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.preview.faint_link'))+\"\\n            \")])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"separator\"}),_vm._v(\" \"),_c('span',{staticClass:\"alert error\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.style.preview.error'))+\"\\n      \")]),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.$t('settings.style.preview.input')}}),_vm._v(\" \"),_c('div',{staticClass:\"actions\"},[_c('span',{staticClass:\"checkbox\"},[_c('input',{attrs:{\"id\":\"preview_checkbox\",\"checked\":\"very yes\",\"type\":\"checkbox\"}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"preview_checkbox\"}},[_vm._v(_vm._s(_vm.$t('settings.style.preview.checkbox')))])]),_vm._v(\" \"),_c('button',{staticClass:\"btn\"},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.style.preview.button'))+\"\\n        \")])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"icons\"},[_c('i',{staticClass:\"button-icon icon-reply\",staticStyle:{\"color\":\"var(--cBlue)\"}}),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-retweet\",staticStyle:{\"color\":\"var(--cGreen)\"}}),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-star\",staticStyle:{\"color\":\"var(--cOrange)\"}}),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-cancel\",staticStyle:{\"color\":\"var(--cRed)\"}})])}]\nexport { render, staticRenderFns }","<template>\n  <div class=\"import-export-container\">\n    <slot name=\"before\" />\n    <button\n      class=\"btn\"\n      @click=\"exportData\"\n    >\n      {{ exportLabel }}\n    </button>\n    <button\n      class=\"btn\"\n      @click=\"importData\"\n    >\n      {{ importLabel }}\n    </button>\n    <slot name=\"afterButtons\" />\n    <p\n      v-if=\"importFailed\"\n      class=\"alert error\"\n    >\n      {{ importFailedText }}\n    </p>\n    <slot name=\"afterError\" />\n  </div>\n</template>\n\n<script>\nexport default {\n  props: [\n    'exportObject',\n    'importLabel',\n    'exportLabel',\n    'importFailedText',\n    'validator',\n    'onImport',\n    'onImportFailure'\n  ],\n  data () {\n    return {\n      importFailed: false\n    }\n  },\n  methods: {\n    exportData () {\n      const stringified = JSON.stringify(this.exportObject, null, 2) // Pretty-print and indent with 2 spaces\n\n      // Create an invisible link with a data url and simulate a click\n      const e = document.createElement('a')\n      e.setAttribute('download', 'pleroma_theme.json')\n      e.setAttribute('href', 'data:application/json;base64,' + window.btoa(stringified))\n      e.style.display = 'none'\n\n      document.body.appendChild(e)\n      e.click()\n      document.body.removeChild(e)\n    },\n    importData () {\n      this.importFailed = false\n      const filePicker = document.createElement('input')\n      filePicker.setAttribute('type', 'file')\n      filePicker.setAttribute('accept', '.json')\n\n      filePicker.addEventListener('change', event => {\n        if (event.target.files[0]) {\n          // eslint-disable-next-line no-undef\n          const reader = new FileReader()\n          reader.onload = ({ target }) => {\n            try {\n              const parsed = JSON.parse(target.result)\n              const valid = this.validator(parsed)\n              if (valid) {\n                this.onImport(parsed)\n              } else {\n                this.importFailed = true\n                // this.onImportFailure(valid)\n              }\n            } catch (e) {\n              // This will happen both if there is a JSON syntax error or the theme is missing components\n              this.importFailed = true\n              // this.onImportFailure(e)\n            }\n          }\n          reader.readAsText(event.target.files[0])\n        }\n      })\n\n      document.body.appendChild(filePicker)\n      filePicker.click()\n      document.body.removeChild(filePicker)\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\">\n.import-export-container {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: baseline;\n  justify-content: center;\n}\n</style>\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./export_import.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./export_import.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./export_import.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3d9b5a74\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./export_import.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"import-export-container\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.exportData}},[_vm._v(\"\\n    \"+_vm._s(_vm.exportLabel)+\"\\n  \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.importData}},[_vm._v(\"\\n    \"+_vm._s(_vm.importLabel)+\"\\n  \")]),_vm._v(\" \"),_vm._t(\"afterButtons\"),_vm._v(\" \"),(_vm.importFailed)?_c('p',{staticClass:\"alert error\"},[_vm._v(\"\\n    \"+_vm._s(_vm.importFailedText)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"afterError\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { set, delete as del } from 'vue'\nimport {\n  rgb2hex,\n  hex2rgb,\n  getContrastRatioLayers\n} from '../../services/color_convert/color_convert.js'\nimport {\n  DEFAULT_SHADOWS,\n  generateColors,\n  generateShadows,\n  generateRadii,\n  generateFonts,\n  composePreset,\n  getThemes,\n  shadows2to3,\n  colors2to3\n} from '../../services/style_setter/style_setter.js'\nimport {\n  SLOT_INHERITANCE\n} from '../../services/theme_data/pleromafe.js'\nimport {\n  CURRENT_VERSION,\n  OPACITIES,\n  getLayers,\n  getOpacitySlot\n} from '../../services/theme_data/theme_data.service.js'\nimport ColorInput from '../color_input/color_input.vue'\nimport RangeInput from '../range_input/range_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport ShadowControl from '../shadow_control/shadow_control.vue'\nimport FontControl from '../font_control/font_control.vue'\nimport ContrastRatio from '../contrast_ratio/contrast_ratio.vue'\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport Preview from './preview.vue'\nimport ExportImport from '../export_import/export_import.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\n// List of color values used in v1\nconst v1OnlyNames = [\n  'bg',\n  'fg',\n  'text',\n  'link',\n  'cRed',\n  'cGreen',\n  'cBlue',\n  'cOrange'\n].map(_ => _ + 'ColorLocal')\n\nconst colorConvert = (color) => {\n  if (color.startsWith('--') || color === 'transparent') {\n    return color\n  } else {\n    return hex2rgb(color)\n  }\n}\n\nexport default {\n  data () {\n    return {\n      availableStyles: [],\n      selected: this.$store.getters.mergedConfig.theme,\n      themeWarning: undefined,\n      tempImportFile: undefined,\n      engineVersion: 0,\n\n      previewShadows: {},\n      previewColors: {},\n      previewRadii: {},\n      previewFonts: {},\n\n      shadowsInvalid: true,\n      colorsInvalid: true,\n      radiiInvalid: true,\n\n      keepColor: false,\n      keepShadows: false,\n      keepOpacity: false,\n      keepRoundness: false,\n      keepFonts: false,\n\n      ...Object.keys(SLOT_INHERITANCE)\n        .map(key => [key, ''])\n        .reduce((acc, [key, val]) => ({ ...acc, [ key + 'ColorLocal' ]: val }), {}),\n\n      ...Object.keys(OPACITIES)\n        .map(key => [key, ''])\n        .reduce((acc, [key, val]) => ({ ...acc, [ key + 'OpacityLocal' ]: val }), {}),\n\n      shadowSelected: undefined,\n      shadowsLocal: {},\n      fontsLocal: {},\n\n      btnRadiusLocal: '',\n      inputRadiusLocal: '',\n      checkboxRadiusLocal: '',\n      panelRadiusLocal: '',\n      avatarRadiusLocal: '',\n      avatarAltRadiusLocal: '',\n      attachmentRadiusLocal: '',\n      tooltipRadiusLocal: '',\n      chatMessageRadiusLocal: ''\n    }\n  },\n  created () {\n    const self = this\n\n    getThemes()\n      .then((promises) => {\n        return Promise.all(\n          Object.entries(promises)\n            .map(([k, v]) => v.then(res => [k, res]))\n        )\n      })\n      .then(themes => themes.reduce((acc, [k, v]) => {\n        if (v) {\n          return {\n            ...acc,\n            [k]: v\n          }\n        } else {\n          return acc\n        }\n      }, {}))\n      .then((themesComplete) => {\n        self.availableStyles = themesComplete\n      })\n  },\n  mounted () {\n    this.loadThemeFromLocalStorage()\n    if (typeof this.shadowSelected === 'undefined') {\n      this.shadowSelected = this.shadowsAvailable[0]\n    }\n  },\n  computed: {\n    themeWarningHelp () {\n      if (!this.themeWarning) return\n      const t = this.$t\n      const pre = 'settings.style.switcher.help.'\n      const {\n        origin,\n        themeEngineVersion,\n        type,\n        noActionsPossible\n      } = this.themeWarning\n      if (origin === 'file') {\n        // Loaded v2 theme from file\n        if (themeEngineVersion === 2 && type === 'wrong_version') {\n          return t(pre + 'v2_imported')\n        }\n        if (themeEngineVersion > CURRENT_VERSION) {\n          return t(pre + 'future_version_imported') + ' ' +\n            (\n              noActionsPossible\n                ? t(pre + 'snapshot_missing')\n                : t(pre + 'snapshot_present')\n            )\n        }\n        if (themeEngineVersion < CURRENT_VERSION) {\n          return t(pre + 'future_version_imported') + ' ' +\n            (\n              noActionsPossible\n                ? t(pre + 'snapshot_missing')\n                : t(pre + 'snapshot_present')\n            )\n        }\n      } else if (origin === 'localStorage') {\n        if (type === 'snapshot_source_mismatch') {\n          return t(pre + 'snapshot_source_mismatch')\n        }\n        // FE upgraded from v2\n        if (themeEngineVersion === 2) {\n          return t(pre + 'upgraded_from_v2')\n        }\n        // Admin downgraded FE\n        if (themeEngineVersion > CURRENT_VERSION) {\n          return t(pre + 'fe_downgraded') + ' ' +\n            (\n              noActionsPossible\n                ? t(pre + 'migration_snapshot_ok')\n                : t(pre + 'migration_snapshot_gone')\n            )\n        }\n        // Admin upgraded FE\n        if (themeEngineVersion < CURRENT_VERSION) {\n          return t(pre + 'fe_upgraded') + ' ' +\n            (\n              noActionsPossible\n                ? t(pre + 'migration_snapshot_ok')\n                : t(pre + 'migration_snapshot_gone')\n            )\n        }\n      }\n    },\n    selectedVersion () {\n      return Array.isArray(this.selected) ? 1 : 2\n    },\n    currentColors () {\n      return Object.keys(SLOT_INHERITANCE)\n        .map(key => [key, this[key + 'ColorLocal']])\n        .reduce((acc, [key, val]) => ({ ...acc, [ key ]: val }), {})\n    },\n    currentOpacity () {\n      return Object.keys(OPACITIES)\n        .map(key => [key, this[key + 'OpacityLocal']])\n        .reduce((acc, [key, val]) => ({ ...acc, [ key ]: val }), {})\n    },\n    currentRadii () {\n      return {\n        btn: this.btnRadiusLocal,\n        input: this.inputRadiusLocal,\n        checkbox: this.checkboxRadiusLocal,\n        panel: this.panelRadiusLocal,\n        avatar: this.avatarRadiusLocal,\n        avatarAlt: this.avatarAltRadiusLocal,\n        tooltip: this.tooltipRadiusLocal,\n        attachment: this.attachmentRadiusLocal,\n        chatMessage: this.chatMessageRadiusLocal\n      }\n    },\n    preview () {\n      return composePreset(this.previewColors, this.previewRadii, this.previewShadows, this.previewFonts)\n    },\n    previewTheme () {\n      if (!this.preview.theme.colors) return { colors: {}, opacity: {}, radii: {}, shadows: {}, fonts: {} }\n      return this.preview.theme\n    },\n    // This needs optimization maybe\n    previewContrast () {\n      try {\n        if (!this.previewTheme.colors.bg) return {}\n        const colors = this.previewTheme.colors\n        const opacity = this.previewTheme.opacity\n        if (!colors.bg) return {}\n        const hints = (ratio) => ({\n          text: ratio.toPrecision(3) + ':1',\n          // AA level, AAA level\n          aa: ratio >= 4.5,\n          aaa: ratio >= 7,\n          // same but for 18pt+ texts\n          laa: ratio >= 3,\n          laaa: ratio >= 4.5\n        })\n        const colorsConverted = Object.entries(colors).reduce((acc, [key, value]) => ({ ...acc, [key]: colorConvert(value) }), {})\n\n        const ratios = Object.entries(SLOT_INHERITANCE).reduce((acc, [key, value]) => {\n          const slotIsBaseText = key === 'text' || key === 'link'\n          const slotIsText = slotIsBaseText || (\n            typeof value === 'object' && value !== null && value.textColor\n          )\n          if (!slotIsText) return acc\n          const { layer, variant } = slotIsBaseText ? { layer: 'bg' } : value\n          const background = variant || layer\n          const opacitySlot = getOpacitySlot(background)\n          const textColors = [\n            key,\n            ...(background === 'bg' ? ['cRed', 'cGreen', 'cBlue', 'cOrange'] : [])\n          ]\n\n          const layers = getLayers(\n            layer,\n            variant || layer,\n            opacitySlot,\n            colorsConverted,\n            opacity\n          )\n\n          return {\n            ...acc,\n            ...textColors.reduce((acc, textColorKey) => {\n              const newKey = slotIsBaseText\n                ? 'bg' + textColorKey[0].toUpperCase() + textColorKey.slice(1)\n                : textColorKey\n              return {\n                ...acc,\n                [newKey]: getContrastRatioLayers(\n                  colorsConverted[textColorKey],\n                  layers,\n                  colorsConverted[textColorKey]\n                )\n              }\n            }, {})\n          }\n        }, {})\n\n        return Object.entries(ratios).reduce((acc, [k, v]) => { acc[k] = hints(v); return acc }, {})\n      } catch (e) {\n        console.warn('Failure computing contrasts', e)\n      }\n    },\n    previewRules () {\n      if (!this.preview.rules) return ''\n      return [\n        ...Object.values(this.preview.rules),\n        'color: var(--text)',\n        'font-family: var(--interfaceFont, sans-serif)'\n      ].join(';')\n    },\n    shadowsAvailable () {\n      return Object.keys(DEFAULT_SHADOWS).sort()\n    },\n    currentShadowOverriden: {\n      get () {\n        return !!this.currentShadow\n      },\n      set (val) {\n        if (val) {\n          set(this.shadowsLocal, this.shadowSelected, this.currentShadowFallback.map(_ => Object.assign({}, _)))\n        } else {\n          del(this.shadowsLocal, this.shadowSelected)\n        }\n      }\n    },\n    currentShadowFallback () {\n      return (this.previewTheme.shadows || {})[this.shadowSelected]\n    },\n    currentShadow: {\n      get () {\n        return this.shadowsLocal[this.shadowSelected]\n      },\n      set (v) {\n        set(this.shadowsLocal, this.shadowSelected, v)\n      }\n    },\n    themeValid () {\n      return !this.shadowsInvalid && !this.colorsInvalid && !this.radiiInvalid\n    },\n    exportedTheme () {\n      const saveEverything = (\n        !this.keepFonts &&\n        !this.keepShadows &&\n        !this.keepOpacity &&\n        !this.keepRoundness &&\n        !this.keepColor\n      )\n\n      const source = {\n        themeEngineVersion: CURRENT_VERSION\n      }\n\n      if (this.keepFonts || saveEverything) {\n        source.fonts = this.fontsLocal\n      }\n      if (this.keepShadows || saveEverything) {\n        source.shadows = this.shadowsLocal\n      }\n      if (this.keepOpacity || saveEverything) {\n        source.opacity = this.currentOpacity\n      }\n      if (this.keepColor || saveEverything) {\n        source.colors = this.currentColors\n      }\n      if (this.keepRoundness || saveEverything) {\n        source.radii = this.currentRadii\n      }\n\n      const theme = {\n        themeEngineVersion: CURRENT_VERSION,\n        ...this.previewTheme\n      }\n\n      return {\n        // To separate from other random JSON files and possible future source formats\n        _pleroma_theme_version: 2, theme, source\n      }\n    }\n  },\n  components: {\n    ColorInput,\n    OpacityInput,\n    RangeInput,\n    ContrastRatio,\n    ShadowControl,\n    FontControl,\n    TabSwitcher,\n    Preview,\n    ExportImport,\n    Checkbox\n  },\n  methods: {\n    loadTheme (\n      {\n        theme,\n        source,\n        _pleroma_theme_version: fileVersion\n      },\n      origin,\n      forceUseSource = false\n    ) {\n      this.dismissWarning()\n      if (!source && !theme) {\n        throw new Error('Can\\'t load theme: empty')\n      }\n      const version = (origin === 'localStorage' && !theme.colors)\n        ? 'l1'\n        : fileVersion\n      const snapshotEngineVersion = (theme || {}).themeEngineVersion\n      const themeEngineVersion = (source || {}).themeEngineVersion || 2\n      const versionsMatch = themeEngineVersion === CURRENT_VERSION\n      const sourceSnapshotMismatch = (\n        theme !== undefined &&\n          source !== undefined &&\n          themeEngineVersion !== snapshotEngineVersion\n      )\n      // Force loading of source if user requested it or if snapshot\n      // is unavailable\n      const forcedSourceLoad = (source && forceUseSource) || !theme\n      if (!(versionsMatch && !sourceSnapshotMismatch) &&\n          !forcedSourceLoad &&\n          version !== 'l1' &&\n          origin !== 'defaults'\n      ) {\n        if (sourceSnapshotMismatch && origin === 'localStorage') {\n          this.themeWarning = {\n            origin,\n            themeEngineVersion,\n            type: 'snapshot_source_mismatch'\n          }\n        } else if (!theme) {\n          this.themeWarning = {\n            origin,\n            noActionsPossible: true,\n            themeEngineVersion,\n            type: 'no_snapshot_old_version'\n          }\n        } else if (!versionsMatch) {\n          this.themeWarning = {\n            origin,\n            noActionsPossible: !source,\n            themeEngineVersion,\n            type: 'wrong_version'\n          }\n        }\n      }\n      this.normalizeLocalState(theme, version, source, forcedSourceLoad)\n    },\n    forceLoadLocalStorage () {\n      this.loadThemeFromLocalStorage(true)\n    },\n    dismissWarning () {\n      this.themeWarning = undefined\n      this.tempImportFile = undefined\n    },\n    forceLoad () {\n      const { origin } = this.themeWarning\n      switch (origin) {\n        case 'localStorage':\n          this.loadThemeFromLocalStorage(true)\n          break\n        case 'file':\n          this.onImport(this.tempImportFile, true)\n          break\n      }\n      this.dismissWarning()\n    },\n    forceSnapshot () {\n      const { origin } = this.themeWarning\n      switch (origin) {\n        case 'localStorage':\n          this.loadThemeFromLocalStorage(false, true)\n          break\n        case 'file':\n          console.err('Forcing snapshout from file is not supported yet')\n          break\n      }\n      this.dismissWarning()\n    },\n    loadThemeFromLocalStorage (confirmLoadSource = false, forceSnapshot = false) {\n      const {\n        customTheme: theme,\n        customThemeSource: source\n      } = this.$store.getters.mergedConfig\n      if (!theme && !source) {\n        // Anon user or never touched themes\n        this.loadTheme(\n          this.$store.state.instance.themeData,\n          'defaults',\n          confirmLoadSource\n        )\n      } else {\n        this.loadTheme(\n          {\n            theme,\n            source: forceSnapshot ? theme : source\n          },\n          'localStorage',\n          confirmLoadSource\n        )\n      }\n    },\n    setCustomTheme () {\n      this.$store.dispatch('setOption', {\n        name: 'customTheme',\n        value: {\n          themeEngineVersion: CURRENT_VERSION,\n          ...this.previewTheme\n        }\n      })\n      this.$store.dispatch('setOption', {\n        name: 'customThemeSource',\n        value: {\n          themeEngineVersion: CURRENT_VERSION,\n          shadows: this.shadowsLocal,\n          fonts: this.fontsLocal,\n          opacity: this.currentOpacity,\n          colors: this.currentColors,\n          radii: this.currentRadii\n        }\n      })\n    },\n    updatePreviewColorsAndShadows () {\n      this.previewColors = generateColors({\n        opacity: this.currentOpacity,\n        colors: this.currentColors\n      })\n      this.previewShadows = generateShadows(\n        { shadows: this.shadowsLocal, opacity: this.previewTheme.opacity, themeEngineVersion: this.engineVersion },\n        this.previewColors.theme.colors,\n        this.previewColors.mod\n      )\n    },\n    onImport (parsed, forceSource = false) {\n      this.tempImportFile = parsed\n      this.loadTheme(parsed, 'file', forceSource)\n    },\n    importValidator (parsed) {\n      const version = parsed._pleroma_theme_version\n      return version >= 1 || version <= 2\n    },\n    clearAll () {\n      this.loadThemeFromLocalStorage()\n    },\n\n    // Clears all the extra stuff when loading V1 theme\n    clearV1 () {\n      Object.keys(this.$data)\n        .filter(_ => _.endsWith('ColorLocal') || _.endsWith('OpacityLocal'))\n        .filter(_ => !v1OnlyNames.includes(_))\n        .forEach(key => {\n          set(this.$data, key, undefined)\n        })\n    },\n\n    clearRoundness () {\n      Object.keys(this.$data)\n        .filter(_ => _.endsWith('RadiusLocal'))\n        .forEach(key => {\n          set(this.$data, key, undefined)\n        })\n    },\n\n    clearOpacity () {\n      Object.keys(this.$data)\n        .filter(_ => _.endsWith('OpacityLocal'))\n        .forEach(key => {\n          set(this.$data, key, undefined)\n        })\n    },\n\n    clearShadows () {\n      this.shadowsLocal = {}\n    },\n\n    clearFonts () {\n      this.fontsLocal = {}\n    },\n\n    /**\n     * This applies stored theme data onto form. Supports three versions of data:\n     * v3 (version >= 3) - newest version of themes which supports snapshots for better compatiblity\n     * v2 (version = 2) - newer version of themes.\n     * v1 (version = 1) - older version of themes (import from file)\n     * v1l (version = l1) - older version of theme (load from local storage)\n     * v1 and v1l differ because of way themes were stored/exported.\n     * @param {Object} theme - theme data (snapshot)\n     * @param {Number} version - version of data. 0 means try to guess based on data. \"l1\" means v1, locastorage type\n     * @param {Object} source - theme source - this will be used if compatible\n     * @param {Boolean} source - by default source won't be used if version doesn't match since it might render differently\n     *                           this allows importing source anyway\n     */\n    normalizeLocalState (theme, version = 0, source, forceSource = false) {\n      let input\n      if (typeof source !== 'undefined') {\n        if (forceSource || source.themeEngineVersion === CURRENT_VERSION) {\n          input = source\n          version = source.themeEngineVersion\n        } else {\n          input = theme\n        }\n      } else {\n        input = theme\n      }\n\n      const radii = input.radii || input\n      const opacity = input.opacity\n      const shadows = input.shadows || {}\n      const fonts = input.fonts || {}\n      const colors = !input.themeEngineVersion\n        ? colors2to3(input.colors || input)\n        : input.colors || input\n\n      if (version === 0) {\n        if (input.version) version = input.version\n        // Old v1 naming: fg is text, btn is foreground\n        if (typeof colors.text === 'undefined' && typeof colors.fg !== 'undefined') {\n          version = 1\n        }\n        // New v2 naming: text is text, fg is foreground\n        if (typeof colors.text !== 'undefined' && typeof colors.fg !== 'undefined') {\n          version = 2\n        }\n      }\n\n      this.engineVersion = version\n\n      // Stuff that differs between V1 and V2\n      if (version === 1) {\n        this.fgColorLocal = rgb2hex(colors.btn)\n        this.textColorLocal = rgb2hex(colors.fg)\n      }\n\n      if (!this.keepColor) {\n        this.clearV1()\n        const keys = new Set(version !== 1 ? Object.keys(SLOT_INHERITANCE) : [])\n        if (version === 1 || version === 'l1') {\n          keys\n            .add('bg')\n            .add('link')\n            .add('cRed')\n            .add('cBlue')\n            .add('cGreen')\n            .add('cOrange')\n        }\n\n        keys.forEach(key => {\n          const color = colors[key]\n          const hex = rgb2hex(colors[key])\n          this[key + 'ColorLocal'] = hex === '#aN' ? color : hex\n        })\n      }\n\n      if (opacity && !this.keepOpacity) {\n        this.clearOpacity()\n        Object.entries(opacity).forEach(([k, v]) => {\n          if (typeof v === 'undefined' || v === null || Number.isNaN(v)) return\n          this[k + 'OpacityLocal'] = v\n        })\n      }\n\n      if (!this.keepRoundness) {\n        this.clearRoundness()\n        Object.entries(radii).forEach(([k, v]) => {\n          // 'Radius' is kept mostly for v1->v2 localstorage transition\n          const key = k.endsWith('Radius') ? k.split('Radius')[0] : k\n          this[key + 'RadiusLocal'] = v\n        })\n      }\n\n      if (!this.keepShadows) {\n        this.clearShadows()\n        if (version === 2) {\n          this.shadowsLocal = shadows2to3(shadows, this.previewTheme.opacity)\n        } else {\n          this.shadowsLocal = shadows\n        }\n        this.shadowSelected = this.shadowsAvailable[0]\n      }\n\n      if (!this.keepFonts) {\n        this.clearFonts()\n        this.fontsLocal = fonts\n      }\n    }\n  },\n  watch: {\n    currentRadii () {\n      try {\n        this.previewRadii = generateRadii({ radii: this.currentRadii })\n        this.radiiInvalid = false\n      } catch (e) {\n        this.radiiInvalid = true\n        console.warn(e)\n      }\n    },\n    shadowsLocal: {\n      handler () {\n        if (Object.getOwnPropertyNames(this.previewColors).length === 1) return\n        try {\n          this.updatePreviewColorsAndShadows()\n          this.shadowsInvalid = false\n        } catch (e) {\n          this.shadowsInvalid = true\n          console.warn(e)\n        }\n      },\n      deep: true\n    },\n    fontsLocal: {\n      handler () {\n        try {\n          this.previewFonts = generateFonts({ fonts: this.fontsLocal })\n          this.fontsInvalid = false\n        } catch (e) {\n          this.fontsInvalid = true\n          console.warn(e)\n        }\n      },\n      deep: true\n    },\n    currentColors () {\n      try {\n        this.updatePreviewColorsAndShadows()\n        this.colorsInvalid = false\n        this.shadowsInvalid = false\n      } catch (e) {\n        this.colorsInvalid = true\n        this.shadowsInvalid = true\n        console.warn(e)\n      }\n    },\n    currentOpacity () {\n      try {\n        this.updatePreviewColorsAndShadows()\n      } catch (e) {\n        console.warn(e)\n      }\n    },\n    selected () {\n      this.dismissWarning()\n      if (this.selectedVersion === 1) {\n        if (!this.keepRoundness) {\n          this.clearRoundness()\n        }\n\n        if (!this.keepShadows) {\n          this.clearShadows()\n        }\n\n        if (!this.keepOpacity) {\n          this.clearOpacity()\n        }\n\n        if (!this.keepColor) {\n          this.clearV1()\n\n          this.bgColorLocal = this.selected[1]\n          this.fgColorLocal = this.selected[2]\n          this.textColorLocal = this.selected[3]\n          this.linkColorLocal = this.selected[4]\n          this.cRedColorLocal = this.selected[5]\n          this.cGreenColorLocal = this.selected[6]\n          this.cBlueColorLocal = this.selected[7]\n          this.cOrangeColorLocal = this.selected[8]\n        }\n      } else if (this.selectedVersion >= 2) {\n        this.normalizeLocalState(this.selected.theme, 2, this.selected.source)\n      }\n    }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./style_switcher.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./style_switcher.js\"\nimport __vue_script__ from \"!!babel-loader!./style_switcher.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c4edc638\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./style_switcher.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"style-switcher\"},[_c('div',{staticClass:\"presets-container\"},[_c('div',{staticClass:\"save-load\"},[(_vm.themeWarning)?_c('div',{staticClass:\"theme-warning\"},[_c('div',{staticClass:\"alert warning\"},[_vm._v(\"\\n          \"+_vm._s(_vm.themeWarningHelp)+\"\\n        \")]),_vm._v(\" \"),_c('div',{staticClass:\"buttons\"},[(_vm.themeWarning.type === 'snapshot_source_mismatch')?[_c('button',{staticClass:\"btn\",on:{\"click\":_vm.forceLoad}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.switcher.use_source'))+\"\\n            \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.forceSnapshot}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.switcher.use_snapshot'))+\"\\n            \")])]:(_vm.themeWarning.noActionsPossible)?[_c('button',{staticClass:\"btn\",on:{\"click\":_vm.dismissWarning}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('general.dismiss'))+\"\\n            \")])]:[_c('button',{staticClass:\"btn\",on:{\"click\":_vm.forceLoad}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.switcher.load_theme'))+\"\\n            \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.dismissWarning}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.switcher.keep_as_is'))+\"\\n            \")])]],2)]):_vm._e(),_vm._v(\" \"),_c('ExportImport',{attrs:{\"export-object\":_vm.exportedTheme,\"export-label\":_vm.$t(\"settings.export_theme\"),\"import-label\":_vm.$t(\"settings.import_theme\"),\"import-failed-text\":_vm.$t(\"settings.invalid_theme_imported\"),\"on-import\":_vm.onImport,\"validator\":_vm.importValidator}},[_c('template',{slot:\"before\"},[_c('div',{staticClass:\"presets\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.presets'))+\"\\n            \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"preset-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected),expression:\"selected\"}],staticClass:\"preset-switcher\",attrs:{\"id\":\"preset-switcher\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selected=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.availableStyles),function(style){return _c('option',{key:style.name,style:({\n                    backgroundColor: style[1] || (style.theme || style.source).colors.bg,\n                    color: style[3] || (style.theme || style.source).colors.text\n                  }),domProps:{\"value\":style}},[_vm._v(\"\\n                  \"+_vm._s(style[0] || style.name)+\"\\n                \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])])],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"save-load-options\"},[_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepColor),callback:function ($$v) {_vm.keepColor=$$v},expression:\"keepColor\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.style.switcher.keep_color'))+\"\\n        \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepShadows),callback:function ($$v) {_vm.keepShadows=$$v},expression:\"keepShadows\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.style.switcher.keep_shadows'))+\"\\n        \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepOpacity),callback:function ($$v) {_vm.keepOpacity=$$v},expression:\"keepOpacity\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.style.switcher.keep_opacity'))+\"\\n        \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepRoundness),callback:function ($$v) {_vm.keepRoundness=$$v},expression:\"keepRoundness\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.style.switcher.keep_roundness'))+\"\\n        \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepFonts),callback:function ($$v) {_vm.keepFonts=$$v},expression:\"keepFonts\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.style.switcher.keep_fonts'))+\"\\n        \")])],1),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.switcher.save_load_hint')))])])]),_vm._v(\" \"),_c('preview',{style:(_vm.previewRules)}),_vm._v(\" \"),_c('keep-alive',[_c('tab-switcher',{key:\"style-tweak\"},[_c('div',{staticClass:\"color-container\",attrs:{\"label\":_vm.$t('settings.style.common_colors._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearOpacity}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_opacity'))+\"\\n          \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearV1}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n          \")])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help_v2_1')))]),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.common_colors.main')))]),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"bgColor\",\"label\":_vm.$t('settings.background')},model:{value:(_vm.bgColorLocal),callback:function ($$v) {_vm.bgColorLocal=$$v},expression:\"bgColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"bgOpacity\",\"fallback\":_vm.previewTheme.opacity.bg},model:{value:(_vm.bgOpacityLocal),callback:function ($$v) {_vm.bgOpacityLocal=$$v},expression:\"bgOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"textColor\",\"label\":_vm.$t('settings.text')},model:{value:(_vm.textColorLocal),callback:function ($$v) {_vm.textColorLocal=$$v},expression:\"textColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"accentColor\",\"fallback\":_vm.previewTheme.colors.link,\"label\":_vm.$t('settings.accent'),\"show-optional-tickbox\":typeof _vm.linkColorLocal !== 'undefined'},model:{value:(_vm.accentColorLocal),callback:function ($$v) {_vm.accentColorLocal=$$v},expression:\"accentColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"linkColor\",\"fallback\":_vm.previewTheme.colors.accent,\"label\":_vm.$t('settings.links'),\"show-optional-tickbox\":typeof _vm.accentColorLocal !== 'undefined'},model:{value:(_vm.linkColorLocal),callback:function ($$v) {_vm.linkColorLocal=$$v},expression:\"linkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"fgColor\",\"label\":_vm.$t('settings.foreground')},model:{value:(_vm.fgColorLocal),callback:function ($$v) {_vm.fgColorLocal=$$v},expression:\"fgColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"fgTextColor\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.fgText},model:{value:(_vm.fgTextColorLocal),callback:function ($$v) {_vm.fgTextColorLocal=$$v},expression:\"fgTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"fgLinkColor\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.fgLink},model:{value:(_vm.fgLinkColorLocal),callback:function ($$v) {_vm.fgLinkColorLocal=$$v},expression:\"fgLinkColorLocal\"}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.common_colors.foreground_hint')))])],1),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.common_colors.rgbo')))]),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"cRedColor\",\"label\":_vm.$t('settings.cRed')},model:{value:(_vm.cRedColorLocal),callback:function ($$v) {_vm.cRedColorLocal=$$v},expression:\"cRedColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCRed}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"cBlueColor\",\"label\":_vm.$t('settings.cBlue')},model:{value:(_vm.cBlueColorLocal),callback:function ($$v) {_vm.cBlueColorLocal=$$v},expression:\"cBlueColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCBlue}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"cGreenColor\",\"label\":_vm.$t('settings.cGreen')},model:{value:(_vm.cGreenColorLocal),callback:function ($$v) {_vm.cGreenColorLocal=$$v},expression:\"cGreenColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCGreen}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"cOrangeColor\",\"label\":_vm.$t('settings.cOrange')},model:{value:(_vm.cOrangeColorLocal),callback:function ($$v) {_vm.cOrangeColorLocal=$$v},expression:\"cOrangeColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCOrange}})],1),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help_v2_2')))])]),_vm._v(\" \"),_c('div',{staticClass:\"color-container\",attrs:{\"label\":_vm.$t('settings.style.advanced_colors._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearOpacity}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_opacity'))+\"\\n          \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearV1}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n          \")])]),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.post')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"postLinkColor\",\"fallback\":_vm.previewTheme.colors.accent,\"label\":_vm.$t('settings.links')},model:{value:(_vm.postLinkColorLocal),callback:function ($$v) {_vm.postLinkColorLocal=$$v},expression:\"postLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.postLink}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.alert')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertError\",\"label\":_vm.$t('settings.style.advanced_colors.alert_error'),\"fallback\":_vm.previewTheme.colors.alertError},model:{value:(_vm.alertErrorColorLocal),callback:function ($$v) {_vm.alertErrorColorLocal=$$v},expression:\"alertErrorColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertErrorText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.alertErrorText},model:{value:(_vm.alertErrorTextColorLocal),callback:function ($$v) {_vm.alertErrorTextColorLocal=$$v},expression:\"alertErrorTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertErrorText,\"large\":\"true\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertWarning\",\"label\":_vm.$t('settings.style.advanced_colors.alert_warning'),\"fallback\":_vm.previewTheme.colors.alertWarning},model:{value:(_vm.alertWarningColorLocal),callback:function ($$v) {_vm.alertWarningColorLocal=$$v},expression:\"alertWarningColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertWarningText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.alertWarningText},model:{value:(_vm.alertWarningTextColorLocal),callback:function ($$v) {_vm.alertWarningTextColorLocal=$$v},expression:\"alertWarningTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertWarningText,\"large\":\"true\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertNeutral\",\"label\":_vm.$t('settings.style.advanced_colors.alert_neutral'),\"fallback\":_vm.previewTheme.colors.alertNeutral},model:{value:(_vm.alertNeutralColorLocal),callback:function ($$v) {_vm.alertNeutralColorLocal=$$v},expression:\"alertNeutralColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertNeutralText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.alertNeutralText},model:{value:(_vm.alertNeutralTextColorLocal),callback:function ($$v) {_vm.alertNeutralTextColorLocal=$$v},expression:\"alertNeutralTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertNeutralText,\"large\":\"true\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"alertOpacity\",\"fallback\":_vm.previewTheme.opacity.alert},model:{value:(_vm.alertOpacityLocal),callback:function ($$v) {_vm.alertOpacityLocal=$$v},expression:\"alertOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.badge')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"badgeNotification\",\"label\":_vm.$t('settings.style.advanced_colors.badge_notification'),\"fallback\":_vm.previewTheme.colors.badgeNotification},model:{value:(_vm.badgeNotificationColorLocal),callback:function ($$v) {_vm.badgeNotificationColorLocal=$$v},expression:\"badgeNotificationColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"badgeNotificationText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.badgeNotificationText},model:{value:(_vm.badgeNotificationTextColorLocal),callback:function ($$v) {_vm.badgeNotificationTextColorLocal=$$v},expression:\"badgeNotificationTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.badgeNotificationText,\"large\":\"true\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.panel_header')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelColor\",\"fallback\":_vm.previewTheme.colors.panel,\"label\":_vm.$t('settings.background')},model:{value:(_vm.panelColorLocal),callback:function ($$v) {_vm.panelColorLocal=$$v},expression:\"panelColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"panelOpacity\",\"fallback\":_vm.previewTheme.opacity.panel,\"disabled\":_vm.panelColorLocal === 'transparent'},model:{value:(_vm.panelOpacityLocal),callback:function ($$v) {_vm.panelOpacityLocal=$$v},expression:\"panelOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelTextColor\",\"fallback\":_vm.previewTheme.colors.panelText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.panelTextColorLocal),callback:function ($$v) {_vm.panelTextColorLocal=$$v},expression:\"panelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.panelText,\"large\":\"true\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelLinkColor\",\"fallback\":_vm.previewTheme.colors.panelLink,\"label\":_vm.$t('settings.links')},model:{value:(_vm.panelLinkColorLocal),callback:function ($$v) {_vm.panelLinkColorLocal=$$v},expression:\"panelLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.panelLink,\"large\":\"true\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.top_bar')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"topBarColor\",\"fallback\":_vm.previewTheme.colors.topBar,\"label\":_vm.$t('settings.background')},model:{value:(_vm.topBarColorLocal),callback:function ($$v) {_vm.topBarColorLocal=$$v},expression:\"topBarColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"topBarTextColor\",\"fallback\":_vm.previewTheme.colors.topBarText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.topBarTextColorLocal),callback:function ($$v) {_vm.topBarTextColorLocal=$$v},expression:\"topBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.topBarText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"topBarLinkColor\",\"fallback\":_vm.previewTheme.colors.topBarLink,\"label\":_vm.$t('settings.links')},model:{value:(_vm.topBarLinkColorLocal),callback:function ($$v) {_vm.topBarLinkColorLocal=$$v},expression:\"topBarLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.topBarLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.inputs')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"inputColor\",\"fallback\":_vm.previewTheme.colors.input,\"label\":_vm.$t('settings.background')},model:{value:(_vm.inputColorLocal),callback:function ($$v) {_vm.inputColorLocal=$$v},expression:\"inputColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"inputOpacity\",\"fallback\":_vm.previewTheme.opacity.input,\"disabled\":_vm.inputColorLocal === 'transparent'},model:{value:(_vm.inputOpacityLocal),callback:function ($$v) {_vm.inputOpacityLocal=$$v},expression:\"inputOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"inputTextColor\",\"fallback\":_vm.previewTheme.colors.inputText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.inputTextColorLocal),callback:function ($$v) {_vm.inputTextColorLocal=$$v},expression:\"inputTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.inputText}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.buttons')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnColor\",\"fallback\":_vm.previewTheme.colors.btn,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnColorLocal),callback:function ($$v) {_vm.btnColorLocal=$$v},expression:\"btnColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"btnOpacity\",\"fallback\":_vm.previewTheme.opacity.btn,\"disabled\":_vm.btnColorLocal === 'transparent'},model:{value:(_vm.btnOpacityLocal),callback:function ($$v) {_vm.btnOpacityLocal=$$v},expression:\"btnOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnTextColor\",\"fallback\":_vm.previewTheme.colors.btnText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnTextColorLocal),callback:function ($$v) {_vm.btnTextColorLocal=$$v},expression:\"btnTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnPanelTextColorLocal),callback:function ($$v) {_vm.btnPanelTextColorLocal=$$v},expression:\"btnPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPanelText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnTopBarTextColorLocal),callback:function ($$v) {_vm.btnTopBarTextColorLocal=$$v},expression:\"btnTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnTopBarText}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.pressed')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedColor\",\"fallback\":_vm.previewTheme.colors.btnPressed,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnPressedColorLocal),callback:function ($$v) {_vm.btnPressedColorLocal=$$v},expression:\"btnPressedColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedTextColor\",\"fallback\":_vm.previewTheme.colors.btnPressedText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnPressedTextColorLocal),callback:function ($$v) {_vm.btnPressedTextColorLocal=$$v},expression:\"btnPressedTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPressedText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnPressedPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnPressedPanelTextColorLocal),callback:function ($$v) {_vm.btnPressedPanelTextColorLocal=$$v},expression:\"btnPressedPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPressedPanelText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnPressedTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnPressedTopBarTextColorLocal),callback:function ($$v) {_vm.btnPressedTopBarTextColorLocal=$$v},expression:\"btnPressedTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPressedTopBarText}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.disabled')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledColor\",\"fallback\":_vm.previewTheme.colors.btnDisabled,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnDisabledColorLocal),callback:function ($$v) {_vm.btnDisabledColorLocal=$$v},expression:\"btnDisabledColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledTextColor\",\"fallback\":_vm.previewTheme.colors.btnDisabledText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnDisabledTextColorLocal),callback:function ($$v) {_vm.btnDisabledTextColorLocal=$$v},expression:\"btnDisabledTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnDisabledPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnDisabledPanelTextColorLocal),callback:function ($$v) {_vm.btnDisabledPanelTextColorLocal=$$v},expression:\"btnDisabledPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnDisabledTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnDisabledTopBarTextColorLocal),callback:function ($$v) {_vm.btnDisabledTopBarTextColorLocal=$$v},expression:\"btnDisabledTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.toggled')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledColor\",\"fallback\":_vm.previewTheme.colors.btnToggled,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnToggledColorLocal),callback:function ($$v) {_vm.btnToggledColorLocal=$$v},expression:\"btnToggledColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledTextColor\",\"fallback\":_vm.previewTheme.colors.btnToggledText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnToggledTextColorLocal),callback:function ($$v) {_vm.btnToggledTextColorLocal=$$v},expression:\"btnToggledTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnToggledText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnToggledPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnToggledPanelTextColorLocal),callback:function ($$v) {_vm.btnToggledPanelTextColorLocal=$$v},expression:\"btnToggledPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnToggledPanelText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnToggledTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnToggledTopBarTextColorLocal),callback:function ($$v) {_vm.btnToggledTopBarTextColorLocal=$$v},expression:\"btnToggledTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnToggledTopBarText}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.tabs')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"tabColor\",\"fallback\":_vm.previewTheme.colors.tab,\"label\":_vm.$t('settings.background')},model:{value:(_vm.tabColorLocal),callback:function ($$v) {_vm.tabColorLocal=$$v},expression:\"tabColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"tabTextColor\",\"fallback\":_vm.previewTheme.colors.tabText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.tabTextColorLocal),callback:function ($$v) {_vm.tabTextColorLocal=$$v},expression:\"tabTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.tabText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"tabActiveTextColor\",\"fallback\":_vm.previewTheme.colors.tabActiveText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.tabActiveTextColorLocal),callback:function ($$v) {_vm.tabActiveTextColorLocal=$$v},expression:\"tabActiveTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.tabActiveText}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.borders')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"borderColor\",\"fallback\":_vm.previewTheme.colors.border,\"label\":_vm.$t('settings.style.common.color')},model:{value:(_vm.borderColorLocal),callback:function ($$v) {_vm.borderColorLocal=$$v},expression:\"borderColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"borderOpacity\",\"fallback\":_vm.previewTheme.opacity.border,\"disabled\":_vm.borderColorLocal === 'transparent'},model:{value:(_vm.borderOpacityLocal),callback:function ($$v) {_vm.borderOpacityLocal=$$v},expression:\"borderOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.faint_text')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"faintColor\",\"fallback\":_vm.previewTheme.colors.faint,\"label\":_vm.$t('settings.text')},model:{value:(_vm.faintColorLocal),callback:function ($$v) {_vm.faintColorLocal=$$v},expression:\"faintColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"faintLinkColor\",\"fallback\":_vm.previewTheme.colors.faintLink,\"label\":_vm.$t('settings.links')},model:{value:(_vm.faintLinkColorLocal),callback:function ($$v) {_vm.faintLinkColorLocal=$$v},expression:\"faintLinkColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelFaintColor\",\"fallback\":_vm.previewTheme.colors.panelFaint,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.panelFaintColorLocal),callback:function ($$v) {_vm.panelFaintColorLocal=$$v},expression:\"panelFaintColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"faintOpacity\",\"fallback\":_vm.previewTheme.opacity.faint},model:{value:(_vm.faintOpacityLocal),callback:function ($$v) {_vm.faintOpacityLocal=$$v},expression:\"faintOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.underlay')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"underlay\",\"label\":_vm.$t('settings.style.advanced_colors.underlay'),\"fallback\":_vm.previewTheme.colors.underlay},model:{value:(_vm.underlayColorLocal),callback:function ($$v) {_vm.underlayColorLocal=$$v},expression:\"underlayColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"underlayOpacity\",\"fallback\":_vm.previewTheme.opacity.underlay,\"disabled\":_vm.underlayOpacityLocal === 'transparent'},model:{value:(_vm.underlayOpacityLocal),callback:function ($$v) {_vm.underlayOpacityLocal=$$v},expression:\"underlayOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.poll')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"poll\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.poll},model:{value:(_vm.pollColorLocal),callback:function ($$v) {_vm.pollColorLocal=$$v},expression:\"pollColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"pollText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.pollText},model:{value:(_vm.pollTextColorLocal),callback:function ($$v) {_vm.pollTextColorLocal=$$v},expression:\"pollTextColorLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.icons')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"icon\",\"label\":_vm.$t('settings.style.advanced_colors.icons'),\"fallback\":_vm.previewTheme.colors.icon},model:{value:(_vm.iconColorLocal),callback:function ($$v) {_vm.iconColorLocal=$$v},expression:\"iconColorLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.highlight')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"highlight\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.highlight},model:{value:(_vm.highlightColorLocal),callback:function ($$v) {_vm.highlightColorLocal=$$v},expression:\"highlightColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"highlightText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.highlightText},model:{value:(_vm.highlightTextColorLocal),callback:function ($$v) {_vm.highlightTextColorLocal=$$v},expression:\"highlightTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.highlightText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"highlightLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.highlightLink},model:{value:(_vm.highlightLinkColorLocal),callback:function ($$v) {_vm.highlightLinkColorLocal=$$v},expression:\"highlightLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.highlightLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.popover')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"popover\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.popover},model:{value:(_vm.popoverColorLocal),callback:function ($$v) {_vm.popoverColorLocal=$$v},expression:\"popoverColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"popoverOpacity\",\"fallback\":_vm.previewTheme.opacity.popover,\"disabled\":_vm.popoverOpacityLocal === 'transparent'},model:{value:(_vm.popoverOpacityLocal),callback:function ($$v) {_vm.popoverOpacityLocal=$$v},expression:\"popoverOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"popoverText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.popoverText},model:{value:(_vm.popoverTextColorLocal),callback:function ($$v) {_vm.popoverTextColorLocal=$$v},expression:\"popoverTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.popoverText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"popoverLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.popoverLink},model:{value:(_vm.popoverLinkColorLocal),callback:function ($$v) {_vm.popoverLinkColorLocal=$$v},expression:\"popoverLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.popoverLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.selectedPost')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedPost\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.selectedPost},model:{value:(_vm.selectedPostColorLocal),callback:function ($$v) {_vm.selectedPostColorLocal=$$v},expression:\"selectedPostColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedPostText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.selectedPostText},model:{value:(_vm.selectedPostTextColorLocal),callback:function ($$v) {_vm.selectedPostTextColorLocal=$$v},expression:\"selectedPostTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedPostText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedPostLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.selectedPostLink},model:{value:(_vm.selectedPostLinkColorLocal),callback:function ($$v) {_vm.selectedPostLinkColorLocal=$$v},expression:\"selectedPostLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedPostLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.selectedMenu')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedMenu\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.selectedMenu},model:{value:(_vm.selectedMenuColorLocal),callback:function ($$v) {_vm.selectedMenuColorLocal=$$v},expression:\"selectedMenuColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedMenuText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.selectedMenuText},model:{value:(_vm.selectedMenuTextColorLocal),callback:function ($$v) {_vm.selectedMenuTextColorLocal=$$v},expression:\"selectedMenuTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedMenuText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedMenuLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.selectedMenuLink},model:{value:(_vm.selectedMenuLinkColorLocal),callback:function ($$v) {_vm.selectedMenuLinkColorLocal=$$v},expression:\"selectedMenuLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedMenuLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('chats.chats')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatBgColor\",\"fallback\":_vm.previewTheme.colors.bg || 1,\"label\":_vm.$t('settings.background')},model:{value:(_vm.chatBgColorLocal),callback:function ($$v) {_vm.chatBgColorLocal=$$v},expression:\"chatBgColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageIncomingBgColor\",\"fallback\":_vm.previewTheme.colors.bg || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.incoming_background')},model:{value:(_vm.chatMessageIncomingBgColorLocal),callback:function ($$v) {_vm.chatMessageIncomingBgColorLocal=$$v},expression:\"chatMessageIncomingBgColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageIncomingTextColor\",\"fallback\":_vm.previewTheme.colors.text || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.incoming_text')},model:{value:(_vm.chatMessageIncomingTextColorLocal),callback:function ($$v) {_vm.chatMessageIncomingTextColorLocal=$$v},expression:\"chatMessageIncomingTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageIncomingLinkColor\",\"fallback\":_vm.previewTheme.colors.link || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.incoming_link')},model:{value:(_vm.chatMessageIncomingLinkColorLocal),callback:function ($$v) {_vm.chatMessageIncomingLinkColorLocal=$$v},expression:\"chatMessageIncomingLinkColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageIncomingBorderLinkColor\",\"fallback\":_vm.previewTheme.colors.fg || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.incoming_border')},model:{value:(_vm.chatMessageIncomingBorderColorLocal),callback:function ($$v) {_vm.chatMessageIncomingBorderColorLocal=$$v},expression:\"chatMessageIncomingBorderColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageOutgoingBgColor\",\"fallback\":_vm.previewTheme.colors.bg || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.outgoing_background')},model:{value:(_vm.chatMessageOutgoingBgColorLocal),callback:function ($$v) {_vm.chatMessageOutgoingBgColorLocal=$$v},expression:\"chatMessageOutgoingBgColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageOutgoingTextColor\",\"fallback\":_vm.previewTheme.colors.text || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.outgoing_text')},model:{value:(_vm.chatMessageOutgoingTextColorLocal),callback:function ($$v) {_vm.chatMessageOutgoingTextColorLocal=$$v},expression:\"chatMessageOutgoingTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageOutgoingLinkColor\",\"fallback\":_vm.previewTheme.colors.link || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.outgoing_link')},model:{value:(_vm.chatMessageOutgoingLinkColorLocal),callback:function ($$v) {_vm.chatMessageOutgoingLinkColorLocal=$$v},expression:\"chatMessageOutgoingLinkColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"chatMessageOutgoingBorderLinkColor\",\"fallback\":_vm.previewTheme.colors.bg || 1,\"label\":_vm.$t('settings.style.advanced_colors.chat.outgoing_border')},model:{value:(_vm.chatMessageOutgoingBorderColorLocal),callback:function ($$v) {_vm.chatMessageOutgoingBorderColorLocal=$$v},expression:\"chatMessageOutgoingBorderColorLocal\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"radius-container\",attrs:{\"label\":_vm.$t('settings.style.radii._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.radii_help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearRoundness}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n          \")])]),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"btnRadius\",\"label\":_vm.$t('settings.btnRadius'),\"fallback\":_vm.previewTheme.radii.btn,\"max\":\"16\",\"hard-min\":\"0\"},model:{value:(_vm.btnRadiusLocal),callback:function ($$v) {_vm.btnRadiusLocal=$$v},expression:\"btnRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"inputRadius\",\"label\":_vm.$t('settings.inputRadius'),\"fallback\":_vm.previewTheme.radii.input,\"max\":\"9\",\"hard-min\":\"0\"},model:{value:(_vm.inputRadiusLocal),callback:function ($$v) {_vm.inputRadiusLocal=$$v},expression:\"inputRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"checkboxRadius\",\"label\":_vm.$t('settings.checkboxRadius'),\"fallback\":_vm.previewTheme.radii.checkbox,\"max\":\"16\",\"hard-min\":\"0\"},model:{value:(_vm.checkboxRadiusLocal),callback:function ($$v) {_vm.checkboxRadiusLocal=$$v},expression:\"checkboxRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"panelRadius\",\"label\":_vm.$t('settings.panelRadius'),\"fallback\":_vm.previewTheme.radii.panel,\"max\":\"50\",\"hard-min\":\"0\"},model:{value:(_vm.panelRadiusLocal),callback:function ($$v) {_vm.panelRadiusLocal=$$v},expression:\"panelRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"avatarRadius\",\"label\":_vm.$t('settings.avatarRadius'),\"fallback\":_vm.previewTheme.radii.avatar,\"max\":\"28\",\"hard-min\":\"0\"},model:{value:(_vm.avatarRadiusLocal),callback:function ($$v) {_vm.avatarRadiusLocal=$$v},expression:\"avatarRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"avatarAltRadius\",\"label\":_vm.$t('settings.avatarAltRadius'),\"fallback\":_vm.previewTheme.radii.avatarAlt,\"max\":\"28\",\"hard-min\":\"0\"},model:{value:(_vm.avatarAltRadiusLocal),callback:function ($$v) {_vm.avatarAltRadiusLocal=$$v},expression:\"avatarAltRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"attachmentRadius\",\"label\":_vm.$t('settings.attachmentRadius'),\"fallback\":_vm.previewTheme.radii.attachment,\"max\":\"50\",\"hard-min\":\"0\"},model:{value:(_vm.attachmentRadiusLocal),callback:function ($$v) {_vm.attachmentRadiusLocal=$$v},expression:\"attachmentRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"tooltipRadius\",\"label\":_vm.$t('settings.tooltipRadius'),\"fallback\":_vm.previewTheme.radii.tooltip,\"max\":\"50\",\"hard-min\":\"0\"},model:{value:(_vm.tooltipRadiusLocal),callback:function ($$v) {_vm.tooltipRadiusLocal=$$v},expression:\"tooltipRadiusLocal\"}}),_vm._v(\" \"),_c('RangeInput',{attrs:{\"name\":\"chatMessageRadius\",\"label\":_vm.$t('settings.chatMessageRadius'),\"fallback\":_vm.previewTheme.radii.chatMessage || 2,\"max\":\"50\",\"hard-min\":\"0\"},model:{value:(_vm.chatMessageRadiusLocal),callback:function ($$v) {_vm.chatMessageRadiusLocal=$$v},expression:\"chatMessageRadiusLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"shadow-container\",attrs:{\"label\":_vm.$t('settings.style.shadows._tab_label')}},[_c('div',{staticClass:\"tab-header shadow-selector\"},[_c('div',{staticClass:\"select-container\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.shadows.component'))+\"\\n            \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"shadow-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.shadowSelected),expression:\"shadowSelected\"}],staticClass:\"shadow-switcher\",attrs:{\"id\":\"shadow-switcher\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.shadowSelected=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.shadowsAvailable),function(shadow){return _c('option',{key:shadow,domProps:{\"value\":shadow}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.style.shadows.components.' + shadow))+\"\\n                \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]),_vm._v(\" \"),_c('div',{staticClass:\"override\"},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"override\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.style.shadows.override'))+\"\\n            \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentShadowOverriden),expression:\"currentShadowOverriden\"}],staticClass:\"input-override\",attrs:{\"id\":\"override\",\"name\":\"override\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.currentShadowOverriden)?_vm._i(_vm.currentShadowOverriden,null)>-1:(_vm.currentShadowOverriden)},on:{\"change\":function($event){var $$a=_vm.currentShadowOverriden,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.currentShadowOverriden=$$a.concat([$$v]))}else{$$i>-1&&(_vm.currentShadowOverriden=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.currentShadowOverriden=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"checkbox-label\",attrs:{\"for\":\"override\"}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearShadows}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n          \")])]),_vm._v(\" \"),_c('ShadowControl',{attrs:{\"ready\":!!_vm.currentShadowFallback,\"fallback\":_vm.currentShadowFallback},model:{value:(_vm.currentShadow),callback:function ($$v) {_vm.currentShadow=$$v},expression:\"currentShadow\"}}),_vm._v(\" \"),(_vm.shadowSelected === 'avatar' || _vm.shadowSelected === 'avatarStatus')?_c('div',[_c('i18n',{attrs:{\"path\":\"settings.style.shadows.filter_hint.always_drop_shadow\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"filter: drop-shadow()\")])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.shadows.filter_hint.avatar_inset')))]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.shadows.filter_hint.drop_shadow_syntax\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"drop-shadow\")]),_vm._v(\" \"),_c('code',[_vm._v(\"spread-radius\")]),_vm._v(\" \"),_c('code',[_vm._v(\"inset\")])]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.shadows.filter_hint.inset_classic\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"box-shadow\")])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.shadows.filter_hint.spread_zero')))])],1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"fonts-container\",attrs:{\"label\":_vm.$t('settings.style.fonts._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.fonts.help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearFonts}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n          \")])]),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"ui\",\"label\":_vm.$t('settings.style.fonts.components.interface'),\"fallback\":_vm.previewTheme.fonts.interface,\"no-inherit\":\"1\"},model:{value:(_vm.fontsLocal.interface),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"interface\", $$v)},expression:\"fontsLocal.interface\"}}),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"input\",\"label\":_vm.$t('settings.style.fonts.components.input'),\"fallback\":_vm.previewTheme.fonts.input},model:{value:(_vm.fontsLocal.input),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"input\", $$v)},expression:\"fontsLocal.input\"}}),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"post\",\"label\":_vm.$t('settings.style.fonts.components.post'),\"fallback\":_vm.previewTheme.fonts.post},model:{value:(_vm.fontsLocal.post),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"post\", $$v)},expression:\"fontsLocal.post\"}}),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"postCode\",\"label\":_vm.$t('settings.style.fonts.components.postCode'),\"fallback\":_vm.previewTheme.fonts.postCode},model:{value:(_vm.fontsLocal.postCode),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"postCode\", $$v)},expression:\"fontsLocal.postCode\"}})],1)])],1),_vm._v(\" \"),_c('div',{staticClass:\"apply-container\"},[_c('button',{staticClass:\"btn submit\",attrs:{\"disabled\":!_vm.themeValid},on:{\"click\":_vm.setCustomTheme}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('general.apply'))+\"\\n    \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearAll}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('settings.style.switcher.reset'))+\"\\n    \")])])],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <div>\n    <label for=\"interface-language-switcher\">\n      {{ $t('settings.interfaceLanguage') }}\n    </label>\n    <label\n      for=\"interface-language-switcher\"\n      class=\"select\"\n    >\n      <select\n        id=\"interface-language-switcher\"\n        v-model=\"language\"\n      >\n        <option\n          v-for=\"(langCode, i) in languageCodes\"\n          :key=\"langCode\"\n          :value=\"langCode\"\n        >\n          {{ languageNames[i] }}\n        </option>\n      </select>\n      <i class=\"icon-down-open\" />\n    </label>\n  </div>\n</template>\n\n<script>\nimport languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nexport default {\n  computed: {\n    languageCodes () {\n      return Object.keys(languagesObject)\n    },\n\n    languageNames () {\n      return _.map(this.languageCodes, this.getLanguageName)\n    },\n\n    language: {\n      get: function () { return this.$store.getters.mergedConfig.interfaceLanguage },\n      set: function (val) {\n        this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n        this.$i18n.locale = val\n      }\n    }\n  },\n\n  methods: {\n    getLanguageName (code) {\n      const specialLanguageNames = {\n        'ja': 'Japanese (日本語)',\n        'ja_easy': 'Japanese (やさしいにほんご)',\n        'zh': 'Chinese (简体中文)'\n      }\n      return specialLanguageNames[code] || ISO6391.getName(code)\n    }\n  }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./interface_language_switcher.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./interface_language_switcher.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-25d06bfd\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./interface_language_switcher.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{attrs:{\"for\":\"interface-language-switcher\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('settings.interfaceLanguage'))+\"\\n  \")]),_vm._v(\" \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"interface-language-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.language),expression:\"language\"}],attrs:{\"id\":\"interface-language-switcher\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.language=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.languageCodes),function(langCode,i){return _c('option',{key:langCode,domProps:{\"value\":langCode}},[_vm._v(\"\\n        \"+_vm._s(_vm.languageNames[i])+\"\\n      \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","/* eslint-env browser */\nimport { filter, trim } from 'lodash'\n\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport StyleSwitcher from '../style_switcher/style_switcher.vue'\nimport InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'\nimport { extractCommit } from '../../services/version/version.service'\nimport { instanceDefaultProperties, defaultState as configDefaultState } from '../../modules/config.js'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'\nconst pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'\n\nconst multiChoiceProperties = [\n  'postContentType',\n  'subjectLineBehavior'\n]\n\nconst settings = {\n  data () {\n    const instance = this.$store.state.instance\n\n    return {\n      loopSilentAvailable:\n        // Firefox\n        Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||\n        // Chrome-likes\n        Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'webkitAudioDecodedByteCount') ||\n        // Future spec, still not supported in Nightly 63 as of 08/2018\n        Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks'),\n\n      backendVersion: instance.backendVersion,\n      frontendVersion: instance.frontendVersion\n    }\n  },\n  components: {\n    TabSwitcher,\n    StyleSwitcher,\n    InterfaceLanguageSwitcher,\n    Checkbox\n  },\n  computed: {\n    user () {\n      return this.$store.state.users.currentUser\n    },\n    currentSaveStateNotice () {\n      return this.$store.state.interface.settings.currentSaveStateNotice\n    },\n    postFormats () {\n      return this.$store.state.instance.postFormats || []\n    },\n    instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel },\n    frontendVersionLink () {\n      return pleromaFeCommitUrl + this.frontendVersion\n    },\n    backendVersionLink () {\n      return pleromaBeCommitUrl + extractCommit(this.backendVersion)\n    },\n    // Getting localized values for instance-default properties\n    ...instanceDefaultProperties\n      .filter(key => multiChoiceProperties.includes(key))\n      .map(key => [\n        key + 'DefaultValue',\n        function () {\n          return this.$store.getters.instanceDefaultConfig[key]\n        }\n      ])\n      .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n    ...instanceDefaultProperties\n      .filter(key => !multiChoiceProperties.includes(key))\n      .map(key => [\n        key + 'LocalizedValue',\n        function () {\n          return this.$t('settings.values.' + this.$store.getters.instanceDefaultConfig[key])\n        }\n      ])\n      .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n    // Generating computed values for vuex properties\n    ...Object.keys(configDefaultState)\n      .map(key => [key, {\n        get () { return this.$store.getters.mergedConfig[key] },\n        set (value) {\n          this.$store.dispatch('setOption', { name: key, value })\n        }\n      }])\n      .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n    // Special cases (need to transform values or perform actions first)\n    muteWordsString: {\n      get () { return this.$store.getters.mergedConfig.muteWords.join('\\n') },\n      set (value) {\n        this.$store.dispatch('setOption', {\n          name: 'muteWords',\n          value: filter(value.split('\\n'), (word) => trim(word).length > 0)\n        })\n      }\n    },\n    useStreamingApi: {\n      get () { return this.$store.getters.mergedConfig.useStreamingApi },\n      set (value) {\n        const promise = value\n          ? this.$store.dispatch('enableMastoSockets')\n          : this.$store.dispatch('disableMastoSockets')\n\n        promise.then(() => {\n          this.$store.dispatch('setOption', { name: 'useStreamingApi', value })\n        }).catch((e) => {\n          console.error('Failed starting MastoAPI Streaming socket', e)\n          this.$store.dispatch('disableMastoSockets')\n          this.$store.dispatch('setOption', { name: 'useStreamingApi', value: false })\n        })\n      }\n    }\n  },\n  // Updating nested properties\n  watch: {\n    notificationVisibility: {\n      handler (value) {\n        this.$store.dispatch('setOption', {\n          name: 'notificationVisibility',\n          value: this.$store.getters.mergedConfig.notificationVisibility\n        })\n      },\n      deep: true\n    }\n  }\n}\n\nexport default settings\n","\nexport const extractCommit = versionString => {\n  const regex = /-g(\\w+)/i\n  const matches = versionString.match(regex)\n  return matches ? matches[1] : ''\n}\n","/* script */\nexport * from \"!!babel-loader!./settings.js\"\nimport __vue_script__ from \"!!babel-loader!./settings.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8726eb48\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./settings.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('settings.settings'))+\"\\n    \")]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.currentSaveStateNotice)?[(_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.saving_err'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(!_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert transparent\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.saving_ok'))+\"\\n        \")]):_vm._e()]:_vm._e()],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('keep-alive',[_c('tab-switcher',[_c('div',{attrs:{\"label\":_vm.$t('settings.general')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.interface')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('interface-language-switcher')],1),_vm._v(\" \"),(_vm.instanceSpecificPanelPresent)?_c('li',[_c('Checkbox',{model:{value:(_vm.hideISP),callback:function ($$v) {_vm.hideISP=$$v},expression:\"hideISP\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.hide_isp'))+\"\\n                \")])],1):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('nav.timeline')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.hideMutedPosts),callback:function ($$v) {_vm.hideMutedPosts=$$v},expression:\"hideMutedPosts\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.hide_muted_posts'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideMutedPostsLocalizedValue }))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.collapseMessageWithSubject),callback:function ($$v) {_vm.collapseMessageWithSubject=$$v},expression:\"collapseMessageWithSubject\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.collapse_subject'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.collapseMessageWithSubjectLocalizedValue }))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.streaming),callback:function ($$v) {_vm.streaming=$$v},expression:\"streaming\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.streaming'))+\"\\n                \")]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\",class:[{disabled: !_vm.streaming}]},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.streaming},model:{value:(_vm.pauseOnUnfocused),callback:function ($$v) {_vm.pauseOnUnfocused=$$v},expression:\"pauseOnUnfocused\"}},[_vm._v(\"\\n                      \"+_vm._s(_vm.$t('settings.pause_on_unfocused'))+\"\\n                    \")])],1)])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.useStreamingApi),callback:function ($$v) {_vm.useStreamingApi=$$v},expression:\"useStreamingApi\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.useStreamingApi'))+\"\\n                  \"),_c('br'),_vm._v(\" \"),_c('small',[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.useStreamingApiWarning'))+\"\\n                  \")])])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.autoLoad),callback:function ($$v) {_vm.autoLoad=$$v},expression:\"autoLoad\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.autoload'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hoverPreview),callback:function ($$v) {_vm.hoverPreview=$$v},expression:\"hoverPreview\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.reply_link_preview'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.emojiReactionsOnTimeline),callback:function ($$v) {_vm.emojiReactionsOnTimeline=$$v},expression:\"emojiReactionsOnTimeline\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.emoji_reactions_on_timeline'))+\"\\n                \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.composing')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.scopeCopy),callback:function ($$v) {_vm.scopeCopy=$$v},expression:\"scopeCopy\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.scope_copy'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.scopeCopyLocalizedValue }))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.alwaysShowSubjectInput),callback:function ($$v) {_vm.alwaysShowSubjectInput=$$v},expression:\"alwaysShowSubjectInput\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.subject_input_always_show'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.alwaysShowSubjectInputLocalizedValue }))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('div',[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.subject_line_behavior'))+\"\\n                  \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"subjectLineBehavior\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.subjectLineBehavior),expression:\"subjectLineBehavior\"}],attrs:{\"id\":\"subjectLineBehavior\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.subjectLineBehavior=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"email\"}},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('settings.subject_line_email'))+\"\\n                        \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'email' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n                      \")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"masto\"}},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('settings.subject_line_mastodon'))+\"\\n                        \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'mastodon' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n                      \")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"noop\"}},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('settings.subject_line_noop'))+\"\\n                        \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'noop' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n                      \")])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])]),_vm._v(\" \"),(_vm.postFormats.length > 0)?_c('li',[_c('div',[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.post_status_content_type'))+\"\\n                  \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"postContentType\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.postContentType),expression:\"postContentType\"}],attrs:{\"id\":\"postContentType\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.postContentType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.postFormats),function(postFormat){return _c('option',{key:postFormat,domProps:{\"value\":postFormat}},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t((\"post_status.content_type[\\\"\" + postFormat + \"\\\"]\")))+\"\\n                        \"+_vm._s(_vm.postContentTypeDefaultValue === postFormat ? _vm.$t('settings.instance_default_simple') : '')+\"\\n                      \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])]):_vm._e(),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.minimalScopesMode),callback:function ($$v) {_vm.minimalScopesMode=$$v},expression:\"minimalScopesMode\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.minimal_scopes_mode'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.minimalScopesModeLocalizedValue }))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.autohideFloatingPostButton),callback:function ($$v) {_vm.autohideFloatingPostButton=$$v},expression:\"autohideFloatingPostButton\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.autohide_floating_post_button'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.padEmoji),callback:function ($$v) {_vm.padEmoji=$$v},expression:\"padEmoji\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.pad_emoji'))+\"\\n                \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.attachments')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.hideAttachments),callback:function ($$v) {_vm.hideAttachments=$$v},expression:\"hideAttachments\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.hide_attachments_in_tl'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hideAttachmentsInConv),callback:function ($$v) {_vm.hideAttachmentsInConv=$$v},expression:\"hideAttachmentsInConv\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.hide_attachments_in_convo'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('label',{attrs:{\"for\":\"maxThumbnails\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.max_thumbnails'))+\"\\n                \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.maxThumbnails),expression:\"maxThumbnails\",modifiers:{\"number\":true}}],staticClass:\"number-input\",attrs:{\"id\":\"maxThumbnails\",\"type\":\"number\",\"min\":\"0\",\"step\":\"1\"},domProps:{\"value\":(_vm.maxThumbnails)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.maxThumbnails=_vm._n($event.target.value)},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hideNsfw),callback:function ($$v) {_vm.hideNsfw=$$v},expression:\"hideNsfw\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.nsfw_clickthrough'))+\"\\n                \")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\"},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideNsfw},model:{value:(_vm.preloadImage),callback:function ($$v) {_vm.preloadImage=$$v},expression:\"preloadImage\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.preload_images'))+\"\\n                  \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideNsfw},model:{value:(_vm.useOneClickNsfw),callback:function ($$v) {_vm.useOneClickNsfw=$$v},expression:\"useOneClickNsfw\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.use_one_click_nsfw'))+\"\\n                  \")])],1)]),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.stopGifs),callback:function ($$v) {_vm.stopGifs=$$v},expression:\"stopGifs\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.stop_gifs'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.loopVideo),callback:function ($$v) {_vm.loopVideo=$$v},expression:\"loopVideo\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.loop_video'))+\"\\n                \")]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\",class:[{disabled: !_vm.streaming}]},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.loopVideo || !_vm.loopSilentAvailable},model:{value:(_vm.loopVideoSilentOnly),callback:function ($$v) {_vm.loopVideoSilentOnly=$$v},expression:\"loopVideoSilentOnly\"}},[_vm._v(\"\\n                      \"+_vm._s(_vm.$t('settings.loop_video_silent_only'))+\"\\n                    \")]),_vm._v(\" \"),(!_vm.loopSilentAvailable)?_c('div',{staticClass:\"unavailable\"},[_c('i',{staticClass:\"icon-globe\"}),_vm._v(\"! \"+_vm._s(_vm.$t('settings.limited_availability'))+\"\\n                    \")]):_vm._e()],1)])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.playVideosInModal),callback:function ($$v) {_vm.playVideosInModal=$$v},expression:\"playVideosInModal\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.play_videos_in_modal'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.useContainFit),callback:function ($$v) {_vm.useContainFit=$$v},expression:\"useContainFit\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.use_contain_fit'))+\"\\n                \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.notifications')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.webPushNotifications),callback:function ($$v) {_vm.webPushNotifications=$$v},expression:\"webPushNotifications\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.enable_web_push_notifications'))+\"\\n                \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.fun')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.greentext),callback:function ($$v) {_vm.greentext=$$v},expression:\"greentext\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.greentext'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.greentextLocalizedValue }))+\"\\n                \")])],1)])])]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.theme')}},[_c('div',{staticClass:\"setting-item\"},[_c('style-switcher')],1)]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.filtering')}},[_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"select-multiple\"},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('settings.notification_visibility')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.likes),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"likes\", $$v)},expression:\"notificationVisibility.likes\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.notification_visibility_likes'))+\"\\n                  \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.repeats),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"repeats\", $$v)},expression:\"notificationVisibility.repeats\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.notification_visibility_repeats'))+\"\\n                  \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.follows),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"follows\", $$v)},expression:\"notificationVisibility.follows\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.notification_visibility_follows'))+\"\\n                  \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.mentions),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"mentions\", $$v)},expression:\"notificationVisibility.mentions\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.notification_visibility_mentions'))+\"\\n                  \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.moves),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"moves\", $$v)},expression:\"notificationVisibility.moves\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.notification_visibility_moves'))+\"\\n                  \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.emojiReactions),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"emojiReactions\", $$v)},expression:\"notificationVisibility.emojiReactions\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.notification_visibility_emoji_reactions'))+\"\\n                  \")])],1)])]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.replies_in_timeline'))+\"\\n              \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"replyVisibility\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.replyVisibility),expression:\"replyVisibility\"}],attrs:{\"id\":\"replyVisibility\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.replyVisibility=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"all\",\"selected\":\"\"}},[_vm._v(_vm._s(_vm.$t('settings.reply_visibility_all')))]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"following\"}},[_vm._v(_vm._s(_vm.$t('settings.reply_visibility_following')))]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"self\"}},[_vm._v(_vm._s(_vm.$t('settings.reply_visibility_self')))])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]),_vm._v(\" \"),_c('div',[_c('Checkbox',{model:{value:(_vm.hidePostStats),callback:function ($$v) {_vm.hidePostStats=$$v},expression:\"hidePostStats\"}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.hide_post_stats'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hidePostStatsLocalizedValue }))+\"\\n              \")])],1),_vm._v(\" \"),_c('div',[_c('Checkbox',{model:{value:(_vm.hideUserStats),callback:function ($$v) {_vm.hideUserStats=$$v},expression:\"hideUserStats\"}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.hide_user_stats'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideUserStatsLocalizedValue }))+\"\\n              \")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.filtering_explanation')))]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.muteWordsString),expression:\"muteWordsString\"}],attrs:{\"id\":\"muteWords\"},domProps:{\"value\":(_vm.muteWordsString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.muteWordsString=$event.target.value}}})]),_vm._v(\" \"),_c('div',[_c('Checkbox',{model:{value:(_vm.hideFilteredStatuses),callback:function ($$v) {_vm.hideFilteredStatuses=$$v},expression:\"hideFilteredStatuses\"}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.hide_filtered_statuses'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideFilteredStatusesLocalizedValue }))+\"\\n              \")])],1)])]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.version.title')}},[_c('div',{staticClass:\"setting-item\"},[_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.version.backend_version')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('a',{attrs:{\"href\":_vm.backendVersionLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.backendVersion))])])])]),_vm._v(\" \"),_c('li',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.version.frontend_version')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('a',{attrs:{\"href\":_vm.frontendVersionLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.frontendVersion))])])])])])])])])],1)],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { validationMixin } from 'vuelidate'\nimport { required, requiredIf, sameAs } from 'vuelidate/lib/validators'\nimport { mapActions, mapState } from 'vuex'\n\nconst registration = {\n  mixins: [validationMixin],\n  data: () => ({\n    user: {\n      email: '',\n      fullname: '',\n      username: '',\n      password: '',\n      confirm: ''\n    },\n    captcha: {}\n  }),\n  validations () {\n    return {\n      user: {\n        email: { required: requiredIf(() => this.accountActivationRequired) },\n        username: { required },\n        fullname: { required },\n        password: { required },\n        confirm: {\n          required,\n          sameAsPassword: sameAs('password')\n        }\n      }\n    }\n  },\n  created () {\n    if ((!this.registrationOpen && !this.token) || this.signedIn) {\n      this.$router.push({ name: 'root' })\n    }\n\n    this.setCaptcha()\n  },\n  computed: {\n    token () { return this.$route.params.token },\n    bioPlaceholder () {\n      return this.$t('registration.bio_placeholder').replace(/\\s*\\n\\s*/g, ' \\n')\n    },\n    ...mapState({\n      registrationOpen: (state) => state.instance.registrationOpen,\n      signedIn: (state) => !!state.users.currentUser,\n      isPending: (state) => state.users.signUpPending,\n      serverValidationErrors: (state) => state.users.signUpErrors,\n      termsOfService: (state) => state.instance.tos,\n      accountActivationRequired: (state) => state.instance.accountActivationRequired\n    })\n  },\n  methods: {\n    ...mapActions(['signUp', 'getCaptcha']),\n    async submit () {\n      this.user.nickname = this.user.username\n      this.user.token = this.token\n\n      this.user.captcha_solution = this.captcha.solution\n      this.user.captcha_token = this.captcha.token\n      this.user.captcha_answer_data = this.captcha.answer_data\n\n      this.$v.$touch()\n\n      if (!this.$v.$invalid) {\n        try {\n          await this.signUp(this.user)\n          this.$router.push({ name: 'friends' })\n        } catch (error) {\n          console.warn('Registration failed: ', error)\n          this.setCaptcha()\n        }\n      }\n    },\n    setCaptcha () {\n      this.getCaptcha().then(cpt => { this.captcha = cpt })\n    }\n  }\n}\n\nexport default registration\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./registration.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./registration.js\"\nimport __vue_script__ from \"!!babel-loader!./registration.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-456dfbf7\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./registration.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('registration.registration'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"registration-form\",on:{\"submit\":function($event){$event.preventDefault();_vm.submit(_vm.user)}}},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"text-fields\"},[_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.username.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-username\"}},[_vm._v(_vm._s(_vm.$t('login.username')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.$v.user.username.$model),expression:\"$v.user.username.$model\",modifiers:{\"trim\":true}}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-username\",\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('registration.username_placeholder')},domProps:{\"value\":(_vm.$v.user.username.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.username, \"$model\", $event.target.value.trim())},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),(_vm.$v.user.username.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.username.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.username_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.fullname.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-fullname\"}},[_vm._v(_vm._s(_vm.$t('registration.fullname')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.$v.user.fullname.$model),expression:\"$v.user.fullname.$model\",modifiers:{\"trim\":true}}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-fullname\",\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('registration.fullname_placeholder')},domProps:{\"value\":(_vm.$v.user.fullname.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.fullname, \"$model\", $event.target.value.trim())},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),(_vm.$v.user.fullname.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.fullname.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.fullname_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.email.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"email\"}},[_vm._v(_vm._s(_vm.$t('registration.email')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.$v.user.email.$model),expression:\"$v.user.email.$model\"}],staticClass:\"form-control\",attrs:{\"id\":\"email\",\"disabled\":_vm.isPending,\"type\":\"email\"},domProps:{\"value\":(_vm.$v.user.email.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.email, \"$model\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.email.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.email.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.email_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"bio\"}},[_vm._v(_vm._s(_vm.$t('registration.bio'))+\" (\"+_vm._s(_vm.$t('general.optional'))+\")\")]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.bio),expression:\"user.bio\"}],staticClass:\"form-control\",attrs:{\"id\":\"bio\",\"disabled\":_vm.isPending,\"placeholder\":_vm.bioPlaceholder},domProps:{\"value\":(_vm.user.bio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"bio\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.password.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-password\"}},[_vm._v(_vm._s(_vm.$t('login.password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-password\",\"disabled\":_vm.isPending,\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.password.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.password.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.confirm.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-password-confirmation\"}},[_vm._v(_vm._s(_vm.$t('registration.password_confirm')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.confirm),expression:\"user.confirm\"}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-password-confirmation\",\"disabled\":_vm.isPending,\"type\":\"password\"},domProps:{\"value\":(_vm.user.confirm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"confirm\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.confirm.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.confirm.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_confirmation_required')))])]):_vm._e(),_vm._v(\" \"),(!_vm.$v.user.confirm.sameAsPassword)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_confirmation_match')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),(_vm.captcha.type != 'none')?_c('div',{staticClass:\"form-group\",attrs:{\"id\":\"captcha-group\"}},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"captcha-label\"}},[_vm._v(_vm._s(_vm.$t('registration.captcha')))]),_vm._v(\" \"),(['kocaptcha', 'native'].includes(_vm.captcha.type))?[_c('img',{attrs:{\"src\":_vm.captcha.url},on:{\"click\":_vm.setCaptcha}}),_vm._v(\" \"),_c('sub',[_vm._v(_vm._s(_vm.$t('registration.new_captcha')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.captcha.solution),expression:\"captcha.solution\"}],staticClass:\"form-control\",attrs:{\"id\":\"captcha-answer\",\"disabled\":_vm.isPending,\"type\":\"text\",\"autocomplete\":\"off\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":(_vm.captcha.solution)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.captcha, \"solution\", $event.target.value)}}})]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.token)?_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"token\"}},[_vm._v(_vm._s(_vm.$t('registration.token')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.token),expression:\"token\"}],staticClass:\"form-control\",attrs:{\"id\":\"token\",\"disabled\":\"true\",\"type\":\"text\"},domProps:{\"value\":(_vm.token)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.token=$event.target.value}}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.isPending,\"type\":\"submit\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('general.submit'))+\"\\n            \")])])]),_vm._v(\" \"),_c('div',{staticClass:\"terms-of-service\",domProps:{\"innerHTML\":_vm._s(_vm.termsOfService)}})]),_vm._v(\" \"),(_vm.serverValidationErrors.length)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},_vm._l((_vm.serverValidationErrors),function(error){return _c('span',{key:error},[_vm._v(_vm._s(error))])}),0)]):_vm._e()])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { reduce } from 'lodash'\n\nconst MASTODON_PASSWORD_RESET_URL = `/auth/password`\n\nconst resetPassword = ({ instance, email }) => {\n  const params = { email }\n  const query = reduce(params, (acc, v, k) => {\n    const encoded = `${k}=${encodeURIComponent(v)}`\n    return `${acc}&${encoded}`\n  }, '')\n  const url = `${instance}${MASTODON_PASSWORD_RESET_URL}?${query}`\n\n  return window.fetch(url, {\n    method: 'POST'\n  })\n}\n\nexport default resetPassword\n","import { mapState } from 'vuex'\nimport passwordResetApi from '../../services/new_api/password_reset.js'\n\nconst passwordReset = {\n  data: () => ({\n    user: {\n      email: ''\n    },\n    isPending: false,\n    success: false,\n    throttled: false,\n    error: null\n  }),\n  computed: {\n    ...mapState({\n      signedIn: (state) => !!state.users.currentUser,\n      instance: state => state.instance\n    }),\n    mailerEnabled () {\n      return this.instance.mailerEnabled\n    }\n  },\n  created () {\n    if (this.signedIn) {\n      this.$router.push({ name: 'root' })\n    }\n  },\n  props: {\n    passwordResetRequested: {\n      default: false,\n      type: Boolean\n    }\n  },\n  methods: {\n    dismissError () {\n      this.error = null\n    },\n    submit () {\n      this.isPending = true\n      const email = this.user.email\n      const instance = this.instance.server\n\n      passwordResetApi({ instance, email }).then(({ status }) => {\n        this.isPending = false\n        this.user.email = ''\n\n        if (status === 204) {\n          this.success = true\n          this.error = null\n        } else if (status === 404 || status === 400) {\n          this.error = this.$t('password_reset.not_found')\n          this.$nextTick(() => {\n            this.$refs.email.focus()\n          })\n        } else if (status === 429) {\n          this.throttled = true\n          this.error = this.$t('password_reset.too_many_requests')\n        }\n      }).catch(() => {\n        this.isPending = false\n        this.user.email = ''\n        this.error = this.$t('general.generic_error')\n      })\n    }\n  }\n}\n\nexport default passwordReset\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./password_reset.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./password_reset.js\"\nimport __vue_script__ from \"!!babel-loader!./password_reset.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-750c6ec4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./password_reset.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('password_reset.password_reset'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"password-reset-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"container\"},[(!_vm.mailerEnabled)?_c('div',[(_vm.passwordResetRequested)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('password_reset.password_reset_required_but_mailer_is_disabled'))+\"\\n          \")]):_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('password_reset.password_reset_disabled'))+\"\\n          \")])]):(_vm.success || _vm.throttled)?_c('div',[(_vm.success)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('password_reset.check_email'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group text-center\"},[_c('router-link',{attrs:{\"to\":{name: 'root'}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('password_reset.return_home'))+\"\\n            \")])],1)]):_c('div',[(_vm.passwordResetRequested)?_c('p',{staticClass:\"password-reset-required error\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('password_reset.password_reset_required'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('password_reset.instruction'))+\"\\n          \")]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.email),expression:\"user.email\"}],ref:\"email\",staticClass:\"form-control\",attrs:{\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('password_reset.placeholder'),\"type\":\"input\"},domProps:{\"value\":(_vm.user.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"email\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{staticClass:\"btn btn-default btn-block\",attrs:{\"disabled\":_vm.isPending,\"type\":\"submit\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('general.submit'))+\"\\n            \")])])]),_vm._v(\" \"),(_vm.error)?_c('p',{staticClass:\"alert error notice-dismissible\"},[_c('span',[_vm._v(_vm._s(_vm.error))]),_vm._v(\" \"),_c('a',{staticClass:\"button-icon dismiss\",on:{\"click\":function($event){$event.preventDefault();_vm.dismissError()}}},[_c('i',{staticClass:\"icon-cancel\"})])]):_vm._e()])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Cropper from 'cropperjs'\nimport 'cropperjs/dist/cropper.css'\n\nconst ImageCropper = {\n  props: {\n    trigger: {\n      type: [String, window.Element],\n      required: true\n    },\n    submitHandler: {\n      type: Function,\n      required: true\n    },\n    cropperOptions: {\n      type: Object,\n      default () {\n        return {\n          aspectRatio: 1,\n          autoCropArea: 1,\n          viewMode: 1,\n          movable: false,\n          zoomable: false,\n          guides: false\n        }\n      }\n    },\n    mimes: {\n      type: String,\n      default: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'\n    },\n    saveButtonLabel: {\n      type: String\n    },\n    saveWithoutCroppingButtonlabel: {\n      type: String\n    },\n    cancelButtonLabel: {\n      type: String\n    }\n  },\n  data () {\n    return {\n      cropper: undefined,\n      dataUrl: undefined,\n      filename: undefined,\n      submitting: false,\n      submitError: null\n    }\n  },\n  computed: {\n    saveText () {\n      return this.saveButtonLabel || this.$t('image_cropper.save')\n    },\n    saveWithoutCroppingText () {\n      return this.saveWithoutCroppingButtonlabel || this.$t('image_cropper.save_without_cropping')\n    },\n    cancelText () {\n      return this.cancelButtonLabel || this.$t('image_cropper.cancel')\n    },\n    submitErrorMsg () {\n      return this.submitError && this.submitError instanceof Error ? this.submitError.toString() : this.submitError\n    }\n  },\n  methods: {\n    destroy () {\n      if (this.cropper) {\n        this.cropper.destroy()\n      }\n      this.$refs.input.value = ''\n      this.dataUrl = undefined\n      this.$emit('close')\n    },\n    submit (cropping = true) {\n      this.submitting = true\n      this.avatarUploadError = null\n      this.submitHandler(cropping && this.cropper, this.file)\n        .then(() => this.destroy())\n        .catch((err) => {\n          this.submitError = err\n        })\n        .finally(() => {\n          this.submitting = false\n        })\n    },\n    pickImage () {\n      this.$refs.input.click()\n    },\n    createCropper () {\n      this.cropper = new Cropper(this.$refs.img, this.cropperOptions)\n    },\n    getTriggerDOM () {\n      return typeof this.trigger === 'object' ? this.trigger : document.querySelector(this.trigger)\n    },\n    readFile () {\n      const fileInput = this.$refs.input\n      if (fileInput.files != null && fileInput.files[0] != null) {\n        this.file = fileInput.files[0]\n        let reader = new window.FileReader()\n        reader.onload = (e) => {\n          this.dataUrl = e.target.result\n          this.$emit('open')\n        }\n        reader.readAsDataURL(this.file)\n        this.$emit('changed', this.file, reader)\n      }\n    },\n    clearError () {\n      this.submitError = null\n    }\n  },\n  mounted () {\n    // listen for click event on trigger\n    const trigger = this.getTriggerDOM()\n    if (!trigger) {\n      this.$emit('error', 'No image make trigger found.', 'user')\n    } else {\n      trigger.addEventListener('click', this.pickImage)\n    }\n    // listen for input file changes\n    const fileInput = this.$refs.input\n    fileInput.addEventListener('change', this.readFile)\n  },\n  beforeDestroy: function () {\n    // remove the event listeners\n    const trigger = this.getTriggerDOM()\n    if (trigger) {\n      trigger.removeEventListener('click', this.pickImage)\n    }\n    const fileInput = this.$refs.input\n    fileInput.removeEventListener('change', this.readFile)\n  }\n}\n\nexport default ImageCropper\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./image_cropper.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./image_cropper.js\"\nimport __vue_script__ from \"!!babel-loader!./image_cropper.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3babea86\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./image_cropper.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image-cropper\"},[(_vm.dataUrl)?_c('div',[_c('div',{staticClass:\"image-cropper-image-container\"},[_c('img',{ref:\"img\",attrs:{\"src\":_vm.dataUrl,\"alt\":\"\"},on:{\"load\":function($event){$event.stopPropagation();return _vm.createCropper($event)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"image-cropper-buttons-wrapper\"},[_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"disabled\":_vm.submitting},domProps:{\"textContent\":_vm._s(_vm.saveText)},on:{\"click\":function($event){_vm.submit()}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"disabled\":_vm.submitting},domProps:{\"textContent\":_vm._s(_vm.cancelText)},on:{\"click\":_vm.destroy}}),_vm._v(\" \"),_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"disabled\":_vm.submitting},domProps:{\"textContent\":_vm._s(_vm.saveWithoutCroppingText)},on:{\"click\":function($event){_vm.submit(false)}}}),_vm._v(\" \"),(_vm.submitting)?_c('i',{staticClass:\"icon-spin4 animate-spin\"}):_vm._e()]),_vm._v(\" \"),(_vm.submitError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n      \"+_vm._s(_vm.submitErrorMsg)+\"\\n      \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"input\",staticClass:\"image-cropper-img-input\",attrs:{\"type\":\"file\",\"accept\":_vm.mimes}})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst BlockCard = {\n  props: ['userId'],\n  data () {\n    return {\n      progress: false\n    }\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    blocked () {\n      return this.relationship.blocking\n    }\n  },\n  components: {\n    BasicUserCard\n  },\n  methods: {\n    unblockUser () {\n      this.progress = true\n      this.$store.dispatch('unblockUser', this.user.id).then(() => {\n        this.progress = false\n      })\n    },\n    blockUser () {\n      this.progress = true\n      this.$store.dispatch('blockUser', this.user.id).then(() => {\n        this.progress = false\n      })\n    }\n  }\n}\n\nexport default BlockCard\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./block_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./block_card.js\"\nimport __vue_script__ from \"!!babel-loader!./block_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-633eab92\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./block_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"block-card-content-container\"},[(_vm.blocked)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.unblockUser}},[(_vm.progress)?[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.unblock_progress'))+\"\\n      \")]:[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.unblock'))+\"\\n      \")]],2):_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.blockUser}},[(_vm.progress)?[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.block_progress'))+\"\\n      \")]:[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.block'))+\"\\n      \")]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst MuteCard = {\n  props: ['userId'],\n  data () {\n    return {\n      progress: false\n    }\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    muted () {\n      return this.relationship.muting\n    }\n  },\n  components: {\n    BasicUserCard\n  },\n  methods: {\n    unmuteUser () {\n      this.progress = true\n      this.$store.dispatch('unmuteUser', this.userId).then(() => {\n        this.progress = false\n      })\n    },\n    muteUser () {\n      this.progress = true\n      this.$store.dispatch('muteUser', this.userId).then(() => {\n        this.progress = false\n      })\n    }\n  }\n}\n\nexport default MuteCard\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mute_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mute_card.js\"\nimport __vue_script__ from \"!!babel-loader!./mute_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4de27707\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mute_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"mute-card-content-container\"},[(_vm.muted)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.unmuteUser}},[(_vm.progress)?[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.unmute_progress'))+\"\\n      \")]:[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.unmute'))+\"\\n      \")]],2):_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.muteUser}},[(_vm.progress)?[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.mute_progress'))+\"\\n      \")]:[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_card.mute'))+\"\\n      \")]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import ProgressButton from '../progress_button/progress_button.vue'\n\nconst DomainMuteCard = {\n  props: ['domain'],\n  components: {\n    ProgressButton\n  },\n  methods: {\n    unmuteDomain () {\n      return this.$store.dispatch('unmuteDomain', this.domain)\n    }\n  }\n}\n\nexport default DomainMuteCard\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./domain_mute_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./domain_mute_card.js\"\nimport __vue_script__ from \"!!babel-loader!./domain_mute_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-77eaeb9c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./domain_mute_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"domain-mute-card\"},[_c('div',{staticClass:\"domain-mute-card-domain\"},[_vm._v(\"\\n    \"+_vm._s(_vm.domain)+\"\\n  \")]),_vm._v(\" \"),_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":_vm.unmuteDomain}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('domain_mute_card.unmute'))+\"\\n    \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('domain_mute_card.unmute_progress'))+\"\\n    \")])],2)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst SelectableList = {\n  components: {\n    List,\n    Checkbox\n  },\n  props: {\n    items: {\n      type: Array,\n      default: () => []\n    },\n    getKey: {\n      type: Function,\n      default: item => item.id\n    }\n  },\n  data () {\n    return {\n      selected: []\n    }\n  },\n  computed: {\n    allKeys () {\n      return this.items.map(this.getKey)\n    },\n    filteredSelected () {\n      return this.allKeys.filter(key => this.selected.indexOf(key) !== -1)\n    },\n    allSelected () {\n      return this.filteredSelected.length === this.items.length\n    },\n    noneSelected () {\n      return this.filteredSelected.length === 0\n    },\n    someSelected () {\n      return !this.allSelected && !this.noneSelected\n    }\n  },\n  methods: {\n    isSelected (item) {\n      return this.filteredSelected.indexOf(this.getKey(item)) !== -1\n    },\n    toggle (checked, item) {\n      const key = this.getKey(item)\n      const oldChecked = this.isSelected(key)\n      if (checked !== oldChecked) {\n        if (checked) {\n          this.selected.push(key)\n        } else {\n          this.selected.splice(this.selected.indexOf(key), 1)\n        }\n      }\n    },\n    toggleAll (value) {\n      if (value) {\n        this.selected = this.allKeys.slice(0)\n      } else {\n        this.selected = []\n      }\n    }\n  }\n}\n\nexport default SelectableList\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./selectable_list.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./selectable_list.js\"\nimport __vue_script__ from \"!!babel-loader!./selectable_list.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-059c811c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./selectable_list.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"selectable-list\"},[(_vm.items.length > 0)?_c('div',{staticClass:\"selectable-list-header\"},[_c('div',{staticClass:\"selectable-list-checkbox-wrapper\"},[_c('Checkbox',{attrs:{\"checked\":_vm.allSelected,\"indeterminate\":_vm.someSelected},on:{\"change\":_vm.toggleAll}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('selectable_list.select_all'))+\"\\n      \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"selectable-list-header-actions\"},[_vm._t(\"header\",null,{selected:_vm.filteredSelected})],2)]):_vm._e(),_vm._v(\" \"),_c('List',{attrs:{\"items\":_vm.items,\"get-key\":_vm.getKey},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"selectable-list-item-inner\",class:{ 'selectable-list-item-selected-inner': _vm.isSelected(item) }},[_c('div',{staticClass:\"selectable-list-checkbox-wrapper\"},[_c('Checkbox',{attrs:{\"checked\":_vm.isSelected(item)},on:{\"change\":function (checked) { return _vm.toggle(checked, item); }}})],1),_vm._v(\" \"),_vm._t(\"item\",null,{item:item})],2)]}}])},[_c('template',{slot:\"empty\"},[_vm._t(\"empty\")],2)],2)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const debounceMilliseconds = 500\n\nexport default {\n  props: {\n    query: { // function to query results and return a promise\n      type: Function,\n      required: true\n    },\n    filter: { // function to filter results in real time\n      type: Function\n    },\n    placeholder: {\n      type: String,\n      default: 'Search...'\n    }\n  },\n  data () {\n    return {\n      term: '',\n      timeout: null,\n      results: [],\n      resultsVisible: false\n    }\n  },\n  computed: {\n    filtered () {\n      return this.filter ? this.filter(this.results) : this.results\n    }\n  },\n  watch: {\n    term (val) {\n      this.fetchResults(val)\n    }\n  },\n  methods: {\n    fetchResults (term) {\n      clearTimeout(this.timeout)\n      this.timeout = setTimeout(() => {\n        this.results = []\n        if (term) {\n          this.query(term).then((results) => { this.results = results })\n        }\n      }, debounceMilliseconds)\n    },\n    onInputClick () {\n      this.resultsVisible = true\n    },\n    onClickOutside () {\n      this.resultsVisible = false\n    }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./autosuggest.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./autosuggest.js\"\nimport __vue_script__ from \"!!babel-loader!./autosuggest.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-105e6799\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./autosuggest.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],staticClass:\"autosuggest\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.term),expression:\"term\"}],staticClass:\"autosuggest-input\",attrs:{\"placeholder\":_vm.placeholder},domProps:{\"value\":(_vm.term)},on:{\"click\":_vm.onInputClick,\"input\":function($event){if($event.target.composing){ return; }_vm.term=$event.target.value}}}),_vm._v(\" \"),(_vm.resultsVisible && _vm.filtered.length > 0)?_c('div',{staticClass:\"autosuggest-results\"},[_vm._l((_vm.filtered),function(item){return _vm._t(\"default\",null,{item:item})})],2):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const Importer = {\n  props: {\n    submitHandler: {\n      type: Function,\n      required: true\n    },\n    submitButtonLabel: {\n      type: String,\n      default () {\n        return this.$t('importer.submit')\n      }\n    },\n    successMessage: {\n      type: String,\n      default () {\n        return this.$t('importer.success')\n      }\n    },\n    errorMessage: {\n      type: String,\n      default () {\n        return this.$t('importer.error')\n      }\n    }\n  },\n  data () {\n    return {\n      file: null,\n      error: false,\n      success: false,\n      submitting: false\n    }\n  },\n  methods: {\n    change () {\n      this.file = this.$refs.input.files[0]\n    },\n    submit () {\n      this.dismiss()\n      this.submitting = true\n      this.submitHandler(this.file)\n        .then(() => { this.success = true })\n        .catch(() => { this.error = true })\n        .finally(() => { this.submitting = false })\n    },\n    dismiss () {\n      this.success = false\n      this.error = false\n    }\n  }\n}\n\nexport default Importer\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./importer.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./importer.js\"\nimport __vue_script__ from \"!!babel-loader!./importer.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4927596c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./importer.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"importer\"},[_c('form',[_c('input',{ref:\"input\",attrs:{\"type\":\"file\"},on:{\"change\":_vm.change}})]),_vm._v(\" \"),(_vm.submitting)?_c('i',{staticClass:\"icon-spin4 animate-spin importer-uploading\"}):_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submit}},[_vm._v(\"\\n    \"+_vm._s(_vm.submitButtonLabel)+\"\\n  \")]),_vm._v(\" \"),(_vm.success)?_c('div',[_c('i',{staticClass:\"icon-cross\",on:{\"click\":_vm.dismiss}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.successMessage))])]):(_vm.error)?_c('div',[_c('i',{staticClass:\"icon-cross\",on:{\"click\":_vm.dismiss}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const Exporter = {\n  props: {\n    getContent: {\n      type: Function,\n      required: true\n    },\n    filename: {\n      type: String,\n      default: 'export.csv'\n    },\n    exportButtonLabel: {\n      type: String,\n      default () {\n        return this.$t('exporter.export')\n      }\n    },\n    processingMessage: {\n      type: String,\n      default () {\n        return this.$t('exporter.processing')\n      }\n    }\n  },\n  data () {\n    return {\n      processing: false\n    }\n  },\n  methods: {\n    process () {\n      this.processing = true\n      this.getContent()\n        .then((content) => {\n          const fileToDownload = document.createElement('a')\n          fileToDownload.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content))\n          fileToDownload.setAttribute('download', this.filename)\n          fileToDownload.style.display = 'none'\n          document.body.appendChild(fileToDownload)\n          fileToDownload.click()\n          document.body.removeChild(fileToDownload)\n          // Add delay before hiding processing state since browser takes some time to handle file download\n          setTimeout(() => { this.processing = false }, 2000)\n        })\n    }\n  }\n}\n\nexport default Exporter\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./exporter.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./exporter.js\"\nimport __vue_script__ from \"!!babel-loader!./exporter.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7229517a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./exporter.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"exporter\"},[(_vm.processing)?_c('div',[_c('i',{staticClass:\"icon-spin4 animate-spin exporter-processing\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.processingMessage))])]):_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.process}},[_vm._v(\"\\n    \"+_vm._s(_vm.exportButtonLabel)+\"\\n  \")])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_subscription.scss'\n\nconst withSubscription = ({\n  fetch, // function to fetch entries and return a promise\n  select, // function to select data from store\n  childPropName = 'content', // name of the prop to be passed into the wrapped component\n  additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n  const originalProps = Object.keys(getComponentProps(WrappedComponent))\n  const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n  return Vue.component('withSubscription', {\n    props: [\n      ...props,\n      'refresh' // boolean saying to force-fetch data whenever created\n    ],\n    data () {\n      return {\n        loading: false,\n        error: false\n      }\n    },\n    computed: {\n      fetchedData () {\n        return select(this.$props, this.$store)\n      }\n    },\n    created () {\n      if (this.refresh || isEmpty(this.fetchedData)) {\n        this.fetchData()\n      }\n    },\n    methods: {\n      fetchData () {\n        if (!this.loading) {\n          this.loading = true\n          this.error = false\n          fetch(this.$props, this.$store)\n            .then(() => {\n              this.loading = false\n            })\n            .catch(() => {\n              this.error = true\n              this.loading = false\n            })\n        }\n      }\n    },\n    render (h) {\n      if (!this.error && !this.loading) {\n        const props = {\n          props: {\n            ...this.$props,\n            [childPropName]: this.fetchedData\n          },\n          on: this.$listeners,\n          scopedSlots: this.$scopedSlots\n        }\n        const children = Object.entries(this.$slots).map(([key, value]) => h('template', { slot: key }, value))\n        return (\n          <div class=\"with-subscription\">\n            <WrappedComponent {...props}>\n              {children}\n            </WrappedComponent>\n          </div>\n        )\n      } else {\n        return (\n          <div class=\"with-subscription-loading\">\n            {this.error\n              ? <a onClick={this.fetchData} class=\"alert error\">{this.$t('general.generic_error')}</a>\n              : <i class=\"icon-spin3 animate-spin\"/>\n            }\n          </div>\n        )\n      }\n    }\n  })\n}\n\nexport default withSubscription\n","export default {\n  props: {\n    backupCodes: {\n      type: Object,\n      default: () => ({\n        inProgress: false,\n        codes: []\n      })\n    }\n  },\n  data: () => ({}),\n  computed: {\n    inProgress () { return this.backupCodes.inProgress },\n    ready () { return this.backupCodes.codes.length > 0 },\n    displayTitle () { return this.inProgress || this.ready }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mfa_backup_codes.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mfa_backup_codes.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa_backup_codes.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-613f1377\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa_backup_codes.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.displayTitle)?_c('h4',[_vm._v(\"\\n    \"+_vm._s(_vm.$t('settings.mfa.recovery_codes'))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),(_vm.inProgress)?_c('i',[_vm._v(_vm._s(_vm.$t('settings.mfa.waiting_a_recovery_codes')))]):_vm._e(),_vm._v(\" \"),(_vm.ready)?[_c('p',{staticClass:\"alert warning\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('settings.mfa.recovery_codes_warning'))+\"\\n    \")]),_vm._v(\" \"),_c('ul',{staticClass:\"backup-codes\"},_vm._l((_vm.backupCodes.codes),function(code){return _c('li',{key:code},[_vm._v(\"\\n        \"+_vm._s(code)+\"\\n      \")])}),0)]:_vm._e()],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const Confirm = {\n  props: ['disabled'],\n  data: () => ({}),\n  methods: {\n    confirm () { this.$emit('confirm') },\n    cancel () { this.$emit('cancel') }\n  }\n}\nexport default Confirm\n","/* script */\nexport * from \"!!babel-loader!./confirm.js\"\nimport __vue_script__ from \"!!babel-loader!./confirm.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-20b6e7b3\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./confirm.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\"),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.confirm}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('general.confirm'))+\"\\n  \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('general.cancel'))+\"\\n  \")])],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Confirm from './confirm.vue'\nimport { mapState } from 'vuex'\n\nexport default {\n  props: ['settings'],\n  data: () => ({\n    error: false,\n    currentPassword: '',\n    deactivate: false,\n    inProgress: false // progress peform request to disable otp method\n  }),\n  components: {\n    'confirm': Confirm\n  },\n  computed: {\n    isActivated () {\n      return this.settings.totp\n    },\n    ...mapState({\n      backendInteractor: (state) => state.api.backendInteractor\n    })\n  },\n  methods: {\n    doActivate () {\n      this.$emit('activate')\n    },\n    cancelDeactivate () { this.deactivate = false },\n    doDeactivate () {\n      this.error = null\n      this.deactivate = true\n    },\n    confirmDeactivate () { // confirm deactivate TOTP method\n      this.error = null\n      this.inProgress = true\n      this.backendInteractor.mfaDisableOTP({\n        password: this.currentPassword\n      })\n        .then((res) => {\n          this.inProgress = false\n          if (res.error) {\n            this.error = res.error\n            return\n          }\n          this.deactivate = false\n          this.$emit('deactivate')\n        })\n    }\n  }\n}\n","import RecoveryCodes from './mfa_backup_codes.vue'\nimport TOTP from './mfa_totp.vue'\nimport Confirm from './confirm.vue'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport { mapState } from 'vuex'\n\nconst Mfa = {\n  data: () => ({\n    settings: { // current settings of MFA\n      available: false,\n      enabled: false,\n      totp: false\n    },\n    setupState: { // setup mfa\n      state: '', // state of setup. '' -> 'getBackupCodes' -> 'setupOTP' -> 'complete'\n      setupOTPState: '' // state of setup otp. '' -> 'prepare' -> 'confirm' -> 'complete'\n    },\n    backupCodes: {\n      getNewCodes: false,\n      inProgress: false, //  progress of fetch codes\n      codes: []\n    },\n    otpSettings: { // pre-setup setting of OTP. secret key, qrcode url.\n      provisioning_uri: '',\n      key: ''\n    },\n    currentPassword: null,\n    otpConfirmToken: null,\n    error: null,\n    readyInit: false\n  }),\n  components: {\n    'recovery-codes': RecoveryCodes,\n    'totp-item': TOTP,\n    'qrcode': VueQrcode,\n    'confirm': Confirm\n  },\n  computed: {\n    canSetupOTP () {\n      return (\n        (this.setupInProgress && this.backupCodesPrepared) ||\n          this.settings.enabled\n      ) && !this.settings.totp && !this.setupOTPInProgress\n    },\n    setupInProgress () {\n      return this.setupState.state !== '' && this.setupState.state !== 'complete'\n    },\n    setupOTPInProgress () {\n      return this.setupState.state === 'setupOTP' && !this.completedOTP\n    },\n    prepareOTP () {\n      return this.setupState.setupOTPState === 'prepare'\n    },\n    confirmOTP () {\n      return this.setupState.setupOTPState === 'confirm'\n    },\n    completedOTP () {\n      return this.setupState.setupOTPState === 'completed'\n    },\n    backupCodesPrepared () {\n      return !this.backupCodes.inProgress && this.backupCodes.codes.length > 0\n    },\n    confirmNewBackupCodes () {\n      return this.backupCodes.getNewCodes\n    },\n    ...mapState({\n      backendInteractor: (state) => state.api.backendInteractor\n    })\n  },\n\n  methods: {\n    activateOTP () {\n      if (!this.settings.enabled) {\n        this.setupState.state = 'getBackupcodes'\n        this.fetchBackupCodes()\n      }\n    },\n    fetchBackupCodes () {\n      this.backupCodes.inProgress = true\n      this.backupCodes.codes = []\n\n      return this.backendInteractor.generateMfaBackupCodes()\n        .then((res) => {\n          this.backupCodes.codes = res.codes\n          this.backupCodes.inProgress = false\n        })\n    },\n    getBackupCodes () { // get a new backup codes\n      this.backupCodes.getNewCodes = true\n    },\n    confirmBackupCodes () { // confirm getting new backup codes\n      this.fetchBackupCodes().then((res) => {\n        this.backupCodes.getNewCodes = false\n      })\n    },\n    cancelBackupCodes () { // cancel confirm form of new backup codes\n      this.backupCodes.getNewCodes = false\n    },\n\n    // Setup OTP\n    setupOTP () { // prepare setup OTP\n      this.setupState.state = 'setupOTP'\n      this.setupState.setupOTPState = 'prepare'\n      this.backendInteractor.mfaSetupOTP()\n        .then((res) => {\n          this.otpSettings = res\n          this.setupState.setupOTPState = 'confirm'\n        })\n    },\n    doConfirmOTP () { // handler confirm enable OTP\n      this.error = null\n      this.backendInteractor.mfaConfirmOTP({\n        token: this.otpConfirmToken,\n        password: this.currentPassword\n      })\n        .then((res) => {\n          if (res.error) {\n            this.error = res.error\n            return\n          }\n          this.completeSetup()\n        })\n    },\n\n    completeSetup () {\n      this.setupState.setupOTPState = 'complete'\n      this.setupState.state = 'complete'\n      this.currentPassword = null\n      this.error = null\n      this.fetchSettings()\n    },\n    cancelSetup () { // cancel setup\n      this.setupState.setupOTPState = ''\n      this.setupState.state = ''\n      this.currentPassword = null\n      this.error = null\n    },\n    // end Setup OTP\n\n    // fetch settings from server\n    async fetchSettings () {\n      let result = await this.backendInteractor.settingsMFA()\n      if (result.error) return\n      this.settings = result.settings\n      this.settings.available = true\n      return result\n    }\n  },\n  mounted () {\n    this.fetchSettings().then(() => {\n      this.readyInit = true\n    })\n  }\n}\nexport default Mfa\n","/* script */\nexport * from \"!!babel-loader!./mfa_totp.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa_totp.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-df66df96\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa_totp.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"method-item\"},[_c('strong',[_vm._v(_vm._s(_vm.$t('settings.mfa.otp')))]),_vm._v(\" \"),(!_vm.isActivated)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.doActivate}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('general.enable'))+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.isActivated)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.deactivate},on:{\"click\":_vm.doDeactivate}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('general.disable'))+\"\\n    \")]):_vm._e()]),_vm._v(\" \"),(_vm.deactivate)?_c('confirm',{attrs:{\"disabled\":_vm.inProgress},on:{\"confirm\":_vm.confirmDeactivate,\"cancel\":_vm.cancelDeactivate}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('settings.enter_current_password_to_confirm'))+\":\\n    \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPassword),expression:\"currentPassword\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.currentPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPassword=$event.target.value}}})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n    \"+_vm._s(_vm.error)+\"\\n  \")]):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mfa.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mfa.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e9d3ba70\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.readyInit && _vm.settings.available)?_c('div',{staticClass:\"setting-item mfa-settings\"},[_c('div',{staticClass:\"mfa-heading\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.mfa.title')))])]),_vm._v(\" \"),_c('div',[(!_vm.setupInProgress)?_c('div',{staticClass:\"setting-item\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('settings.mfa.authentication_methods')))]),_vm._v(\" \"),_c('totp-item',{attrs:{\"settings\":_vm.settings},on:{\"deactivate\":_vm.fetchSettings,\"activate\":_vm.activateOTP}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),(_vm.settings.enabled)?_c('div',[(!_vm.confirmNewBackupCodes)?_c('recovery-codes',{attrs:{\"backup-codes\":_vm.backupCodes}}):_vm._e(),_vm._v(\" \"),(!_vm.confirmNewBackupCodes)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.getBackupCodes}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.mfa.generate_new_recovery_codes'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.confirmNewBackupCodes)?_c('div',[_c('confirm',{attrs:{\"disabled\":_vm.backupCodes.inProgress},on:{\"confirm\":_vm.confirmBackupCodes,\"cancel\":_vm.cancelBackupCodes}},[_c('p',{staticClass:\"warning\"},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.mfa.warning_of_generate_new_codes'))+\"\\n            \")])])],1):_vm._e()],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.setupInProgress)?_c('div',[_c('h3',[_vm._v(_vm._s(_vm.$t('settings.mfa.setup_otp')))]),_vm._v(\" \"),(!_vm.setupOTPInProgress)?_c('recovery-codes',{attrs:{\"backup-codes\":_vm.backupCodes}}):_vm._e(),_vm._v(\" \"),(_vm.canSetupOTP)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.cancelSetup}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('general.cancel'))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.canSetupOTP)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.setupOTP}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('settings.mfa.setup_otp'))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.setupOTPInProgress)?[(_vm.prepareOTP)?_c('i',[_vm._v(_vm._s(_vm.$t('settings.mfa.wait_pre_setup_otp')))]):_vm._e(),_vm._v(\" \"),(_vm.confirmOTP)?_c('div',[_c('div',{staticClass:\"setup-otp\"},[_c('div',{staticClass:\"qr-code\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.mfa.scan.title')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.mfa.scan.desc')))]),_vm._v(\" \"),_c('qrcode',{attrs:{\"value\":_vm.otpSettings.provisioning_uri,\"options\":{ width: 200 }}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.mfa.scan.secret_code'))+\":\\n                \"+_vm._s(_vm.otpSettings.key)+\"\\n              \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"verify\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('general.verify')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.mfa.verify.desc')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.otpConfirmToken),expression:\"otpConfirmToken\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.otpConfirmToken)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.otpConfirmToken=$event.target.value}}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.enter_current_password_to_confirm'))+\":\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPassword),expression:\"currentPassword\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.currentPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPassword=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"confirm-otp-actions\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.doConfirmOTP}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.mfa.confirm_and_enable'))+\"\\n                \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.cancelSetup}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('general.cancel'))+\"\\n                \")])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n                \"+_vm._s(_vm.error)+\"\\n              \")]):_vm._e()])])]):_vm._e()]:_vm._e()],2):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import unescape from 'lodash/unescape'\nimport get from 'lodash/get'\nimport map from 'lodash/map'\nimport reject from 'lodash/reject'\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport ImageCropper from '../image_cropper/image_cropper.vue'\nimport StyleSwitcher from '../style_switcher/style_switcher.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\nimport BlockCard from '../block_card/block_card.vue'\nimport MuteCard from '../mute_card/mute_card.vue'\nimport DomainMuteCard from '../domain_mute_card/domain_mute_card.vue'\nimport SelectableList from '../selectable_list/selectable_list.vue'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport suggestor from '../emoji_input/suggestor.js'\nimport Autosuggest from '../autosuggest/autosuggest.vue'\nimport Importer from '../importer/importer.vue'\nimport Exporter from '../exporter/exporter.vue'\nimport withSubscription from '../../hocs/with_subscription/with_subscription'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Mfa from './mfa.vue'\n\nconst BlockList = withSubscription({\n  fetch: (props, $store) => $store.dispatch('fetchBlocks'),\n  select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),\n  childPropName: 'items'\n})(SelectableList)\n\nconst MuteList = withSubscription({\n  fetch: (props, $store) => $store.dispatch('fetchMutes'),\n  select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),\n  childPropName: 'items'\n})(SelectableList)\n\nconst DomainMuteList = withSubscription({\n  fetch: (props, $store) => $store.dispatch('fetchDomainMutes'),\n  select: (props, $store) => get($store.state.users.currentUser, 'domainMutes', []),\n  childPropName: 'items'\n})(SelectableList)\n\nconst UserSettings = {\n  data () {\n    return {\n      newEmail: '',\n      newName: this.$store.state.users.currentUser.name,\n      newBio: unescape(this.$store.state.users.currentUser.description),\n      newLocked: this.$store.state.users.currentUser.locked,\n      newNoRichText: this.$store.state.users.currentUser.no_rich_text,\n      newDefaultScope: this.$store.state.users.currentUser.default_scope,\n      hideFollows: this.$store.state.users.currentUser.hide_follows,\n      hideFollowers: this.$store.state.users.currentUser.hide_followers,\n      hideFollowsCount: this.$store.state.users.currentUser.hide_follows_count,\n      hideFollowersCount: this.$store.state.users.currentUser.hide_followers_count,\n      showRole: this.$store.state.users.currentUser.show_role,\n      role: this.$store.state.users.currentUser.role,\n      discoverable: this.$store.state.users.currentUser.discoverable,\n      allowFollowingMove: this.$store.state.users.currentUser.allow_following_move,\n      pickAvatarBtnVisible: true,\n      bannerUploading: false,\n      backgroundUploading: false,\n      banner: null,\n      bannerPreview: null,\n      background: null,\n      backgroundPreview: null,\n      bannerUploadError: null,\n      backgroundUploadError: null,\n      changeEmailError: false,\n      changeEmailPassword: '',\n      changedEmail: false,\n      deletingAccount: false,\n      deleteAccountConfirmPasswordInput: '',\n      deleteAccountError: false,\n      changePasswordInputs: [ '', '', '' ],\n      changedPassword: false,\n      changePasswordError: false,\n      activeTab: 'profile',\n      notificationSettings: this.$store.state.users.currentUser.notification_settings,\n      newDomainToMute: ''\n    }\n  },\n  created () {\n    this.$store.dispatch('fetchTokens')\n  },\n  components: {\n    StyleSwitcher,\n    ScopeSelector,\n    TabSwitcher,\n    ImageCropper,\n    BlockList,\n    MuteList,\n    DomainMuteList,\n    EmojiInput,\n    Autosuggest,\n    BlockCard,\n    MuteCard,\n    DomainMuteCard,\n    ProgressButton,\n    Importer,\n    Exporter,\n    Mfa,\n    Checkbox\n  },\n  computed: {\n    user () {\n      return this.$store.state.users.currentUser\n    },\n    emojiUserSuggestor () {\n      return suggestor({\n        emoji: [\n          ...this.$store.state.instance.emoji,\n          ...this.$store.state.instance.customEmoji\n        ],\n        users: this.$store.state.users.users,\n        updateUsersList: (query) => this.$store.dispatch('searchUsers', { query })\n      })\n    },\n    emojiSuggestor () {\n      return suggestor({ emoji: [\n        ...this.$store.state.instance.emoji,\n        ...this.$store.state.instance.customEmoji\n      ] })\n    },\n    pleromaBackend () {\n      return this.$store.state.instance.pleromaBackend\n    },\n    minimalScopesMode () {\n      return this.$store.state.instance.minimalScopesMode\n    },\n    vis () {\n      return {\n        public: { selected: this.newDefaultScope === 'public' },\n        unlisted: { selected: this.newDefaultScope === 'unlisted' },\n        private: { selected: this.newDefaultScope === 'private' },\n        direct: { selected: this.newDefaultScope === 'direct' }\n      }\n    },\n    currentSaveStateNotice () {\n      return this.$store.state.interface.settings.currentSaveStateNotice\n    },\n    oauthTokens () {\n      return this.$store.state.oauthTokens.tokens.map(oauthToken => {\n        return {\n          id: oauthToken.id,\n          appName: oauthToken.app_name,\n          validUntil: new Date(oauthToken.valid_until).toLocaleDateString()\n        }\n      })\n    }\n  },\n  methods: {\n    updateProfile () {\n      this.$store.state.api.backendInteractor\n        .updateProfile({\n          params: {\n            note: this.newBio,\n            locked: this.newLocked,\n            // Backend notation.\n            /* eslint-disable camelcase */\n            display_name: this.newName,\n            default_scope: this.newDefaultScope,\n            no_rich_text: this.newNoRichText,\n            hide_follows: this.hideFollows,\n            hide_followers: this.hideFollowers,\n            discoverable: this.discoverable,\n            allow_following_move: this.allowFollowingMove,\n            hide_follows_count: this.hideFollowsCount,\n            hide_followers_count: this.hideFollowersCount,\n            show_role: this.showRole\n            /* eslint-enable camelcase */\n          } }).then((user) => {\n          this.$store.commit('addNewUsers', [user])\n          this.$store.commit('setCurrentUser', user)\n        })\n    },\n    updateNotificationSettings () {\n      this.$store.state.api.backendInteractor\n        .updateNotificationSettings({ settings: this.notificationSettings })\n    },\n    changeVis (visibility) {\n      this.newDefaultScope = visibility\n    },\n    uploadFile (slot, e) {\n      const file = e.target.files[0]\n      if (!file) { return }\n      if (file.size > this.$store.state.instance[slot + 'limit']) {\n        const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n        const allowedsize = fileSizeFormatService.fileSizeFormat(this.$store.state.instance[slot + 'limit'])\n        this[slot + 'UploadError'] = this.$t('upload.error.base') + ' ' + this.$t('upload.error.file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n        return\n      }\n      // eslint-disable-next-line no-undef\n      const reader = new FileReader()\n      reader.onload = ({ target }) => {\n        const img = target.result\n        this[slot + 'Preview'] = img\n        this[slot] = file\n      }\n      reader.readAsDataURL(file)\n    },\n    submitAvatar (cropper, file) {\n      const that = this\n      return new Promise((resolve, reject) => {\n        function updateAvatar (avatar) {\n          that.$store.state.api.backendInteractor.updateAvatar({ avatar })\n            .then((user) => {\n              that.$store.commit('addNewUsers', [user])\n              that.$store.commit('setCurrentUser', user)\n              resolve()\n            })\n            .catch((err) => {\n              reject(new Error(that.$t('upload.error.base') + ' ' + err.message))\n            })\n        }\n\n        if (cropper) {\n          cropper.getCroppedCanvas().toBlob(updateAvatar, file.type)\n        } else {\n          updateAvatar(file)\n        }\n      })\n    },\n    clearUploadError (slot) {\n      this[slot + 'UploadError'] = null\n    },\n    submitBanner () {\n      if (!this.bannerPreview) { return }\n\n      this.bannerUploading = true\n      this.$store.state.api.backendInteractor.updateBanner({ banner: this.banner })\n        .then((user) => {\n          this.$store.commit('addNewUsers', [user])\n          this.$store.commit('setCurrentUser', user)\n          this.bannerPreview = null\n        })\n        .catch((err) => {\n          this.bannerUploadError = this.$t('upload.error.base') + ' ' + err.message\n        })\n        .then(() => { this.bannerUploading = false })\n    },\n    submitBg () {\n      if (!this.backgroundPreview) { return }\n      let background = this.background\n      this.backgroundUploading = true\n      this.$store.state.api.backendInteractor.updateBg({ background }).then((data) => {\n        if (!data.error) {\n          this.$store.commit('addNewUsers', [data])\n          this.$store.commit('setCurrentUser', data)\n          this.backgroundPreview = null\n        } else {\n          this.backgroundUploadError = this.$t('upload.error.base') + data.error\n        }\n        this.backgroundUploading = false\n      })\n    },\n    importFollows (file) {\n      return this.$store.state.api.backendInteractor.importFollows({ file })\n        .then((status) => {\n          if (!status) {\n            throw new Error('failed')\n          }\n        })\n    },\n    importBlocks (file) {\n      return this.$store.state.api.backendInteractor.importBlocks({ file })\n        .then((status) => {\n          if (!status) {\n            throw new Error('failed')\n          }\n        })\n    },\n    generateExportableUsersContent (users) {\n      // Get addresses\n      return users.map((user) => {\n        // check is it's a local user\n        if (user && user.is_local) {\n          // append the instance address\n          // eslint-disable-next-line no-undef\n          return user.screen_name + '@' + location.hostname\n        }\n        return user.screen_name\n      }).join('\\n')\n    },\n    getFollowsContent () {\n      return this.$store.state.api.backendInteractor.exportFriends({ id: this.$store.state.users.currentUser.id })\n        .then(this.generateExportableUsersContent)\n    },\n    getBlocksContent () {\n      return this.$store.state.api.backendInteractor.fetchBlocks()\n        .then(this.generateExportableUsersContent)\n    },\n    confirmDelete () {\n      this.deletingAccount = true\n    },\n    deleteAccount () {\n      this.$store.state.api.backendInteractor.deleteAccount({ password: this.deleteAccountConfirmPasswordInput })\n        .then((res) => {\n          if (res.status === 'success') {\n            this.$store.dispatch('logout')\n            this.$router.push({ name: 'root' })\n          } else {\n            this.deleteAccountError = res.error\n          }\n        })\n    },\n    changePassword () {\n      const params = {\n        password: this.changePasswordInputs[0],\n        newPassword: this.changePasswordInputs[1],\n        newPasswordConfirmation: this.changePasswordInputs[2]\n      }\n      this.$store.state.api.backendInteractor.changePassword(params)\n        .then((res) => {\n          if (res.status === 'success') {\n            this.changedPassword = true\n            this.changePasswordError = false\n            this.logout()\n          } else {\n            this.changedPassword = false\n            this.changePasswordError = res.error\n          }\n        })\n    },\n    changeEmail () {\n      const params = {\n        email: this.newEmail,\n        password: this.changeEmailPassword\n      }\n      this.$store.state.api.backendInteractor.changeEmail(params)\n        .then((res) => {\n          if (res.status === 'success') {\n            this.changedEmail = true\n            this.changeEmailError = false\n          } else {\n            this.changedEmail = false\n            this.changeEmailError = res.error\n          }\n        })\n    },\n    activateTab (tabName) {\n      this.activeTab = tabName\n    },\n    logout () {\n      this.$store.dispatch('logout')\n      this.$router.replace('/')\n    },\n    revokeToken (id) {\n      if (window.confirm(`${this.$i18n.t('settings.revoke_token')}?`)) {\n        this.$store.dispatch('revokeToken', id)\n      }\n    },\n    filterUnblockedUsers (userIds) {\n      return reject(userIds, (userId) => {\n        const relationship = this.$store.getters.relationship(this.userId)\n        return relationship.blocking || userId === this.$store.state.users.currentUser.id\n      })\n    },\n    filterUnMutedUsers (userIds) {\n      return reject(userIds, (userId) => {\n        const relationship = this.$store.getters.relationship(this.userId)\n        return relationship.muting || userId === this.$store.state.users.currentUser.id\n      })\n    },\n    queryUserIds (query) {\n      return this.$store.dispatch('searchUsers', { query })\n        .then((users) => map(users, 'id'))\n    },\n    blockUsers (ids) {\n      return this.$store.dispatch('blockUsers', ids)\n    },\n    unblockUsers (ids) {\n      return this.$store.dispatch('unblockUsers', ids)\n    },\n    muteUsers (ids) {\n      return this.$store.dispatch('muteUsers', ids)\n    },\n    unmuteUsers (ids) {\n      return this.$store.dispatch('unmuteUsers', ids)\n    },\n    unmuteDomains (domains) {\n      return this.$store.dispatch('unmuteDomains', domains)\n    },\n    muteDomain () {\n      return this.$store.dispatch('muteDomain', this.newDomainToMute)\n        .then(() => { this.newDomainToMute = '' })\n    },\n    identity (value) {\n      return value\n    }\n  }\n}\n\nexport default UserSettings\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_settings.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_settings.js\"\nimport __vue_script__ from \"!!babel-loader!./user_settings.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7d87c530\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_settings.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('settings.user_settings'))+\"\\n    \")]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.currentSaveStateNotice)?[(_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.saving_err'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(!_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert transparent\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('settings.saving_ok'))+\"\\n        \")]):_vm._e()]:_vm._e()],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"panel-body profile-edit\"},[_c('tab-switcher',[_c('div',{attrs:{\"label\":_vm.$t('settings.profile_tab')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.name_bio')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.name')))]),_vm._v(\" \"),_c('EmojiInput',{attrs:{\"enable-emoji-picker\":\"\",\"suggest\":_vm.emojiSuggestor},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newName),expression:\"newName\"}],attrs:{\"id\":\"username\",\"classname\":\"name-changer\"},domProps:{\"value\":(_vm.newName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newName=$event.target.value}}})]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.bio')))]),_vm._v(\" \"),_c('EmojiInput',{attrs:{\"enable-emoji-picker\":\"\",\"suggest\":_vm.emojiUserSuggestor},model:{value:(_vm.newBio),callback:function ($$v) {_vm.newBio=$$v},expression:\"newBio\"}},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newBio),expression:\"newBio\"}],attrs:{\"classname\":\"bio\"},domProps:{\"value\":(_vm.newBio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newBio=$event.target.value}}})]),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.newLocked),callback:function ($$v) {_vm.newLocked=$$v},expression:\"newLocked\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.lock_account_description'))+\"\\n            \")])],1),_vm._v(\" \"),_c('div',[_c('label',{attrs:{\"for\":\"default-vis\"}},[_vm._v(_vm._s(_vm.$t('settings.default_vis')))]),_vm._v(\" \"),_c('div',{staticClass:\"visibility-tray\",attrs:{\"id\":\"default-vis\"}},[_c('scope-selector',{attrs:{\"show-all\":true,\"user-default\":_vm.newDefaultScope,\"initial-scope\":_vm.newDefaultScope,\"on-scope-change\":_vm.changeVis}})],1)]),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.newNoRichText),callback:function ($$v) {_vm.newNoRichText=$$v},expression:\"newNoRichText\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.no_rich_text_description'))+\"\\n            \")])],1),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.hideFollows),callback:function ($$v) {_vm.hideFollows=$$v},expression:\"hideFollows\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.hide_follows_description'))+\"\\n            \")])],1),_vm._v(\" \"),_c('p',{staticClass:\"setting-subitem\"},[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideFollows},model:{value:(_vm.hideFollowsCount),callback:function ($$v) {_vm.hideFollowsCount=$$v},expression:\"hideFollowsCount\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.hide_follows_count_description'))+\"\\n            \")])],1),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.hideFollowers),callback:function ($$v) {_vm.hideFollowers=$$v},expression:\"hideFollowers\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.hide_followers_description'))+\"\\n            \")])],1),_vm._v(\" \"),_c('p',{staticClass:\"setting-subitem\"},[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideFollowers},model:{value:(_vm.hideFollowersCount),callback:function ($$v) {_vm.hideFollowersCount=$$v},expression:\"hideFollowersCount\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.hide_followers_count_description'))+\"\\n            \")])],1),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.allowFollowingMove),callback:function ($$v) {_vm.allowFollowingMove=$$v},expression:\"allowFollowingMove\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.allow_following_move'))+\"\\n            \")])],1),_vm._v(\" \"),(_vm.role === 'admin' || _vm.role === 'moderator')?_c('p',[_c('Checkbox',{model:{value:(_vm.showRole),callback:function ($$v) {_vm.showRole=$$v},expression:\"showRole\"}},[(_vm.role === 'admin')?[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.show_admin_badge'))+\"\\n              \")]:_vm._e(),_vm._v(\" \"),(_vm.role === 'moderator')?[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.show_moderator_badge'))+\"\\n              \")]:_vm._e()],2)],1):_vm._e(),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.discoverable),callback:function ($$v) {_vm.discoverable=$$v},expression:\"discoverable\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.discoverable'))+\"\\n            \")])],1),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.newName && _vm.newName.length === 0},on:{\"click\":_vm.updateProfile}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.avatar')))]),_vm._v(\" \"),_c('p',{staticClass:\"visibility-notice\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.avatar_size_instruction'))+\"\\n          \")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_avatar')))]),_vm._v(\" \"),_c('img',{staticClass:\"current-avatar\",attrs:{\"src\":_vm.user.profile_image_url_original}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_avatar')))]),_vm._v(\" \"),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pickAvatarBtnVisible),expression:\"pickAvatarBtnVisible\"}],staticClass:\"btn\",attrs:{\"id\":\"pick-avatar\",\"type\":\"button\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.upload_a_photo'))+\"\\n          \")]),_vm._v(\" \"),_c('image-cropper',{attrs:{\"trigger\":\"#pick-avatar\",\"submit-handler\":_vm.submitAvatar},on:{\"open\":function($event){_vm.pickAvatarBtnVisible=false},\"close\":function($event){_vm.pickAvatarBtnVisible=true}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.profile_banner')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_profile_banner')))]),_vm._v(\" \"),_c('img',{staticClass:\"banner\",attrs:{\"src\":_vm.user.cover_photo}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_profile_banner')))]),_vm._v(\" \"),(_vm.bannerPreview)?_c('img',{staticClass:\"banner\",attrs:{\"src\":_vm.bannerPreview}}):_vm._e(),_vm._v(\" \"),_c('div',[_c('input',{attrs:{\"type\":\"file\"},on:{\"change\":function($event){_vm.uploadFile('banner', $event)}}})]),_vm._v(\" \"),(_vm.bannerUploading)?_c('i',{staticClass:\" icon-spin4 animate-spin uploading\"}):(_vm.bannerPreview)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submitBanner}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(_vm.bannerUploadError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n            Error: \"+_vm._s(_vm.bannerUploadError)+\"\\n            \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){_vm.clearUploadError('banner')}}})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.profile_background')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_profile_background')))]),_vm._v(\" \"),(_vm.backgroundPreview)?_c('img',{staticClass:\"bg\",attrs:{\"src\":_vm.backgroundPreview}}):_vm._e(),_vm._v(\" \"),_c('div',[_c('input',{attrs:{\"type\":\"file\"},on:{\"change\":function($event){_vm.uploadFile('background', $event)}}})]),_vm._v(\" \"),(_vm.backgroundUploading)?_c('i',{staticClass:\" icon-spin4 animate-spin uploading\"}):(_vm.backgroundPreview)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submitBg}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(_vm.backgroundUploadError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n            Error: \"+_vm._s(_vm.backgroundUploadError)+\"\\n            \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){_vm.clearUploadError('background')}}})]):_vm._e()])]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.security_tab')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.change_email')))]),_vm._v(\" \"),_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.new_email')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newEmail),expression:\"newEmail\"}],attrs:{\"type\":\"email\",\"autocomplete\":\"email\"},domProps:{\"value\":(_vm.newEmail)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newEmail=$event.target.value}}})]),_vm._v(\" \"),_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.changeEmailPassword),expression:\"changeEmailPassword\"}],attrs:{\"type\":\"password\",\"autocomplete\":\"current-password\"},domProps:{\"value\":(_vm.changeEmailPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.changeEmailPassword=$event.target.value}}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.changeEmail}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")]),_vm._v(\" \"),(_vm.changedEmail)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.changed_email'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(_vm.changeEmailError !== false)?[_c('p',[_vm._v(_vm._s(_vm.$t('settings.change_email_error')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.changeEmailError))])]:_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.change_password')))]),_vm._v(\" \"),_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.changePasswordInputs[0]),expression:\"changePasswordInputs[0]\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.changePasswordInputs[0])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.changePasswordInputs, 0, $event.target.value)}}})]),_vm._v(\" \"),_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.new_password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.changePasswordInputs[1]),expression:\"changePasswordInputs[1]\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.changePasswordInputs[1])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.changePasswordInputs, 1, $event.target.value)}}})]),_vm._v(\" \"),_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.confirm_new_password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.changePasswordInputs[2]),expression:\"changePasswordInputs[2]\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.changePasswordInputs[2])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.changePasswordInputs, 2, $event.target.value)}}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.changePassword}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")]),_vm._v(\" \"),(_vm.changedPassword)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.changed_password'))+\"\\n          \")]):(_vm.changePasswordError !== false)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.change_password_error'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(_vm.changePasswordError)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.changePasswordError)+\"\\n          \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.oauth_tokens')))]),_vm._v(\" \"),_c('table',{staticClass:\"oauth-tokens\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('settings.app_name')))]),_vm._v(\" \"),_c('th',[_vm._v(_vm._s(_vm.$t('settings.valid_until')))]),_vm._v(\" \"),_c('th')])]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.oauthTokens),function(oauthToken){return _c('tr',{key:oauthToken.id},[_c('td',[_vm._v(_vm._s(oauthToken.appName))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(oauthToken.validUntil))]),_vm._v(\" \"),_c('td',{staticClass:\"actions\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){_vm.revokeToken(oauthToken.id)}}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('settings.revoke_token'))+\"\\n                  \")])])])}),0)])]),_vm._v(\" \"),_c('mfa'),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.delete_account')))]),_vm._v(\" \"),(!_vm.deletingAccount)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.delete_account_description'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(_vm.deletingAccount)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.delete_account_instructions')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('login.password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.deleteAccountConfirmPasswordInput),expression:\"deleteAccountConfirmPasswordInput\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.deleteAccountConfirmPasswordInput)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.deleteAccountConfirmPasswordInput=$event.target.value}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.deleteAccount}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.delete_account'))+\"\\n            \")])]):_vm._e(),_vm._v(\" \"),(_vm.deleteAccountError !== false)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.delete_account_error'))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(_vm.deleteAccountError)?_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.deleteAccountError)+\"\\n          \")]):_vm._e(),_vm._v(\" \"),(!_vm.deletingAccount)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.confirmDelete}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")]):_vm._e()])],1),_vm._v(\" \"),(_vm.pleromaBackend)?_c('div',{attrs:{\"label\":_vm.$t('settings.notifications')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.notification_setting_filters')))]),_vm._v(\" \"),_c('div',{staticClass:\"select-multiple\"},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('settings.notification_setting')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.follows),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"follows\", $$v)},expression:\"notificationSettings.follows\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.notification_setting_follows'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.followers),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"followers\", $$v)},expression:\"notificationSettings.followers\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.notification_setting_followers'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.non_follows),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"non_follows\", $$v)},expression:\"notificationSettings.non_follows\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.notification_setting_non_follows'))+\"\\n                \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.non_followers),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"non_followers\", $$v)},expression:\"notificationSettings.non_followers\"}},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('settings.notification_setting_non_followers'))+\"\\n                \")])],1)])])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.notification_setting_privacy')))]),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.notificationSettings.privacy_option),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"privacy_option\", $$v)},expression:\"notificationSettings.privacy_option\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('settings.notification_setting_privacy_option'))+\"\\n            \")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.notification_mutes')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.notification_blocks')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.updateNotificationSettings}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.submit'))+\"\\n          \")])])]):_vm._e(),_vm._v(\" \"),(_vm.pleromaBackend)?_c('div',{attrs:{\"label\":_vm.$t('settings.data_import_export_tab')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.follow_import')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.import_followers_from_a_csv_file')))]),_vm._v(\" \"),_c('Importer',{attrs:{\"submit-handler\":_vm.importFollows,\"success-message\":_vm.$t('settings.follows_imported'),\"error-message\":_vm.$t('settings.follow_import_error')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.follow_export')))]),_vm._v(\" \"),_c('Exporter',{attrs:{\"get-content\":_vm.getFollowsContent,\"filename\":\"friends.csv\",\"export-button-label\":_vm.$t('settings.follow_export_button')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.block_import')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.import_blocks_from_a_csv_file')))]),_vm._v(\" \"),_c('Importer',{attrs:{\"submit-handler\":_vm.importBlocks,\"success-message\":_vm.$t('settings.blocks_imported'),\"error-message\":_vm.$t('settings.block_import_error')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.block_export')))]),_vm._v(\" \"),_c('Exporter',{attrs:{\"get-content\":_vm.getBlocksContent,\"filename\":\"blocks.csv\",\"export-button-label\":_vm.$t('settings.block_export_button')}})],1)]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.blocks_tab')}},[_c('div',{staticClass:\"profile-edit-usersearch-wrapper\"},[_c('Autosuggest',{attrs:{\"filter\":_vm.filterUnblockedUsers,\"query\":_vm.queryUserIds,\"placeholder\":_vm.$t('settings.search_user_to_block')},scopedSlots:_vm._u([{key:\"default\",fn:function(row){return _c('BlockCard',{attrs:{\"user-id\":row.item}})}}])})],1),_vm._v(\" \"),_c('BlockList',{attrs:{\"refresh\":true,\"get-key\":_vm.identity},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){\nvar selected = ref.selected;\nreturn [_c('div',{staticClass:\"profile-edit-bulk-actions\"},[(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.blockUsers(selected); }}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('user_card.block'))+\"\\n                \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('user_card.block_progress'))+\"\\n                \")])],2):_vm._e(),_vm._v(\" \"),(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.unblockUsers(selected); }}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('user_card.unblock'))+\"\\n                \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('user_card.unblock_progress'))+\"\\n                \")])],2):_vm._e()],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('BlockCard',{attrs:{\"user-id\":item}})]}}])},[_c('template',{slot:\"empty\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('settings.no_blocks'))+\"\\n          \")])],2)],1),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.mutes_tab')}},[_c('tab-switcher',[_c('div',{attrs:{\"label\":\"Users\"}},[_c('div',{staticClass:\"profile-edit-usersearch-wrapper\"},[_c('Autosuggest',{attrs:{\"filter\":_vm.filterUnMutedUsers,\"query\":_vm.queryUserIds,\"placeholder\":_vm.$t('settings.search_user_to_mute')},scopedSlots:_vm._u([{key:\"default\",fn:function(row){return _c('MuteCard',{attrs:{\"user-id\":row.item}})}}])})],1),_vm._v(\" \"),_c('MuteList',{attrs:{\"refresh\":true,\"get-key\":_vm.identity},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){\nvar selected = ref.selected;\nreturn [_c('div',{staticClass:\"profile-edit-bulk-actions\"},[(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.muteUsers(selected); }}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('user_card.mute'))+\"\\n                    \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n                      \"+_vm._s(_vm.$t('user_card.mute_progress'))+\"\\n                    \")])],2):_vm._e(),_vm._v(\" \"),(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.unmuteUsers(selected); }}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('user_card.unmute'))+\"\\n                    \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n                      \"+_vm._s(_vm.$t('user_card.unmute_progress'))+\"\\n                    \")])],2):_vm._e()],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('MuteCard',{attrs:{\"user-id\":item}})]}}])},[_c('template',{slot:\"empty\"},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.no_mutes'))+\"\\n              \")])],2)],1),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.domain_mutes')}},[_c('div',{staticClass:\"profile-edit-domain-mute-form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newDomainToMute),expression:\"newDomainToMute\"}],attrs:{\"placeholder\":_vm.$t('settings.type_domains_to_mute'),\"type\":\"text\"},domProps:{\"value\":(_vm.newDomainToMute)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.muteDomain($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.newDomainToMute=$event.target.value}}}),_vm._v(\" \"),_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":_vm.muteDomain}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('domain_mute_card.mute'))+\"\\n                \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n                  \"+_vm._s(_vm.$t('domain_mute_card.mute_progress'))+\"\\n                \")])],2)],1),_vm._v(\" \"),_c('DomainMuteList',{attrs:{\"refresh\":true,\"get-key\":_vm.identity},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){\nvar selected = ref.selected;\nreturn [_c('div',{staticClass:\"profile-edit-bulk-actions\"},[(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.unmuteDomains(selected); }}},[_vm._v(\"\\n                    \"+_vm._s(_vm.$t('domain_mute_card.unmute'))+\"\\n                    \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n                      \"+_vm._s(_vm.$t('domain_mute_card.unmute_progress'))+\"\\n                    \")])],2):_vm._e()],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DomainMuteCard',{attrs:{\"domain\":item}})]}}])},[_c('template',{slot:\"empty\"},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('settings.no_mutes'))+\"\\n              \")])],2)],1)])],1)])],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport { notificationsFromStore } from '../../services/notification_utils/notification_utils.js'\n\nconst FollowRequestCard = {\n  props: ['user'],\n  components: {\n    BasicUserCard\n  },\n  methods: {\n    findFollowRequestNotificationId () {\n      const notif = notificationsFromStore(this.$store).find(\n        (notif) => notif.from_profile.id === this.user.id && notif.type === 'follow_request'\n      )\n      return notif && notif.id\n    },\n    approveUser () {\n      this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n      this.$store.dispatch('removeFollowRequest', this.user)\n\n      const notifId = this.findFollowRequestNotificationId()\n      this.$store.dispatch('markSingleNotificationAsSeen', { id: notifId })\n      this.$store.dispatch('updateNotification', {\n        id: notifId,\n        updater: notification => {\n          notification.type = 'follow'\n        }\n      })\n    },\n    denyUser () {\n      const notifId = this.findFollowRequestNotificationId()\n      this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n        .then(() => {\n          this.$store.dispatch('dismissNotificationLocal', { id: notifId })\n          this.$store.dispatch('removeFollowRequest', this.user)\n        })\n    }\n  }\n}\n\nexport default FollowRequestCard\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./follow_request_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./follow_request_card.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_request_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1edf2e22\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_request_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","import FollowRequestCard from '../follow_request_card/follow_request_card.vue'\n\nconst FollowRequests = {\n  components: {\n    FollowRequestCard\n  },\n  computed: {\n    requests () {\n      return this.$store.state.api.followRequests\n    }\n  }\n}\n\nexport default FollowRequests\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"follow-request-card-content-container\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.approveUser}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user_card.approve'))+\"\\n    \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.denyUser}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user_card.deny'))+\"\\n    \")])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","/* script */\nexport * from \"!!babel-loader!./follow_requests.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_requests.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9c427644\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_requests.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('nav.friend_requests'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.requests),function(request){return _c('FollowRequestCard',{key:request.id,staticClass:\"list-item\",attrs:{\"user\":request}})}),1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import oauth from '../../services/new_api/oauth.js'\n\nconst oac = {\n  props: ['code'],\n  mounted () {\n    if (this.code) {\n      const { clientId, clientSecret } = this.$store.state.oauth\n\n      oauth.getToken({\n        clientId,\n        clientSecret,\n        instance: this.$store.state.instance.server,\n        code: this.code\n      }).then((result) => {\n        this.$store.commit('setToken', result.access_token)\n        this.$store.dispatch('loginUser', result.access_token)\n        this.$router.push({ name: 'friends' })\n      })\n    }\n  }\n}\n\nexport default oac\n","/* script */\nexport * from \"!!babel-loader!./oauth_callback.js\"\nimport __vue_script__ from \"!!babel-loader!./oauth_callback.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f514124c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./oauth_callback.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',[_vm._v(\"...\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport oauthApi from '../../services/new_api/oauth.js'\n\nconst LoginForm = {\n  data: () => ({\n    user: {},\n    error: false\n  }),\n  computed: {\n    isPasswordAuth () { return this.requiredPassword },\n    isTokenAuth () { return this.requiredToken },\n    ...mapState({\n      registrationOpen: state => state.instance.registrationOpen,\n      instance: state => state.instance,\n      loggingIn: state => state.users.loggingIn,\n      oauth: state => state.oauth\n    }),\n    ...mapGetters(\n      'authFlow', ['requiredPassword', 'requiredToken', 'requiredMFA']\n    )\n  },\n  methods: {\n    ...mapMutations('authFlow', ['requireMFA']),\n    ...mapActions({ login: 'authFlow/login' }),\n    submit () {\n      this.isTokenAuth ? this.submitToken() : this.submitPassword()\n    },\n    submitToken () {\n      const { clientId, clientSecret } = this.oauth\n      const data = {\n        clientId,\n        clientSecret,\n        instance: this.instance.server,\n        commit: this.$store.commit\n      }\n\n      oauthApi.getOrCreateApp(data)\n        .then((app) => { oauthApi.login({ ...app, ...data }) })\n    },\n    submitPassword () {\n      const { clientId } = this.oauth\n      const data = {\n        clientId,\n        oauth: this.oauth,\n        instance: this.instance.server,\n        commit: this.$store.commit\n      }\n      this.error = false\n\n      oauthApi.getOrCreateApp(data).then((app) => {\n        oauthApi.getTokenWithCredentials(\n          {\n            ...app,\n            instance: data.instance,\n            username: this.user.username,\n            password: this.user.password\n          }\n        ).then((result) => {\n          if (result.error) {\n            if (result.error === 'mfa_required') {\n              this.requireMFA({ settings: result })\n            } else if (result.identifier === 'password_reset_required') {\n              this.$router.push({ name: 'password-reset', params: { passwordResetRequested: true } })\n            } else {\n              this.error = result.error\n              this.focusOnPasswordInput()\n            }\n            return\n          }\n          this.login(result).then(() => {\n            this.$router.push({ name: 'friends' })\n          })\n        })\n      })\n    },\n    clearError () { this.error = false },\n    focusOnPasswordInput () {\n      let passwordInput = this.$refs.passwordInput\n      passwordInput.focus()\n      passwordInput.setSelectionRange(0, passwordInput.value.length)\n    }\n  }\n}\n\nexport default LoginForm\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./login_form.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./login_form.js\"\nimport __vue_script__ from \"!!babel-loader!./login_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-38aaa196\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./login_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('login.login'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"login-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[(_vm.isPasswordAuth)?[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"username\"}},[_vm._v(_vm._s(_vm.$t('login.username')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.username),expression:\"user.username\"}],staticClass:\"form-control\",attrs:{\"id\":\"username\",\"disabled\":_vm.loggingIn,\"placeholder\":_vm.$t('login.placeholder')},domProps:{\"value\":(_vm.user.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"username\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(_vm._s(_vm.$t('login.password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],ref:\"passwordInput\",staticClass:\"form-control\",attrs:{\"id\":\"password\",\"disabled\":_vm.loggingIn,\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('router-link',{attrs:{\"to\":{name: 'password-reset'}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('password_reset.forgot_password'))+\"\\n          \")])],1)]:_vm._e(),_vm._v(\" \"),(_vm.isTokenAuth)?_c('div',{staticClass:\"form-group\"},[_c('p',[_vm._v(_vm._s(_vm.$t('login.description')))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"login-bottom\"},[_c('div',[(_vm.registrationOpen)?_c('router-link',{staticClass:\"register\",attrs:{\"to\":{name: 'registration'}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('login.register'))+\"\\n            \")]):_vm._e()],1),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.loggingIn,\"type\":\"submit\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('login.login'))+\"\\n          \")])])])],2)]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n      \"+_vm._s(_vm.error)+\"\\n      \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const verifyOTPCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n  const url = `${instance}/oauth/mfa/challenge`\n  const form = new window.FormData()\n\n  form.append('client_id', clientId)\n  form.append('client_secret', clientSecret)\n  form.append('mfa_token', mfaToken)\n  form.append('code', code)\n  form.append('challenge_type', 'totp')\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n  const url = `${instance}/oauth/mfa/challenge`\n  const form = new window.FormData()\n\n  form.append('client_id', clientId)\n  form.append('client_secret', clientSecret)\n  form.append('mfa_token', mfaToken)\n  form.append('code', code)\n  form.append('challenge_type', 'recovery')\n\n  return window.fetch(url, {\n    method: 'POST',\n    body: form\n  }).then((data) => data.json())\n}\n\nconst mfa = {\n  verifyOTPCode,\n  verifyRecoveryCode\n}\n\nexport default mfa\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\n\nexport default {\n  data: () => ({\n    code: null,\n    error: false\n  }),\n  computed: {\n    ...mapGetters({\n      authSettings: 'authFlow/settings'\n    }),\n    ...mapState({\n      instance: 'instance',\n      oauth: 'oauth'\n    })\n  },\n  methods: {\n    ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']),\n    ...mapActions({ login: 'authFlow/login' }),\n    clearError () { this.error = false },\n    submit () {\n      const { clientId, clientSecret } = this.oauth\n\n      const data = {\n        clientId,\n        clientSecret,\n        instance: this.instance.server,\n        mfaToken: this.authSettings.mfa_token,\n        code: this.code\n      }\n\n      mfaApi.verifyRecoveryCode(data).then((result) => {\n        if (result.error) {\n          this.error = result.error\n          this.code = null\n          return\n        }\n\n        this.login(result).then(() => {\n          this.$router.push({ name: 'friends' })\n        })\n      })\n    }\n  }\n}\n","/* script */\nexport * from \"!!babel-loader!./recovery_form.js\"\nimport __vue_script__ from \"!!babel-loader!./recovery_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-129661d4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./recovery_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('login.heading.recovery'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"login-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"code\"}},[_vm._v(_vm._s(_vm.$t('login.recovery_code')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.code),expression:\"code\"}],staticClass:\"form-control\",attrs:{\"id\":\"code\"},domProps:{\"value\":(_vm.code)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.code=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"login-bottom\"},[_c('div',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.requireTOTP($event)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('login.enter_two_factor_code'))+\"\\n            \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.abortMFA($event)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('general.cancel'))+\"\\n            \")])]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.verify'))+\"\\n          \")])])])])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n      \"+_vm._s(_vm.error)+\"\\n      \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nexport default {\n  data: () => ({\n    code: null,\n    error: false\n  }),\n  computed: {\n    ...mapGetters({\n      authSettings: 'authFlow/settings'\n    }),\n    ...mapState({\n      instance: 'instance',\n      oauth: 'oauth'\n    })\n  },\n  methods: {\n    ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']),\n    ...mapActions({ login: 'authFlow/login' }),\n    clearError () { this.error = false },\n    submit () {\n      const { clientId, clientSecret } = this.oauth\n\n      const data = {\n        clientId,\n        clientSecret,\n        instance: this.instance.server,\n        mfaToken: this.authSettings.mfa_token,\n        code: this.code\n      }\n\n      mfaApi.verifyOTPCode(data).then((result) => {\n        if (result.error) {\n          this.error = result.error\n          this.code = null\n          return\n        }\n\n        this.login(result).then(() => {\n          this.$router.push({ name: 'friends' })\n        })\n      })\n    }\n  }\n}\n","/* script */\nexport * from \"!!babel-loader!./totp_form.js\"\nimport __vue_script__ from \"!!babel-loader!./totp_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b4428228\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./totp_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('login.heading.totp'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"login-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"code\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('login.authentication_code'))+\"\\n        \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.code),expression:\"code\"}],staticClass:\"form-control\",attrs:{\"id\":\"code\"},domProps:{\"value\":(_vm.code)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.code=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"login-bottom\"},[_c('div',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.requireRecovery($event)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('login.enter_recovery_code'))+\"\\n            \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.abortMFA($event)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('general.cancel'))+\"\\n            \")])]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('general.verify'))+\"\\n          \")])])])])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n      \"+_vm._s(_vm.error)+\"\\n      \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import LoginForm from '../login_form/login_form.vue'\nimport MFARecoveryForm from '../mfa_form/recovery_form.vue'\nimport MFATOTPForm from '../mfa_form/totp_form.vue'\nimport { mapGetters } from 'vuex'\n\nconst AuthForm = {\n  name: 'AuthForm',\n  render (createElement) {\n    return createElement('component', { is: this.authForm })\n  },\n  computed: {\n    authForm () {\n      if (this.requiredTOTP) { return 'MFATOTPForm' }\n      if (this.requiredRecovery) { return 'MFARecoveryForm' }\n      return 'LoginForm'\n    },\n    ...mapGetters('authFlow', ['requiredTOTP', 'requiredRecovery'])\n  },\n  components: {\n    MFARecoveryForm,\n    MFATOTPForm,\n    LoginForm\n  }\n}\n\nexport default AuthForm\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst chatPanel = {\n  props: [ 'floating' ],\n  data () {\n    return {\n      currentMessage: '',\n      channel: null,\n      collapsed: true\n    }\n  },\n  computed: {\n    messages () {\n      return this.$store.state.chat.messages\n    }\n  },\n  methods: {\n    submit (message) {\n      this.$store.state.chat.channel.push('new_msg', { text: message }, 10000)\n      this.currentMessage = ''\n    },\n    togglePanel () {\n      this.collapsed = !this.collapsed\n    },\n    userProfileLink (user) {\n      return generateProfileLink(user.id, user.username, this.$store.state.instance.restrictedNicknames)\n    }\n  }\n}\n\nexport default chatPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7ea51572\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.collapsed || !_vm.floating)?_c('div',{staticClass:\"chat-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading timeline-heading\",class:{ 'chat-heading': _vm.floating },on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.togglePanel($event)}}},[_c('div',{staticClass:\"title\"},[_c('span',[_vm._v(_vm._s(_vm.$t('chat.title')))]),_vm._v(\" \"),(_vm.floating)?_c('i',{staticClass:\"icon-cancel\"}):_vm._e()])]),_vm._v(\" \"),_c('div',{directives:[{name:\"chat-scroll\",rawName:\"v-chat-scroll\"}],staticClass:\"chat-window\"},_vm._l((_vm.messages),function(message){return _c('div',{key:message.id,staticClass:\"chat-message\"},[_c('span',{staticClass:\"chat-avatar\"},[_c('img',{attrs:{\"src\":message.author.avatar}})]),_vm._v(\" \"),_c('div',{staticClass:\"chat-content\"},[_c('router-link',{staticClass:\"chat-name\",attrs:{\"to\":_vm.userProfileLink(message.author)}},[_vm._v(\"\\n            \"+_vm._s(message.author.username)+\"\\n          \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"chat-text\"},[_vm._v(\"\\n            \"+_vm._s(message.text)+\"\\n          \")])],1)])}),0),_vm._v(\" \"),_c('div',{staticClass:\"chat-input\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentMessage),expression:\"currentMessage\"}],staticClass:\"chat-input-textarea\",attrs:{\"rows\":\"1\"},domProps:{\"value\":(_vm.currentMessage)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }_vm.submit(_vm.currentMessage)},\"input\":function($event){if($event.target.composing){ return; }_vm.currentMessage=$event.target.value}}})])])]):_c('div',{staticClass:\"chat-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading stub timeline-heading chat-heading\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.togglePanel($event)}}},[_c('div',{staticClass:\"title\"},[_c('i',{staticClass:\"icon-comment-empty\"}),_vm._v(\"\\n        \"+_vm._s(_vm.$t('chat.title'))+\"\\n      \")])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import apiService from '../../services/api/api.service.js'\nimport FollowCard from '../follow_card/follow_card.vue'\n\nconst WhoToFollow = {\n  components: {\n    FollowCard\n  },\n  data () {\n    return {\n      users: []\n    }\n  },\n  mounted () {\n    this.getWhoToFollow()\n  },\n  methods: {\n    showWhoToFollow (reply) {\n      reply.forEach((i, index) => {\n        this.$store.state.api.backendInteractor.fetchUser({ id: i.acct })\n          .then((externalUser) => {\n            if (!externalUser.error) {\n              this.$store.commit('addNewUsers', [externalUser])\n              this.users.push(externalUser)\n            }\n          })\n      })\n    },\n    getWhoToFollow () {\n      const credentials = this.$store.state.users.currentUser.credentials\n      if (credentials) {\n        apiService.suggestions({ credentials: credentials })\n          .then((reply) => {\n            this.showWhoToFollow(reply)\n          })\n      }\n    }\n  }\n}\n\nexport default WhoToFollow\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./who_to_follow.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./who_to_follow.js\"\nimport __vue_script__ from \"!!babel-loader!./who_to_follow.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4f8c3288\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./who_to_follow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('who_to_follow.who_to_follow'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.users),function(user){return _c('FollowCard',{key:user.id,staticClass:\"list-item\",attrs:{\"user\":user}})}),1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const InstanceSpecificPanel = {\n  computed: {\n    instanceSpecificPanelContent () {\n      return this.$store.state.instance.instanceSpecificPanelContent\n    }\n  }\n}\n\nexport default InstanceSpecificPanel\n","/* script */\nexport * from \"!!babel-loader!./instance_specific_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./instance_specific_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5b01187b\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./instance_specific_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"instance-specific-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-body\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.instanceSpecificPanelContent)}})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const FeaturesPanel = {\n  computed: {\n    chat: function () { return this.$store.state.instance.chatAvailable },\n    gopher: function () { return this.$store.state.instance.gopherAvailable },\n    whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled },\n    mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable },\n    minimalScopesMode: function () { return this.$store.state.instance.minimalScopesMode },\n    textlimit: function () { return this.$store.state.instance.textlimit }\n  }\n}\n\nexport default FeaturesPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./features_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./features_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./features_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3443e05c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./features_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"features-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background base04\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('features_panel.title'))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body features-panel\"},[_c('ul',[(_vm.chat)?_c('li',[_vm._v(\"\\n          \"+_vm._s(_vm.$t('features_panel.chat'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.gopher)?_c('li',[_vm._v(\"\\n          \"+_vm._s(_vm.$t('features_panel.gopher'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.whoToFollow)?_c('li',[_vm._v(\"\\n          \"+_vm._s(_vm.$t('features_panel.who_to_follow'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.mediaProxy)?_c('li',[_vm._v(\"\\n          \"+_vm._s(_vm.$t('features_panel.media_proxy'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),_c('li',[_vm._v(_vm._s(_vm.$t('features_panel.scope_options')))]),_vm._v(\" \"),_c('li',[_vm._v(_vm._s(_vm.$t('features_panel.text_limit'))+\" = \"+_vm._s(_vm.textlimit))])])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const TermsOfServicePanel = {\n  computed: {\n    content () {\n      return this.$store.state.instance.tos\n    }\n  }\n}\n\nexport default TermsOfServicePanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./terms_of_service_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./terms_of_service_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./terms_of_service_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-687e38f6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./terms_of_service_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"tos-content\",domProps:{\"innerHTML\":_vm._s(_vm.content)}})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import map from 'lodash/map'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n  components: {\n    BasicUserCard\n  },\n  computed: {\n    staffAccounts () {\n      return map(this.$store.state.instance.staffAccounts, nickname => this.$store.getters.findUser(nickname)).filter(_ => _)\n    }\n  }\n}\n\nexport default StaffPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./staff_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./staff_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./staff_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0a6a2c3a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./staff_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"staff-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t(\"about.staff\"))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.staffAccounts),function(user){return _c('basic-user-card',{key:user.screen_name,attrs:{\"user\":user}})}),1)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState } from 'vuex'\nimport { get } from 'lodash'\n\nconst MRFTransparencyPanel = {\n  computed: {\n    ...mapState({\n      federationPolicy: state => get(state, 'instance.federationPolicy'),\n      mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []),\n      quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []),\n      acceptInstances: state => get(state, 'instance.federationPolicy.mrf_simple.accept', []),\n      rejectInstances: state => get(state, 'instance.federationPolicy.mrf_simple.reject', []),\n      ftlRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),\n      mediaNsfwInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),\n      mediaRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),\n      keywordsFtlRemoval: state => get(state, 'instance.federationPolicy.mrf_keyword.federated_timeline_removal', []),\n      keywordsReject: state => get(state, 'instance.federationPolicy.mrf_keyword.reject', []),\n      keywordsReplace: state => get(state, 'instance.federationPolicy.mrf_keyword.replace', [])\n    }),\n    hasInstanceSpecificPolicies () {\n      return this.quarantineInstances.length ||\n        this.acceptInstances.length ||\n        this.rejectInstances.length ||\n        this.ftlRemovalInstances.length ||\n        this.mediaNsfwInstances.length ||\n        this.mediaRemovalInstances.length\n    },\n    hasKeywordPolicies () {\n      return this.keywordsFtlRemoval.length ||\n        this.keywordsReject.length ||\n        this.keywordsReplace.length\n    }\n  }\n}\n\nexport default MRFTransparencyPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mrf_transparency_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mrf_transparency_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./mrf_transparency_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3de10442\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mrf_transparency_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from '../features_panel/features_panel.vue'\nimport TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'\nimport StaffPanel from '../staff_panel/staff_panel.vue'\nimport MRFTransparencyPanel from '../mrf_transparency_panel/mrf_transparency_panel.vue'\n\nconst About = {\n  components: {\n    InstanceSpecificPanel,\n    FeaturesPanel,\n    TermsOfServicePanel,\n    StaffPanel,\n    MRFTransparencyPanel\n  },\n  computed: {\n    showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n    showInstanceSpecificPanel () {\n      return this.$store.state.instance.showInstanceSpecificPanel &&\n        !this.$store.getters.mergedConfig.hideISP &&\n        this.$store.state.instance.instanceSpecificPanelContent\n    }\n  }\n}\n\nexport default About\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.federationPolicy)?_c('div',{staticClass:\"mrf-transparency-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t(\"about.mrf.federation\"))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"mrf-section\"},[_c('h2',[_vm._v(_vm._s(_vm.$t(\"about.mrf.mrf_policies\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.mrf_policies_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.mrfPolicies),function(policy){return _c('li',{key:policy,domProps:{\"textContent\":_vm._s(policy)}})}),0),_vm._v(\" \"),(_vm.hasInstanceSpecificPolicies)?_c('h2',[_vm._v(\"\\n          \"+_vm._s(_vm.$t(\"about.mrf.simple.simple_policies\"))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.acceptInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.accept\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.accept_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.acceptInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.rejectInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.reject\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.reject_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.rejectInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.quarantineInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.quarantine\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.quarantine_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.quarantineInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.ftlRemovalInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.ftl_removal\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.ftl_removal_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.ftlRemovalInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.mediaNsfwInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_nsfw\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_nsfw_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.mediaNsfwInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.mediaRemovalInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_removal\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_removal_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.mediaRemovalInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.hasKeywordPolicies)?_c('h2',[_vm._v(\"\\n          \"+_vm._s(_vm.$t(\"about.mrf.keyword.keyword_policies\"))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.keywordsFtlRemoval.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.keyword.ftl_removal\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.keywordsFtlRemoval),function(keyword){return _c('li',{key:keyword,domProps:{\"textContent\":_vm._s(keyword)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.keywordsReject.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.keyword.reject\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.keywordsReject),function(keyword){return _c('li',{key:keyword,domProps:{\"textContent\":_vm._s(keyword)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.keywordsReplace.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.keyword.replace\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.keywordsReplace),function(keyword){return _c('li',{key:keyword},[_vm._v(\"\\n              \"+_vm._s(keyword.pattern)+\"\\n              \"+_vm._s(_vm.$t(\"about.mrf.keyword.is_replaced_by\"))+\"\\n              \"+_vm._s(keyword.replacement)+\"\\n            \")])}),0)]):_vm._e()])])])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./about.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./about.js\"\nimport __vue_script__ from \"!!babel-loader!./about.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-acd3d67e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./about.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar\"},[(_vm.showInstanceSpecificPanel)?_c('instance-specific-panel'):_vm._e(),_vm._v(\" \"),_c('staff-panel'),_vm._v(\" \"),_c('terms-of-service-panel'),_vm._v(\" \"),_c('MRFTransparencyPanel'),_vm._v(\" \"),(_vm.showFeaturesPanel)?_c('features-panel'):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const RemoteUserResolver = {\n  data: () => ({\n    error: false\n  }),\n  mounted () {\n    this.redirect()\n  },\n  methods: {\n    redirect () {\n      const acct = this.$route.params.username + '@' + this.$route.params.hostname\n      this.$store.state.api.backendInteractor.fetchUser({ id: acct })\n        .then((externalUser) => {\n          if (externalUser.error) {\n            this.error = true\n          } else {\n            this.$store.commit('addNewUsers', [externalUser])\n            const id = externalUser.id\n            this.$router.replace({\n              name: 'external-user-profile',\n              params: { id }\n            })\n          }\n        })\n        .catch(() => {\n          this.error = true\n        })\n    }\n  }\n}\n\nexport default RemoteUserResolver\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./remote_user_resolver.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./remote_user_resolver.js\"\nimport __vue_script__ from \"!!babel-loader!./remote_user_resolver.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-198402c4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./remote_user_resolver.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('remote_user_resolver.remote_user_resolver'))+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('p',[_vm._v(\"\\n      \"+_vm._s(_vm.$t('remote_user_resolver.searching_for'))+\" @\"+_vm._s(_vm.$route.params.username)+\"@\"+_vm._s(_vm.$route.params.hostname)+\"\\n    \")]),_vm._v(\" \"),(_vm.error)?_c('p',[_vm._v(\"\\n      \"+_vm._s(_vm.$t('remote_user_resolver.error'))+\"\\n    \")]):_vm._e()])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import PublicTimeline from 'components/public_timeline/public_timeline.vue'\nimport PublicAndExternalTimeline from 'components/public_and_external_timeline/public_and_external_timeline.vue'\nimport FriendsTimeline from 'components/friends_timeline/friends_timeline.vue'\nimport TagTimeline from 'components/tag_timeline/tag_timeline.vue'\nimport ConversationPage from 'components/conversation-page/conversation-page.vue'\nimport Interactions from 'components/interactions/interactions.vue'\nimport DMs from 'components/dm_timeline/dm_timeline.vue'\nimport ChatList from 'components/chat_list/chat_list.vue'\nimport Chat from 'components/chat/chat.vue'\nimport UserProfile from 'components/user_profile/user_profile.vue'\nimport Search from 'components/search/search.vue'\nimport Settings from 'components/settings/settings.vue'\nimport Registration from 'components/registration/registration.vue'\nimport PasswordReset from 'components/password_reset/password_reset.vue'\nimport UserSettings from 'components/user_settings/user_settings.vue'\nimport FollowRequests from 'components/follow_requests/follow_requests.vue'\nimport OAuthCallback from 'components/oauth_callback/oauth_callback.vue'\nimport Notifications from 'components/notifications/notifications.vue'\nimport AuthForm from 'components/auth_form/auth_form.js'\nimport ChatPanel from 'components/chat_panel/chat_panel.vue'\nimport WhoToFollow from 'components/who_to_follow/who_to_follow.vue'\nimport About from 'components/about/about.vue'\nimport RemoteUserResolver from 'components/remote_user_resolver/remote_user_resolver.vue'\n\nexport default (store) => {\n  const validateAuthenticatedRoute = (to, from, next) => {\n    if (store.state.users.currentUser) {\n      next()\n    } else {\n      next(store.state.instance.redirectRootNoLogin || '/main/all')\n    }\n  }\n\n  return [\n    { name: 'root',\n      path: '/',\n      redirect: _to => {\n        return (store.state.users.currentUser\n          ? store.state.instance.redirectRootLogin\n          : store.state.instance.redirectRootNoLogin) || '/main/all'\n      }\n    },\n    { name: 'public-external-timeline', path: '/main/all', component: PublicAndExternalTimeline },\n    { name: 'public-timeline', path: '/main/public', component: PublicTimeline },\n    { name: 'friends', path: '/main/friends', component: FriendsTimeline, beforeEnter: validateAuthenticatedRoute },\n    { name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },\n    { name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },\n    { name: 'remote-user-profile-acct',\n      path: '/remote-users/(@?):username([^/@]+)@:hostname([^/@]+)',\n      component: RemoteUserResolver,\n      beforeEnter: validateAuthenticatedRoute\n    },\n    { name: 'remote-user-profile',\n      path: '/remote-users/:hostname/:username',\n      component: RemoteUserResolver,\n      beforeEnter: validateAuthenticatedRoute\n    },\n    { name: 'external-user-profile', path: '/users/:id', component: UserProfile },\n    { name: 'interactions', path: '/users/:username/interactions', component: Interactions, beforeEnter: validateAuthenticatedRoute },\n    { name: 'dms', path: '/users/:username/dms', component: DMs, beforeEnter: validateAuthenticatedRoute },\n    { name: 'chat', path: '/users/:username/chats/:recipient_id', component: Chat, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute },\n    { name: 'chats', path: '/users/:username/chats', component: ChatList, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute },\n    { name: 'settings', path: '/settings', component: Settings },\n    { name: 'registration', path: '/registration', component: Registration },\n    { name: 'password-reset', path: '/password-reset', component: PasswordReset, props: true },\n    { name: 'registration-token', path: '/registration/:token', component: Registration },\n    { name: 'friend-requests', path: '/friend-requests', component: FollowRequests, beforeEnter: validateAuthenticatedRoute },\n    { name: 'user-settings', path: '/user-settings', component: UserSettings, beforeEnter: validateAuthenticatedRoute },\n    { name: 'notifications', path: '/:username/notifications', component: Notifications, beforeEnter: validateAuthenticatedRoute },\n    { name: 'login', path: '/login', component: AuthForm },\n    { name: 'chat', path: '/chat', component: ChatPanel, props: () => ({ floating: false }) },\n    { name: 'oauth-callback', path: '/oauth-callback', component: OAuthCallback, props: (route) => ({ code: route.query.code }) },\n    { name: 'search', path: '/search', component: Search, props: (route) => ({ query: route.query.query }) },\n    { name: 'who-to-follow', path: '/who-to-follow', component: WhoToFollow, beforeEnter: validateAuthenticatedRoute },\n    { name: 'about', path: '/about', component: About },\n    { name: 'user-profile', path: '/(users/)?:name', component: UserProfile }\n  ]\n}\n","import AuthForm from '../auth_form/auth_form.js'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport { mapState } from 'vuex'\n\nconst UserPanel = {\n  computed: {\n    signedIn () { return this.user },\n    ...mapState({ user: state => state.users.currentUser })\n  },\n  components: {\n    AuthForm,\n    PostStatusForm,\n    UserCard\n  }\n}\n\nexport default UserPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./user_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-51c2d26e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-panel\"},[(_vm.signedIn)?_c('div',{key:\"user-panel\",staticClass:\"panel panel-default signed-in\"},[_c('UserCard',{attrs:{\"user-id\":_vm.user.id,\"hide-bio\":true,\"rounded\":\"top\"}}),_vm._v(\" \"),_c('div',{staticClass:\"panel-footer\"},[_c('PostStatusForm')],1)],1):_c('auth-form',{key:\"user-panel\"})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState, mapGetters } from 'vuex'\n\nconst NavPanel = {\n  created () {\n    if (this.currentUser && this.currentUser.locked) {\n      this.$store.dispatch('startFetchingFollowRequests')\n    }\n  },\n  computed: {\n    ...mapState({\n      currentUser: state => state.users.currentUser,\n      chat: state => state.chat.channel,\n      followRequestCount: state => state.api.followRequests.length,\n      privateMode: state => state.instance.private,\n      federating: state => state.instance.federating\n    }),\n    ...mapGetters(['unreadChatCount', 'currentChat'])\n  }\n}\n\nexport default NavPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./nav_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./nav_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./nav_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-37d76594\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./nav_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nav-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('ul',[(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'friends' }}},[_c('i',{staticClass:\"button-icon icon-home-2\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.timeline\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'interactions', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-bell-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.interactions\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'dms', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-mail-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.dms\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'chats', params: { username: _vm.currentUser.screen_name } }}},[(_vm.unreadChatCount(_vm.currentChat))?_c('div',{staticClass:\"alert-dot-number\"},[_vm._v(\"\\n            \"+_vm._s(_vm.unreadChatCount(_vm.currentChat))+\"\\n          \")]):_vm._e(),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-chat\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.chats\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser && _vm.currentUser.locked)?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'friend-requests' }}},[_c('i',{staticClass:\"button-icon icon-user-plus\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.friend_requests\"))+\"\\n          \"),(_vm.followRequestCount > 0)?_c('span',{staticClass:\"badge follow-request-count\"},[_vm._v(\"\\n            \"+_vm._s(_vm.followRequestCount)+\"\\n          \")]):_vm._e()])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser || !_vm.privateMode)?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'public-timeline' }}},[_c('i',{staticClass:\"button-icon icon-users\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.public_tl\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.federating && (_vm.currentUser || !_vm.privateMode))?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'public-external-timeline' }}},[_c('i',{staticClass:\"button-icon icon-globe\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.twkn\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'about' }}},[_c('i',{staticClass:\"button-icon icon-info-circled\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.about\"))+\"\\n        \")])],1)])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const SearchBar = {\n  data: () => ({\n    searchTerm: undefined,\n    hidden: true,\n    error: false,\n    loading: false\n  }),\n  watch: {\n    '$route': function (route) {\n      if (route.name === 'search') {\n        this.searchTerm = route.query.query\n      }\n    }\n  },\n  methods: {\n    find (searchTerm) {\n      this.$router.push({ name: 'search', query: { query: searchTerm } })\n      this.$refs.searchInput.focus()\n    },\n    toggleHidden () {\n      this.hidden = !this.hidden\n      this.$emit('toggled', this.hidden)\n      this.$nextTick(() => {\n        if (!this.hidden) {\n          this.$refs.searchInput.focus()\n        }\n      })\n    }\n  }\n}\n\nexport default SearchBar\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./search_bar.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./search_bar.js\"\nimport __vue_script__ from \"!!babel-loader!./search_bar.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-723d6cec\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./search_bar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"search-bar-container\"},[(_vm.loading)?_c('i',{staticClass:\"icon-spin4 finder-icon animate-spin-slow\"}):_vm._e(),_vm._v(\" \"),(_vm.hidden)?_c('a',{attrs:{\"href\":\"#\",\"title\":_vm.$t('nav.search')}},[_c('i',{staticClass:\"button-icon icon-search\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleHidden($event)}}})]):[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],ref:\"searchInput\",staticClass:\"search-bar-input\",attrs:{\"id\":\"search-bar-input\",\"placeholder\":_vm.$t('nav.search'),\"type\":\"text\"},domProps:{\"value\":(_vm.searchTerm)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }_vm.find(_vm.searchTerm)},\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn search-button\",on:{\"click\":function($event){_vm.find(_vm.searchTerm)}}},[_c('i',{staticClass:\"icon-search\"})]),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleHidden($event)}}})]],2)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import apiService from '../../services/api/api.service.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { shuffle } from 'lodash'\n\nfunction showWhoToFollow (panel, reply) {\n  const shuffled = shuffle(reply)\n\n  panel.usersToFollow.forEach((toFollow, index) => {\n    let user = shuffled[index]\n    let img = user.avatar || '/images/avi.png'\n    let name = user.acct\n\n    toFollow.img = img\n    toFollow.name = name\n\n    panel.$store.state.api.backendInteractor.fetchUser({ id: name })\n      .then((externalUser) => {\n        if (!externalUser.error) {\n          panel.$store.commit('addNewUsers', [externalUser])\n          toFollow.id = externalUser.id\n        }\n      })\n  })\n}\n\nfunction getWhoToFollow (panel) {\n  var credentials = panel.$store.state.users.currentUser.credentials\n  if (credentials) {\n    panel.usersToFollow.forEach(toFollow => {\n      toFollow.name = 'Loading...'\n    })\n    apiService.suggestions({ credentials: credentials })\n      .then((reply) => {\n        showWhoToFollow(panel, reply)\n      })\n  }\n}\n\nconst WhoToFollowPanel = {\n  data: () => ({\n    usersToFollow: new Array(3).fill().map(x => (\n      {\n        img: '/images/avi.png',\n        name: '',\n        id: 0\n      }\n    ))\n  }),\n  computed: {\n    user: function () {\n      return this.$store.state.users.currentUser.screen_name\n    },\n    suggestionsEnabled () {\n      return this.$store.state.instance.suggestionsEnabled\n    }\n  },\n  methods: {\n    userProfileLink (id, name) {\n      return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n    }\n  },\n  watch: {\n    user: function (user, oldUser) {\n      if (this.suggestionsEnabled) {\n        getWhoToFollow(this)\n      }\n    }\n  },\n  mounted:\n    function () {\n      if (this.suggestionsEnabled) {\n        getWhoToFollow(this)\n      }\n    }\n}\n\nexport default WhoToFollowPanel\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./who_to_follow_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./who_to_follow_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./who_to_follow_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b4d31272\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./who_to_follow_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"who-to-follow-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background base04\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('who_to_follow.who_to_follow'))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"who-to-follow\"},[_vm._l((_vm.usersToFollow),function(user){return _c('p',{key:user.id,staticClass:\"who-to-follow-items\"},[_c('img',{attrs:{\"src\":user.img}}),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.userProfileLink(user.id, user.name)}},[_vm._v(\"\\n          \"+_vm._s(user.name)+\"\\n        \")]),_c('br')],1)}),_vm._v(\" \"),_c('p',{staticClass:\"who-to-follow-more\"},[_c('router-link',{attrs:{\"to\":{ name: 'who-to-follow' }}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('who_to_follow.more'))+\"\\n        \")])],1)],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n  <div\n    v-show=\"isOpen\"\n    v-body-scroll-lock=\"isOpen\"\n    class=\"modal-view\"\n    @click.self=\"$emit('backdropClicked')\"\n  >\n    <slot />\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    isOpen: {\n      type: Boolean,\n      default: true\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\">\n.modal-view {\n  z-index: 1000;\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  overflow: auto;\n  animation-duration: 0.2s;\n  background-color: rgba(0, 0, 0, 0.5);\n  animation-name: modal-background-fadein;\n\n  body:not(.scroll-locked) & {\n    opacity: 0;\n  }\n}\n\n@keyframes modal-background-fadein {\n  from {\n    background-color: rgba(0, 0, 0, 0);\n  }\n  to {\n    background-color: rgba(0, 0, 0, 0.5);\n  }\n}\n</style>\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-068d175e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"},{name:\"body-scroll-lock\",rawName:\"v-body-scroll-lock\",value:(_vm.isOpen),expression:\"isOpen\"}],staticClass:\"modal-view\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.$emit('backdropClicked')}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nconst DIRECTION_LEFT = [-1, 0]\nconst DIRECTION_RIGHT = [1, 0]\nconst DIRECTION_UP = [0, -1]\nconst DIRECTION_DOWN = [0, 1]\n\nconst deltaCoord = (oldCoord, newCoord) => [newCoord[0] - oldCoord[0], newCoord[1] - oldCoord[1]]\n\nconst touchEventCoord = e => ([e.touches[0].screenX, e.touches[0].screenY])\n\nconst vectorLength = v => Math.sqrt(v[0] * v[0] + v[1] * v[1])\n\nconst perpendicular = v => [v[1], -v[0]]\n\nconst dotProduct = (v1, v2) => v1[0] * v2[0] + v1[1] * v2[1]\n\nconst project = (v1, v2) => {\n  const scalar = (dotProduct(v1, v2) / dotProduct(v2, v2))\n  return [scalar * v2[0], scalar * v2[1]]\n}\n\n// direction: either use the constants above or an arbitrary 2d vector.\n// threshold: how many Px to move from touch origin before checking if the\n//    callback should be called.\n// divergentTolerance: a scalar for much of divergent direction we tolerate when\n//    above threshold. for example, with 1.0 we only call the callback if\n//    divergent component of delta is < 1.0 * direction component of delta.\nconst swipeGesture = (direction, onSwipe, threshold = 30, perpendicularTolerance = 1.0) => {\n  return {\n    direction,\n    onSwipe,\n    threshold,\n    perpendicularTolerance,\n    _startPos: [0, 0],\n    _swiping: false\n  }\n}\n\nconst beginSwipe = (event, gesture) => {\n  gesture._startPos = touchEventCoord(event)\n  gesture._swiping = true\n}\n\nconst updateSwipe = (event, gesture) => {\n  if (!gesture._swiping) return\n  // movement too small\n  const delta = deltaCoord(gesture._startPos, touchEventCoord(event))\n  if (vectorLength(delta) < gesture.threshold) return\n  // movement is opposite from direction\n  if (dotProduct(delta, gesture.direction) < 0) return\n  // movement perpendicular to direction is too much\n  const towardsDir = project(delta, gesture.direction)\n  const perpendicularDir = perpendicular(gesture.direction)\n  const towardsPerpendicular = project(delta, perpendicularDir)\n  if (\n    vectorLength(towardsDir) * gesture.perpendicularTolerance <\n    vectorLength(towardsPerpendicular)\n  ) return\n\n  gesture.onSwipe()\n  gesture._swiping = false\n}\n\nconst GestureService = {\n  DIRECTION_LEFT,\n  DIRECTION_RIGHT,\n  DIRECTION_UP,\n  DIRECTION_DOWN,\n  swipeGesture,\n  beginSwipe,\n  updateSwipe\n}\n\nexport default GestureService\n","import StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport Modal from '../modal/modal.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport GestureService from '../../services/gesture_service/gesture_service'\n\nconst MediaModal = {\n  components: {\n    StillImage,\n    VideoAttachment,\n    Modal\n  },\n  computed: {\n    showing () {\n      return this.$store.state.mediaViewer.activated\n    },\n    media () {\n      return this.$store.state.mediaViewer.media\n    },\n    currentIndex () {\n      return this.$store.state.mediaViewer.currentIndex\n    },\n    currentMedia () {\n      return this.media[this.currentIndex]\n    },\n    canNavigate () {\n      return this.media.length > 1\n    },\n    type () {\n      return this.currentMedia ? fileTypeService.fileType(this.currentMedia.mimetype) : null\n    }\n  },\n  created () {\n    this.mediaSwipeGestureRight = GestureService.swipeGesture(\n      GestureService.DIRECTION_RIGHT,\n      this.goPrev,\n      50\n    )\n    this.mediaSwipeGestureLeft = GestureService.swipeGesture(\n      GestureService.DIRECTION_LEFT,\n      this.goNext,\n      50\n    )\n  },\n  methods: {\n    mediaTouchStart (e) {\n      GestureService.beginSwipe(e, this.mediaSwipeGestureRight)\n      GestureService.beginSwipe(e, this.mediaSwipeGestureLeft)\n    },\n    mediaTouchMove (e) {\n      GestureService.updateSwipe(e, this.mediaSwipeGestureRight)\n      GestureService.updateSwipe(e, this.mediaSwipeGestureLeft)\n    },\n    hide () {\n      this.$store.dispatch('closeMediaViewer')\n    },\n    goPrev () {\n      if (this.canNavigate) {\n        const prevIndex = this.currentIndex === 0 ? this.media.length - 1 : (this.currentIndex - 1)\n        this.$store.dispatch('setCurrent', this.media[prevIndex])\n      }\n    },\n    goNext () {\n      if (this.canNavigate) {\n        const nextIndex = this.currentIndex === this.media.length - 1 ? 0 : (this.currentIndex + 1)\n        this.$store.dispatch('setCurrent', this.media[nextIndex])\n      }\n    },\n    handleKeyupEvent (e) {\n      if (this.showing && e.keyCode === 27) { // escape\n        this.hide()\n      }\n    },\n    handleKeydownEvent (e) {\n      if (!this.showing) {\n        return\n      }\n\n      if (e.keyCode === 39) { // arrow right\n        this.goNext()\n      } else if (e.keyCode === 37) { // arrow left\n        this.goPrev()\n      }\n    }\n  },\n  mounted () {\n    document.addEventListener('keyup', this.handleKeyupEvent)\n    document.addEventListener('keydown', this.handleKeydownEvent)\n  },\n  destroyed () {\n    document.removeEventListener('keyup', this.handleKeyupEvent)\n    document.removeEventListener('keydown', this.handleKeydownEvent)\n  }\n}\n\nexport default MediaModal\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./media_modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./media_modal.js\"\nimport __vue_script__ from \"!!babel-loader!./media_modal.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c0e28422\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./media_modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showing)?_c('Modal',{staticClass:\"media-modal-view\",on:{\"backdropClicked\":_vm.hide}},[(_vm.type === 'image')?_c('img',{staticClass:\"modal-image\",attrs:{\"src\":_vm.currentMedia.url},on:{\"touchstart\":function($event){$event.stopPropagation();return _vm.mediaTouchStart($event)},\"touchmove\":function($event){$event.stopPropagation();return _vm.mediaTouchMove($event)},\"click\":_vm.hide}}):_vm._e(),_vm._v(\" \"),(_vm.type === 'video')?_c('VideoAttachment',{staticClass:\"modal-image\",attrs:{\"attachment\":_vm.currentMedia,\"controls\":true}}):_vm._e(),_vm._v(\" \"),(_vm.canNavigate)?_c('button',{staticClass:\"modal-view-button-arrow modal-view-button-arrow--prev\",attrs:{\"title\":_vm.$t('media_modal.previous')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.goPrev($event)}}},[_c('i',{staticClass:\"icon-left-open arrow-icon\"})]):_vm._e(),_vm._v(\" \"),(_vm.canNavigate)?_c('button',{staticClass:\"modal-view-button-arrow modal-view-button-arrow--next\",attrs:{\"title\":_vm.$t('media_modal.next')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.goNext($event)}}},[_c('i',{staticClass:\"icon-right-open arrow-icon\"})]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapGetters } from 'vuex'\nimport UserCard from '../user_card/user_card.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\n\nconst SideDrawer = {\n  props: [ 'logout' ],\n  data: () => ({\n    closed: true,\n    closeGesture: undefined\n  }),\n  created () {\n    this.closeGesture = GestureService.swipeGesture(GestureService.DIRECTION_LEFT, this.toggleDrawer)\n\n    if (this.currentUser && this.currentUser.locked) {\n      this.$store.dispatch('startFetchingFollowRequests')\n    }\n  },\n  components: { UserCard },\n  computed: {\n    currentUser () {\n      return this.$store.state.users.currentUser\n    },\n    chat () { return this.$store.state.chat.channel.state === 'joined' },\n    unseenNotifications () {\n      return unseenNotificationsFromStore(this.$store)\n    },\n    unseenNotificationsCount () {\n      return this.unseenNotifications.length\n    },\n    suggestionsEnabled () {\n      return this.$store.state.instance.suggestionsEnabled\n    },\n    logo () {\n      return this.$store.state.instance.logo\n    },\n    hideSitename () {\n      return this.$store.state.instance.hideSitename\n    },\n    sitename () {\n      return this.$store.state.instance.name\n    },\n    followRequestCount () {\n      return this.$store.state.api.followRequests.length\n    },\n    privateMode () {\n      return this.$store.state.instance.private\n    },\n    federating () {\n      return this.$store.state.instance.federating\n    },\n    ...mapGetters(['unreadChatCount', 'currentChat'])\n  },\n  methods: {\n    toggleDrawer () {\n      this.closed = !this.closed\n    },\n    doLogout () {\n      this.logout()\n      this.toggleDrawer()\n    },\n    touchStart (e) {\n      GestureService.beginSwipe(e, this.closeGesture)\n    },\n    touchMove (e) {\n      GestureService.updateSwipe(e, this.closeGesture)\n    }\n  }\n}\n\nexport default SideDrawer\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./side_drawer.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./side_drawer.js\"\nimport __vue_script__ from \"!!babel-loader!./side_drawer.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a264b802\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./side_drawer.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"side-drawer-container\",class:{ 'side-drawer-container-closed': _vm.closed, 'side-drawer-container-open': !_vm.closed }},[_c('div',{staticClass:\"side-drawer-darken\",class:{ 'side-drawer-darken-closed': _vm.closed}}),_vm._v(\" \"),_c('div',{staticClass:\"side-drawer\",class:{'side-drawer-closed': _vm.closed},on:{\"touchstart\":_vm.touchStart,\"touchmove\":_vm.touchMove}},[_c('div',{staticClass:\"side-drawer-heading\",on:{\"click\":_vm.toggleDrawer}},[(_vm.currentUser)?_c('UserCard',{attrs:{\"user-id\":_vm.currentUser.id,\"hide-bio\":true}}):_c('div',{staticClass:\"side-drawer-logo-wrapper\"},[_c('img',{attrs:{\"src\":_vm.logo}}),_vm._v(\" \"),(!_vm.hideSitename)?_c('span',[_vm._v(_vm._s(_vm.sitename))]):_vm._e()])],1),_vm._v(\" \"),_c('ul',[(!_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'login' }}},[_c('i',{staticClass:\"button-icon icon-login\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"login.login\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'dms', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-mail-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.dms\"))+\"\\n        \")]),_vm._v(\" \"),_c('router-link',{staticStyle:{\"position\":\"relative\"},attrs:{\"to\":{ name: 'chats', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-chat\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.chats\"))+\"\\n          \"),(_vm.unreadChatCount(_vm.currentChat))?_c('span',{staticClass:\"alert-dot-number\"},[_vm._v(\"\\n            \"+_vm._s(_vm.unreadChatCount(_vm.currentChat))+\"\\n          \")]):_vm._e()])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'interactions', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-bell-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.interactions\"))+\"\\n        \")])],1):_vm._e()]),_vm._v(\" \"),_c('ul',[(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'friends' }}},[_c('i',{staticClass:\"button-icon icon-home-2\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.timeline\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser && _vm.currentUser.locked)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":\"/friend-requests\"}},[_c('i',{staticClass:\"button-icon icon-user-plus\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.friend_requests\"))+\"\\n          \"),(_vm.followRequestCount > 0)?_c('span',{staticClass:\"badge follow-request-count\"},[_vm._v(\"\\n            \"+_vm._s(_vm.followRequestCount)+\"\\n          \")]):_vm._e()])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser || !_vm.privateMode)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":\"/main/public\"}},[_c('i',{staticClass:\"button-icon icon-users\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.public_tl\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.federating && (_vm.currentUser || !_vm.privateMode))?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":\"/main/all\"}},[_c('i',{staticClass:\"button-icon icon-globe\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.twkn\"))+\"\\n        \")])],1):_vm._e()]),_vm._v(\" \"),_c('ul',[(_vm.currentUser || !_vm.privateMode)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'search' }}},[_c('i',{staticClass:\"button-icon icon-search\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.search\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser && _vm.suggestionsEnabled)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'who-to-follow' }}},[_c('i',{staticClass:\"button-icon icon-user-plus\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.who_to_follow\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'settings' }}},[_c('i',{staticClass:\"button-icon icon-cog\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.settings\"))+\"\\n        \")])],1),_vm._v(\" \"),_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'about'}}},[_c('i',{staticClass:\"button-icon icon-info-circled\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.about\"))+\"\\n        \")])],1),_vm._v(\" \"),(_vm.currentUser && _vm.currentUser.role === 'admin')?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('a',{attrs:{\"href\":\"/pleroma/admin/#/login-pleroma\",\"target\":\"_blank\"}},[_c('i',{staticClass:\"button-icon icon-gauge\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.administration\"))+\"\\n        \")])]):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.doLogout}},[_c('i',{staticClass:\"button-icon icon-logout\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"login.logout\"))+\"\\n        \")])]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"side-drawer-click-outside\",class:{'side-drawer-click-outside-closed': _vm.closed},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleDrawer($event)}}})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { debounce } from 'lodash'\n\nconst HIDDEN_FOR_PAGES = new Set([\n  'chats',\n  'chat'\n])\n\nconst MobilePostStatusButton = {\n  data () {\n    return {\n      hidden: false,\n      scrollingDown: false,\n      inputActive: false,\n      oldScrollPos: 0,\n      amountScrolled: 0\n    }\n  },\n  created () {\n    if (this.autohideFloatingPostButton) {\n      this.activateFloatingPostButtonAutohide()\n    }\n    window.addEventListener('resize', this.handleOSK)\n  },\n  destroyed () {\n    if (this.autohideFloatingPostButton) {\n      this.deactivateFloatingPostButtonAutohide()\n    }\n    window.removeEventListener('resize', this.handleOSK)\n  },\n  computed: {\n    isLoggedIn () {\n      return !!this.$store.state.users.currentUser\n    },\n    isHidden () {\n      if (HIDDEN_FOR_PAGES.has(this.$route.name)) { return true }\n\n      return this.autohideFloatingPostButton && (this.hidden || this.inputActive)\n    },\n    autohideFloatingPostButton () {\n      return !!this.$store.getters.mergedConfig.autohideFloatingPostButton\n    }\n  },\n  watch: {\n    autohideFloatingPostButton: function (isEnabled) {\n      if (isEnabled) {\n        this.activateFloatingPostButtonAutohide()\n      } else {\n        this.deactivateFloatingPostButtonAutohide()\n      }\n    }\n  },\n  methods: {\n    activateFloatingPostButtonAutohide () {\n      window.addEventListener('scroll', this.handleScrollStart)\n      window.addEventListener('scroll', this.handleScrollEnd)\n    },\n    deactivateFloatingPostButtonAutohide () {\n      window.removeEventListener('scroll', this.handleScrollStart)\n      window.removeEventListener('scroll', this.handleScrollEnd)\n    },\n    openPostForm () {\n      this.$store.dispatch('openPostStatusModal')\n    },\n    handleOSK () {\n      // This is a big hack: we're guessing from changed window sizes if the\n      // on-screen keyboard is active or not. This is only really important\n      // for phones in portrait mode and it's more important to show the button\n      // in normal scenarios on all phones, than it is to hide it when the\n      // keyboard is active.\n      // Guesswork based on https://www.mydevice.io/#compare-devices\n\n      // for example, iphone 4 and android phones from the same time period\n      const smallPhone = window.innerWidth < 350\n      const smallPhoneKbOpen = smallPhone && window.innerHeight < 345\n\n      const biggerPhone = !smallPhone && window.innerWidth < 450\n      const biggerPhoneKbOpen = biggerPhone && window.innerHeight < 560\n      if (smallPhoneKbOpen || biggerPhoneKbOpen) {\n        this.inputActive = true\n      } else {\n        this.inputActive = false\n      }\n    },\n    handleScrollStart: debounce(function () {\n      if (window.scrollY > this.oldScrollPos) {\n        this.hidden = true\n      } else {\n        this.hidden = false\n      }\n      this.oldScrollPos = window.scrollY\n    }, 100, { leading: true, trailing: false }),\n\n    handleScrollEnd: debounce(function () {\n      this.hidden = false\n      this.oldScrollPos = window.scrollY\n    }, 100, { leading: false, trailing: true })\n  }\n}\n\nexport default MobilePostStatusButton\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mobile_post_status_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mobile_post_status_button.js\"\nimport __vue_script__ from \"!!babel-loader!./mobile_post_status_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-336b066e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mobile_post_status_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoggedIn)?_c('div',[_c('button',{staticClass:\"new-status-button\",class:{ 'hidden': _vm.isHidden },on:{\"click\":_vm.openPostForm}},[_c('i',{staticClass:\"icon-edit\"})])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import SideDrawer from '../side_drawer/side_drawer.vue'\nimport Notifications from '../notifications/notifications.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\n\nconst MobileNav = {\n  components: {\n    SideDrawer,\n    Notifications\n  },\n  data: () => ({\n    notificationsCloseGesture: undefined,\n    notificationsOpen: false\n  }),\n  created () {\n    this.notificationsCloseGesture = GestureService.swipeGesture(\n      GestureService.DIRECTION_RIGHT,\n      this.closeMobileNotifications,\n      50\n    )\n  },\n  computed: {\n    currentUser () {\n      return this.$store.state.users.currentUser\n    },\n    unseenNotifications () {\n      return unseenNotificationsFromStore(this.$store)\n    },\n    unseenNotificationsCount () {\n      return this.unseenNotifications.length\n    },\n    hideSitename () { return this.$store.state.instance.hideSitename },\n    sitename () { return this.$store.state.instance.name }\n  },\n  methods: {\n    toggleMobileSidebar () {\n      this.$refs.sideDrawer.toggleDrawer()\n    },\n    openMobileNotifications () {\n      this.notificationsOpen = true\n    },\n    closeMobileNotifications () {\n      if (this.notificationsOpen) {\n        // make sure to mark notifs seen only when the notifs were open and not\n        // from close-calls.\n        this.notificationsOpen = false\n        this.markNotificationsAsSeen()\n      }\n    },\n    notificationsTouchStart (e) {\n      GestureService.beginSwipe(e, this.notificationsCloseGesture)\n    },\n    notificationsTouchMove (e) {\n      GestureService.updateSwipe(e, this.notificationsCloseGesture)\n    },\n    scrollToTop () {\n      window.scrollTo(0, 0)\n    },\n    logout () {\n      this.$router.replace('/main/public')\n      this.$store.dispatch('logout')\n    },\n    markNotificationsAsSeen () {\n      this.$refs.notifications.markAsSeen()\n    },\n    onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {\n      if (this.$store.getters.mergedConfig.autoLoad && scrollTop + clientHeight >= scrollHeight) {\n        this.$refs.notifications.fetchOlderNotifications()\n      }\n    }\n  },\n  watch: {\n    $route () {\n      // handles closing notificaitons when you press any router-link on the\n      // notifications.\n      this.closeMobileNotifications()\n    }\n  }\n}\n\nexport default MobileNav\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mobile_nav.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mobile_nav.js\"\nimport __vue_script__ from \"!!babel-loader!./mobile_nav.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3bf546b2\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mobile_nav.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav',{staticClass:\"nav-bar container\",attrs:{\"id\":\"nav\"}},[_c('div',{staticClass:\"mobile-inner-nav\",on:{\"click\":function($event){_vm.scrollToTop()}}},[_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"mobile-nav-button\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.toggleMobileSidebar()}}},[_c('i',{staticClass:\"button-icon icon-menu\"})]),_vm._v(\" \"),(!_vm.hideSitename)?_c('router-link',{staticClass:\"site-name\",attrs:{\"to\":{ name: 'root' },\"active-class\":\"home\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.sitename)+\"\\n        \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"item right\"},[(_vm.currentUser)?_c('a',{staticClass:\"mobile-nav-button\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.openMobileNotifications()}}},[_c('i',{staticClass:\"button-icon icon-bell-alt\"}),_vm._v(\" \"),(_vm.unseenNotificationsCount)?_c('div',{staticClass:\"alert-dot\"}):_vm._e()]):_vm._e()])])]),_vm._v(\" \"),(_vm.currentUser)?_c('div',{staticClass:\"mobile-notifications-drawer\",class:{ 'closed': !_vm.notificationsOpen },on:{\"touchstart\":function($event){$event.stopPropagation();return _vm.notificationsTouchStart($event)},\"touchmove\":function($event){$event.stopPropagation();return _vm.notificationsTouchMove($event)}}},[_c('div',{staticClass:\"mobile-notifications-header\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('notifications.notifications')))]),_vm._v(\" \"),_c('a',{staticClass:\"mobile-nav-button\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.closeMobileNotifications()}}},[_c('i',{staticClass:\"button-icon icon-cancel\"})])]),_vm._v(\" \"),_c('div',{staticClass:\"mobile-notifications\",on:{\"scroll\":_vm.onScroll}},[_c('Notifications',{ref:\"notifications\",attrs:{\"no-heading\":true}})],1)]):_vm._e(),_vm._v(\" \"),_c('SideDrawer',{ref:\"sideDrawer\",attrs:{\"logout\":_vm.logout}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nimport Status from '../status/status.vue'\nimport List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Modal from '../modal/modal.vue'\n\nconst UserReportingModal = {\n  components: {\n    Status,\n    List,\n    Checkbox,\n    Modal\n  },\n  data () {\n    return {\n      comment: '',\n      forward: false,\n      statusIdsToReport: [],\n      processing: false,\n      error: false\n    }\n  },\n  computed: {\n    isLoggedIn () {\n      return !!this.$store.state.users.currentUser\n    },\n    isOpen () {\n      return this.isLoggedIn && this.$store.state.reports.modalActivated\n    },\n    userId () {\n      return this.$store.state.reports.userId\n    },\n    user () {\n      return this.$store.getters.findUser(this.userId)\n    },\n    remoteInstance () {\n      return !this.user.is_local && this.user.screen_name.substr(this.user.screen_name.indexOf('@') + 1)\n    },\n    statuses () {\n      return this.$store.state.reports.statuses\n    }\n  },\n  watch: {\n    userId: 'resetState'\n  },\n  methods: {\n    resetState () {\n      // Reset state\n      this.comment = ''\n      this.forward = false\n      this.statusIdsToReport = []\n      this.processing = false\n      this.error = false\n    },\n    closeModal () {\n      this.$store.dispatch('closeUserReportingModal')\n    },\n    reportUser () {\n      this.processing = true\n      this.error = false\n      const params = {\n        userId: this.userId,\n        comment: this.comment,\n        forward: this.forward,\n        statusIds: this.statusIdsToReport\n      }\n      this.$store.state.api.backendInteractor.reportUser({ ...params })\n        .then(() => {\n          this.processing = false\n          this.resetState()\n          this.closeModal()\n        })\n        .catch(() => {\n          this.processing = false\n          this.error = true\n        })\n    },\n    clearError () {\n      this.error = false\n    },\n    isChecked (statusId) {\n      return this.statusIdsToReport.indexOf(statusId) !== -1\n    },\n    toggleStatus (checked, statusId) {\n      if (checked === this.isChecked(statusId)) {\n        return\n      }\n\n      if (checked) {\n        this.statusIdsToReport.push(statusId)\n      } else {\n        this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(statusId), 1)\n      }\n    },\n    resize (e) {\n      const target = e.target || e\n      if (!(target instanceof window.Element)) { return }\n      // Auto is needed to make textbox shrink when removing lines\n      target.style.height = 'auto'\n      target.style.height = `${target.scrollHeight}px`\n      if (target.value === '') {\n        target.style.height = null\n      }\n    }\n  }\n}\n\nexport default UserReportingModal\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_reporting_modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_reporting_modal.js\"\nimport __vue_script__ from \"!!babel-loader!./user_reporting_modal.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-21174d5d\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_reporting_modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isOpen)?_c('Modal',{on:{\"backdropClicked\":_vm.closeModal}},[_c('div',{staticClass:\"user-reporting-panel panel\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('user_reporting.title', [_vm.user.screen_name]))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"user-reporting-panel-left\"},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('user_reporting.add_comment_description')))]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.comment),expression:\"comment\"}],staticClass:\"form-control\",attrs:{\"placeholder\":_vm.$t('user_reporting.additional_comments'),\"rows\":\"1\"},domProps:{\"value\":(_vm.comment)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.comment=$event.target.value},_vm.resize]}})]),_vm._v(\" \"),(!_vm.user.is_local)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('user_reporting.forward_description')))]),_vm._v(\" \"),_c('Checkbox',{model:{value:(_vm.forward),callback:function ($$v) {_vm.forward=$$v},expression:\"forward\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_reporting.forward_to', [_vm.remoteInstance]))+\"\\n          \")])],1):_vm._e(),_vm._v(\" \"),_c('div',[_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.processing},on:{\"click\":_vm.reportUser}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_reporting.submit'))+\"\\n          \")]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('user_reporting.generic_error'))+\"\\n          \")]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"user-reporting-panel-right\"},[_c('List',{attrs:{\"items\":_vm.statuses},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"status-fadein user-reporting-panel-sitem\"},[_c('Status',{attrs:{\"in-conversation\":false,\"focused\":false,\"statusoid\":item}}),_vm._v(\" \"),_c('Checkbox',{attrs:{\"checked\":_vm.isChecked(item.id)},on:{\"change\":function (checked) { return _vm.toggleStatus(checked, item.id); }}})],1)]}}])})],1)])])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport get from 'lodash/get'\n\nconst PostStatusModal = {\n  components: {\n    PostStatusForm,\n    Modal\n  },\n  data () {\n    return {\n      resettingForm: false\n    }\n  },\n  computed: {\n    isLoggedIn () {\n      return !!this.$store.state.users.currentUser\n    },\n    modalActivated () {\n      return this.$store.state.postStatus.modalActivated\n    },\n    isFormVisible () {\n      return this.isLoggedIn && !this.resettingForm && this.modalActivated\n    },\n    params () {\n      return this.$store.state.postStatus.params || {}\n    }\n  },\n  watch: {\n    params (newVal, oldVal) {\n      if (get(newVal, 'repliedUser.id') !== get(oldVal, 'repliedUser.id')) {\n        this.resettingForm = true\n        this.$nextTick(() => {\n          this.resettingForm = false\n        })\n      }\n    },\n    isFormVisible (val) {\n      if (val) {\n        this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())\n      }\n    }\n  },\n  methods: {\n    closeModal () {\n      this.$store.dispatch('closePostStatusModal')\n    }\n  }\n}\n\nexport default PostStatusModal\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./post_status_modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./post_status_modal.js\"\nimport __vue_script__ from \"!!babel-loader!./post_status_modal.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b6b8d3a2\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./post_status_modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoggedIn && !_vm.resettingForm)?_c('Modal',{staticClass:\"post-form-modal-view\",attrs:{\"is-open\":_vm.modalActivated},on:{\"backdropClicked\":_vm.closeModal}},[_c('div',{staticClass:\"post-form-modal-panel panel\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('post_status.new_status'))+\"\\n    \")]),_vm._v(\" \"),_c('PostStatusForm',_vm._b({staticClass:\"panel-body\",on:{\"posted\":_vm.closeModal}},'PostStatusForm',_vm.params,false))],1)]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nexport const windowWidth = () =>\n  window.innerWidth ||\n  document.documentElement.clientWidth ||\n  document.body.clientWidth\n","import UserPanel from './components/user_panel/user_panel.vue'\nimport NavPanel from './components/nav_panel/nav_panel.vue'\nimport Notifications from './components/notifications/notifications.vue'\nimport SearchBar from './components/search_bar/search_bar.vue'\nimport InstanceSpecificPanel from './components/instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from './components/features_panel/features_panel.vue'\nimport WhoToFollowPanel from './components/who_to_follow_panel/who_to_follow_panel.vue'\nimport ChatPanel from './components/chat_panel/chat_panel.vue'\nimport MediaModal from './components/media_modal/media_modal.vue'\nimport SideDrawer from './components/side_drawer/side_drawer.vue'\nimport MobilePostStatusButton from './components/mobile_post_status_button/mobile_post_status_button.vue'\nimport MobileNav from './components/mobile_nav/mobile_nav.vue'\nimport UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'\nimport PostStatusModal from './components/post_status_modal/post_status_modal.vue'\nimport { windowWidth } from './services/window_utils/window_utils'\n\nexport default {\n  name: 'app',\n  components: {\n    UserPanel,\n    NavPanel,\n    Notifications,\n    SearchBar,\n    InstanceSpecificPanel,\n    FeaturesPanel,\n    WhoToFollowPanel,\n    ChatPanel,\n    MediaModal,\n    SideDrawer,\n    MobilePostStatusButton,\n    MobileNav,\n    UserReportingModal,\n    PostStatusModal\n  },\n  data: () => ({\n    mobileActivePanel: 'timeline',\n    searchBarHidden: true,\n    supportsMask: window.CSS && window.CSS.supports && (\n      window.CSS.supports('mask-size', 'contain') ||\n        window.CSS.supports('-webkit-mask-size', 'contain') ||\n        window.CSS.supports('-moz-mask-size', 'contain') ||\n        window.CSS.supports('-ms-mask-size', 'contain') ||\n        window.CSS.supports('-o-mask-size', 'contain')\n    ),\n    transitionName: 'fade'\n  }),\n  created () {\n    // Load the locale from the storage\n    this.$i18n.locale = this.$store.getters.mergedConfig.interfaceLanguage\n    window.addEventListener('resize', this.updateMobileState)\n  },\n  destroyed () {\n    window.removeEventListener('resize', this.updateMobileState)\n  },\n  computed: {\n    currentUser () { return this.$store.state.users.currentUser },\n    background () {\n      return this.currentUser.background_image || this.$store.state.instance.background\n    },\n    enableMask () { return this.supportsMask && this.$store.state.instance.logoMask },\n    logoStyle () {\n      return {\n        'visibility': this.enableMask ? 'hidden' : 'visible'\n      }\n    },\n    logoMaskStyle () {\n      return this.enableMask ? {\n        'mask-image': `url(${this.$store.state.instance.logo})`\n      } : {\n        'background-color': this.enableMask ? '' : 'transparent'\n      }\n    },\n    logoBgStyle () {\n      return Object.assign({\n        'margin': `${this.$store.state.instance.logoMargin} 0`,\n        opacity: this.searchBarHidden ? 1 : 0\n      }, this.enableMask ? {} : {\n        'background-color': this.enableMask ? '' : 'transparent'\n      })\n    },\n    logo () { return this.$store.state.instance.logo },\n    bgStyle () {\n      return {\n        'background-image': `url(${this.background})`\n      }\n    },\n    bgAppStyle () {\n      return {\n        '--body-background-image': `url(${this.background})`\n      }\n    },\n    sitename () { return this.$store.state.instance.name },\n    chat () { return this.$store.state.chat.channel.state === 'joined' },\n    hideSitename () { return this.$store.state.instance.hideSitename },\n    suggestionsEnabled () { return this.$store.state.instance.suggestionsEnabled },\n    showInstanceSpecificPanel () {\n      return this.$store.state.instance.showInstanceSpecificPanel &&\n        !this.$store.getters.mergedConfig.hideISP &&\n        this.$store.state.instance.instanceSpecificPanelContent\n    },\n    showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n    isMobileLayout () { return this.$store.state.interface.mobileLayout },\n    privateMode () { return this.$store.state.instance.private }\n  },\n  methods: {\n    scrollToTop () {\n      window.scrollTo(0, 0)\n    },\n    logout () {\n      this.$router.replace('/main/public')\n      this.$store.dispatch('logout')\n    },\n    onSearchBarToggled (hidden) {\n      this.searchBarHidden = hidden\n    },\n    updateMobileState () {\n      const mobileLayout = windowWidth() <= 800\n      const changed = mobileLayout !== this.isMobileLayout\n      if (changed) {\n        this.$store.dispatch('setMobileLayout', mobileLayout)\n      }\n    }\n  },\n  watch: {\n    '$route' (to, from) {\n      if ((to.name === 'chat' && from.name === 'chats') || (to.name === 'chats' && from.name === 'chat')) {\n        this.transitionName = 'none'\n      } else {\n        this.transitionName = 'fade'\n      }\n    }\n  }\n}\n","function injectStyle (context) {\n  require(\"!!vue-style-loader!css-loader?minimize!../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./App.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./App.js\"\nimport __vue_script__ from \"!!babel-loader!./App.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-82ef54be\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_render__,\n  __vue_static_render_fns__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:(_vm.bgAppStyle),attrs:{\"id\":\"app\"}},[_c('div',{staticClass:\"app-bg-wrapper\",style:(_vm.bgStyle),attrs:{\"id\":\"app_bg_wrapper\"}}),_vm._v(\" \"),(_vm.isMobileLayout)?_c('MobileNav'):_c('nav',{staticClass:\"nav-bar container\",attrs:{\"id\":\"nav\"},on:{\"click\":function($event){_vm.scrollToTop()}}},[_c('div',{staticClass:\"inner-nav\"},[_c('div',{staticClass:\"logo\",style:(_vm.logoBgStyle)},[_c('div',{staticClass:\"mask\",style:(_vm.logoMaskStyle)}),_vm._v(\" \"),_c('img',{style:(_vm.logoStyle),attrs:{\"src\":_vm.logo}})]),_vm._v(\" \"),_c('div',{staticClass:\"item\"},[(!_vm.hideSitename)?_c('router-link',{staticClass:\"site-name\",attrs:{\"to\":{ name: 'root' },\"active-class\":\"home\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.sitename)+\"\\n        \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"item right\"},[(_vm.currentUser || !_vm.privateMode)?_c('search-bar',{staticClass:\"nav-icon mobile-hidden\",on:{\"toggled\":_vm.onSearchBarToggled},nativeOn:{\"click\":function($event){$event.stopPropagation();}}}):_vm._e(),_vm._v(\" \"),_c('router-link',{staticClass:\"mobile-hidden\",attrs:{\"to\":{ name: 'settings'}}},[_c('i',{staticClass:\"button-icon icon-cog nav-icon\",attrs:{\"title\":_vm.$t('nav.preferences')}})]),_vm._v(\" \"),(_vm.currentUser && _vm.currentUser.role === 'admin')?_c('a',{staticClass:\"mobile-hidden\",attrs:{\"href\":\"/pleroma/admin/#/login-pleroma\",\"target\":\"_blank\"}},[_c('i',{staticClass:\"button-icon icon-gauge nav-icon\",attrs:{\"title\":_vm.$t('nav.administration')}})]):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('a',{staticClass:\"mobile-hidden\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logout($event)}}},[_c('i',{staticClass:\"button-icon icon-logout nav-icon\",attrs:{\"title\":_vm.$t('login.logout')}})]):_vm._e()],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"app-bg-wrapper app-container-wrapper\"}),_vm._v(\" \"),_c('div',{staticClass:\"container underlay\",attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"sidebar-flexer mobile-hidden\"},[_c('div',{staticClass:\"sidebar-bounds\"},[_c('div',{staticClass:\"sidebar-scroller\"},[_c('div',{staticClass:\"sidebar\"},[_c('user-panel'),_vm._v(\" \"),(!_vm.isMobileLayout)?_c('div',[_c('nav-panel'),_vm._v(\" \"),(_vm.showInstanceSpecificPanel)?_c('instance-specific-panel'):_vm._e(),_vm._v(\" \"),(!_vm.currentUser && _vm.showFeaturesPanel)?_c('features-panel'):_vm._e(),_vm._v(\" \"),(_vm.currentUser && _vm.suggestionsEnabled)?_c('who-to-follow-panel'):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('notifications'):_vm._e()],1):_vm._e()],1)])])]),_vm._v(\" \"),_c('div',{staticClass:\"main\"},[(!_vm.currentUser)?_c('div',{staticClass:\"login-hint panel panel-default\"},[_c('router-link',{staticClass:\"panel-body\",attrs:{\"to\":{ name: 'login' }}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t(\"login.hint\"))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),_c('transition',{attrs:{\"name\":_vm.transitionName}},[_c('router-view')],1)],1),_vm._v(\" \"),_c('media-modal')],1),_vm._v(\" \"),(_vm.currentUser && _vm.chat)?_c('chat-panel',{staticClass:\"floating-chat mobile-hidden\",attrs:{\"floating\":true}}):_vm._e(),_vm._v(\" \"),_c('MobilePostStatusButton'),_vm._v(\" \"),_c('UserReportingModal'),_vm._v(\" \"),_c('PostStatusModal'),_vm._v(\" \"),_c('portal-target',{attrs:{\"name\":\"modal\"}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport routes from './routes'\nimport App from '../App.vue'\nimport { windowWidth } from '../services/window_utils/window_utils'\nimport { getOrCreateApp, getClientToken } from '../services/new_api/oauth.js'\nimport backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport { applyTheme } from '../services/style_setter/style_setter.js'\n\nconst getStatusnetConfig = async ({ store }) => {\n  try {\n    const res = await window.fetch('/api/statusnet/config.json')\n    if (res.ok) {\n      const data = await res.json()\n      const { name, closed: registrationClosed, textlimit, uploadlimit, server, vapidPublicKey, safeDMMentionsEnabled } = data.site\n\n      store.dispatch('setInstanceOption', { name: 'name', value: name })\n      store.dispatch('setInstanceOption', { name: 'registrationOpen', value: (registrationClosed === '0') })\n      store.dispatch('setInstanceOption', { name: 'textlimit', value: parseInt(textlimit) })\n      store.dispatch('setInstanceOption', { name: 'server', value: server })\n      store.dispatch('setInstanceOption', { name: 'safeDM', value: safeDMMentionsEnabled !== '0' })\n\n      // TODO: default values for this stuff, added if to not make it break on\n      // my dev config out of the box.\n      if (uploadlimit) {\n        store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadlimit.uploadlimit) })\n        store.dispatch('setInstanceOption', { name: 'avatarlimit', value: parseInt(uploadlimit.avatarlimit) })\n        store.dispatch('setInstanceOption', { name: 'backgroundlimit', value: parseInt(uploadlimit.backgroundlimit) })\n        store.dispatch('setInstanceOption', { name: 'bannerlimit', value: parseInt(uploadlimit.bannerlimit) })\n      }\n\n      if (vapidPublicKey) {\n        store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })\n      }\n\n      return data.site.pleromafe\n    } else {\n      throw (res)\n    }\n  } catch (error) {\n    console.error('Could not load statusnet config, potentially fatal')\n    console.error(error)\n  }\n}\n\nconst getStaticConfig = async () => {\n  try {\n    const res = await window.fetch('/static/config.json')\n    if (res.ok) {\n      return res.json()\n    } else {\n      throw (res)\n    }\n  } catch (error) {\n    console.warn('Failed to load static/config.json, continuing without it.')\n    console.warn(error)\n    return {}\n  }\n}\n\nconst setSettings = async ({ apiConfig, staticConfig, store }) => {\n  const overrides = window.___pleromafe_dev_overrides || {}\n  const env = window.___pleromafe_mode.NODE_ENV\n\n  // This takes static config and overrides properties that are present in apiConfig\n  let config = {}\n  if (overrides.staticConfigPreference && env === 'development') {\n    console.warn('OVERRIDING API CONFIG WITH STATIC CONFIG')\n    config = Object.assign({}, apiConfig, staticConfig)\n  } else {\n    config = Object.assign({}, staticConfig, apiConfig)\n  }\n\n  const copyInstanceOption = (name) => {\n    store.dispatch('setInstanceOption', { name, value: config[name] })\n  }\n\n  copyInstanceOption('nsfwCensorImage')\n  copyInstanceOption('background')\n  copyInstanceOption('hidePostStats')\n  copyInstanceOption('hideUserStats')\n  copyInstanceOption('hideFilteredStatuses')\n  copyInstanceOption('logo')\n\n  store.dispatch('setInstanceOption', {\n    name: 'logoMask',\n    value: typeof config.logoMask === 'undefined'\n      ? true\n      : config.logoMask\n  })\n\n  store.dispatch('setInstanceOption', {\n    name: 'logoMargin',\n    value: typeof config.logoMargin === 'undefined'\n      ? 0\n      : config.logoMargin\n  })\n  store.commit('authFlow/setInitialStrategy', config.loginMethod)\n\n  copyInstanceOption('redirectRootNoLogin')\n  copyInstanceOption('redirectRootLogin')\n  copyInstanceOption('showInstanceSpecificPanel')\n  copyInstanceOption('minimalScopesMode')\n  copyInstanceOption('hideMutedPosts')\n  copyInstanceOption('collapseMessageWithSubject')\n  copyInstanceOption('scopeCopy')\n  copyInstanceOption('subjectLineBehavior')\n  copyInstanceOption('postContentType')\n  copyInstanceOption('alwaysShowSubjectInput')\n  copyInstanceOption('noAttachmentLinks')\n  copyInstanceOption('showFeaturesPanel')\n  copyInstanceOption('hideSitename')\n\n  return store.dispatch('setTheme', config['theme'])\n}\n\nconst getTOS = async ({ store }) => {\n  try {\n    const res = await window.fetch('/static/terms-of-service.html')\n    if (res.ok) {\n      const html = await res.text()\n      store.dispatch('setInstanceOption', { name: 'tos', value: html })\n    } else {\n      throw (res)\n    }\n  } catch (e) {\n    console.warn(\"Can't load TOS\")\n    console.warn(e)\n  }\n}\n\nconst getInstancePanel = async ({ store }) => {\n  try {\n    const res = await window.fetch('/instance/panel.html')\n    if (res.ok) {\n      const html = await res.text()\n      store.dispatch('setInstanceOption', { name: 'instanceSpecificPanelContent', value: html })\n    } else {\n      throw (res)\n    }\n  } catch (e) {\n    console.warn(\"Can't load instance panel\")\n    console.warn(e)\n  }\n}\n\nconst getStickers = async ({ store }) => {\n  try {\n    const res = await window.fetch('/static/stickers.json')\n    if (res.ok) {\n      const values = await res.json()\n      const stickers = (await Promise.all(\n        Object.entries(values).map(async ([name, path]) => {\n          const resPack = await window.fetch(path + 'pack.json')\n          var meta = {}\n          if (resPack.ok) {\n            meta = await resPack.json()\n          }\n          return {\n            pack: name,\n            path,\n            meta\n          }\n        })\n      )).sort((a, b) => {\n        return a.meta.title.localeCompare(b.meta.title)\n      })\n      store.dispatch('setInstanceOption', { name: 'stickers', value: stickers })\n    } else {\n      throw (res)\n    }\n  } catch (e) {\n    console.warn(\"Can't load stickers\")\n    console.warn(e)\n  }\n}\n\nconst getAppSecret = async ({ store }) => {\n  const { state, commit } = store\n  const { oauth, instance } = state\n  return getOrCreateApp({ ...oauth, instance: instance.server, commit })\n    .then((app) => getClientToken({ ...app, instance: instance.server }))\n    .then((token) => {\n      commit('setAppToken', token.access_token)\n      commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n    })\n}\n\nconst resolveStaffAccounts = ({ store, accounts }) => {\n  const nicknames = accounts.map(uri => uri.split('/').pop())\n  nicknames.map(nickname => store.dispatch('fetchUser', nickname))\n  store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })\n}\n\nconst getNodeInfo = async ({ store }) => {\n  try {\n    const res = await window.fetch('/nodeinfo/2.0.json')\n    if (res.ok) {\n      const data = await res.json()\n      const metadata = data.metadata\n      const features = metadata.features\n      store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })\n      store.dispatch('setInstanceOption', { name: 'chatAvailable', value: features.includes('chat') })\n      store.dispatch('setInstanceOption', { name: 'gopherAvailable', value: features.includes('gopher') })\n      store.dispatch('setInstanceOption', { name: 'pollsAvailable', value: features.includes('polls') })\n      store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })\n      store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })\n\n      store.dispatch('setInstanceOption', { name: 'restrictedNicknames', value: metadata.restrictedNicknames })\n      store.dispatch('setInstanceOption', { name: 'postFormats', value: metadata.postFormats })\n\n      const suggestions = metadata.suggestions\n      store.dispatch('setInstanceOption', { name: 'suggestionsEnabled', value: suggestions.enabled })\n      store.dispatch('setInstanceOption', { name: 'suggestionsWeb', value: suggestions.web })\n\n      const software = data.software\n      store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })\n      store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })\n\n      const priv = metadata.private\n      store.dispatch('setInstanceOption', { name: 'private', value: priv })\n\n      const frontendVersion = window.___pleromafe_commit_hash\n      store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })\n\n      const federation = metadata.federation\n\n      store.dispatch('setInstanceOption', {\n        name: 'tagPolicyAvailable',\n        value: typeof federation.mrf_policies === 'undefined'\n          ? false\n          : metadata.federation.mrf_policies.includes('TagPolicy')\n      })\n\n      store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })\n      store.dispatch('setInstanceOption', {\n        name: 'federating',\n        value: typeof federation.enabled === 'undefined'\n          ? true\n          : federation.enabled\n      })\n\n      const accountActivationRequired = metadata.accountActivationRequired\n      store.dispatch('setInstanceOption', { name: 'accountActivationRequired', value: accountActivationRequired })\n\n      const accounts = metadata.staffAccounts\n      resolveStaffAccounts({ store, accounts })\n    } else {\n      throw (res)\n    }\n  } catch (e) {\n    console.warn('Could not load nodeinfo')\n    console.warn(e)\n  }\n}\n\nconst setConfig = async ({ store }) => {\n  // apiConfig, staticConfig\n  const configInfos = await Promise.all([getStatusnetConfig({ store }), getStaticConfig()])\n  const apiConfig = configInfos[0]\n  const staticConfig = configInfos[1]\n\n  await setSettings({ store, apiConfig, staticConfig }).then(getAppSecret({ store }))\n}\n\nconst checkOAuthToken = async ({ store }) => {\n  return new Promise(async (resolve, reject) => {\n    if (store.getters.getUserToken()) {\n      try {\n        await store.dispatch('loginUser', store.getters.getUserToken())\n      } catch (e) {\n        console.error(e)\n      }\n    }\n    resolve()\n  })\n}\n\nconst afterStoreSetup = async ({ store, i18n }) => {\n  const width = windowWidth()\n  store.dispatch('setMobileLayout', width <= 800)\n  await setConfig({ store })\n\n  const { customTheme, customThemeSource } = store.state.config\n  const { theme } = store.state.instance\n  const customThemePresent = customThemeSource || customTheme\n\n  if (customThemePresent) {\n    if (customThemeSource && customThemeSource.themeEngineVersion === CURRENT_VERSION) {\n      applyTheme(customThemeSource)\n    } else {\n      applyTheme(customTheme)\n    }\n  } else if (theme) {\n    // do nothing, it will load asynchronously\n  } else {\n    console.error('Failed to load any theme!')\n  }\n\n  // Now we can try getting the server settings and logging in\n  await Promise.all([\n    checkOAuthToken({ store }),\n    getTOS({ store }),\n    getInstancePanel({ store }),\n    getStickers({ store }),\n    getNodeInfo({ store })\n  ])\n\n  // Start fetching things that don't need to block the UI\n  store.dispatch('fetchMutes')\n\n  const router = new VueRouter({\n    mode: 'history',\n    routes: routes(store),\n    scrollBehavior: (to, _from, savedPosition) => {\n      if (to.matched.some(m => m.meta.dontScroll)) {\n        return false\n      }\n      return savedPosition || { x: 0, y: 0 }\n    }\n  })\n\n  /* eslint-disable no-new */\n  return new Vue({\n    router,\n    store,\n    i18n,\n    el: '#app',\n    render: h => h(App)\n  })\n}\n\nexport default afterStoreSetup\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Vuex from 'vuex'\n\nimport 'custom-event-polyfill'\nimport './lib/event_target_polyfill.js'\n\nimport interfaceModule from './modules/interface.js'\nimport instanceModule from './modules/instance.js'\nimport statusesModule from './modules/statuses.js'\nimport usersModule from './modules/users.js'\nimport apiModule from './modules/api.js'\nimport configModule from './modules/config.js'\nimport chatModule from './modules/chat.js'\nimport oauthModule from './modules/oauth.js'\nimport authFlowModule from './modules/auth_flow.js'\nimport mediaViewerModule from './modules/media_viewer.js'\nimport oauthTokensModule from './modules/oauth_tokens.js'\nimport reportsModule from './modules/reports.js'\nimport pollsModule from './modules/polls.js'\nimport postStatusModule from './modules/postStatus.js'\nimport chatsModule from './modules/chats.js'\n\nimport VueI18n from 'vue-i18n'\n\nimport createPersistedState from './lib/persisted_state.js'\nimport pushNotifications from './lib/push_notifications_plugin.js'\n\nimport messages from './i18n/messages.js'\n\nimport VueChatScroll from 'vue-chat-scroll'\nimport VueClickOutside from 'v-click-outside'\nimport PortalVue from 'portal-vue'\nimport VBodyScrollLock from './directives/body_scroll_lock'\n\nimport afterStoreSetup from './boot/after_store.js'\n\nconst currentLocale = (window.navigator.language || 'en').split('-')[0]\n\nVue.use(Vuex)\nVue.use(VueRouter)\nVue.use(VueI18n)\nVue.use(VueChatScroll)\nVue.use(VueClickOutside)\nVue.use(PortalVue)\nVue.use(VBodyScrollLock)\n\nconst i18n = new VueI18n({\n  // By default, use the browser locale, we will update it if neccessary\n  locale: currentLocale,\n  fallbackLocale: 'en',\n  messages\n})\n\nconst persistedStateOptions = {\n  paths: [\n    'config',\n    'users.lastLoginName',\n    'oauth'\n  ]\n};\n\n(async () => {\n  const persistedState = await createPersistedState(persistedStateOptions)\n  const store = new Vuex.Store({\n    modules: {\n      i18n: {\n        getters: {\n          i18n: () => i18n\n        }\n      },\n      interface: interfaceModule,\n      instance: instanceModule,\n      statuses: statusesModule,\n      users: usersModule,\n      api: apiModule,\n      config: configModule,\n      chat: chatModule,\n      oauth: oauthModule,\n      authFlow: authFlowModule,\n      mediaViewer: mediaViewerModule,\n      oauthTokens: oauthTokensModule,\n      reports: reportsModule,\n      polls: pollsModule,\n      postStatus: postStatusModule,\n      chats: chatsModule\n    },\n    plugins: [persistedState, pushNotifications],\n    strict: false // Socket modifies itself, let's ignore this for now.\n    // strict: process.env.NODE_ENV !== 'production'\n  })\n\n  afterStoreSetup({ store, i18n })\n})()\n\n// These are inlined by webpack's DefinePlugin\n/* eslint-disable */\nwindow.___pleromafe_mode = process.env\nwindow.___pleromafe_commit_hash = COMMIT_HASH\nwindow.___pleromafe_dev_overrides = DEV_OVERRIDES\n"],"sourceRoot":""}