summaryrefslogtreecommitdiff
path: root/priv/static/static/js/app.e63654e5ca9fff82f59d.js.map
blob: e7050519be0e8c1fdd4dcaf15f0a6d97c8af17ef (plain)
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/errors/errors.js","webpack:///./src/modules/errors.js","webpack:///./src/services/api/api.service.js","webpack:///./src/services/user_profile_link_generator/user_profile_link_generator.js","webpack:///src/components/checkbox/checkbox.vue","webpack:///./src/components/checkbox/checkbox.vue","webpack:///./src/components/checkbox/checkbox.vue?9bd9","webpack:///./src/services/file_type/file_type.service.js","webpack:///./src/components/dialog_modal/dialog_modal.js","webpack:///./src/components/dialog_modal/dialog_modal.vue","webpack:///./src/components/dialog_modal/dialog_modal.vue?f85c","webpack:///./src/components/moderation_tools/moderation_tools.js","webpack:///./src/components/moderation_tools/moderation_tools.vue","webpack:///./src/components/moderation_tools/moderation_tools.vue?4e89","webpack:///./src/components/account_actions/account_actions.js","webpack:///./src/components/account_actions/account_actions.vue","webpack:///./src/components/account_actions/account_actions.vue?db6f","webpack:///./src/components/user_card/user_card.js","webpack:///./src/components/user_card/user_card.vue","webpack:///./src/components/user_card/user_card.vue?4ba5","webpack:///./src/components/attachment/attachment.js","webpack:///./src/components/attachment/attachment.vue","webpack:///./src/components/attachment/attachment.vue?ea04","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/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/poll/poll.js","webpack:///./src/components/poll/poll.vue","webpack:///./src/components/poll/poll.vue?f7e7","webpack:///./src/components/extra_buttons/extra_buttons.js","webpack:///./src/components/extra_buttons/extra_buttons.vue","webpack:///./src/components/extra_buttons/extra_buttons.vue?6035","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/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/status_popover/status_popover.js","webpack:///./src/components/status_popover/status_popover.vue","webpack:///./src/components/status_popover/status_popover.vue?495f","webpack:///./src/components/status/status.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/status.vue","webpack:///./src/components/status/status.vue?a54f","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/services/date_utils/date_utils.js","webpack:///./src/services/user_highlighter/user_highlighter.js","webpack:///./src/components/tab_switcher/tab_switcher.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?29d8","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/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?0ba5","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?ccb9","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/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/video_attachment/video_attachment.js","webpack:///./src/components/video_attachment/video_attachment.vue","webpack:///./src/components/video_attachment/video_attachment.vue?695e","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/attachment/attachment.vue?4fa7","webpack:///./src/components/attachment/attachment.vue?5971","webpack:///./src/components/still-image/still-image.vue?21db","webpack:///./src/components/still-image/still-image.vue?da13","webpack:///./src/components/favorite_button/favorite_button.vue?0184","webpack:///./src/components/favorite_button/favorite_button.vue?9b9b","webpack:///./src/components/retweet_button/retweet_button.vue?8eee","webpack:///./src/components/retweet_button/retweet_button.vue?ecd9","webpack:///./src/components/poll/poll.vue?7318","webpack:///./src/components/poll/poll.vue?192f","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/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/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/avatar_list/avatar_list.vue?83d0","webpack:///./src/components/avatar_list/avatar_list.vue?4546","webpack:///./src/components/status_popover/status_popover.vue?91c2","webpack:///./src/components/status_popover/status_popover.vue?2f11","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/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/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/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.vue?40c0","webpack:///./src/components/color_input/color_input.vue?7583","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/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/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/modules/interface.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/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?aa4d","webpack:///./src/services/notification_utils/notification_utils.js","webpack:///./src/components/notifications/notifications.js","webpack:///./src/components/notifications/notifications.vue","webpack:///./src/components/notifications/notifications.vue?c039","webpack:///./src/components/interactions/interactions.js","webpack:///./src/components/interactions/interactions.vue","webpack:///./src/components/interactions/interactions.vue?96e9","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/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?8a94","webpack:///./src/components/follow_card/follow_card.js","webpack:///./src/components/follow_card/follow_card.vue","webpack:///./src/components/follow_card/follow_card.vue?3a80","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/user_profile/user_profile.js","webpack:///./src/components/user_profile/user_profile.vue","webpack:///./src/components/user_profile/user_profile.vue?326a","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?97d1","webpack:///./src/components/range_input/range_input.vue","webpack:///src/components/range_input/range_input.vue","webpack:///./src/components/range_input/range_input.vue?47de","webpack:///./src/components/opacity_input/opacity_input.vue","webpack:///src/components/opacity_input/opacity_input.vue","webpack:///./src/components/opacity_input/opacity_input.vue?c066","webpack:///./src/components/shadow_control/shadow_control.js","webpack:///./src/components/shadow_control/shadow_control.vue","webpack:///./src/components/shadow_control/shadow_control.vue?d7e2","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?11d2","webpack:///./src/components/style_switcher/preview.vue","webpack:///./src/components/style_switcher/preview.vue?006a","webpack:///src/components/export_import/export_import.vue","webpack:///./src/components/export_import/export_import.vue","webpack:///./src/components/export_import/export_import.vue?42a3","webpack:///./src/components/style_switcher/style_switcher.js","webpack:///./src/components/style_switcher/style_switcher.vue","webpack:///./src/components/style_switcher/style_switcher.vue?dfe6","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?1640","webpack:///./src/components/registration/registration.js","webpack:///./src/components/registration/registration.vue","webpack:///./src/components/registration/registration.vue?bec2","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/selectable_list/selectable_list.js","webpack:///./src/components/selectable_list/selectable_list.vue","webpack:///./src/components/selectable_list/selectable_list.vue?7396","webpack:///./src/components/autosuggest/autosuggest.js","webpack:///./src/components/autosuggest/autosuggest.vue","webpack:///./src/components/autosuggest/autosuggest.vue?9554","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?1f75","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?fa7e","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?f6da","webpack:///./src/components/nav_panel/nav_panel.js","webpack:///./src/components/nav_panel/nav_panel.vue","webpack:///./src/components/nav_panel/nav_panel.vue?db68","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?2f60","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?4ddf","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_1___default","_r","_map2","lodash_map__WEBPACK_IMPORTED_MODULE_2___default","val","Math","ceil","_map3","_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default","concat","toString","srgbToLinear","srgb","split","reduce","acc","bit","pow","c2linear","relativeLuminance","_srgbToLinear","getContrastRatio","a","la","lb","_ref","_ref2","alphaBlend","fg","fga","bg","hex2rgb","hex","exec","parseInt","mixrgb","keys","k","parseUser","output","masto","mastoShort","id","String","screen_name","acct","statusnet_profile_url","url","display_name","name_html","addEmojis","emojis","description","note","description_html","fields","fields_html","map","field","profile_image_url","avatar","profile_image_url_original","cover_photo","header","friends_count","following_count","bot","pleroma","relationship","background_image","token","chat_token","follows_you","followed_by","requested","following","statusnet_blocking","blocking","muted","muting","showing_reblogs","subscribed","subscribing","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","created_at","Date","locked","followers_count","statuses_count","friendIds","followerIds","pinnedStatusIds","follow_request_count","tags","deactivated","notification_settings","parseAttachment","mimetype","mime_type","meta","string","matchOperatorsRegex","emoji","regexSafeShortCode","shortcode","replace","RegExp","parseStatus","status","favorited","favourited","fave_num","favourites_count","repeated","reblogged","repeat_num","reblogs_count","reblog","nsfw","sensitive","statusnet_html","content","text","summary","spoiler_text","statusnet_conversation_id","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","thread_muted","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","parseNotification","favourite","seen","is_seen","action","from_profile","parsedNotice","notice","ntype","Boolean","favorited_status","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","ap_id","username","entries","errs","slicedToArray_default","capitalize_default","join","toConsumableArray_default","inherits_default","wrapNativeSuper_default","PERMISSION_GROUP_URL","screenName","right","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","oldfetch","fetch","fullUrl","credentials","promisedRequest","method","params","payload","_ref$headers","headers","_objectSpread","Accept","Content-Type","_ref3","encodeURIComponent","authHeaders","then","json","ok","accessToken","Authorization","fetchFriends","_ref22","maxId","sinceId","_ref22$limit","limit","MASTODON_FOLLOWING_URL","args","filter","_","apiService","verifyCredentials","fetchTimeline","_ref35","timeline","_ref35$since","since","_ref35$until","until","_ref35$userId","userId","_ref35$tag","_ref35$withMuted","withMuted","isNotifications","public","friends","dms","notifications","publicAndExternal","media","favorites","queryString","map_default","param","statusText","fetchPinnedStatuses","_ref36","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","_ref37","unfavorite","_ref38","retweet","_ref39","unretweet","_ref40","postStatus","_ref41","spoilerText","_ref41$mediaIds","mediaIds","inReplyToStatusId","contentType","FormData","pollOptions","append","forEach","some","option","normalizedPoll","expires_in","expiresIn","multiple","deleteStatus","_ref42","MASTODON_DELETE_URL","uploadMedia","_ref43","formData","fetchMutes","_ref54","muteUser","_ref55","unmuteUser","_ref56","subscribeUser","_ref57","unsubscribeUser","_ref58","fetchBlocks","_ref59","fetchOAuthTokens","_ref60","revokeOAuthToken","_ref61","tagUser","_ref29","nicknames","untagUser","_ref30","deleteUser","_ref34","addRight","_ref31","deleteRight","_ref32","setActivationStatus","_ref33","ACTIVATION_STATUS_URL","register","_ref9","nickname","rest","locale","agreement","getCaptcha","resp","updateAvatar","_ref5","updateBg","_ref6","background","updateProfile","_ref8","updateBanner","_ref7","banner","importBlocks","_ref44","file","importFollows","_ref45","deleteAccount","_ref46","password","changeEmail","_ref47","email","changePassword","_ref48","newPassword","newPasswordConfirmation","settingsMFA","_ref49","mfaDisableOTP","_ref50","generateMfaBackupCodes","_ref53","mfaSetupOTP","_ref52","mfaConfirmOTP","_ref51","fetchFollowRequests","_ref25","approveUser","_ref18","MASTODON_APPROVE_USER_URL","denyUser","_ref19","MASTODON_DENY_USER_URL","suggestions","_ref62","markNotificationsAsSeen","_ref63","vote","_ref64","pollId","choices","fetchPoll","_ref65","fetchFavoritedByUsers","_ref66","fetchRebloggedByUsers","_ref67","reportUser","_ref68","statusIds","comment","forward","account_id","status_ids","updateNotificationSettings","_ref4","settings","each_default","search2","_ref70","q","offset","accounts","u","statuses","searchUsers","_ref69","query","isExternal","generateProfileLink","restrictedNicknames","complicated","lodash_includes__WEBPACK_IMPORTED_MODULE_0___default","__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","__webpack_exports__","fileType","fileTypeService","fileMatchesSomeType","types","DialogModal","darkOverlay","onCancel","Function","dialog_modal_dialog_modal","dialog_modal","dark-overlay","click","currentTarget","stopPropagation","ModerationTools","showDropDown","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","components","computed","tagsSet","Set","hasTagPolicy","$store","state","instance","tagPolicyAvailable","methods","hasTag","tagName","has","toggleTag","store","api","backendInteractor","commit","toggleRight","_this2","toggleActivationStatus","_this3","deleteUserDialog","show","_this4","dispatch","isProfile","$route","isTargetUser","history","back","moderation_tools_vue_styles_","moderation_tools_moderation_tools","moderation_tools","trigger","placement","hide","slot","_s","$t","menu-checkbox-checked","pressed","to","on-cancel","AccountActions","ProgressButton","showRepeats","hideRepeats","account_actions_vue_styles_","account_actions_account_actions","account_actions","container","user_card","followRequestInProgress","betterShadow","browserSupport","cssFilter","created","classes","user-card-rounded-t","rounded","user-card-rounded","user-card-bordered","bordered","style","color","getters","mergedConfig","customTheme","colors","rgb","tintColor","floor","backgroundColor","backgroundImage","isOtherUser","currentUser","subscribeUrl","serverUrl","URL","protocol","host","loggedIn","dailyAvg","days","round","userHighlightType","highlight","set","mapGetters","userHighlightColor","visibleRole","validRole","roleTitle","hideFollowsCount","hideFollowersCount","UserAvatar","RemoteFollow","FollowButton","setProfileView","v","switcher","linkClicked","parentNode","open","href","userProfileLink","zoomAvatar","attachment","mentionUser","replyTo","repliedUser","user_card_vue_styles_","user_card_Component","hide-bio","hideBio","better-shadow","_m","title","innerHTML","hideUserStats","directives","rawName","expression","input","composing","for","$$selectedVal","Array","selected","_value","preventDefault","Attachment","nsfwImage","nsfwCensorImage","hideNsfwLocal","hideNsfw","preloadImage","loading","img","modalOpen","showHidden","StillImage","VideoAttachment","usePlaceHolder","size","referrerpolicy","mediaProxyAvailable","hidden","isEmpty","oembed","isSmall","fullwidth","openModal","modalTypes","playVideosInModal","setMedia","toggleHidden","useOneClickNsfw","onImageLoad","image","width","naturalWidth","height","naturalHeight","naturalSizeLoad","attachment_attachment","_obj","toUpperCase","small","large_thumb_url","image-load-handler","allowPlay","controls","thumb_url","oembedHTML","FavoriteButton","animated","icon-star-empty","icon-star","animate-spin","favorite_button_vue_styles_","favorite_button_favorite_button","favorite_button","hidePostStats","RetweetButton","retweet_button_objectSpread","retweeted","retweeted-empty","retweet_button_vue_styles_","retweet_button_retweet_button","retweet_button","Timeago","polls","pollsObject","basePoll","destroyed","expiresAt","expires_at","expired","showResults","voted","totalVotesCount","votes_count","containerClass","choiceIndices","entry","index","isDisabled","noChoice","percentageForOption","count","resultTitle","statusId","activateOption","allElements","$el","querySelectorAll","clickedElement","querySelector","forEach_default","element","optionId","poll_vue_styles_","poll_poll","_l","path","time","auto-update","now-threshold","ExtraButtons","confirm","pinStatus","unpinStatus","canDelete","ownStatus","canPin","canMute","extra_buttons_vue_styles_","extra_buttons_extra_buttons","extra_buttons","Gallery","sizes","rows","chunk_default","lastAttachment","allButLastRow","dropRight_default","useContainFit","onNaturalSizeLoad","$set","rowStyle","itemsPerRow","padding-bottom","itemStyle","row","total","sumBy_default","item","getAspectRatio","flex","gallery_vue_styles_","gallery_gallery","gallery","ref","staticStyle","contain-fit","cover-fit","set-media","allow-play","natural-size-load","LinkPreview","imageLoaded","useImage","useDescription","test","newImg","Image","link_preview_vue_styles_","link_preview_link_preview","link_preview","rel","small-image","provider_name","AvatarList","slicedUsers","avatar_list_vue_styles_","avatar_list_avatar_list","avatar_list","StatusPopover","popperOptions","modifiers","preventOverflow","padding","top","boundariesElement","find_default","allStatuses","Status","enter","status_popover_vue_styles_","status_popover_status_popover","status_popover","popover-class","popper-options","is-preview","statusoid","compact","replying","unmuted","userExpanded","showingTall","inConversation","focused","showingLongSubject","expandingSubject","collapseMessageWithSubject","status_objectSpread","localCollapseSubjectDefault","muteWords","repeaterClass","highlightClass","userClass","deleted","repeaterStyle","highlightStyle","userStyle","noHeading","hideAttachments","hideAttachmentsInConv","generateUserProfileLink","replyProfileLink","isReply","replyToName","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","allStatusesObject","muteWordHits","toLowerCase","statusSummary","filter_default","muteWord","inProfile","profileUserId","hideFilteredStatuses","hideStatus","hideReply","isFocused","tallStatus","longSubject","findUser","replyVisibility","checkFollowing","taggedUser","hideSubjectStatus","hideTallStatus","showingMore","nsfwClickthrough","replySubject","decodedSummary","unescape_default","behavior","subjectLineBehavior","startsWithRe","attachmentSize","maxThumbnails","galleryTypes","galleryAttachments","nonGalleryAttachments","postBodyHtml","html","greentext","processor","handledTags","openCloseTags","buffer","level","textBuffer","tagBuffer","flush","trim","handleBr","handleOpen","handleClose","pop","char","tagFull","processHtml","startsWith","contentHtml","combinedFavsAndRepeatsUsers","combinedUsers","uniqBy_default","tagObj","mapState","PostStatusForm","Poll","UserCard","visibilityIcon","showError","clearError","closest","className","attn","find","attention","_attention$screen_nam","_attention$screen_nam2","namepart","instancepart","matchstring","mentionMatchesUrl","link","$router","generateTagLink","toggleReplying","gotoOriginal","toggleExpanded","toggleMute","toggleUserExpanded","toggleShowMore","watch","rect","getBoundingClientRect","scrollBy","innerHeight","bottom","status.repeat_num","num","status.fave_num","filters","capitalize","str","charAt","status_vue_styles_","status_Component","status_status","status-el_focused","status-conversation","inlineExpanded","isPreview","highlighted","is-retweet","data-tags","nativeOn","!click","_f","expandable","status-id","aria-label","replies","reply","tall-status","tall-status-hider_focused","base-poll","button-icon-active","logged-in","onError","onSuccess","reply-to","replied-user","copy-message-scope","subject","posted","showPlaceholder","imgSrc","imageLoadError","user_avatar","avatar-compact","alt","image-load-error","MINUTE","HOUR","DAY","relativeTime","relativeTimeShort","WEEK","MONTH","YEAR","date","nowThreshold","arguments","now","abs","_color_convert_color_convert_js__WEBPACK_IMPORTED_MODULE_0__","prefs","solidColor","tintColor2","backgroundPosition","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","label","contents","mediaUpload","uploading","uploadReady","uploadFile","self","uploadlimit","filesize","fileSizeFormatService","fileSizeFormat","allowedsize","filesizeunit","unit","allowedsizeunit","statusPosterService","fileData","fileDrop","dataTransfer","files","fileDrag","contains","dropEffect","clearFile","$nextTick","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","focus","addOption","deleteOption","amount","DateUtils","expiryAmountChange","max","min","updatePollToParent","uniq_default","poll_form_vue_styles_","poll_poll_form","placeholder","maxlength","keydown","_k","keyCode","MediaUpload","EmojiInput","PollForm","ScopeSelector","Checkbox","mounted","resize","$refs","textarea","textLength","setSelectionRange","scopeCopy","_ref$attentions","allAttentions","unshift","reject_default","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","hideScopeNotice","pollContentError","statusPoster","clearPollForm","el","addMediaFile","fileInfo","enableSubmit","removeMediaFile","indexOf","uploadFailed","errString","templateArgs","disableSubmit","paste","clipboardData","onEmojiInputInput","Element","formRef","bottomRef","bottomBottomPaddingStr","getComputedStyle","bottomBottomPadding","Number","substring","scrollerRef","topPaddingStr","bottomPaddingStr","vertPadding","currentScroll","scrollY","scrollTop","scrollerHeight","offsetHeight","scrollerBottomBorder","newHeight","scrollHeight","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","enable-emoji-picker","suggest","callback","$$v","hide-emoji-button","enable-sticker-picker","sticker-uploaded","sticker-upload-failed","metaKey","keyup","ctrlKey","compositionupdate","show-all","user-default","original-scope","initial-scope","on-scope-change","postFormat","visible","update-poll","drop-files","uploaded","upload-failed","progress_button","progress","onClick","stopGifs","endsWith","onLoad","imageLoadHandler","canvas","getContext","drawImage","still_image","load","timeago","interval","localeDateString","toLocaleString","refreshRelativeTimeObject","longFormat","date_utils","autoUpdate","datetime","exponent","units","log","toFixed","debounceUserSearch","lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default","leading","trailing","firstChar","suggestEmoji","suggestUsers","noPrefix","substr","displayText","sort","aScore","bScore","imageUrl","newUsers","detailText","replacement","_ref$media","_ref$inReplyToStatusI","_ref$contentType","lodash_map__WEBPACK_IMPORTED_MODULE_0___default","showImmediately","noIdUpdate","child","parent","_ref$top","_ref$left","left","ignorePadding","offsetTop","offsetLeft","_findPadding","findPadding","topPadding","leftPadding","offsetParent","_findPadding2","leftPaddingStr","addPositionToWords","words","reduce_default","word","start","end","previous","splitIntoWords","triggers","matches","completion","wordAtPosition","pos","wordsWithPosition","replaceWord","toReplace","filterByKeyword","list","keyword","x","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","addEventListener","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","onCompositionUpdate","unmounted","removeEventListener","picker","scrollIntoView","togglePicker","newValue","insert","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","len","cycleBackward","cycleForward","rootRef","rootBottomBorder","setCaret","shiftKey","onInput","onClickOutside","_this$$refs","panel","_this$input$elm","offsetBottom","emoji_input_vue_styles_","emoji_input_Component","emoji_input","with-picker","requestFollow","updated","attempt","follow_button","inProgress","isPressed","labelFollowing","unfollow","follow","requestUnfollow","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","showAll","userDefault","onScopeChange","scope_selector","remote_follow","loopVideo","onVideoDataLoad","srcElement","webkitAudioDecodedByteCount","loopVideoSilentOnly","mozHasAudio","audioTracks","video_attachment","loop","playsinline","loadeddata","locals","add","interfaceMod","currentSaveStateNotice","noticeClearTimeout","notificationPermission","CSS","supports","mobileLayout","mutations","settingsSaved","success","del","errorData","setNotificationPermission","permission","setMobileLayout","actions","setPageTitle","rootState","rgb2rgba","rgba","getTextColor","preserve","bgIsLight","convert","hsl","textIsLight","base","assign","invertLightness","contrastRatio","applyTheme","_generatePreset","generatePreset","rules","theme","classList","styleEl","styleSheet","sheet","insertRule","radii","shadows","fonts","remove","getCssShadow","usesDropShadow","inset","shad","y","blur","spread","getCssColor","alpha","generateColors","opacity","alert","faint","col","mod","lightText","brightness","lightBg","fgText","fgLink","border","btn","btnText","inputText","panelText","panelLink","panelFaint","topBar","topBarText","topBarLink","faintLink","linkBg","cBlue","cRed","cGreen","cOrange","alertError","alertErrorText","alertErrorPanelText","alertWarning","alertWarningText","alertWarningPanelText","badgeNotification","badgeNotificationText","htmlColors","solid","complete","generateRadii","inputRadii","btnRadius","checkbox","avatarAlt","tooltip","generateFonts","interface","family","post","postCode","generateShadows","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","popup","avatarStatus","panelHeader","button","buttonHover","buttonPressed","composePreset","getThemes","themes","setPreset","isV1","isArray","bgRgb","fgRgb","textRgb","linkRgb","cRedRgb","cGreenRgb","cBlueRgb","cOrangeRgb","themeLoaded","defaultState","hideISP","hideMutedPosts","autoLoad","streaming","hoverPreview","autohideFloatingPostButton","pauseOnUnfocused","notificationVisibility","follows","likes","repeats","webPushNotifications","interfaceLanguage","navigator","language","instanceDefaultProperties","config","rootGetters","config_objectSpread","defineProperty_default","setOption","setHighlight","registrationOpen","server","logo","logoMask","logoMargin","redirectRootNoLogin","redirectRootLogin","showInstanceSpecificPanel","disableChat","hideSitename","vapidPublicKey","noAttachmentLinks","showFeaturesPanel","pleromaBackend","emojiFetched","customEmojiFetched","chatAvailable","gopherAvailable","suggestionsEnabled","suggestionsWeb","instanceSpecificPanelContent","tos","backendVersion","frontendVersion","setInstanceOption","instanceDefaultConfig","instance_objectSpread","getStaticEmoji","res","values","warn","getCustomEmoji","_context2","image_url","setTheme","themeName","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","sortById","seqA","seqB","isSeqA","isNaN","isSeqB","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","notification","Notification","i18nString","notifObj","i18n","close","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","queueFlush","addRepeats","rebloggedByUsers","addFavs","favoritedByUsers","updateStatusWithPoll","_ref28$showImmediatel","_ref28$timeline","_ref28$noIdUpdate","markStatusesAsDeleted","fetchFavsAndRepeats","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","unread","notificationsFetcher","requests","followRequestFetcher","backendInteractorService","startFetchingTimeline","_ref9$userId","timelineFetcherService","startFetchingNotifications","startFetchingFollowRequest","fetchSettingsMFA","backend_interactor_service_objectSpread","REDIRECT_URI","location","origin","getOrCreateApp","clientId","clientSecret","___pleromafe_commit_hash","toISOString","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","dataString","encoded","getToken","code","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","responseData","sendSubscriptionToBackEnd","loggingIn","lastLoginName","usersObject","signUpPending","signUpErrors","setMuted","newTags","updateRight","newRights","updateActivationStatus","setCurrentUser","clearCurrentUser","beginLogin","endLogin","saveFriendIds","saveFollowerIds","clearFriends","clearFollowers","addNewUsers","updateUserRelationship","relationships","updateBlocks","blockedUsers","saveBlockIds","blockIds","addBlockId","blockId","updateMutes","mutedUsers","saveMuteIds","muteIds","addMuteId","muteId","setPinnedToUser","setUserForStatus","setUserForNotification","setColor","signUpSuccess","signUpFailure","blocks","blockUsers","ids","unblockUsers","mutes","hideReblogs","showReblogs","muteUsers","unmuteUsers","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","compact_default","notificationIds","notificationsObject","relevantNotifications","signUp","userInfo","access_token","abrupt","logout","_store$rootState","users_objectSpread","oauthApi","userToken","loginUser","requestPermission","fetchers","socket","followRequests","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","setWsToken","wsToken","setSocket","setFollowRequests","stopFetching","clearInterval","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","removeFollowRequest","it","chat","messages","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","loaded","defaultReducer","paths","substate","objectPath","saveImmedeatelyActions","defaultStorage","localforage","createPersistedState","_ref$key","_ref$paths","_ref$getState","getState","storage","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","innerWidth","documentElement","clientWidth","bodyScrollLock","reserveScrollBarGap","navEl","getElementById","getPropertyValue","paddingRight","appBgWrapperEl","enableBodyScroll","directive","inserted","binding","componentUpdated","oldValue","unbind","idA","idB","conversation","expanded","isPage","originalStatusId","getConversationId","isExpanded","clone_default","statusIndex","sortAndFilterConversation","irid","newVal","oldVal","newConversationId","oldConversationId","getReplies","getHighlight","get_default","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","userInStore","needMute","notification_notification","no-heading","notificationsFromStore","visibleNotificationsFromStore","sortedNotifications","sortBy_default","visibleTypes","unseenNotificationsFromStore","Notifications","minimalMode","filterMode","mainClass","unseenNotifications","visibleNotifications","unseenCount","markAsSeen","fetchOlderNotifications","notifs","notifications_vue_styles_","components_notifications_notifications","notifications_notifications","minimal","unseen","tabModeDict","likes+repeats","Interactions","onModeSwitch","interactions_interactions","interactions","on-switch","minimal-mode","filter-mode","DMs","dm_timeline_dm_timeline","dm_timeline","BasicUserCard","basic_user_card_vue_styles_","basic_user_card_basic_user_card","basic_user_card","FollowCard","isMe","follow_card_vue_styles_","follow_card_follow_card","follow_card","noFollowsYou","label-following","items","getKey","list_vue_styles_","list_list","empty","getComponentProps","isFunction","getComponentOptions","withLoadMore","select","destroy","_ref$childPropName","childPropName","_ref$additionalPropNa","additionalPropNames","WrappedComponent","$props","fetchEntries","newEntries","with_load_more_objectSpread","$listeners","scopedSlots","$scopedSlots","children","helper_default","FollowerList","List","FriendList","UserProfile","tab","routeParams","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","user-id","pinned-status-ids","_u","fn","no-follows-you","Search","searchTerm","userIds","hashtags","currenResultTab","newQuery","searchInput","getActiveTab","resultCount","tabName","onResultTabSwitch","lastHistoryRecord","hashtag","search_vue_styles_","components_search_search","search_search","uses","color_input_vue_styles_","color_input_color_input","present","fallback","range_input_range_input","hardMax","hardMin","step","opacity_input_opacity_input","shadow_control","selectedId","cValue","ColorInput","OpacityInput","moveUp","movable","moveDn","ready","moveUpValid","moveDnValid","usingFallback","boxShadow","shadow_control_vue_styles_","shadow_control_shadow_control","__r","_i","$$a","$$el","$$c","$$i","font_control","lValue","availableOptions","noInherit","dValue","isCustom","preset","font_control_vue_styles_","font_control_font_control","custom","contrast_ratio_vue_styles_","contrast_ratio_contrast_ratio","hint","levelVal","contrast","aaa","aa","ratio","hint_18pt","laaa","laa","large","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","availableStyles","previewShadows","previewColors","previewRadii","previewFonts","shadowsInvalid","colorsInvalid","radiiInvalid","keepColor","keepShadows","keepOpacity","keepRoundness","keepFonts","textColorLocal","linkColorLocal","bgColorLocal","bgOpacityLocal","fgColorLocal","fgTextColorLocal","fgLinkColorLocal","btnColorLocal","btnTextColorLocal","btnOpacityLocal","inputColorLocal","inputTextColorLocal","inputOpacityLocal","panelColorLocal","panelTextColorLocal","panelLinkColorLocal","panelFaintColorLocal","panelOpacityLocal","topBarColorLocal","topBarTextColorLocal","topBarLinkColorLocal","alertErrorColorLocal","alertWarningColorLocal","badgeOpacityLocal","badgeNotificationColorLocal","borderColorLocal","borderOpacityLocal","faintColorLocal","faintOpacityLocal","faintLinkColorLocal","cRedColorLocal","cBlueColorLocal","cGreenColorLocal","cOrangeColorLocal","shadowSelected","shadowsLocal","fontsLocal","btnRadiusLocal","inputRadiusLocal","checkboxRadiusLocal","panelRadiusLocal","avatarRadiusLocal","avatarAltRadiusLocal","attachmentRadiusLocal","tooltipRadiusLocal","themesComplete","normalizeLocalState","shadowsAvailable","selectedVersion","currentColors","currentOpacity","topBarOpacityLocal","currentRadii","preview","previewTheme","previewContrast","fgs","red","green","blue","orange","bgs","ratios","bgText","bgLink","bgRed","bgGreen","bgBlue","bgOrange","tintText","toPrecision","previewRules","currentShadowOverriden","currentShadow","currentShadowFallback","themeValid","exportedTheme","saveEverything","_pleroma_theme_version","RangeInput","ContrastRatio","ShadowControl","FontControl","TabSwitcher","Preview","ExportImport","setCustomTheme","importValidator","version","clearAll","clearV1","$data","clearRoundness","clearOpacity","clearShadows","clearFonts","deep","fontsInvalid","style_switcher_vue_styles_","style_switcher_style_switcher","export-object","export-label","import-label","import-failed-text","on-import","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","src_components_settings_settings","components_settings_settings","hideMutedPostsLocalizedValue","collapseMessageWithSubjectLocalizedValue","scopeCopyLocalizedValue","alwaysShowSubjectInputLocalizedValue","subjectLineBehaviorDefaultValue","postContentTypeDefaultValue","minimalScopesModeLocalizedValue","number","_n","$forceUpdate","greentextLocalizedValue","hidePostStatsLocalizedValue","hideUserStatsLocalizedValue","hideFilteredStatusesLocalizedValue","mixins","validationMixin","fullname","captcha","validations","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","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","SelectableList","allKeys","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","cancel","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","_this5","mfa_vue_styles_","user_settings_mfa","mfa","activate","backup-codes","BlockList","MuteList","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","Autosuggest","vis","oauthToken","appName","app_name","validUntil","valid_until","toLocaleDateString","submitAvatar","that","getCroppedCanvas","toBlob","clearUploadError","submitBanner","submitBg","generateExportableUsersContent","hostname","getFollowsContent","getBlocksContent","confirmDelete","_this6","_this7","_this8","filterUnblockedUsers","_this9","filterUnMutedUsers","_this10","queryUserIds","identity","user_settings_vue_styles_","user_settings_user_settings","user_settings","classname","submit-handler","success-message","error-message","get-content","export-button-label","FollowRequestCard","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","author","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","hasInstanceSpecificPolicies","mrf_transparency_panel_vue_styles_","About","mrf_transparency_panel","policy","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","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","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","MobilePostStatusButton","scrollingDown","inputActive","oldScrollPos","amountScrolled","activateFloatingPostButtonAutohide","handleOSK","deactivateFloatingPostButtonAutohide","isLoggedIn","isHidden","handleScrollStart","handleScrollEnd","openPostForm","smallPhone","smallPhoneKbOpen","biggerPhoneKbOpen","debounce_default","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","scrollTo","_ref$target","mobile_nav_vue_styles_","mobile_nav_mobile_nav","mobile_nav","active-class","UserReportingModal","statusIdsToReport","remoteInstance","closeModal","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","updateMobileState","enableMask","logoStyle","logoMaskStyle","mask-image","background-color","logoBgStyle","margin","bgStyle","background-image","bgAppStyle","--body-background-image","isMobileLayout","onSearchBarToggled","App_vue_styles_","src_App","toggled","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","loginMethod","getTOS","_context4","getInstancePanel","_context5","getStickers","_context7","resPack","_context6","pack","localeCompare","t1","getAppSecret","_context8","after_store_objectSpread","resolveStaffAccounts","_context9","getNodeInfo","metadata","features","software","priv","federation","_context10","web","mrf_policies","setConfig","configInfos","_context11","checkOAuthToken","_context13","_context12","afterStoreSetup","router","_context14","VueRouter","scrollBehavior","_from","savedPosition","matched","currentLocale","use","Vuex","VueI18n","VueChatScroll","VueClickOutside","PortalVue","VTooltip","popover","defaultTrigger","defaultContainer","defaultOffset","persistedState","fallbackLocale","persistedStateOptions","Store","interfaceModule","instanceModule","statusesModule","usersModule","apiModule","configModule","chatModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokensModule","reportsModule","pollsModule","postStatusModule","plugins","pushNotifications","strict","COMMIT_HASH","DEV_OVERRIDES"],"mappings":"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","file":"static/js/app.e63654e5ca9fff82f59d.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\":\"9f2ac5e61b4f3efacd6b\"}[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([566,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { map } from 'lodash'\n\nconst rgb2hex = (r, g, b) => {\n  if (r === null || typeof r === 'undefined') {\n    return undefined\n  }\n  if (r[0] === '#') {\n    return r\n  }\n  if (typeof r === 'object') {\n    ({ r, g, b } = r)\n  }\n  [r, g, b] = map([r, g, b], (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 */\nconst 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 */\nconst 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 * 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 */\nconst 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\nconst invert = (rgb) => {\n  return 'rgb'.split('').reduce((acc, c) => {\n    acc[c] = 255 - rgb[c]\n    return acc\n  }, {})\n}\n\nconst 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\nconst mixrgb = (a, b) => {\n  return Object.keys(a).reduce((acc, k) => {\n    acc[k] = (a[k] + b[k]) / 2\n    return acc\n  }, {})\n}\n\nexport {\n  rgb2hex,\n  hex2rgb,\n  mixrgb,\n  invert,\n  getContrastRatio,\n  alphaBlend\n}\n","const 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(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.token = data.pleroma.chat_token\n\n      if (relationship) {\n        output.follows_you = relationship.followed_by\n        output.requested = relationship.requested\n        output.following = relationship.following\n        output.statusnet_blocking = relationship.blocking\n        output.muted = relationship.muting\n        output.showing_reblogs = relationship.showing_reblogs\n        output.subscribed = relationship.subscribing\n      }\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.statusnet_blocking = data.statusnet_blocking\n\n    output.is_local = data.is_local\n    output.role = data.role\n    output.show_role = data.show_role\n\n    output.follows_you = data.follows_you\n\n    output.muted = data.muted\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    // on mastoapi this info is contained in a \"relationship\"\n    output.following = data.following\n    // Websocket token\n    output.token = data.token\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  }\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    } 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(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 = output.type === 'follow'\n      ? null\n      : parseStatus(data.status)\n    output.action = output.status // TODO: Refactor, this is unneeded\n    output.from_profile = parseUser(data.account)\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 = 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","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        // replace ap_id with username\n        if (error.ap_id) {\n          error.username = error.ap_id\n          delete error.ap_id\n        }\n        this.message = humanizeErrors(error)\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 } from 'lodash'\nimport { parseStatus, parseUser, parseNotification, parseAttachment } from '../entity_normalizer/entity_normalizer.service.js'\nimport 'whatwg-fetch'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\nconst QVITTER_USER_NOTIFICATIONS_READ_URL = '/api/qvitter/statuses/notifications/read.json'\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 ACTIVATION_STATUS_URL = screenName => `/api/pleroma/admin/users/${screenName}/activation_status`\nconst ADMIN_USERS_URL = '/api/pleroma/admin/users'\nconst SUGGESTIONS_URL = '/api/v1/suggestions'\nconst NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'\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_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'\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  ].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  ].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, ...options }) => {\n  const screenName = options.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, ...options }) => {\n  const screenName = options.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 setActivationStatus = ({ status, credentials, ...user }) => {\n  const screenName = user.screen_name\n  const body = {\n    status: status\n  }\n\n  const headers = authHeaders(credentials)\n  headers['Content-Type'] = 'application/json'\n\n  return fetch(ACTIVATION_STATUS_URL(screenName), {\n    method: 'PUT',\n    headers: headers,\n    body: JSON.stringify(body)\n  })\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(['count', 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 }) => {\n  const body = new FormData()\n\n  body.append('latest_id', id)\n\n  return fetch(QVITTER_USER_NOTIFICATIONS_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 }) => {\n  return promisedRequest({ url: MASTODON_STATUS_FAVORITEDBY_URL(id) }).then((users) => users.map(parseUser))\n}\n\nconst fetchRebloggedByUsers = ({ id }) => {\n  return promisedRequest({ url: MASTODON_STATUS_REBLOGGEDBY_URL(id) }).then((users) => users.map(parseUser))\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  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 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  setActivationStatus,\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  vote,\n  fetchPoll,\n  fetchFavoritedByUsers,\n  fetchRebloggedByUsers,\n  reportUser,\n  updateNotificationSettings,\n  search2,\n  searchUsers\n}\n\nexport default apiService\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","<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(--text, $fallback--text);\n    }\n\n    &:indeterminate + .checkbox-indicator::before {\n      content: '–';\n      color: $fallback--text;\n      color: var(--text, $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-58c9b3c4\\\",\\\"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 }","// 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","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-eafd78a6\\\",\\\"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'\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      showDropDown: false,\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    }\n  },\n  components: {\n    DialogModal\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(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(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(this.user, right).then(response => {\n          if (!response.ok) { return }\n          store.commit('updateRight', { user: this.user, right: right, value: false })\n        })\n      } else {\n        store.state.api.backendInteractor.addRight(this.user, right).then(response => {\n          if (!response.ok) { return }\n          store.commit('updateRight', { user: this.user, right: right, value: true })\n        })\n      }\n    },\n    toggleActivationStatus () {\n      const store = this.$store\n      const status = !!this.user.deactivated\n      store.state.api.backendInteractor.setActivationStatus(this.user, status).then(response => {\n        if (!response.ok) { return }\n        store.commit('updateActivationStatus', { user: this.user, status: status })\n      })\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  }\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-756a6c4e\\\",\\\"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('v-popover',{staticClass:\"moderation-tools-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"bottom-end\"},on:{\"show\":function($event){_vm.showDropDown = true},\"hide\":function($event){_vm.showDropDown = false}}},[_c('div',{attrs:{\"slot\":\"popover\"},slot:\"popover\"},[_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:{ pressed: _vm.showDropDown }},[_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'\n\nconst AccountActions = {\n  props: [\n    'user'\n  ],\n  data () {\n    return { }\n  },\n  components: {\n    ProgressButton\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  }\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-3967dbf7\\\",\\\"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('v-popover',{staticClass:\"account-tools-popover\",attrs:{\"trigger\":\"click\",\"container\":false,\"placement\":\"bottom-end\",\"offset\":5}},[_c('div',{attrs:{\"slot\":\"popover\"},slot:\"popover\"},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.user.following)?[(_vm.user.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.user.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.user.statusnet_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        \")])],2)]),_vm._v(\" \"),_c('div',{staticClass:\"btn btn-default ellipsis-button\"},[_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 { hex2rgb } from '../../services/color_convert/color_convert.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\n\nexport default {\n  props: [\n    'user', '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    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      const color = this.$store.getters.mergedConfig.customTheme.colors\n        ? this.$store.getters.mergedConfig.customTheme.colors.bg // v2\n        : this.$store.getters.mergedConfig.colors.bg // v1\n\n      if (color) {\n        const rgb = (typeof color === 'string') ? hex2rgb(color) : color\n        const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .5)`\n\n        return {\n          backgroundColor: `rgb(${Math.floor(rgb.r * 0.53)}, ${Math.floor(rgb.g * 0.56)}, ${Math.floor(rgb.b * 0.59)})`,\n          backgroundImage: [\n            `linear-gradient(to bottom, ${tintColor}, ${tintColor})`,\n            `url(${this.user.cover_photo})`\n          ].join(', ')\n        }\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-d0b51e66\\\",\\\"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}}):_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.user.follows_you && _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:{\"user\":_vm.user}}),_vm._v(\" \"),(_vm.user.following)?[(!_vm.user.subscribed)?_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 pressed\",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.user.muted)?_c('button',{staticClass:\"btn btn-default btn-block pressed\",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 }","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'\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  },\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.$store.getters.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 (this.$store.getters.mergedConfig.useOneClickNsfw && !this.showHidden) {\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-47ab0ca0\\\",\\\"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 }","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 { 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 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-6feb4525\\\",\\\"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 }","const ExtraButtons = {\n  props: [ 'status' ],\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  },\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  }\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-0caa0403\\\",\\\"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 (_vm.canDelete || _vm.canMute || _vm.canPin)?_c('v-popover',{staticClass:\"extra-button-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"top\"}},[_c('div',{attrs:{\"slot\":\"popover\"},slot:\"popover\"},[_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',{directives:[{name:\"close-popover\",rawName:\"v-close-popover\"}],staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.pinStatus($event)}}},[_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',{directives:[{name:\"close-popover\",rawName:\"v-close-popover\"}],staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.unpinStatus($event)}}},[_c('i',{staticClass:\"icon-pin\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.unpin\")))])]):_vm._e(),_vm._v(\" \"),(_vm.canDelete)?_c('button',{directives:[{name:\"close-popover\",rawName:\"v-close-popover\"}],staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.deleteStatus($event)}}},[_c('i',{staticClass:\"icon-cancel\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.delete\")))])]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"button-icon\"},[_c('i',{staticClass:\"icon-ellipsis\"})])]):_vm._e()}\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 }","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 { find } from 'lodash'\n\nconst StatusPopover = {\n  name: 'StatusPopover',\n  props: [\n    'statusId'\n  ],\n  data () {\n    return {\n      popperOptions: {\n        modifiers: {\n          preventOverflow: { padding: { top: 50 }, boundariesElement: 'viewport' }\n        }\n      }\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  },\n  methods: {\n    enter () {\n      if (!this.status) {\n        this.$store.dispatch('fetchStatus', this.statusId)\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-ef621460\\\",\\\"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('v-popover',{attrs:{\"popover-class\":\"status-popover\",\"placement\":\"top-start\",\"popper-options\":_vm.popperOptions},on:{\"show\":function($event){_vm.enter()}}},[_c('template',{slot:\"popover\"},[(_vm.status)?_c('Status',{attrs:{\"is-preview\":true,\"statusoid\":_vm.status,\"compact\":true}}):_c('div',{staticClass:\"status-preview-loading\"},[_c('i',{staticClass:\"icon-spin4 animate-spin\"})])],1),_vm._v(\" \"),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Attachment from '../attachment/attachment.vue'\nimport FavoriteButton from '../favorite_button/favorite_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport Poll from '../poll/poll.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 Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusPopover from '../status_popover/status_popover.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 { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { mentionMatchesUrl, extractTagFromUrl } from 'src/services/matcher/matcher.service.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      showingTall: this.inConversation && this.focused,\n      showingLongSubject: false,\n      error: null,\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    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    hideAttachments () {\n      return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n        (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\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 () { return !this.unmuted && ((!(this.inProfile && this.status.user.id === this.profileUserId) && this.status.user.muted) || (!this.inConversation && this.status.thread_muted) || this.muteWordHits.length > 0) },\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    // 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    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        const taggedUser = this.$store.getters.findUser(this.status.attentions[i].id)\n        if (checkFollowing && taggedUser && taggedUser.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    hideSubjectStatus () {\n      if (this.tallStatus && !this.localCollapseSubjectDefault) {\n        return false\n      }\n      return !this.expandingSubject && this.status.summary\n    },\n    hideTallStatus () {\n      if (this.status.summary && this.localCollapseSubjectDefault) {\n        return false\n      }\n      if (this.showingTall) {\n        return false\n      }\n      return this.tallStatus\n    },\n    showingMore () {\n      return (this.tallStatus && this.showingTall) || (this.status.summary && 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    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    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    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    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    ownStatus () {\n      return this.status.user.id === this.currentUser.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    Attachment,\n    FavoriteButton,\n    RetweetButton,\n    ExtraButtons,\n    PostStatusForm,\n    Poll,\n    UserCard,\n    UserAvatar,\n    Gallery,\n    LinkPreview,\n    AvatarList,\n    Timeago,\n    StatusPopover\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    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    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    toggleShowMore () {\n      if (this.showingTall) {\n        this.showingTall = false\n      } else if (this.expandingSubject && this.status.summary) {\n        this.expandingSubject = false\n      } else if (this.hideTallStatus) {\n        this.showingTall = true\n      } else if (this.hideSubjectStatus && this.status.summary) {\n        this.expandingSubject = true\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  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","/**\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.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-f83de8e4\\\",\\\"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\":_vm.status.user,\"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\"}},[_c('i',{staticClass:\"button-icon icon-link-ext-alt\"})]):_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',{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(\" \"),(_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.isFocused },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.showingLongSubject=true}}},[_vm._v(_vm._s(_vm.$t(\"general.show_more\")))]):_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.isFocused },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)?_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 && (!_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(\" \"),_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.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(\" \"),_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 }","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 }","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","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","/* 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  ],\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) {\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: (input) => this.$store.dispatch('searchUsers', input)\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    },\n    hideScopeNotice () {\n      return 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      statusPoster.postStatus({\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      }).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.clearFile()\n          this.clearPollForm()\n          this.$emit('posted')\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.$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 newHeight = target.scrollHeight - vertPadding\n      target.style.height = `${newHeight}px`\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-c2ba770c\\\",\\\"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.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\",attrs:{\"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(\" \"),_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)],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 }","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().startsWith(noPrefix))\n    .sort((a, b) => {\n      let aScore = 0\n      let bScore = 0\n\n      // Make custom emojis a priority\n      aScore += a.imageUrl ? 10 : 0\n      bScore += b.imageUrl ? 10 : 0\n\n      // Sort alphabetically\n      const alphabetically = a.displayText > b.displayText ? 1 : -1\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('compositionupdate', this.onCompositionUpdate)\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('compositionupdate', this.onCompositionUpdate)\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    onCompositionUpdate (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-a4078164\\\",\\\"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 fetchUser = (attempt, user, store) => new Promise((resolve, reject) => {\n  setTimeout(() => {\n    store.state.api.backendInteractor.fetchUser({ id: user.id })\n      .then((user) => store.commit('addNewUsers', [user]))\n      .then(() => resolve([user.following, user.requested, user.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    fetchUser(++attempt, user, store)\n  }\n})\n\nexport const requestFollow = (user, store) => new Promise((resolve, reject) => {\n  store.state.api.backendInteractor.followUser({ id: user.id })\n    .then((updated) => {\n      store.commit('updateUserRelationship', [updated])\n\n      if (updated.following || (user.locked && user.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 fetchUser(1, user, store)\n        .then(() => {\n          resolve()\n        })\n    })\n})\n\nexport const requestUnfollow = (user, store) => new Promise((resolve, reject) => {\n  store.state.api.backendInteractor.unfollowUser(user.id)\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: ['user', 'labelFollowing', 'buttonClass'],\n  data () {\n    return {\n      inProgress: false\n    }\n  },\n  computed: {\n    isPressed () {\n      return this.inProgress || this.user.following\n    },\n    title () {\n      if (this.inProgress || this.user.following) {\n        return this.$t('user_card.follow_unfollow')\n      } else if (this.user.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.user.following) {\n        return this.labelFollowing || this.$t('user_card.following')\n      } else if (this.user.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.user.following ? this.unfollow() : this.follow()\n    },\n    follow () {\n      this.inProgress = true\n      requestFollow(this.user, this.$store).then(() => {\n        this.inProgress = false\n      })\n    },\n    unfollow () {\n      const store = this.$store\n      this.inProgress = true\n      requestUnfollow(this.user, store).then(() => {\n        this.inProgress = false\n        store.commit('removeStatus', { timeline: 'friends', userId: this.user.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-3ddddf8d\\\",\\\"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:{ pressed: _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 }","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 }","\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 }","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(--lightBg,#151e2a)}.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{max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;word-break:break-all}.status-el .media-heading .reply-to-and-accountname{display:-ms-flexbox;display:flex;height:18px;margin-right:.5em;overflow:hidden;max-width:100%}.status-el .media-heading .reply-to-and-accountname .icon-reply{transform:scaleX(-1)}.status-el .media-heading .reply-info,.status-el .media-heading .reply-to{display:-ms-flexbox;display:flex}.status-el .media-heading .reply-to-text{overflow:hidden;text-overflow:ellipsis;margin:0 .4em 0 .2em;color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.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 .tall-status{position:relative;height:220px;overflow-x:hidden;overflow-y:hidden;z-index:1}.status-el .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-el .tall-status-hider{position:absolute;height:70px;margin-top:150px;line-height:110px;z-index:2}.status-el .cw-status-hider,.status-el .status-unhider,.status-el .tall-status-hider{display:inline-block;word-break:break-all;width:100%;text-align:center}.status-el .status-content{font-family:var(--postFont,sans-serif);line-height:1.4em;white-space:pre-wrap}.status-el .status-content img,.status-el .status-content video{max-width:100%;max-height:400px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-el .status-content img.emoji,.status-el .status-content video.emoji{width:32px;height:32px}.status-el .status-content blockquote{margin:.2em 0 .2em 2em;font-style:italic}.status-el .status-content pre{overflow:auto}.status-el .status-content code,.status-el .status-content kbd,.status-el .status-content pre,.status-el .status-content samp,.status-el .status-content var{font-family:var(--postCodeFont,monospace)}.status-el .status-content p{margin:0 0 1em}.status-el .status-content p:last-child{margin:0}.status-el .status-content h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.status-el .status-content h2{font-size:1.1em;margin:1em 0}.status-el .status-content h3{font-size:1em;margin:1.2em 0}.status-el .status-content h4{margin:1.1em 0}.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}}.greentext{color:#0fa00f;color:var(--cGreen,#0fa00f)}.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}.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}.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!./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}.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!./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!./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!./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!./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;background-color:#151e2a;background-color:var(--linkBg,#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!./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, \".tooltip.popover{z-index:8}.tooltip.popover .popover-inner{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(--bg,#121a24)}.tooltip.popover .popover-arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px;border-color:#121a24;border-color:var(--bg,#121a24)}.tooltip.popover[x-placement^=top]{margin-bottom:5px}.tooltip.popover[x-placement^=top] .popover-arrow{border-width:5px 5px 0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;bottom:-4px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip.popover[x-placement^=bottom]{margin-top:5px}.tooltip.popover[x-placement^=bottom] .popover-arrow{border-width:0 5px 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important;top:-4px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip.popover[x-placement^=right]{margin-left:5px}.tooltip.popover[x-placement^=right] .popover-arrow{border-width:5px 5px 5px 0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important;left:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover[x-placement^=left]{margin-right:5px}.tooltip.popover[x-placement^=left] .popover-arrow{border-width:5px 0 5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;right:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip.popover[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.dropdown-menu{display:block;padding:.5rem 0;font-size:1rem;text-align:left;list-style:none;max-width:100vw;z-index:10}.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:normal;border:none;border-radius:0;background-color:transparent;box-shadow:none;width:100%;height:100%}.dropdown-menu .dropdown-item-icon{padding-left:.5rem}.dropdown-menu .dropdown-item-icon i{margin-right:.25rem}.dropdown-menu .dropdown-item:hover{background-color:#182230;background-color:var(--btn,#182230);box-shadow:none}.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 .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 .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}\", \"\"]);\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:#121a24;background:var(--bg,#121a24);color:#b9b9ba;color:var(--lightText,#b9b9ba)}.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(--lightBg,#182230)}.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}.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(--text,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{content:\\\"\\\\2013\\\";color:#b9b9ba;color:var(--text,#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)}.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 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(--btnText,#b9b9ba);background-color:#182230;background-color:var(--btn,#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-info .user-interactions button.pressed{border-bottom-color:hsla(0,0%,100%,.2);border-top-color:rgba(0,0,0,.2)}.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!./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, \".tooltip.popover{z-index:8}.tooltip.popover .popover-inner{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(--bg,#121a24)}.tooltip.popover .popover-arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px;border-color:#121a24;border-color:var(--bg,#121a24)}.tooltip.popover[x-placement^=top]{margin-bottom:5px}.tooltip.popover[x-placement^=top] .popover-arrow{border-width:5px 5px 0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;bottom:-4px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip.popover[x-placement^=bottom]{margin-top:5px}.tooltip.popover[x-placement^=bottom] .popover-arrow{border-width:0 5px 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important;top:-4px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip.popover[x-placement^=right]{margin-left:5px}.tooltip.popover[x-placement^=right] .popover-arrow{border-width:5px 5px 5px 0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important;left:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover[x-placement^=left]{margin-right:5px}.tooltip.popover[x-placement^=left] .popover-arrow{border-width:5px 0 5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;right:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip.popover[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.dropdown-menu{display:block;padding:.5rem 0;font-size:1rem;text-align:left;list-style:none;max-width:100vw;z-index:10}.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:normal;border:none;border-radius:0;background-color:transparent;box-shadow:none;width:100%;height:100%}.dropdown-menu .dropdown-item-icon{padding-left:.5rem}.dropdown-menu .dropdown-item-icon i{margin-right:.25rem}.dropdown-menu .dropdown-item:hover{background-color:#182230;background-color:var(--btn,#182230);box-shadow:none}.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:#151e2a;background-color:var(--lightBg,#151e2a);white-space:normal}.dialog-modal.panel .dialog-modal-footer{margin:0;padding:.5em;background-color:#151e2a;background-color:var(--lightBg,#151e2a);border-top:1px solid #121a24;border-top:1px solid var(--bg,#121a24);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, \".tooltip.popover{z-index:8}.tooltip.popover .popover-inner{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(--bg,#121a24)}.tooltip.popover .popover-arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px;border-color:#121a24;border-color:var(--bg,#121a24)}.tooltip.popover[x-placement^=top]{margin-bottom:5px}.tooltip.popover[x-placement^=top] .popover-arrow{border-width:5px 5px 0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;bottom:-4px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip.popover[x-placement^=bottom]{margin-top:5px}.tooltip.popover[x-placement^=bottom] .popover-arrow{border-width:0 5px 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important;top:-4px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip.popover[x-placement^=right]{margin-left:5px}.tooltip.popover[x-placement^=right] .popover-arrow{border-width:5px 5px 5px 0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important;left:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover[x-placement^=left]{margin-right:5px}.tooltip.popover[x-placement^=left] .popover-arrow{border-width:5px 0 5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;right:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip.popover[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.dropdown-menu{display:block;padding:.5rem 0;font-size:1rem;text-align:left;list-style:none;max-width:100vw;z-index:10}.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:normal;border:none;border-radius:0;background-color:transparent;box-shadow:none;width:100%;height:100%}.dropdown-menu .dropdown-item-icon{padding-left:.5rem}.dropdown-menu .dropdown-item-icon i{margin-right:.25rem}.dropdown-menu .dropdown-item:hover{background-color:#182230;background-color:var(--btn,#182230);box-shadow:none}.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!./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!./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_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, \".tooltip.popover.status-popover{font-size:1rem;min-width:15em;max-width:95%;margin-left:.5em}.tooltip.popover.status-popover .popover-inner{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)}.tooltip.popover.status-popover .popover-arrow:before{position:absolute;content:\\\"\\\";left:-7px;border:7px solid transparent;z-index:-1}.tooltip.popover.status-popover[x-placement^=bottom-start] .popover-arrow:before{top:-2px;border-top-width:0;border-bottom-color:#222;border-bottom-color:var(--border,#222)}.tooltip.popover.status-popover[x-placement^=top-start] .popover-arrow:before{bottom:-2px;border-bottom-width:0;border-top-color:#222;border-top-color:var(--border,#222)}.tooltip.popover.status-popover .status-el.status-el{border:none}.tooltip.popover.status-popover .status-preview-loading{padding:1em;text-align:center}.tooltip.popover.status-popover .status-preview-loading 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!./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 .media-body{margin:0}.notification .follow-text{padding:.5em 0}.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 .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{color:#0095ff;color:var(--cBlue,#0095ff)}.notification .notification-details .icon-star.lit{color:orange;color:var(--cOrange,orange)}.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!./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!./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!./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 .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:not(.exclude-disabled),.style-switcher .style-control.disabled select:not(.exclude-disabled){opacity:.5}.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=color],.style-switcher .style-control select[type=color]{padding:1px;cursor:pointer;height:29px;min-width:2em;border:none;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.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}.style-switcher .style-control input[type=checkbox]+label,.style-switcher .style-control select[type=checkbox]+label{margin:6px 0}.style-switcher .style-control input:not([type=number]):not([type=text]),.style-switcher .style-control select:not([type=number]):not([type=text]){-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!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./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(\"6015ac50\", 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!./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 .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!./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(--lightBg,#151e2a)}.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:#151e2a;background-color:var(--lightBg,#151e2a);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;background-color:rgba(0,0,0,.15);-ms-flex-line-pack:start;align-content:flex-start}.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)}button:disabled{cursor:not-allowed;opacity:.5}button.pressed{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));background-color:#121a24;background-color:var(--bg,#121a24)}button.danger{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba);background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5))}label.select{padding:0}.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;padding:8px .5em;box-sizing:border-box;display:inline-block;position:relative;height:28px;line-height:16px;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.select:disabled,.select[disabled=disabled],input:disabled,input[disabled=disabled],textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.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(--text,#b9b9ba);line-height:28px;z-index:0;pointer-events:none}.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}.select[type=range],input[type=range],textarea[type=range]{background:none;border:none;margin:0;box-shadow:none;-ms-flex:1;flex:1}.select[type=radio],input[type=radio],textarea[type=radio]{display:none}.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(--link,#d8a070)}.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}.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}.select[type=checkbox],input[type=checkbox],textarea[type=checkbox]{display:none}.select[type=checkbox]:checked+label:before,input[type=checkbox]:checked+label:before,textarea[type=checkbox]:checked+label:before{color:#b9b9ba;color:var(--text,#b9b9ba)}.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}.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 .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 .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 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)}\", \"\"]);\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.router-link-active,.nav-panel a:hover{background-color:#151e2a;background-color:var(--lightBg,#151e2a)}.nav-panel a.router-link-active{font-weight:bolder}.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(--bg,#121a24)}.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(--lightBg,#151e2a)}\", \"\"]);\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 { 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 { times } from 'lodash'\nimport { brightness, invertLightness, convert, contrastRatio } from 'chromatism'\nimport { rgb2hex, hex2rgb, mixrgb, getContrastRatio, alphaBlend } from '../color_convert/color_convert.js'\n\n// While this is not used anymore right now, I left it in if we want to do custom\n// styles that aren't just colors, so user can pick from a few different distinct\n// styles as well as set their own colors in the future.\n\nconst setStyle = (href, commit) => {\n  /***\n      What's going on here?\n      I want to make it easy for admins to style this application. To have\n      a good set of default themes, I chose the system from base16\n      (https://chriskempson.github.io/base16/) to style all elements. They\n      all have the base00..0F classes. So the only thing an admin needs to\n      do to style Pleroma is to change these colors in that one css file.\n      Some default things (body text color, link color) need to be set dy-\n      namically, so this is done here by waiting for the stylesheet to be\n      loaded and then creating an element with the respective classes.\n\n      It is a bit weird, but should make life for admins somewhat easier.\n  ***/\n  const head = document.head\n  const body = document.body\n  body.classList.add('hidden')\n  const cssEl = document.createElement('link')\n  cssEl.setAttribute('rel', 'stylesheet')\n  cssEl.setAttribute('href', href)\n  head.appendChild(cssEl)\n\n  const setDynamic = () => {\n    const baseEl = document.createElement('div')\n    body.appendChild(baseEl)\n\n    let colors = {}\n    times(16, (n) => {\n      const name = `base0${n.toString(16).toUpperCase()}`\n      baseEl.setAttribute('class', name)\n      const color = window.getComputedStyle(baseEl).getPropertyValue('color')\n      colors[name] = color\n    })\n\n    body.removeChild(baseEl)\n\n    const styleEl = document.createElement('style')\n    head.appendChild(styleEl)\n    // const styleSheet = styleEl.sheet\n\n    body.classList.remove('hidden')\n  }\n\n  cssEl.addEventListener('load', setDynamic)\n}\n\nconst rgb2rgba = function (rgba) {\n  return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nconst getTextColor = function (bg, text, preserve) {\n  const bgIsLight = convert(bg).hsl.l > 50\n  const textIsLight = convert(text).hsl.l > 50\n\n  if ((bgIsLight && textIsLight) || (!bgIsLight && !textIsLight)) {\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      return contrastRatio(bg, text).rgb\n    }\n    return result\n  }\n  return text\n}\n\nconst applyTheme = (input, commit) => {\n  const { rules, theme } = 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  // commit('setOption', { name: 'colors', value: htmlColors })\n  // commit('setOption', { name: 'radii', value: radii })\n  commit('setOption', { name: 'customTheme', value: input })\n  commit('setOption', { name: 'colors', value: theme.colors })\n}\n\nconst 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\nconst 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 if (input.startsWith('--')) {\n      return `var(${input})`\n    } else {\n      return input\n    }\n  }\n  return rgb2rgba({ ...rgb, a })\n}\n\nconst generateColors = (input) => {\n  const colors = {}\n  const opacity = Object.assign({\n    alert: 0.5,\n    input: 0.5,\n    faint: 0.5\n  }, Object.entries(input.opacity || {}).reduce((acc, [k, v]) => {\n    if (typeof v !== 'undefined') {\n      acc[k] = v\n    }\n    return acc\n  }, {}))\n  const col = Object.entries(input.colors || input).reduce((acc, [k, v]) => {\n    if (typeof v === 'object') {\n      acc[k] = v\n    } else {\n      acc[k] = hex2rgb(v)\n    }\n    return acc\n  }, {})\n\n  const isLightOnDark = convert(col.bg).hsl.l < convert(col.text).hsl.l\n  const mod = isLightOnDark ? 1 : -1\n\n  colors.text = col.text\n  colors.lightText = brightness(20 * mod, colors.text).rgb\n  colors.link = col.link\n  colors.faint = col.faint || Object.assign({}, col.text)\n\n  colors.bg = col.bg\n  colors.lightBg = col.lightBg || brightness(5, colors.bg).rgb\n\n  colors.fg = col.fg\n  colors.fgText = col.fgText || getTextColor(colors.fg, colors.text)\n  colors.fgLink = col.fgLink || getTextColor(colors.fg, colors.link, true)\n\n  colors.border = col.border || brightness(2 * mod, colors.fg).rgb\n\n  colors.btn = col.btn || Object.assign({}, col.fg)\n  colors.btnText = col.btnText || getTextColor(colors.btn, colors.fgText)\n\n  colors.input = col.input || Object.assign({}, col.fg)\n  colors.inputText = col.inputText || getTextColor(colors.input, colors.lightText)\n\n  colors.panel = col.panel || Object.assign({}, col.fg)\n  colors.panelText = col.panelText || getTextColor(colors.panel, colors.fgText)\n  colors.panelLink = col.panelLink || getTextColor(colors.panel, colors.fgLink)\n  colors.panelFaint = col.panelFaint || getTextColor(colors.panel, colors.faint)\n\n  colors.topBar = col.topBar || Object.assign({}, col.fg)\n  colors.topBarText = col.topBarText || getTextColor(colors.topBar, colors.fgText)\n  colors.topBarLink = col.topBarLink || getTextColor(colors.topBar, colors.fgLink)\n\n  colors.faintLink = col.faintLink || Object.assign({}, col.link)\n  colors.linkBg = alphaBlend(colors.link, 0.4, colors.bg)\n\n  colors.icon = mixrgb(colors.bg, colors.text)\n\n  colors.cBlue = col.cBlue || hex2rgb('#0000FF')\n  colors.cRed = col.cRed || hex2rgb('#FF0000')\n  colors.cGreen = col.cGreen || hex2rgb('#00FF00')\n  colors.cOrange = col.cOrange || hex2rgb('#E3FF00')\n\n  colors.alertError = col.alertError || Object.assign({}, colors.cRed)\n  colors.alertErrorText = getTextColor(alphaBlend(colors.alertError, opacity.alert, colors.bg), colors.text)\n  colors.alertErrorPanelText = getTextColor(alphaBlend(colors.alertError, opacity.alert, colors.panel), colors.panelText)\n\n  colors.alertWarning = col.alertWarning || Object.assign({}, colors.cOrange)\n  colors.alertWarningText = getTextColor(alphaBlend(colors.alertWarning, opacity.alert, colors.bg), colors.text)\n  colors.alertWarningPanelText = getTextColor(alphaBlend(colors.alertWarning, opacity.alert, colors.panel), colors.panelText)\n\n  colors.badgeNotification = col.badgeNotification || Object.assign({}, colors.cRed)\n  colors.badgeNotificationText = contrastRatio(colors.badgeNotification).rgb\n\n  Object.entries(opacity).forEach(([ k, v ]) => {\n    if (typeof v === 'undefined') return\n    if (k === 'alert') {\n      colors.alertError.a = v\n      colors.alertWarning.a = v\n      return\n    }\n    if (k === 'faint') {\n      colors[k + 'Link'].a = v\n      colors['panelFaint'].a = v\n    }\n    if (k === 'bg') {\n      colors['lightBg'].a = v\n    }\n    if (colors[k]) {\n      colors[k].a = v\n    } else {\n      console.error('Wrong key ' + k)\n    }\n  })\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) : rgb2rgba(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\nconst 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  })\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\nconst 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 generateShadows = (input) => {\n  const 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  })\n  const buttonInsetFakeBorders = [border(true, false), border(false, true)]\n  const inputInsetFakeBorders = [border(true, true), border(false, false)]\n  const hoverGlow = {\n    x: 0,\n    y: 0,\n    blur: 4,\n    spread: 0,\n    color: '--faint',\n    alpha: 1\n  }\n\n  const 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    ...(input.shadows || {})\n  }\n\n  return {\n    rules: {\n      shadows: Object\n        .entries(shadows)\n      // TODO for v2.1: 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\nconst 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\nconst generatePreset = (input) => {\n  const shadows = generateShadows(input)\n  const colors = generateColors(input)\n  const radii = generateRadii(input)\n  const fonts = generateFonts(input)\n\n  return composePreset(colors, radii, shadows, fonts)\n}\n\nconst getThemes = () => {\n  return window.fetch('/static/styles.json')\n    .then((data) => data.json())\n    .then((themes) => {\n      return Promise.all(Object.entries(themes).map(([k, v]) => {\n        if (typeof v === 'object') {\n          return Promise.resolve([k, v])\n        } else if (typeof v === 'string') {\n          return window.fetch(v)\n            .then((data) => data.json())\n            .then((theme) => {\n              return [k, theme]\n            })\n            .catch((e) => {\n              console.error(e)\n              return []\n            })\n        }\n      }))\n    })\n    .then((promises) => {\n      return promises\n        .filter(([k, v]) => v)\n        .reduce((acc, [k, v]) => {\n          acc[k] = v\n          return acc\n        }, {})\n    })\n}\n\nconst setPreset = (val, commit) => {\n  return getThemes().then((themes) => {\n    const theme = themes[val] ? themes[val] : themes['pleroma-dark']\n    const isV1 = Array.isArray(theme)\n    const data = isV1 ? {} : theme.theme\n\n    if (isV1) {\n      const bgRgb = hex2rgb(theme[1])\n      const fgRgb = hex2rgb(theme[2])\n      const textRgb = hex2rgb(theme[3])\n      const linkRgb = hex2rgb(theme[4])\n\n      const cRedRgb = hex2rgb(theme[5] || '#FF0000')\n      const cGreenRgb = hex2rgb(theme[6] || '#00FF00')\n      const cBlueRgb = hex2rgb(theme[7] || '#0000FF')\n      const cOrangeRgb = hex2rgb(theme[8] || '#E3FF00')\n\n      data.colors = {\n        bg: bgRgb,\n        fg: fgRgb,\n        text: textRgb,\n        link: linkRgb,\n        cRed: cRedRgb,\n        cBlue: cBlueRgb,\n        cGreen: cGreenRgb,\n        cOrange: cOrangeRgb\n      }\n    }\n\n    // This is a hack, this function is only called during initial load.\n    // We want to cancel loading the theme from config.json if we're already\n    // loading a theme from the persisted state.\n    // Needed some way of dealing with the async way of things.\n    // load config -> set preset -> wait for styles.json to load ->\n    // load persisted state -> set colors -> styles.json loaded -> set colors\n    if (!window.themeLoaded) {\n      applyTheme(data, commit)\n    }\n  })\n}\n\nexport {\n  setStyle,\n  setPreset,\n  applyTheme,\n  getTextColor,\n  generateColors,\n  generateRadii,\n  generateShadows,\n  generateFonts,\n  generatePreset,\n  getThemes,\n  composePreset,\n  getCssShadow,\n  getCssShadowFilter\n}\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  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  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  },\n  webPushNotifications: false,\n  muteWords: [],\n  highlight: {},\n  interfaceLanguage: browserLocale,\n  hideScopeNotice: 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, commit)\n          break\n        case 'customTheme':\n          applyTheme(value, commit)\n      }\n    }\n  }\n}\n\nexport default config\n","import { set } from 'vue'\nimport { setPreset } from '../services/style_setter/style_setter.js'\nimport { instanceDefaultProperties } from './config.js'\n\nconst defaultState = {\n  // Stuff from static/config.json and apiConfig\n  name: 'Pleroma FE',\n  registrationOpen: true,\n  safeDM: true,\n  textlimit: 5000,\n  server: 'http://localhost:4040/',\n  theme: 'pleroma-dark',\n  background: '/static/aurora_borealis.jpg',\n  logo: '/static/logo.png',\n  logoMask: true,\n  logoMargin: '.2em',\n  redirectRootNoLogin: '/main/all',\n  redirectRootLogin: '/main/friends',\n  showInstanceSpecificPanel: false,\n  alwaysShowSubjectInput: true,\n  hideMutedPosts: false,\n  collapseMessageWithSubject: false,\n  hidePostStats: false,\n  hideUserStats: false,\n  hideFilteredStatuses: false,\n  disableChat: false,\n  scopeCopy: true,\n  subjectLineBehavior: 'email',\n  postContentType: 'text/plain',\n  hideSitename: false,\n  nsfwCensorImage: undefined,\n  vapidPublicKey: undefined,\n  noAttachmentLinks: false,\n  showFeaturesPanel: true,\n  minimalScopesMode: false,\n  greentext: false,\n\n  // Nasty stuff\n  pleromaBackend: true,\n  emoji: [],\n  emojiFetched: false,\n  customEmoji: [],\n  customEmojiFetched: false,\n  restrictedNicknames: [],\n  postFormats: [],\n\n  // Feature-set, apparently, not everything here is reported...\n  mediaProxyAvailable: false,\n  chatAvailable: false,\n  gopherAvailable: 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      }\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 }, themeName) {\n      commit('setInstanceOption', { name: 'theme', value: themeName })\n      return setPreset(themeName, commit)\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 { remove, slice, each, findIndex, find, maxBy, minBy, merge, first, last, isArray, omitBy } from 'lodash'\nimport { set } from 'vue'\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  ].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 (notification.type !== 'follow') {\n      notification.action = addStatusToGlobalStorage(state, notification.action).item\n      notification.status = notification.status && addStatusToGlobalStorage(state, notification.status).item\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        }\n\n        if (i18nString) {\n          notifObj.body = rootGetters.i18n.t('notifications.' + i18nString)\n        } else {\n          notifObj.body = notification.status.text\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 notification = new window.Notification(title, notifObj)\n          // Chrome is known for not closing notifications automatically\n          // according to MDN, anyway.\n          setTimeout(notification.close.bind(notification), 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    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  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  updateStatusWithPoll (state, { id, poll }) {\n    const status = state.allStatusesObject[id]\n    status.poll = poll\n  }\n}\n\nconst statuses = {\n  state: defaultState(),\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      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(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(status.id)\n        .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n    },\n    fetchPinnedStatuses ({ rootState, dispatch }, userId) {\n      rootState.api.backendInteractor.fetchPinnedStatuses(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(statusId)\n        .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n    },\n    unpinStatus ({ rootState, dispatch }, statusId) {\n      rootState.api.backendInteractor.unpinOwnStatus(statusId)\n        .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n    },\n    muteConversation ({ rootState, commit }, statusId) {\n      return rootState.api.backendInteractor.muteConversation(statusId)\n        .then((status) => commit('setMutedStatus', status))\n    },\n    unmuteConversation ({ rootState, commit }, statusId) {\n      return rootState.api.backendInteractor.unmuteConversation(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(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(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    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    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\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 unread = notifications.filter(n => !n.seen).map(n => n.id)\n    if (unread.length) {\n      args['since'] = Math.min(...unread)\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 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  const fetchStatus = ({ id }) => {\n    return apiService.fetchStatus({ id, credentials })\n  }\n\n  const fetchConversation = ({ id }) => {\n    return apiService.fetchConversation({ id, credentials })\n  }\n\n  const fetchFriends = ({ id, maxId, sinceId, limit }) => {\n    return apiService.fetchFriends({ id, maxId, sinceId, limit, credentials })\n  }\n\n  const exportFriends = ({ id }) => {\n    return apiService.exportFriends({ id, credentials })\n  }\n\n  const fetchFollowers = ({ id, maxId, sinceId, limit }) => {\n    return apiService.fetchFollowers({ id, maxId, sinceId, limit, credentials })\n  }\n\n  const fetchUser = ({ id }) => {\n    return apiService.fetchUser({ id, credentials })\n  }\n\n  const fetchUserRelationship = ({ id }) => {\n    return apiService.fetchUserRelationship({ id, credentials })\n  }\n\n  const followUser = ({ id, reblogs }) => {\n    return apiService.followUser({ credentials, id, reblogs })\n  }\n\n  const unfollowUser = (id) => {\n    return apiService.unfollowUser({ credentials, id })\n  }\n\n  const blockUser = (id) => {\n    return apiService.blockUser({ credentials, id })\n  }\n\n  const unblockUser = (id) => {\n    return apiService.unblockUser({ credentials, id })\n  }\n\n  const approveUser = (id) => {\n    return apiService.approveUser({ credentials, id })\n  }\n\n  const denyUser = (id) => {\n    return apiService.denyUser({ credentials, id })\n  }\n\n  const startFetchingTimeline = ({ timeline, store, userId = false, tag }) => {\n    return timelineFetcherService.startFetching({ timeline, store, credentials, userId, tag })\n  }\n\n  const startFetchingNotifications = ({ store }) => {\n    return notificationsFetcher.startFetching({ store, credentials })\n  }\n\n  const startFetchingFollowRequest = ({ store }) => {\n    return followRequestFetcher.startFetching({ store, credentials })\n  }\n\n  // eslint-disable-next-line camelcase\n  const tagUser = ({ screen_name }, tag) => {\n    return apiService.tagUser({ screen_name, tag, credentials })\n  }\n\n  // eslint-disable-next-line camelcase\n  const untagUser = ({ screen_name }, tag) => {\n    return apiService.untagUser({ screen_name, tag, credentials })\n  }\n\n  // eslint-disable-next-line camelcase\n  const addRight = ({ screen_name }, right) => {\n    return apiService.addRight({ screen_name, right, credentials })\n  }\n\n  // eslint-disable-next-line camelcase\n  const deleteRight = ({ screen_name }, right) => {\n    return apiService.deleteRight({ screen_name, right, credentials })\n  }\n\n  // eslint-disable-next-line camelcase\n  const setActivationStatus = ({ screen_name }, status) => {\n    return apiService.setActivationStatus({ screen_name, status, credentials })\n  }\n\n  // eslint-disable-next-line camelcase\n  const deleteUser = ({ screen_name }) => {\n    return apiService.deleteUser({ screen_name, credentials })\n  }\n\n  const vote = (pollId, choices) => {\n    return apiService.vote({ credentials, pollId, choices })\n  }\n\n  const fetchPoll = (pollId) => {\n    return apiService.fetchPoll({ credentials, pollId })\n  }\n\n  const updateNotificationSettings = ({ settings }) => {\n    return apiService.updateNotificationSettings({ credentials, settings })\n  }\n\n  const fetchMutes = () => apiService.fetchMutes({ credentials })\n  const muteUser = (id) => apiService.muteUser({ credentials, id })\n  const unmuteUser = (id) => apiService.unmuteUser({ credentials, id })\n  const subscribeUser = (id) => apiService.subscribeUser({ credentials, id })\n  const unsubscribeUser = (id) => apiService.unsubscribeUser({ credentials, id })\n  const fetchBlocks = () => apiService.fetchBlocks({ credentials })\n  const fetchOAuthTokens = () => apiService.fetchOAuthTokens({ credentials })\n  const revokeOAuthToken = (id) => apiService.revokeOAuthToken({ id, credentials })\n  const fetchPinnedStatuses = (id) => apiService.fetchPinnedStatuses({ credentials, id })\n  const pinOwnStatus = (id) => apiService.pinOwnStatus({ credentials, id })\n  const unpinOwnStatus = (id) => apiService.unpinOwnStatus({ credentials, id })\n  const muteConversation = (id) => apiService.muteConversation({ credentials, id })\n  const unmuteConversation = (id) => apiService.unmuteConversation({ credentials, id })\n\n  const getCaptcha = () => apiService.getCaptcha()\n  const register = (params) => apiService.register({ credentials, params })\n  const updateAvatar = ({ avatar }) => apiService.updateAvatar({ credentials, avatar })\n  const updateBg = ({ background }) => apiService.updateBg({ credentials, background })\n  const updateBanner = ({ banner }) => apiService.updateBanner({ credentials, banner })\n  const updateProfile = ({ params }) => apiService.updateProfile({ credentials, params })\n\n  const importBlocks = (file) => apiService.importBlocks({ file, credentials })\n  const importFollows = (file) => apiService.importFollows({ file, credentials })\n\n  const deleteAccount = ({ password }) => apiService.deleteAccount({ credentials, password })\n  const changeEmail = ({ email, password }) => apiService.changeEmail({ credentials, email, password })\n  const changePassword = ({ password, newPassword, newPasswordConfirmation }) =>\n    apiService.changePassword({ credentials, password, newPassword, newPasswordConfirmation })\n\n  const fetchSettingsMFA = () => apiService.settingsMFA({ credentials })\n  const generateMfaBackupCodes = () => apiService.generateMfaBackupCodes({ credentials })\n  const mfaSetupOTP = () => apiService.mfaSetupOTP({ credentials })\n  const mfaConfirmOTP = ({ password, token }) => apiService.mfaConfirmOTP({ credentials, password, token })\n  const mfaDisableOTP = ({ password }) => apiService.mfaDisableOTP({ credentials, password })\n\n  const fetchFavoritedByUsers = (id) => apiService.fetchFavoritedByUsers({ id })\n  const fetchRebloggedByUsers = (id) => apiService.fetchRebloggedByUsers({ id })\n  const reportUser = (params) => apiService.reportUser({ credentials, ...params })\n\n  const favorite = (id) => apiService.favorite({ id, credentials })\n  const unfavorite = (id) => apiService.unfavorite({ id, credentials })\n  const retweet = (id) => apiService.retweet({ id, credentials })\n  const unretweet = (id) => apiService.unretweet({ id, credentials })\n  const search2 = ({ q, resolve, limit, offset, following }) =>\n    apiService.search2({ credentials, q, resolve, limit, offset, following })\n  const searchUsers = (query) => apiService.searchUsers({ query, credentials })\n\n  const backendInteractorServiceInstance = {\n    fetchStatus,\n    fetchConversation,\n    fetchFriends,\n    exportFriends,\n    fetchFollowers,\n    followUser,\n    unfollowUser,\n    blockUser,\n    unblockUser,\n    fetchUser,\n    fetchUserRelationship,\n    verifyCredentials: apiService.verifyCredentials,\n    startFetchingTimeline,\n    startFetchingNotifications,\n    startFetchingFollowRequest,\n    fetchMutes,\n    muteUser,\n    unmuteUser,\n    subscribeUser,\n    unsubscribeUser,\n    fetchBlocks,\n    fetchOAuthTokens,\n    revokeOAuthToken,\n    fetchPinnedStatuses,\n    pinOwnStatus,\n    unpinOwnStatus,\n    muteConversation,\n    unmuteConversation,\n    tagUser,\n    untagUser,\n    addRight,\n    deleteRight,\n    deleteUser,\n    setActivationStatus,\n    register,\n    getCaptcha,\n    updateAvatar,\n    updateBg,\n    updateBanner,\n    updateProfile,\n    importBlocks,\n    importFollows,\n    deleteAccount,\n    changeEmail,\n    changePassword,\n    fetchSettingsMFA,\n    generateMfaBackupCodes,\n    mfaSetupOTP,\n    mfaConfirmOTP,\n    mfaDisableOTP,\n    approveUser,\n    denyUser,\n    vote,\n    fetchPoll,\n    fetchFavoritedByUsers,\n    fetchRebloggedByUsers,\n    reportUser,\n    favorite,\n    unfavorite,\n    retweet,\n    unretweet,\n    updateNotificationSettings,\n    search2,\n    searchUsers\n  }\n\n  return backendInteractorServiceInstance\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')\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'\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        }\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  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  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\nexport const mutations = {\n  setMuted (state, { user: { id }, muted }) {\n    const user = state.usersObject[id]\n    set(user, 'muted', muted)\n  },\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 }, status }) {\n    const user = state.usersObject[id]\n    set(user, 'deactivated', !status)\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) => mergeOrAdd(state.users, state.usersObject, user))\n  },\n  updateUserRelationship (state, relationships) {\n    relationships.forEach((relationship) => {\n      const user = state.usersObject[relationship.id]\n      if (user) {\n        user.follows_you = relationship.followed_by\n        user.following = relationship.following\n        user.muted = relationship.muting\n        user.statusnet_blocking = relationship.blocking\n        user.subscribed = relationship.subscribing\n        user.showing_reblogs = relationship.showing_reblogs\n      }\n    })\n  },\n  updateBlocks (state, blockedUsers) {\n    // Reset statusnet_blocking of all fetched users\n    each(state.users, (user) => { user.statusnet_blocking = false })\n    each(blockedUsers, (user) => mergeOrAdd(state.users, state.usersObject, user))\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  updateMutes (state, mutedUsers) {\n    // Reset muted of all fetched users\n    each(state.users, (user) => { user.muted = false })\n    each(mutedUsers, (user) => mergeOrAdd(state.users, state.usersObject, user))\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  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}\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}\n\nexport const defaultState = {\n  loggingIn: false,\n  lastLoginName: false,\n  currentUser: false,\n  users: [],\n  usersObject: {},\n  signUpPending: false,\n  signUpErrors: []\n}\n\nconst users = {\n  state: defaultState,\n  mutations,\n  getters,\n  actions: {\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('updateBlocks', 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('updateMutes', mutes)\n          store.commit('saveMuteIds', map(mutes, 'id'))\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    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    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 notificationIds = notifications.map(_ => _.id)\n      store.commit('addNewUsers', users)\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(userInfo)\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('stopFetching', 'friends')\n          store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n          store.dispatch('stopFetching', 'notifications')\n          store.dispatch('stopFetching', 'followRequest')\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              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              // Start getting fresh posts.\n              store.dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n              // Start fetching notifications\n              store.dispatch('startFetchingNotifications')\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    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 }) {\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    startFetchingTimeline (store, { timeline = 'friends', tag = false, userId = false }) {\n      // Don't start fetching if we already are.\n      if (store.state.fetchers[timeline]) return\n\n      const fetcher = store.state.backendInteractor.startFetchingTimeline({ timeline, store, userId, tag })\n      store.commit('addFetcher', { fetcherName: timeline, fetcher })\n    },\n    startFetchingNotifications (store) {\n      // Don't start fetching if we already are.\n      if (store.state.fetchers['notifications']) return\n\n      const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })\n      store.commit('addFetcher', { fetcherName: 'notifications', fetcher })\n    },\n    startFetchingFollowRequest (store) {\n      // Don't start fetching if we already are.\n      if (store.state.fetchers['followRequest']) return\n\n      const fetcher = store.state.backendInteractor.startFetchingFollowRequest({ store })\n      store.commit('addFetcher', { fetcherName: 'followRequest', fetcher })\n    },\n    stopFetching (store, fetcherName) {\n      const fetcher = store.state.fetchers[fetcherName]\n      window.clearInterval(fetcher)\n      store.commit('removeFetcher', { fetcherName })\n    },\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    removeFollowRequest (store, request) {\n      let requests = store.state.followRequests.filter((it) => it !== request)\n      store.commit('setFollowRequests', requests)\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 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    },\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('stopFetching', '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('stopFetching', '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('stopFetching', '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 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 { 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  },\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  },\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    userInStore () {\n      return this.$store.getters.findUser(this.notification.from_profile.id)\n    },\n    user () {\n      if (this.userInStore) {\n        return this.userInStore\n      }\n      return this.notification.from_profile\n    },\n    userProfileLink () {\n      return this.generateUserProfileLink(this.user)\n    },\n    needMute () {\n      return this.user.muted\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-b3ea6222\\\",\\\"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\":_vm.getUser(_vm.notification),\"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('span',{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')?_c('div',{staticClass:\"timeago\"},[_c('span',{staticClass:\"faint\"},[_c('Timeago',{attrs:{\"time\":_vm.notification.created_at,\"auto-update\":240}})],1)]):_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._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')?_c('div',{staticClass:\"follow-text\"},[_c('router-link',{attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n          @\"+_vm._s(_vm.notification.from_profile.screen_name)+\"\\n        \")])],1):[_c('status',{staticClass:\"faint\",attrs:{\"compact\":true,\"statusoid\":_vm.notification.action,\"no-heading\":true}})]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { filter, sortBy } 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].filter(_ => _))\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 visibleNotificationsFromStore = (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(visibleNotificationsFromStore(store), ({ seen }) => !seen)\n","import Notification from '../notification/notification.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n  notificationsFromStore,\n  visibleNotificationsFromStore,\n  unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\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    }\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    visibleNotifications () {\n      return visibleNotificationsFromStore(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  },\n  components: {\n    Notification\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    },\n    fetchOlderNotifications () {\n      if (this.loading) {\n        return\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      })\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-329c7806\\\",\\\"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.visibleNotifications),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}\n\nconst Interactions = {\n  data () {\n    return {\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-956f2436\\\",\\\"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(\" \"),_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 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-effb8e08\\\",\\\"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\":_vm.user,\"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 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  }\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-5b90ae69\\\",\\\"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.user.follows_you)?_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.user.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:{\"user\":_vm.user,\"label-following\":_vm.$t('user_card.follow_unfollow')}})]],2)])}\nvar staticRenderFns = []\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 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('stopFetching', 'user')\n      this.$store.dispatch('stopFetching', 'favorites')\n      this.$store.dispatch('stopFetching', '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-17386938\\\",\\\"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\":_vm.user,\"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 }","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!./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-a377bb38\\\",\\\"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","<template>\n  <div\n    class=\"color-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 exlcude-disabled\"\n      type=\"checkbox\"\n      :checked=\"present\"\n      @input=\"$emit('input', typeof value === 'undefined' ? 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=\"color-input\"\n      type=\"color\"\n      :value=\"value || fallback\"\n      :disabled=\"!present || disabled\"\n      @input=\"$emit('input', $event.target.value)\"\n    >\n    <input\n      :id=\"name + '-t'\"\n      class=\"text-input\"\n      type=\"text\"\n      :value=\"value || fallback\"\n      :disabled=\"!present || disabled\"\n      @input=\"$emit('input', $event.target.value)\"\n    >\n  </div>\n</template>\n\n<script>\nexport default {\n  props: [\n    'name', 'label', 'value', 'fallback', 'disabled'\n  ],\n  computed: {\n    present () {\n      return typeof this.value !== 'undefined'\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"color-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 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('input',{staticClass:\"color-input\",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._v(\" \"),_c('input',{staticClass:\"text-input\",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)}}})])}\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-81777656\\\",\\\"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 exclude-disabled\"\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 exclude-disabled\",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 }","/* 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-87056ae2\\\",\\\"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","<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    <input\n      v-if=\"typeof fallback !== 'undefined'\"\n      :id=\"name + '-o'\"\n      class=\"opt exclude-disabled\"\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=\"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>\nexport default {\n  props: [\n    'name', 'value', 'fallback', 'disabled'\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:\"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('input',{staticClass:\"opt exclude-disabled\",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\":\"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)}}})])}\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\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 || []\n    }\n  },\n  components: {\n    ColorInput,\n    OpacityInput\n  },\n  methods: {\n    add () {\n      this.cValue.push(Object.assign({}, 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 : this.selectedId - 1\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    selected () {\n      if (this.ready && this.cValue.length > 0) {\n        return this.cValue[this.selectedId]\n      } else {\n        return {\n          x: 0,\n          y: 0,\n          blur: 0,\n          spread: 0,\n          inset: false,\n          color: '#000000',\n          alpha: 1\n        }\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.cValue)\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-4f14fbae\\\",\\\"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'),\"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('p',[_vm._v(\"\\n      \"+_vm._s(_vm.$t('settings.style.shadows.hint'))+\"\\n    \")])],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 }","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-3203db10\\\",\\\"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","<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', 'contrast'\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","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 }","/* 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-e47f8928\\\",\\\"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__ = 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 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\"},[_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) // 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-35d05e9f\\\",\\\"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 { rgb2hex, hex2rgb, getContrastRatio, alphaBlend } from '../../services/color_convert/color_convert.js'\nimport { set, delete as del } from 'vue'\nimport { generateColors, generateShadows, generateRadii, generateFonts, composePreset, getThemes } from '../../services/style_setter/style_setter.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\nexport default {\n  data () {\n    return {\n      availableStyles: [],\n      selected: this.$store.getters.mergedConfig.theme,\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      textColorLocal: '',\n      linkColorLocal: '',\n\n      bgColorLocal: '',\n      bgOpacityLocal: undefined,\n\n      fgColorLocal: '',\n      fgTextColorLocal: undefined,\n      fgLinkColorLocal: undefined,\n\n      btnColorLocal: undefined,\n      btnTextColorLocal: undefined,\n      btnOpacityLocal: undefined,\n\n      inputColorLocal: undefined,\n      inputTextColorLocal: undefined,\n      inputOpacityLocal: undefined,\n\n      panelColorLocal: undefined,\n      panelTextColorLocal: undefined,\n      panelLinkColorLocal: undefined,\n      panelFaintColorLocal: undefined,\n      panelOpacityLocal: undefined,\n\n      topBarColorLocal: undefined,\n      topBarTextColorLocal: undefined,\n      topBarLinkColorLocal: undefined,\n\n      alertErrorColorLocal: undefined,\n      alertWarningColorLocal: undefined,\n\n      badgeOpacityLocal: undefined,\n      badgeNotificationColorLocal: undefined,\n\n      borderColorLocal: undefined,\n      borderOpacityLocal: undefined,\n\n      faintColorLocal: undefined,\n      faintOpacityLocal: undefined,\n      faintLinkColorLocal: undefined,\n\n      cRedColorLocal: '',\n      cBlueColorLocal: '',\n      cGreenColorLocal: '',\n      cOrangeColorLocal: '',\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    }\n  },\n  created () {\n    const self = this\n\n    getThemes().then((themesComplete) => {\n      self.availableStyles = themesComplete\n    })\n  },\n  mounted () {\n    this.normalizeLocalState(this.$store.getters.mergedConfig.customTheme)\n    if (typeof this.shadowSelected === 'undefined') {\n      this.shadowSelected = this.shadowsAvailable[0]\n    }\n  },\n  computed: {\n    selectedVersion () {\n      return Array.isArray(this.selected) ? 1 : 2\n    },\n    currentColors () {\n      return {\n        bg: this.bgColorLocal,\n        text: this.textColorLocal,\n        link: this.linkColorLocal,\n\n        fg: this.fgColorLocal,\n        fgText: this.fgTextColorLocal,\n        fgLink: this.fgLinkColorLocal,\n\n        panel: this.panelColorLocal,\n        panelText: this.panelTextColorLocal,\n        panelLink: this.panelLinkColorLocal,\n        panelFaint: this.panelFaintColorLocal,\n\n        input: this.inputColorLocal,\n        inputText: this.inputTextColorLocal,\n\n        topBar: this.topBarColorLocal,\n        topBarText: this.topBarTextColorLocal,\n        topBarLink: this.topBarLinkColorLocal,\n\n        btn: this.btnColorLocal,\n        btnText: this.btnTextColorLocal,\n\n        alertError: this.alertErrorColorLocal,\n        alertWarning: this.alertWarningColorLocal,\n        badgeNotification: this.badgeNotificationColorLocal,\n\n        faint: this.faintColorLocal,\n        faintLink: this.faintLinkColorLocal,\n        border: this.borderColorLocal,\n\n        cRed: this.cRedColorLocal,\n        cBlue: this.cBlueColorLocal,\n        cGreen: this.cGreenColorLocal,\n        cOrange: this.cOrangeColorLocal\n      }\n    },\n    currentOpacity () {\n      return {\n        bg: this.bgOpacityLocal,\n        btn: this.btnOpacityLocal,\n        input: this.inputOpacityLocal,\n        panel: this.panelOpacityLocal,\n        topBar: this.topBarOpacityLocal,\n        border: this.borderOpacityLocal,\n        faint: this.faintOpacityLocal\n      }\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      }\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      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\n      // fgsfds :DDDD\n      const fgs = {\n        text: hex2rgb(colors.text),\n        panelText: hex2rgb(colors.panelText),\n        panelLink: hex2rgb(colors.panelLink),\n        btnText: hex2rgb(colors.btnText),\n        topBarText: hex2rgb(colors.topBarText),\n        inputText: hex2rgb(colors.inputText),\n\n        link: hex2rgb(colors.link),\n        topBarLink: hex2rgb(colors.topBarLink),\n\n        red: hex2rgb(colors.cRed),\n        green: hex2rgb(colors.cGreen),\n        blue: hex2rgb(colors.cBlue),\n        orange: hex2rgb(colors.cOrange)\n      }\n\n      const bgs = {\n        bg: hex2rgb(colors.bg),\n        btn: hex2rgb(colors.btn),\n        panel: hex2rgb(colors.panel),\n        topBar: hex2rgb(colors.topBar),\n        input: hex2rgb(colors.input),\n        alertError: hex2rgb(colors.alertError),\n        alertWarning: hex2rgb(colors.alertWarning),\n        badgeNotification: hex2rgb(colors.badgeNotification)\n      }\n\n      /* This is a bit confusing because \"bottom layer\" used is text color\n       * This is done to get worst case scenario when background below transparent\n       * layer matches text color, making it harder to read the lower alpha is.\n       */\n      const ratios = {\n        bgText: getContrastRatio(alphaBlend(bgs.bg, opacity.bg, fgs.text), fgs.text),\n        bgLink: getContrastRatio(alphaBlend(bgs.bg, opacity.bg, fgs.link), fgs.link),\n        bgRed: getContrastRatio(alphaBlend(bgs.bg, opacity.bg, fgs.red), fgs.red),\n        bgGreen: getContrastRatio(alphaBlend(bgs.bg, opacity.bg, fgs.green), fgs.green),\n        bgBlue: getContrastRatio(alphaBlend(bgs.bg, opacity.bg, fgs.blue), fgs.blue),\n        bgOrange: getContrastRatio(alphaBlend(bgs.bg, opacity.bg, fgs.orange), fgs.orange),\n\n        tintText: getContrastRatio(alphaBlend(bgs.bg, 0.5, fgs.panelText), fgs.text),\n\n        panelText: getContrastRatio(alphaBlend(bgs.panel, opacity.panel, fgs.panelText), fgs.panelText),\n        panelLink: getContrastRatio(alphaBlend(bgs.panel, opacity.panel, fgs.panelLink), fgs.panelLink),\n\n        btnText: getContrastRatio(alphaBlend(bgs.btn, opacity.btn, fgs.btnText), fgs.btnText),\n\n        inputText: getContrastRatio(alphaBlend(bgs.input, opacity.input, fgs.inputText), fgs.inputText),\n\n        topBarText: getContrastRatio(alphaBlend(bgs.topBar, opacity.topBar, fgs.topBarText), fgs.topBarText),\n        topBarLink: getContrastRatio(alphaBlend(bgs.topBar, opacity.topBar, fgs.topBarLink), fgs.topBarLink)\n      }\n\n      return Object.entries(ratios).reduce((acc, [k, v]) => { acc[k] = hints(v); return acc }, {})\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(this.previewTheme.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 theme = {}\n\n      if (this.keepFonts || saveEverything) {\n        theme.fonts = this.fontsLocal\n      }\n      if (this.keepShadows || saveEverything) {\n        theme.shadows = this.shadowsLocal\n      }\n      if (this.keepOpacity || saveEverything) {\n        theme.opacity = this.currentOpacity\n      }\n      if (this.keepColor || saveEverything) {\n        theme.colors = this.currentColors\n      }\n      if (this.keepRoundness || saveEverything) {\n        theme.radii = this.currentRadii\n      }\n\n      return {\n        // To separate from other random JSON files and possible future theme formats\n        _pleroma_theme_version: 2, theme\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    setCustomTheme () {\n      this.$store.dispatch('setOption', {\n        name: 'customTheme',\n        value: {\n          shadows: this.shadowsLocal,\n          fonts: this.fontsLocal,\n          opacity: this.currentOpacity,\n          colors: this.currentColors,\n          radii: this.currentRadii\n        }\n      })\n    },\n    onImport (parsed) {\n      if (parsed._pleroma_theme_version === 1) {\n        this.normalizeLocalState(parsed, 1)\n      } else if (parsed._pleroma_theme_version === 2) {\n        this.normalizeLocalState(parsed.theme, 2)\n      }\n    },\n    importValidator (parsed) {\n      const version = parsed._pleroma_theme_version\n      return version >= 1 || version <= 2\n    },\n    clearAll () {\n      const state = this.$store.getters.mergedConfig.customTheme\n      const version = state.colors ? 2 : 'l1'\n      this.normalizeLocalState(this.$store.getters.mergedConfig.customTheme, version)\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     * 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} input - input data\n     * @param {Number} version - version of data. 0 means try to guess based on data. \"l1\" means v1, locastorage type\n     */\n    normalizeLocalState (input, version = 0) {\n      const colors = input.colors || input\n      const radii = input.radii || input\n      const opacity = input.opacity\n      const shadows = input.shadows || {}\n      const fonts = input.fonts || {}\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      // 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(colors) : [])\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          this[key + 'ColorLocal'] = rgb2hex(colors[key])\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        this.shadowsLocal = shadows\n        this.shadowSelected = this.shadowsAvailable[0]\n      }\n\n      if (!this.keepFonts) {\n        this.clearFonts()\n        this.fontsLocal = fonts\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  },\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        try {\n          this.previewShadows = generateShadows({ shadows: this.shadowsLocal })\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.previewColors = generateColors({\n          opacity: this.currentOpacity,\n          colors: this.currentColors\n        })\n        this.colorsInvalid = false\n      } catch (e) {\n        this.colorsInvalid = true\n        console.warn(e)\n      }\n    },\n    currentOpacity () {\n      try {\n        this.previewColors = generateColors({\n          opacity: this.currentOpacity,\n          colors: this.currentColors\n        })\n      } catch (e) {\n        console.warn(e)\n      }\n    },\n    selected () {\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)\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-1bd287ab\\\",\\\"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\"},[_c('export-import',{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.colors.bg,\n                    color: style[3] || style.theme.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('div',{staticClass:\"preview-container\"},[_c('preview',{style:(_vm.previewRules)})],1),_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 || 1},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\":\"linkColor\",\"label\":_vm.$t('settings.links')},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.bgRed}}),_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.bgBlue}})],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.bgGreen}}),_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.bgOrange}})],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.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('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertError}}),_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('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertWarning}})],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\"}})],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.fgColorLocal,\"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 || 1},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\":\"1\"}}),_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\":\"1\"}})],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.fgColorLocal,\"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.fgColorLocal,\"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 || 1},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.fgColorLocal,\"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 || 1},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}})],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 || 1},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 || 1,\"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 || 0.5},model:{value:(_vm.faintOpacityLocal),callback:function ($$v) {_vm.faintOpacityLocal=$$v},expression:\"faintOpacityLocal\"}})],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\"}})],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('shadow-control',{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)\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  },\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-1e697ee0\\\",\\\"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.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('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('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, 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    user: {\n      email: { required },\n      username: { required },\n      fullname: { required },\n      password: { required },\n      confirm: {\n        required,\n        sameAsPassword: sameAs('password')\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    })\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        }\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-052e618a\\\",\\\"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('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\"},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    blocked () {\n      return this.user.statusnet_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    muted () {\n      return this.user.muted\n    }\n  },\n  components: {\n    BasicUserCard\n  },\n  methods: {\n    unmuteUser () {\n      this.progress = true\n      this.$store.dispatch('unmuteUser', this.user.id).then(() => {\n        this.progress = false\n      })\n    },\n    muteUser () {\n      this.progress = true\n      this.$store.dispatch('muteUser', this.user.id).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 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-1c291d00\\\",\\\"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-5fe32d1d\\\",\\\"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.fetchSettingsMFA()\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 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 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      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    }\n  },\n  created () {\n    this.$store.dispatch('fetchTokens')\n  },\n  components: {\n    StyleSwitcher,\n    ScopeSelector,\n    TabSwitcher,\n    ImageCropper,\n    BlockList,\n    MuteList,\n    EmojiInput,\n    Autosuggest,\n    BlockCard,\n    MuteCard,\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: (input) => this.$store.dispatch('searchUsers', input)\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            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 user = this.$store.getters.findUser(userId)\n        return !user || user.statusnet_blocking || user.id === this.$store.state.users.currentUser.id\n      })\n    },\n    filterUnMutedUsers (userIds) {\n      return reject(userIds, (userId) => {\n        const user = this.$store.getters.findUser(userId)\n        return !user || user.muted || user.id === 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    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-03c978b8\\\",\\\"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(\" \"),(_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('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('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('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)])],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst FollowRequestCard = {\n  props: ['user'],\n  components: {\n    BasicUserCard\n  },\n  methods: {\n    approveUser () {\n      this.$store.state.api.backendInteractor.approveUser(this.user.id)\n      this.$store.dispatch('removeFollowRequest', this.user)\n    },\n    denyUser () {\n      this.$store.state.api.backendInteractor.denyUser(this.user.id)\n      this.$store.dispatch('removeFollowRequest', this.user)\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 BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n  components: {\n    BasicUserCard\n  },\n  computed: {\n    staffAccounts () {\n      return this.$store.state.instance.staffAccounts\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    }),\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  }\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-33779bcf\\\",\\\"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.federation\"))+\"\\n      \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"mrf-section\"},[_c('h2',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policies\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.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_policy_simple\"))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.acceptInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_simple_accept\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_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_policy_simple_reject\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_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_policy_simple_quarantine\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_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_policy_simple_ftl_removal\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_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_policy_simple_media_nsfw\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_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_policy_simple_media_removal\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf_policy_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._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 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: '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-0c6dc368\\\",\\\"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\":_vm.user,\"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 } from 'vuex'\n\nconst NavPanel = {\n  created () {\n    if (this.currentUser && this.currentUser.locked) {\n      this.$store.dispatch('startFetchingFollowRequest')\n    }\n  },\n  computed: 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}\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-480a02e7\\\",\\\"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 && _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.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 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('startFetchingFollowRequest')\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  },\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-ce04f07e\\\",\\\"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\":_vm.currentUser,\"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        \")])],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.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(\" \"),(_vm.currentUser && _vm.chat)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'chat' }}},[_c('i',{staticClass:\"button-icon icon-chat\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.chat\"))+\"\\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 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      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  }),\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}\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-76750a9c\\\",\\\"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:\"container\",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\":\"fade\"}},[_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'\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 = async ({ store, accounts }) => {\n  const backendInteractor = store.state.api.backendInteractor\n  let nicknames = accounts.map(uri => uri.split('/').pop())\n    .map(id => backendInteractor.fetchUser({ id }))\n  nicknames = await Promise.all(nicknames)\n\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      store.dispatch('setInstanceOption', { name: 'tagPolicyAvailable', value: metadata.federation.mrf_policies.includes('TagPolicy') })\n\n      const federation = metadata.federation\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 accounts = metadata.staffAccounts\n      await 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.log(e)\n      }\n    }\n    resolve()\n  })\n}\n\nconst afterStoreSetup = async ({ store, i18n }) => {\n  if (store.state.config.customTheme) {\n    // This is a hack to deal with async loading of config.json and themes\n    // See: style_setter.js, setPreset()\n    window.themeLoaded = true\n    store.dispatch('setOption', {\n      name: 'customTheme',\n      value: store.state.config.customTheme\n    })\n  }\n\n  const width = windowWidth()\n  store.dispatch('setMobileLayout', width <= 800)\n\n  // Now we can try getting the server settings and logging in\n  await Promise.all([\n    checkOAuthToken({ store }),\n    setConfig({ store }),\n    getTOS({ store }),\n    getInstancePanel({ store }),\n    getStickers({ store }),\n    getNodeInfo({ store })\n  ])\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 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'\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'\nimport VTooltip from 'v-tooltip'\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)\nVue.use(VTooltip, {\n  popover: {\n    defaultTrigger: 'hover click',\n    defaultContainer: false,\n    defaultOffset: 5\n  }\n})\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    },\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":""}