pleroma/priv/static/static/js/app.eb7444df7c8e44e553de.js.map

1 line
1.4 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"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?ff99","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/video_attachment/video_attachment.js","webpack:///./src/components/video_attachment/video_attachment.vue","webpack:///./src/components/video_attachment/video_attachment.vue?695e","webpack:///./src/components/remote_follow/remote_follow.js","webpack:///./src/components/remote_follow/remote_follow.vue","webpack:///./src/components/remote_follow/remote_follow.vue?deba","webpack:///./src/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?4821","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?a489","webpack:///./src/components/interactions/interactions.js","webpack:///./src/components/interactions/interactions.vue","webpack:///./src/components/interactions/interactions.vue?5f50","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?31ac","webpack:///./src/components/registration/registration.js","webpack:///./src/components/registration/registration.vue","webpack:///./src/components/registration/registration.vue?95c8","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?e1d8","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","errorContents","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","_","getMastodonSocketURI","_ref74","stream","_ref74$args","access_token","_ref75","_ref76","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","Set","ProcessedWS","_ref77","_ref77$preprocessor","preprocessor","handleMastoWS","_ref77$id","eventTarget","EventTarget","socket","WebSocket","proxy","original","eventName","processor","arguments","addEventListener","eventData","dispatchEvent","CustomEvent","detail","wsEvent","debug","code","close","parsedEvent","has","warn","notification","apiService","verifyCredentials","fetchTimeline","_ref36","timeline","_ref36$since","since","_ref36$until","until","_ref36$userId","userId","_ref36$tag","_ref36$withMuted","withMuted","isNotifications","public","friends","dms","notifications","publicAndExternal","media","favorites","queryString","map_default","param","statusText","fetchPinnedStatuses","_ref37","fetchConversation","_ref26","urlContext","MASTODON_STATUS_CONTEXT_URL","_ref27","ancestors","descendants","fetchStatus","_ref28","MASTODON_STATUS_URL","exportFriends","_ref23","more","users","regenerator_default","async","_context","prev","next","last_default","awrap","sent","concat_default","t0","stop","fetchFollowers","_ref24","_ref24$limit","MASTODON_FOLLOWERS_URL","followUser","_ref10","objectWithoutProperties_default","MASTODON_FOLLOW_URL","form","reblogs","unfollowUser","_ref11","MASTODON_UNFOLLOW_URL","pinOwnStatus","_ref12","unpinOwnStatus","_ref13","muteConversation","_ref14","unmuteConversation","_ref15","blockUser","_ref16","MASTODON_BLOCK_USER_URL","unblockUser","_ref17","MASTODON_UNBLOCK_USER_URL","fetchUser","_ref20","fetchUserRelationship","_ref21","favorite","_ref38","unfavorite","_ref39","retweet","_ref40","unretweet","_ref41","postStatus","_ref42","spoilerText","_ref42$mediaIds","mediaIds","inReplyToStatusId","contentType","FormData","pollOptions","append","forEach","some","option","normalizedPoll","expires_in","expiresIn","multiple","deleteStatus","_ref43","MASTODON_DELETE_URL","uploadMedia","_ref44","formData","fetchMutes","_ref55","muteUser","_ref56","unmuteUser","_ref57","subscribeUser","_ref60","unsubscribeUser","_ref61","fetchBlocks","_ref62","fetchOAuthTokens","_ref63","revokeOAuthToken","_ref64","tagUser","_ref29","nicknames","untagUser","_ref30","deleteUser","_ref35","addRight","_ref31","deleteRight","_ref32","activateUser","_ref33","nickname","get_default","deactivateUser","_ref34","register","_ref9","rest","locale","agreement","getCaptcha","resp","updateAvatar","_ref5","updateBg","_ref6","background","updateProfile","_ref8","updateBanner","_ref7","banner","importBlocks","_ref45","file","importFollows","_ref46","deleteAccount","_ref47","password","changeEmail","_ref48","email","changePassword","_ref49","newPassword","newPasswordConfirmation","settingsMFA","_ref50","mfaDisableOTP","_ref51","generateMfaBackupCodes","_ref54","mfaSetupOTP","_ref53","mfaConfirmOTP","_ref52","fetchFollowRequests","_ref25","approveUser","_ref18","MASTODON_APPROVE_USER_URL","denyUser","_ref19","MASTODON_DENY_USER_URL","suggestions","_ref65","markNotificationsAsSeen","_ref66","vote","_ref67","pollId","choices","fetchPoll","_ref68","fetchFavoritedByUsers","_ref69","fetchRebloggedByUsers","_ref70","fetchMascot","_ref58","updateMascot","_ref59","mascot","reportUser","_ref71","statusIds","comment","forward","account_id","status_ids","updateNotificationSettings","_ref4","settings","each_default","search2","_ref73","q","offset","accounts","u","statuses","searchUsers","_ref72","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","hasTagPolicy","$store","state","instance","tagPolicyAvailable","methods","hasTag","tagName","toggleTag","store","api","backendInteractor","commit","toggleRight","_this2","toggleActivationStatus","dispatch","deleteUserDialog","show","_this3","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","_this4","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","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","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","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","loopVideo","onVideoDataLoad","srcElement","webkitAudioDecodedByteCount","loopVideoSilentOnly","mozHasAudio","audioTracks","video_attachment","loop","playsinline","loadeddata","remote_follow","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","moves","webPushNotifications","interfaceLanguage","navigator","language","useStreamingApi","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","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","i18nString","notifObj","i18n","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","readNotifsIds","notificationsFetcher","requests","followRequestFetcher","backendInteractorService","backend_interactor_service_objectSpread","startFetchingTimeline","_ref$userId","timelineFetcherService","startFetchingNotifications","fetchAndUpdateNotifications","startFetchingFollowRequest","startUserSocket","func","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","getTokenWithCredentials","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","isPushSupported","getOrCreateServiceWorker","runtime","deleteSubscriptionFromBackEnd","registerPushNotifications","isEnabled","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","from","charCodeAt","pushManager","subscribe","subscribePush","subscription","alerts","mention","move","responseData","sendSubscriptionToBackEnd","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","mascotUrl","setPinnedToUser","setUserForStatus","setUserForNotification","setColor","signUpSuccess","signUpFailure","blocks","blockUsers","ids","unblockUsers","mutes","hideReblogs","showReblogs","muteUsers","unmuteUsers","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","compact_default","targetUsers","notificationIds","notificationsObject","relevantNotifications","signUp","userInfo","users_objectSpread","abrupt","logout","_store$rootState","oauthApi","userToken","loginUser","requestPermission","startPolling","fetchers","mastoUserSocket","followRequests","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","clearInterval","setWsToken","wsToken","setSocket","setFollowRequests","enableMastoSockets","disableMastoSockets","startMastoUserSocket","closeEvent","ignoreCodes","restartMastoUserSocket","stopMastoUserSocket","_ref8$timeline","_ref8$tag","_ref8$userId","stopFetchingTimeline","stopFetchingNotifications","startFetchingFollowRequests","stopFetchingFollowRequests","removeFollowRequest","it","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","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","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","targetUser","targetUserProfileLink","needMute","notification_notification","no-heading","notificationsFromStore","filteredNotificationsFromStore","sortedNotifications","sortBy_default","visibleTypes","unseenNotificationsFromStore","Notifications","minimalMode","filterMode","seenToDisplayCount","mainClass","unseenNotifications","filteredNotifications","unseenCount","notificationsToDisplay","markAsSeen","fetchOlderNotifications","seenCount","notifs","notifications_vue_styles_","components_notifications_notifications","notifications_notifications","minimal","unseen","tabModeDict","likes+repeats","Interactions","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","stopFetching","isUs","followsTabVisible","followersTabVisible","userNameOrId","loadById","reason","errorMessage","switchUser","onTabSwitch","$route.params.id","$route.params.name","$route.query","user_profile_vue_styles_","user_profile_user_profile","user_profile","viewing","allow-zooming-avatar","active-tab","render-only-focused","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","components_settings_settings","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","mascotPreview","mascotUploadError","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","submitMascot","_this6","mascotUploading","generateExportableUsersContent","hostname","getFollowsContent","getBlocksContent","confirmDelete","_this7","_this8","_this9","filterUnblockedUsers","_this10","filterUnMutedUsers","_this11","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","user_reporting_modal_objectSpread","isChecked","toggleStatus","user_reporting_modal_vue_styles_","user_reporting_modal_user_reporting_modal","user_reporting_modal","PostStatusModal","resettingForm","isFormVisible","post_status_modal_vue_styles_","post_status_modal_post_status_modal","post_status_modal","is-open","_b","windowWidth","App","mobileActivePanel","searchBarHidden","supportsMask","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.eb7444df7c8e44e553de.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\":\"8896ea39a0ea8016391a\"}[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' || output.type === 'move'\n ? null\n : parseStatus(data.status)\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n } 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 const errorContents = JSON.parse(error.error)\n // keys will have the property that has the error, for example 'ap_id',\n // 'email' or 'captcha', the value will be an array of its error\n // like \"ap_id\": [\"has been taken\"] or \"captcha\": [\"Invalid CAPTCHA\"]\n\n // replace ap_id with username\n if (errorContents.ap_id) {\n errorContents.username = errorContents.ap_id\n delete errorContents.ap_id\n }\n\n this.message = humanizeErrors(errorContents)\n } else {\n this.message = error\n }\n } catch (e) {\n // can't parse it, so just treat it like a string\n this.message = error\n }\n }\n}\n","import { capitalize } from 'lodash'\n\nexport function humanizeErrors (errors) {\n return Object.entries(errors).reduce((errs, [k, val]) => {\n let message = val.reduce((acc, message) => {\n let key = capitalize(k.replace(/_/g, ' '))\n return acc + [key, message].join(' ') + '. '\n }, '')\n return [...errs, message]\n }, [])\n}\n","import { each, map, concat, last, get } from 'lodash'\nimport { parseStatus, parseUser, parseNotification, parseAttachment } 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 ACTIVATE_USER_URL = '/api/pleroma/admin/users/activate'\nconst DEACTIVATE_USER_URL = '/api/pleroma/admin/users/deactivate'\nconst ADMIN_USERS_URL = '/api/pleroma/admin/users'\nconst SUGGESTIONS_URL = '/api/v1/suggestions'\nconst NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'\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'\nconst MASTODON_MASCOT_URL = '/api/v1/pleroma/mascot'\nconst MASTODON_STREAMING = '/api/v1/streaming'\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 activateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: ACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deactivateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: DEACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deleteUser = ({ credentials, ...user }) => {\n const screenName = user.screen_name\n const headers = authHeaders(credentials)\n\n return fetch(`${ADMIN_USERS_URL}?nickname=${screenName}`, {\n method: 'DELETE',\n headers: headers\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n tag = false,\n withMuted = false\n}) => {\n const timelineUrls = {\n public: MASTODON_PUBLIC_TIMELINE,\n friends: MASTODON_USER_HOME_TIMELINE_URL,\n dms: MASTODON_DIRECT_MESSAGES_TIMELINE_URL,\n notifications: MASTODON_USER_NOTIFICATIONS_URL,\n 'publicAndExternal': MASTODON_PUBLIC_TIMELINE,\n user: MASTODON_USER_TIMELINE_URL,\n media: MASTODON_USER_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n\n params.push(['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 fetchMascot = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_MASCOT_URL, credentials })\n}\n\nconst updateMascot = ({ mascot, credentials }) => {\n const form = new FormData()\n form.append('file', mascot)\n return fetch(MASTODON_MASCOT_URL, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_BLOCKS_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst fetchOAuthTokens = ({ credentials }) => {\n const url = '/api/oauth_tokens.json'\n\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => {\n if (data.ok) {\n return data.json()\n }\n throw new Error('Error fetching auth tokens', data)\n })\n}\n\nconst revokeOAuthToken = ({ id, credentials }) => {\n const url = `/api/oauth_tokens/${id}`\n\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst suggestions = ({ credentials }) => {\n return fetch(SUGGESTIONS_URL, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst markNotificationsAsSeen = ({ id, credentials }) => {\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\nexport const getMastodonSocketURI = ({ credentials, stream, args = {} }) => {\n return Object.entries({\n ...(credentials\n ? { access_token: credentials }\n : {}\n ),\n stream,\n ...args\n }).reduce((acc, [key, val]) => {\n return acc + `${key}=${val}&`\n }, MASTODON_STREAMING + '?')\n}\n\nconst MASTODON_STREAMING_EVENTS = new Set([\n 'update',\n 'notification',\n 'delete',\n 'filters_changed'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n fetchUser,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n postStatus,\n deleteStatus,\n uploadMedia,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateAvatar,\n updateBg,\n updateProfile,\n updateBanner,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n fetchFollowRequests,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchMascot,\n updateMascot,\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({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n }\n }\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-1f7e2516\\\",\\\"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({ id: 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 }","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n loopVideo: this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onVideoDataLoad (e) {\n const target = e.srcElement || e.target\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) {\n this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n }\n } else if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) {\n this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n }\n } else if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) {\n this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n }\n }\n }\n }\n}\n\nexport default VideoAttachment\n","/* script */\nexport * from \"!!babel-loader!./video_attachment.js\"\nimport __vue_script__ from \"!!babel-loader!./video_attachment.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6fce6a82\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./video_attachment.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('video',{staticClass:\"video\",attrs:{\"src\":_vm.attachment.url,\"loop\":_vm.loopVideo,\"controls\":_vm.controls,\"playsinline\":\"\"},on:{\"loadeddata\":_vm.onVideoDataLoad}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","export default {\n props: [ 'user' ],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./remote_follow.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./remote_follow.js\"\nimport __vue_script__ from \"!!babel-loader!./remote_follow.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e95e446e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./remote_follow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"remote-follow\"},[_c('form',{attrs:{\"method\":\"POST\",\"action\":_vm.subscribeUrl}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"nickname\"},domProps:{\"value\":_vm.user.screen_name}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"profile\",\"value\":\"\"}}),_vm._v(\" \"),_c('button',{staticClass:\"remote-button\",attrs:{\"click\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.remote_follow'))+\"\\n \")])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","module.exports = __webpack_public_path__ + \"static/img/nsfw.ca95de9.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:50px;height:50px}.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,.notification .move-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 .icon-arrow-curved.lit{color:#0095ff;color:var(--cBlue,#0095ff)}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{word-break:break-all;margin:0 0 .3em;padding:0;font-size:1em;line-height:20px}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0;margin-top:0;margin-bottom:.3em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./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 .current-mascot{display:block;max-height:250px}.profile-edit .mascot{max-width:100%}.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 moves: true\n },\n webPushNotifications: false,\n muteWords: [],\n highlight: {},\n interfaceLanguage: browserLocale,\n hideScopeNotice: false,\n useStreamingApi: false,\n scopeCopy: undefined, // instance default\n subjectLineBehavior: undefined, // instance default\n alwaysShowSubjectInput: undefined, // instance default\n postContentType: undefined, // instance default\n minimalScopesMode: undefined, // instance default\n // This hides statuses filtered via a word filter\n hideFilteredStatuses: undefined, // instance default\n playVideosInModal: false,\n useOneClickNsfw: false,\n useContainFit: false,\n greentext: undefined, // instance default\n hidePostStats: undefined, // instance default\n hideUserStats: undefined // instance default\n}\n\n// caching the instance default properties\nexport const instanceDefaultProperties = Object.entries(defaultState)\n .filter(([key, value]) => value === undefined)\n .map(([key, value]) => key)\n\nconst config = {\n state: defaultState,\n getters: {\n mergedConfig (state, getters, rootState, rootGetters) {\n const { instance } = rootState\n return {\n ...state,\n ...instanceDefaultProperties\n .map(key => [key, state[key] === undefined\n ? instance[key]\n : state[key]\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n }\n }\n },\n mutations: {\n setOption (state, { name, value }) {\n set(state, name, value)\n },\n setHighlight (state, { user, color, type }) {\n const data = this.state.config.highlight[user]\n if (color || type) {\n set(state.highlight, user, { color: color || data.color, type: type || data.type })\n } else {\n del(state.highlight, user)\n }\n }\n },\n actions: {\n setHighlight ({ commit, dispatch }, { user, color, type }) {\n commit('setHighlight', { user, color, type })\n },\n setOption ({ commit, dispatch }, { name, value }) {\n commit('setOption', { name, value })\n switch (name) {\n case 'theme':\n setPreset(value, 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 rootState.config.notificationVisibility.moves && 'move'\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' && notification.type !== 'move') {\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 case 'move':\n i18nString = 'migrated_to'\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({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n unfavorite ({ rootState, commit }, status) {\n // Optimistic unfavoriting...\n commit('setFavorited', { status, value: false })\n rootState.api.backendInteractor.unfavorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n fetchPinnedStatuses ({ rootState, dispatch }, userId) {\n rootState.api.backendInteractor.fetchPinnedStatuses({ id: userId })\n .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, noIdUpdate: true }))\n },\n pinStatus ({ rootState, dispatch }, statusId) {\n return rootState.api.backendInteractor.pinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n unpinStatus ({ rootState, dispatch }, statusId) {\n rootState.api.backendInteractor.unpinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n muteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.muteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n unmuteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.unmuteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n retweet ({ rootState, commit }, status) {\n // Optimistic retweeting...\n commit('setRetweeted', { status, value: true })\n rootState.api.backendInteractor.retweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status: status.retweeted_status, user: rootState.users.currentUser }))\n },\n unretweet ({ rootState, commit }, status) {\n // Optimistic unretweeting...\n commit('setRetweeted', { status, value: false })\n rootState.api.backendInteractor.unretweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status, user: rootState.users.currentUser }))\n },\n queueFlush ({ rootState, commit }, { timeline, id }) {\n commit('queueFlush', { timeline, id })\n },\n markNotificationsAsSeen ({ rootState, commit }) {\n commit('markNotificationsAsSeen')\n apiService.markNotificationsAsSeen({\n id: rootState.statuses.notifications.maxId,\n credentials: rootState.users.currentUser.credentials\n })\n },\n 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 store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false }) => {\n const args = { credentials }\n const { getters } = store\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.notifications\n const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n args['withMuted'] = !hideMutedPosts\n\n args['timeline'] = 'notifications'\n if (older) {\n if (timelineData.minId !== Number.POSITIVE_INFINITY) {\n args['until'] = timelineData.minId\n }\n return fetchNotifications({ store, args, older })\n } else {\n // fetch new notifications\n if (timelineData.maxId !== Number.POSITIVE_INFINITY) {\n args['since'] = timelineData.maxId\n }\n const result = fetchNotifications({ store, args, older })\n\n // load unread notifications repeatedly to provide consistency between browser tabs\n const notifications = timelineData.data\n const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n if (readNotifsIds.length) {\n args['since'] = Math.max(...readNotifsIds)\n fetchNotifications({ store, args, older })\n }\n\n return result\n }\n}\n\nconst fetchNotifications = ({ store, args, older }) => {\n return apiService.fetchTimeline(args)\n .then((notifications) => {\n update({ store, notifications, older })\n return notifications\n }, () => store.dispatch('setNotificationsError', { value: true }))\n .catch(() => store.dispatch('setNotificationsError', { value: true }))\n}\n\nconst startFetching = ({ credentials, store }) => {\n fetchAndUpdate({ credentials, store })\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n // Initially there's set flag to silence all desktop notifications so\n // that there won't spam of them when user just opened up the FE we\n // reset that flag after a while to show new notifications once again.\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n return setInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default notificationsFetcher\n","import apiService from '../api/api.service.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchFollowRequests({ credentials })\n .then((requests) => {\n store.commit('setFollowRequests', requests)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n fetchAndUpdate({ credentials, store })\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n return setInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n startFetching\n}\n\nexport default followRequestFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcherService from '../timeline_fetcher/timeline_fetcher.service.js'\nimport notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'\nimport followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'\n\nconst backendInteractorService = credentials => ({\n startFetchingTimeline ({ timeline, store, userId = false, tag }) {\n return timelineFetcherService.startFetching({ timeline, store, credentials, userId, tag })\n },\n\n startFetchingNotifications ({ store }) {\n return notificationsFetcher.startFetching({ store, credentials })\n },\n\n fetchAndUpdateNotifications ({ store }) {\n return notificationsFetcher.fetchAndUpdate({ store, credentials })\n },\n\n startFetchingFollowRequest ({ store }) {\n return followRequestFetcher.startFetching({ store, credentials })\n },\n\n startUserSocket ({ store }) {\n const serv = store.rootState.instance.server.replace('http', 'ws')\n const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })\n return ProcessedWS({ url, id: 'User' })\n },\n\n ...Object.entries(apiService).reduce((acc, [key, func]) => {\n return {\n ...acc,\n [key]: (args) => func({ credentials, ...args })\n }\n }, {}),\n\n verifyCredentials: apiService.verifyCredentials\n})\n\nexport default backendInteractorService\n","import { reduce } from 'lodash'\n\nconst REDIRECT_URI = `${window.location.origin}/oauth-callback`\n\nexport const getOrCreateApp = ({ clientId, clientSecret, instance, commit }) => {\n if (clientId && clientSecret) {\n return Promise.resolve({ clientId, clientSecret })\n }\n\n const url = `${instance}/api/v1/apps`\n const form = new window.FormData()\n\n form.append('client_name', `PleromaFE_${window.___pleromafe_commit_hash}_${(new Date()).toISOString()}`)\n form.append('redirect_uris', REDIRECT_URI)\n form.append('scopes', 'read write follow push admin')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n .then((app) => ({ clientId: app.client_id, clientSecret: app.client_secret }))\n .then((app) => commit('setClientData', app) || app)\n}\n\nconst login = ({ instance, clientId }) => {\n const data = {\n response_type: 'code',\n client_id: clientId,\n redirect_uri: REDIRECT_URI,\n scope: 'read write follow push admin'\n }\n\n const dataString = reduce(data, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n if (!acc) {\n return encoded\n } else {\n return `${acc}&${encoded}`\n }\n }, false)\n\n // Do the redirect...\n const url = `${instance}/oauth/authorize?${dataString}`\n\n window.location.href = url\n}\n\nconst getTokenWithCredentials = ({ clientId, clientSecret, instance, username, password }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'password')\n form.append('username', username)\n form.append('password', password)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst getToken = ({ clientId, clientSecret, instance, code }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'authorization_code')\n form.append('code', code)\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n}\n\nexport const getClientToken = ({ clientId, clientSecret, instance }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'client_credentials')\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\nconst verifyOTPCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst revokeToken = ({ app, instance, token }) => {\n const url = `${instance}/oauth/revoke`\n const form = new window.FormData()\n\n form.append('client_id', app.clientId)\n form.append('client_secret', app.clientSecret)\n form.append('token', token)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst oauth = {\n login,\n getToken,\n getTokenWithCredentials,\n getOrCreateApp,\n verifyOTPCode,\n verifyRecoveryCode,\n revokeToken\n}\n\nexport default oauth\n","import runtime from 'serviceworker-webpack-plugin/lib/runtime'\n\nfunction urlBase64ToUint8Array (base64String) {\n const padding = '='.repeat((4 - base64String.length % 4) % 4)\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n return Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n}\n\nfunction isPushSupported () {\n return 'serviceWorker' in navigator && 'PushManager' in window\n}\n\nfunction getOrCreateServiceWorker () {\n return runtime.register()\n .catch((err) => console.error('Unable to get or create a service worker.', err))\n}\n\nfunction subscribePush (registration, isEnabled, vapidPublicKey) {\n if (!isEnabled) return Promise.reject(new Error('Web Push is disabled in config'))\n if (!vapidPublicKey) return Promise.reject(new Error('VAPID public key is not found'))\n\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)\n }\n return registration.pushManager.subscribe(subscribeOptions)\n}\n\nfunction unsubscribePush (registration) {\n return registration.pushManager.getSubscription()\n .then((subscribtion) => {\n if (subscribtion === null) { return }\n return subscribtion.unsubscribe()\n })\n}\n\nfunction deleteSubscriptionFromBackEnd (token) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n }\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response\n })\n}\n\nfunction sendSubscriptionToBackEnd (subscription, token, notificationVisibility) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n body: JSON.stringify({\n subscription,\n data: {\n alerts: {\n follow: notificationVisibility.follows,\n favourite: notificationVisibility.likes,\n mention: notificationVisibility.mentions,\n reblog: notificationVisibility.repeats,\n move: notificationVisibility.moves\n }\n }\n })\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response.json()\n }).then((responseData) => {\n if (!responseData.id) throw new Error('Bad response from server.')\n return responseData\n })\n}\n\nexport function registerPushNotifications (isEnabled, vapidPublicKey, token, notificationVisibility) {\n if (isPushSupported()) {\n getOrCreateServiceWorker()\n .then((registration) => subscribePush(registration, isEnabled, vapidPublicKey))\n .then((subscription) => sendSubscriptionToBackEnd(subscription, token, notificationVisibility))\n .catch((e) => console.warn(`Failed to setup Web Push Notifications: ${e.message}`))\n }\n}\n\nexport function unregisterPushNotifications (token) {\n if (isPushSupported()) {\n Promise.all([\n deleteSubscriptionFromBackEnd(token),\n getOrCreateServiceWorker()\n .then((registration) => {\n return unsubscribePush(registration).then((result) => [registration, result])\n })\n .then(([registration, unsubResult]) => {\n if (!unsubResult) {\n console.warn('Push subscription cancellation wasn\\'t successful, killing SW anyway...')\n }\n return registration.unregister().then((result) => {\n if (!result) {\n console.warn('Failed to kill SW')\n }\n })\n })\n ]).catch((e) => console.warn(`Failed to disable Web Push Notifications: ${e.message}`))\n }\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, merge, last, concat, uniq } from 'lodash'\nimport { set } from 'vue'\nimport { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'\n\n// TODO: Unify with mergeOrAdd in statuses.js\nexport const mergeOrAdd = (arr, obj, item) => {\n if (!item) { return false }\n const oldItem = obj[item.id]\n if (oldItem) {\n // We already have this, so only merge the new info.\n merge(oldItem, item)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n arr.push(item)\n set(obj, item.id, item)\n if (item.screen_name && !item.screen_name.includes('@')) {\n set(obj, item.screen_name.toLowerCase(), item)\n }\n return { item, new: true }\n }\n}\n\nconst getNotificationPermission = () => {\n const Notification = window.Notification\n\n if (!Notification) return Promise.resolve(null)\n if (Notification.permission === 'default') return Notification.requestPermission()\n return Promise.resolve(Notification.permission)\n}\n\nconst blockUser = (store, id) => {\n return store.rootState.api.backendInteractor.blockUser({ id })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addBlockId', id)\n store.commit('removeStatus', { timeline: 'friends', userId: id })\n store.commit('removeStatus', { timeline: 'public', userId: id })\n store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id })\n })\n}\n\nconst unblockUser = (store, id) => {\n return store.rootState.api.backendInteractor.unblockUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, id) => {\n 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\nconst fetchMascot = (store) => {\n return store.rootState.api.backendInteractor.fetchMascot()\n .then(({ url }) => store.commit('updateMascot', url))\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 }, deactivated }) {\n const user = state.usersObject[id]\n set(user, 'deactivated', deactivated)\n },\n setCurrentUser (state, user) {\n state.lastLoginName = user.screen_name\n state.currentUser = merge(state.currentUser || {}, user)\n },\n clearCurrentUser (state) {\n state.currentUser = false\n state.lastLoginName = false\n },\n beginLogin (state) {\n state.loggingIn = true\n },\n endLogin (state) {\n state.loggingIn = false\n },\n saveFriendIds (state, { id, friendIds }) {\n const user = state.usersObject[id]\n user.friendIds = uniq(concat(user.friendIds, friendIds))\n },\n saveFollowerIds (state, { id, followerIds }) {\n const user = state.usersObject[id]\n user.followerIds = uniq(concat(user.followerIds, followerIds))\n },\n // Because frontend doesn't have a reason to keep these stuff in memory\n // outside of viewing someones user profile.\n clearFriends (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n set(user, 'friendIds', [])\n }\n },\n clearFollowers (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n set(user, 'followerIds', [])\n }\n },\n addNewUsers (state, users) {\n each(users, (user) => 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 updateMascot (state, mascotUrl) {\n state.currentUser.mascot = mascotUrl\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 fetchMascot (store) {\n return fetchMascot(store)\n },\n fetchFriends ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.friendIds)\n return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n .then((friends) => {\n commit('addNewUsers', friends)\n commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n return friends\n })\n },\n fetchFollowers ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.followerIds)\n return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n .then((followers) => {\n commit('addNewUsers', followers)\n commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n return followers\n })\n },\n clearFriends ({ commit }, userId) {\n commit('clearFriends', userId)\n },\n clearFollowers ({ commit }, userId) {\n commit('clearFollowers', userId)\n },\n subscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.subscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n unsubscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.unsubscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n toggleActivationStatus ({ rootState, commit }, user) {\n const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n api(user)\n .then(({ deactivated }) => commit('updateActivationStatus', { user, deactivated }))\n },\n registerPushNotifications (store) {\n const token = store.state.currentUser.credentials\n const vapidPublicKey = store.rootState.instance.vapidPublicKey\n const isEnabled = store.rootState.config.webPushNotifications\n const notificationVisibility = store.rootState.config.notificationVisibility\n\n registerPushNotifications(isEnabled, vapidPublicKey, token, notificationVisibility)\n },\n unregisterPushNotifications (store) {\n const token = store.state.currentUser.credentials\n\n unregisterPushNotifications(token)\n },\n addNewUsers ({ commit }, users) {\n commit('addNewUsers', users)\n },\n addNewStatuses (store, { statuses }) {\n const users = map(statuses, 'user')\n const retweetedUsers = compact(map(statuses, 'retweeted_status.user'))\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', retweetedUsers)\n\n each(statuses, (status) => {\n // Reconnect users to statuses\n store.commit('setUserForStatus', status)\n // Set pinned statuses to user\n store.commit('setPinnedToUser', status)\n })\n each(compact(map(statuses, 'retweeted_status')), (status) => {\n // Reconnect users to retweets\n store.commit('setUserForStatus', status)\n // Set pinned retweets to user\n store.commit('setPinnedToUser', status)\n })\n },\n addNewNotifications (store, { notifications }) {\n const users = map(notifications, 'from_profile')\n const targetUsers = map(notifications, 'target')\n const notificationIds = notifications.map(_ => _.id)\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', targetUsers)\n\n const notificationsObject = store.rootState.statuses.notifications.idStore\n const relevantNotifications = Object.entries(notificationsObject)\n .filter(([k, val]) => notificationIds.includes(k))\n .map(([k, val]) => val)\n\n // Reconnect users to notifications\n each(relevantNotifications, (notification) => {\n store.commit('setUserForNotification', notification)\n })\n },\n searchUsers (store, query) {\n return store.rootState.api.backendInteractor.searchUsers({ query })\n .then((users) => {\n store.commit('addNewUsers', users)\n return users\n })\n },\n async signUp (store, userInfo) {\n store.commit('signUpPending')\n\n let rootState = store.rootState\n\n try {\n let data = await rootState.api.backendInteractor.register(\n { params: { ...userInfo } }\n )\n store.commit('signUpSuccess')\n store.commit('setToken', data.access_token)\n store.dispatch('loginUser', data.access_token)\n } catch (e) {\n let errors = e.message\n store.commit('signUpFailure', errors)\n throw e\n }\n },\n async getCaptcha (store) {\n return store.rootState.api.backendInteractor.getCaptcha()\n },\n\n logout (store) {\n const { oauth, instance } = store.rootState\n\n const data = {\n ...oauth,\n commit: store.commit,\n instance: instance.server\n }\n\n return oauthApi.getOrCreateApp(data)\n .then((app) => {\n const params = {\n app,\n instance: data.instance,\n token: oauth.userToken\n }\n\n return oauthApi.revokeToken(params)\n })\n .then(() => {\n store.commit('clearCurrentUser')\n store.dispatch('disconnectFromSocket')\n store.commit('clearToken')\n store.dispatch('stopFetchingTimeline', 'friends')\n store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n store.dispatch('stopFetchingNotifications')\n store.dispatch('stopFetchingFollowRequests')\n store.commit('clearNotifications')\n store.commit('resetStatuses')\n })\n },\n loginUser (store, accessToken) {\n return new Promise((resolve, reject) => {\n const commit = store.commit\n commit('beginLogin')\n store.rootState.api.backendInteractor.verifyCredentials(accessToken)\n .then((data) => {\n if (!data.error) {\n const user = data\n // user.credentials = userCredentials\n user.credentials = accessToken\n user.blockIds = []\n user.muteIds = []\n commit('setCurrentUser', user)\n commit('addNewUsers', [user])\n\n store.dispatch('fetchEmoji')\n\n getNotificationPermission()\n .then(permission => commit('setNotificationPermission', permission))\n\n // Set our new backend interactor\n commit('setBackendInteractor', backendInteractorService(accessToken))\n\n if (user.token) {\n store.dispatch('setWsToken', user.token)\n\n // Initialize the chat socket.\n store.dispatch('initializeSocket')\n }\n\n const startPolling = () => {\n // Start getting fresh posts.\n store.dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n // Start fetching notifications\n store.dispatch('startFetchingNotifications')\n }\n\n if (store.getters.mergedConfig.useStreamingApi) {\n store.dispatch('enableMastoSockets').catch((error) => {\n console.error('Failed initializing MastoAPI Streaming socket', error)\n startPolling()\n }).then(() => {\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n })\n } else {\n startPolling()\n }\n\n // Get user mutes\n store.dispatch('fetchMutes')\n\n // Fetch our friends\n store.rootState.api.backendInteractor.fetchFriends({ id: user.id })\n .then((friends) => commit('addNewUsers', friends))\n } else {\n const response = data.error\n // Authentication failed\n commit('endLogin')\n if (response.status === 401) {\n reject(new Error('Wrong username or password'))\n } else {\n reject(new Error('An error occurred, please try again'))\n }\n }\n commit('endLogin')\n resolve()\n })\n .catch((error) => {\n console.log(error)\n commit('endLogin')\n reject(new Error('Failed to connect to server, try again'))\n })\n })\n }\n }\n}\n\nexport default users\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { Socket } from 'phoenix'\n\nconst api = {\n state: {\n backendInteractor: backendInteractorService(),\n fetchers: {},\n socket: null,\n mastoUserSocket: null,\n followRequests: []\n },\n mutations: {\n setBackendInteractor (state, backendInteractor) {\n state.backendInteractor = backendInteractor\n },\n addFetcher (state, { fetcherName, fetcher }) {\n state.fetchers[fetcherName] = fetcher\n },\n removeFetcher (state, { fetcherName, fetcher }) {\n window.clearInterval(fetcher)\n delete state.fetchers[fetcherName]\n },\n setWsToken (state, token) {\n state.wsToken = token\n },\n setSocket (state, socket) {\n state.socket = socket\n },\n setFollowRequests (state, value) {\n state.followRequests = value\n }\n },\n actions: {\n // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n enableMastoSockets (store) {\n const { state, dispatch } = store\n if (state.mastoUserSocket) return\n return dispatch('startMastoUserSocket')\n },\n disableMastoSockets (store) {\n const { state, dispatch } = store\n if (!state.mastoUserSocket) return\n return dispatch('stopMastoUserSocket')\n },\n\n // MastoAPI 'User' sockets\n startMastoUserSocket (store) {\n return new Promise((resolve, reject) => {\n try {\n const { state, dispatch, rootState } = store\n const timelineData = rootState.statuses.timelines.friends\n state.mastoUserSocket = state.backendInteractor.startUserSocket({ store })\n state.mastoUserSocket.addEventListener(\n 'message',\n ({ detail: message }) => {\n if (!message) return // pings\n if (message.event === 'notification') {\n dispatch('addNewNotifications', {\n notifications: [message.notification],\n older: false\n })\n } else if (message.event === 'update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: timelineData.visibleStatuses.length === 0,\n timeline: 'friends'\n })\n }\n }\n )\n state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n console.error('Error in MastoAPI websocket:', error)\n })\n state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => {\n const ignoreCodes = new Set([\n 1000, // Normal (intended) closure\n 1001 // Going away\n ])\n const { code } = closeEvent\n if (ignoreCodes.has(code)) {\n console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`)\n } else {\n console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('restartMastoUserSocket')\n }\n })\n resolve()\n } catch (e) {\n reject(e)\n }\n })\n },\n restartMastoUserSocket ({ dispatch }) {\n // This basically starts MastoAPI user socket and stops conventional\n // fetchers when connection reestablished\n return dispatch('startMastoUserSocket').then(() => {\n dispatch('stopFetchingTimeline', { timeline: 'friends' })\n dispatch('stopFetchingNotifications')\n })\n },\n stopMastoUserSocket ({ state, dispatch }) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n console.log(state.mastoUserSocket)\n state.mastoUserSocket.close()\n },\n\n // Timelines\n startFetchingTimeline (store, {\n timeline = 'friends',\n tag = false,\n userId = false\n }) {\n if (store.state.fetchers[timeline]) return\n\n const fetcher = store.state.backendInteractor.startFetchingTimeline({\n timeline, store, userId, tag\n })\n store.commit('addFetcher', { fetcherName: timeline, fetcher })\n },\n stopFetchingTimeline (store, timeline) {\n const fetcher = store.state.fetchers[timeline]\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: timeline, fetcher })\n },\n\n // Notifications\n startFetchingNotifications (store) {\n if (store.state.fetchers.notifications) return\n const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })\n store.commit('addFetcher', { fetcherName: 'notifications', fetcher })\n },\n stopFetchingNotifications (store) {\n const fetcher = store.state.fetchers.notifications\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })\n },\n fetchAndUpdateNotifications (store) {\n store.state.backendInteractor.fetchAndUpdateNotifications({ store })\n },\n\n // Follow requests\n startFetchingFollowRequests (store) {\n if (store.state.fetchers['followRequests']) return\n const fetcher = store.state.backendInteractor.startFetchingFollowRequests({ store })\n store.commit('addFetcher', { fetcherName: 'followRequests', fetcher })\n },\n stopFetchingFollowRequests (store) {\n const fetcher = store.state.fetchers.followRequests\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'followRequests', fetcher })\n },\n removeFollowRequest (store, request) {\n let requests = store.state.followRequests.filter((it) => it !== request)\n store.commit('setFollowRequests', requests)\n },\n\n // Pleroma websocket\n setWsToken (store, token) {\n store.commit('setWsToken', token)\n },\n initializeSocket ({ dispatch, commit, state, rootState }) {\n // Set up websocket connection\n const token = state.wsToken\n if (rootState.instance.chatAvailable && typeof token !== 'undefined' && state.socket === null) {\n const socket = new Socket('/socket', { params: { token } })\n socket.connect()\n\n commit('setSocket', socket)\n dispatch('initializeChat', socket)\n }\n },\n disconnectFromSocket ({ commit, state }) {\n state.socket && state.socket.disconnect()\n commit('setSocket', null)\n }\n }\n}\n\nexport default api\n","const chat = {\n state: {\n messages: [],\n channel: { state: '' }\n },\n mutations: {\n setChannel (state, channel) {\n state.channel = channel\n },\n addMessage (state, message) {\n state.messages.push(message)\n state.messages = state.messages.slice(-19, 20)\n },\n setMessages (state, messages) {\n state.messages = messages.slice(-19, 20)\n }\n },\n actions: {\n initializeChat (store, socket) {\n const channel = socket.channel('chat:public')\n channel.on('new_msg', (msg) => {\n store.commit('addMessage', msg)\n })\n channel.on('messages', ({ messages }) => {\n store.commit('setMessages', messages)\n })\n channel.join()\n store.commit('setChannel', channel)\n }\n }\n}\n\nexport default chat\n","import { delete as del } from 'vue'\n\nconst oauth = {\n state: {\n clientId: false,\n clientSecret: false,\n /* App token is authentication for app without any user, used mostly for\n * MastoAPI's registration of new users, stored so that we can fall back to\n * it on logout\n */\n appToken: false,\n /* User token is authentication for app with user, this is for every calls\n * that need authorized user to be successful (i.e. posting, liking etc)\n */\n userToken: false\n },\n mutations: {\n setClientData (state, { clientId, clientSecret }) {\n state.clientId = clientId\n state.clientSecret = clientSecret\n },\n setAppToken (state, token) {\n state.appToken = token\n },\n setToken (state, token) {\n state.userToken = token\n },\n clearToken (state) {\n state.userToken = false\n // state.token is userToken with older name, coming from persistent state\n // let's clear it as well, since it is being used as a fallback of state.userToken\n del(state, 'token')\n }\n },\n getters: {\n getToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token || state.appToken\n },\n getUserToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token\n }\n }\n}\n\nexport default oauth\n","const PASSWORD_STRATEGY = 'password'\nconst TOKEN_STRATEGY = 'token'\n\n// MFA strategies\nconst TOTP_STRATEGY = 'totp'\nconst RECOVERY_STRATEGY = 'recovery'\n\n// initial state\nconst state = {\n settings: {},\n strategy: PASSWORD_STRATEGY,\n initStrategy: PASSWORD_STRATEGY // default strategy from config\n}\n\nconst resetState = (state) => {\n state.strategy = state.initStrategy\n state.settings = {}\n}\n\n// getters\nconst getters = {\n settings: (state, getters) => {\n return state.settings\n },\n requiredPassword: (state, getters, rootState) => {\n return state.strategy === PASSWORD_STRATEGY\n },\n requiredToken: (state, getters, rootState) => {\n return state.strategy === TOKEN_STRATEGY\n },\n requiredTOTP: (state, getters, rootState) => {\n return state.strategy === TOTP_STRATEGY\n },\n requiredRecovery: (state, getters, rootState) => {\n return state.strategy === RECOVERY_STRATEGY\n }\n}\n\n// mutations\nconst mutations = {\n setInitialStrategy (state, strategy) {\n if (strategy) {\n state.initStrategy = strategy\n state.strategy = strategy\n }\n },\n requirePassword (state) {\n state.strategy = PASSWORD_STRATEGY\n },\n requireToken (state) {\n state.strategy = TOKEN_STRATEGY\n },\n requireMFA (state, { settings }) {\n state.settings = settings\n state.strategy = TOTP_STRATEGY // default strategy of MFA\n },\n requireRecovery (state) {\n state.strategy = RECOVERY_STRATEGY\n },\n requireTOTP (state) {\n state.strategy = TOTP_STRATEGY\n },\n abortMFA (state) {\n resetState(state)\n }\n}\n\n// actions\nconst actions = {\n // eslint-disable-next-line camelcase\n async login ({ state, dispatch, commit }, { access_token }) {\n commit('setToken', access_token, { root: true })\n await dispatch('loginUser', access_token, { root: true })\n resetState(state)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions\n}\n","import fileTypeService from '../services/file_type/file_type.service.js'\n\nconst mediaViewer = {\n state: {\n media: [],\n currentIndex: 0,\n activated: false\n },\n mutations: {\n setMedia (state, media) {\n state.media = media\n },\n setCurrent (state, index) {\n state.activated = true\n state.currentIndex = index\n },\n close (state) {\n state.activated = false\n }\n },\n actions: {\n setMedia ({ commit }, attachments) {\n const media = attachments.filter(attachment => {\n const type = fileTypeService.fileType(attachment.mimetype)\n return type === 'image' || type === 'video'\n })\n commit('setMedia', media)\n },\n setCurrent ({ commit, state }, current) {\n const index = state.media.indexOf(current)\n commit('setCurrent', index || 0)\n },\n closeMediaViewer ({ commit }) {\n commit('close')\n }\n }\n}\n\nexport default mediaViewer\n","const oauthTokens = {\n state: {\n tokens: []\n },\n actions: {\n fetchTokens ({ rootState, commit }) {\n rootState.api.backendInteractor.fetchOAuthTokens().then((tokens) => {\n commit('swapTokens', tokens)\n })\n },\n revokeToken ({ rootState, commit, state }, id) {\n rootState.api.backendInteractor.revokeOAuthToken({ id }).then((response) => {\n if (response.status === 201) {\n commit('swapTokens', state.tokens.filter(token => token.id !== id))\n }\n })\n }\n },\n mutations: {\n swapTokens (state, tokens) {\n state.tokens = tokens\n }\n }\n}\n\nexport default oauthTokens\n","import filter from 'lodash/filter'\n\nconst reports = {\n state: {\n userId: null,\n statuses: [],\n modalActivated: false\n },\n mutations: {\n openUserReportingModal (state, { userId, statuses }) {\n state.userId = userId\n state.statuses = statuses\n state.modalActivated = true\n },\n closeUserReportingModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openUserReportingModal ({ rootState, commit }, userId) {\n const statuses = filter(rootState.statuses.allStatuses, status => status.user.id === userId)\n commit('openUserReportingModal', { userId, statuses })\n },\n closeUserReportingModal ({ commit }) {\n commit('closeUserReportingModal')\n }\n }\n}\n\nexport default reports\n","import { merge } from 'lodash'\nimport { set } from 'vue'\n\nconst polls = {\n state: {\n // Contains key = id, value = number of trackers for this poll\n trackedPolls: {},\n pollsObject: {}\n },\n mutations: {\n mergeOrAddPoll (state, poll) {\n const existingPoll = state.pollsObject[poll.id]\n // Make expired-state change trigger re-renders properly\n poll.expired = Date.now() > Date.parse(poll.expires_at)\n if (existingPoll) {\n set(state.pollsObject, poll.id, merge(existingPoll, poll))\n } else {\n set(state.pollsObject, poll.id, poll)\n }\n },\n trackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n set(state.trackedPolls, pollId, currentValue + 1)\n } else {\n set(state.trackedPolls, pollId, 1)\n }\n },\n untrackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n set(state.trackedPolls, pollId, currentValue - 1)\n } else {\n set(state.trackedPolls, pollId, 0)\n }\n }\n },\n actions: {\n mergeOrAddPoll ({ commit }, poll) {\n commit('mergeOrAddPoll', poll)\n },\n updateTrackedPoll ({ rootState, dispatch, commit }, pollId) {\n rootState.api.backendInteractor.fetchPoll({ pollId }).then(poll => {\n setTimeout(() => {\n if (rootState.polls.trackedPolls[pollId]) {\n dispatch('updateTrackedPoll', pollId)\n }\n }, 30 * 1000)\n commit('mergeOrAddPoll', poll)\n })\n },\n trackPoll ({ rootState, commit, dispatch }, pollId) {\n if (!rootState.polls.trackedPolls[pollId]) {\n setTimeout(() => dispatch('updateTrackedPoll', pollId), 30 * 1000)\n }\n commit('trackPoll', pollId)\n },\n untrackPoll ({ commit }, pollId) {\n commit('untrackPoll', pollId)\n },\n votePoll ({ rootState, commit }, { id, pollId, choices }) {\n return rootState.api.backendInteractor.vote({ pollId, choices }).then(poll => {\n commit('mergeOrAddPoll', poll)\n return poll\n })\n }\n }\n}\n\nexport default polls\n","const postStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openPostStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closePostStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openPostStatusModal ({ commit }, params) {\n commit('openPostStatusModal', params)\n },\n closePostStatusModal ({ commit }) {\n commit('closePostStatusModal')\n }\n }\n}\n\nexport default postStatus\n","import 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('stopFetchingTimeline', 'public')\n }\n\n}\n\nexport default PublicTimeline\n","/* script */\nexport * from \"!!babel-loader!./public_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./public_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5f2a502e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./public_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.public_tl'),\"timeline\":_vm.timeline,\"timeline-name\":'public'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst PublicAndExternalTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.publicAndExternal }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'publicAndExternal' })\n },\n destroyed () {\n this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n }\n}\n\nexport default PublicAndExternalTimeline\n","/* script */\nexport * from \"!!babel-loader!./public_and_external_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./public_and_external_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f6923484\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./public_and_external_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.twkn'),\"timeline\":_vm.timeline,\"timeline-name\":'publicAndExternal'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst FriendsTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.friends }\n }\n}\n\nexport default FriendsTimeline\n","/* script */\nexport * from \"!!babel-loader!./friends_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./friends_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-22490669\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./friends_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.timeline'),\"timeline\":_vm.timeline,\"timeline-name\":'friends'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\n\nconst TagTimeline = {\n created () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n },\n components: {\n Timeline\n },\n computed: {\n tag () { return this.$route.params.tag },\n timeline () { return this.$store.state.statuses.timelines.tag }\n },\n watch: {\n tag () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n }\n },\n destroyed () {\n this.$store.dispatch('stopFetchingTimeline', 'tag')\n }\n}\n\nexport default TagTimeline\n","/* script */\nexport * from \"!!babel-loader!./tag_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./tag_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-047310d3\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./tag_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.tag,\"timeline\":_vm.timeline,\"timeline-name\":'tag',\"tag\":_vm.tag}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Conversation from '../conversation/conversation.vue'\n\nconst conversationPage = {\n components: {\n Conversation\n },\n computed: {\n statusId () {\n return this.$route.params.id\n }\n }\n}\n\nexport default conversationPage\n","/* script */\nexport * from \"!!babel-loader!./conversation-page.js\"\nimport __vue_script__ from \"!!babel-loader!./conversation-page.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46654d24\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./conversation-page.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('conversation',{attrs:{\"collapsable\":false,\"is-page\":\"true\",\"status-id\":_vm.statusId}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import 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 user () {\n return this.$store.getters.findUser(this.notification.from_profile.id)\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.user)\n },\n targetUser () {\n return this.$store.getters.findUser(this.notification.target.id)\n },\n targetUserProfileLink () {\n return this.generateUserProfileLink(this.targetUser)\n },\n needMute () {\n return this.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-0683ecfd\\\",\\\"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 === 'move')?_c('span',[_c('i',{staticClass:\"fa icon-arrow-curved lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.migrated_to')))])]):_vm._e()]),_vm._v(\" \"),(_vm.notification.type === 'follow' || _vm.notification.type === 'move')?_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):(_vm.notification.type === 'move')?_c('div',{staticClass:\"move-text\"},[_c('router-link',{attrs:{\"to\":_vm.targetUserProfileLink}},[_vm._v(\"\\n @\"+_vm._s(_vm.notification.target.screen_name)+\"\\n \")])],1):[_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 store.state.config.notificationVisibility.moves && 'move'\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 filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n sortedNotifications = sortBy(sortedNotifications, 'seen')\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store =>\n filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n","import Notification from '../notification/notification.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n props: {\n // Disables display of panel header\n noHeading: Boolean,\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array\n },\n data () {\n return {\n bottomedOut: false,\n // How many seen notifications to display in the list. The more there are,\n // the heavier the page becomes. This count is increased when loading\n // older notifications, and cut back to default whenever hitting \"Read!\".\n seenToDisplayCount: DEFAULT_SEEN_TO_DISPLAY_COUNT\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n }\n },\n components: {\n Notification\n },\n created () {\n const { dispatch } = this.$store\n\n dispatch('fetchAndUpdateNotifications')\n },\n watch: {\n unseenCount (count) {\n if (count > 0) {\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n this.$store.dispatch('setPageTitle', '')\n }\n }\n },\n methods: {\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./notifications.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./notifications.js\"\nimport __vue_script__ from \"!!babel-loader!./notifications.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4be57e6f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./notifications.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"notifications\",class:{ minimal: _vm.minimalMode }},[_c('div',{class:_vm.mainClass},[(!_vm.noHeading)?_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('notifications.notifications'))+\"\\n \"),(_vm.unseenCount)?_c('span',{staticClass:\"badge badge-notification unseen-count\"},[_vm._v(_vm._s(_vm.unseenCount))]):_vm._e()]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.error_fetching'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.unseenCount)?_c('button',{staticClass:\"read-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.markAsSeen($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('notifications.read'))+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.notificationsToDisplay),function(notification){return _c('div',{key:notification.id,staticClass:\"notification\",class:{\"unseen\": !_vm.minimalMode && !notification.seen}},[_c('div',{staticClass:\"notification-overlay\"}),_vm._v(\" \"),_c('notification',{attrs:{\"notification\":notification}})],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"panel-footer\"},[(_vm.bottomedOut)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('notifications.no_more_notifications'))+\"\\n \")]):(!_vm.loading)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.fetchOlderNotifications()}}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(\"\\n \"+_vm._s(_vm.minimalMode ? _vm.$t('interactions.load_older') : _vm.$t('notifications.load_older'))+\"\\n \")])]):_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Notifications from '../notifications/notifications.vue'\n\nconst tabModeDict = {\n mentions: ['mention'],\n 'likes+repeats': ['repeat', 'like'],\n follows: ['follow'],\n moves: ['move']\n}\n\nconst Interactions = {\n data () {\n return {\n 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-2ecb7d5f\\\",\\\"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('span',{key:\"moves\",attrs:{\"label\":_vm.$t('interactions.moves')}})]),_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('stopFetchingTimeline', 'user')\n this.$store.dispatch('stopFetchingTimeline', 'favorites')\n this.$store.dispatch('stopFetchingTimeline', 'media')\n },\n switchUser (userNameOrId) {\n this.stopFetching()\n this.load(userNameOrId)\n },\n onTabSwitch (tab) {\n this.tab = tab\n this.$router.replace({ query: { tab } })\n }\n },\n watch: {\n '$route.params.id': function (newVal) {\n if (newVal) {\n this.switchUser(newVal)\n }\n },\n '$route.params.name': function (newVal) {\n if (newVal) {\n this.switchUser(newVal)\n }\n },\n '$route.query': function (newVal) {\n this.tab = newVal.tab || defaultTabKey\n }\n },\n components: {\n UserCard,\n Timeline,\n FollowerList,\n FriendList,\n FollowCard,\n Conversation\n }\n}\n\nexport default UserProfile\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_profile.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_profile.js\"\nimport __vue_script__ from \"!!babel-loader!./user_profile.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-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 or perform actions first)\n muteWordsString: {\n get () { return this.$store.getters.mergedConfig.muteWords.join('\\n') },\n set (value) {\n this.$store.dispatch('setOption', {\n name: 'muteWords',\n value: filter(value.split('\\n'), (word) => trim(word).length > 0)\n })\n }\n },\n useStreamingApi: {\n get () { return this.$store.getters.mergedConfig.useStreamingApi },\n set (value) {\n const promise = value\n ? this.$store.dispatch('enableMastoSockets')\n : this.$store.dispatch('disableMastoSockets')\n\n promise.then(() => {\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n this.$store.dispatch('disableMastoSockets')\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n },\n // Updating nested properties\n watch: {\n notificationVisibility: {\n handler (value) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: this.$store.getters.mergedConfig.notificationVisibility\n })\n },\n deep: true\n }\n }\n}\n\nexport default settings\n","\nexport const extractCommit = versionString => {\n const regex = /-g(\\w+)/i\n const matches = versionString.match(regex)\n return matches ? matches[1] : ''\n}\n","/* script */\nexport * from \"!!babel-loader!./settings.js\"\nimport __vue_script__ from \"!!babel-loader!./settings.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1ab190d7\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./settings.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.settings'))+\"\\n \")]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.currentSaveStateNotice)?[(_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.saving_err'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert transparent\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.saving_ok'))+\"\\n \")]):_vm._e()]:_vm._e()],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('keep-alive',[_c('tab-switcher',[_c('div',{attrs:{\"label\":_vm.$t('settings.general')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.interface')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('interface-language-switcher')],1),_vm._v(\" \"),(_vm.instanceSpecificPanelPresent)?_c('li',[_c('Checkbox',{model:{value:(_vm.hideISP),callback:function ($$v) {_vm.hideISP=$$v},expression:\"hideISP\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_isp'))+\"\\n \")])],1):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('nav.timeline')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.hideMutedPosts),callback:function ($$v) {_vm.hideMutedPosts=$$v},expression:\"hideMutedPosts\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_muted_posts'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideMutedPostsLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.collapseMessageWithSubject),callback:function ($$v) {_vm.collapseMessageWithSubject=$$v},expression:\"collapseMessageWithSubject\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.collapse_subject'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.collapseMessageWithSubjectLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.streaming),callback:function ($$v) {_vm.streaming=$$v},expression:\"streaming\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.streaming'))+\"\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\",class:[{disabled: !_vm.streaming}]},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.streaming},model:{value:(_vm.pauseOnUnfocused),callback:function ($$v) {_vm.pauseOnUnfocused=$$v},expression:\"pauseOnUnfocused\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.pause_on_unfocused'))+\"\\n \")])],1)])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.useStreamingApi),callback:function ($$v) {_vm.useStreamingApi=$$v},expression:\"useStreamingApi\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.useStreamingApi'))+\"\\n \"),_c('br'),_vm._v(\" \"),_c('small',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.useStreamingApiWarning'))+\"\\n \")])])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.autoLoad),callback:function ($$v) {_vm.autoLoad=$$v},expression:\"autoLoad\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.autoload'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hoverPreview),callback:function ($$v) {_vm.hoverPreview=$$v},expression:\"hoverPreview\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.reply_link_preview'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.composing')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.scopeCopy),callback:function ($$v) {_vm.scopeCopy=$$v},expression:\"scopeCopy\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.scope_copy'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.scopeCopyLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.alwaysShowSubjectInput),callback:function ($$v) {_vm.alwaysShowSubjectInput=$$v},expression:\"alwaysShowSubjectInput\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_input_always_show'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.alwaysShowSubjectInputLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_behavior'))+\"\\n \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"subjectLineBehavior\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.subjectLineBehavior),expression:\"subjectLineBehavior\"}],attrs:{\"id\":\"subjectLineBehavior\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.subjectLineBehavior=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"email\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_email'))+\"\\n \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'email' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"masto\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_mastodon'))+\"\\n \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'mastodon' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"noop\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_noop'))+\"\\n \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'noop' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])]),_vm._v(\" \"),(_vm.postFormats.length > 0)?_c('li',[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.post_status_content_type'))+\"\\n \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"postContentType\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.postContentType),expression:\"postContentType\"}],attrs:{\"id\":\"postContentType\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.postContentType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.postFormats),function(postFormat){return _c('option',{key:postFormat,domProps:{\"value\":postFormat}},[_vm._v(\"\\n \"+_vm._s(_vm.$t((\"post_status.content_type[\\\"\" + postFormat + \"\\\"]\")))+\"\\n \"+_vm._s(_vm.postContentTypeDefaultValue === postFormat ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])]):_vm._e(),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.minimalScopesMode),callback:function ($$v) {_vm.minimalScopesMode=$$v},expression:\"minimalScopesMode\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.minimal_scopes_mode'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.minimalScopesModeLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.autohideFloatingPostButton),callback:function ($$v) {_vm.autohideFloatingPostButton=$$v},expression:\"autohideFloatingPostButton\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.autohide_floating_post_button'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.padEmoji),callback:function ($$v) {_vm.padEmoji=$$v},expression:\"padEmoji\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.pad_emoji'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.attachments')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.hideAttachments),callback:function ($$v) {_vm.hideAttachments=$$v},expression:\"hideAttachments\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_attachments_in_tl'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hideAttachmentsInConv),callback:function ($$v) {_vm.hideAttachmentsInConv=$$v},expression:\"hideAttachmentsInConv\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_attachments_in_convo'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('label',{attrs:{\"for\":\"maxThumbnails\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.max_thumbnails'))+\"\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.maxThumbnails),expression:\"maxThumbnails\",modifiers:{\"number\":true}}],staticClass:\"number-input\",attrs:{\"id\":\"maxThumbnails\",\"type\":\"number\",\"min\":\"0\",\"step\":\"1\"},domProps:{\"value\":(_vm.maxThumbnails)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.maxThumbnails=_vm._n($event.target.value)},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hideNsfw),callback:function ($$v) {_vm.hideNsfw=$$v},expression:\"hideNsfw\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.nsfw_clickthrough'))+\"\\n \")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\"},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideNsfw},model:{value:(_vm.preloadImage),callback:function ($$v) {_vm.preloadImage=$$v},expression:\"preloadImage\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.preload_images'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideNsfw},model:{value:(_vm.useOneClickNsfw),callback:function ($$v) {_vm.useOneClickNsfw=$$v},expression:\"useOneClickNsfw\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.use_one_click_nsfw'))+\"\\n \")])],1)]),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.stopGifs),callback:function ($$v) {_vm.stopGifs=$$v},expression:\"stopGifs\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.stop_gifs'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.loopVideo),callback:function ($$v) {_vm.loopVideo=$$v},expression:\"loopVideo\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.loop_video'))+\"\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\",class:[{disabled: !_vm.streaming}]},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.loopVideo || !_vm.loopSilentAvailable},model:{value:(_vm.loopVideoSilentOnly),callback:function ($$v) {_vm.loopVideoSilentOnly=$$v},expression:\"loopVideoSilentOnly\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.loop_video_silent_only'))+\"\\n \")]),_vm._v(\" \"),(!_vm.loopSilentAvailable)?_c('div',{staticClass:\"unavailable\"},[_c('i',{staticClass:\"icon-globe\"}),_vm._v(\"! \"+_vm._s(_vm.$t('settings.limited_availability'))+\"\\n \")]):_vm._e()],1)])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.playVideosInModal),callback:function ($$v) {_vm.playVideosInModal=$$v},expression:\"playVideosInModal\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.play_videos_in_modal'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.useContainFit),callback:function ($$v) {_vm.useContainFit=$$v},expression:\"useContainFit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.use_contain_fit'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.notifications')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.webPushNotifications),callback:function ($$v) {_vm.webPushNotifications=$$v},expression:\"webPushNotifications\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.enable_web_push_notifications'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.fun')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.greentext),callback:function ($$v) {_vm.greentext=$$v},expression:\"greentext\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.greentext'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.greentextLocalizedValue }))+\"\\n \")])],1)])])]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.theme')}},[_c('div',{staticClass:\"setting-item\"},[_c('style-switcher')],1)]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.filtering')}},[_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"select-multiple\"},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('settings.notification_visibility')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.likes),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"likes\", $$v)},expression:\"notificationVisibility.likes\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_likes'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.repeats),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"repeats\", $$v)},expression:\"notificationVisibility.repeats\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_repeats'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.follows),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"follows\", $$v)},expression:\"notificationVisibility.follows\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_follows'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.mentions),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"mentions\", $$v)},expression:\"notificationVisibility.mentions\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_mentions'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.moves),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"moves\", $$v)},expression:\"notificationVisibility.moves\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_moves'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('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 this.setCaptcha()\n }\n }\n },\n setCaptcha () {\n this.getCaptcha().then(cpt => { this.captcha = cpt })\n }\n }\n}\n\nexport default registration\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./registration.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./registration.js\"\nimport __vue_script__ from \"!!babel-loader!./registration.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8ab5ddc6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./registration.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('registration.registration'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"registration-form\",on:{\"submit\":function($event){$event.preventDefault();_vm.submit(_vm.user)}}},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"text-fields\"},[_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.username.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-username\"}},[_vm._v(_vm._s(_vm.$t('login.username')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.$v.user.username.$model),expression:\"$v.user.username.$model\",modifiers:{\"trim\":true}}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-username\",\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('registration.username_placeholder')},domProps:{\"value\":(_vm.$v.user.username.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.username, \"$model\", $event.target.value.trim())},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),(_vm.$v.user.username.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.username.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.username_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.fullname.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-fullname\"}},[_vm._v(_vm._s(_vm.$t('registration.fullname')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.$v.user.fullname.$model),expression:\"$v.user.fullname.$model\",modifiers:{\"trim\":true}}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-fullname\",\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('registration.fullname_placeholder')},domProps:{\"value\":(_vm.$v.user.fullname.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.fullname, \"$model\", $event.target.value.trim())},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),(_vm.$v.user.fullname.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.fullname.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.fullname_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.email.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"email\"}},[_vm._v(_vm._s(_vm.$t('registration.email')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.$v.user.email.$model),expression:\"$v.user.email.$model\"}],staticClass:\"form-control\",attrs:{\"id\":\"email\",\"disabled\":_vm.isPending,\"type\":\"email\"},domProps:{\"value\":(_vm.$v.user.email.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.email, \"$model\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.email.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.email.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.email_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"bio\"}},[_vm._v(_vm._s(_vm.$t('registration.bio'))+\" (\"+_vm._s(_vm.$t('general.optional'))+\")\")]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.bio),expression:\"user.bio\"}],staticClass:\"form-control\",attrs:{\"id\":\"bio\",\"disabled\":_vm.isPending,\"placeholder\":_vm.bioPlaceholder},domProps:{\"value\":(_vm.user.bio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"bio\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.password.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-password\"}},[_vm._v(_vm._s(_vm.$t('login.password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-password\",\"disabled\":_vm.isPending,\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.password.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.password.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.confirm.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-password-confirmation\"}},[_vm._v(_vm._s(_vm.$t('registration.password_confirm')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.confirm),expression:\"user.confirm\"}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-password-confirmation\",\"disabled\":_vm.isPending,\"type\":\"password\"},domProps:{\"value\":(_vm.user.confirm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"confirm\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.confirm.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.confirm.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_confirmation_required')))])]):_vm._e(),_vm._v(\" \"),(!_vm.$v.user.confirm.sameAsPassword)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_confirmation_match')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),(_vm.captcha.type != 'none')?_c('div',{staticClass:\"form-group\",attrs:{\"id\":\"captcha-group\"}},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"captcha-label\"}},[_vm._v(_vm._s(_vm.$t('registration.captcha')))]),_vm._v(\" \"),(['kocaptcha', 'native'].includes(_vm.captcha.type))?[_c('img',{attrs:{\"src\":_vm.captcha.url},on:{\"click\":_vm.setCaptcha}}),_vm._v(\" \"),_c('sub',[_vm._v(_vm._s(_vm.$t('registration.new_captcha')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.captcha.solution),expression:\"captcha.solution\"}],staticClass:\"form-control\",attrs:{\"id\":\"captcha-answer\",\"disabled\":_vm.isPending,\"type\":\"text\",\"autocomplete\":\"off\"},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.settingsMFA()\n if (result.error) return\n this.settings = result.settings\n this.settings.available = true\n return result\n }\n },\n mounted () {\n this.fetchSettings().then(() => {\n this.readyInit = true\n })\n }\n}\nexport default Mfa\n","/* script */\nexport * from \"!!babel-loader!./mfa_totp.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa_totp.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-df66df96\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa_totp.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"method-item\"},[_c('strong',[_vm._v(_vm._s(_vm.$t('settings.mfa.otp')))]),_vm._v(\" \"),(!_vm.isActivated)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.doActivate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.enable'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isActivated)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.deactivate},on:{\"click\":_vm.doDeactivate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.disable'))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.deactivate)?_c('confirm',{attrs:{\"disabled\":_vm.inProgress},on:{\"confirm\":_vm.confirmDeactivate,\"cancel\":_vm.cancelDeactivate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.enter_current_password_to_confirm'))+\":\\n \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPassword),expression:\"currentPassword\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.currentPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPassword=$event.target.value}}})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mfa.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mfa.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e9d3ba70\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.readyInit && _vm.settings.available)?_c('div',{staticClass:\"setting-item mfa-settings\"},[_c('div',{staticClass:\"mfa-heading\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.mfa.title')))])]),_vm._v(\" \"),_c('div',[(!_vm.setupInProgress)?_c('div',{staticClass:\"setting-item\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('settings.mfa.authentication_methods')))]),_vm._v(\" \"),_c('totp-item',{attrs:{\"settings\":_vm.settings},on:{\"deactivate\":_vm.fetchSettings,\"activate\":_vm.activateOTP}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),(_vm.settings.enabled)?_c('div',[(!_vm.confirmNewBackupCodes)?_c('recovery-codes',{attrs:{\"backup-codes\":_vm.backupCodes}}):_vm._e(),_vm._v(\" \"),(!_vm.confirmNewBackupCodes)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.getBackupCodes}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.generate_new_recovery_codes'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.confirmNewBackupCodes)?_c('div',[_c('confirm',{attrs:{\"disabled\":_vm.backupCodes.inProgress},on:{\"confirm\":_vm.confirmBackupCodes,\"cancel\":_vm.cancelBackupCodes}},[_c('p',{staticClass:\"warning\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.warning_of_generate_new_codes'))+\"\\n \")])])],1):_vm._e()],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.setupInProgress)?_c('div',[_c('h3',[_vm._v(_vm._s(_vm.$t('settings.mfa.setup_otp')))]),_vm._v(\" \"),(!_vm.setupOTPInProgress)?_c('recovery-codes',{attrs:{\"backup-codes\":_vm.backupCodes}}):_vm._e(),_vm._v(\" \"),(_vm.canSetupOTP)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.cancelSetup}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.canSetupOTP)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.setupOTP}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.setup_otp'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.setupOTPInProgress)?[(_vm.prepareOTP)?_c('i',[_vm._v(_vm._s(_vm.$t('settings.mfa.wait_pre_setup_otp')))]):_vm._e(),_vm._v(\" \"),(_vm.confirmOTP)?_c('div',[_c('div',{staticClass:\"setup-otp\"},[_c('div',{staticClass:\"qr-code\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.mfa.scan.title')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.mfa.scan.desc')))]),_vm._v(\" \"),_c('qrcode',{attrs:{\"value\":_vm.otpSettings.provisioning_uri,\"options\":{ width: 200 }}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.scan.secret_code'))+\":\\n \"+_vm._s(_vm.otpSettings.key)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"verify\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('general.verify')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.mfa.verify.desc')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.otpConfirmToken),expression:\"otpConfirmToken\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.otpConfirmToken)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.otpConfirmToken=$event.target.value}}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.enter_current_password_to_confirm'))+\":\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPassword),expression:\"currentPassword\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.currentPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPassword=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"confirm-otp-actions\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.doConfirmOTP}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.confirm_and_enable'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.cancelSetup}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e()])])]):_vm._e()]:_vm._e()],2):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import unescape from 'lodash/unescape'\nimport get from 'lodash/get'\nimport map from 'lodash/map'\nimport reject from 'lodash/reject'\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport ImageCropper from '../image_cropper/image_cropper.vue'\nimport StyleSwitcher from '../style_switcher/style_switcher.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\nimport BlockCard from '../block_card/block_card.vue'\nimport MuteCard from '../mute_card/mute_card.vue'\nimport 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 mascot: this.$store.state.users.currentUser.mascot,\n mascotPreview: null,\n mascotUploadError: 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 this.$store.dispatch('fetchMascot')\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 submitMascot () {\n if (!this.mascotPreview) { return }\n let mascot = this.mascot\n this.mascotUploading = true\n this.$store.state.api.backendInteractor.updateMascot({ mascot }).then((data) => {\n if (!data.error) {\n this.mascotPreview = null\n this.$store.commit('updateMascot', data.url)\n } else {\n this.mascotUploadError = this.$t('upload.error.base') + ' ' + data.error\n }\n this.mascotUploading = 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-032ea2f0\\\",\\\"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',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.mascot')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_mascot')))]),_vm._v(\" \"),_c('img',{staticClass:\"current-mascot\",attrs:{\"src\":_vm.user.mascot}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_mascot')))]),_vm._v(\" \"),(_vm.mascotPreview)?_c('img',{staticClass:\"mascot\",attrs:{\"src\":_vm.mascotPreview}}):_vm._e(),_vm._v(\" \"),_c('div',[_c('input',{attrs:{\"type\":\"file\"},on:{\"change\":function($event){_vm.uploadFile('mascot', $event)}}})]),_vm._v(\" \"),(_vm.mascotUploading)?_c('i',{staticClass:\" icon-spin4 animate-spin uploading\"}):(_vm.mascotPreview)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submitMascot}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.mascotUploadError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n Error: \"+_vm._s(_vm.mascotUploadError)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){_vm.clearUploadError('mascot')}}})]):_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({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n },\n denyUser () {\n this.$store.state.api.backendInteractor.denyUser({ id: 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":""}